266 map <Int_t, vector <pair <Double_t, Double_t>>> pairs) :
268 hEffGem(nullptr), hEffGem1d(nullptr), hEffSil(nullptr), hEffSil1d(nullptr) {
276 hEffGem =
new TEfficiency*[nQp];
277 hEffSil =
new TEfficiency*[nQp];
278 hEffSilXP =
new TEfficiency*[nQp];
280 if (det.Contains(
"GEM")) {
284 pair <Double_t, Double_t> y = make_pair(0., 45.);
286 Double_t xLow = -80.;
289 for (Int_t iQp = 0; iQp < nQp; iQp++) {
290 TString Qp = (iQp == QpValue::pos) ?
"Q_{p} > 0" :
"Q_{p} < 0";
292 hEffGem[iQp] =
new TEfficiency(Form(
"Detector# %s, Station# %d, %s", det.Data(), stat, Qp.Data()),
293 Form(
"Stat %d, %s; X [cm]; Y [cm]", stat, Qp.Data()), nBinsX, xLow, xUp, nBinsY, y.first, y.second);
300 hEffGem1d =
new TEfficiency**[nQp];
302 const Int_t nYRanges = pairs.find(stat)->second.size();
304 for (Int_t iQp = 0; iQp < nQp; iQp++) {
305 hEffGem1d[iQp] =
new TEfficiency*[nYRanges];
307 TString Qp = (iQp == QpValue::pos) ?
"Q_{p} > 0" :
"Q_{p} < 0";
309 for (Int_t iRange = 0; iRange < nYRanges; iRange++) {
310 Double_t y0 = pairs.find(stat)->second.at(iRange).first;
311 Double_t y1 = pairs.find(stat)->second.at(iRange).second;
313 hEffGem1d[iQp][iRange] =
new TEfficiency(Form(
"Detector# %s, Station# %d, (%G < y < %G [cm]), %s", det.Data(), stat, y0, y1, Qp.Data()),
314 Form(
"Stat %d, (%G < y < %G [cm]), %s; X [cm]; #varepsilon", stat, y0, y1, Qp.Data()), nBinsX, xLow, xUp);
322 TClonesArray* sil =
new TClonesArray(
"InnerTrackerParams");
334 for (Int_t iQp = 0; iQp < nQp; iQp++) {
335 TString Qp = (iQp == QpValue::pos) ?
"Q_{p} > 0" :
"Q_{p} < 0";
336 hEffSil[iQp] =
new TEfficiency(Form(
"Detector# %s, Station# %d, %s", det.Data(), stat, Qp.Data()),
337 Form(
"Stat %d, %s; X [cm]; Y [cm]", stat, Qp.Data()),
338 nBinsX, getRanges(sil, stat)[0], getRanges(sil, stat)[1], nBinsY, getRanges(sil, stat)[2], getRanges(sil, stat)[3]);
342 hEffSilXP[iQp] =
new TEfficiency(Form(
"Detector# %s, Station# %d (xP), %s", det.Data(), stat, Qp.Data()),
343 Form(
"Stat %d, %s; X [cm]; P [GeV/c]", stat, Qp.Data()),
344 nBinsX, getRanges(sil, stat)[0], getRanges(sil, stat)[1], nBinsY, 0., 5.5);
351 hEffSil1d =
new TEfficiency**[nQp];
353 const Int_t nYRanges = pairs.find(stat)->second.size();
355 for (Int_t iQp = 0; iQp < nQp; iQp++) {
356 hEffSil1d[iQp] =
new TEfficiency*[nYRanges];
358 TString Qp = (iQp == QpValue::pos) ?
"Q_{p} > 0" :
"Q_{p} < 0";
360 for (Int_t iRange = 0; iRange < nYRanges; iRange++) {
361 Double_t y0 = pairs.find(stat)->second.at(iRange).first;
362 Double_t y1 = pairs.find(stat)->second.at(iRange).second;
364 hEffSil1d[iQp][iRange] =
new TEfficiency(Form(
"Detector# %s, Station# %d, (%G < y < %G [cm]), %s", det.Data(), stat, y0, y1, Qp.Data()),
365 Form(
"Stat %d, (%G < y < %G [cm]), %s; X [cm]; #varepsilon", stat, y0, y1, Qp.Data()),
366 nBinsX, getRanges(sil, stat)[0], getRanges(sil, stat)[1]);