14 #if !defined(__CINT__) || defined(__MAKECINT__) 17 #include <TDirectoryFile.h> 34 #include <TGraphErrors.h> 53 TString titleMC =
"simu_pp_7TeV_MB",
54 TString titleData =
"LHC11cd_INT7" 63 if (titleData .Contains(
"LHC11cd_EMC7"))
64 daLeg =
"pp@7 TeV, LHC11c+d EMC7";
65 else if(titleData .Contains(
"LHC11cd_INT7"))
66 daLeg =
"pp@7 TeV, LHC11c+d INT7";
67 else if(titleData ==
"LHC12_EMC7")
68 daLeg =
"pp@8 TeV, LHC12 EMC7";
69 else if(titleData ==
"LHC12_EMG1")
70 daLeg =
"pp@8 TeV, LHC12 EGA";
71 else if(titleData ==
"LHC12_INT7")
72 daLeg =
"pp@8 TeV, LHC12 INT7";
73 else if(titleData ==
"LHC17pq_EMC7")
74 daLeg =
"pp@5 TeV, LHC11p+q EMC7";
75 else if(titleData ==
"LHC17pq_EMG1")
76 daLeg =
"pp@5 TeV, LHC11p+q EGA";
77 else if(titleData ==
"LHC17pq_INT7")
78 daLeg =
"pp@5 TeV, LHC17p+q INT7";
79 else if(titleData ==
"LHC17pq_DCAL_DMC7")
80 daLeg =
"pp@5 TeV, LHC11p+q DMC7";
81 else if(titleData ==
"LHC17pq_DCAL_DMG1")
82 daLeg =
"pp@5 TeV, LHC11p+q DGA";
83 else if(titleData ==
"LHC17pq_DCAL_INT7")
84 daLeg =
"pp@5 TeV, LHC17p+q INT7";
95 Form(
"data_%s" ,titleData.Data())
96 , Form(
"%s_Mimic0_Scaled" ,titleMC .
Data())
97 , Form(
"%s_Mimic10c_EcellCut_Scaled",titleMC .
Data())
104 ,
"MC xTalk + #it{E}_{inc+cell}>100 MeV" 127 Float_t colorProd[] = { 1,kBlue,kRed,kViolet,kRed,kOrange-2,kCyan};
128 Float_t styleProd[] = {20, 24, 24, 24, 25, 25, 25};
131 titleData.ReplaceAll(
"/",
"_");
135 file[iprod] =
new TFile(Form(
"IMfigures/%s_%s_MassWidthPtHistograms_%s.root",
138 printf(
"iprod %d, IMfigures/%s_%s_MassWidthPtHistograms_%s.root %p\n",
139 iprod,prod[iprod].
Data(),
calorimeter.Data(),particle.Data(),file[iprod]);
141 if(!file[iprod])
continue;
143 gMassAllSM[iprod] = (
TGraphErrors*) file[iprod]->Get(
"gMass_SameSM");
146 gMassAllSM[iprod]->SetMarkerColor(colorProd[iprod]);
147 gMassAllSM[iprod]->SetLineColor (colorProd[iprod]);
148 gMassAllSM[iprod]->SetMarkerStyle(styleProd[iprod]);
149 gMassAllSM[iprod]->SetMarkerSize (markerSize);
151 if ( iprod > 0 && gMassAllSM[0] )
153 gMassRatAllSM[iprod] =
DivideGraphs(gMassAllSM[iprod],gMassAllSM[0]);
154 gMassRatAllSM[iprod]->SetMarkerColor(colorProd[iprod]);
155 gMassRatAllSM[iprod]->SetLineColor (colorProd[iprod]);
156 gMassRatAllSM[iprod]->SetMarkerStyle(styleProd[iprod]);
157 gMassRatAllSM[iprod]->SetMarkerSize (markerSize);
160 gMassTRDNo[iprod] = (
TGraphErrors*) file[iprod]->Get(
"gMass_SameSMTRDNot");
163 if ( gMassTRDNo[iprod] )
165 gMassTRDNo[iprod]->SetMarkerColor(colorProd[iprod]);
166 gMassTRDNo[iprod]->SetLineColor (colorProd[iprod]);
167 gMassTRDNo[iprod]->SetMarkerStyle(styleProd[iprod]);
168 gMassTRDNo[iprod]->SetMarkerSize (markerSize);
170 if ( iprod > 0 && gMassTRDNo[0] )
172 gMassRatTRDNo[iprod] =
DivideGraphs(gMassTRDNo[iprod],gMassTRDNo[0]);
173 gMassRatTRDNo[iprod]->SetMarkerColor(colorProd[iprod]);
174 gMassRatTRDNo[iprod]->SetLineColor (colorProd[iprod]);
175 gMassRatTRDNo[iprod]->SetMarkerStyle(styleProd[iprod]);
176 gMassRatTRDNo[iprod]->SetMarkerSize (markerSize);
180 gMassTRDYe[iprod] = (
TGraphErrors*) file[iprod]->Get(
"gMass_SameSMTRDYes");
183 if ( gMassTRDYe[iprod] )
185 gMassTRDYe[iprod]->SetMarkerColor(colorProd[iprod]);
186 gMassTRDYe[iprod]->SetLineColor (colorProd[iprod]);
187 gMassTRDYe[iprod]->SetMarkerStyle(styleProd[iprod]);
188 gMassTRDYe[iprod]->SetMarkerSize (markerSize);
190 if ( iprod > 0 && gMassTRDYe[0] )
192 gMassRatTRDYe[iprod] =
DivideGraphs(gMassTRDYe[iprod],gMassTRDYe[0]);
193 gMassRatTRDYe[iprod]->SetMarkerColor(colorProd[iprod]);
194 gMassRatTRDYe[iprod]->SetLineColor (colorProd[iprod]);
195 gMassRatTRDYe[iprod]->SetMarkerStyle(styleProd[iprod]);
196 gMassRatTRDYe[iprod]->SetMarkerSize (markerSize);
200 for(
Int_t ism = 0; ism < nSM; ism++)
202 gMass[ism][iprod] = (
TGraphErrors*) file[iprod]->Get(Form(
"gMass_SM%d",ism));
205 gMass[ism][iprod]->SetMarkerColor(colorProd[iprod]);
206 gMass[ism][iprod]->SetLineColor (colorProd[iprod]);
207 gMass[ism][iprod]->SetMarkerStyle(styleProd[iprod]);
208 gMass[ism][iprod]->SetMarkerSize (markerSize);
210 if ( iprod > 0 && gMass[ism][0] )
212 gMassRat[ism][iprod] =
DivideGraphs(gMass[ism][iprod],gMass[ism][0]);
213 gMassRat[ism][iprod]->SetMarkerColor(colorProd[iprod]);
214 gMassRat[ism][iprod]->SetLineColor (colorProd[iprod]);
215 gMassRat[ism][iprod]->SetMarkerStyle(styleProd[iprod]);
216 gMassRat[ism][iprod]->SetMarkerSize (markerSize);
226 gStyle->SetPadRightMargin(0.01);
227 gStyle->SetPadLeftMargin(0.12);
228 gStyle->SetTitleFontSize(0.06);
230 gStyle->SetOptStat(0);
231 gStyle->SetOptTitle(1);
232 gStyle->SetPadTopMargin(0.07);
239 TLegend *lE =
new TLegend(-0.04,0.1,1,1);
243 lE->SetBorderSize(0);
244 lE->SetTextSize(0.05);
247 TCanvas * cGraphSM =
new TCanvas(
"cGraphSM",
"Per SM",
248 ncol*2000,nrow*2000);
250 cGraphSM->Divide(ncol,nrow);
252 for(
Int_t ism = 0; ism < nSM; ism++)
259 hAxis[ism] =
new TH1F(Form(
"hAxisBisRat_SM%d",ism),Form(
"SM %d",ism),1000,1,12);
261 hAxis[ism]->GetYaxis()->SetTitle(
"Mass (MeV/#it{c}^{2})");
262 hAxis[ism]->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
263 hAxis[ism]->SetMaximum(140);
264 hAxis[ism]->SetMinimum(115);
271 hAxis[ism]->Draw(
"");
275 if(!file[iprod])
continue;
278 lE->AddEntry(gMass[ism][iprod],prodLeg[iprod],
"PL");
280 gMass[ism][iprod]->Draw(
"P");
287 fileName = Form(
"IMfigures/Comparison_Mass_%s_%s_%s_%s_PerSM",
288 titleData.Data(),titleMC.Data(),
calorimeter.Data(),particle.Data());
291 cGraphSM->Print(fileName);
295 TCanvas * cGraphSMRat =
new TCanvas(
"cGraphSMRat",
"Ratio Per SM",
296 ncol*2000,nrow*2000);
298 cGraphSMRat->Divide(ncol,nrow);
300 for(
Int_t ism = 0; ism < nSM; ism++)
302 cGraphSMRat->cd(ism+1);
307 hAxis[ism] =
new TH1F(Form(
"hAxisBis_SM%d",ism),Form(
"SM %d",ism),1000,1,12);
309 hAxis[ism]->GetYaxis()->SetTitle(
"Mass MC / Data");
310 hAxis[ism]->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
315 hAxis[ism]->SetMaximum(0.98);
316 hAxis[ism]->SetMinimum(0.85);
317 hAxis[ism]->Draw(
"");
321 if ( !gMassRat[ism][iprod] )
continue;
324 gMassRat[ism][iprod]->Draw(
"P");
329 cGraphSMRat->cd(nSM+1);
333 fileName = Form(
"IMfigures/Comparison_MassRatio_%s_%s_%s_%s_PerSM",
334 titleData.Data(),titleMC.Data(),
calorimeter.Data(),particle.Data());
337 cGraphSMRat->Print(fileName);
354 TH1F* hAxisAll =
new TH1F(
"hAxisAll",
"All SM",1000,1,12);
356 hAxisAll->GetYaxis()->SetTitle(
"Mass (MeV/#it{c}^{2})");
357 hAxisAll->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
358 hAxisAll->SetMaximum(140);
359 hAxisAll->SetMinimum(125);
364 TH1F* hAxisAllRat =
new TH1F(
"hAxisAllRat",
"MC/Data ratio, All SM",1000,1,12);
365 hAxisAllRat->GetYaxis()->SetTitle(
"Mass Data/MC");
366 hAxisAllRat->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
372 hAxisAllRat->SetMaximum(1.05);
373 hAxisAllRat->SetMinimum(0.98);
376 TCanvas * cGraph =
new TCanvas(
"cGraphAllSM",
"All SM",
377 ncol*2000,nrow*2000);
379 cGraph->Divide(ncol,nrow);
390 if(!file[iprod])
continue;
391 gMassAllSM[iprod]->Draw(
"P");
394 gMassAllSM[1]->Draw(
"P");
396 if ( gMassTRDYe[0] ) cGraph->cd(5);
403 TLegend *lA =
new TLegend(0.2,0.8,0.9,0.9);
407 lA->SetBorderSize(0);
408 lA->SetTextSize(0.05);
410 hAxisAllRat->Draw(
"");
414 if(!file[iprod])
continue;
416 gMassRatAllSM[iprod]->Draw(
"P");
417 gMassRatAllSM[iprod]->Fit(
"pol0",
"R",
"",2,8);
418 TF1* func = gMassRatAllSM[iprod]->GetFunction(
"pol0");
419 lA->AddEntry(func,Form(
"Fit %2.3f #pm %2.3f",func->GetParameter(0),func->GetParError(0)),
"L");
421 gMassRatAllSM[1]->Draw(
"P");
432 TH1F* hAxisNot = (TH1F*) hAxisAll->Clone(
"hAxisNot");
433 hAxisNot->SetTitle(
"SM without TRD");
438 if(!file[iprod])
continue;
439 gMassTRDNo[iprod]->Draw(
"P");
441 gMassTRDNo[1]->Draw(
"P");
445 TLegend *lN =
new TLegend(0.2,0.8,0.9,0.9);
449 lN->SetBorderSize(0);
450 lN->SetTextSize(0.05);
455 TH1F* hAxisNotRat = (TH1F*) hAxisAllRat->Clone(
"hAxisNotRat");
456 hAxisNotRat->SetTitle(
"MC/Data ratio, SM without TRD");
457 hAxisNotRat->Draw(
"");
461 if(!file[iprod])
continue;
463 gMassRatTRDNo[iprod]->Draw(
"P");
464 gMassRatTRDNo[iprod]->Fit(
"pol0",
"R",
"",2,8);
465 TF1* func = gMassRatTRDNo[iprod]->GetFunction(
"pol0");
466 lN->AddEntry(func,Form(
"Fit %2.3f #pm %2.3f",func->GetParameter(0),func->GetParError(0)),
"L");
469 gMassRatTRDNo[1]->Draw(
"P");
481 TLegend *lY =
new TLegend(0.2,0.8,0.9,0.9);
485 lY->SetBorderSize(0);
486 lY->SetTextSize(0.05);
488 TH1F* hAxisYes = (TH1F*) hAxisAll->Clone(
"hAxisYes");
489 hAxisYes->SetTitle(
"SM with TRD");
494 if(!file[iprod])
continue;
495 gMassTRDYe[iprod]->Draw(
"P");
498 gMassTRDYe[1]->Draw(
"P");
505 TH1F* hAxisYesRat = (TH1F*) hAxisAllRat->Clone(
"hAxisYesRat");
506 hAxisYesRat->SetTitle(
"MC/Data ratio, SM with TRD");
507 hAxisYesRat->Draw(
"");
511 if(!file[iprod])
continue;
513 gMassRatTRDYe[iprod]->Draw(
"P");
514 gMassRatTRDYe[iprod]->Fit(
"pol0",
"R",
"",2,8);
515 TF1* func = gMassRatTRDYe[iprod]->GetFunction(
"pol0");
516 lY->AddEntry(func,Form(
"Fit %2.3f #pm %2.3f",func->GetParameter(0),func->GetParError(0)),
"L");
518 gMassRatTRDYe[1]->Draw(
"P");
522 if ( gMassTRDYe[0] ) cGraph->cd(4);
530 fileName = Form(
"IMfigures/Comparison_Mass_%s_%s_%s_%s",
531 titleData.Data(),titleMC.Data(),
calorimeter.Data(),particle.Data());
534 cGraph->Print(fileName);
void CompareInvMassGraphs(TString particle="Pi0", TString calorimeter="EMCAL", TString titleMC="simu_pp_7TeV_MB", TString titleData="LHC11cd_INT7")
File format: ".eps" ".pdf" ...
const TString calorimeter
static TGraphErrors * DivideGraphs(TGraphErrors *gNum, TGraphErrors *gDen)
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TFile * file
TList with histograms for a given trigger.
TString prod[]
productions to be compared, directory name