13 #if !defined(__CINT__) || defined(__MAKECINT__) 16 #include <TDirectoryFile.h> 33 #include <TGraphErrors.h> 79 "LHC17_5TeV/CENTwoSDD" 88 "LHC17pq, #sqrt{s} = 5 TeV, CENT" 89 ,
"LHC17pq, #sqrt{s} = 5 TeV, FAST" 90 ,
"LHC17*, #sqrt{s} = 13 TeV" 91 ,
"LHC16*, #sqrt{s} = 13 TeV" 92 ,
"LHC15n, #sqrt{s} = 5 TeV" 95 TString directory = Form(
"ComparisonGraphs/%s/%s/%s",
calorimeter.Data(),trigger.Data(),particle.Data());
126 TString processline = Form(
".! mkdir -p %s",directory.Data()) ;
127 gROOT->ProcessLine(processline.Data());
145 gMassAllSM [iprod] = 0;
146 gMassAll [iprod] = 0;
147 gMassRatAllSM[iprod] = 0;
148 gMassRatAll [iprod] = 0;
151 for(
Int_t ism = 0; ism < nSM; ism++)
153 gMass [ism][iprod] = 0;
154 gMassRat[ism][iprod] = 0;
155 if ( iprod == 0 ) hAxis[ism] = 0;
164 Float_t colorProd[] = { 1,kBlue,kRed,kViolet,kRed,kOrange-2,kCyan, kBlue};
165 Float_t styleProd[] = {20, 24, 24, 24, 25, 25, 25, 20};
171 file[iprod] =
new TFile(Form(
"%s/%s/%s/%s/MassWidthPtHistograms.root",
172 prod[iprod].
Data(),
calorimeter.Data(),trigger.Data(),particle.Data()),
"read");
174 printf(
"iprod %d, %s/%s/%s/%s/MassWidthPtHistograms.root %p\n",
175 iprod,prod[iprod].
Data(),
calorimeter.Data(),trigger.Data(),particle.Data(),file[iprod]);
177 if(!file[iprod])
continue;
179 gMassAllSM[iprod] = (
TGraphErrors*) file[iprod]->Get(
"gMass_SameSM");
182 gMassAllSM[iprod]->SetMarkerColor(colorProd[iprod]);
183 gMassAllSM[iprod]->SetLineColor (colorProd[iprod]);
184 gMassAllSM[iprod]->SetMarkerStyle(styleProd[iprod]);
185 gMassAllSM[iprod]->SetMarkerSize (markerSize);
188 gMassAll[iprod] = (
TGraphErrors*) file[iprod]->Get(
"gMass_AllSM");
191 gMassAll[iprod]->SetMarkerColor(colorProd[iprod]);
192 gMassAll[iprod]->SetLineColor (colorProd[iprod]);
193 gMassAll[iprod]->SetMarkerStyle(styleProd[iprod]);
194 gMassAll[iprod]->SetMarkerSize (markerSize);
196 if ( iprod > 0 && gMassAllSM[0] )
198 gMassRatAllSM[iprod] =
DivideGraphs(gMassAllSM[iprod],gMassAllSM[0]);
199 gMassRatAllSM[iprod]->SetMarkerColor(colorProd[iprod]);
200 gMassRatAllSM[iprod]->SetLineColor (colorProd[iprod]);
201 gMassRatAllSM[iprod]->SetMarkerStyle(styleProd[iprod]);
202 gMassRatAllSM[iprod]->SetMarkerSize (markerSize);
204 gMassRatAll[iprod] =
DivideGraphs(gMassAll[iprod],gMassAll[0]);
205 gMassRatAll[iprod]->SetMarkerColor(colorProd[iprod]);
206 gMassRatAll[iprod]->SetLineColor (colorProd[iprod]);
207 gMassRatAll[iprod]->SetMarkerStyle(styleProd[iprod]);
208 gMassRatAll[iprod]->SetMarkerSize (markerSize);
213 gMass[ism][iprod] = (
TGraphErrors*) file[iprod]->Get(Form(
"gMass_SM%d",ism));
216 if(!gMass[ism][iprod] )
continue;
218 gMass[ism][iprod]->SetMarkerColor(colorProd[iprod]);
219 gMass[ism][iprod]->SetLineColor (colorProd[iprod]);
220 gMass[ism][iprod]->SetMarkerStyle(styleProd[iprod]);
221 gMass[ism][iprod]->SetMarkerSize (markerSize);
223 if ( iprod > 0 && gMass[ism][0] )
225 gMassRat[ism][iprod] =
DivideGraphs(gMass[ism][iprod],gMass[ism][0]);
226 gMassRat[ism][iprod]->SetMarkerColor(colorProd[iprod]);
227 gMassRat[ism][iprod]->SetLineColor (colorProd[iprod]);
228 gMassRat[ism][iprod]->SetMarkerStyle(styleProd[iprod]);
229 gMassRat[ism][iprod]->SetMarkerSize (markerSize);
239 gStyle->SetPadRightMargin(0.01);
240 gStyle->SetPadLeftMargin(0.12);
241 gStyle->SetTitleFontSize(0.06);
243 gStyle->SetOptStat(0);
244 gStyle->SetOptTitle(1);
245 gStyle->SetPadTopMargin(0.07);
252 TLegend *lE =
new TLegend(-0.04,0.1,1,1);
256 lE->SetBorderSize(0);
257 lE->SetTextSize(0.07);
258 if ( trigger ==
"default" ) lE->SetHeader(
" kINT7");
259 else if ( trigger ==
"EMCAL_L0") lE->SetHeader(
" kEMC7");
260 else if ( trigger ==
"DCAL_L0" ) lE->SetHeader(
" kDMC7");
261 else if ( trigger ==
"EMCAL_L1") lE->SetHeader(
" kEMCEGA: EG1");
262 else if ( trigger ==
"DCAL_L1" ) lE->SetHeader(
" kEMCEGA: DG1");
263 else if ( trigger ==
"EMCAL_L2") lE->SetHeader(
" kEMCEGA: EG2");
264 else if ( trigger ==
"DCAL_L2" ) lE->SetHeader(
" kEMCEGA: DG2");
275 TCanvas * cGraphSM =
new TCanvas(
"cGraphSM",
"Per SM",
276 ncol*2000,nrow*2000);
278 cGraphSM->Divide(ncol,nrow);
282 cGraphSM->cd(ism+1-firstSM);
287 hAxis[ism] =
new TH1F(Form(
"hAxisBisRat_SM%d",ism),Form(
"SM %d",ism),1000,minE,maxE);
289 hAxis[ism]->GetYaxis()->SetTitle(
"Mass (MeV/#it{c}^{2})");
290 hAxis[ism]->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
291 hAxis[ism]->SetMaximum(145);
292 hAxis[ism]->SetMinimum(125);
301 hAxis[ism]->SetMaximum(600);
302 hAxis[ism]->SetMinimum(450);
305 hAxis[ism]->Draw(
"");
309 if ( !file[iprod] || !gMass[ism][iprod] )
continue;
311 if ( ism == firstSM )
312 lE->AddEntry(gMass[ism][iprod],prodLeg[iprod],
"PL");
314 gMass[ism][iprod]->Draw(
"P");
318 cGraphSM->cd(lastSM-firstSM+2);
321 fileName = Form(
"%s/Mass_PerSM",
325 cGraphSM->Print(fileName);
329 TCanvas * cGraphSMRat =
new TCanvas(
"cGraphSMRat",
"Ratio Per SM",
330 ncol*2000,nrow*2000);
332 cGraphSMRat->Divide(ncol,nrow);
336 cGraphSMRat->cd(ism+1-firstSM);
341 hAxis[ism] =
new TH1F(Form(
"hAxisBis_SM%d",ism),Form(
"SM %d",ism),1000,minE,maxE);
343 hAxis[ism]->GetYaxis()->SetTitle(
"Ratio to LHC17pq");
344 hAxis[ism]->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
349 hAxis[ism]->SetMaximum(1.1);
350 hAxis[ism]->SetMinimum(0.9);
351 hAxis[ism]->Draw(
"");
355 if ( !gMassRat[ism][iprod] )
continue;
358 gMassRat[ism][iprod]->Draw(
"P");
363 cGraphSMRat->cd(lastSM-firstSM+2);
367 fileName = Form(
"%s/MassRatio_PerSM",
371 cGraphSMRat->Print(fileName);
382 TH1F* hAxisAll =
new TH1F(
"hAxisAll",
"All pairs in same SM",1000,minE,maxE);
384 hAxisAll->GetYaxis()->SetTitle(
"Mass (MeV/#it{c}^{2})");
385 hAxisAll->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
386 hAxisAll->SetMaximum(140);
387 hAxisAll->SetMinimum(125);
391 hAxisAll->SetMaximum(600);
392 hAxisAll->SetMinimum(450);
398 TH1F* hAxisAllRat =
new TH1F(
"hAxisAllRat",
"Ratio to LHC17pq CENT, all SM, pairs in same SM",1000,minE,maxE);
399 hAxisAllRat->GetYaxis()->SetTitle(
"Ratio to LHC17pq CENT");
400 hAxisAllRat->GetXaxis()->SetTitle(
"#it{p}_{T} (GeV/#it{c})");
406 hAxisAllRat->SetMaximum(1.05);
407 hAxisAllRat->SetMinimum(0.95);
410 TCanvas * cGraph =
new TCanvas(
"cGraphAllSameSM",
"All same SM",
411 ncol*2000,nrow*2000);
413 cGraph->Divide(ncol,nrow);
424 if(!file[iprod])
continue;
425 gMassAllSM[iprod]->Draw(
"P");
428 gMassAllSM[1]->Draw(
"P");
435 TLegend *lA =
new TLegend(0.2,0.8,0.9,0.9);
439 lA->SetBorderSize(0);
440 lA->SetTextSize(0.05);
442 hAxisAllRat->Draw(
"");
446 if(!file[iprod])
continue;
448 gMassRatAllSM[iprod]->Draw(
"P");
453 gMassRatAllSM[1]->Draw(
"P");
464 fileName = Form(
"%s/Mass_AllSameSM",
468 cGraph->Print(fileName);
471 TCanvas * cGraphA =
new TCanvas(
"cGraphAllSM",
"All SM",
472 ncol*2000,nrow*2000);
474 cGraphA->Divide(ncol,nrow);
481 hAxisAll->SetTitle(
"all SM combinations");
486 if(!file[iprod])
continue;
487 gMassAll[iprod]->Draw(
"P");
490 gMassAll[1]->Draw(
"P");
497 hAxisAllRat->SetTitle(
"Ratio to LHC17pq CENT, all SM combinations");
498 hAxisAllRat->Draw(
"");
502 if(!file[iprod])
continue;
504 gMassRatAllSM[iprod]->Draw(
"P");
510 gMassRatAllSM[1]->Draw(
"P");
521 fileName = Form(
"%s/Mass_AllSM",
525 cGraphA->Print(fileName);
const TString calorimeter
static TGraphErrors * DivideGraphs(TGraphErrors *gNum, TGraphErrors *gDen)
void CompareInvMassGraphsDataProd(TString particle="Eta", TString calorimeter="DCAL", TString trigger="default")
File format: ".eps" ".pdf" ...
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