1afae8ff |
1 | /* $Id$ */ |
2 | |
25db2d85 |
3 | Int_t gMax = 5; |
4 | |
1afae8ff |
5 | void drawPlots() |
92d2d8ad |
6 | { |
25db2d85 |
7 | drawPlots(5); |
8 | drawPlots(2); |
9 | } |
10 | |
11 | void drawPlots(Int_t max) |
12 | { |
13 | gMax = max; |
14 | |
d09fb536 |
15 | ptCutoff(); |
16 | TriggerBias(); |
17 | VtxRecon(); |
18 | Track2Particle2D(); |
19 | Track2Particle3D(); |
20 | ptSpectrum(); |
21 | dNdEta(); |
22 | } |
23 | |
24 | void dNdEta() |
25 | { |
26 | TFile* file = TFile::Open("analysis_esd.root"); |
27 | TH1* histESD = file->Get("dndeta/dndeta_dNdEta_corrected_2"); |
28 | TH1* histESDNoPt = file->Get("dndeta/dndeta_dNdEta_2"); |
29 | TH1* histESDMB = file->Get("dndeta_mb/dndeta_mb_dNdEta_corrected_2"); |
30 | TH1* histESDMBVtx = file->Get("dndeta_mbvtx/dndeta_mbvtx_dNdEta_corrected_2"); |
31 | |
32 | TCanvas* canvas = new TCanvas("dNdEta1", "dNdEta1", 500, 500); |
33 | |
34 | Prepare1DPlot(histESD); |
35 | Prepare1DPlot(histESDNoPt); |
36 | Prepare1DPlot(histESDMB); |
37 | Prepare1DPlot(histESDMBVtx); |
38 | |
39 | histESD->SetLineColor(kRed); |
40 | histESDMB->SetLineColor(kBlue); |
41 | histESDMBVtx->SetLineColor(103); |
42 | |
43 | TH2F* dummy = new TH2F("dummy", "", 100, -1.5, 1.5, 100, 0, histESDMBVtx->GetMaximum() * 1.1); |
44 | dummy->SetStats(kFALSE); |
45 | dummy->SetXTitle("#eta"); |
46 | dummy->SetYTitle("dN/d#eta"); |
47 | |
48 | histESDMBVtx->GetXaxis()->SetRangeUser(-0.7999, 0.7999); |
49 | histESDMB->GetXaxis()->SetRangeUser(-0.7999, 0.7999); |
50 | histESD->GetXaxis()->SetRangeUser(-0.7999, 0.7999); |
51 | histESDNoPt->GetXaxis()->SetRangeUser(-0.7999, 0.7999); |
52 | |
53 | dummy->Draw(); |
54 | histESDMBVtx->Draw("SAME"); |
55 | histESDMB->Draw("SAME"); |
56 | histESD->Draw("SAME"); |
57 | |
58 | canvas->SaveAs("dNdEta1.gif"); |
59 | |
60 | TFile* file2 = TFile::Open("analysis_mc.root"); |
61 | TH1* histMC = file2->Get("dndeta/dndeta_dNdEta_corrected_2")->Clone("cloned"); |
62 | |
63 | gSystem->Load("libPWG0base"); |
64 | fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta"); |
65 | fdNdEtaAnalysis->LoadHistograms(); |
66 | fdNdEtaAnalysis->Finish(0, 0.3); |
67 | TH1* histMCPtCut = fdNdEtaAnalysis->GetdNdEtaHistogram(2); |
68 | |
69 | TCanvas* canvas2 = new TCanvas("dNdEta2", "dNdEta2", 500, 500); |
70 | |
71 | Prepare1DPlot(histMC); |
72 | Prepare1DPlot(histMCPtCut); |
73 | |
74 | histMC->SetLineColor(kBlue); |
75 | histMCPtCut->SetLineColor(104); |
76 | histESDNoPt->SetLineColor(102); |
77 | |
78 | TH2* dummy2 = dummy->Clone("dummy2"); |
79 | dummy2->GetYaxis()->SetRangeUser(0, histESD->GetMaximum() * 1.1); |
80 | |
81 | dummy2->Draw(); |
82 | histMC->Draw("SAME"); |
83 | // histMC->Draw(); |
84 | histESD->Draw("SAME"); |
85 | histESDNoPt->Draw("SAME"); |
86 | histMCPtCut->Draw("SAME"); |
87 | |
88 | canvas2->SaveAs("dNdEta2.gif"); |
89 | } |
90 | |
91 | void ptSpectrum() |
92 | { |
93 | TFile* file = TFile::Open("analysis_esd.root"); |
94 | TH1* histESD = file->Get("dndeta/dndeta_pt"); |
95 | |
96 | TFile* file2 = TFile::Open("analysis_mc.root"); |
97 | TH1* histMC = file2->Get("dndeta/dndeta_pt"); |
98 | |
99 | TCanvas* canvas = new TCanvas("ptSpectrum", "ptSpectrum", 500, 500); |
100 | InitPad(); |
101 | gPad->SetLogy(); |
102 | |
103 | Prepare1DPlot(histMC); |
104 | Prepare1DPlot(histESD); |
105 | |
106 | histESD->SetTitle(""); |
25db2d85 |
107 | histESD->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
108 | histESD->GetYaxis()->SetTitle("#frac{dN}{d#eta dp_{T}} [c/GeV]"); |
d09fb536 |
109 | |
110 | histMC->SetLineColor(kBlue); |
111 | histESD->SetLineColor(kRed); |
112 | |
113 | histESD->GetYaxis()->SetTitleOffset(1.5); |
114 | histESD->GetXaxis()->SetRangeUser(0, 4.9999); |
115 | |
116 | histESD->SetMaximum(TMath::Max(histESD->GetMaximum(), histMC->GetMaximum()) * 2); |
117 | |
118 | histESD->Draw(); |
119 | histMC->Draw("SAME"); |
120 | |
121 | canvas->SaveAs("ptSpectrum.gif"); |
92d2d8ad |
122 | } |
123 | |
124 | void ptCutoff() |
125 | { |
126 | gSystem->Load("libPWG0base"); |
127 | |
8b3563f4 |
128 | AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection("dndeta_correction", "dndeta_correction"); |
92d2d8ad |
129 | dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction"); |
130 | |
131 | dNdEtaCorrection->GetMeasuredFraction(0.3, -1, kTRUE); |
132 | |
133 | TH1* hist = dynamic_cast<TH1*> (gROOT->FindObject("gene_nTrackToNPart_pt")); |
134 | |
135 | hist->GetXaxis()->SetRangeUser(0, 0.9999); |
136 | hist->SetMinimum(0); |
92d2d8ad |
137 | |
138 | hist->SetTitle("Generated Particles"); |
d09fb536 |
139 | Prepare1DPlot(hist); |
92d2d8ad |
140 | |
141 | TCanvas* canvas = new TCanvas("ptCutoff", "ptCutoff", 500, 500); |
142 | hist->Draw(); |
143 | |
d09fb536 |
144 | TLine* line = new TLine(0.3, 0 - hist->GetMaximum() * 0, 0.3, hist->GetMaximum() * 1.1); |
92d2d8ad |
145 | line->SetLineWidth(3); |
d09fb536 |
146 | line->SetLineColor(kRed); |
92d2d8ad |
147 | line->Draw(); |
148 | |
149 | canvas->SaveAs("ptCutoff.gif"); |
150 | } |
151 | |
152 | void TriggerBias() |
153 | { |
154 | TFile* file = TFile::Open("correction_map.root"); |
155 | |
156 | TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_trigger")); |
157 | |
158 | Prepare2DPlot(corr); |
159 | corr->SetTitle("Trigger bias correction"); |
160 | |
161 | TCanvas* canvas = new TCanvas("TriggerBias", "TriggerBias", 500, 500); |
162 | InitPadCOLZ(); |
163 | corr->DrawCopy("COLZ"); |
164 | |
25db2d85 |
165 | canvas->SaveAs(Form("TriggerBias_%d.gif", gMax)); |
92d2d8ad |
166 | |
167 | corr->GetYaxis()->SetRangeUser(0, 5); |
168 | |
169 | canvas = new TCanvas("TriggerBiasZoom", "TriggerBiasZoom", 500, 500); |
170 | InitPadCOLZ(); |
171 | corr->DrawCopy("COLZ"); |
172 | |
25db2d85 |
173 | canvas->SaveAs(Form("TriggerBiasZoom_%d.gif", gMax)); |
92d2d8ad |
174 | } |
175 | |
176 | void VtxRecon() |
177 | { |
178 | TFile* file = TFile::Open("correction_map.root"); |
179 | |
180 | TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_vtxReco")); |
181 | |
182 | Prepare2DPlot(corr); |
183 | corr->SetTitle("Vertex reconstruction correction"); |
184 | |
185 | TCanvas* canvas = new TCanvas("VtxRecon", "VtxRecon", 500, 500); |
186 | InitPadCOLZ(); |
25db2d85 |
187 | corr->DrawCopy("COLZ"); |
188 | |
189 | canvas->SaveAs(Form("VtxRecon_%d.gif", gMax)); |
190 | |
191 | |
192 | corr->GetYaxis()->SetRangeUser(0, 5); |
193 | |
194 | TCanvas* canvas = new TCanvas("VtxReconZoom", "VtxReconZoom", 500, 500); |
195 | InitPadCOLZ(); |
196 | corr->DrawCopy("COLZ"); |
92d2d8ad |
197 | |
25db2d85 |
198 | canvas->SaveAs(Form("VtxReconZoom_%d.gif", gMax)); |
92d2d8ad |
199 | } |
200 | |
201 | void Track2Particle2D() |
1afae8ff |
202 | { |
25db2d85 |
203 | gSystem->Load("libPWG0base"); |
204 | |
1afae8ff |
205 | TFile* file = TFile::Open("correction_map.root"); |
8b3563f4 |
206 | AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection("dndeta_correction", "dndeta_correction"); |
25db2d85 |
207 | dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction"); |
208 | |
209 | TH3* gene = dNdEtaCorrection->GetTrack2ParticleCorrection()->GetGeneratedHistogram(); |
210 | TH3* meas = dNdEtaCorrection->GetTrack2ParticleCorrection()->GetMeasuredHistogram(); |
1afae8ff |
211 | |
25db2d85 |
212 | gene->GetZaxis()->SetRangeUser(0.3, 10); |
213 | meas->GetZaxis()->SetRangeUser(0.3, 10); |
214 | AliPWG0Helper::CreateDividedProjections(gene, meas, "yx"); |
215 | gene->GetZaxis()->UnZoom(); |
216 | meas->GetZaxis()->UnZoom(); |
217 | |
218 | gene->GetYaxis()->SetRangeUser(-0.8, 0.8); |
219 | meas->GetYaxis()->SetRangeUser(-0.8, 0.8); |
220 | AliPWG0Helper::CreateDividedProjections(gene, meas, "zx"); |
221 | gene->GetYaxis()->UnZoom(); |
222 | meas->GetYaxis()->UnZoom(); |
223 | |
224 | gene->GetXaxis()->SetRangeUser(-10, 10); |
225 | meas->GetXaxis()->SetRangeUser(-10, 10); |
226 | AliPWG0Helper::CreateDividedProjections(gene, meas, "zy"); |
227 | gene->GetXaxis()->UnZoom(); |
228 | meas->GetXaxis()->UnZoom(); |
229 | |
230 | TH2* corrYX = dynamic_cast<TH2*> (gROOT->FindObject("gene_nTrackToNPart_yx_div_meas_nTrackToNPart_yx")); |
231 | TH2* corrZX = dynamic_cast<TH2*> (gROOT->FindObject("gene_nTrackToNPart_zx_div_meas_nTrackToNPart_zx")); |
232 | TH2* corrZY = dynamic_cast<TH2*> (gROOT->FindObject("gene_nTrackToNPart_zy_div_meas_nTrackToNPart_zy")); |
233 | |
234 | /* this reads them from the file |
d09fb536 |
235 | TH2* corrYX = dynamic_cast<TH2*> (file->Get("dndeta_correction/gene_nTrackToNPart_yx_div_meas_nTrackToNPart_yx")); |
236 | TH2* corrZX = dynamic_cast<TH2*> (file->Get("dndeta_correction/gene_nTrackToNPart_zx_div_meas_nTrackToNPart_zx")); |
25db2d85 |
237 | TH2* corrZY = dynamic_cast<TH2*> (file->Get("dndeta_correction/gene_nTrackToNPart_zy_div_meas_nTrackToNPart_zy"));*/ |
1afae8ff |
238 | |
239 | Prepare2DPlot(corrYX); |
240 | Prepare2DPlot(corrZX); |
241 | Prepare2DPlot(corrZY); |
242 | |
92d2d8ad |
243 | const char* title = "Track2Particle Correction"; |
244 | corrYX->SetTitle(title); |
245 | corrZX->SetTitle(title); |
246 | corrZY->SetTitle(title); |
1afae8ff |
247 | |
d09fb536 |
248 | TCanvas* canvas = new TCanvas("Track2Particle2D", "Track2Particle2D", 1200, 400); |
1afae8ff |
249 | canvas->Divide(3, 1); |
250 | |
251 | canvas->cd(1); |
252 | InitPadCOLZ(); |
253 | corrYX->Draw("COLZ"); |
254 | |
255 | canvas->cd(2); |
256 | InitPadCOLZ(); |
257 | corrZX->Draw("COLZ"); |
258 | |
259 | canvas->cd(3); |
260 | InitPadCOLZ(); |
261 | corrZY->Draw("COLZ"); |
92d2d8ad |
262 | |
25db2d85 |
263 | canvas->SaveAs(Form("Track2Particle2D_%d.gif", gMax)); |
1afae8ff |
264 | } |
265 | |
266 | void Track2Particle3D() |
267 | { |
268 | // get left margin proper |
269 | |
270 | TFile* file = TFile::Open("correction_map.root"); |
271 | |
d09fb536 |
272 | TH3* corr = dynamic_cast<TH3*> (file->Get("dndeta_correction/corr_nTrackToNPart")); |
273 | |
274 | corr->SetTitle("Correction Factor"); |
275 | SetRanges(corr->GetZaxis()); |
276 | |
277 | Prepare3DPlot(corr); |
278 | |
279 | TCanvas* canvas = new TCanvas("Track2Particle3D", "Track2Particle3D", 500, 500); |
280 | canvas->SetTheta(29.428); |
281 | canvas->SetPhi(16.5726); |
282 | |
283 | corr->Draw(); |
284 | |
285 | canvas->SaveAs("Track2Particle3D.gif"); |
286 | } |
287 | |
288 | void Track2Particle3DAll() |
289 | { |
d09fb536 |
290 | TFile* file = TFile::Open("correction_map.root"); |
291 | |
1afae8ff |
292 | TH3* gene = dynamic_cast<TH3*> (file->Get("dndeta_correction/gene_nTrackToNPart")); |
293 | TH3* meas = dynamic_cast<TH3*> (file->Get("dndeta_correction/meas_nTrackToNPart")); |
294 | TH3* corr = dynamic_cast<TH3*> (file->Get("dndeta_correction/corr_nTrackToNPart")); |
295 | |
296 | gene->SetTitle("Generated Particles"); |
297 | meas->SetTitle("Measured Tracks"); |
298 | corr->SetTitle("Correction Factor"); |
299 | |
300 | Prepare3DPlot(gene); |
301 | Prepare3DPlot(meas); |
302 | Prepare3DPlot(corr); |
303 | |
d09fb536 |
304 | TCanvas* canvas = new TCanvas("Track2Particle3DAll", "Track2Particle3DAll", 1200, 400); |
1afae8ff |
305 | canvas->Divide(3, 1); |
306 | |
307 | canvas->cd(1); |
308 | InitPad(); |
309 | gene->Draw(); |
310 | |
311 | canvas->cd(2); |
312 | meas->Draw(); |
313 | |
314 | canvas->cd(3); |
315 | corr->Draw(); |
d09fb536 |
316 | |
317 | canvas->SaveAs("Track2Particle3DAll.gif"); |
1afae8ff |
318 | } |
319 | |
320 | void SetRanges(TH1* hist) |
321 | { |
322 | SetRanges(hist->GetXaxis()); |
323 | SetRanges(hist->GetYaxis()); |
324 | SetRanges(hist->GetZaxis()); |
325 | } |
326 | |
327 | void SetRanges(TAxis* axis) |
328 | { |
329 | if (strcmp(axis->GetTitle(), "#eta") == 0) |
d09fb536 |
330 | axis->SetRangeUser(-1.7999, 1.7999); |
92d2d8ad |
331 | if (strcmp(axis->GetTitle(), "p_{T} [GeV/c]") == 0) |
1afae8ff |
332 | axis->SetRangeUser(0, 9.9999); |
333 | if (strcmp(axis->GetTitle(), "vtx z [cm]") == 0) |
d09fb536 |
334 | axis->SetRangeUser(-15, 14.9999); |
92d2d8ad |
335 | if (strcmp(axis->GetTitle(), "Ntracks") == 0) |
336 | axis->SetRangeUser(0, 99.9999); |
1afae8ff |
337 | } |
338 | |
339 | void Prepare3DPlot(TH3* hist) |
340 | { |
341 | hist->GetXaxis()->SetTitleOffset(1.5); |
342 | hist->GetYaxis()->SetTitleOffset(1.5); |
343 | hist->GetZaxis()->SetTitleOffset(1.5); |
d09fb536 |
344 | |
345 | hist->SetStats(kFALSE); |
1afae8ff |
346 | } |
347 | |
348 | void Prepare2DPlot(TH2* hist) |
349 | { |
350 | hist->SetStats(kFALSE); |
92d2d8ad |
351 | hist->GetYaxis()->SetTitleOffset(1.4); |
352 | |
353 | hist->SetMinimum(0); |
25db2d85 |
354 | hist->SetMaximum(gMax); |
92d2d8ad |
355 | |
356 | SetRanges(hist); |
1afae8ff |
357 | } |
358 | |
d09fb536 |
359 | void Prepare1DPlot(TH1* hist) |
360 | { |
361 | hist->SetLineWidth(2); |
362 | hist->SetStats(kFALSE); |
363 | } |
364 | |
1afae8ff |
365 | void InitPad() |
366 | { |
367 | gPad->Range(0, 0, 1, 1); |
d09fb536 |
368 | gPad->SetLeftMargin(0.15); |
369 | //gPad->SetRightMargin(0.05); |
370 | //gPad->SetTopMargin(0.13); |
371 | //gPad->SetBottomMargin(0.1); |
1afae8ff |
372 | |
d09fb536 |
373 | //gPad->SetGridx(); |
374 | //gPad->SetGridy(); |
1afae8ff |
375 | } |
376 | |
377 | void InitPadCOLZ() |
d09fb536 |
378 | { |
1afae8ff |
379 | gPad->Range(0, 0, 1, 1); |
380 | gPad->SetRightMargin(0.15); |
381 | gPad->SetLeftMargin(0.12); |
d09fb536 |
382 | |
383 | gPad->SetGridx(); |
384 | gPad->SetGridy(); |
1afae8ff |
385 | } |