enhanced storing of last sucessfully processed run (alberto)
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / drawPlots.C
CommitLineData
1afae8ff 1/* $Id$ */
2
25db2d85 3Int_t gMax = 5;
4
1afae8ff 5void drawPlots()
92d2d8ad 6{
25db2d85 7 drawPlots(5);
8 drawPlots(2);
9}
10
11void 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
24void 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
91void 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
124void 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
152void 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
176void 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
201void 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
266void 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
288void 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
320void SetRanges(TH1* hist)
321{
322 SetRanges(hist->GetXaxis());
323 SetRanges(hist->GetYaxis());
324 SetRanges(hist->GetZaxis());
325}
326
327void 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
339void 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
348void 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 359void Prepare1DPlot(TH1* hist)
360{
361 hist->SetLineWidth(2);
362 hist->SetStats(kFALSE);
363}
364
1afae8ff 365void 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
377void 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}