21 #include "ERDetectorList.h" 26 #include "TLorentzVector.h" 27 #include "TParticle.h" 29 enum ExpertTrackingStatus{
45 ERMCTrack(Int_t pdgCode, Int_t motherID, Double_t px, Double_t py,
46 Double_t pz, Double_t x, Double_t y, Double_t z,
47 Double_t t, Int_t nPoints);
60 void Print(Int_t iTrack=0)
const;
65 Int_t GetMotherId()
const {
return fMotherId; }
66 Double_t GetPx()
const {
return fPx; }
67 Double_t GetPy()
const {
return fPy; }
68 Double_t GetPz()
const {
return fPz; }
69 Double_t GetStartX()
const {
return fStartX; }
70 Double_t GetStartY()
const {
return fStartY; }
71 Double_t GetStartZ()
const {
return fStartZ; }
72 Double_t GetStartT()
const {
return fStartT; }
73 Double_t GetMass()
const;
74 Double_t GetCharge()
const;
75 Double_t GetEnergy()
const;
76 Double_t GetPt()
const {
return TMath::Sqrt(
fPx*
fPx+fPy*fPy); }
77 Double_t GetP()
const {
return TMath::Sqrt(
fPx*
fPx+fPy*fPy+fPz*fPz); }
78 Double_t GetRapidity()
const;
79 void GetMomentum(TVector3& momentum)
const;
80 void Get4Momentum(TLorentzVector& momentum)
const;
81 void GetStartVertex(TVector3& vertex)
const;
82 TLorentzVector GetVector();
93 void SetNPoints(Int_t iDet, Int_t np);
96 Double_t CalculateMass();
97 Double_t CalculateEnergy();
111 Double32_t
fStartX, fStartY, fStartZ, fStartT;
116 Double_t fTheta,fPhi;
118 TLorentzVector fMomentum;
124 inline Double_t ERMCTrack::GetEnergy()
const {
128 inline void ERMCTrack::GetMomentum(TVector3& momentum)
const {
129 momentum.SetXYZ(
fPx,fPy,fPz);
132 inline void ERMCTrack::Get4Momentum(TLorentzVector& momentum)
const {
133 momentum.SetXYZT(
fPx,fPy,fPz,fEnergy);
136 inline void ERMCTrack::GetStartVertex(TVector3& vertex)
const {
137 vertex.SetXYZ(
fStartX,fStartY,fStartZ);
Int_t GetNPoints(DetectorId detId) const
void Print(Int_t iTrack=0) const
void SetMotherId(Int_t id)