ReconstructedParticle.cxx

Go to the documentation of this file.
00001 // ReconstructedParticle implementation
00002 //
00003 
00004 #include "AtlfastEvent/ReconstructedParticle.h"
00005 #include "AtlfastEvent/IAOOvisitor.h"
00006 
00007 namespace Atlfast {
00008   ReconstructedParticle::ReconstructedParticle(const int pdg_id, 
00009                                                const HepLorentzVector& vec,
00010                                                const HepMC::GenParticle* 
00011                                                progenitor ): 
00012     IKinematic(),
00013     AODNavigationImp(),m_pdg_id(pdg_id), 
00014     m_momentum(vec), m_truth(progenitor),
00015     m_halo(0.),
00016     m_halovector(HepLorentzVector(0.,0.,0.,0.)) {
00017   }
00019   ReconstructedParticle::ReconstructedParticle(const ReconstructedParticle& 
00020                                                src 
00021                                                ): 
00022     Atlfast::IAOO(src),
00023     INavigable(src),
00024     I4Momentum(src),
00025     INavigable4Momentum(src),
00026     Atlfast::IKinematic(src),
00027     Atlfast::IAODNavigation(src),
00028     AODNavigationImp( src ){
00029     m_pdg_id     = src.m_pdg_id;
00030     m_momentum   = src.m_momentum;
00031     m_truth      = src.m_truth;
00032     m_halo       = src.m_halo;
00033     m_halovector = src.m_halovector;
00034   }
00036   ReconstructedParticle::ReconstructedParticle(
00037                                                const ReconstructedParticle* 
00038                                                src 
00039                                                ):AODNavigationImp( *src ){
00040     m_pdg_id     = src->m_pdg_id; 
00041     m_momentum   = src->m_momentum; 
00042     m_truth      = src->m_truth;
00043     m_halo       = src->m_halo;
00044     m_halovector = src->m_halovector;
00045   }
00047   ReconstructedParticle& 
00048   ReconstructedParticle::operator=(const ReconstructedParticle& src ){
00049 
00050     if(this == &src) return *this;
00051     
00052     AODNavigationImp::operator=( src );
00053     m_pdg_id     = src.m_pdg_id; 
00054     m_momentum   = src.m_momentum; 
00055     m_truth      = src.m_truth;
00056     m_halo       = src.m_halo;
00057     m_halovector = src.m_halovector;
00058     return *this;
00059   }
00061   
00062   
00063   ReconstructedParticle::ReconstructedParticle():
00064     AODNavigationImp(),
00065     m_pdg_id(0), 
00066     m_momentum(HepLorentzVector(0.0,0.0,0.0,0.0)), 
00067     m_truth(0),
00068     m_halo(0.),
00069     m_halovector(HepLorentzVector(0.,0.,0.,0.)){
00070   }
00071   HepLorentzVector ReconstructedParticle::momentum() const {
00072     return m_momentum;
00073   } 
00074   double  ReconstructedParticle::eta() const { 
00075     return m_momentum.pseudoRapidity() ;
00076   }
00077   double  ReconstructedParticle::phi() const { 
00078     return m_momentum.phi() ;  
00079   } 
00080   double  ReconstructedParticle::pT()  const {
00081     return m_momentum.perp() ;
00082   }
00083   double  ReconstructedParticle::pt()  const {
00084     return m_momentum.perp() ;
00085   }
00086   double  ReconstructedParticle::eT()  const {
00087       return m_momentum.e()*m_momentum.perp()/m_momentum.rho() ;
00088   }
00089   double  ReconstructedParticle::mT()  const {
00090     return m_momentum.mt() ;
00091   }
00092   IKinematic*  ReconstructedParticle::clone()  const {
00093     IKinematic* ik =  new ReconstructedParticle(*this) ;
00094     return ik;
00095   }
00097   void ReconstructedParticle::accept(IAOOvisitor* iaPtr) const{
00098     iaPtr->process(this);
00099   }
00101   int ReconstructedParticle::pdg_id() const {
00102     return m_pdg_id ; 
00103   }
00105   const HepMC::GenParticle* ReconstructedParticle::truth() const {
00106     return m_truth ; 
00107   }
00109   void ReconstructedParticle::print(const std::string& coor, 
00110                                     std::string t)  const{
00111     AODNavigationImp::print(coor, t);
00112     std::cout<<t<<std::string(73,' ')<<"ReconstructedParticle"<<std::endl;
00113   }
00114   
00115 } // end of namespace bracket
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 

Generated on Fri Sep 21 13:00:10 2007 for AtlfastEvent by  doxygen 1.5.1