13 #ifndef _StEStructTrack
14 #define _StEStructTrack
18 #include "StHelixD.hh"
19 #include "StThreeVectorF.hh"
20 #include "StThreeVectorD.hh"
21 #include "StLorentzVectorF.hh"
23 #include "StPhysicalHelixD.hh"
24 #include "StPhysicalHelix.hh"
84 Float_t mAssignedMass;
85 Float_t mMidTPCRadius;
86 Float_t mOuterMidTPCRadius;
88 Float_t mEndCapRadius;
89 Int_t mEndCapOuterMid;
107 static Float_t BField;
108 void FillTransientData();
113 void evalCurvature();
114 void evalFourMomentum(
float mass=0);
117 void evalTrajectory(
float primvx,
float primvy,
float primvz,
double bfield);
118 void FillTpcReferencePoints();
121 Float_t Px()
const {
return mPx; }
122 Float_t Py()
const {
return mPy; }
123 Float_t Pz()
const {
return mPz; }
125 Float_t Eta()
const {
return mEta; }
126 Float_t Phi()
const {
return mPhi; }
128 Float_t Bx()
const {
return mBxPrimary; }
129 Float_t By()
const {
return mByPrimary; }
130 Float_t Bz()
const {
return mBzPrimary; }
132 Float_t BxPrimary()
const {
return mBxPrimary; }
133 Float_t ByPrimary()
const {
return mByPrimary; }
134 Float_t BzPrimary()
const {
return mBzPrimary; }
136 Float_t BxGlobal()
const {
return mBxGlobal; }
137 Float_t ByGlobal()
const {
return mByGlobal; }
138 Float_t BzGlobal()
const {
return mBzGlobal; }
140 Int_t PID()
const {
return mPID; }
141 Int_t PID_dEdx()
const {
return mPID_dEdx; }
142 Int_t PID_ToF()
const {
return mPID_ToF; }
144 Float_t PIDe_dEdx()
const {
return mPIDe_dEdx; }
145 Float_t PIDpi_dEdx()
const {
return mPIDpi_dEdx; }
146 Float_t PIDp_dEdx()
const {
return mPIDp_dEdx; }
147 Float_t PIDk_dEdx()
const {
return mPIDk_dEdx; }
148 Float_t PIDd_dEdx()
const {
return mPIDd_dEdx; }
150 Float_t PIDe_ToF()
const {
return mPIDe_ToF; }
151 Float_t PIDpi_ToF()
const {
return mPIDpi_ToF; }
152 Float_t PIDp_ToF()
const {
return mPIDp_ToF; }
153 Float_t PIDk_ToF()
const {
return mPIDk_ToF; }
154 Float_t PIDd_ToF()
const {
return mPIDd_ToF; }
156 Float_t beta()
const {
return mBeta; }
157 Float_t Dedx()
const {
return mDedx; }
158 Float_t Mass()
const {
return mMass; }
159 Float_t Chi2()
const {
return mChi2; }
160 Float_t AssignedMass()
const {
return mAssignedMass; };
161 Float_t MidTPCRadius()
const {
return mMidTPCRadius; };
162 Float_t OuterMidTPCRadius()
const {
return mOuterMidTPCRadius; };
163 Float_t MaxRadius()
const {
return mMaxRadius; };
164 Float_t EndCapRadius()
const {
return mEndCapRadius; };
165 Int_t EndCapOuter()
const {
return mEndCapOuter; };
166 Int_t EndCapOuterMid()
const {
return mEndCapOuterMid; };
168 Int_t NFitPoints()
const {
return mNFitPoints; }
169 Int_t NFoundPoints()
const {
return mNFoundPoints; }
170 Int_t NMaxPoints()
const {
return mNMaxPoints; }
172 Int_t DetectorID()
const {
return mDetectorID; }
173 Int_t Flag()
const {
return mFlag; }
175 Short_t Charge()
const {
return mCharge; }
177 ULong_t TopologyMapData(
const Int_t word)
const {
return mMap[word];}
178 UInt_t TopologyMapTPCNHits()
const {
return mTPCNHits;}
179 int getYtBin()
const;
184 Float_t Ptot()
const;
185 Float_t Mt(Float_t mass)
const;
186 Float_t E(Float_t mass)
const;
187 Float_t Eta(Float_t mass)
const;
188 Float_t Rapidity(Float_t mass)
const;
192 Float_t DcaPrimary()
const;
193 Float_t DcaGlobal()
const;
196 Bool_t isComplete()
const {
return mIsComplete; };
207 Float_t Yt(Float_t mass)
const;
208 Float_t Curvature()
const;
211 void SetPx(Float_t px) { mPx = px; }
212 void SetPy(Float_t py) { mPy = py; }
213 void SetPz(Float_t pz) { mPz = pz; }
215 void SetEta(Float_t eta) { mEta = eta; }
216 void SetPhi(Float_t phi) { mPhi = phi; }
218 void SetBx(Float_t bx) { mBxPrimary = bx; }
219 void SetBy(Float_t by) { mByPrimary = by; }
220 void SetBz(Float_t bz) { mBzPrimary = bz; }
222 void SetBxPrimary(Float_t bxp) { mBxPrimary = bxp; }
223 void SetByPrimary(Float_t byp) { mByPrimary = byp; }
224 void SetBzPrimary(Float_t bzp) { mBzPrimary = bzp; }
226 void SetBxGlobal(Float_t bxg) { mBxGlobal = bxg; }
227 void SetByGlobal(Float_t byg) { mByGlobal = byg; }
228 void SetBzGlobal(Float_t bzg) { mBzGlobal = bzg; }
230 void SetPIDe_dEdx(Float_t pide) { mPIDe_dEdx = pide; }
231 void SetPIDpi_dEdx(Float_t pidpi) { mPIDpi_dEdx = pidpi; }
232 void SetPIDp_dEdx(Float_t pidp) { mPIDp_dEdx = pidp; }
233 void SetPIDk_dEdx(Float_t pidk) { mPIDk_dEdx = pidk; }
234 void SetPIDd_dEdx(Float_t pidd) { mPIDd_dEdx = pidd; }
236 void SetPIDe_ToF(Float_t pide) { mPIDe_ToF = pide; }
237 void SetPIDpi_ToF(Float_t pidpi) { mPIDpi_ToF = pidpi; }
238 void SetPIDp_ToF(Float_t pidp) { mPIDp_ToF = pidp; }
239 void SetPIDk_ToF(Float_t pidk) { mPIDk_ToF = pidk; }
240 void SetPIDd_ToF(Float_t pidd) { mPIDd_ToF = pidd; }
242 void SetBeta(Float_t beta) { mBeta = beta; }
243 void SetDedx(Float_t dedx) { mDedx = dedx; }
244 void SetMass(Float_t mass) { mMass = mass; }
245 void SetChi2(Float_t chi2) { mChi2 = chi2; }
246 void SetMassAssignment(
float mass){ mAssignedMass=mass; };
247 void SetNFitPoints(Int_t nfit) { mNFitPoints = nfit; }
248 void SetNFoundPoints(Int_t nfound) { mNFoundPoints = nfound; }
249 void SetNMaxPoints(Int_t nmax) { mNMaxPoints = nmax; }
251 void SetDetectorID(Int_t did) { mDetectorID = did; }
252 void SetFlag(Int_t flag) { mFlag = flag; }
254 void SetCharge(Short_t charge) { mCharge = charge; }
255 void SetTopologyMapData(
const int word,
const ULong_t map){ mMap[word] = map;}
256 void SetTopologyMapTPCNHits(Int_t nhits) {mTPCNHits = nhits;}
258 void SetComplete() { mIsComplete=
true; };
259 void SetInComplete() { mIsComplete=
false; };
266 inline void StEStructTrack::evalPt(){ mPt=sqrt((mPx*mPx)+(mPy*mPy)); }
267 inline void StEStructTrack::evalPtot(){ mPtot=sqrt((mPx*mPx)+(mPy*mPy)+(mPz*mPz)); }
268 inline void StEStructTrack::evalMass() {
270 mMass = -mPtot * sqrt( 1- pow(mBeta,-2));
271 }
else if (mBeta > 0) {
272 mMass = mPtot * sqrt( pow(mBeta,-2) - 1);
277 inline const StThreeVectorF& StEStructTrack::NominalTpcExitPoint()
const {
return mNominalTpcExitPoint; }
278 inline const StThreeVectorF& StEStructTrack::NominalTpcEntrancePoint()
const {
return mNominalTpcEntrancePoint; };
279 inline const StThreeVectorF& StEStructTrack::MidTpcPoint()
const{
return mMidTpcPoint; };
280 inline const StThreeVectorF& StEStructTrack::OuterMidTpcPoint()
const{
return mOuterMidTpcPoint; };
281 inline const StThreeVectorF& StEStructTrack::StartPos()
const{
return mStartPos; };
282 inline const StLorentzVectorF& StEStructTrack::FourMomentum()
const {
return mFourMomentum;};
283 inline const StPhysicalHelixD& StEStructTrack::Helix()
const{
return mHelix;};
285 inline Float_t StEStructTrack::Xt()
const {
return mXt;};
286 inline Float_t StEStructTrack::Yt()
const {
return mYt;};
287 inline Float_t StEStructTrack::Curvature()
const {
return mCurvature;};
288 inline int StEStructTrack::getYtBin()
const {
return mytbin; };