2 #include "StHbtTTreeV0.h"
3 #include "phys_constants.h"
4 #include "StHbtTTreeEvent.h"
7 StHbtV0::StHbtV0(
const StHbtV0& v){
8 mDecayLengthV0 = v.mDecayLengthV0;
9 mDecayVertexV0 = v.mDecayVertexV0;
10 mDcaV0Daughters = v.mDcaV0Daughters;
11 mDcaV0ToPrimVertex = v.mDcaV0ToPrimVertex;
12 mDcaPosToPrimVertex = v.mDcaPosToPrimVertex;
13 mDcaNegToPrimVertex = v.mDcaNegToPrimVertex;
17 mTrackTopologyMapPos[0] = v.mTrackTopologyMapPos[0];
18 mTrackTopologyMapPos[1] = v.mTrackTopologyMapPos[1];
19 mTrackTopologyMapNeg[0] = v.mTrackTopologyMapNeg[0];
20 mTrackTopologyMapNeg[1] = v.mTrackTopologyMapNeg[1];
25 mTpcHitsPos = v.mTpcHitsPos;
26 mTpcHitsNeg = v.mTpcHitsNeg;
30 mChi2Pos = v.mChi2Pos;
32 mChi2Neg = v.mChi2Neg;
34 mDedxPos = v.mDedxPos;
35 mErrDedxPos = v.mErrDedxPos;
36 mLenDedxPos = v.mLenDedxPos;
37 mDedxNeg = v.mDedxNeg;
38 mErrDedxNeg = v.mErrDedxNeg;
39 mLenDedxNeg = v.mLenDedxNeg;
41 mNumDedxPos = v.mNumDedxPos;
42 mNumDedxNeg = v.mNumDedxNeg;
44 mHelixPos = v.mHelixPos;
45 mHelixNeg = v.mHelixNeg;
46 mHiddenInfo = v.mHiddenInfo? v.mHiddenInfo->clone() : 0;
50 void StHbtV0::UpdateV0(){
52 float MomNegAlongV0, MomPosAlongV0;
54 mMomV0 = mMomPos + mMomNeg;
55 mPtV0 = mMomV0.perp();
56 mPtotV0 = mMomV0.mag();
57 mPtPos = mMomPos.perp();
58 mPtotPos= mMomPos.mag();
59 mPtNeg = mMomNeg.perp();
60 mPtotNeg= mMomNeg.mag();
61 mELambda= ::sqrt(mPtotV0*mPtotV0+M_LAMBDA*M_LAMBDA);
62 mEK0Short= ::sqrt(mPtotV0*mPtotV0+M_KAON_0_SHORT*M_KAON_0_SHORT);
63 mEPosProton = ::sqrt(mPtotPos*mPtotPos+M_PROTON*M_PROTON);
64 mENegProton = ::sqrt(mPtotNeg*mPtotNeg+M_PROTON*M_PROTON);
65 mEPosPion = ::sqrt(mPtotPos*mPtotPos+M_PION_PLUS*M_PION_PLUS);
66 mENegPion = ::sqrt(mPtotNeg*mPtotNeg+M_PION_MINUS*M_PION_MINUS);
68 MomNegAlongV0 = mMomNeg*mMomV0 / ::sqrt(::pow(mPtotV0,2));
69 MomPosAlongV0 = mMomPos*mMomV0 / ::sqrt(::pow(mPtotV0,2));
71 mAlphaV0 = (MomPosAlongV0-MomNegAlongV0)/(MomPosAlongV0+MomNegAlongV0);
72 mPtArmV0 = ::sqrt(mPtotPos*mPtotPos - MomPosAlongV0*MomPosAlongV0);
73 mMassLambda = ::sqrt(::pow(mEPosProton+mENegPion,2)-::pow(mPtotV0,2));
74 mMassAntiLambda = ::sqrt(::pow(mENegProton+mEPosPion,2)-::pow(mPtotV0,2));
75 mMassK0Short = ::sqrt(::pow(mENegPion+mEPosPion,2)-::pow(mPtotV0,2));
77 mRapLambda = 0.5*::log( (mELambda+mMomV0.z()) / (mELambda-mMomV0.z()) );
78 mCTauLambda = M_LAMBDA*(mDecayLengthV0) / ::sqrt( ::pow((
double)mMomV0.mag(),2.) );
80 mRapK0Short = 0.5*::log( (mEK0Short+mMomV0.z()) / (mEK0Short-mMomV0.z()) );
81 mCTauK0Short = M_KAON_0_SHORT*(mDecayLengthV0) / ::sqrt( ::pow((
double)mMomV0.mag(),2.) );
86 #include "StStrangeMuDstMaker/StV0MuDst.hh"
127 cout <<
" keyPos " << v.
keyPos() << endl;
128 cout <<
" keyNeg " << v.
keyNeg() << endl;
137 mAlphaV0 = v.alphaV0();
164 mDecayVertexV0 =
StHbtThreeVector(v->mDecayVertexV0X,v->mDecayVertexV0Y,v->mDecayVertexV0Z);
166 mPrimaryVertex.setX(ev->mVertexX);
167 mPrimaryVertex.setY(ev->mVertexY);
168 mPrimaryVertex.setZ(ev->mVertexZ);
170 mDecayLengthV0 = v->mDecayLengthV0;
171 mDcaV0Daughters = v->mDcaV0Daughters;
172 mDcaV0ToPrimVertex = v->mDcaV0ToPrimVertex;
173 mDcaPosToPrimVertex = v->mDcaPosToPrimVertex;
174 mDcaNegToPrimVertex = v->mDcaNegToPrimVertex;
179 mTrackTopologyMapPos[0] = v->mTrackTopologyMapPos[0];
180 mTrackTopologyMapPos[1] = v->mTrackTopologyMapPos[1];
181 mTrackTopologyMapNeg[0] = v->mTrackTopologyMapNeg[0];
182 mTrackTopologyMapNeg[1] = v->mTrackTopologyMapNeg[1];
184 mKeyPos = v->mKeyPos;
185 mKeyNeg = v->mKeyNeg;
187 mTpcHitsPos = v->mTpcHitsPos;
188 mTpcHitsNeg = v->mTpcHitsNeg;
190 mChi2V0 = v->mChi2V0;
192 mChi2Pos = v->mChi2Pos;
194 mChi2Neg = v->mChi2Neg;
197 mDedxPos = v->mDedxPos;
198 mErrDedxPos = v->mErrDedxPos;
199 mLenDedxPos = v->mLenDedxPos;
200 mDedxNeg = v->mDedxNeg;
201 mErrDedxNeg = v->mErrDedxNeg;
202 mLenDedxNeg = v->mLenDedxNeg;
204 mNumDedxPos = v->mNumDedxPos;
205 mNumDedxNeg = v->mNumDedxNeg;
218 void StHbtV0::SetHiddenInfo(
StHbtHiddenInfo* aHiddenInfo) {mHiddenInfo=aHiddenInfo;}
219 bool StHbtV0::ValidHiddenInfo()
const {
if (mHiddenInfo)
return true;
else return false; }
Float_t momPosZ() const
Momentum components of pos. daughter.
Float_t chi2V0() const
Chi square of V0.
Float_t ptotV0()
Total momentum.
UShort_t numDedxNeg() const
Number of dE/dX points for neg. daughter.
Float_t ePosProton()
Energy of pos. daughter assuming proton.
Float_t dcaV0ToPrimVertex() const
DCA of v0 to primary vertex.
Float_t massAntiLambda()
Mass assuming antilambda hypothesis.
Int_t keyNeg() const
Neg. daughter track key.
Float_t dcaPosToPrimVertex() const
DCA of pos v0 daughter to pri vertex.
Float_t ptV0()
Transverse momentum.
Float_t ptotPos()
Total momentum of pos. daughter.
Float_t massLambda()
Mass assuming lambda hypothesis.
Float_t rapK0Short()
Rapidity assuming k-short.
Float_t eNegPion()
Energy of neg. daughter assuming pion.
virtual Float_t decayLengthV0() const
3-d decay distance
Int_t keyPos() const
Pos. daughter track key.
StTrackTopologyMap & topologyMapPos()
Pos. daughter track topology map.
Float_t lenDedxPos() const
Length of dE/dX track of pos. daughter.
Float_t eNegProton()
Energy of neg. daughter assuming antiproton.
Float_t ptArmV0()
Armenteros-Podolanski variables.
Float_t lenDedxNeg() const
Length of dE/dX track of neg. daughter.
Float_t eK0Short()
Energy assuming k-short hypothesis.
Float_t dcaNegToPrimVertex() const
DCA of neg v0 daughter to pri vertex.
Float_t dedxNeg() const
dE/dX of neg. daughter
Float_t cTauLambda()
Lifetime (ctau) assuming (anti)lambda.
Float_t cTauK0Short()
Lifetime (ctau) assuming k-short.
Float_t ptPos()
Transverse momentum of pos. daughter.
Float_t ptotNeg()
Total momentum of neg. daughter.
Float_t momV0Z() const
Momentum components of V0.
Float_t dedxPos() const
dE/dX of pos. daughter
StTrackTopologyMap & topologyMapNeg()
Neg. daughter track topology map.
Float_t chi2Neg() const
Chi square of neg. daughter.
Float_t ptNeg()
Transverse momentum of neg. daughter.
Float_t rapLambda()
Rapidity assuming (anti)lambda.
Float_t eLambda()
Energy assuming lambda hypothesis.
Float_t errDedxNeg() const
Error on mean of dE/dX of neg. daughter.
Float_t dcaV0Daughters() const
DCA of v0 daughters at decay vertex.
Float_t chi2Pos() const
Chi square of pos. daughter.
Float_t massK0Short()
Mass assuming k-short hypothesis.
Float_t clPos() const
Confidence level of pos. daughter.
Float_t ePosPion()
Energy of pos. daughter assuming pion.
Float_t clV0() const
Confidence level of V0.
Float_t decayVertexV0Z() const
Coordinates of decay vertex.
UShort_t numDedxPos() const
Number of dE/dX points for pos. daughter.
Float_t errDedxPos() const
Error on mean of dE/dX of pos. daughter.
Float_t momNegZ() const
Momentum components of neg. daughter.
Float_t clNeg() const
Confidence level of neg. daughter.