]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/ProduceFastQA.C
TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / ProduceFastQA.C
CommitLineData
e492d61d
FB
1/****************************************************************************************************************************
2 ****** provided by Gamma Conversion Group, PWG4, *****
3 ****** Kathrin Koch, kkoch@physi.uni-heidelberg.de *****
4 ****** Friederike Bock, friederike.bock@cern.ch *****
5 *****************************************************************************************************************************
6 *** This macro can be used to display the Photon Characteristics of the conversion method in ALICE, it can be operated *****
7 *** on the output of the GammaConversionTask. It can take 2 input files, the second one should be MC, if this is not *****
8 *** the case all histograms including MC need to be commented out otherwise the running will crash. *****
9 ****************************************************************************************************************************/
10
11#include <Riostream.h>
12#include <fstream>
13#include "TMath.h"
14#include <stdlib.h>
15#include <fstream>
16#include <math.h>
17#include <TROOT.h>
18#include <TApplication.h>
19#include <TPaveLabel.h>
20#include <TSystem.h>
21#include <TFrame.h>
22#include <TStyle.h>
23#include <TString.h>
24#include "TGaxis.h"
25#include "TFile.h"
26#include "TH1F.h"
27#include "TH1D.h"
28#include "TH2F.h"
29#include "TH3F.h"
30#include "TF1.h"
31#include "TVirtualFitter.h"
32#include "TObject.h"
33#include "TCanvas.h"
34#include "TMultiGraph.h"
35#include "TLegend.h"
36#include "TDatabasePDG.h"
37#include "TMinuit.h"
38#include "TLatex.h"
39#include "TASImage.h"
40#include "TPostScript.h"
41#include "TGraphErrors.h"
42#include "TArrow.h"
43#include "TMarker.h"
44#include "TGraphAsymmErrors.h"
45
46TString textGenerator;
47TString collisionSystem;
48TString textPeriod;
49TString textDate;
50
51void SetStyleTLatex( TLatex* text, Size_t textSize, Width_t lineWidth, Color_t textColor = 1, Bool_t kNDC = kTRUE){
52 if (kNDC) {text->SetNDC();}
53 text->SetTextColor(textColor);
54 text->SetTextSize(textSize);
55 text->SetLineWidth(lineWidth);
56}
57
58
59/* DrawAutoGammaHisto is function used for styling a histograma of the gamma conversion group with standart settings
60* histo1 - first histogram (Data)
61* Title - histogram title
62* XTitle - X-axis title
63* YTitle - Y-axis title
64* YRangeMax = kTRUE will scale by Maximum and Minimum Range in Y
65*YMaxFactor - will MaximumY by this factor if YRangeMay = kTRUE
66*YMinimum - this will be used if YRangeMax is set
67*YRange = kTRUE will Cut y-axis by YMin and YMax
68- will be set to kFAlSE if YRangeMax is set
69*YMin - minimum Y
70*YMax - maximum Y
71*XRange = kTRUE will Cut x-axis by XMin and XMax
72*XMin - minimum Y
73*XMax - maximum Y
74*/
75void DrawAutoGammaHisto( TH1* histo1,
76 TString Title, TString XTitle, TString YTitle,
77 Bool_t YRangeMax, Float_t YMaxFactor, Float_t YMinimum,
78 Bool_t YRange, Float_t YMin ,Float_t YMax,
79 Bool_t XRange, Float_t XMin, Float_t XMax) {
80 if (YRangeMax && !XRange){
81 YRange = kFALSE;
82 Double_t maxRangeR = histo1->GetMaximum();
83 Double_t minRangeR = histo1->GetMinimum();
84 if(YMinimum > minRangeR){minRangeR = YMinimum;}
85 histo1->GetYaxis()->SetRangeUser(minRangeR, maxRangeR*YMaxFactor);
86 }
87 if (YRangeMax && XRange){
88 YRange = kFALSE;
89 Double_t maxRangeR = histo1->GetMaximum();
90 Double_t minRangeR = histo1->GetMinimum();
91 if(YMinimum > minRangeR){minRangeR = YMinimum;}
92 histo1->GetYaxis()->SetRangeUser(minRangeR, maxRangeR*YMaxFactor);
93 histo1->GetXaxis()->SetRangeUser(XMin, XMax);
94 }
95 if (YRange && XRange){
96 histo1->GetYaxis()->SetRangeUser(YMin, YMax);
97 histo1->GetXaxis()->SetRangeUser(XMin, XMax);
98 }
99 if (!YRangeMax && !YRange && XRange){
100 histo1->GetXaxis()->SetRangeUser(XMin, XMax);
101 }
102
103 if (YRange && !XRange){
104 histo1->GetYaxis()->SetRangeUser(YMin, YMax);
105 }
106
107 histo1->SetTitle(Title.Data());
108
109 if(XTitle.CompareTo("") != 0){
110 histo1->SetXTitle(XTitle.Data());
111 }
112 if(YTitle.CompareTo("") != 0){
113 histo1->SetYTitle(YTitle.Data());
114 }
115 histo1->GetYaxis()->SetLabelSize(0.03);
116 histo1->GetYaxis()->SetTitleSize(0.035);
117 histo1->GetYaxis()->SetDecimals();
118 histo1->GetYaxis()->SetTitleOffset(1.8);
119 histo1->GetXaxis()->SetTitleSize(0.035);
120 histo1->GetXaxis()->SetLabelSize(0.03);
121 histo1->SetLineColor(kBlue+2);
122 histo1->SetMarkerColor(kBlue+2);
123 histo1->SetMarkerStyle(kFullCircle);
124 histo1->SetMarkerSize(1.5);
125 histo1->DrawCopy("e,p");
126}
127
128
129void DrawLabelsEvents(Float_t startX, Float_t startY, Float_t textHeight, Float_t decrease, TString collisionSystemDummy, TString textGeneratorDummy, TString textPeriodDummy){
130
131 Float_t aliceStartY = startY - textHeight * 1.15;
132 TLatex *pp7 = NULL;
133 if( collisionSystemDummy.CompareTo("PbPb @ #sqrt{s_{NN}} = 2.76 TeV") == 0){
134 pp7 = new TLatex((startX-2*decrease),(aliceStartY),collisionSystemDummy.Data()); // Bo: this was modified
135 } else {
136 pp7 = new TLatex((startX+2*decrease),(aliceStartY),collisionSystemDummy.Data()); // Bo: this was modified
137 }
138 pp7->SetNDC();
139 pp7->SetTextColor(1);
140 pp7->SetTextFont(62);
141 pp7->SetTextSize(textHeight);
142 pp7->SetLineWidth(2);
143 pp7->Draw("same");
144 if (textGeneratorDummy.CompareTo("")!=0 && textPeriodDummy.CompareTo("")!=0){
145 TLatex *generator = new TLatex((startX+decrease),(aliceStartY-1*textHeight*1.15),Form("%s %s",textGeneratorDummy.Data(),textPeriodDummy.Data())); // Bo: this was modified
146 generator->SetNDC();
147 generator->SetTextColor(1);
148 generator->SetTextFont(62);
149 generator->SetTextSize(textHeight);
150 generator->SetLineWidth(2);
151 generator->Draw("same");
152 } else if (textGeneratorDummy.CompareTo("")!=0) {
153 TLatex *generator = new TLatex((startX+decrease),(aliceStartY-1*textHeight*1.15),Form("%s",textGeneratorDummy.Data())); // Bo: this was modified
154 generator->SetNDC();
155 generator->SetTextColor(1);
156 generator->SetTextFont(62);
157 generator->SetTextSize(textHeight);
158 generator->SetLineWidth(2);
159 generator->Draw("same");
160 }
161}
162
163/*DrawAutoGammaHisto2D is a function for drawing a 2D-histogram of the gamma conversion group
164* histo - histogramm which need to be drawn
165* Title - histogram title
166* XTitle - X- axis-title
167* YTitle - Y-axis-title
168* Input - Legend
169* YRange - if kTRUE will scale by YMin and YMay
170* YMin - Y minimum
171* YMax - Y maximum
172* XRange - if kTRUE will scale by XMin and XMax
173* XMin - X minimum
174* XMax - X maximum
175*/
176void DrawAutoGammaHisto2D( TH2 *histo,
177 TString Title, TString XTitle, TString YTitle, TString Input,
178 Bool_t YRange, Float_t YMin ,Float_t YMax,
179 Bool_t XRange, Float_t XMin, Float_t XMax,Float_t titleOffsetX=1.4, Float_t titleOffsetY=1.2) {
180
181
182 if (YRange && XRange){
183 histo->GetYaxis()->SetRangeUser(YMin, YMax);
184 histo->GetXaxis()->SetRangeUser(XMin, XMax);
185 }
186 if ( !YRange && XRange){
187 histo->GetXaxis()->SetRangeUser(XMin, XMax);
188 }
189
190 if (YRange && !XRange){
191 histo->GetYaxis()->SetRangeUser(YMin, YMax);
192 }
193
194// if(Title.CompareTo("") != 0){
195 histo->SetTitle(Title.Data());
196// }
197 if(XTitle.CompareTo("") != 0){
198 histo->SetXTitle(XTitle.Data());
199 }
200 if(YTitle.CompareTo("") != 0){
201 histo->SetYTitle(YTitle.Data());
202 }
203 histo->GetYaxis()->SetTitleSize(0.043);
204 histo->GetYaxis()->SetLabelSize(0.035);
205 histo->GetXaxis()->SetLabelSize(0.035);
206 histo->GetYaxis()->SetDecimals();
207 histo->GetYaxis()->SetTitleOffset(titleOffsetY);
208 histo->GetXaxis()->SetTitleOffset(titleOffsetX);
209 histo->GetXaxis()->SetTitleSize(0.043);
210 histo->DrawCopy("colz");
211 if(Input.CompareTo("") != 0){
212 TLegend* leg2 = new TLegend(0.6,0.82,0.83,0.9);
213 leg2->SetTextSize(0.04);
214 leg2->SetFillColor(0);
215 leg2->AddEntry(histo,(Input.Data()));
216 leg2->Draw("same");
217 }
218}
219
220void PlotStandard2D( TH2* histo2D, TString nameOutput, TString title, TString xTitle, TString yTitle, Bool_t kRangeY, Double_t startY, Double_t endY, Bool_t kRangeX, Double_t startX, Double_t endX, Int_t logX, Int_t logY, Int_t logZ, Float_t* floatLogo, Int_t canvasSizeX = 500, Int_t canvasSizeY = 500, TString generator ="" , TString period =""){
221 TCanvas * canvasStandard = new TCanvas("canvasStandard","",10,10,canvasSizeX,canvasSizeY); // gives the page size
222 canvasStandard->SetLogx(logX);
223 canvasStandard->SetLogy(logY);
224 canvasStandard->SetLogz(logZ);
225 canvasStandard->SetRightMargin(0.12);
226 canvasStandard->SetLeftMargin(0.12);
227 canvasStandard->SetBottomMargin(0.1);
228 canvasStandard->SetTopMargin(0.04);
229 canvasStandard->cd();
230 histo2D->SetTitle("");
231 DrawAutoGammaHisto2D( histo2D,
232 title.Data(), xTitle.Data(), yTitle.Data(),"",kRangeY, startY, endY, kRangeX, startX, endX);
233 histo2D->GetXaxis()->SetTitleOffset(1.05);
234// cout << histo2D->GetYaxis()->GetTitleOffset() << endl;
235 histo2D->GetYaxis()->SetTitleOffset(1.35);
236 if (logX==1){
237// cout << histo2D->GetXaxis()->GetLabelOffset() << endl;
238 histo2D->GetXaxis()->SetLabelOffset(0.);
239 }
240
241 histo2D->Draw("colz");
242 DrawLabelsEvents(floatLogo[0],floatLogo[1],floatLogo[2], 0.00, collisionSystem, generator, period);
243
244 canvasStandard->Update();
245 canvasStandard->SaveAs(nameOutput.Data());
246 delete canvasStandard;
247}
248
249TString GetCentralityString(TString cutNumber){
250 TString centralityCutNumberStart = cutNumber(1,1);
251 TString centralityCutNumberEnd = cutNumber(2,1);
252 TString ppCutNumber = cutNumber(0,1);
253 if (ppCutNumber.CompareTo("0") ==0){
254 return "pp";
255 } else if ( ppCutNumber.CompareTo("1") ==0 || ppCutNumber.CompareTo("2") ==0 || ppCutNumber.CompareTo("5") ==0 || ppCutNumber.CompareTo("8") ==0 || ppCutNumber.CompareTo("9") ==0){
256 if (centralityCutNumberStart.CompareTo("0") == 0 && centralityCutNumberEnd.CompareTo("0") == 0 ){
257 return "0-100%";
258 } else {
259 return Form("%i-%i%s", centralityCutNumberStart.Atoi()*10,centralityCutNumberEnd.Atoi()*10,"%");
260 }
261 } else if (ppCutNumber.CompareTo("3") ==0 || ppCutNumber.CompareTo("6") ==0){
262 if (centralityCutNumberStart.CompareTo("0") == 0 && centralityCutNumberEnd.CompareTo("0") == 0 ){
263 return "0-45%";
264 } else {
265 return Form("%i-%i%s", centralityCutNumberStart.Atoi()*5,centralityCutNumberEnd.Atoi()*5,"%");
266 }
267 } else if (ppCutNumber.CompareTo("4") ==0 || ppCutNumber.CompareTo("7") ==0){
268 if (centralityCutNumberStart.CompareTo("0") == 0 && centralityCutNumberEnd.CompareTo("0") == 0 ){
269 return "45-95%";
270 } else {
271 return Form("%i-%i%s",45+centralityCutNumberStart.Atoi()*5,45+centralityCutNumberEnd.Atoi()*5,"%");
272 }
273 } else return "";
274}
275
276TString ReturnFullCollisionsSystem(TString fEnergyFlagOpt){
277 if(fEnergyFlagOpt.CompareTo("7TeV") == 0){
278 return "pp, #sqrt{s} = 7 TeV";
279 } else if( fEnergyFlagOpt.CompareTo("900GeV") == 0) {
280 return "pp, #sqrt{s} = 900 GeV";
281 } else if( fEnergyFlagOpt.CompareTo("2.76TeV") == 0) {
282 return "pp, #sqrt{s} = 2.76 TeV";
283 } else if( (fEnergyFlagOpt.CompareTo("PbPb_2.76TeV") == 0) || (fEnergyFlagOpt.CompareTo("HI") == 0) ) {
284 return "Pb-Pb, #sqrt{s_{NN}} = 2.76 TeV";
285 } else if( fEnergyFlagOpt.CompareTo("pPb_5.023TeV") == 0) {
286 return "p-Pb, #sqrt{s_{NN}} = 5.023 TeV";
287 } else {
288 cout << "No correct collision system specification, has been given" << endl;
289 return "";
290 }
291}
292
293/* StyleSettingsThesis will make some standard settings for gStyle
294*/
295void StyleSettingsThesis(){
296 gStyle->SetOptDate(0); //show day and time
297 gStyle->SetOptStat(0); //show statistic
298 gStyle->SetPalette(1,0);
299 gStyle->SetFrameBorderMode(0);
300 gStyle->SetFrameFillColor(0);
301 gStyle->SetTitleFillColor(0);
302 gStyle->SetTextSize(0.5);
303 gStyle->SetLabelSize(0.03,"xyz");
304 gStyle->SetLabelOffset(0.002,"xyz");
305 gStyle->SetTitleFontSize(0.04);
306 gStyle->SetTitleOffset(1,"y");
307 gStyle->SetTitleOffset(0.7,"x");
308 gStyle->SetCanvasColor(0);
309 gStyle->SetPadTickX(1);
310 gStyle->SetPadTickY(1);
311 gStyle->SetLineWidth(0.01);
312
313 gStyle->SetPadTopMargin(0.03);
314 gStyle->SetPadBottomMargin(0.09);
315 gStyle->SetPadRightMargin(0.03);
316 gStyle->SetPadLeftMargin(0.13);
317
318
319 TGaxis::SetMaxDigits(5);
320 gErrorIgnoreLevel=kError;
321}
322
323
324void SetPlotStyle() {
325 const Int_t nRGBs = 5;
326 const Int_t nCont = 255;
327
328 Double_t stops[nRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
329 Double_t red[nRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 };
330 Double_t green[nRGBs] = { 0.31, 0.81, 1.00, 0.20, 0.00 };
331 Double_t blue[nRGBs] = { 0.51, 1., 0.12, 0.00, 0.00};
332
333 TColor::CreateGradientColorTable(nRGBs, stops, red, green, blue, nCont);
334 gStyle->SetNumberContours(nCont);
335}
336
337
338void ProduceFastQA(TString fileNameInput = "myOutput", TString cutSelection = "5080001022092970023220000000", TString suffix = "eps", TString optEnergy="", TString optMCGenerator="", TString optPeriod=""){
339
340 gROOT->Reset();
341 gSystem->Load("libCore.so");
342 gSystem->Load("libTree.so");
343 gSystem->Load("libGeom.so");
344 gSystem->Load("libVMC.so");
345 gSystem->Load("libPhysics.so");
346 gSystem->Load("libSTEERBase");
347 gSystem->Load("libESD");
348 gSystem->Load("libAOD");
349 gSystem->Load("libANALYSIS");
350 gSystem->Load("libANALYSISalice");
351 gSystem->Load("libCORRFW.so");
352 gROOT->SetStyle("Plain");
353
354 StyleSettingsThesis();
355 SetPlotStyle();
356
357 collisionSystem = ReturnFullCollisionsSystem(optEnergy);
358 if (collisionSystem.CompareTo("") == 0){
359 cout << "No correct collision system specification, has been given" << endl;
360 return;
361 }
362 TString centralityCutNumber = cutSelection(0,3);
363 TString centralityString = GetCentralityString(centralityCutNumber);
364 cout<< centralityCutNumber.Data() << "\t" << centralityString.Data() << endl;
365 if (centralityString.CompareTo("pp") !=0){
366 collisionSystem = Form("%s %s", centralityString.Data(), collisionSystem.Data());
367 }
368
369 if(optMCGenerator.CompareTo("") ==0){
370 textGenerator = "";
371 } else {
372 textGenerator = optMCGenerator;
373 }
374
375 TFile* fileInput = new TFile(fileNameInput.Data());
376 TDirectory* directoryQA = (TDirectory*)fileInput->Get(Form("GammaConvV1_QA_%s",cutSelection.Data()));
377 TList* listQA = (TList*)directoryQA->Get(Form("GammaConv_V1QA_%s",cutSelection.Data()));
378 TList* listQAESD = (TList*)listQA->FindObject("ESD QA");
379 TH1F* histoVertexZ = (TH1F*)listQAESD->FindObject("Vertex_Z");
380 histoVertexZ->Sumw2();
381 Double_t nEvt = histoVertexZ->GetEntries();
382 histoVertexZ->Scale(1./nEvt);
383
384 TH1I* histoContrVertexZ = (TH1I*)listQAESD->FindObject("ContrVertex_Z");
385 TH1D* histoDContrVertexZ = new TH1D("ContrVertex_Z","ContrVertex_Z",3000,0,3000);
386 histoDContrVertexZ->Sumw2();
387 for (Int_t i = 1; i < histoContrVertexZ->GetNbinsX(); i++){
388 histoDContrVertexZ->SetBinContent(i, histoContrVertexZ->GetBinContent(i)/nEvt);
389 histoDContrVertexZ->SetBinError(i, histoContrVertexZ->GetBinError(i)/nEvt);
390 }
391 histoDContrVertexZ->Rebin(8);
392
393 TH1I* histoGoodESDTracks = (TH1I*)listQAESD->FindObject("GoodESDTracks");
394 TH1D* histoDGoodESDTracks = new TH1D("GoodESDTracks","GoodESDTracks",3000,0,3000);
395 histoDGoodESDTracks->Sumw2();
396 for (Int_t i = 1; i < histoGoodESDTracks->GetNbinsX(); i++){
397 histoDGoodESDTracks->SetBinContent(i, histoGoodESDTracks->GetBinContent(i)/nEvt);
398 histoDGoodESDTracks->SetBinError(i, histoGoodESDTracks->GetBinError(i)/nEvt);
399 }
400 histoDGoodESDTracks->Rebin(8);
401
402 TH1I* histoV0Mult = (TH1I*)listQAESD->FindObject("V0 Multiplicity");
403 TH1D* histoDV0Mult = new TH1D("V0 Multiplicity","V0 Multiplicity",30000,0,30000);
404 histoDV0Mult->Sumw2();
405 for (Int_t i = 1; i < histoV0Mult->GetNbinsX(); i++){
406 histoDV0Mult->SetBinContent(i, histoV0Mult->GetBinContent(i)/nEvt);
407 histoDV0Mult->SetBinError(i, histoV0Mult->GetBinError(i)/nEvt);
408 }
409 histoDV0Mult->Rebin(10);
410
411
412 TH2F* histoITSClusterPhi = (TH2F*)listQAESD->FindObject("ITSClusterPhi");
413 histoITSClusterPhi->Sumw2();
414 histoITSClusterPhi->Scale(1./nEvt);
415
416 TH1F* histoGammaPt = (TH1F*)listQAESD->FindObject("Gamma_Pt");
d8b864f8 417 Double_t nGamma = histoGammaPt->GetEntries();
e492d61d
FB
418 histoGammaPt->Sumw2();
419 histoGammaPt->Scale(1./nEvt);
420
421
422 TH1F* histoGammaPhi = (TH1F*)listQAESD->FindObject("Gamma_Phi");
423 histoGammaPhi->Sumw2();
424 histoGammaPhi->Scale(1./nEvt);
425 histoGammaPhi->Rebin(2);
426
427 TH1F* histoGammaEta = (TH1F*)listQAESD->FindObject("Gamma_Eta");
428 histoGammaEta->Sumw2();
429 histoGammaEta->Scale(1./nEvt);
430 histoGammaEta->Rebin(2);
431
432 TH1F* histoGammaChi2 = (TH1F*)listQAESD->FindObject("Gamma_Chi2perNDF");
433 histoGammaChi2->Sumw2();
434 histoGammaChi2->Scale(1./nEvt);
435
436 TH1F* histoGammaPsiPair = (TH1F*)listQAESD->FindObject("Gamma_PsiPair");
437 histoGammaPsiPair->Sumw2();
438 histoGammaPsiPair->Scale(1./nEvt);
439
440 TH1F* histoGammaCosPoint = (TH1F*)listQAESD->FindObject("Gamma_CosinePointingAngle");
441 histoGammaCosPoint->Sumw2();
442 histoGammaCosPoint->Scale(1./nEvt);
443
444 TH1F* histoGammaInvMass = (TH1F*)listQAESD->FindObject("Gamma_InvMass");
445 histoGammaInvMass->Sumw2();
446 histoGammaInvMass->Scale(1./nEvt);
447
448 TH2F* histoGammaArmenteros = (TH2F*)listQAESD->FindObject("Gamma_Armenteros");
449 histoGammaArmenteros->Sumw2();
450 histoGammaArmenteros->Scale(1./nEvt);
451
452 TH2F* histoEPPt = (TH2F*)listQAESD->FindObject("Electron_Positron_Pt");
453 histoEPPt->Sumw2();
454 histoEPPt->Scale(1./nEvt);
455
456 TH2F* histoEPEta = (TH2F*)listQAESD->FindObject("Electron_Positron_Eta");
457 histoEPEta->Sumw2();
458 histoEPEta->Scale(1./nEvt);
459
460 TH2F* histoEPPhi = (TH2F*)listQAESD->FindObject("Electron_Positron_Phi");
461 histoEPPhi->Sumw2();
462 histoEPPhi->Scale(1./nEvt);
463
464 TH1F* histoEFindableClusterTPC = (TH1F*)listQAESD->FindObject("Electron_findableClusterTPC");
465 histoEFindableClusterTPC->Sumw2();
466 histoEFindableClusterTPC->Scale(1./nEvt);
467
468 TH1F* histoPFindableClusterTPC = (TH1F*)listQAESD->FindObject("Positron_findableClusterTPC");
469 histoPFindableClusterTPC->Sumw2();
470 histoPFindableClusterTPC->Scale(1./nEvt);
471
472 TH2F* histoEdEdxPTPC = (TH2F*)listQAESD->FindObject("Electron_dEdx_P");
473 Double_t nElectronTPC = histoEdEdxPTPC->GetEntries();
474 histoEdEdxPTPC->Sumw2();
475 histoEdEdxPTPC->Scale(1./nEvt);
476 TH2F* histoPdEdxPTPC = (TH2F*)listQAESD->FindObject("Positron_dEdx_P");
477 Double_t nPositronTPC = histoPdEdxPTPC->GetEntries();
478 histoPdEdxPTPC->Sumw2();
479 histoPdEdxPTPC->Scale(1./nEvt);
480 TH2F* histoENSigmadEdxPTPC = (TH2F*)listQAESD->FindObject("Electron_NSigmadEdx_P");
481 histoENSigmadEdxPTPC->Sumw2();
482 histoENSigmadEdxPTPC->Scale(1./nEvt);
483 TH2F* histoPNSigmadEdxPTPC = (TH2F*)listQAESD->FindObject("Positron_NSigmadEdx_P");
484 histoPNSigmadEdxPTPC->Sumw2();
485 histoPNSigmadEdxPTPC->Scale(1./nEvt);
486 TH2F* histoENSigmaPiondEdxPTPC = (TH2F*)listQAESD->FindObject("Electron_NSigmaPiondEdx_P");
487 histoENSigmaPiondEdxPTPC->Sumw2();
488 histoENSigmaPiondEdxPTPC->Scale(1./nEvt);
489 TH2F* histoPNSigmaPiondEdxPTPC = (TH2F*)listQAESD->FindObject("Positron_NSigmaPiondEdx_P");
490 histoPNSigmaPiondEdxPTPC->Sumw2();
491 histoPNSigmaPiondEdxPTPC->Scale(1./nEvt);
492
493 TH2F* histoETOFP = (TH2F*)listQAESD->FindObject("Electron_TOF_P");
494 Double_t nElectronTOF = histoETOFP->GetEntries();
495 histoETOFP->Sumw2();
496 histoETOFP->Scale(1./nEvt);
497 TH2F* histoPTOFP = (TH2F*)listQAESD->FindObject("Positron_TOF_P");
498 Double_t nPositronTOF = histoPTOFP->GetEntries();
499 histoPTOFP->Sumw2();
500 histoPTOFP->Scale(1./nEvt);
501 TH2F* histoENSigmaTOFP = (TH2F*)listQAESD->FindObject("Electron_NSigmaTOF_P");
502 histoENSigmaTOFP->Sumw2();
503 histoENSigmaTOFP->Scale(1./nEvt);
504 TH2F* histoPNSigmaTOFP = (TH2F*)listQAESD->FindObject("Positron_NSigmaTOF_P");
505 histoPNSigmaTOFP->Sumw2();
506 histoPNSigmaTOFP->Scale(1./nEvt);
507
508 TH2F* histoEdEdxPITS = (TH2F*)listQAESD->FindObject("Electron_ITSdEdx_P");
509 Double_t nElectronITS = histoEdEdxPITS->GetEntries();
510 histoEdEdxPITS->Sumw2();
511 histoEdEdxPITS->Scale(1./nEvt);
512 TH2F* histoPdEdxPITS = (TH2F*)listQAESD->FindObject("Positron_ITSdEdx_P");
513 Double_t nPositronITS = histoPdEdxPITS->GetEntries();
514 histoPdEdxPITS->Sumw2();
515 histoPdEdxPITS->Scale(1./nEvt);
516 TH2F* histoENSigmadEdxPITS = (TH2F*)listQAESD->FindObject("Electron_NSigmaITS_P");
517 histoENSigmadEdxPITS->Sumw2();
518 histoENSigmadEdxPITS->Scale(1./nEvt);
519 TH2F* histoPNSigmadEdxPITS = (TH2F*)listQAESD->FindObject("Positron_NSigmaITS_P");
520 histoPNSigmadEdxPITS->Sumw2();
521 histoPNSigmadEdxPITS->Scale(1./nEvt);
522
523
524 TCanvas * canvasEventProp = new TCanvas("canvasEventProp","",0,0,1000,1000); // gives the page size
525 TPad* padEventProp = new TPad("padEventProp","",0.0,0.0,1,1,0); // gives the size of the histo areas
526 padEventProp->SetFillColor(0);
527 padEventProp->GetFrame()->SetFillColor(0);
528 padEventProp->SetBorderMode(0);
529
530 padEventProp->Divide(2,2);
531 padEventProp->Draw();
532 padEventProp->cd(1);
533
534 DrawAutoGammaHisto( histoVertexZ,
535 "", "Z_{vtx} (cm)","dZ/dN_{evt}",
536 kTRUE, 1.2, 0.,
537 kFALSE, -10,10,
538 kFALSE, -10,10);
539
540
541 TLatex *labelDataSet = NULL;
542 if (optPeriod.CompareTo("") ){
543 labelDataSet = new TLatex(0.18,0.9,Form("%s",optPeriod.Data()));
544 SetStyleTLatex( labelDataSet, 0.05,4);
545 labelDataSet->Draw();
546 }
547 padEventProp->cd(2);
548 padEventProp->cd(2)->SetLogy(1);
549
550 DrawAutoGammaHisto( histoDContrVertexZ,
551 "", "# Contr to prim Vtx","norm counts",
552 kTRUE, 2., 0.5/nEvt,
553 kFALSE, -10,10,
554 kFALSE, -10,10);
555
556 padEventProp->cd(3);
557 padEventProp->cd(3)->SetLogy(1);
558
559 DrawAutoGammaHisto( histoDGoodESDTracks,
560 "", "# Good ESD tracks","norm counts",
561 kTRUE, 2., 0.5/nEvt,
562 kFALSE, -10,10,
563 kFALSE, -10,10);
564
565 padEventProp->cd(4);
566 padEventProp->cd(4)->SetLogy(1);
567
568 DrawAutoGammaHisto( histoDV0Mult,
569 "", "V0 signal","norm counts",
570 kTRUE, 2., 0.5/nEvt,
571 kFALSE, -10,10,
572 kFALSE, -10,10);
573
574 canvasEventProp->Update();
575 canvasEventProp->SaveAs(Form("EventCharacteristics.%s",suffix.Data()));
576
577 TCanvas * canvasdEdxTPC = new TCanvas("canvasdEdxTPC","",0,0,1000,1500); // gives the page size
578 TPad* paddEdxTPC = new TPad("paddEdxTPC","",0.0,0.0,1,1,0); // gives the size of the histo areas
579 paddEdxTPC->SetFillColor(0);
580 paddEdxTPC->GetFrame()->SetFillColor(0);
581 paddEdxTPC->SetBorderMode(0);
582
583 paddEdxTPC->Divide(2,3);
584 paddEdxTPC->Draw();
585 paddEdxTPC->cd(1);
586 paddEdxTPC->cd(1)->SetLogx(1);
587 paddEdxTPC->cd(1)->SetLogz(1);
588 paddEdxTPC->cd(1)->SetTopMargin(0.01);
589 paddEdxTPC->cd(1)->SetRightMargin(0.12);
590 Double_t maximumEPTPC = 1.2*histoEdEdxPTPC->GetMaximum();
591 histoEdEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
592 histoEdEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
593 DrawAutoGammaHisto2D( histoEdEdxPTPC,
594 "", "#it{p}_{e^{-}} (GeV/c)", "dE_{e^{-}-cand} /dx", "",
595 kTRUE, 30., 180.,
596 kTRUE, 0.01, 20.,0.95);
597
598 TLatex *labelElectronTPC = new TLatex(0.5,0.9,"Electrons TPC");
599 SetStyleTLatex( labelElectronTPC, 0.05,4);
600 labelElectronTPC->Draw();
601
602 if (labelDataSet) labelDataSet->Draw();
603
604
605 paddEdxTPC->cd(2);
606 paddEdxTPC->cd(2)->SetLogx(1);
607 paddEdxTPC->cd(2)->SetLogz(1);
608 paddEdxTPC->cd(2)->SetTopMargin(0.01);
609 paddEdxTPC->cd(2)->SetRightMargin(0.12);
610 histoPdEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
611 histoPdEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
612 DrawAutoGammaHisto2D( histoPdEdxPTPC,
613 "", "#it{p}_{e^{+}} (GeV/c)", "dE_{e^{+}-cand} /dx", "",
614 kTRUE, 30., 180.,
615 kTRUE, 0.01, 20.,0.95);
616
617 TLatex *labelPositronTPC = new TLatex(0.5,0.9,"Positrons TPC");
618 SetStyleTLatex( labelPositronTPC, 0.05,4);
619 labelPositronTPC->Draw();
620
621 paddEdxTPC->cd(3);
622 paddEdxTPC->cd(3)->SetLogx(1);
623 paddEdxTPC->cd(3)->SetLogz(1);
624 paddEdxTPC->cd(3)->SetTopMargin(0.01);
625 paddEdxTPC->cd(3)->SetRightMargin(0.12);
626 histoENSigmadEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
627 histoENSigmadEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
628 DrawAutoGammaHisto2D( histoENSigmadEdxPTPC,
629 "", "#it{p}_{e^{-}} (GeV/c)", "n #sigma_{e^{-}} dE/dx", "",
630 kTRUE, -10., 10.,
631 kTRUE, 0.01, 20.,0.95);
632
633 paddEdxTPC->cd(4);
634 paddEdxTPC->cd(4)->SetLogx(1);
635 paddEdxTPC->cd(4)->SetLogz(1);
636 paddEdxTPC->cd(4)->SetTopMargin(0.01);
637 paddEdxTPC->cd(4)->SetRightMargin(0.12);
638 histoPNSigmadEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
639 histoPNSigmadEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
640 DrawAutoGammaHisto2D( histoPNSigmadEdxPTPC,
641 "", "#it{p}_{e^{+}} (GeV/c)", "n #sigma_{e^{+}} dE/dx", "",
642 kTRUE, -10., 10.,
643 kTRUE, 0.01, 20.,0.95);
644
645 paddEdxTPC->cd(5);
646 paddEdxTPC->cd(5)->SetLogx(1);
647 paddEdxTPC->cd(5)->SetLogz(1);
648 paddEdxTPC->cd(5)->SetTopMargin(0.01);
649 paddEdxTPC->cd(5)->SetRightMargin(0.12);
650 histoENSigmaPiondEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
651 histoENSigmaPiondEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
652 DrawAutoGammaHisto2D( histoENSigmaPiondEdxPTPC,
653 "", "#it{p}_{e^{-}} (GeV/c)", "n #sigma_{#pi^{-}} dE/dx", "",
654 kTRUE, -10., 10.,
655 kTRUE, 0.01, 20.,0.95);
656
657 paddEdxTPC->cd(6);
658 paddEdxTPC->cd(6)->SetLogx(1);
659 paddEdxTPC->cd(6)->SetLogz(1);
660 paddEdxTPC->cd(6)->SetTopMargin(0.01);
661 paddEdxTPC->cd(6)->SetRightMargin(0.12);
662 histoPNSigmaPiondEdxPTPC->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTPC);
663 histoPNSigmaPiondEdxPTPC->GetXaxis()->SetLabelOffset(-0.009);
664 DrawAutoGammaHisto2D( histoPNSigmaPiondEdxPTPC,
665 "", "#it{p}_{e^{+}} (GeV/c)", "n #sigma_{#pi^{+}} dE/dx", "",
666 kTRUE, -10., 10.,
667 kTRUE, 0.01, 20.,0.95);
668
669 canvasdEdxTPC->Update();
670 canvasdEdxTPC->SaveAs(Form("Electrons_dEdx_TPC.%s",suffix.Data()));
671
672 TCanvas * canvasTOF = new TCanvas("canvasTOF","",0,0,1000,1000); // gives the page size
673 TPad* padTOF = new TPad("padTOF","",0.0,0.0,1,1,0); // gives the size of the histo areas
674 padTOF->SetFillColor(0);
675 padTOF->GetFrame()->SetFillColor(0);
676 padTOF->SetBorderMode(0);
677
678 padTOF->Divide(2,2);
679 padTOF->Draw();
680 padTOF->cd(1);
681 padTOF->cd(1)->SetLogx(1);
682 padTOF->cd(1)->SetLogz(1);
683 padTOF->cd(1)->SetTopMargin(0.01);
684 padTOF->cd(1)->SetRightMargin(0.12);
685 Double_t maximumEPTOF = 1.2*histoETOFP->GetMaximum();
686 histoETOFP->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTOF);
687 histoETOFP->GetXaxis()->SetLabelOffset(-0.009);
688 DrawAutoGammaHisto2D( histoETOFP,
689 "", "#it{p}_{e^{-}} (GeV/c)", "t_{measured}-t_{expected} e^{-}", "",
690 kTRUE, -1000, 2000.,
691 kTRUE, 0.01, 20.,0.95);
692
693 TLatex *labelElectronTOF = new TLatex(0.5,0.9,"Electrons TOF");
694 SetStyleTLatex( labelElectronTOF, 0.05,4);
695 labelElectronTOF->Draw();
696 Double_t fracElecTOF = nElectronTOF/nElectronTPC*100;
697 TLatex *labelFracElectronTOF = new TLatex(0.5,0.845,Form("%4.2f %",fracElecTOF ));
698 SetStyleTLatex( labelFracElectronTOF, 0.05,4);
699 labelFracElectronTOF->Draw();
700
701
702 if (labelDataSet) labelDataSet->Draw();
703
704
705 padTOF->cd(2);
706 padTOF->cd(2)->SetLogx(1);
707 padTOF->cd(2)->SetLogz(1);
708 padTOF->cd(2)->SetTopMargin(0.01);
709 padTOF->cd(2)->SetRightMargin(0.12);
710 histoPTOFP->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTOF);
711 histoPTOFP->GetXaxis()->SetLabelOffset(-0.009);
712 DrawAutoGammaHisto2D( histoPTOFP,
713 "", "#it{p}_{e^{+}} (GeV/c)", "t_{measured}-t_{expected} e^{+}", "",
714 kTRUE, -1000, 2000.,
715 kTRUE, 0.01, 20.,0.95);
716
717 TLatex *labelPositronTOF = new TLatex(0.5,0.9,"Positrons TOF");
718 SetStyleTLatex( labelPositronTOF, 0.05,4);
719 labelPositronTOF->Draw();
720 Double_t fracPosiTOF = nPositronTOF/nPositronTPC*100;
721 TLatex *labelFracPositronTOF = new TLatex(0.5,0.845,Form("%4.2f %",fracPosiTOF ));
722 SetStyleTLatex( labelFracPositronTOF, 0.05,4);
723 labelFracPositronTOF->Draw();
724
725 padTOF->cd(3);
726 padTOF->cd(3)->SetLogx(1);
727 padTOF->cd(3)->SetLogz(1);
728 padTOF->cd(3)->SetTopMargin(0.01);
729 padTOF->cd(3)->SetRightMargin(0.12);
730 histoENSigmaTOFP->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTOF);
731 histoENSigmaTOFP->GetXaxis()->SetLabelOffset(-0.009);
732 DrawAutoGammaHisto2D( histoENSigmaTOFP,
733 "", "#it{p}_{e^{-}} (GeV/c)", "n #sigma_{e^{-}} TOF", "",
734 kTRUE, -10., 10.,
735 kTRUE, 0.01, 20.,0.95);
736
737 padTOF->cd(4);
738 padTOF->cd(4)->SetLogx(1);
739 padTOF->cd(4)->SetLogz(1);
740 padTOF->cd(4)->SetTopMargin(0.01);
741 padTOF->cd(4)->SetRightMargin(0.12);
742 histoPNSigmaTOFP->GetZaxis()->SetRangeUser(1/nEvt,maximumEPTOF);
743 histoPNSigmaTOFP->GetXaxis()->SetLabelOffset(-0.009);
744 DrawAutoGammaHisto2D( histoPNSigmaTOFP,
745 "", "#it{p}_{e^{+}} (GeV/c)", "n #sigma_{e^{+}} TOF", "",
746 kTRUE, -10., 10.,
747 kTRUE, 0.01, 20.,0.95);
748
749 canvasTOF->Update();
750 canvasTOF->SaveAs(Form("Electrons_TOF.%s",suffix.Data()));
751
752
753 TCanvas * canvasITS = new TCanvas("canvasITS","",0,0,1000,1000); // gives the page size
754 TPad* padITS = new TPad("padITS","",0.0,0.0,1,1,0); // gives the size of the histo areas
755 padITS->SetFillColor(0);
756 padITS->GetFrame()->SetFillColor(0);
757 padITS->SetBorderMode(0);
758
759 padITS->Divide(2,2);
760 padITS->Draw();
761 padITS->cd(1);
762 padITS->cd(1)->SetLogx(1);
763 padITS->cd(1)->SetLogz(1);
764 padITS->cd(1)->SetTopMargin(0.01);
765 padITS->cd(1)->SetRightMargin(0.12);
766 Double_t maximumEPITS = 1.2*histoEdEdxPITS->GetMaximum();
767 histoEdEdxPITS->GetZaxis()->SetRangeUser(1/nEvt,maximumEPITS);
768 histoEdEdxPITS->GetXaxis()->SetLabelOffset(-0.009);
769 DrawAutoGammaHisto2D( histoEdEdxPITS,
770 "", "#it{p}_{e^{-}} (GeV/c)", "dE_{e^{-}-cand} /dx ITS", "",
771 kTRUE, 0, 180.,
772 kTRUE, 0.01, 20.,0.95);
773
774 TLatex *labelElectronITS = new TLatex(0.5,0.9,"Electrons ITS");
775 SetStyleTLatex( labelElectronITS, 0.05,4);
776 labelElectronITS->Draw();
777 Double_t fracElecITS = nElectronITS/nElectronTPC*100;
778 TLatex *labelFracElectronITS = new TLatex(0.5,0.845,Form("%4.2f %",fracElecITS ));
779 SetStyleTLatex( labelFracElectronITS, 0.05,4);
780 labelFracElectronITS->Draw();
781
782
783 if (labelDataSet) labelDataSet->Draw();
784
785
786 padITS->cd(2);
787 padITS->cd(2)->SetLogx(1);
788 padITS->cd(2)->SetLogz(1);
789 padITS->cd(2)->SetTopMargin(0.01);
790 padITS->cd(2)->SetRightMargin(0.12);
791
792 histoPdEdxPITS->GetZaxis()->SetRangeUser(1/nEvt,maximumEPITS);
793 histoPdEdxPITS->GetXaxis()->SetLabelOffset(-0.009);
794 DrawAutoGammaHisto2D( histoPdEdxPITS,
795 "", "#it{p}_{e^{+}} (GeV/c)","dE_{e^{+}-cand} /dx ITS", "",
796 kTRUE, 0, 180.,
797 kTRUE, 0.01, 20.,0.95);
798
799 TLatex *labelPositronITS = new TLatex(0.5,0.9,"Positrons ITS");
800 SetStyleTLatex( labelPositronITS, 0.05,4);
801 labelPositronITS->Draw();
802 Double_t fracPosiITS = nPositronITS/nPositronTPC*100;
803 TLatex *labelFracPositronITS = new TLatex(0.5,0.845,Form("%4.2f %",fracPosiITS ));
804 SetStyleTLatex( labelFracPositronITS, 0.05,4);
805 labelFracPositronITS->Draw();
806
807 padITS->cd(3);
808 padITS->cd(3)->SetLogx(1);
809 padITS->cd(3)->SetLogz(1);
810 padITS->cd(3)->SetTopMargin(0.01);
811 padITS->cd(3)->SetRightMargin(0.12);
812 histoENSigmadEdxPITS->GetZaxis()->SetRangeUser(1/nEvt,maximumEPITS);
813 histoENSigmadEdxPITS->GetXaxis()->SetLabelOffset(-0.009);
814 DrawAutoGammaHisto2D( histoENSigmadEdxPITS,
815 "", "#it{p}_{e^{-}} (GeV/c)", "n #sigma_{e^{-}} ITS", "",
816 kTRUE, -10., 10.,
817 kTRUE, 0.01, 20.,0.95);
818
819 padITS->cd(4);
820 padITS->cd(4)->SetLogx(1);
821 padITS->cd(4)->SetLogz(1);
822 padITS->cd(4)->SetTopMargin(0.01);
823 padITS->cd(4)->SetRightMargin(0.12);
824 histoPNSigmadEdxPITS->GetZaxis()->SetRangeUser(1/nEvt,maximumEPITS);
825 histoPNSigmadEdxPITS->GetXaxis()->SetLabelOffset(-0.009);
826 DrawAutoGammaHisto2D( histoPNSigmadEdxPITS,
827 "", "#it{p}_{e^{+}} (GeV/c)", "n #sigma_{e^{+}} ITS", "",
828 kTRUE, -10., 10.,
829 kTRUE, 0.01, 20.,0.95);
830
831 canvasITS->Update();
832 canvasITS->SaveAs(Form("Electrons_ITS.%s",suffix.Data()));
833
834
835
836 TCanvas * canvasPhoton = new TCanvas("canvasPhoton","",0,0,1000,1000); // gives the page size
837 TPad* padPhoton = new TPad("padPhoton","",0.0,0.0,1,1,0); // gives the size of the histo areas
838 padPhoton->SetFillColor(0);
839 padPhoton->GetFrame()->SetFillColor(0);
840 padPhoton->SetBorderMode(0);
841
842 padPhoton->Divide(3,3);
843 padPhoton->Draw();
844 padPhoton->cd(1);
845 padPhoton->cd(1)->SetLogy(1);
846 padPhoton->cd(1)->SetLogx(1);
847 padPhoton->cd(1)->SetTopMargin(0.01);
848 DrawAutoGammaHisto( histoGammaPt,
849 "", "#it{p}_{#gamma,T} (GeV/c)","d#it{N}_{#gamma}/d#it{N}_{evt}",
850 kTRUE, 4., 0.5/nEvt,
851 kFALSE, -10,10,
852 kTRUE, 0.1,30);
853 histoGammaPt->SetMarkerSize(0.5);
854 histoGammaPt->Draw("ep1");
855
856 TLatex *labelPhotons = new TLatex(0.75,0.9,"Photon");
857 SetStyleTLatex( labelPhotons, 0.05,4);
858 labelPhotons->Draw();
d8b864f8
FB
859 Double_t nGammaPerEvt = nGamma/nEvt;
860 TLatex *labelPhotonsPerEvent = new TLatex(0.18,0.18,Form("N_{#gamma}/N_{Evt} = %4.4f",nGammaPerEvt));
861 SetStyleTLatex( labelPhotonsPerEvent, 0.05,4);
862 labelPhotonsPerEvent->Draw();
863
e492d61d
FB
864
865 if (labelDataSet) labelDataSet->Draw();
866
867 padPhoton->cd(2);
868 padPhoton->cd(2)->SetLogy(1);
869 padPhoton->cd(2)->SetTopMargin(0.01);
870
871 DrawAutoGammaHisto( histoGammaEta,
872 "", "#eta_{#gamma}","d#it{N}_{#gamma}/d#it{N}_{evt}",
873 kTRUE, 2., 0.5/nEvt,
874 kFALSE, -10,10,
875 kFALSE, 0.1,30);
876 histoGammaEta->SetMarkerSize(0.5);
877 histoGammaEta->Draw("ep1");
878
879 padPhoton->cd(3);
880 padPhoton->cd(3)->SetLogy(1);
881 padPhoton->cd(3)->SetTopMargin(0.01);
882
883 DrawAutoGammaHisto( histoGammaPhi,
884 "", "#phi_{#gamma}","d#it{N}_{#gamma}/d#it{N}_{evt}",
885 kTRUE, 2., 0.5/nEvt,
886 kFALSE, -10,10,
887 kFALSE, 0.1,30);
888 histoGammaPhi->SetMarkerSize(0.5);
889 histoGammaPhi->Draw("ep1");
890
891 padPhoton->cd(4);
892 padPhoton->cd(4)->SetLogy(1);
893 padPhoton->cd(4)->SetTopMargin(0.01);
894
895 DrawAutoGammaHisto( histoGammaInvMass,
896 "", "M_{#gamma#gamma} (GeV/c^{2})","d#it{N}_{#gamma}/d#it{N}_{evt}",
897 kTRUE, 2., 0.5/nEvt,
898 kFALSE, -10,10,
899 kTRUE, 0.,0.1);
900 histoGammaInvMass->SetMarkerSize(0.5);
901 histoGammaInvMass->Draw("ep1");
902
903 padPhoton->cd(5);
904 padPhoton->cd(5)->SetLogy(1);
905 padPhoton->cd(5)->SetTopMargin(0.01);
906
907 DrawAutoGammaHisto( histoGammaChi2,
908 "", "#chi^{2}/NDF","d#it{N}_{#gamma}/d#it{N}_{evt}",
909 kTRUE, 2., 0.5/nEvt*1e1,
910 kFALSE, -10,10,
911 kFALSE, 0.,0.1);
912 histoGammaChi2->SetMarkerSize(0.5);
913 histoGammaChi2->Draw("ep1");
914
915 padPhoton->cd(6);
916 padPhoton->cd(6)->SetLogy(1);
917 padPhoton->cd(6)->SetTopMargin(0.01);
918
919 DrawAutoGammaHisto( histoGammaPsiPair,
920 "", "#psi_{Pair}","d#it{N}_{#gamma}/d#it{N}_{evt}",
921 kTRUE, 2., 0.5/nEvt*1e2,
922 kFALSE, -10,10,
923 kTRUE, 0.,0.5);
924 histoGammaPsiPair->SetMarkerSize(0.5);
925 histoGammaPsiPair->Draw("ep1");
926
927 padPhoton->cd(7);
928 padPhoton->cd(7)->SetLogy(1);
929 padPhoton->cd(7)->SetTopMargin(0.01);
930
931 DrawAutoGammaHisto( histoGammaCosPoint,
932 "", "cos(#theta_{Point})","d#it{N}_{#gamma}/d#it{N}_{evt}",
933 kTRUE, 2., 0.5/nEvt,
934 kFALSE, -10,10,
935 kFALSE, 0.,0.5);
936 histoGammaCosPoint->SetMarkerSize(0.5);
937 histoGammaCosPoint->Draw("ep1");
938
939 padPhoton->cd(8);
940 padPhoton->cd(8)->SetLogz(1);
941 padPhoton->cd(8)->SetTopMargin(0.01);
942 padPhoton->cd(8)->SetRightMargin(0.12);
943 Double_t maximumPhotons = 1.2*histoGammaArmenteros->GetMaximum();
944 histoGammaArmenteros->GetZaxis()->SetRangeUser(1/nEvt,maximumPhotons);
945 DrawAutoGammaHisto2D( histoGammaArmenteros,
946 "", "#alpha = (p^{+}_{L}-p^{-}_{L})/(p^{+}_{L}+p^{-}_{L})", "q_{T} (GeV/c)", "",
947 kFALSE, -10., 10.,
948 kTRUE, -1., 1.,0.95);
949
950 canvasPhoton->Update();
951 canvasPhoton->SaveAs(Form("Photons.%s",suffix.Data()));
952
953}
954