21 {
"pos",
"neg",
"zero",
"undefined" };
38 "pip",
"pim",
"kap",
"kam",
39 "prp",
"prm",
"elp",
"elm",
41 "gam",
"k0s",
"lam",
"ala",
42 "rho",
"kst",
"aks",
"phi",
62 std::pair<int,int>(
k0s,
pip), std::pair<int,int>(k0s,
pim),
63 std::pair<int,int>(
lam,
prp), std::pair<int,int>(lam,
pim),
64 std::pair<int,int>(
ala,
prm), std::pair<int,int>(ala,
pip),
65 std::pair<int,int>(
sip,
prp), std::pair<int,int>(
asi,
prm),
66 std::pair<int,int>(
any,
pip), std::pair<int,int>(any,
pim),
67 std::pair<int,int>(
any,
kap), std::pair<int,int>(any,
kam),
68 std::pair<int,int>(
any,
prp), std::pair<int,int>(any,
prm),
69 std::pair<int,int>(
any,
elp), std::pair<int,int>(any,
elm),
70 std::pair<int,int>(
any,
hap), std::pair<int,int>(any,
ham)
76 std::pair<int,int>(
pip,
pim),
77 std::pair<int,int>(
kap,
pim),
78 std::pair<int,int>(
pip,
kam),
79 std::pair<int,int>(
kap,
kam)
89 histoFile =
new TFile(histoFileLabel.c_str(),
"recreate");
92 ntupleFile =
new TFile(ntupleFileLabel.c_str(),
"recreate");
107 case 211 :
return pip;
break;
108 case -211 :
return pim;
break;
110 case 321 :
return kap;
break;
111 case -321 :
return kam;
break;
113 case 2212 :
return prp;
break;
114 case -2212 :
return prm;
break;
116 case 11 :
return elp;
break;
117 case -11 :
return elm;
break;
125 case 22 :
return gam;
break;
126 case 310 :
return k0s;
break;
127 case 3122 :
return lam;
break;
128 case -3122 :
return ala;
break;
137 case 3222 :
return sip;
break;
138 case -3222 :
return asi;
break;
140 default :
return -1;
break;
147 if(charge > 0)
return pos;
158 trackTrees.push_back(
new TTree(
"simTrackTree",
"simTrackTree"));
159 leafStr =
"ids/I:etas/F:pts/F:acc/I:prim/I:nrec/I:ntrkr/I";
162 trackTrees.push_back(
new TTree(
"recTrackTree",
"recTrackTree"));
163 leafStr =
"charge/I:etar/F:ptr/F:phir/F:zr/F:logpr/F:logde/F:nhitr/I:prim/I:nsim/I:ids/I:parids/I:etas/F:pts/F:ntrkr/I";
166 trackTrees.push_back(
new TTree(
"recVzeroTree",
"recVzeroTree"));
167 leafStr =
"etar/F:ptr/F:ima/F:rhor/F";
170 trackTrees.push_back(
new TTree(
"eventInfoTree",
"eventInfoTree"));
171 leafStr =
"proc/I:strk/I:ntrkr/I";
179 const double small = 1
e-3;
182 for(pt = 0; pt < 1 - small; pt += 0.05)
ptBins.push_back(pt);
183 for(pt = 1; pt < 2 - small; pt += 0.1 )
ptBins.push_back(pt);
184 for(pt = 2; pt < 4 - small; pt += 0.2 )
ptBins.push_back(pt);
185 for(pt = 4; pt < 8 - small; pt += 0.5 )
ptBins.push_back(pt);
186 for(pt = 8; pt < 16 - small; pt += 1. )
ptBins.push_back(pt);
187 for(pt = 16; pt < 32 - small; pt += 2. )
ptBins.push_back(pt);
188 for(pt = 32; pt < 64 - small; pt += 4. )
ptBins.push_back(pt);
194 for(
double rat = ratMin; rat < ratMax + ratWidth/2; rat += ratWidth)
203 for(
double eta = etaMin;
eta < etaMax + etaWidth/2;
eta += etaWidth)
207 for(
double eta = etaMin;
eta < etaMax + etaWidth/2;
eta += etaWidth/5)
215 for(
double z = zMin;
z < zMax + zWidth/2;
z += zWidth)
227 for(
double ntrk = ntrkMin; ntrk < ntrkMax + ntrkWidth; ntrk += ntrkWidth)
235 sprintf(histName,
"heve");
236 heve.push_back(
new TH1F(histName,histName, 200, -0.5,199.5));
238 sprintf(histName,
"hsdx");
239 heve.push_back(
new TH1F(histName,histName, 200, -0.5,199.5));
241 sprintf(histName,
"hddx");
242 heve.push_back(
new TH1F(histName,histName, 200, -0.5,199.5));
244 sprintf(histName,
"hndx");
245 heve.push_back(
new TH1F(histName,histName, 200, -0.5,199.5));
247 sprintf(histName,
"hder");
248 hder.push_back(
new TH2F(histName,histName, 200, -0.5,199.5,
257 hsim.push_back(
new TH3F(histName,histName,
263 sprintf(histName,
"hacc_%s",
partName[part]);
264 hacc.push_back(
new TH3F(histName,histName,
270 sprintf(histName,
"href_%s",
partName[part]);
271 href.push_back(
new TH3F(histName,histName,
277 sprintf(histName,
"hmul_%s",
partName[part]);
278 hmul.push_back(
new TH3F(histName,histName,
289 hall.push_back(
new TH3F(histName,histName,
294 sprintf(histName,
"hdac_%s",
chargeName[charge]);
295 hdac.push_back(
new TH2F(histName,histName,
301 sprintf(histName,
"hfak_%s",
chargeName[charge]);
302 hfak.push_back(
new TH3F(histName,histName,
314 hvpt.push_back(
new TH3F(histName,histName,
320 sprintf(histName,
"hrpt_%s",
partName[part]);
321 hrpt.push_back(
new TH3F(histName,histName,
326 sprintf(histName,
"hsp0_%s",
partName[part]);
327 hsp0.push_back(
new TH2F(histName,histName,
331 sprintf(histName,
"hsp1_%s",
partName[part]);
332 hsp1.push_back(
new TH2F(histName,histName,
336 sprintf(histName,
"hsp2_%s",
partName[part]);
337 hsp2.push_back(
new TH2F(histName,histName,
348 hpro.push_back(
new TH2F(histName,histName,
354 hdec.push_back(
new TH2F(histName,histName,
363 constexpr float lpWidth = (lpMax - lpMin)/100;
364 for(
double lp = lpMin; lp < lpMax + lpWidth/2; lp += lpWidth)
367 const float ldeMin =
log(1);
368 const float ldeMax =
log(100);
369 const float ldeWidth = (ldeMax - ldeMin)/250;
370 for(
double lde = ldeMin; lde < ldeMax + ldeWidth/2; lde += ldeWidth)
373 for(
double nhit = -0.5; nhit < 50; nhit += 1)
381 helo.push_back(
new TH3F(histName,histName,
387 sprintf(histName,
"hnhi_%s",
chargeName[charge]);
388 hnhi.push_back(
new TH3F(histName,histName,
394 sprintf(histName,
"held_%s",
chargeName[charge]);
395 held.push_back(
new TH2F(histName,histName,
431 for(
double rho_ = rhoMin; rho_ < rhoMax + rhoWidth/2; rho_ += rhoWidth)
441 if(
part ==
gam) { imMin = 0.0; imMax = 0.2; imWidth = 0.005; }
442 if(
part ==
k0s) { imMin = 0.3; imMax = 0.7; imWidth = 0.005; }
444 part ==
ala) { imMin = 1.0; imMax = 1.3; imWidth = 0.002; }
446 if(
part ==
rho) { imMin = 0.2; imMax = 1.2; imWidth = 0.010; }
448 part ==
aks) { imMin = 0.6; imMax = 1.6; imWidth = 0.010; }
449 if(
part ==
phi) { imMin = 0.9; imMax = 1.1; imWidth = 0.002; }
451 std::vector<double> imBins;
453 for(im = imMin; im < imMax + imWidth/2; im += imWidth)
454 imBins.push_back(im);
459 hima.push_back(
new TH3F(histName,histName,
462 imBins.size()-1, &imBins[0]));
464 if(part >=
rho && part <=
phi)
466 sprintf(histName,
"himp_%s",
partName[part]);
467 hima.push_back(
new TH3F(histName,histName,
470 imBins.size()-1, &imBins[0]));
472 sprintf(histName,
"himm_%s",
partName[part]);
473 hima.push_back(
new TH3F(histName,histName,
476 imBins.size()-1, &imBins[0]));
478 sprintf(histName,
"himx_%s",
partName[part]);
479 hima.push_back(
new TH3F(histName,histName,
482 imBins.size()-1, &imBins[0]));
485 sprintf(histName,
"hrho_%s",
partName[part]);
486 hrho.push_back(
new TH3F(histName,histName,
489 imBins.size()-1, &imBins[0]));
514 if(proc == 92 || proc == 93)
520 if(!(proc == 92 || proc == 93 || proc == 94))
524 hder[0]->Fill(strk,ntrk);
603 if(
pip <= part && part <=
ala)
678 typedef std::vector<TH3F *>::const_iterator H3I;
679 typedef std::vector<TH2F *>::const_iterator H2I;
680 typedef std::vector<TH1F *>::const_iterator H1I;
681 typedef std::vector<TTree *>::const_iterator TI;
686 for(H1I
h =
heve.begin();
h!=
heve.end();
h++) (*h)->Write();
687 for(H2I
h =
hder.begin();
h!=
hder.end();
h++) (*h)->Write();
689 for(H3I
h =
hsim.begin();
h!=
hsim.end();
h++) (*h)->Write();
690 for(H3I
h =
hacc.begin();
h!=
hacc.end();
h++) (*h)->Write();
691 for(H3I
h =
href.begin();
h!=
href.end();
h++) (*h)->Write();
692 for(H3I
h =
hmul.begin();
h!=
hmul.end();
h++) (*h)->Write();
694 for(H3I
h =
hall.begin();
h!=
hall.end();
h++) (*h)->Write();
695 for(H2I
h =
hdac.begin();
h!=
hdac.end();
h++) (*h)->Write();
697 for(H3I
h =
hvpt.begin();
h!=
hvpt.end();
h++) (*h)->Write();
698 for(H3I
h =
hrpt.begin();
h!=
hrpt.end();
h++) (*h)->Write();
700 for(H2I
h =
hsp0.begin();
h!=
hsp0.end();
h++) (*h)->Write();
701 for(H2I
h =
hsp1.begin();
h!=
hsp1.end();
h++) (*h)->Write();
702 for(H2I
h =
hsp2.begin();
h!=
hsp2.end();
h++) (*h)->Write();
704 for(H3I
h =
hfak.begin();
h!=
hfak.end();
h++) (*h)->Write();
706 for(H2I
h =
hpro.begin();
h!=
hpro.end();
h++) (*h)->Write();
707 for(H2I
h =
hdec.begin();
h!=
hdec.end();
h++) (*h)->Write();
709 for(H3I
h =
helo.begin();
h!=
helo.end();
h++) (*h)->Write();
710 for(H3I
h =
hnhi.begin();
h!=
hnhi.end();
h++) (*h)->Write();
711 for(H2I
h =
held.begin();
h!=
held.end();
h++) (*h)->Write();
713 for(H3I
h =
hima.begin();
h!=
hima.end();
h++) (*h)->Write();
714 for(H3I
h =
hrho.begin();
h!=
hrho.end();
h++) (*h)->Write();
std::vector< TH2F * > hdec
T getParameter(std::string const &) const
std::vector< TH3F * > hmul
EventInfo_t eventInfoValues
TrainProcessor *const proc
std::vector< TH1F * > heve
std::vector< TH2F * > held
std::vector< TH2F * > hpro
RecTrack_t recTrackValues
std::vector< TH3F * > href
const char * chargeName[nCharges+2]
const std::pair< int, int > resonance[nResonances]
std::vector< double > lpBins
U second(std::pair< T, U > const &p)
std::vector< double > ptBins
std::vector< double > ntrkBins
std::vector< TH2F * > hder
std::vector< TH3F * > hrpt
std::vector< double > ldeBins
const int partCharge[nParticles]
const char * partName[nParticles]
std::vector< TH3F * > helo
std::vector< TH3F * > hrho
std::vector< double > ratBins
std::vector< TH2F * > hsp0
std::vector< TH3F * > hfak
std::vector< double > nhitBins
std::vector< TTree * > trackTrees
int getCharge(int charge)
void fillSimHistograms(const SimTrack_t &s)
void fillVzeroHistograms(const RecVzero_t &r, int part)
SimTrack_t simTrackValues
std::vector< TH2F * > hdac
std::vector< double > etaBins
std::vector< TH2F * > hsp2
std::vector< double > rhoBins
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
const std::pair< int, int > feedDown[nFeedDowns]
std::vector< double > metaBins
void fillEventInfo(int proc, int strk, int ntrkr)
std::vector< double > zBins
RecVzero_t recVzeroValues
void fillRecHistograms(const RecTrack_t &r)
std::vector< TH3F * > hsim
std::vector< TH3F * > hacc
std::vector< TH3F * > hima
std::vector< TH2F * > hsp1
std::vector< TH3F * > hvpt
std::vector< TH3F * > hall
std::vector< TH3F * > hnhi