14 const Int_t nActiveAnals = 2;
15 for (
Int_t iAnal = 0; iAnal < nActiveAnals; iAnal++)
21 vector<Int_t> naturalGemOrder{11, 10, 5, 6, 8, 9};
23 const Int_t nAnalTypes = 2;
36 for (
Int_t iType = 0; iType < nAnalTypes; iType++) {
37 const Int_t nStatsGem =
geoms->GetGemGeometry()->GetNStations();
38 const Int_t nStatsSil =
geoms->GetSiliconGeometry()->GetNStations();
43 TString type = (iType == pureMc) ?
"MC-digits" :
"Digits after embedding";
45 for (
Int_t iStat = 0; iStat < nStatsGem; iStat++) {
46 Int_t nMods =
geoms->GetGemGeometry()->GetStation(iStat)->GetNModules();
49 for (
Int_t iMod = 0; iMod < nMods; iMod++) {
50 Int_t nLays =
geoms->GetGemGeometry()->GetStation(iStat)->GetModule(iMod)->GetNStripLayers();
53 for (
Int_t iLay = 0; iLay < nLays; iLay++) {
55 Form(
"GEM, Type# %d Stat# %d Mod# %d Lay# %d", iType, iStat, iMod, iLay),
56 Form(
"%s, Stat# %d (GEM %d), Mod# %d", type.Data(), iStat, naturalGemOrder[iStat], iMod), 1200,
58 hGemStripInfo[iType][iStat][iMod][iLay]->GetXaxis()->SetLabelSize(0.1);
59 hGemStripInfo[iType][iStat][iMod][iLay]->GetYaxis()->SetLabelSize(0.1);
60 hGemStripInfo[iType][iStat][iMod][iLay]->GetXaxis()->SetTitle(
"Strips#");
61 hGemStripInfo[iType][iStat][iMod][iLay]->GetXaxis()->SetTitleOffset(-.28);
62 hGemStripInfo[iType][iStat][iMod][iLay]->GetXaxis()->SetTitleSize(0.15);
63 hGemStripInfo[iType][iStat][iMod][iLay]->GetXaxis()->CenterTitle();
68 for (
Int_t iStat = 0; iStat < nStatsSil; iStat++) {
69 Int_t nMods =
geoms->GetSiliconGeometry()->GetStation(iStat)->GetNModules();
72 for (
Int_t iMod = 0; iMod < nMods; iMod++) {
73 Int_t nLays =
geoms->GetSiliconGeometry()->GetStation(iStat)->GetModule(iMod)->GetNStripLayers();
76 for (
Int_t iLay = 0; iLay < nLays; iLay++) {
78 new TH1F(
Form(
"SILICON, Type# %d Stat# %d Mod# %d Lay# %d", iType, iStat, iMod, iLay),
79 Form(
"%s, Stat# %d, Mod# %d", type.Data(), iStat, iMod), 700, 0., 700.);
96 const Int_t nSilModsMax = 8;
97 pEmbSilHitEff =
new TProfile2D(
"SILICON eff.",
"SILICON eff.", SILICON->GetNStations(), 0., SILICON->GetNStations(),
98 nSilModsMax, 0, nSilModsMax, 0., 1.);
100 const Int_t nZones = 2;
101 const Int_t nGemModsMax = 2;
106 for (
Int_t iBin = 0; iBin < SILICON->GetNStations(); iBin++)
108 for (
Int_t iBin = 0; iBin < nSilModsMax; iBin++)
121 for (
Int_t iZone = 0; iZone < nZones; iZone++) {
122 TString zone = (iZone == 0) ?
"Hot Zone" :
"Big Zone";
125 GEM->GetNStations(), nGemModsMax, 0., nGemModsMax, 0., 1.);
130 for (
Int_t iBin = 0; iBin <
GEM->GetNStations(); iBin++)
132 for (
Int_t iBin = 0; iBin < nGemModsMax; iBin++)
148 for (
Int_t iStat = 0; iStat <
GEM->GetNStations(); iStat++) {
150 Form(
"Stat# %d (GEM %d); X [cm]; Y [cm]", iStat, naturalGemOrder[iStat]),
151 500, -100., +100, 500, -10., +50., 0, 1);
163 for (
Int_t iStat = 0; iStat < SILICON->GetNStations(); iStat++) {
164 Double_t xLow = (iStat == 0) ? -8. : (iStat == 1) ? -8. : -13.;
167 Double_t yLow = (iStat == 0) ? -12. : (iStat == 1) ? -13. : -20.;
168 Double_t yUp = (iStat == 0) ? +3. : (iStat == 1) ? +4. : +10.;
171 new TProfile2D(
Form(
"SILICON eff. vs. X and Y, stat# %d", iStat),
Form(
"Stat# %d; X [cm]; Y [cm]", iStat),
172 500, xLow, xUp, 500, yLow, yUp, 0., 1.);
183 const Int_t nParts = 2;
184 const TString particles[nParts] = {
"Protons",
"Pions"};
185 const Int_t nCuts = 4;
190 for (
Int_t iPart = 0; iPart < nParts; iPart++) {
194 new TH2F(
Form(
"%s", particles[iPart].Data()),
195 Form(
"%s; Nhits_{reco}; NHits_{emb}", particles[iPart].Data()), 6, 4., 10., 6, 4., 10.);
206 const Int_t nBinsX = 16;
210 for (
Int_t iCut = 0; iCut < nCuts; iCut++) {
212 Form(
"%s %d", particles[iPart].Data(), iCut),
213 Form(
"%s; #eta_{#Lambda^{0}}; N_{reco} / N_{emb}", particles[iPart].Data()), nBinsX, xLow, xUp);
214 hEtaLambda[iPart][iCut]->GetXaxis()->SetLabelSize(0.07);
215 hEtaLambda[iPart][iCut]->GetYaxis()->SetLabelSize(0.07);
217 hEtaLambda[iPart][iCut]->GetXaxis()->SetTitleSize(0.07);
218 hEtaLambda[iPart][iCut]->GetYaxis()->SetTitleSize(0.07);
220 hEtaLambda[iPart][iCut]->GetXaxis()->SetTitleOffset(-.53);
221 hEtaLambda[iPart][iCut]->GetYaxis()->SetTitleOffset(.77);
223 hEtaLambda[iPart][iCut]->GetYaxis()->SetRangeUser(0., 1.5);
231 gStyle->SetTitleFontSize(0.1);
312 const Int_t nPads = 6;
313 const Int_t nSubPads = 2;
317 const Int_t nCanvs = 6;
326 vector<TCanvas*> arrCanv{a, b, c, d, e, f};
328 for (
Int_t iCanv = 0; iCanv < nCanvs; iCanv++) {
329 arrCanv[iCanv]->Divide(2, 3);
330 for (
Int_t iPad = 1; iPad < nPads + 1; iPad++) {
331 Int_t analType = (iPad % 2 == 1) ? 0 : 1;
334 vPad->
Divide(1, 2, 0.01, 0.01);
336 for (
Int_t iSubPad = 1; iSubPad < nSubPads + 1; iSubPad++) {
349 if ((
TString)arrCanv[iCanv]->
GetName() != name || iPad != pad || iSubPad != subpad
375 a->SaveAs(
"siliconMcEmbedded_stat0.pdf");
376 b->SaveAs(
"siliconMcEmbedded_stat1.pdf");
377 c->
SaveAs(
"siliconMcEmbedded_stat3_1.pdf");
378 d->SaveAs(
"siliconMcEmbedded_stat3_2.pdf");
379 e->
SaveAs(
"gemMcEmbedded_stat012.pdf");
380 f->SaveAs(
"gemMcEmbedded_stat345.pdf");
385 TBox*** gemModBoxes =
nullptr;
386 TBox**** gemLayBoxes =
nullptr;
388 geoms->GetGemBorders(gemModBoxes, gemLayBoxes, gemDeadZones);
390 TBox*** silModBoxes =
nullptr;
391 TBox**** silLayBoxes =
nullptr;
393 geoms->GetSiliconBorders(silModBoxes, silLayBoxes, silDeadZones);
400 vector<TCanvas*> arrCanv{g, h};
401 for (
Int_t iCanv = 0; iCanv < nCanvs; iCanv++) {
402 arrCanv[iCanv]->Divide(2, 3);
403 for (
Int_t iPad = 1; iPad < nPads + 1; iPad++) {
404 arrCanv[iCanv]->cd(iPad);
419 for (
Int_t iMod = 0; iMod <
geoms->GetSiliconGeometry()->GetStation(stat)->GetNModules();
422 silModBoxes[stat][iMod]->
Draw(
"l");
424 for (
Int_t iLayer = 0;
426 <
geoms->GetSiliconGeometry()->GetStation(stat)->GetModule(iMod)->GetNStripLayers();
429 silLayBoxes[stat][iMod][iLayer]->
Draw(
"l");
430 if (stat == 2 && iMod == 7 && (iLayer == 0 || iLayer == 2))
431 silDeadZones[stat][iMod][iLayer]->
Draw(
"l");
438 for (
Int_t iMod = 0; iMod <
geoms->GetGemGeometry()->GetStation(stat)->GetNModules(); iMod++) {
439 gemModBoxes[stat][iMod]->
Draw(
"l");
441 for (
Int_t iLayer = 0;
442 iLayer <
geoms->GetGemGeometry()->GetStation(stat)->GetModule(iMod)->GetNStripLayers();
445 gemLayBoxes[stat][iMod][iLayer]->
Draw(
"l");
446 gemDeadZones[stat][iMod][iLayer]->
Draw(
"l");
456 g->
SaveAs(
"siliconEff_XY.pdf");
457 h->
SaveAs(
"gemEff_XY.pdf");
463 for (
Int_t iPad = 1; iPad < nPads + 1; iPad++) {
464 i->cd(iPad)->SetGrid();
472 if ((
TString)
i->GetName() != name || iPad != pad)
486 i->SaveAs(
"gemSiliconEff.pdf");
491 for (
Int_t iPad = 1; iPad < 3; iPad++) {
511 legend->
AddEntry(
hEtaLambda[iPad - 1][1],
"|nHitsReco - nHitsMc| / nHitsMc < 0.2",
"p");
512 legend->
AddEntry(
hEtaLambda[iPad - 1][2],
"|nHitsReco - nHitsMc| / nHitsMc < 0.4",
"p");
513 legend->
AddEntry(
hEtaLambda[iPad - 1][3],
"|nHitsReco - nHitsMc| / nHitsMc < 0.5",
"p");
518 for (
Int_t iPad = 3; iPad < 5; iPad++) {
524 j->
SaveAs(
"etaLambda_nReco2Emb.pdf");