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