#ifndef TG4HitCalo_hxx_seen #define TG4HitCalo_hxx_seen #include #include #include #include "IG4VHit.hxx" #include "IG4Trajectory.hxx" #include "IHandle.hxx" namespace COMET { class IG4HitCalo; } /// DO NOT USE THIS CLASS IN ANALYSIS CODE. /// class COMET::IG4HitCalo: public IG4VHit { public: IG4HitCalo(); IG4HitCalo(const IG4HitCalo& rhs); virtual ~IG4HitCalo(); Double_t GetEntryX() const {return fEntryX;} Double_t GetEntryY() const {return fEntryY;} Double_t GetEntryZ() const {return fEntryZ;} TVector3 GetEntry() const {return TVector3(fEntryX, fEntryY, fEntryZ);} Double_t GetEntryLocalX() const {return fEntryLocalX;} Double_t GetEntryLocalY() const {return fEntryLocalY;} Double_t GetEntryLocalZ() const {return fEntryLocalZ;} TVector3 GetEntryLocal() const {return TVector3(fEntryLocalX, fEntryLocalY, fEntryLocalZ);} virtual Double_t GetPosX() const {return fPosX;} virtual Double_t GetPosY() const {return fPosY;} virtual Double_t GetPosZ() const {return fPosZ;} virtual Double_t GetPosT() const {return fPosT;} TVector3 GetPosition() const {return TVector3(fPosX, fPosY, fPosZ);} TLorentzVector GetPositionTime() const {return TLorentzVector(fPosX, fPosY, fPosZ, fPosT);} Double_t GetIncidentMomentumX() const {return fIncidentMomentumX;} Double_t GetIncidentMomentumY() const {return fIncidentMomentumY;} Double_t GetIncidentMomentumZ() const {return fIncidentMomentumZ;} TVector3 GetIncidentMomentum() const {return TVector3(fIncidentMomentumX, fIncidentMomentumY, fIncidentMomentumZ);} virtual Double_t GetMomentumMag() const {return GetIncidentMomentum().Mag(); } // Inherited method Double_t GetIncidentMomentumMag() const {return GetMomentumMag(); } // Same as GetMomentumMag() Double_t GetIncidentPID() const {return fIncidentPID; } Double_t GetTime() const {return fPosT; } UInt_t GetCrystalID() const {return fCrystalID; } Double_t GetDepositedEnergy() const {return fEdepElem+fEdepHad;} Double_t GetDepositedEMEnergy() const {return fEdepElem; } Double_t GetDepositedHadEnergy() const {return fEdepHad; } /// Print the hit information. virtual void ls(Option_t * = "") const; protected: //@{ /** Entry Point of the primary associated with this hit into the calorimeter in global coordinates */ Float_t fEntryX; Float_t fEntryY; Float_t fEntryZ; //@} //@{ /** Entry point of the primary associated with this hit into the calorimeter In local coordinates */ Float_t fEntryLocalX; Float_t fEntryLocalY; Float_t fEntryLocalZ; //@} //@{ /** Position of the energy deposit for this hit */ Float_t fPosX; Float_t fPosY; Float_t fPosZ; Float_t fPosT; //@} //@{ /** Incident momentum of the primary associated with this hit into the calorimeter In global coordinates */ Float_t fIncidentMomentumX; Float_t fIncidentMomentumY; Float_t fIncidentMomentumZ; //@} Double_t fEdepElem; ///< EnergyDeposit of EM particles Double_t fEdepHad; ///< EnergyDeposit of HD particles Int_t fIncidentPID; ///< Particle kind of the primary particle UInt_t fCrystalID; ///< Crystal ID of the hit ClassDef(IG4HitCalo, 7); }; #endif