more plots
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / drawPlots.C
1 /* $Id$ */
2
3 void drawPlots()
4 {
5 }
6
7 void ptCutoff()
8 {
9   gSystem->Load("libPWG0base");
10
11   AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection();
12   dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction");
13
14   dNdEtaCorrection->GetMeasuredFraction(0.3, -1, kTRUE);
15
16   TH1* hist = dynamic_cast<TH1*> (gROOT->FindObject("gene_nTrackToNPart_pt"));
17
18   hist->GetXaxis()->SetRangeUser(0, 0.9999);
19   hist->SetMinimum(0);
20   hist->SetStats(kFALSE);
21
22   hist->SetTitle("Generated Particles");
23
24   TCanvas* canvas = new TCanvas("ptCutoff", "ptCutoff", 500, 500);
25   hist->Draw();
26
27   TLine* line = new TLine(0.3, 0 - hist->GetMaximum() * 0.05, 0.3, hist->GetMaximum() * 1.1);
28   line->SetLineWidth(3);
29   line->Draw();
30
31   canvas->SaveAs("ptCutoff.gif");
32 }
33
34 void TriggerBias()
35 {
36   TFile* file = TFile::Open("correction_map.root");
37
38   TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_trigger"));
39
40   Prepare2DPlot(corr);
41   corr->SetTitle("Trigger bias correction");
42
43   TCanvas* canvas = new TCanvas("TriggerBias", "TriggerBias", 500, 500);
44   InitPadCOLZ();
45   corr->DrawCopy("COLZ");
46
47   canvas->SaveAs("TriggerBias.gif");
48
49   corr->GetYaxis()->SetRangeUser(0, 5);
50
51   canvas = new TCanvas("TriggerBiasZoom", "TriggerBiasZoom", 500, 500);
52   InitPadCOLZ();
53   corr->DrawCopy("COLZ");
54
55   canvas->SaveAs("TriggerBiasZoom.gif");
56 }
57
58 void VtxRecon()
59 {
60   TFile* file = TFile::Open("correction_map.root");
61
62   TH2* corr = dynamic_cast<TH2*> (file->Get("dndeta_correction/corr_vtxReco"));
63
64   Prepare2DPlot(corr);
65   corr->SetTitle("Vertex reconstruction correction");
66
67   TCanvas* canvas = new TCanvas("VtxRecon", "VtxRecon", 500, 500);
68   InitPadCOLZ();
69   corr->Draw("COLZ");
70
71   canvas->SaveAs("VtxRecon.gif");
72 }
73
74 void Track2Particle2D()
75 {
76   TFile* file = TFile::Open("correction_map.root");
77
78   TH2* corrYX = dynamic_cast<TH2*> (file->Get("dndeta_correction/meas_nTrackToNPart_yx_div_gene_nTrackToNPart_yx"));
79   TH2* corrZX = dynamic_cast<TH2*> (file->Get("dndeta_correction/meas_nTrackToNPart_zx_div_gene_nTrackToNPart_zx"));
80   TH2* corrZY = dynamic_cast<TH2*> (file->Get("dndeta_correction/meas_nTrackToNPart_zy_div_gene_nTrackToNPart_zy"));
81
82   Prepare2DPlot(corrYX);
83   Prepare2DPlot(corrZX);
84   Prepare2DPlot(corrZY);
85
86   const char* title = "Track2Particle Correction";
87   corrYX->SetTitle(title);
88   corrZX->SetTitle(title);
89   corrZY->SetTitle(title);
90
91   TCanvas* canvas = new TCanvas("Track2Particle2D", "Track2Particle2D", 1500, 500);
92   canvas->Divide(3, 1);
93
94   canvas->cd(1);
95   InitPadCOLZ();
96   corrYX->Draw("COLZ");
97
98   canvas->cd(2);
99   InitPadCOLZ();
100   corrZX->Draw("COLZ");
101
102   canvas->cd(3);
103   InitPadCOLZ();
104   corrZY->Draw("COLZ");
105
106   canvas->SaveAs("Track2Particle2D.gif");
107 }
108
109 void Track2Particle3D()
110 {
111   // get left margin proper
112
113   TFile* file = TFile::Open("correction_map.root");
114
115   TH3* gene = dynamic_cast<TH3*> (file->Get("dndeta_correction/gene_nTrackToNPart"));
116   TH3* meas = dynamic_cast<TH3*> (file->Get("dndeta_correction/meas_nTrackToNPart"));
117   TH3* corr = dynamic_cast<TH3*> (file->Get("dndeta_correction/corr_nTrackToNPart"));
118
119   gene->SetTitle("Generated Particles");
120   meas->SetTitle("Measured Tracks");
121   corr->SetTitle("Correction Factor");
122
123   Prepare3DPlot(gene);
124   Prepare3DPlot(meas);
125   Prepare3DPlot(corr);
126
127   TCanvas* canvas = new TCanvas("Track2Particle3D", "Track2Particle3D", 1500, 500);
128   canvas->Divide(3, 1);
129
130   canvas->cd(1);
131   InitPad();
132   gene->Draw();
133
134   canvas->cd(2);
135   meas->Draw();
136
137   canvas->cd(3);
138   corr->Draw();
139 }
140
141 void SetRanges(TH1* hist)
142 {
143   SetRanges(hist->GetXaxis());
144   SetRanges(hist->GetYaxis());
145   SetRanges(hist->GetZaxis());
146 }
147
148 void SetRanges(TAxis* axis)
149 {
150   if (strcmp(axis->GetTitle(), "#eta") == 0)
151     axis->SetRangeUser(-0.8, 0.79999);
152   if (strcmp(axis->GetTitle(), "p_{T} [GeV/c]") == 0)
153     axis->SetRangeUser(0, 9.9999);
154   if (strcmp(axis->GetTitle(), "vtx z [cm]") == 0)
155     axis->SetRangeUser(-10, 9.9999);
156   if (strcmp(axis->GetTitle(), "Ntracks") == 0)
157     axis->SetRangeUser(0, 99.9999);
158 }
159
160 void Prepare3DPlot(TH3* hist)
161 {
162   hist->GetXaxis()->SetTitleOffset(1.5);
163   hist->GetYaxis()->SetTitleOffset(1.5);
164   hist->GetZaxis()->SetTitleOffset(1.5);
165 }
166
167 void Prepare2DPlot(TH2* hist)
168 {
169   hist->SetStats(kFALSE);
170   hist->GetYaxis()->SetTitleOffset(1.4);
171
172   hist->SetMinimum(0);
173   hist->SetMaximum(10);
174
175   SetRanges(hist);
176 }
177
178 void InitPad()
179 {
180   gPad->Range(0, 0, 1, 1);
181   gPad->SetLeftMargin(0);
182   gPad->SetRightMargin(0.05);
183   gPad->SetTopMargin(0.13);
184   gPad->SetBottomMargin(0.1);
185
186   gPad->SetGridx();
187   gPad->SetGridy();
188 }
189
190 void InitPadCOLZ()
191 {  
192   gPad->Range(0, 0, 1, 1);
193   gPad->SetRightMargin(0.15);
194   gPad->SetLeftMargin(0.12);
195 }