00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ATLFAST_SIMPLEKINEMATIC_H
00021 #define ATLFAST_SIMPLEKINEMATIC_H
00022
00023
00024
00025 #include "HepMC/GenParticle.h"
00026 #include "CLHEP/Vector/LorentzVector.h"
00027 #include "AtlfastCode/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
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