00001 #ifndef ATLFAST_TRANSPORTEDPARTICLE_H 00002 #define ATLFAST_TRANSPORTEDPARTICLE_H 00003 00004 #include "HepMC/GenParticle.h" 00005 #include "AtlfastEvent/Phi.h" 00006 #include "AtlfastEvent/ITransportedParticle.h" 00007 00008 //class HepMC::GenParticle; 00009 namespace Atlfast { 00010 /* 00011 * Data structure comprising of phi and a particle 00012 * the phi allows an extra phi value to represent eg phi after 00013 * passage through the B field 00014 */ 00015 class TransportedParticle : virtual public ITransportedParticle { 00016 public: 00017 TransportedParticle(const HepMC::GenParticle* const &p); 00018 ~TransportedParticle() {}; 00019 Phi phi() const; 00020 double eta() const; 00021 double E() const; 00022 const HepMC::GenParticle* particle() const; 00023 protected: 00024 Phi m_phi; 00025 double m_eta; 00026 double m_energy; 00027 const HepMC::GenParticle* m_particle; 00028 }; 00029 } 00030 00031 #endif 00032 00033