9 extern TRandom *gRandom;
10 extern TBenchmark *gBenchmark;
11 extern TSystem *gSystem;
13 void Plot_Pi0_Characteristics(const char *inputRootFile = "Pi0Characteristics",const char *path = "./Output/"){
16 gROOT->SetStyle("Plain");
18 gStyle->SetPalette(1);
19 TString filename = Form("%s%s.root",path,inputRootFile);
20 TFile f(filename.Data());
22 TList *histograms = f.GetListOfKeys(); // get the list of directories in the file
24 TString cutSelectionArray[15];
26 //Per pt bin histograms:
27 TH1F* YieldPerBin[32];
29 TH1F* SignificancePerBin[32];
33 Double_t BGFit_range[2] = {0.6,0.69};
35 Float_t lowBinLimits[32];
36 Float_t highBinLimits[32];
46 Int_t colorCounterRawYield=1;
47 Int_t histogramCounterRawYield=2;
48 TCanvas *canvasRawYield = new TCanvas("canvasRawYield","",200,10,600,600);
49 canvasRawYield->SetFillColor(0);
50 canvasRawYield->SetLogy();
51 TLegend *legRawYield= new TLegend(0.7,0.7,1.,1.);
52 legRawYield->SetFillColor(0);
54 Int_t colorCounterStoB=1;
55 Int_t histogramCounterStoB=2;
56 TCanvas *canvasStoB = new TCanvas("canvasStoB","",200,10,600,600);
57 canvasStoB->SetFillColor(0);
58 canvasStoB->SetLogy();
59 TLegend *legStoB= new TLegend(0.7,0.7,1.,1.);
60 legStoB->SetFillColor(0);
62 Int_t colorCounterSignificance=1;
63 Int_t histogramCounterSignificance=2;
64 TCanvas *canvasSignificance = new TCanvas("canvasSignificance","",200,10,600,600);
65 canvasSignificance->SetFillColor(0);
66 canvasSignificance->SetLogy();
67 TLegend *legSignificance= new TLegend(0.7,0.7,1.,1.);
68 legSignificance->SetFillColor(0);
70 Int_t colorCounterMass=1;
71 Int_t histogramCounterMass=2;
72 TCanvas *canvasMass = new TCanvas("canvasMass","",200,10,600,600);
73 canvasMass->SetFillColor(0);
74 // canvasMass->SetLogy();
75 TLegend *legMass= new TLegend(0.7,0.7,1.,1.);
76 legMass->SetFillColor(0);
78 Int_t colorCounterFWHM=1;
79 Int_t histogramCounterFWHM=2;
80 TCanvas *canvasFWHM = new TCanvas("canvasFWHM","",200,10,600,600);
81 canvasFWHM->SetFillColor(0);
82 // canvasFWHM->SetLogy();
83 TLegend *legFWHM= new TLegend(0.7,0.7,1.,1.);
84 legFWHM->SetFillColor(0);
87 for(Int_t entFile=0;entFile<histograms->GetEntries();entFile++){
89 TString histoname = histograms->At(entFile)->GetName();
90 if(histoname.Contains("Raw_Yield")){
92 cout<<"Histogram contains Raw_Yield: "<<histoname.Data()<<endl;
94 cout<<"Setting first histogram"<<endl;
95 Raw_Yield = (TH1F*)f.Get(histoname.Data());
96 cout<<"Histoname: "<<histoname.Data()<<endl;
97 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
98 cutSelectionArray[cutsAdded]= cutValue;
100 cout<<"Cut Value is: "<<cutValue.Data()<<endl;
101 for(Int_t bin=1;bin<Raw_Yield->GetNbinsX();bin++){
102 TString perBinHistoName = Form("Raw Yield %f <pt <%f",Raw_Yield->GetBinLowEdge(bin),Raw_Yield->GetBinLowEdge(bin)+Raw_Yield->GetBinWidth(bin));
103 lowBinLimits[bin]=Raw_Yield->GetBinLowEdge(bin);
104 highBinLimits[bin]=Raw_Yield->GetBinLowEdge(bin)+Raw_Yield->GetBinWidth(bin);
105 YieldPerBin[bin]= new TH1F(perBinHistoName.Data(),perBinHistoName.Data(),32,0,32);
106 YieldPerBin[bin]->SetBinContent(histogramCounterRawYield,Raw_Yield->GetBinContent(bin));
107 YieldPerBin[bin]->SetBinError(histogramCounterRawYield,Raw_Yield->GetBinError(bin));
108 YieldPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterRawYield,cutValue.Data());
110 cout<<"Raw_Yield: "<<Raw_Yield<<endl;
111 legRawYield->AddEntry(Raw_Yield,cutValue.Data(),"l");
112 // Raw_Yield->DrawCopy();
114 canvasRawYield->Update();
117 colorCounterRawYield++;
118 TH1F* histogram = (TH1F*)f.Get(histoname.Data());
119 cout<<"histogram number of bins: "<<histogram->GetNbinsX()<<endl;
120 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
121 cutSelectionArray[cutsAdded]= cutValue;
123 for(Int_t bin=1;bin<histogram->GetNbinsX();bin++){
124 // YieldPerBin[bin]= new TH1F(Form("yield bin %d",bin),Form("yield bin %d",bin),32,0,32);
125 YieldPerBin[bin]->SetBinContent(histogramCounterRawYield,histogram->GetBinContent(bin));
126 YieldPerBin[bin]->SetBinError(histogramCounterRawYield,histogram->GetBinError(bin));
127 YieldPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterRawYield,cutValue.Data());
130 histogram->SetLineColor(colorCounterRawYield);
131 legRawYield->AddEntry(histogram,cutValue.Data(),"l");
133 // histogram->DrawCopy("same");
134 histogram->Draw("same");
135 canvasRawYield->Update();
137 histogramCounterRawYield+=2;
141 if(histoname.Contains("SB_Pi0")){
143 cout<<"Histogram contains SB: "<<histoname.Data()<<endl;
145 cout<<"Setting first histogram"<<endl;
146 StoB = (TH1F*)f.Get(histoname.Data());
147 cout<<"Histoname: "<<histoname.Data()<<endl;
148 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
149 cout<<"Cut Value is: "<<cutValue.Data()<<endl;
150 for(Int_t bin=1;bin<Raw_Yield->GetNbinsX();bin++){
151 TString perBinHistoName = Form("S/B %f <pt <%f",StoB->GetBinLowEdge(bin),StoB->GetBinLowEdge(bin)+StoB->GetBinWidth(bin));
152 StoBPerBin[bin]= new TH1F(perBinHistoName.Data(),perBinHistoName.Data(),32,0,32);
153 StoBPerBin[bin]->SetBinContent(histogramCounterStoB,StoB->GetBinContent(bin));
154 StoBPerBin[bin]->SetBinError(histogramCounterStoB,StoB->GetBinError(bin));
155 StoBPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterStoB,cutValue.Data());
157 legStoB->AddEntry(StoB,cutValue.Data(),"l");
159 canvasStoB->Update();
163 TH1F* histogram = (TH1F*)f.Get(histoname.Data());
164 cout<<"histogram number of bins: "<<histogram->GetNbinsX()<<endl;
165 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
166 for(Int_t bin=1;bin<histogram->GetNbinsX();bin++){
167 // YieldPerBin[bin]= new TH1F(Form("yield bin %d",bin),Form("yield bin %d",bin),32,0,32);
168 StoBPerBin[bin]->SetBinContent(histogramCounterStoB,histogram->GetBinContent(bin));
169 StoBPerBin[bin]->SetBinError(histogramCounterStoB,histogram->GetBinError(bin));
170 StoBPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterStoB,cutValue.Data());
173 histogram->SetLineColor(colorCounterStoB);
174 legStoB->AddEntry(histogram,cutValue.Data(),"l");
176 histogram->DrawCopy("same");
177 canvasStoB->Update();
179 histogramCounterStoB+=2;
182 if(histoname.Contains("Significance_Pi0")){
183 canvasSignificance->cd();
184 cout<<"Histogram contains Significance: "<<histoname.Data()<<endl;
185 if(Significance==NULL){
186 cout<<"Setting first histogram"<<endl;
187 Significance = (TH1F*)f.Get(histoname.Data());
188 cout<<"Histoname: "<<histoname.Data()<<endl;
189 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
190 cout<<"Cut Value is: "<<cutValue.Data()<<endl;
191 for(Int_t bin=1;bin<Raw_Yield->GetNbinsX();bin++){
192 TString perBinHistoName = Form("Significance %f <pt <%f",Significance->GetBinLowEdge(bin),Significance->GetBinLowEdge(bin)+Significance->GetBinWidth(bin));
193 SignificancePerBin[bin]= new TH1F(perBinHistoName.Data(),perBinHistoName.Data(),32,0,32);
194 SignificancePerBin[bin]->SetBinContent(histogramCounterSignificance,Significance->GetBinContent(bin));
195 SignificancePerBin[bin]->SetBinError(histogramCounterSignificance,Significance->GetBinError(bin));
196 SignificancePerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterSignificance,cutValue.Data());
198 legSignificance->AddEntry(Significance,cutValue.Data(),"l");
199 Significance->DrawCopy();
200 canvasSignificance->Update();
201 // Raw_Yield = new TH1F("Raw_Yield","Raw_Yield",histogram->GetN)
204 colorCounterSignificance++;
205 TH1F* histogram = (TH1F*)f.Get(histoname.Data());
206 cout<<"histogram number of bins: "<<histogram->GetNbinsX()<<endl;
207 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
208 for(Int_t bin=1;bin<histogram->GetNbinsX();bin++){
209 // YieldPerBin[bin]= new TH1F(Form("yield bin %d",bin),Form("yield bin %d",bin),32,0,32);
210 SignificancePerBin[bin]->SetBinContent(histogramCounterSignificance,histogram->GetBinContent(bin));
211 SignificancePerBin[bin]->SetBinError(histogramCounterSignificance,histogram->GetBinError(bin));
212 SignificancePerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterSignificance,cutValue.Data());
215 histogram->SetLineColor(colorCounterSignificance);
216 legSignificance->AddEntry(histogram,cutValue.Data(),"l");
217 legSignificance->Draw();
218 histogram->DrawCopy("same");
219 canvasSignificance->Update();
221 histogramCounterSignificance+=2;
224 if(histoname.Contains("Mass_Pi0")){
226 cout<<"Histogram contains Mass: "<<histoname.Data()<<endl;
228 cout<<"Setting first histogram"<<endl;
229 Mass = (TH1F*)f.Get(histoname.Data());
230 Mass->SetMinimum(0.1);
231 Mass->SetMaximum(.16);
232 cout<<"Histoname: "<<histoname.Data()<<endl;
233 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
234 cout<<"Cut Value is: "<<cutValue.Data()<<endl;
235 for(Int_t bin=1;bin<Raw_Yield->GetNbinsX();bin++){
236 TString perBinHistoName = Form("Mass %f <pt <%f",Mass->GetBinLowEdge(bin),Mass->GetBinLowEdge(bin)+Mass->GetBinWidth(bin));
237 MassPerBin[bin]= new TH1F(perBinHistoName.Data(),perBinHistoName.Data(),32,0,32);
238 MassPerBin[bin]->SetBinContent(histogramCounterMass,Mass->GetBinContent(bin));
239 MassPerBin[bin]->SetBinError(histogramCounterMass,Mass->GetBinError(bin));
240 MassPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterMass,cutValue.Data());
242 legMass->AddEntry(Mass,cutValue.Data(),"l");
244 canvasMass->Update();
245 // Raw_Yield = new TH1F("Raw_Yield","Raw_Yield",histogram->GetN)
249 TH1F* histogram = (TH1F*)f.Get(histoname.Data());
250 cout<<"histogram number of bins: "<<histogram->GetNbinsX()<<endl;
251 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
252 for(Int_t bin=1;bin<histogram->GetNbinsX();bin++){
253 // YieldPerBin[bin]= new TH1F(Form("yield bin %d",bin),Form("yield bin %d",bin),32,0,32);
254 MassPerBin[bin]->SetBinContent(histogramCounterMass,histogram->GetBinContent(bin));
255 MassPerBin[bin]->SetBinError(histogramCounterMass,histogram->GetBinError(bin));
256 MassPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterMass,cutValue.Data());
259 histogram->SetLineColor(colorCounterMass);
260 legMass->AddEntry(histogram,cutValue.Data(),"l");
262 histogram->DrawCopy("same");
263 canvasMass->Update();
265 histogramCounterMass+=2;
268 if(histoname.Contains("FWHM_Pi0")){
270 cout<<"Histogram contains FWHM: "<<histoname.Data()<<endl;
272 cout<<"Setting first histogram"<<endl;
273 FWHM = (TH1F*)f.Get(histoname.Data());
274 cout<<"Histoname: "<<histoname.Data()<<endl;
275 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
276 cout<<"Cut Value is: "<<cutValue.Data()<<endl;
277 for(Int_t bin=1;bin<Raw_Yield->GetNbinsX();bin++){
278 TString perBinHistoName = Form("FWHM %f <pt <%f",FWHM->GetBinLowEdge(bin),FWHM->GetBinLowEdge(bin)+FWHM->GetBinWidth(bin));
279 FWHMPerBin[bin]= new TH1F(perBinHistoName.Data(),perBinHistoName.Data(),32,0,32);
280 FWHMPerBin[bin]->SetBinContent(histogramCounterFWHM,FWHM->GetBinContent(bin));
281 FWHMPerBin[bin]->SetBinError(histogramCounterFWHM,FWHM->GetBinError(bin));
282 FWHMPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterFWHM,cutValue.Data());
284 legFWHM->AddEntry(FWHM,cutValue.Data(),"l");
286 canvasFWHM->Update();
287 // Raw_Yield = new TH1F("Raw_Yield","Raw_Yield",histogram->GetN)
291 TH1F* histogram = (TH1F*)f.Get(histoname.Data());
292 cout<<"histogram number of bins: "<<histogram->GetNbinsX()<<endl;
293 TString cutValue= histoname(histoname.Index("Pi0_")+4,histoname.Length());
294 for(Int_t bin=1;bin<histogram->GetNbinsX();bin++){
295 // YieldPerBin[bin]= new TH1F(Form("yield bin %d",bin),Form("yield bin %d",bin),32,0,32);
296 FWHMPerBin[bin]->SetBinContent(histogramCounterFWHM,histogram->GetBinContent(bin));
297 FWHMPerBin[bin]->SetBinError(histogramCounterFWHM,histogram->GetBinError(bin));
298 FWHMPerBin[bin]->GetXaxis()->SetBinLabel(histogramCounterFWHM,cutValue.Data());
301 histogram->SetLineColor(colorCounterFWHM);
302 legFWHM->AddEntry(histogram,cutValue.Data(),"l");
304 histogram->DrawCopy("same");
305 canvasFWHM->Update();
307 histogramCounterFWHM+=2;
310 }//end of for loop over histograms
314 TPostScript *ps_characteristics;
315 ps_characteristics = new TPostScript(Form("%sPi0Characteristics.ps",path),111);
316 ps_characteristics->NewPage();
319 canvasRawYield->Update();
320 canvasRawYield->Draw();
321 ps_characteristics->NewPage();
322 canvasSignificance->Update();
323 canvasSignificance->Draw();
324 ps_characteristics->NewPage();
325 canvasStoB->Update();
327 ps_characteristics->NewPage();
328 canvasMass->Update();
330 ps_characteristics->NewPage();
331 canvasFWHM->Update();
333 ps_characteristics->NewPage();
340 TCanvas *canvas1 = new TCanvas("Integrated1","",10,10,700,1000);
341 TPad *pad1 = new TPad("pad1","",0.,0.,1.,1.,0);
342 pad1->SetFillColor(0);
343 pad1->GetFrame()->SetFillColor(0);
344 pad1->SetBorderMode(0);
353 ps_characteristics->NewPage();
356 TCanvas *canvas2 = new TCanvas("Integrated2","",10,10,700,1000);
357 TPad *pad2 = new TPad("pad2","",0.,0.,1.,1.,0);
358 pad2->SetFillColor(0);
359 pad2->GetFrame()->SetFillColor(0);
360 pad2->SetBorderMode(0);
365 Significance->Draw();
370 ps_characteristics->NewPage();
372 TCanvas *canvas3 = new TCanvas("Integrated3","",10,10,700,1000);
373 TPad *pad3 = new TPad("pad3","",0.,0.,1.,1.,0);
374 pad3->SetFillColor(0);
375 pad3->GetFrame()->SetFillColor(0);
376 pad3->SetBorderMode(0);
386 ps_characteristics->NewPage();
388 for(Int_t bin=2;bin<Raw_Yield->GetNbinsX();bin++){
389 TString canvasname= Form("bin %d",bin);
390 TCanvas *binC = new TCanvas(canvasname.Data(),"",10,10,700,1000);
391 TString padname= Form("pad %d",bin);
392 // TPad *pad = new TPad(padname.Data(),"",0.05,0.05,0.95,0.95,0);
393 TPad *pad = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
394 pad->SetFillColor(0);
395 pad->GetFrame()->SetFillColor(0);
396 pad->SetBorderMode(0);
401 YieldPerBin[bin]->Draw();
404 StoBPerBin[bin]->Draw();
407 SignificancePerBin[bin]->Draw();
410 MassPerBin[bin]->Draw();
413 FWHMPerBin[bin]->Draw();
418 ps_characteristics->NewPage();
424 for(Int_t cuts=0;cuts<cutsAdded;cuts++){
425 cout<<"CUT: "<<cutSelectionArray[cuts].Data()<<endl;
426 // for(Int_t bin=2;bin<15;bin++){
427 TCanvas *canvasTest = new TCanvas("canvastest","",200,10,600,600);
428 TPad *pad = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
429 pad->SetFillColor(0);
430 pad->GetFrame()->SetFillColor(0);
431 pad->SetBorderMode(0);
434 for(Int_t bin=2;bin<18;bin++){
436 TString namet= Form("Mapping_Reco_InvMass_in_Pt_Bin%s%02d",cutSelectionArray[cuts].Data(),bin);
437 cout<<"Getting histogram: "<<namet.Data()<<endl;
438 TH1F * signalt = (TH1F*)f.Get(namet.Data());
439 signalt->Rebin(rebinValue);
440 TString titlet= Form("Inv_Mass_cut%s_pt[%f,%f]",cutSelectionArray[cuts].Data(),lowBinLimits[bin],highBinLimits[bin]);
441 signalt->SetTitle(titlet.Data());
443 signalt->SetAxisRange(0.,0.7);
447 TString nameb= Form("Mapping_Back_InvMass_in_Pt_Bin%s%02d",cutSelectionArray[cuts].Data(),bin);
448 cout<<"Getting histogram: "<<nameb.Data()<<endl;
449 TH1F * signalb = (TH1F*)f.Get(nameb.Data());
450 signalb->Rebin(rebinValue);
451 TString titleb= Form("Inv_Mass_cut%s_pt[%f,%f]",cutSelectionArray[cuts].Data(),lowBinLimits[bin],highBinLimits[bin]);
452 signalb->SetTitle(titleb.Data());
453 signalb->SetAxisRange(0.,0.7);
454 signalb->SetLineColor(4);
456 TLine *lowline= new TLine(BGFit_range[0],0,BGFit_range[0],signalt->GetMaximum());
457 lowline->SetLineColor(3);
458 lowline->Draw("same");
459 TLine *highline= new TLine(BGFit_range[1],0,BGFit_range[1],signalt->GetMaximum());
460 highline->SetLineColor(3);
461 highline->Draw("same");
463 TAxis *xaxis_reco = signalt->GetXaxis();
464 Int_t r_1 = xaxis_reco->FindBin(BGFit_range[0]);
465 Int_t r_2 = xaxis_reco->FindBin(BGFit_range[1]);
466 Double_t r = signalt->Integral(r_1,r_2); // Integral(75,125)
467 TAxis *xaxis_back = signalb->GetXaxis();
468 Int_t b_1 = xaxis_back->FindBin(BGFit_range[0]);
469 Int_t b_2 = xaxis_back->FindBin(BGFit_range[1]);
470 Double_t b = signalb->Integral(b_1,b_2);
472 if(b != 0) norm = r/b;
474 signalb->Scale(norm);
476 signalb->Draw("same");
477 canvasTest->Update();
479 // ps_characteristics->NewPage();
481 ps_characteristics->NewPage();
483 TCanvas *canvasTestDiff = new TCanvas("canvastestdiff","",200,10,600,600);
484 TPad *padD = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
485 canvasTestDiff->SetFillColor(0);
486 padD->SetFillColor(0);
487 padD->GetFrame()->SetFillColor(0);
488 padD->SetBorderMode(0);
491 for(Int_t bin=2;bin<18;bin++){
493 TString name= Form("Mapping_Signal_InvMass_in_Pt_Bin%s%02d",cutSelectionArray[cuts].Data(),bin);
494 cout<<"Getting histogram: "<<name.Data()<<endl;
495 TH1F * signal = (TH1F*)f.Get(name.Data());
496 signal->Rebin(rebinValue);
497 TString title= Form("Signal_Inv_Mass_cut%s_pt[%f,%f]",cutSelectionArray[cuts].Data(),lowBinLimits[bin],highBinLimits[bin]);
498 signal->SetTitle(title.Data());
499 signal->SetAxisRange(0.,0.7);
502 canvasTestDiff->Update();
504 // ps_characteristics->NewPage();
506 ps_characteristics->NewPage();
509 TCanvas *canvasTest = new TCanvas("canvastest","",200,10,600,600);
510 TPad *pad = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
511 pad->SetFillColor(0);
512 pad->GetFrame()->SetFillColor(0);
513 pad->SetBorderMode(0);
516 for(Int_t bin=0;bin<cutsAdded;bin++){
517 cout<<"CUT: "<<cutSelectionArray[bin].Data()<<endl;
519 // pad->cd(bin+1)->SetLogz(1);
520 TString namet= Form("ESD_Mother_InvMass_%s",cutSelectionArray[bin].Data());
521 cout<<"Getting histogram: "<<namet.Data()<<endl;
522 TH1F * massAll = (TH1F*)f.Get(namet.Data());
524 TString titlet= Form("CutId%s",cutSelectionArray[bin].Data());
525 massAll->SetTitle(titlet.Data());
528 TString nameb= Form("ESD_Background_InvMass_%s",cutSelectionArray[bin].Data());
529 TH1F * massAllBG = (TH1F*)f.Get(nameb.Data());
531 TLine *lowline= new TLine(BGFit_range[0],0,BGFit_range[0],signalt->GetMaximum());
532 lowline->SetLineColor(3);
533 lowline->Draw("same");
534 TLine *highline= new TLine(BGFit_range[1],0,BGFit_range[1],signalt->GetMaximum());
535 highline->SetLineColor(3);
536 highline->Draw("same");
540 TAxis *xaxis_reco = massAll->GetXaxis();
541 Int_t r_1 = xaxis_reco->FindBin(BGFit_range[0]);
542 Int_t r_2 = xaxis_reco->FindBin(BGFit_range[1]);
543 Double_t r = massAll->Integral(r_1,r_2); // Integral(75,125)
544 TAxis *xaxis_back = massAllBG->GetXaxis();
545 Int_t b_1 = xaxis_back->FindBin(BGFit_range[0]);
546 Int_t b_2 = xaxis_back->FindBin(BGFit_range[1]);
547 Double_t b = massAllBG->Integral(b_1,b_2);
549 if(b != 0) norm = r/b;
551 massAllBG->Scale(norm);
554 TString titleb= Form("CutId%s",cutSelectionArray[bin].Data());
555 massAllBG->SetTitle(titleb.Data());
556 massAllBG->SetLineColor(4);
557 massAllBG->Draw("same");
559 canvasTest->Update();
560 canvasTest->Print(Form("%smassAllAndBG%s.gif",path,cutSelectionArray[bin].Data()));
563 canvasTest->Update();
564 canvasTest->Print(Form("%smassAll%s.gif",path,cutSelectionArray[bin].Data()));
566 ps_characteristics->NewPage();
569 // for(Int_t bin=2;bin<15;bin++){
570 TCanvas *canvasTest = new TCanvas("canvastest","",200,10,600,600);
571 TPad *pad = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
572 pad->SetFillColor(0);
573 pad->GetFrame()->SetFillColor(0);
574 pad->SetBorderMode(0);
577 for(Int_t bin=0;bin<cutsAdded;bin++){
578 cout<<"CUT: "<<cutSelectionArray[bin].Data()<<endl;
580 pad->cd(bin+1)->SetLogx(1);
581 pad->cd(bin+1)->SetLogz(1);
582 TString namet= Form("ESD_ConvGamma_E_dEdxP_%s",cutSelectionArray[bin].Data());
583 cout<<"Getting histogram: "<<namet.Data()<<endl;
584 TH2F * dedxp = (TH2F*)f.Get(namet.Data());
586 TString titlet= Form("CutId%s",cutSelectionArray[bin].Data());
587 dedxp->SetTitle(titlet.Data());
590 canvasTest->Update();
591 canvasTest->Print(Form("%sdedxp%s.gif",path,cutSelectionArray[bin].Data()));
593 ps_characteristics->NewPage();
595 TCanvas *canvasTest = new TCanvas("canvastest","",200,10,600,600);
596 TPad *pad = new TPad(padname.Data(),"",0.,0.,1.,1.,0);
597 pad->SetFillColor(0);
598 pad->GetFrame()->SetFillColor(0);
599 pad->SetBorderMode(0);
602 for(Int_t bin=0;bin<cutsAdded;bin++){
603 cout<<"CUT: "<<cutSelectionArray[bin].Data()<<endl;
605 pad->cd(bin+1)->SetLogz(1);
606 TString namet= Form("ESD_ConvGamma_alfa_qt_%s",cutSelectionArray[bin].Data());
607 cout<<"Getting histogram: "<<namet.Data()<<endl;
608 TH1F * armen = (TH1F*)f.Get(namet.Data());
610 TString titlet= Form("CutId%s",cutSelectionArray[bin].Data());
611 armen->SetTitle(titlet.Data());
613 canvasTest->Update();
614 canvasTest->Print(Form("%sarmen%s.gif",path,cutSelectionArray[bin].Data()));
617 ps_characteristics->Close();