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