Skip to content

Commit 15f25b5

Browse files
authored
StJetMaker: save additional TOF information to the jet trees (#79)
1 parent 248c020 commit 15f25b5

13 files changed

Lines changed: 793 additions & 577 deletions

StRoot/StJetMaker/StAnaPars.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class StAnaPars : public TObject {
3434
, randomSelectorSeed(0)
3535
, changeTracks(0)
3636
, changeTowers(0)
37+
, storeOnlyDefaultVertex(false)
3738
{
3839
}
3940

@@ -112,6 +113,7 @@ class StAnaPars : public TObject {
112113
unsigned int randomSelectorSeed;
113114
StjAbstractTrack* changeTracks;
114115
StjAbstractTower* changeTowers;
116+
bool storeOnlyDefaultVertex; //add flag to tell jet maker to store only the highest positively ranked vertex
115117

116118
ClassDef(StAnaPars,0);
117119
};

StRoot/StJetMaker/StJetMaker2009.cxx

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,14 @@ int StJetMaker2009::Make()
9191
// Keep track of number of good vertices
9292
int nvertices = 0;
9393

94+
int totNumVertices = tpc.numberOfVertices();
95+
// store the total number of available vertices if set by anapars
96+
if(jetbranch->anapars->storeOnlyDefaultVertex && totNumVertices > 1) {
97+
totNumVertices = 1;
98+
}
99+
94100
// Vertex loop
95-
for (int iVertex = 0; iVertex < tpc.numberOfVertices(); ++iVertex) {
101+
for (int iVertex = 0; iVertex < totNumVertices; ++iVertex) {
96102
tpc.setVertexIndex(iVertex);
97103

98104
// Get TPC vertex and tracks
@@ -357,33 +363,39 @@ void StJetMaker2009::copyVertex(const StjPrimaryVertex& vertex, StJetVertex* jet
357363

358364
void StJetMaker2009::copyTrack(const StMuTrackEmu* t, StJetTrack* track)
359365
{
360-
track->mId = t->id();
361-
track->mDetectorId = t->detectorId();
362-
track->mFlag = t->flag();
363-
track->mCharge = t->charge();
364-
track->mNHits = t->nHits();
365-
track->mNHitsFit = t->nHitsFit();
366-
track->mNHitsPoss = t->nHitsPoss();
367-
track->mNHitsDedx = t->nHitsDedx();
368-
track->mDedx = t->dEdx();
369-
track->mBeta = t->beta();
370-
track->mFirstPoint = t->firstPoint();
371-
track->mLastPoint = t->lastPoint();
372-
track->mExitTowerId = t->exitTowerId();
373-
track->mExitDetectorId = t->exitDetectorId();
366+
track->mId = t->id();
367+
track->mDetectorId = t->detectorId();
368+
track->mFlag = t->flag();
369+
track->mCharge = t->charge();
370+
track->mNHits = t->nHits();
371+
track->mNHitsFit = t->nHitsFit();
372+
track->mNHitsPoss = t->nHitsPoss();
373+
track->mNHitsDedx = t->nHitsDedx();
374+
track->mDedx = t->dEdx();
375+
track->mBeta = t->beta();
376+
track->mFirstPoint = t->firstPoint();
377+
track->mLastPoint = t->lastPoint();
378+
track->mExitTowerId = t->exitTowerId();
379+
track->mExitDetectorId = t->exitDetectorId();
374380
track->mExitPoint.SetPtEtaPhi(t->bemcRadius(),t->etaext(),t->phiext());
375381
track->mDca.SetXYZ(t->dcaX(),t->dcaY(),t->dcaZ());
376-
track->mDcaD = t->dcaD();
377-
track->mChi2 = t->chi2();
378-
track->mChi2Prob = t->chi2prob();
382+
track->mDcaD = t->dcaD();
383+
track->mChi2 = t->chi2();
384+
track->mChi2Prob = t->chi2prob();
379385
TVector3 mom(t->px(),t->py(),t->pz());
380-
track->mPt = mom.Pt();
381-
track->mEta = mom.Eta();
382-
track->mPhi = mom.Phi();
383-
track->mNSigmaPion = t->nSigmaPion();
384-
track->mNSigmaKaon = t->nSigmaKaon();
385-
track->mNSigmaProton = t->nSigmaProton();
386-
track->mNSigmaElectron = t->nSigmaElectron();
386+
track->mPt = mom.Pt();
387+
track->mEta = mom.Eta();
388+
track->mPhi = mom.Phi();
389+
track->mNSigmaPion = t->nSigmaPion();
390+
track->mNSigmaKaon = t->nSigmaKaon();
391+
track->mNSigmaProton = t->nSigmaProton();
392+
track->mNSigmaElectron = t->nSigmaElectron();
393+
394+
track->mBTofTrayId = t->btofTrayId();
395+
track->mNSigmaTofPion = t->nSigmaTofPion();
396+
track->mNSigmaTofKaon = t->nSigmaTofKaon();
397+
track->mNSigmaTofProton = t->nSigmaTofProton();
398+
track->mNSigmaTofElectron = t->nSigmaTofElectron();
387399
}
388400

389401
void StJetMaker2009::copyTower(const StMuTowerEmu* t, StJetTower* tower)

StRoot/StJetMaker/StJetMaker2009.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,4 @@ struct StJetBranch {
8181

8282
ClassDef(StJetMaker2009,0);
8383
};
84-
8584
#endif

StRoot/StJetMaker/StJetMaker2012.cxx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,14 @@ int StJetMaker2012::Make()
108108
// Keep track of number of good vertices
109109
int nvertices = 0;
110110

111+
int totNumVertices = tpc.numberOfVertices();
112+
// store the total number of available vertices if set by anapars
113+
if(jetbranch->anapars->storeOnlyDefaultVertex && totNumVertices > 1) {
114+
totNumVertices = 1;
115+
}
116+
111117
// Vertex loop
112-
for (int iVertex = 0; iVertex < tpc.numberOfVertices(); ++iVertex) {
118+
for (int iVertex = 0; iVertex < totNumVertices; ++iVertex) {
113119
tpc.setVertexIndex(iVertex);
114120

115121
// Get TPC vertex and tracks

StRoot/StJetMaker/StJetSkimEventMaker.cxx

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -237,19 +237,47 @@ Int_t StJetSkimEventMaker::Make()
237237

238238
// VPD Stuff:
239239
if (muDst->btofHeader()){
240-
mEvent->setVpdTdiff(muDst->btofHeader()->tDiff());
241-
mEvent->setVpdTstart(muDst->btofHeader()->tStart());
242-
mEvent->setVpdZvertex(muDst->btofHeader()->vpdVz());
243-
mEvent->setVpdEastHits(muDst->btofHeader()->numberOfVpdHits(east));
244-
mEvent->setVpdWestHits(muDst->btofHeader()->numberOfVpdHits(west));
240+
mEvent->setVpdTdiff(muDst->btofHeader()->tDiff());
241+
mEvent->setVpdZvertex(muDst->btofHeader()->vpdVz());
242+
mEvent->setVpdEastHits(muDst->btofHeader()->numberOfVpdHits(east));
243+
mEvent->setVpdWestHits(muDst->btofHeader()->numberOfVpdHits(west));
244+
// filling in pile-up information from the VPD
245+
mEvent->setNVpdEGoodHits(muDst->btofHeader()->vpdEGoodHits());
246+
mEvent->setNVpdWGoodHits(muDst->btofHeader()->vpdWGoodHits());
247+
mEvent->setEarliestVpdEHit(muDst->btofHeader()->earliestVpdEHit());
248+
mEvent->setEarliestVpdWHit(muDst->btofHeader()->earliestVpdWHit());
249+
mEvent->setClosestVpdEHit(muDst->btofHeader()->closestVpdEHit());
250+
mEvent->setClosestVpdWHit(muDst->btofHeader()->closestVpdWHit());
251+
mEvent->setLatestVpdEHit(muDst->btofHeader()->latestVpdEHit());
252+
mEvent->setLatestVpdWHit(muDst->btofHeader()->latestVpdWHit());
253+
//the start time could be from either VPD or start-less TOF
254+
mEvent->setTstart(muDst->btofHeader()->tStart());
255+
mEvent->setNTzero(muDst->btofHeader()->nTzero());
256+
mEvent->setNTzeroCan(muDst->btofHeader()->nTzeroCan());
257+
mEvent->setTCanFirst(muDst->btofHeader()->tCanFirst());
258+
mEvent->setTCanLast(muDst->btofHeader()->tCanLast());
245259
}
246260
else { // No StBTofHeader
247-
cout << "BAD BTOFHEADER" << endl;
248-
mEvent->setVpdTdiff(-999.);
249-
mEvent->setVpdTstart(-999.);
250-
mEvent->setVpdZvertex(-999.);
251-
mEvent->setVpdEastHits(-1);
252-
mEvent->setVpdWestHits(-1);
261+
LOG_INFO << "BAD BTOFHEADER" << endm;
262+
mEvent->setVpdTdiff(-999.);
263+
mEvent->setVpdZvertex(-999.);
264+
mEvent->setVpdEastHits(-1);
265+
mEvent->setVpdWestHits(-1);
266+
mEvent->setNVpdEGoodHits(0);
267+
mEvent->setNVpdWGoodHits(0);
268+
269+
mEvent->setEarliestVpdEHit(99999.);
270+
mEvent->setEarliestVpdWHit(99999.);
271+
mEvent->setClosestVpdEHit(99999.);
272+
mEvent->setClosestVpdWHit(99999.);
273+
mEvent->setLatestVpdEHit(-99999.);
274+
mEvent->setLatestVpdWHit(-99999.);
275+
276+
mEvent->setTstart(-999.);
277+
mEvent->setNTzero(0);
278+
mEvent->setNTzeroCan(0);
279+
mEvent->setTCanFirst(99999.);
280+
mEvent->setTCanLast(-99999.);
253281
}
254282

255283
//spin specific info from Mudst:

StRoot/StJetMaker/StUEMaker2009.cxx

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -204,31 +204,37 @@ void StUEMaker2009::copyVertex(const StjPrimaryVertex& vertex, StJetVertex* jetv
204204

205205
void StUEMaker2009::copyTrack(const StjTrack& t, StJetTrack* track)
206206
{
207-
track->mId = t.id;
208-
track->mDetectorId = t.detectorId;
209-
track->mFlag = t.flag;
210-
track->mCharge = t.charge;
211-
track->mNHits = t.nHits;
212-
track->mNHitsFit = t.nHitsFit;
213-
track->mNHitsPoss = t.nHitsPoss;
214-
track->mNHitsDedx = t.nHitsDedx;
215-
track->mDedx = t.dEdx;
216-
track->mBeta = t.beta;
217-
track->mFirstPoint = t.firstPoint;
218-
track->mLastPoint = t.lastPoint;
219-
track->mExitTowerId = t.exitTowerId;
220-
track->mExitDetectorId = t.exitDetectorId;
207+
track->mId = t.id;
208+
track->mDetectorId = t.detectorId;
209+
track->mFlag = t.flag;
210+
track->mCharge = t.charge;
211+
track->mNHits = t.nHits;
212+
track->mNHitsFit = t.nHitsFit;
213+
track->mNHitsPoss = t.nHitsPoss;
214+
track->mNHitsDedx = t.nHitsDedx;
215+
track->mDedx = t.dEdx;
216+
track->mBeta = t.beta;
217+
track->mFirstPoint = t.firstPoint;
218+
track->mLastPoint = t.lastPoint;
219+
track->mExitTowerId = t.exitTowerId;
220+
track->mExitDetectorId = t.exitDetectorId;
221221
track->mDca.SetXYZ(t.dcaX,t.dcaY,t.dcaZ);
222-
track->mDcaD = t.dcaD;
223-
track->mChi2 = t.chi2;
224-
track->mChi2Prob = t.chi2prob;
225-
track->mPt = t.pt;
226-
track->mEta = t.eta;
227-
track->mPhi = t.phi;
228-
track->mNSigmaPion = t.nSigmaPion;
229-
track->mNSigmaKaon = t.nSigmaKaon;
230-
track->mNSigmaProton = t.nSigmaProton;
231-
track->mNSigmaElectron = t.nSigmaElectron;
222+
track->mDcaD = t.dcaD;
223+
track->mChi2 = t.chi2;
224+
track->mChi2Prob = t.chi2prob;
225+
track->mPt = t.pt;
226+
track->mEta = t.eta;
227+
track->mPhi = t.phi;
228+
track->mNSigmaPion = t.nSigmaPion;
229+
track->mNSigmaKaon = t.nSigmaKaon;
230+
track->mNSigmaProton = t.nSigmaProton;
231+
track->mNSigmaElectron = t.nSigmaElectron;
232+
233+
track->mBTofTrayId = t.btofTrayId;
234+
track->mNSigmaTofPion = t.nSigmaTofPion;
235+
track->mNSigmaTofKaon = t.nSigmaTofKaon;
236+
track->mNSigmaTofProton = t.nSigmaTofProton;
237+
track->mNSigmaTofElectron = t.nSigmaTofElectron;
232238
}
233239

234240
void StUEMaker2009::copyTower(const StjTowerEnergy& t, StJetTower* tower)

StRoot/StJetMaker/emulator/StMuTrackEmu.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ class StMuTrackEmu {
4242
, _trackIndex(0)
4343
, _id(0)
4444
, _detectorId(0)
45+
, _btofTrayId(0)
46+
, _nSigmaTofPion(0)
47+
, _nSigmaTofKaon(0)
48+
, _nSigmaTofProton(0)
49+
, _nSigmaTofElectron(0)
4550
{ }
4651

4752
virtual ~StMuTrackEmu() { }
@@ -80,6 +85,12 @@ class StMuTrackEmu {
8085
short id() const { return _id; }
8186
short detectorId() const { return _detectorId; }
8287

88+
int btofTrayId() const { return _btofTrayId; }
89+
double nSigmaTofPion() const { return _nSigmaTofPion; }
90+
double nSigmaTofKaon() const { return _nSigmaTofKaon; }
91+
double nSigmaTofProton() const { return _nSigmaTofProton; }
92+
double nSigmaTofElectron() const { return _nSigmaTofElectron; }
93+
8394
private:
8495

8596
friend class StjeTrackListToStMuTrackFourVecList;
@@ -119,6 +130,12 @@ class StMuTrackEmu {
119130

120131
short _id;
121132
short _detectorId;
133+
134+
int _btofTrayId;
135+
double _nSigmaTofPion;
136+
double _nSigmaTofKaon;
137+
double _nSigmaTofProton;
138+
double _nSigmaTofElectron;
122139
};
123140

124141
#endif // STMUTRACKEMU_H

StRoot/StJetMaker/emulator/StjeTrackListToStMuTrackFourVecList.cxx

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,44 @@ StMuTrackEmu* StjeTrackListToStMuTrackFourVecList::createTrackEmu(const StjTrack
3434
TVector3 momentum;
3535
momentum.SetPtEtaPhi(track.pt, track.eta, track.phi);
3636

37-
ret->_px = momentum.Px() ;
38-
ret->_py = momentum.Py() ;
39-
ret->_pz = momentum.Pz() ;
40-
ret->_flag = track.flag ;
41-
ret->_nHits = track.nHits ;
42-
ret->_charge = track.charge ;
43-
ret->_nHitsPoss = track.nHitsPoss ;
44-
ret->_nHitsDedx = track.nHitsDedx ;
45-
ret->_nHitsFit = track.nHitsFit ;
46-
ret->_nSigmaPion = track.nSigmaPion ;
47-
ret->_nSigmaKaon = track.nSigmaKaon ;
48-
ret->_nSigmaProton = track.nSigmaProton ;
49-
ret->_nSigmaElectron = track.nSigmaElectron;
50-
ret->_Tdca = track.Tdca ;
51-
ret->_dcaX = track.dcaX ;
52-
ret->_dcaY = track.dcaY ;
53-
ret->_dcaZ = track.dcaZ ;
54-
ret->_dcaD = track.dcaD ;
55-
ret->_chi2 = track.chi2 ;
56-
ret->_chi2prob = track.chi2prob ;
57-
ret->_BField = track.BField ;
58-
ret->_bemcRadius = track.bemcRadius ;
59-
ret->_etaext = track.exitEta ;
60-
ret->_phiext = track.exitPhi ;
61-
ret->_exitTowerId = track.exitTowerId ;
62-
ret->_exitDetectorId = track.exitDetectorId;
63-
ret->_dEdx = track.dEdx ;
64-
ret->_beta = track.beta ;
65-
ret->_firstPoint = track.firstPoint ;
66-
ret->_lastPoint = track.lastPoint ;
67-
ret->_trackIndex = track.trackIndex ;
68-
ret->_id = track.id ;
69-
ret->_detectorId = track.detectorId ;
37+
ret->_px = momentum.Px() ;
38+
ret->_py = momentum.Py() ;
39+
ret->_pz = momentum.Pz() ;
40+
ret->_flag = track.flag ;
41+
ret->_nHits = track.nHits ;
42+
ret->_charge = track.charge ;
43+
ret->_nHitsPoss = track.nHitsPoss ;
44+
ret->_nHitsDedx = track.nHitsDedx ;
45+
ret->_nHitsFit = track.nHitsFit ;
46+
ret->_nSigmaPion = track.nSigmaPion ;
47+
ret->_nSigmaKaon = track.nSigmaKaon ;
48+
ret->_nSigmaProton = track.nSigmaProton ;
49+
ret->_nSigmaElectron = track.nSigmaElectron ;
50+
ret->_Tdca = track.Tdca ;
51+
ret->_dcaX = track.dcaX ;
52+
ret->_dcaY = track.dcaY ;
53+
ret->_dcaZ = track.dcaZ ;
54+
ret->_dcaD = track.dcaD ;
55+
ret->_chi2 = track.chi2 ;
56+
ret->_chi2prob = track.chi2prob ;
57+
ret->_BField = track.BField ;
58+
ret->_bemcRadius = track.bemcRadius ;
59+
ret->_etaext = track.exitEta ;
60+
ret->_phiext = track.exitPhi ;
61+
ret->_exitTowerId = track.exitTowerId ;
62+
ret->_exitDetectorId = track.exitDetectorId ;
63+
ret->_dEdx = track.dEdx ;
64+
ret->_beta = track.beta ;
65+
ret->_firstPoint = track.firstPoint ;
66+
ret->_lastPoint = track.lastPoint ;
67+
ret->_trackIndex = track.trackIndex ;
68+
ret->_id = track.id ;
69+
ret->_detectorId = track.detectorId ;
70+
ret->_btofTrayId = track.btofTrayId ;
71+
ret->_nSigmaTofPion = track.nSigmaTofPion ;
72+
ret->_nSigmaTofKaon = track.nSigmaTofKaon ;
73+
ret->_nSigmaTofProton = track.nSigmaTofProton ;
74+
ret->_nSigmaTofElectron = track.nSigmaTofElectron ;
7075

7176
return ret;
7277
}

StRoot/StJetMaker/mudst/StjTPCMuDst.cxx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
#include <TVector3.h>
1212

13+
#include "StMuDSTMaker/COMMON/StMuBTofHit.h"
14+
1315
int StjTPCMuDst::currentVertexIndex() const
1416
{
1517
return StMuDst::currentVertexIndex();
@@ -84,6 +86,7 @@ StjTrack StjTPCMuDst::createTrack(const StMuTrack* mutrack, int i, double magnet
8486

8587
TVector3 p(mutrack->momentum().x(), mutrack->momentum().y(), mutrack->momentum().z());
8688

89+
8790
track.pt = p.Pt();
8891
track.eta = p.Eta();
8992
track.phi = p.Phi();
@@ -106,6 +109,16 @@ StjTrack StjTPCMuDst::createTrack(const StMuTrack* mutrack, int i, double magnet
106109
track.chi2prob = mutrack->chi2prob();
107110
track.BField = magneticField;
108111

112+
track.btofTrayId = -999;
113+
// Getting BTOF TrayID
114+
if(mutrack->index2BTofHit()>=0) { // to make sure that there is a BTOF hit
115+
track.btofTrayId = mutrack->tofHit()->tray();
116+
}
117+
track.nSigmaTofPion = mutrack->btofPidTraits().sigmaPion();
118+
track.nSigmaTofKaon = mutrack->btofPidTraits().sigmaKaon();
119+
track.nSigmaTofProton = mutrack->btofPidTraits().sigmaProton();
120+
track.nSigmaTofElectron = mutrack->btofPidTraits().sigmaElectron();
121+
109122
// The optimum BEMC radius to use in extrapolating the track was determined to be 238.6 cm
110123
// (slightly behind the shower max plane) in Murad Sarsour's electron jets analysis.
111124
// http://cyclotron.tamu.edu/star/2006Jets/nov27_2007/details.html

0 commit comments

Comments
 (0)