1afae8ff |
1 | /* $Id$ */ |
2 | |
3 | void drawPlots() |
92d2d8ad |
4 | { |
d09fb536 |
5 | ptCutoff(); |
6 | TriggerBias(); |
7 | VtxRecon(); |
8 | Track2Particle2D(); |
9 | Track2Particle3D(); |
10 | ptSpectrum(); |
11 | dNdEta(); |
12 | } |
13 | |
14 | void 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 | |
81 | void 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 | |
112 | void 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 | |
140 | void 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 | |
164 | void 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 | |
180 | void 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 | |
215 | void 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 | |
237 | void 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 | |
271 | void SetRanges(TH1* hist) |
272 | { |
273 | SetRanges(hist->GetXaxis()); |
274 | SetRanges(hist->GetYaxis()); |
275 | SetRanges(hist->GetZaxis()); |
276 | } |
277 | |
278 | void 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 | |
290 | void 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 | |
299 | void 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 |
310 | void Prepare1DPlot(TH1* hist) |
311 | { |
312 | hist->SetLineWidth(2); |
313 | hist->SetStats(kFALSE); |
314 | } |
315 | |
1afae8ff |
316 | void 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 | |
328 | void 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 | } |