SFrame 3.6
|
00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: SParticle.h 120 2009-08-27 12:02:57Z krasznaa $ 00003 /*************************************************************************** 00004 * @Project: SFrame - ROOT-based analysis framework for ATLAS 00005 * @Package: Plug-ins 00006 * 00007 * @author Stefan Ask <Stefan.Ask@cern.ch> - Manchester 00008 * @author David Berge <David.Berge@cern.ch> - CERN 00009 * @author Johannes Haller <Johannes.Haller@cern.ch> - Hamburg 00010 * @author A. Krasznahorkay <Attila.Krasznahorkay@cern.ch> - CERN/Debrecen 00011 * 00012 ***************************************************************************/ 00013 00014 #ifndef SFRAME_PLUGINS_SParticle_H 00015 #define SFRAME_PLUGINS_SParticle_H 00016 00017 // STL include(s): 00018 #include <vector> // This include is only here to be able to generate a dictionary 00019 // for std::vector< SParticle >. 00020 00021 // ROOT include(s): 00022 #include "Rtypes.h" 00023 #include "Math/LorentzVector.h" 00024 #include "Math/PtEtaPhiE4D.h" 00025 #include "TObject.h" 00026 00051 class SParticle : 00052 public ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiE4D< Double32_t > >, 00053 public TObject { 00054 00055 public: 00057 SParticle(); 00059 SParticle( Double32_t pt, Double32_t eta, Double32_t phi, 00060 Double32_t e ); 00062 SParticle( const SParticle& parent ); 00064 template< class Geom > SParticle( const ROOT::Math::LorentzVector< Geom >& parent ); 00066 virtual ~SParticle(); 00067 00069 template< class Geom > 00070 SParticle& operator= ( const ROOT::Math::LorentzVector< Geom >& rh ); 00071 00072 #ifndef DOXYGEN_IGNORE 00073 ClassDef( SParticle, 1 ); 00074 #endif // DOXYGEN_IGNORE 00075 00076 }; // class SParticle 00077 00078 // 00079 // Include template implementation: 00080 // 00081 #ifndef __CINT__ 00082 #include "SParticle.icc" 00083 #endif // __CINT__ 00084 00108 #endif // SFRAME_PLUGINS_SParticle_H