11 void drawPlots(Int_t max)
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");
32 TCanvas* canvas = new TCanvas("dNdEta1", "dNdEta1", 500, 500);
34 Prepare1DPlot(histESD);
35 Prepare1DPlot(histESDNoPt);
36 Prepare1DPlot(histESDMB);
37 Prepare1DPlot(histESDMBVtx);
39 histESD->SetLineColor(kRed);
40 histESDMB->SetLineColor(kBlue);
41 histESDMBVtx->SetLineColor(103);
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");
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);
54 histESDMBVtx->Draw("SAME");
55 histESDMB->Draw("SAME");
56 histESD->Draw("SAME");
58 canvas->SaveAs("dNdEta1.gif");
60 TFile* file2 = TFile::Open("analysis_mc.root");
61 TH1* histMC = file2->Get("dndeta/dndeta_dNdEta_corrected_2")->Clone("cloned");
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);
69 TCanvas* canvas2 = new TCanvas("dNdEta2", "dNdEta2", 500, 500);
71 Prepare1DPlot(histMC);
72 Prepare1DPlot(histMCPtCut);
74 histMC->SetLineColor(kBlue);
75 histMCPtCut->SetLineColor(104);
76 histESDNoPt->SetLineColor(102);
78 TH2* dummy2 = dummy->Clone("dummy2");
79 dummy2->GetYaxis()->SetRangeUser(0, histESD->GetMaximum() * 1.1);
84 histESD->Draw("SAME");
85 histESDNoPt->Draw("SAME");
86 histMCPtCut->Draw("SAME");
88 canvas2->SaveAs("dNdEta2.gif");
93 TFile* file = TFile::Open("analysis_esd.root");
94 TH1* histESD = file->Get("dndeta/dndeta_pt");
96 TFile* file2 = TFile::Open("analysis_mc.root");
97 TH1* histMC = file2->Get("dndeta/dndeta_pt");
99 TCanvas* canvas = new TCanvas("ptSpectrum", "ptSpectrum", 500, 500);
103 Prepare1DPlot(histMC);
104 Prepare1DPlot(histESD);
106 histESD->SetTitle("");
107 histESD->GetXaxis()->SetTitle("p_{T} [GeV/c]");
108 histESD->GetYaxis()->SetTitle("#frac{dN}{d#eta dp_{T}} [c/GeV]");
110 histMC->SetLineColor(kBlue);
111 histESD->SetLineColor(kRed);
113 histESD->GetYaxis()->SetTitleOffset(1.5);
114 histESD->GetXaxis()->SetRangeUser(0, 4.9999);
116 histESD->SetMaximum(TMath::Max(histESD->GetMaximum(), histMC->GetMaximum()) * 2);
119 histMC->Draw("SAME");
121 canvas->SaveAs("ptSpectrum.gif");
126 gSystem->Load("libPWG0base");
128 AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection("dndeta_correction", "dndeta_correction");
129 dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction");
131 dNdEtaCorrection->GetMeasuredFraction(0.3, -1, kTRUE);
133 TH1* hist = dynamic_cast<TH1*> (gROOT->FindObject("gene_nTrackToNPart_pt"));
135 hist->GetXaxis()->SetRangeUser(0, 0.9999);
138 hist->SetTitle("Generated Particles");
141 TCanvas* canvas = new TCanvas("ptCutoff", "ptCutoff", 500, 500);
144 TLine* line = new TLine(0.3, 0 - hist->GetMaximum() * 0, 0.3, hist->GetMaximum() * 1.1);
145 line->SetLineWidth(3);
146 line->SetLineColor(kRed);
149 canvas->SaveAs("ptCutoff.gif");
154 TFile* file = TFile::Open("correction_map.root");
156 TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_trigger"));
159 corr->SetTitle("Trigger bias correction");
161 TCanvas* canvas = new TCanvas("TriggerBias", "TriggerBias", 500, 500);
163 corr->DrawCopy("COLZ");
165 canvas->SaveAs(Form("TriggerBias_%d.gif", gMax));
167 corr->GetYaxis()->SetRangeUser(0, 5);
169 canvas = new TCanvas("TriggerBiasZoom", "TriggerBiasZoom", 500, 500);
171 corr->DrawCopy("COLZ");
173 canvas->SaveAs(Form("TriggerBiasZoom_%d.gif", gMax));
178 TFile* file = TFile::Open("correction_map.root");
180 TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_vtxReco"));
183 corr->SetTitle("Vertex reconstruction correction");
185 TCanvas* canvas = new TCanvas("VtxRecon", "VtxRecon", 500, 500);
187 corr->DrawCopy("COLZ");
189 canvas->SaveAs(Form("VtxRecon_%d.gif", gMax));
192 corr->GetYaxis()->SetRangeUser(0, 5);
194 TCanvas* canvas = new TCanvas("VtxReconZoom", "VtxReconZoom", 500, 500);
196 corr->DrawCopy("COLZ");
198 canvas->SaveAs(Form("VtxReconZoom_%d.gif", gMax));
201 void Track2Particle2D()
203 gSystem->Load("libPWG0base");
205 TFile* file = TFile::Open("correction_map.root");
206 AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection("dndeta_correction", "dndeta_correction");
207 dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction");
209 TH3* gene = dNdEtaCorrection->GetTrack2ParticleCorrection()->GetGeneratedHistogram();
210 TH3* meas = dNdEtaCorrection->GetTrack2ParticleCorrection()->GetMeasuredHistogram();
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();
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();
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();
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"));
234 /* this reads them from the file
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"));
237 TH2* corrZY = dynamic_cast<TH2*> (file->Get("dndeta_correction/gene_nTrackToNPart_zy_div_meas_nTrackToNPart_zy"));*/
239 Prepare2DPlot(corrYX);
240 Prepare2DPlot(corrZX);
241 Prepare2DPlot(corrZY);
243 const char* title = "Track2Particle Correction";
244 corrYX->SetTitle(title);
245 corrZX->SetTitle(title);
246 corrZY->SetTitle(title);
248 TCanvas* canvas = new TCanvas("Track2Particle2D", "Track2Particle2D", 1200, 400);
249 canvas->Divide(3, 1);
253 corrYX->Draw("COLZ");
257 corrZX->Draw("COLZ");
261 corrZY->Draw("COLZ");
263 canvas->SaveAs(Form("Track2Particle2D_%d.gif", gMax));
266 void Track2Particle3D()
268 // get left margin proper
270 TFile* file = TFile::Open("correction_map.root");
272 TH3* corr = dynamic_cast<TH3*> (file->Get("dndeta_correction/corr_nTrackToNPart"));
274 corr->SetTitle("Correction Factor");
275 SetRanges(corr->GetZaxis());
279 TCanvas* canvas = new TCanvas("Track2Particle3D", "Track2Particle3D", 500, 500);
280 canvas->SetTheta(29.428);
281 canvas->SetPhi(16.5726);
285 canvas->SaveAs("Track2Particle3D.gif");
288 void Track2Particle3DAll()
290 TFile* file = TFile::Open("correction_map.root");
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"));
296 gene->SetTitle("Generated Particles");
297 meas->SetTitle("Measured Tracks");
298 corr->SetTitle("Correction Factor");
304 TCanvas* canvas = new TCanvas("Track2Particle3DAll", "Track2Particle3DAll", 1200, 400);
305 canvas->Divide(3, 1);
317 canvas->SaveAs("Track2Particle3DAll.gif");
320 void SetRanges(TH1* hist)
322 SetRanges(hist->GetXaxis());
323 SetRanges(hist->GetYaxis());
324 SetRanges(hist->GetZaxis());
327 void SetRanges(TAxis* axis)
329 if (strcmp(axis->GetTitle(), "#eta") == 0)
330 axis->SetRangeUser(-1.7999, 1.7999);
331 if (strcmp(axis->GetTitle(), "p_{T} [GeV/c]") == 0)
332 axis->SetRangeUser(0, 9.9999);
333 if (strcmp(axis->GetTitle(), "vtx z [cm]") == 0)
334 axis->SetRangeUser(-15, 14.9999);
335 if (strcmp(axis->GetTitle(), "Ntracks") == 0)
336 axis->SetRangeUser(0, 99.9999);
339 void Prepare3DPlot(TH3* hist)
341 hist->GetXaxis()->SetTitleOffset(1.5);
342 hist->GetYaxis()->SetTitleOffset(1.5);
343 hist->GetZaxis()->SetTitleOffset(1.5);
345 hist->SetStats(kFALSE);
348 void Prepare2DPlot(TH2* hist)
350 hist->SetStats(kFALSE);
351 hist->GetYaxis()->SetTitleOffset(1.4);
354 hist->SetMaximum(gMax);
359 void Prepare1DPlot(TH1* hist)
361 hist->SetLineWidth(2);
362 hist->SetStats(kFALSE);
367 gPad->Range(0, 0, 1, 1);
368 gPad->SetLeftMargin(0.15);
369 //gPad->SetRightMargin(0.05);
370 //gPad->SetTopMargin(0.13);
371 //gPad->SetBottomMargin(0.1);
379 gPad->Range(0, 0, 1, 1);
380 gPad->SetRightMargin(0.15);
381 gPad->SetLeftMargin(0.12);