00001 // SimpleKinematic implementation 00002 // 00003 00004 #include "AtlfastEvent/SimpleKinematic.h" 00005 #include "AtlfastEvent/IAOOvisitor.h" 00006 00007 namespace Atlfast { 00008 SimpleKinematic::SimpleKinematic(const SimpleKinematic& rhs): 00009 Atlfast::IAOO(rhs), 00010 INavigable(rhs), 00011 I4Momentum(rhs), 00012 INavigable4Momentum(rhs), 00013 Atlfast::IKinematic(rhs), 00014 Atlfast::IAODNavigation(rhs), 00015 AODNavigationImp(rhs){ 00016 m_momentum=rhs.m_momentum; 00017 } 00018 SimpleKinematic& SimpleKinematic::operator=(const SimpleKinematic& rhs){ 00019 00020 if(this == &rhs) return *this; 00021 00022 AODNavigationImp::operator=(rhs); 00023 00024 m_momentum=rhs.m_momentum; 00025 00026 return *this; 00027 } 00028 00029 HepLorentzVector SimpleKinematic::momentum() const {return m_momentum;} 00030 double SimpleKinematic::eta() const{ return m_momentum.pseudoRapidity();} 00031 double SimpleKinematic::phi() const{ return m_momentum.phi();} 00032 double SimpleKinematic::pT() const{ return m_momentum.perp();} 00033 double SimpleKinematic::eT() const{ return m_momentum.perp();} 00034 double SimpleKinematic::mT() const{ return m_momentum.mt();} 00035 IKinematic* SimpleKinematic::clone() const{ 00036 IKinematic* ik = new SimpleKinematic(*this); 00037 return ik; 00038 } 00039 SimpleKinematic::~SimpleKinematic(){} 00041 void SimpleKinematic::accept(IAOOvisitor* iaPtr) const{ 00042 iaPtr->process(this); 00043 } 00044 00045 } // end of namespace bracket 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061