00001 // ================================================ 00002 // SimpleKinematic class description 00003 // ================================================ 00004 // 00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT 00006 // 00007 // Namespace Atlfast:: 00008 // 00009 // class: SimpleKinematic 00010 // 00011 // Authors: P.Clarke, H.Phillips, E.Richter-Was, P.Sherwood, R.Steward 00012 // 00013 // Description: 00014 // 00015 // Convertor from various types to IKinematic 00016 // 00017 //.................................................. 00018 00019 00020 #ifndef ATLFAST_SIMPLEKINEMATIC_H 00021 #define ATLFAST_SIMPLEKINEMATIC_H 00022 00023 00024 // Kinematic classes. 00025 #include "HepMC/GenParticle.h" 00026 #include "CLHEP/Vector/LorentzVector.h" 00027 00028 //#ifndef ATLFAST_IKINEMATIC_H 00029 //#include "AtlfastEvent/IKinematic.h" 00030 //#endif 00031 00032 #ifndef ATLFAST_IAODNAVIGATION_H 00033 #include "AtlfastEvent/IAODNavigation.h" 00034 #endif 00035 00036 //#ifndef ATLFAST_IKINEMATICBASE_H 00037 //#include "AtlfastEvent/IKinematicBase.h" 00038 //#endif 00039 00040 #ifndef ATLFAST_AODNAVIGATIONIMP_H 00041 #include "AtlfastEvent/AODNavigationImp.h" 00042 #endif 00043 00044 namespace Atlfast { 00049 class IAOOvisitor; 00050 class SimpleKinematic: virtual public IAODNavigation, 00051 private AODNavigationImp { 00052 public: 00053 SimpleKinematic(){} 00054 explicit 00055 SimpleKinematic(const HepMC::GenParticle& p): m_momentum(p.momentum()){} 00056 explicit 00057 SimpleKinematic(const HepMC::GenParticle* p): m_momentum(p->momentum()){} 00058 SimpleKinematic(const SimpleKinematic&); 00059 SimpleKinematic& operator=(const SimpleKinematic&); 00060 00061 //IKinematic interface 00062 virtual HepLorentzVector momentum() const; 00063 virtual double eta() const; 00064 virtual double phi() const; 00065 virtual double pT() const; 00066 virtual double eT() const; 00067 virtual double mT() const; 00068 virtual IKinematic* clone() const; 00069 virtual ~SimpleKinematic(); 00071 virtual void accept(IAOOvisitor* iaPtr) const; 00072 00073 private: 00074 HepLorentzVector m_momentum; 00075 }; 00076 } 00077 #endif 00078 00079 00080 00081 00082