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 #include "AtlfastEvent/IKinematic.h" 00028 00029 namespace Atlfast { 00034 class SimpleKinematic: public IKinematic { 00035 public: 00036 SimpleKinematic(const HepMC::GenParticle& p): m_momentum(p.momentum()){} 00037 SimpleKinematic(const HepMC::GenParticle* p): m_momentum(p->momentum()){} 00038 00039 //IKinematic interface 00040 virtual HepLorentzVector momentum() const {return m_momentum;} 00041 virtual double eta() const{ return m_momentum.pseudoRapidity();} 00042 virtual double phi() const{ return m_momentum.phi();} 00043 virtual double pT() const{ return m_momentum.perp();} 00044 virtual double eT() const{ return m_momentum.perp();} 00045 virtual double mT() const{ return m_momentum.mt();} 00046 virtual ~SimpleKinematic(){} 00047 private: 00048 const HepLorentzVector m_momentum; 00049 }; 00050 } 00051 #endif 00052 00053 00054 00055 00056