16 #if !defined(__CINT__) || defined(__MAKECINT__) 19 #include <TDirectoryFile.h> 34 #include <TGraphErrors.h> 49 TString histoLeg[] = {
"#it{n}^{w}_{cell}>1",
"#it{n}^{w}_{cell} > 4",
"#it{n}^{w}_{cell} #leq 4"};
53 Double_t binE [] = { 2, 3, 4, 5, 6, 7, 8,10,12,14,16,18,20,22, 25, 30, 35, 40,50};
54 Double_t binEErr[] = {0.5,0.5,0.5,0.5,0.5,0.5,0.5, 1, 1, 1, 1, 1, 1, 1,1.5, 2.5, 2.5, 2.5, 5};
66 Int_t color [] = {1,4,2,6,8,9,kYellow-6,kCyan,kOrange+2,kViolet,kOrange-2,
67 4,2,6,8,9,kYellow-6,kCyan,kOrange+2,kViolet,kOrange-2};
69 1, 1,2,2,2,2,2, 2, 2, 2, 2,
70 2,2,2,2,2,2,2,2,2,2,2,2};
71 Int_t marker [] = {20,20,20,21,24,24,24,24,24,24,24};
95 if(titleName.Contains(
"15") || titleName.Contains(
"16") ||
96 titleName.Contains(
"17") || titleName.Contains(
"18"))
100 if(titleName.Contains(
"DCAL") || titleName.Contains(
"DMC") ||
101 titleName.Contains(
"DG") || titleName.Contains(
"DMG"))
150 Int_t totalSM = 10, firstSM = 0;
151 Int_t ncol = 4, nrow = 3;
152 GetSMNumber(titleName.Data(),totalSM,firstSM,ncol,nrow);
153 const Int_t nSM = totalSM;
164 const Int_t nGroup = 3;
172 TFile*
file = TFile::Open(Form(
"%s.root",filePath.Data()));
174 printf(
"Read: %s.root, %p\n",filePath.Data(),
file);
189 h3[0] = (
TH3F*) file->Get(Form(
"%s%s_hSMM02NoCut_Neutral",start.Data(),tm.Data()));
190 h3[1] = (
TH3F*) file->Get(Form(
"%s%s_hSMM02_Neutral" ,start.Data(),tm.Data()));
192 printf(
"AliAnaClusterShapeStudies TH3F %p %p\n",h3[0],h3[1]);
194 if(filePath.Contains(
"data"))
200 if(
nHisto > 2) h3[2] = (
TH3F*) h3[0]->Clone(
"Histo2_Iso2");
201 h3[2]->Add(h3[1],-1);
214 ebinMin = h3[ihisto]->GetXaxis()->FindBin(
binE[iebin ]);
215 ebinMax = h3[ihisto]->GetXaxis()->FindBin(
binE[iebin+1])-1;
216 lowE[iebin] = h3[ihisto]->GetXaxis()->GetBinLowEdge(ebinMin);
217 width = h3[ihisto]->GetXaxis()->GetBinWidth (ebinMax);
218 higE[iebin] = h3[ihisto]->GetXaxis()->GetBinLowEdge(ebinMax)+width;
219 muE [iebin] = (lowE[iebin]+higE[iebin])/2.;
220 errE[iebin] = (higE[iebin]-lowE[iebin])/2.;
222 for(
Int_t ism = firstSM; ism < nSM; ism++)
224 smbin = h3[ihisto]->GetYaxis()->FindBin(ism);
225 h[ihisto][iebin][ism] =
226 (
TH1D*) h3[ihisto]->ProjectionZ(Form(
"Histo%d_BinE%d_SM%d",ihisto,iebin,ism),ebinMin,ebinMax,smbin,smbin);
228 if ( !h[ihisto][iebin][ism] )
continue;
235 h[ihisto][iebin][ism]->SetLineColor(
color[ihisto]);
237 h[ihisto][iebin][ism]->SetLineWidth(2);
239 h[ihisto][iebin][ism]->SetLineStyle(
lineStyle[ihisto]);
241 h[ihisto][iebin][ism]->SetMarkerStyle(
marker[ihisto]);
243 h[ihisto][iebin][ism]->SetMarkerColor(
color[ihisto]);
245 h[ihisto][iebin][ism]->SetMarkerSize(0.5);
248 h[ihisto][iebin][ism]->Rebin(rebin);
250 h[ihisto][iebin][ism]->SetAxisRange(xmin,xmax,
"X");
261 for(
Int_t ism = firstSM; ism < nSM; ism++)
265 if ( ihisto==0 ) h2[ihisto][ism] = (
TH2F*) file->Get(Form(
"AnaIsolPhoton_hPtLambda0_SM%d_%s" ,ism,anaName[iana].
Data()));
266 if ( ihisto==1 ) h2[ihisto][ism] = (
TH2F*) file->Get(Form(
"AnaIsolPhoton_hPtLambda0_NCellCut_SM%d_%s",ism,anaName[iana].
Data()));
270 h2[ihisto][ism] = (
TH2F*) h2[0][ism]->Clone(Form(
"Histo%d_Iso%d_SM%d",ihisto,iana,ism));
271 h2[ihisto][ism]->Add(h2[1][ism],-1);
276 if(filePath.Contains(
"data") ) h2[ihisto][ism]->Sumw2();
277 if(filePath.Contains(
"simu") && filePath.Contains(
"MB") ) h2[ihisto][ism]->Sumw2();
289 for(
Int_t ism = firstSM; ism < nSM; ism++)
295 ebinMin = h2[ihisto][ism]->GetXaxis()->FindBin(
binE[iebin ]);
296 ebinMax = h2[ihisto][ism]->GetXaxis()->FindBin(
binE[iebin+1])-1;
297 lowE[iebin] = h2[ihisto][ism]->GetXaxis()->GetBinLowEdge(ebinMin);
298 width = h2[ihisto][ism]->GetXaxis()->GetBinWidth (ebinMax);
299 higE[iebin] = h2[ihisto][ism]->GetXaxis()->GetBinLowEdge(ebinMax)+width;
300 muE [iebin] = (lowE[iebin]+higE[iebin])/2.;
301 errE[iebin] = (higE[iebin]-lowE[iebin])/2.;
303 h[ihisto][iebin][ism] =
304 (
TH1D*) h2[ihisto][ism]->ProjectionY(Form(
"Histo%d_BinE%d_SM%d",ihisto,iebin,ism),ebinMin,ebinMax);
308 if ( !h[ihisto][iebin][ism] )
continue;
315 h[ihisto][iebin][ism]->SetLineColor(
color[ihisto]);
317 h[ihisto][iebin][ism]->SetLineWidth(2);
319 h[ihisto][iebin][ism]->SetLineStyle(
lineStyle[ihisto]);
321 h[ihisto][iebin][ism]->SetMarkerStyle(
marker[ihisto]);
323 h[ihisto][iebin][ism]->SetMarkerColor(
color[ihisto]);
325 h[ihisto][iebin][ism]->SetMarkerSize(0.5);
328 h[ihisto][iebin][ism]->Rebin(rebin);
330 h[ihisto][iebin][ism]->SetAxisRange(xmin,xmax,
"X");
344 if ( h[ihisto][iebin][firstSM] )
346 hA [ihisto][iebin] = (
TH1D*) h[ihisto][iebin][firstSM]->Clone(Form(
"SMAll_Cut%d_Ana%d" ,ihisto,iana));
348 for(
Int_t ism = firstSM+1; ism < nSM; ism++)
349 hA[ihisto][iebin]->Add( h[ihisto][iebin][ism] );
353 if( !titleName.Contains(
"DCAL") && !titleName.Contains(
"DMC") &&
354 !titleName.Contains(
"DG") && !titleName.Contains(
"DMG"))
356 hGroup[ihisto][iebin][0] = (
TH1D*) h[ihisto][iebin][0]->Clone(Form(
"SM_Group0_Cut%d_Ana%d",ihisto, iana));
357 hGroup[ihisto][iebin][1] = (
TH1D*) h[ihisto][iebin][1]->Clone(Form(
"SM_Group1_Cut%d_Ana%d",ihisto, iana));
358 hGroup[ihisto][iebin][2] = (
TH1D*) h[ihisto][iebin][3]->Clone(Form(
"SM_Group2_Cut%d_Ana%d",ihisto, iana));
360 hGroup[ihisto][iebin][0]->Add( h[ihisto][iebin][4] );
361 hGroup[ihisto][iebin][0]->Add( h[ihisto][iebin][5] );
362 hGroup[ihisto][iebin][0]->Add( h[ihisto][iebin][6] );
363 hGroup[ihisto][iebin][0]->Add( h[ihisto][iebin][8] );
364 hGroup[ihisto][iebin][0]->Add( h[ihisto][iebin][9] );
366 hGroup[ihisto][iebin][1]->Add( h[ihisto][iebin][2] );
368 hGroup[ihisto][iebin][2]->Add( h[ihisto][iebin][7] );
370 hGroup[ihisto][iebin][0]->Scale(1./6.);
371 hGroup[ihisto][iebin][1]->Scale(1./2.);
372 hGroup[ihisto][iebin][2]->Scale(1./2.);
386 gStyle->SetPadRightMargin(0.01);
387 gStyle->SetPadLeftMargin(0.12);
388 gStyle->SetTitleFontSize(0.06);
390 gStyle->SetOptStat(0);
400 gStyle->SetOptTitle(1);
401 gStyle->SetPadTopMargin(0.1);
403 TCanvas *
c =
new TCanvas(Form(
"c_ebin%d_iana%d_%s",
404 iebin,iana, titleName.Data()),
405 Form(
"iana %d, %2.1f < E < %2.1f, %s",
406 iana, lowE[iebin],higE[iebin], titleName.Data()),
407 ncol*2000,nrow*2000);
408 c->Divide(ncol,nrow);
410 TLegend *l =
new TLegend(0,0,1,1);
415 l->SetTextSize(0.07);
416 l->SetHeader(Form(
"%2.1f < #it{E} < %2.1f GeV", lowE[iebin],higE[iebin]));
417 l->AddEntry(
"",anaTitle[iana].
Data(),
"");
419 for(
Int_t ism = firstSM; ism < nSM; ism++)
425 printf(
"iana %d iE %d ism %d: %p %p %p\n",
426 iana,iebin,ism,h[0][iebin][ism],h[1][iebin][ism],h[2][iebin][ism]);
428 if(!h[0][iebin][ism])
continue;
433 if(!h[ihisto][iebin][ism])
continue;
435 h[ihisto][iebin][ism]->SetTitle(Form(
"SM %d",ism));
437 h[ihisto][iebin][ism]->SetTitleOffset(1.8,
"Y");
441 if ( ihisto == 0 ) h[ihisto][iebin][ism]->Draw(
"H");
442 else h[ihisto][iebin][ism]->Draw(
"H same");
444 if(h[ihisto][iebin][ism]->GetMaximum() > h[0][iebin][ism]->GetMaximum())
445 h[0][iebin][ism]->SetMaximum(h[ihisto][iebin][ism]->GetMaximum()*1.2);
448 l->AddEntry(h[ihisto][iebin][ism],Form(
"%s",histoLeg[ihisto].
Data()),
"PL");
458 Int_t binM02Min = h[0][iebin][ism]->FindBin(0.1);
467 if ( integral0 > 0 ) ratio = integral1 / integral0 ;
470 frac [iebin][ism][imax] = ratio*100;
471 efrac[iebin][ism][imax] = eratio*100;
474 printf(
"\t max %2.2f, frac %2.2f, err %2.2f\n",
475 maxShShCut[imax],frac [iebin][ism][imax],efrac[iebin][ism][imax]);
478 TLegend *lsm =
new TLegend(0.15,0.7,0.95,0.9);
479 lsm->SetFillColor(0);
480 lsm->SetFillStyle(0);
481 lsm->SetLineColor(0);
482 lsm->SetBorderSize(0);
483 lsm->SetTextSize(0.07);
484 lsm->SetHeader(Form(
" For 0.10<#sigma_{long}^{2}<%2.2f",
maxShShCut[shshRef]));
485 lsm->AddEntry(
"",Form(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} = %2.1f #pm %2.1f %%",frac[iebin][ism][shshRef],efrac[iebin][ism][shshRef]),
"") ;
493 fileName = Form(
"figures/Comparison_M02_NCellCut_Ebin%d_%s_%s",
494 iebin,anaName[iana].
Data(),titleName.Data());
498 if ( !plotRat )
continue;
500 TCanvas * cR =
new TCanvas(Form(
"cR_ebin%d_iana%d_%s",
501 iebin,iana, titleName.Data()),
502 Form(
"Ratio iana %d, %2.1f < E < %2.1f, %s",
503 iana, lowE[iebin],higE[iebin], titleName.Data()),
504 ncol*2000,nrow*2000);
505 cR->Divide(ncol,nrow);
507 for(
Int_t ism = 0; ism < nSM; ism++)
514 if(!h[1][iebin][ism])
continue;
519 if(!h[ihisto][iebin][ism])
continue;
521 TH1F* hRat = (TH1F*) h[ihisto][iebin][ism]->Clone(Form(
"%s_Ratio",h[ihisto][iebin][ism]->GetName()));
522 hRat->Divide(h[0][iebin][ism]);
524 if(ihisto==0) hRat->Draw(
"H");
525 else hRat->Draw(
"H same");
527 hRat->SetYTitle(
"Ratio MC to Data");
528 hRat->SetMaximum(1.2);
538 fileName = Form(
"figures/Comparison_Ratio_M02_NCellCut_Ebin%d_%s_%s",
539 iebin,anaName[iana].
Data(),titleName.Data());
548 TCanvas * cA =
new TCanvas(Form(
"cAllSM_iana%d_%s",iana, titleName.Data()),
549 Form(
"All SM, iana %d, %s",iana, titleName.Data()),
550 ncolE*2000,nrowE*2000);
552 cA->Divide(ncolE,nrowE);
554 TLegend *l2 =
new TLegend(0,0.,1,1);
558 l2->SetBorderSize(0);
559 l2->SetTextSize(0.07);
560 l2->AddEntry(
"",Form(
"All SM, %s",anaTitle[iana].
Data()),
"");
567 printf(
"All SM, iana %d, ebin %d: %p, %p, %p\n",
568 iana,iebin,hA[0][iebin],hA[1][iebin],hA[2][iebin]);
570 if(!hA[0][iebin])
continue;
576 gStyle->SetOptTitle(1);
577 gStyle->SetPadTopMargin(0.1);
579 hA[0][iebin]->Draw(
"H");
583 if(!hA[ihisto][iebin])
continue;
585 hA[ihisto][iebin]->SetTitleOffset(1.8,
"Y");
590 hA[ihisto][iebin]->SetTitle(Form(
"%2.1f < #it{E}^{clus} < %2.1f GeV",lowE[iebin],higE[iebin]));
591 if(higE[iebin] > 90) hA[ihisto][iebin]->SetTitle(Form(
"#it{E} > %2.1f GeV",lowE[iebin]));
593 hA[ihisto][iebin]->Draw(
"H same");
595 if(hA[ihisto][iebin]->GetMaximum() > hA[0][iebin]->GetMaximum())
596 hA[0][iebin]->SetMaximum(hA[ihisto][iebin]->GetMaximum()*1.2);
599 l2->AddEntry(hA[ihisto][iebin],Form(
"%s",histoLeg[ihisto].
Data()),
"PL");
609 Int_t binM02Min = hA[0][iebin]->FindBin(0.1);
618 if ( integral0 > 0 ) ratio = integral1 / integral0 ;
630 frac [iebin][nSM][imax] = ratio*100;
631 efrac[iebin][nSM][imax] = eratio*100;
634 printf(
"\t max %2.2f, frac %2.2f, err %2.2f\n",
635 maxShShCut[imax],frac [iebin][nSM][imax],efrac[iebin][nSM][imax]);
638 TLegend *lE =
new TLegend(0.15,0.7,0.95,0.9);
642 lE->SetBorderSize(0);
643 lE->SetTextSize(0.07);
644 lE->SetHeader(Form(
" For 0.10<#sigma_{long}^{2}<%2.2f",
maxShShCut[shshRef]));
645 lE->AddEntry(
"",Form(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} = %2.1f #pm %2.1f %%",frac[iebin][nSM][shshRef],efrac[iebin][nSM][shshRef]),
"") ;
652 fileName = Form(
"figures/Comparison_M02_NCellCut_AllSM_%s_%s",
653 anaName[iana].
Data(),titleName.Data());
659 TCanvas * cAR =
new TCanvas(Form(
"cR_AllSM_iana%d_%s",iana, titleName.Data()),
660 Form(
"All SM, iana %d, %s",iana, titleName.Data()),
661 ncolE*2000,nrowE*2000);
663 cAR->Divide(ncolE,nrowE);
669 if(!hA[0][iebin])
continue;
673 gStyle->SetOptTitle(1);
674 gStyle->SetPadTopMargin(0.1);
676 hA[0][iebin]->Draw(
"H");
680 if(!hA[ihisto][iebin])
continue;
682 TH1F* hRat = (TH1F*) hA[ihisto][iebin]->Clone(Form(
"%s_Ratio",hA[ihisto][iebin]->GetName()));
683 hRat->Divide(hA[0][iebin]);
685 if(ihisto==1) hRat->Draw(
"H");
686 else hRat->Draw(
"H same");
688 hRat->SetYTitle(
"Ratio MC to Data");
689 hRat->SetMaximum(1.2);
694 cAR->cd(ncolE*nrowE);
697 fileName = Form(
"figures/Comparison_Ratio_M02_NCellCut_AllSM_%s_%s",
698 anaName[iana].
Data(),titleName.Data());
701 cAR->Print(fileName);
706 for(
Int_t ism = firstSM; ism < nSM; ism++)
708 TCanvas * cSM =
new TCanvas(Form(
"cSM%d_iana%d_%s",ism,iana,titleName.Data()),
709 Form(
"SM %d, iana %d, %s",ism,iana,titleName.Data()),
710 ncolE*2000,nrowE*2000);
712 cSM->Divide(ncolE,nrowE);
714 TLegend *l2 =
new TLegend(0,0.,1,1);
718 l2->SetBorderSize(0);
719 l2->SetTextSize(0.07);
720 l2->AddEntry(
"",Form(
"SM %d, %s",ism,anaTitle[iana].
Data()),
"");
726 if(!h[0][iebin][ism])
continue;
730 gStyle->SetOptTitle(1);
731 gStyle->SetPadTopMargin(0.1);
733 h[0][iebin][ism]->Draw(
"H");
737 if(!h[ihisto][iebin][ism])
continue;
739 h[ihisto][iebin][ism]->SetTitle(Form(
"%2.1f < #it{E}^{clus} < %2.1f GeV",lowE[iebin],higE[iebin]));
741 h[ihisto][iebin][ism]->Draw(
"H same");
743 if(h[ihisto][iebin][ism]->GetMaximum() > h[0][iebin][ism]->GetMaximum())
744 h[0][iebin][ism]->SetMaximum(h[ihisto][iebin][ism]->GetMaximum()*1.2);
747 l2->AddEntry(h[ihisto][iebin][ism],Form(
"%s",histoLeg[ihisto].
Data()),
"PL");
750 TLegend *lE =
new TLegend(0.15,0.7,0.95,0.9);
754 lE->SetBorderSize(0);
755 lE->SetTextSize(0.07);
756 lE->SetHeader(Form(
" For 0.10<#sigma_{long}^{2}<%2.2f",
maxShShCut[shshRef]));
757 lE->AddEntry(
"",Form(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} = %2.1f #pm %2.1f %%",frac[iebin][ism][shshRef],efrac[iebin][ism][shshRef]),
"") ;
761 cSM->cd(ncolE*nrowE);
764 fileName = Form(
"figures/Comparison_M02_NCellCut_SM%d_%s_%s",
765 ism,anaName[iana].
Data(),titleName.Data());
767 cSM->Print(fileName);
781 Double_t binSM [] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22};
782 Double_t binSMErr [] = {0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5};
789 for(
Int_t ism = firstSM; ism < nSM+1; ism++)
791 fracSM[ism] = frac[ie][ism][imax];
792 efracSM[ism] = efrac[ie][ism][imax];
795 gFracPerSM[ie][imax] =
new TGraphErrors(nSM+1,binSM,fracSM,binSMErr,efracSM);
800 for(
Int_t ism = firstSM; ism < nSM+1; ism++)
805 fracEn[ie] = frac[ie][ism][imax];
806 efracEn[ie] = efrac[ie][ism][imax];
809 gFracPerEn[ism][imax] =
new TGraphErrors(nEBins,muE,fracEn,errE,efracEn);
813 if( filePath.Contains(
"simu") )
815 if(filePath.Contains(
"High"))
817 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(16,45,
"X");
819 else if(filePath.Contains(
"Low"))
821 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(7,20,
"X");
823 else if(filePath.Contains(
"MB"))
825 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(2,10,
"X");
830 if( filePath.Contains(
"EMC") || filePath.Contains(
"DMC") ||
831 filePath.Contains(
"EG") || filePath.Contains(
"DG") )
833 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(6,50,
"X");
835 else if ( filePath.Contains(
"MB") || filePath.Contains(
"INT") )
837 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(2,10,
"X");
838 if(filePath.Contains(
"LHC17"))
840 gFracPerEn[ism][imax]->GetHistogram()->SetAxisRange(2,14,
"X");
855 Int_t colorSM[]={1 , 1, 2, 2, 3, 3, 4, 4, 7, 7, 6, 6, 2, 3, 4, 7, 6, 2, 2, 3, 3, 4, 4, 6, 6};
856 Int_t styleSM[]={24,25,25,24,25,24,25,24,25,24,25,21,21,21,21,21,22,26,22,26,22,26,22,26};
858 TCanvas * cGraphE =
new TCanvas(Form(
"cGraphE_iana%d_%s",iana, titleName.Data()),
859 Form(
"Graph E bin, iana %d, %s",iana, titleName.Data()),
862 cGraphE->Divide(2,2);
864 TLegend *lSM =
new TLegend(0.1,0.1,1,1);
865 lSM->SetFillColor(0);
866 lSM->SetFillStyle(0);
867 lSM->SetLineColor(0);
868 lSM->SetBorderSize(0);
869 lSM->SetTextSize(0.07);
878 gFracPerEn[nSM][imax]->SetTitle(Form(
"0.10<#sigma_{long}^{2}<%2.2f, %s",
maxShShCut[imax],anaTitle[iana].
Data()));
879 gFracPerEn[nSM][imax]->Draw(
"AP");
881 for(
Int_t ism = firstSM; ism < nSM+1; ism++)
883 gFracPerEn[ism][imax]->Draw(
"P");
884 gFracPerEn[ism][imax]->GetYaxis()->SetTitle(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} (%)");
885 if ( iana < 2 ) gFracPerEn[ism][imax]->GetXaxis()->SetTitle(
"#it{E}_{T} (GeV)");
886 else gFracPerEn[ism][imax]->GetXaxis()->SetTitle(
"#it{E} (GeV)");
887 gFracPerEn[ism][imax]->SetMaximum(50);
888 gFracPerEn[ism][imax]->SetMinimum(0);
890 if(filePath.Contains(
"Default"))
892 gFracPerEn[ism][imax]->SetMaximum(5);
893 gFracPerEn[ism][imax]->SetMinimum(0);
896 gFracPerEn[ism][imax]->SetMarkerColor(colorSM[ism]);
897 gFracPerEn[ism][imax]->SetLineColor (colorSM[ism]);
898 gFracPerEn[ism][imax]->SetMarkerStyle(styleSM[ism]);
899 gFracPerEn[ism][imax]->SetMarkerSize (5);
902 if ( imax == 0 ) lSM->AddEntry(gFracPerEn[ism][imax],Form(
"SM %d",ism),
"PL");
906 gFracPerEn[ism][imax]->SetMarkerColor(1);
907 gFracPerEn[ism][imax]->SetLineColor (1);
908 gFracPerEn[ism][imax]->SetMarkerStyle(20);
909 if ( imax == 0 ) lSM->AddEntry(gFracPerEn[ism][imax],
"All SM",
"PL");
917 fileName = Form(
"figures/Comparison_Fraction_M02PhotonToAll_NCellCut_YaxisE_PerSM_%s_%s",
918 anaName[iana].
Data(),titleName.Data());
921 cGraphE->Print(fileName);
924 gStyle->SetOptTitle(1);
930 TCanvas * cGraphEMax =
new TCanvas(Form(
"cGraphE_Sh%d_iana%d_%s",imax,iana, titleName.Data()),
931 Form(
"Graph E bin, Sh < %2.2f, iana %d, %s",
maxShShCut[imax], iana, titleName.Data()),
940 TLegend *lSM =
new TLegend(0.85,0.2,0.98,0.85);
941 lSM->SetFillColor(1);
942 lSM->SetFillStyle(1);
943 lSM->SetLineColor(0);
944 lSM->SetBorderSize(0);
945 lSM->SetTextSize(0.03);
947 TH1F * hAxis =
new TH1F(Form(
"hAxis_Max%d",imax),
948 Form(
"0.1<#sigma_{long}^{2}<%2.2f, %s",
maxShShCut[imax], anaTitle[iana].
Data()),60,5,65);
949 hAxis->SetYTitle(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} (%)");
950 if ( iana < 2 ) hAxis->SetXTitle(
"#it{E}_{T} (GeV)");
951 else hAxis->SetXTitle(
"#it{E} (GeV)");
953 hAxis->SetMaximum(50);
954 hAxis->SetMinimum(0);
957 gFracPerEn[nSM][imax]->Draw(
"P");
958 lSM->AddEntry(gFracPerEn[nSM][imax],
"All SM",
"PL");
960 for(
Int_t ism = firstSM; ism < nSM+1; ism++)
962 gFracPerEn[ism][imax]->Draw(
"P");
963 if(ism < nSM) lSM->AddEntry(gFracPerEn[ism][imax],Form(
"SM %d",ism),
"PL");
968 fileName = Form(
"figures/Comparison_Fraction_M02PhotonToAll_NCellCut_YaxisE_PerSM_ShMax%d_%s_%s",
969 imax, anaName[iana].
Data(),titleName.Data());
972 cGraphEMax->Print(fileName);
978 TCanvas * cGraphSM =
new TCanvas(Form(
"cGraphSM_iana%d_%s",iana, titleName.Data()),
979 Form(
"Graph E bin, iana %d, %s",iana, titleName.Data()),
982 cGraphSM->Divide(2,2);
984 TLegend *lE =
new TLegend(0.1,0.1,1,1);
988 lE->SetBorderSize(0);
989 lE->SetTextSize(0.07);
993 cGraphSM->cd(imax+2);
995 gFracPerSM[0][imax]->SetTitle(Form(
"0.10<#sigma_{long}^{2}<%2.2f, %s",
maxShShCut[imax],anaTitle[iana].
Data()));
996 gFracPerSM[0][imax]->Draw(
"AP");
1000 gFracPerSM[ie][imax]->Draw(
"P");
1001 gFracPerSM[ie][imax]->GetYaxis()->SetTitle(
"Fraction %");
1002 gFracPerSM[ie][imax]->GetXaxis()->SetTitle(
"SM");
1003 gFracPerSM[ie][imax]->SetMaximum(50);
1004 gFracPerSM[ie][imax]->SetMinimum(0);
1005 if ( filePath.Contains(
"Default") )
1007 gFracPerSM[ie][imax]->SetMaximum(5);
1008 gFracPerSM[ie][imax]->SetMinimum(0);
1010 gFracPerSM[ie][imax]->SetMarkerColor(
color[ie]);
1011 gFracPerSM[ie][imax]->SetLineColor (
color[ie]);
1012 gFracPerSM[ie][imax]->SetMarkerStyle(24);
1013 gFracPerSM[ie][imax]->SetMarkerSize (5);
1014 if ( imax == 0 ) lE->AddEntry(gFracPerSM[ie][imax],Form(
"%2.f <E %2.1f GeV",lowE[ie],higE[ie]),
"PL");
1020 fileName = Form(
"figures/Comparison_Fraction_M02PhotonToAll_NCellCut_YaxisSM_PerE_%s_%s",
1021 anaName[iana].
Data(),titleName.Data());
1024 cGraphSM->Print(fileName);
1029 TFile *
fout =
new TFile(Form(
"figures/Fraction_M02PhotonToAll_NCellCut_%s_%s.root",
1030 anaName[iana].
Data(),titleName.Data()),
"recreate");
1033 for(
Int_t ism = firstSM; ism < nSM+1; ism++)
1035 gFracPerEn[ism][imax]->SetName(Form(
"gFractionFrom%1.2f_SM%d_PerE",
maxShShCut[imax], ism));
1036 gFracPerEn[ism][imax]->Write();
1041 gFracPerSM[ie][imax]->SetName(Form(
"gFractionFrom%1.2f_Ebin%d_PerSM",
maxShShCut[imax],ie));
1042 gFracPerSM[ie][imax]->Write();
1073 Int_t totalSM = 10, firstSM = 0;
1074 Int_t ncolSM = 4, nrowSM = 3;
1076 const Int_t nSM = totalSM+1;
1079 printf(
"Compare %d productions for ana %d, nSM %d+1, first SM %d, ncol %d, nrow %d\n",
1080 nProd,iana,totalSM,firstSM,ncolSM,nrowSM);
1091 file[iprod] =
new TFile(Form(
"figures/Fraction_M02PhotonToAll_NCellCut_%s_%s.root",
1092 anaName[iana].
Data(),fileName[iprod].
Data()),
"read");
1096 printf(
"figures/Fraction_M02PhotonToAll_NCellCut_%s_%s.root \n",
1097 anaName[iana].
Data(),fileName[iprod].
Data());
1098 printf(
"iprod %d, file %p\n",iprod,file[iprod]);
1101 if ( !file[iprod] )
continue;
1103 for(
Int_t ism = firstSM; ism < nSM; ism++)
1107 gFrac[ism][im02][iprod] = (
TGraphErrors*) file[iprod]->Get(Form(
"gFractionFrom%1.2f_SM%d_PerE",
maxShShCut[im02],ism));
1111 printf(
"\t gFractionFrom%1.2f_SM%d_PerE \n",
maxShShCut[im02],ism);
1112 printf(
"\t ism %d, im02 %d graph %p \n",ism,im02,gFrac[ism][im02]);
1115 if ( !gFrac[ism][im02][iprod] )
continue;
1119 if(fileName[iprod].Contains(
"MB") || fileName[iprod].Contains(
"INT7"))
1121 else if( fileName[iprod].Contains(
"LHC11") && fileName[iprod].Contains(
"EMC7") )
1124 if(fileName[iprod].Contains(
"JJ"))
1126 if(fileName[iprod].Contains(
"High"))
1128 else if(fileName[iprod].Contains(
"Low"))
1142 Float_t colorProd[] = { 1, 1,kBlue, kBlue,kBlue,kRed,kRed,kRed, 8, 8, 8};
1143 Float_t styleProd[] = {20,22, 26, 24, 25, 26, 24, 25, 26, 24, 25};
1145 gStyle->SetPadRightMargin(0.01);
1146 gStyle->SetPadLeftMargin(0.12);
1147 gStyle->SetTitleFontSize(0.06);
1149 gStyle->SetOptStat(0);
1150 gStyle->SetOptTitle(1);
1151 gStyle->SetPadTopMargin(0.1);
1165 for(
Int_t ism = firstSM; ism < nSM; ism++)
1167 TCanvas * cGraphSM =
new TCanvas(Form(
"cGraphSM_iana%d_SM%d",iana,ism),
1168 Form(
"iana %d, SM%d",iana, ism),
1169 ncol*2000,nrow*2000);
1171 cGraphSM->Divide(ncol,nrow);
1179 lE =
new TLegend(0.1,0.1,1,1);
1180 lE->SetTextSize(0.05);
1184 lE =
new TLegend(0.4,0.55,0.95,0.9);
1185 lE->SetTextSize(0.035);
1187 lE->SetFillColor(0);
1188 lE->SetFillStyle(0);
1189 lE->SetLineColor(0);
1190 lE->SetBorderSize(0);
1195 if (ism==10) lE->SetHeader(Form(
" All SM, %s", anaTitle[iana].
Data()));
1196 else lE->SetHeader(Form(
" SM %d, %s",ism, anaTitle[iana].
Data()));
1201 cGraphSM->cd(im02+1);
1207 if ( nShShMaxCut == 1 )
1209 if (ism == 10 ) title = Form(
"0.10<#sigma^{2}_{long}<%1.2f, all SM, %s",
maxShShCut[im02],anaTitle[iana].
Data());
1210 else title = Form(
"0.10<#sigma^{2}_{long}<%1.2f, SM %d, %s",
maxShShCut[im02],ism, anaTitle[iana].
Data());
1213 hAxis[im02][ism] =
new TH1F(Form(
"hAxisBis_SM%d_M02%d",ism,im02),title.Data(),1000,2,50);
1215 hAxis[im02][ism]->GetYaxis()->SetTitle(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} (%)");
1216 if ( iana < 2 ) hAxis[im02][ism]->GetXaxis()->SetTitle(
"#it{E} (GeV)");
1217 else hAxis[im02][ism]->GetXaxis()->SetTitle(
"#it{E}_{T} (GeV/#it{c})");
1219 if(ism!=3 && ism !=7 ) hAxis[im02][ism]->SetMaximum(45);
1220 else hAxis[im02][ism]->SetMaximum(65);
1222 hAxis[im02][ism]->SetMinimum(0);
1223 if( (ism == 3 || ism ==7) && im02 == 2 ) hAxis[im02][ism]->SetMaximum(45);
1225 hAxis[im02][ism]->Draw(
"");
1229 if(!file[iprod])
continue;
1230 if(! gFrac[ism][im02][iprod] )
continue;
1232 gFrac[ism][im02][iprod]->SetMarkerColor(colorProd[iprod]);
1233 gFrac[ism][im02][iprod]->SetLineColor (colorProd[iprod]);
1234 gFrac[ism][im02][iprod]->SetMarkerStyle(styleProd[iprod]);
1235 gFrac[ism][im02][iprod]->SetMarkerSize (5);
1236 if(im02==0) lE->AddEntry(gFrac[ism][im02][iprod],legName[iprod],
"PL");
1238 gFrac[ism][im02][iprod]->Draw(
"P");
1241 gFrac[ism][im02][0]->Draw(
"P");
1244 if(nShShMaxCut == 3) cGraphSM->cd(4);
1247 TString fileName = Form(
"figures/Comparison_Fraction_M02PhotonToAll_NCellCut_XaxisE_PerM02Cut_PerProd_%s_",
1248 anaName[iana].
Data());
1250 if(ism == 10 ) fileName+=
"AllSM";
1251 else fileName+=Form(
"SM%d",ism);
1254 cGraphSM->Print(fileName);
1262 TCanvas * cGraphE =
new TCanvas(Form(
"cGraphE_iana%d_%d",iana,im02),
1263 Form(
"iana %d, %2.2f",iana,
maxShShCut[im02]),
1264 ncolSM*2000,nrowSM*2000);
1269 cGraphE->Divide(ncolSM,nrowSM);
1271 TLegend *lSM =
new TLegend(-0.04,0.1,1,1);
1272 lSM->SetFillColor(0);
1273 lSM->SetFillStyle(0);
1274 lSM->SetLineColor(0);
1275 lSM->SetBorderSize(0);
1276 lSM->SetTextSize(0.06);
1277 lSM->SetHeader(Form(
" 0.10<#sigma^{2}_{long}<%1.2f, %s",
maxShShCut[im02], anaTitle[iana].
Data()));
1279 for(
Int_t ism = 0; ism < nSM; ism++)
1290 hAxis[im02][ism] =
new TH1F(Form(
"hAxis_SM%d_M02%d",ism,im02),title.Data(),1000,2,50);
1292 hAxis[im02][ism]->GetYaxis()->SetTitle(
"#it{R}_{#sigma_{long}}^{#it{n}^{w}_{cell}} (%)");
1293 if ( iana < 2 ) hAxis[im02][ism]->GetXaxis()->SetTitle(
"#it{E} (GeV)");
1294 else hAxis[im02][ism]->GetXaxis()->SetTitle(
"#it{E}_{T} (GeV/#it{c})");
1296 hAxis[im02][ism]->SetMaximum(35);
1297 hAxis[im02][ism]->SetMinimum(0);
1299 hAxis[im02][ism]->Draw(
"");
1303 if(!file[iprod])
continue;
1304 if(! gFrac[ism][im02][iprod] )
continue;
1306 gFrac[ism][im02][iprod]->SetMarkerColor(colorProd[iprod]);
1307 gFrac[ism][im02][iprod]->SetLineColor (colorProd[iprod]);
1308 gFrac[ism][im02][iprod]->SetMarkerStyle(styleProd[iprod]);
1309 gFrac[ism][im02][iprod]->SetMarkerSize (5);
1310 if(ism==0) lSM->AddEntry(gFrac[ism][im02][iprod],legName[iprod],
"PL");
1312 gFrac[ism][im02][iprod]->Draw(
"P");
1315 gFrac[ism][im02][0]->Draw(
"P");
1318 cGraphE->cd(nrowSM*ncolSM);
1321 TString fileName = Form(
"figures/Comparison_Fraction_M02PhotonToAll_NCellCut_XaxisE_PerSM_PerProd_%s_M02Cut%d",
1322 anaName[iana].
Data(),im02);
1325 cGraphE->Print(fileName);
1351 const Int_t nProd = 8;
1356 if ( debug ) printf(
"N prod %d\n",nProd);
1358 Int_t nproditer = 0;
1360 filePath[nproditer++] =
"data/module/TCardChannel3/LHC11cd_EMC7";
1361 title [nproditer-1] =
"LHC11cd_EMC7";
1362 legend [nproditer-1] =
"data, LHC11c+d, EMC7";
1363 filePath[nproditer++] =
"data/module/TCardChannel3/LHC11cd_INT7";
1364 title [nproditer-1] =
"LHC11cd_INT7";
1365 legend [nproditer-1] =
"data, LHC11c+d, INT7";
1367 filePath[nproditer++] =
"simu/module/pp_7TeV_MB/TCardChannel_Mimic0_Scaled2_v3/ScaledMerged";
1368 title [nproditer-1] =
"default_MC_MB";
1369 legend [nproditer-1] =
"MC default, MB";
1370 filePath[nproditer++] =
"simu/module/pp_7TeV_MB/TCardChannel_Mimic10c_EcellCut_Scaled2_v3/ScaledMerged";
1371 legend [nproditer-1] =
"MC mimic, MB";
1373 filePath[nproditer++] =
"simu/module/pp_7TeV_JJ_Dec_GJ/TCardChannel_Mimic0_Scaled2_v3/ScaledMerged";
1374 title [nproditer-1] =
"Default_MC_JJ_DecLow";
1375 legend [nproditer-1] =
"MC default, #gammaJ-JJ, #it{p}^{EMC}_{T}>3.5 GeV/#it{c}";
1376 filePath[nproditer++] =
"simu/module/pp_7TeV_JJ_Dec_GJ/TCardChannel_Mimic10c_EcellCut_Scaled2_v3/ScaledMerged";
1377 title [nproditer-1] =
"Mimic_MC_JJ_DecLow";
1378 legend [nproditer-1] =
"MC mimic, #gammaJ-JJ, #it{p}^{EMC}_{T}>3.5 GeV/#it{c}";
1380 filePath[nproditer++] =
"simu/module/pp_7TeV_JJ_Dec_High_GJ/TCardChannel_Mimic0_Scaled2_v3/ScaledMerged";
1381 title [nproditer-1] =
"Default_MC_JJ_DecHigh";
1382 legend [nproditer-1] =
"MC default, #gammaJ-JJ, #it{p}^{EMC}_{T}>7 GeV/#it{c}";
1383 filePath[nproditer++] =
"simu/module/pp_7TeV_JJ_Dec_High_GJ/TCardChannel_Mimic10c_EcellCut_Scaled2_v3/ScaledMerged";
1384 title [nproditer-1] =
"Mimic_MC_JJ_DecHigh";
1385 legend [nproditer-1] =
"MC mimic, #gammaJ-JJ, #it{p}^{EMC}_{T}>7 GeV/#it{c}";
void CompareProductions(Int_t nProd, TString *fileName, TString *legName, Int_t iana=0, Bool_t debug=kFALSE)
void GetSMNumber(TString titleName, Int_t &totalSM, Int_t &firstSM, Int_t &ncol, Int_t &nrow)
void CalculateAndPlot(TString titleName, TString filePath, Int_t iana=0, TString tm="_TMDep", Bool_t plotRat=kFALSE, Bool_t debug=kFALSE)
static Double_t GetFractionError(Double_t num, Double_t den, Double_t numErr, Double_t denErr)
void RemovePointsOutOfRangeOrLargeErrorFromGraph(TGraphErrors *graph, Double_t min, Double_t max, Float_t errFraction=0.5, Float_t value=-1, Float_t valueErr=0)
static void GetRangeIntegralAndError(TH1D *h, Int_t binMin, Int_t binMax, Double_t &integral, Double_t &integralErr)
void CalculateShowerShapeFractionPerNCellCut(Bool_t doCalc=kTRUE, Bool_t doComp=kTRUE, TString tm="_TMDep", Bool_t plotRat=kFALSE, Bool_t debug=kFALSE)
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.
void GetCanvasColRowNumber(Int_t npad, Int_t &ncol, Int_t &nrow, Bool_t square=kFALSE)
TFile * fout
input train file