31 #include "StHbtMaker/Reader/StHbtStrangeMuDstEventReader.h"
38 #include "StHbtMaker/Reader/StHbtGstarTxtReader.h"
39 #include "StHbtMaker/Base/StHbtEventCut.h"
40 #include "StHbtMaker/Base/StHbtTrackCut.h"
41 #include "StHbtMaker/Base/StHbtV0Cut.h"
42 #include "StHbtMaker/Base/StHbtKinkCut.h"
44 #include "SystemOfUnits.h"
45 #include "StHbtMaker/Infrastructure/StHbtV0Collection.hh"
47 #include "StStrangeMuDstMaker/StStrangeEvMuDst.hh"
48 #include "StStrangeMuDstMaker/StV0MuDst.hh"
54 #if !(ST_NO_NAMESPACES)
55 using namespace units;
62 mStrangeMuDstMaker =0;
69 StHbtStrangeMuDstEventReader::~StHbtStrangeMuDstEventReader(){
70 if (mEventCut)
delete mEventCut;
71 if (mV0Cut)
delete mV0Cut;
74 StHbtString StHbtStrangeMuDstEventReader::Report(){
75 StHbtString temp =
"\n This is the StHbtStrangeMuDstEventReader\n";
76 temp +=
"---> EventCuts in Reader: ";
78 temp += mEventCut->Report();
83 temp +=
"\n---> V0Cuts in Reader: ";
85 temp += mV0Cut->Report();
94 StHbtEvent* StHbtStrangeMuDstEventReader::ReturnHbtEvent(){
96 cout <<
" StHbtStrangeMuDstEventReader::ReturnHbtEvent()" << endl;
100 cout <<
" StHbtStrangeMuDstEventReader::ReturnHbtEvent() - No StrangeEvMuDst !!! " << endl;
106 cout <<
" StHbtStrangeMuDstEventReader::ReturnHbtEvent() - primary vertex : " << vp << endl;
107 hbtEvent->SetPrimVertPos(vp);
108 hbtEvent->SetNumberOfTracks(strangeEvMuDst->primaryTracks());
109 hbtEvent->SetEventNumber(strangeEvMuDst->
event());
114 if (!(mEventCut->Pass(hbtEvent))){
120 for(
int i= 0; i < mStrangeMuDstMaker->GetNV0(); i++){
121 StV0MuDst* v0FromMuDst = mStrangeMuDstMaker->GetV0(i);
125 hbtV0->SetdecayVertexV0X(v0FromMuDst->decayVertexV0X());
126 hbtV0->SetdecayVertexV0Y(v0FromMuDst->decayVertexV0Y());
132 hbtV0->SetmomPosX(v0FromMuDst->momPosX());
133 hbtV0->SetmomPosY(v0FromMuDst->momPosY());
134 hbtV0->SetmomPosZ(v0FromMuDst->
momPosZ());
135 hbtV0->SetmomNegX(v0FromMuDst->momNegX());
136 hbtV0->SetmomNegY(v0FromMuDst->momNegY());
137 hbtV0->SetmomNegZ(v0FromMuDst->
momNegZ());
139 cout <<
" hist pos ";
141 cout <<
" hist neg ";
142 cout << v0FromMuDst->
topologyMapNeg().numberOfHits(kTpcId) << endl;
144 hbtV0->SettpcHitsPos(v0FromMuDst->
topologyMapPos().numberOfHits(kTpcId));
145 hbtV0->SettpcHitsNeg(v0FromMuDst->
topologyMapNeg().numberOfHits(kTpcId));
146 hbtV0->SetTrackTopologyMapPos(0,v0FromMuDst->
topologyMapPos().data(0));
147 hbtV0->SetTrackTopologyMapPos(1,v0FromMuDst->
topologyMapPos().data(1));
148 hbtV0->SetTrackTopologyMapNeg(0,v0FromMuDst->
topologyMapNeg().data(0));
149 hbtV0->SetTrackTopologyMapNeg(1,v0FromMuDst->
topologyMapNeg().data(1));
150 hbtV0->SetkeyPos(v0FromMuDst->
keyPos());
151 hbtV0->SetkeyNeg(v0FromMuDst->
keyNeg());
153 cout <<
" keyPos " << v0FromMuDst->
keyPos() << endl;
154 cout <<
" keyNeg " << v0FromMuDst->
keyNeg() << endl;
156 hbtV0->SetmomV0X(v0FromMuDst->momV0X());
157 hbtV0->SetmomV0Y(v0FromMuDst->momV0Y());
158 hbtV0->SetmomV0Z(v0FromMuDst->
momV0Z());
161 cout << v0FromMuDst->alphaV0();
163 cout << v0FromMuDst->
ptArmV0() << endl;
165 hbtV0->SetalphaV0(v0FromMuDst->alphaV0());
166 hbtV0->SetptArmV0(v0FromMuDst->
ptArmV0());
167 hbtV0->SeteLambda(v0FromMuDst->
eLambda());
168 hbtV0->SeteK0Short(v0FromMuDst->
eK0Short());
169 hbtV0->SetePosProton(v0FromMuDst->
ePosProton());
170 hbtV0->SetePosPion(v0FromMuDst->
ePosPion());
171 hbtV0->SeteNegPion(v0FromMuDst->
eNegPion());
172 hbtV0->SeteNegProton(v0FromMuDst->
eNegProton());
173 hbtV0->SetmassLambda(v0FromMuDst->
massLambda());
176 hbtV0->SetrapLambda(v0FromMuDst->
rapLambda());
177 hbtV0->SetrapK0Short(v0FromMuDst->
rapK0Short());
178 hbtV0->SetcTauLambda(v0FromMuDst->
cTauLambda());
180 hbtV0->SetptV0(v0FromMuDst->
ptV0());
181 hbtV0->SetptotV0(v0FromMuDst->
ptotV0());
182 hbtV0->SetptPos(v0FromMuDst->
ptPos());
183 hbtV0->SetptotPos(v0FromMuDst->
ptotPos());
184 hbtV0->SetptNeg(v0FromMuDst->
ptNeg());
185 hbtV0->SetptotNeg(v0FromMuDst->
ptotNeg());
186 hbtV0->SetdedxPos(v0FromMuDst->
dedxPos());
187 hbtV0->SetdedxNeg(v0FromMuDst->
dedxNeg());
193 if (!(mV0Cut->Pass(hbtV0))){
200 hbtEvent->V0Collection()->push_back(hbtV0);
204 cout <<
" StHbtStrangeMuDstEventReader::ReturnHbtEvent() - " << hbtEvent->V0Collection()->size();
205 cout <<
" V0s pushed in collection " << endl;
207 printf(
" StHbtStrangeMuDstEventReader::ReturnHbtEvent() - %8i(%i) V0s pushed into collection \n",
208 hbtEvent->V0Collection()->size(),
209 mStrangeMuDstMaker->GetNV0());
216 if (!(mEventCut->Pass(hbtEvent))){
Float_t momPosZ() const
Momentum components of pos. daughter.
Float_t ptotV0()
Total momentum.
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 eNegProton()
Energy of neg. daughter assuming antiproton.
Float_t ptArmV0()
Armenteros-Podolanski variables.
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.
StHbtStrangeMuDstEventReader()
this is the chain where the StStrangeMuDstMaker is
Float_t ptNeg()
Transverse momentum of neg. daughter.
Float_t rapLambda()
Rapidity assuming (anti)lambda.
Float_t eLambda()
Energy assuming lambda hypothesis.
Float_t dcaV0Daughters() const
DCA of v0 daughters at decay vertex.
Float_t primaryVertexZ() const
Primary vtx position coordinates.
Float_t massK0Short()
Mass assuming k-short hypothesis.
Float_t ePosPion()
Energy of pos. daughter assuming pion.
Float_t decayVertexV0Z() const
Coordinates of decay vertex.
Int_t event() const
Event number.
Float_t momNegZ() const
Momentum components of neg. daughter.