73 #include "StHbtMaker/Infrastructure/StHbtTypes.hh"
74 #include "StarClassLibrary/StPhysicalHelixD.hh"
76 #include "StStrangeMuDstMaker/StV0MuDst.hh"
79 #include "StHbtMaker/Base/StHbtHiddenInfo.hh"
92 ~
StHbtV0(){
if(mHiddenInfo)
delete mHiddenInfo;}
95 float decayLengthV0()
const;
98 float decayVertexV0X()
const;
99 float decayVertexV0Y()
const;
100 float decayVertexV0Z()
const;
101 float dcaV0Daughters()
const;
102 float dcaV0ToPrimVertex()
const;
103 float dcaPosToPrimVertex()
const;
104 float dcaNegToPrimVertex()
const;
106 float momPosX()
const;
107 float momPosY()
const;
108 float momPosZ()
const;
110 float momNegX()
const;
111 float momNegY()
const;
112 float momNegZ()
const;
114 int tpcHitsPos()
const;
115 int tpcHitsNeg()
const;
116 unsigned long trackTopologyMapPos(
unsigned int)
const;
117 unsigned long trackTopologyMapNeg(
unsigned int)
const;
120 float momV0X()
const ;
121 float momV0Y()
const ;
122 float momV0Z()
const ;
123 float alphaV0()
const ;
124 float ptArmV0()
const ;
125 float eLambda()
const ;
126 float eK0Short()
const ;
127 float ePosProton()
const ;
128 float ePosPion()
const ;
129 float eNegProton()
const ;
130 float eNegPion()
const ;
131 float massLambda()
const ;
132 float massAntiLambda()
const ;
133 float massK0Short()
const ;
134 float rapLambda()
const ;
135 float rapK0Short()
const ;
136 float cTauLambda()
const ;
137 float cTauK0Short()
const ;
139 float ptotV0()
const ;
140 float ptPos()
const ;
141 float ptotPos()
const ;
142 float dedxPos()
const;
143 float numdedxPos()
const;
145 float errdedxPos()
const;
147 float lendedxPos()
const;
149 float pseudoRapPos()
const;
152 float ptNeg()
const ;
153 float ptotNeg()
const ;
154 float dedxNeg()
const;
155 float numdedxNeg()
const;
157 float errdedxNeg()
const;
159 float lendedxNeg()
const;
161 float pseudoRapNeg()
const;
164 unsigned short idNeg()
const;
165 unsigned short idPos()
const;
166 unsigned short keyNeg()
const;
167 unsigned short keyPos()
const;
173 void SetdecayLengthV0(
const float);
175 void SetdecayVertexV0X(
const float);
176 void SetdecayVertexV0Y(
const float);
177 void SetdecayVertexV0Z(
const float);
178 void SetdcaV0Daughters(
const float);
179 void SetdcaV0ToPrimVertex(
const float);
180 void SetdcaPosToPrimVertex(
const float);
181 void SetdcaNegToPrimVertex(
const float);
183 void SetmomPosX(
const float);
184 void SetmomPosY(
const float);
185 void SetmomPosZ(
const float);
187 void SetmomNegX(
const float);
188 void SetmomNegY(
const float);
189 void SetmomNegZ(
const float);
191 void SettpcHitsPos(
const int&);
192 void SettpcHitsNeg(
const int&);
194 void SetTrackTopologyMapPos(
unsigned int,
const unsigned long&);
195 void SetTrackTopologyMapNeg(
unsigned int,
const unsigned long&);
198 void SetmomV0X(
float);
199 void SetmomV0Y(
float);
200 void SetmomV0Z(
float);
201 void SetalphaV0(
float);
202 void SetptArmV0(
float);
203 void SeteLambda(
float);
204 void SeteK0Short(
float);
205 void SetePosProton(
float);
206 void SetePosPion(
float);
207 void SeteNegProton(
float);
208 void SeteNegPion(
float);
209 void SetmassLambda(
float);
210 void SetmassAntiLambda(
float);
211 void SetmassK0Short(
float);
212 void SetrapLambda(
float);
213 void SetrapK0Short(
float);
214 void SetcTauLambda(
float);
215 void SetcTauK0Short(
float);
216 void SetptV0(
float);
217 void SetptotV0(
float);
218 void SetptPos(
float);
219 void SetptotPos(
float);
220 void SetptNeg(
float);
221 void SetptotNeg(
float);
222 void SetidNeg(
const unsigned short&);
223 void SetidPos(
const unsigned short&);
224 void SetdedxNeg(
float);
225 void SeterrdedxNeg(
float x);
226 void SetlendedxNeg(
float x);
227 void SetpseudoRapNeg(
float x);
228 void SetdedxPos(
float);
229 void SeterrdedxPos(
float x);
230 void SetlendedxPos(
float x);
231 void SetpseudoRapPos(
float x);
232 void SetkeyNeg(
const unsigned short&);
233 void SetkeyPos(
const unsigned short&);
241 bool ValidHiddenInfo()
const;
245 friend ostream& operator<<(ostream& out,
StHbtV0& v0);
246 friend istream& operator>>(istream& in,
StHbtV0& v0);
254 float mDecayLengthV0;
257 float mDcaV0Daughters;
258 float mDcaV0ToPrimVertex;
259 float mDcaPosToPrimVertex;
260 float mDcaNegToPrimVertex;
264 unsigned long mTrackTopologyMapPos[2];
265 unsigned long mTrackTopologyMapNeg[2];
285 unsigned short mNumDedxPos;
286 unsigned short mNumDedxNeg;
302 float mMassAntiLambda;
315 unsigned short mKeyNeg;
316 unsigned short mKeyPos;
327 inline float StHbtV0::decayLengthV0()
const {
return mDecayLengthV0; }
328 inline StHbtThreeVector StHbtV0::decayVertexV0()
const {
return mDecayVertexV0; }
329 inline StHbtThreeVector StHbtV0::primaryVertex()
const {
return mPrimaryVertex; }
330 inline float StHbtV0::decayVertexV0X()
const {
return mDecayVertexV0.x(); }
331 inline float StHbtV0::decayVertexV0Y()
const {
return mDecayVertexV0.y(); }
332 inline float StHbtV0::decayVertexV0Z()
const {
return mDecayVertexV0.z(); }
333 inline float StHbtV0::dcaV0Daughters()
const {
return mDcaV0Daughters; }
334 inline float StHbtV0::dcaV0ToPrimVertex()
const {
return mDcaV0ToPrimVertex; }
335 inline float StHbtV0::dcaPosToPrimVertex()
const {
return mDcaPosToPrimVertex; }
336 inline float StHbtV0::dcaNegToPrimVertex()
const {
return mDcaNegToPrimVertex; }
338 inline float StHbtV0::momPosX()
const {
return mMomPos.x(); }
339 inline float StHbtV0::momPosY()
const {
return mMomPos.y(); }
340 inline float StHbtV0::momPosZ()
const {
return mMomPos.z(); }
342 inline float StHbtV0::momNegX()
const {
return mMomNeg.x(); }
343 inline float StHbtV0::momNegY()
const {
return mMomNeg.y(); }
344 inline float StHbtV0::momNegZ()
const {
return mMomNeg.z(); }
346 inline float StHbtV0::momV0X()
const {
return mMomV0.x(); }
347 inline float StHbtV0::momV0Y()
const {
return mMomV0.y(); }
348 inline float StHbtV0::momV0Z()
const {
return mMomV0.z(); }
349 inline float StHbtV0::alphaV0()
const {
return mAlphaV0; }
350 inline float StHbtV0::ptArmV0()
const {
return mPtArmV0;}
351 inline float StHbtV0::eLambda()
const {
return mELambda;}
352 inline float StHbtV0::eK0Short()
const {
return mEK0Short;}
353 inline float StHbtV0::ePosProton()
const {
return mEPosProton;}
354 inline float StHbtV0::ePosPion()
const {
return mEPosPion;}
355 inline float StHbtV0::eNegProton()
const {
return mENegProton;}
356 inline float StHbtV0::eNegPion()
const {
return mENegPion;}
357 inline float StHbtV0::massLambda()
const {
return mMassLambda;}
358 inline float StHbtV0::massAntiLambda()
const {
return mMassAntiLambda;}
359 inline float StHbtV0::massK0Short()
const {
return mMassK0Short;}
360 inline float StHbtV0::rapLambda()
const {
return mRapLambda;}
361 inline float StHbtV0::rapK0Short()
const {
return mRapK0Short;}
362 inline float StHbtV0::cTauLambda()
const {
return mCTauLambda;}
363 inline float StHbtV0::cTauK0Short()
const {
return mCTauK0Short;}
364 inline float StHbtV0::ptV0()
const {
return mPtV0;}
365 inline float StHbtV0::ptotV0()
const {
return mPtotV0;}
366 inline float StHbtV0::ptPos()
const {
return mPtPos;}
367 inline float StHbtV0::ptotPos()
const {
return mPtotPos;}
368 inline float StHbtV0::ptNeg()
const {
return mPtNeg;}
369 inline float StHbtV0::ptotNeg()
const {
return mPtotNeg;}
370 inline int StHbtV0::tpcHitsPos()
const {
return mTpcHitsPos; }
371 inline int StHbtV0::tpcHitsNeg()
const {
return mTpcHitsNeg; }
372 inline float StHbtV0::dedxNeg()
const {
return mDedxNeg;}
373 inline float StHbtV0::numdedxNeg()
const {
return mNumDedxNeg;}
374 inline float StHbtV0::errdedxNeg()
const {
return mErrDedxNeg;}
375 inline float StHbtV0::lendedxNeg()
const {
return mLenDedxNeg;}
376 inline float StHbtV0::pseudoRapNeg()
const {
return mMomNeg.pseudoRapidity();}
377 inline float StHbtV0::dedxPos()
const {
return mDedxPos;}
378 inline float StHbtV0::numdedxPos()
const {
return mNumDedxPos;}
379 inline float StHbtV0::errdedxPos()
const {
return mErrDedxPos;}
380 inline float StHbtV0::lendedxPos()
const {
return mLenDedxPos;}
381 inline float StHbtV0::pseudoRapPos()
const {
return mMomPos.pseudoRapidity();}
384 inline unsigned long StHbtV0::trackTopologyMapPos(
unsigned int word)
const {
return mTrackTopologyMapPos[word]; }
385 inline unsigned long StHbtV0::trackTopologyMapNeg(
unsigned int word)
const {
return mTrackTopologyMapNeg[word]; }
386 inline unsigned short StHbtV0::idNeg()
const {
return mKeyNeg; }
387 inline unsigned short StHbtV0::keyNeg()
const {
return mKeyNeg; }
388 inline unsigned short StHbtV0::idPos()
const {
return mKeyPos; }
389 inline unsigned short StHbtV0::keyPos()
const {
return mKeyPos; }
391 inline void StHbtV0::SetdecayLengthV0(
const float x){ mDecayLengthV0= x;}
392 inline void StHbtV0::SetdecayVertexV0X(
const float x){ mDecayVertexV0.setX(x);}
393 inline void StHbtV0::SetdecayVertexV0Y(
const float x){ mDecayVertexV0.setY(x);}
394 inline void StHbtV0::SetdecayVertexV0Z(
const float x){ mDecayVertexV0.setZ(x);}
395 inline void StHbtV0::SetdecayVertexV0(
const StHbtThreeVector v){ mDecayVertexV0 = v; }
396 inline void StHbtV0::SetdcaV0Daughters(
const float x){mDcaV0Daughters= x;}
397 inline void StHbtV0::SetdcaV0ToPrimVertex(
const float x){mDcaV0ToPrimVertex= x;}
398 inline void StHbtV0::SetdcaPosToPrimVertex(
const float x){mDcaPosToPrimVertex = x;}
399 inline void StHbtV0::SetdcaNegToPrimVertex(
const float x){mDcaNegToPrimVertex = x;}
401 inline void StHbtV0::SetmomPosX(
const float x){mMomPos.setX(x);}
402 inline void StHbtV0::SetmomPosY(
const float x){mMomPos.setY(x);}
403 inline void StHbtV0::SetmomPosZ(
const float x){mMomPos.setZ(x);}
405 inline void StHbtV0::SetmomNegX(
const float x){mMomNeg.setX(x);}
406 inline void StHbtV0::SetmomNegY(
const float x){mMomNeg.setY(x);}
407 inline void StHbtV0::SetmomNegZ(
const float x){mMomNeg.setZ(x);}
408 inline void StHbtV0::SetTrackTopologyMapPos(
unsigned int word,
const unsigned long& m){mTrackTopologyMapPos[word]=m;}
409 inline void StHbtV0::SetTrackTopologyMapNeg(
unsigned int word,
const unsigned long& m){mTrackTopologyMapNeg[word]=m;}
411 inline void StHbtV0::SetmomV0X(
const float x){mMomV0.setX(x);}
412 inline void StHbtV0::SetmomV0Y(
const float x){mMomV0.setY(x);}
413 inline void StHbtV0::SetmomV0Z(
const float x){mMomV0.setZ(x);}
415 inline void StHbtV0::SetalphaV0(
float x){mAlphaV0= x;}
416 inline void StHbtV0::SetptArmV0(
float x){mPtArmV0 = x;}
417 inline void StHbtV0::SeteLambda(
float x){mELambda= x;}
418 inline void StHbtV0::SeteK0Short(
float x){mEK0Short= x;}
419 inline void StHbtV0::SetePosProton(
float x){mEPosProton= x;}
420 inline void StHbtV0::SetePosPion(
float x){mEPosPion= x;}
421 inline void StHbtV0::SeteNegProton(
float x){mENegProton= x;}
422 inline void StHbtV0::SeteNegPion(
float x){mENegPion= x;}
423 inline void StHbtV0::SetmassLambda(
float x){mMassLambda = x;}
424 inline void StHbtV0::SetmassAntiLambda(
float x){mMassAntiLambda= x;}
425 inline void StHbtV0::SetmassK0Short(
float x){mMassK0Short= x;}
426 inline void StHbtV0::SetrapLambda(
float x){mRapLambda= x;}
427 inline void StHbtV0::SetrapK0Short(
float x){mRapK0Short = x;}
428 inline void StHbtV0::SetcTauLambda(
float x){mCTauLambda = x;}
429 inline void StHbtV0::SetcTauK0Short(
float x){mCTauK0Short = x;}
430 inline void StHbtV0::SetptV0(
float x){mPtV0 = x;}
431 inline void StHbtV0::SetptotV0(
float x){mPtotV0 = x;}
432 inline void StHbtV0::SetptPos(
float x){mPtPos = x;}
433 inline void StHbtV0::SetptotPos(
float x){mPtotPos = x;}
434 inline void StHbtV0::SetptNeg(
float x){ mPtNeg= x;}
435 inline void StHbtV0::SetptotNeg(
float x){ mPtotNeg= x;}
436 inline void StHbtV0::SetidNeg(
const unsigned short& s){ mKeyNeg= s;}
437 inline void StHbtV0::SetidPos(
const unsigned short& s){ mKeyPos= s;}
438 inline void StHbtV0::SetkeyNeg(
const unsigned short& s){ mKeyNeg= s;}
439 inline void StHbtV0::SetkeyPos(
const unsigned short& s){ mKeyPos= s;}
440 inline void StHbtV0::SettpcHitsPos(
const int& i){mTpcHitsPos=i;}
441 inline void StHbtV0::SettpcHitsNeg(
const int& i){mTpcHitsNeg=i;}
442 inline void StHbtV0::SetdedxNeg(
float x){mDedxNeg=x;}
443 inline void StHbtV0::SeterrdedxNeg(
float x){mErrDedxNeg=x;}
444 inline void StHbtV0::SetlendedxNeg(
float x){mLenDedxNeg=x;}
445 inline void StHbtV0::SetdedxPos(
float x){mDedxPos=x;}
446 inline void StHbtV0::SeterrdedxPos(
float x){mErrDedxPos=x;}
447 inline void StHbtV0::SetlendedxPos(
float x){mLenDedxPos=x;}
448 inline void StHbtV0::SetprimaryVertex(
const StHbtThreeVector v) { mPrimaryVertex = v; }