]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/macros/drawProtonResults.C
Fixing bug in the projections
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / drawProtonResults.C
CommitLineData
f203beb9 1void drawProtonResults(const char* analysisOutput = 0x0,
2 Bool_t kShowResults = kTRUE,
7ec0d93f 3 Bool_t kShowQAPlots = kFALSE,
4 Bool_t kMC = kFALSE) {
735cc63d 5 //Macro to visualize the proton ratio results
6 //It also visualizes the QA plots
790140ac 7 gStyle->SetPalette(1,0);
f203beb9 8 if(!analysisOutput)
9 Error("drawProtonResults::The analysis output was not defined!!!");
10 if(kShowResults) drawResults(analysisOutput);
7ec0d93f 11 if(kShowQAPlots) drawQAPlots(analysisOutput, kMC);
735cc63d 12}
13
790140ac 14//___________________________________________________//
f203beb9 15void drawResults(const char* analysisOutput) {
790140ac 16 //Draws the main results from the ratio analysis
3c669e09 17 gSystem->Load("libANALYSIS.so");
18 gSystem->Load("libANALYSISalice.so");
19 gSystem->Load("libCORRFW.so");
52b04cf9 20 gSystem->Load("libPWG2spectra.so");
3c669e09 21
52b04cf9 22 //Create the AliProtonAnalysis object
23 AliProtonAnalysis *analysis = new AliProtonAnalysis();
f203beb9 24 analysis->ReadFromFile(analysisOutput);
52b04cf9 25 TH1F *gHistEventStats = dynamic_cast<TH1F *>(analysis->GetEventStatistics());
26 TH2D *gHistYPtProtons = dynamic_cast<TH2D *>(analysis->GetProtonYPtHistogram());
27 TH2D *gHistYPtAntiProtons = dynamic_cast<TH2D *>(analysis->GetAntiProtonYPtHistogram());
28 TH1D *gHistYProtons = dynamic_cast<TH1D *>(analysis->GetProtonYHistogram());
29 TH1D *gHistYAntiProtons = dynamic_cast<TH1D *>(analysis->GetAntiProtonYHistogram());
30 TH1D *gHistPtProtons = dynamic_cast<TH1D *>(analysis->GetProtonPtHistogram());
31 TH1D *gHistPtAntiProtons = dynamic_cast<TH1D *>(analysis->GetAntiProtonPtHistogram());
32 TH1D *gHistYRatio = dynamic_cast<TH1D *>(analysis->GetYRatioHistogram());
33 TH1D *gHistPtRatio = dynamic_cast<TH1D *>(analysis->GetPtRatioHistogram());
790140ac 34
3c669e09 35 //==================================================================//
e56f08ed 36 TH2F *hEmptyRatio = new TH2F("hEmptyRatio",";;#bar{p}/p",100,-1.1,1.1,100,0.1,1.1);
52b04cf9 37 hEmptyRatio->SetStats(kFALSE);
38 hEmptyRatio->GetXaxis()->SetNdivisions(10);
39 hEmptyRatio->GetYaxis()->SetNdivisions(10);
40
41 TLatex *latex = new TLatex();
42 latex->SetTextSize(0.04);
43 latex->SetTextColor(2);
44
45 TF1 *fFitFunction = new TF1("fFitFunction","[0]",-0.5,0.5);
46 fFitFunction->SetParameter(0,0.7);
47
790140ac 48 TCanvas *c2D = new TCanvas("c2D","eta-pT (anti)protons",0,0,700,400);
49 c2D->SetFillColor(10); c2D->SetHighLightColor(10); c2D->Divide(2,1);
50 c2D->cd(1); gHistYPtProtons->Draw("col");
51 c2D->cd(2); gHistYPtAntiProtons->Draw("col");
3c669e09 52
53 TCanvas *cEventStats = new TCanvas("cEventStats","Event statistics",
54 0,0,500,500);
55 cEventStats->SetFillColor(10); cEventStats->SetHighLightColor(10);
56 gHistEventStats->Draw();
52b04cf9 57
58 TCanvas *cEta = new TCanvas("cEta","Eta",100,0,600,400);
59 cEta->SetFillColor(10); cEta->SetHighLightColor(10); cEta->Divide(2,1);
629e3967 60 cEta->cd(1); gHistYProtons->Draw("E"); PrintYields(gHistYProtons);
61 cEta->cd(2); gHistYAntiProtons->Draw("E"); PrintYields(gHistYAntiProtons);
52b04cf9 62
63 TCanvas *cPt = new TCanvas("cPt","Pt",100,200,600,400);
64 cPt->SetFillColor(10); cPt->SetHighLightColor(10); cPt->Divide(2,1);
65 cPt->cd(1)->SetLogy(); gHistPtProtons->Draw("E");
66 cPt->cd(2)->SetLogy(); gHistPtAntiProtons->Draw("E");
67
68 TCanvas *cRatio = new TCanvas("cRatio","Ratio",300,0,600,400);
69 cRatio->SetFillColor(10); cRatio->SetHighLightColor(10); cRatio->Divide(2,1);
70 cRatio->cd(1); hEmptyRatio->GetXaxis()->SetTitle("eta");
e56f08ed 71 hEmptyRatio->GetXaxis()->SetRangeUser(-1.0,1.0);
52b04cf9 72 hEmptyRatio->DrawCopy(); gHistYRatio->Draw("ESAME");
73 gHistYRatio->Fit("fFitFunction","N");
74 latex->DrawLatex(-0.1,0.45,"ALICE PRELIMINARY");
75 latex->DrawLatex(-0.1,0.4,"p-p: #sqrt{s} = 900 GeV");
76 cRatio->cd(2); hEmptyRatio->GetXaxis()->SetTitle("P_{T} [GeV/c]");
77 hEmptyRatio->GetXaxis()->SetRangeUser(0.3,1.1);
78 hEmptyRatio->DrawCopy(); gHistPtRatio->Draw("ESAME");
79 latex->DrawLatex(0.6,0.45,"ALICE PRELIMINARY");
80 latex->DrawLatex(0.6,0.4,"p-p: #sqrt{s} = 900 GeV");
81
82
83 Printf("==========================================");
e56f08ed 84 for(Int_t iBin = 1; iBin <= gHistYRatio->GetNbinsX(); iBin++)
85 Printf("Eta: %lf - Ratio: %lf - Error: %lf",
86 gHistYRatio->GetBinCenter(iBin),
87 gHistYRatio->GetBinContent(iBin),
88 gHistYRatio->GetBinError(iBin));
89 Printf("==========================================");
90
52b04cf9 91 Printf("Fit result: %lf - %lf",fFitFunction->GetParameter(0),fFitFunction->GetParError(0));
92 analysis->PrintMean(gHistYRatio,0.5);
93 Printf("==========================================");
790140ac 94}
95
735cc63d 96//___________________________________________________//
7ec0d93f 97void drawQAPlots(const char* analysisOutput,
98 Bool_t kMC) {
735cc63d 99 //Draws the QA plots from the output of the analysis
100 //=========================================================//
101 //List of cuts
102 TFile *fCutFile = TFile::Open("ListOfCuts.root");
103 TCanvas *cListOfCuts = dynamic_cast<TCanvas *>(fCutFile->Get("cListOfCuts"));
104 cListOfCuts->Draw();
105
106 //=========================================================//
107 //QA plots
f203beb9 108 TFile *f = TFile::Open(analysisOutput);
735cc63d 109 TList *listQA = dynamic_cast<TList *>(f->Get("outputQAList"));
110 TList *gListGlobalQA = dynamic_cast<TList *>(listQA->At(0));
111
112 //================QA plots================//
113 TList *fQA2DList = dynamic_cast<TList *>(gListGlobalQA->At(0));
37cb8683 114 //2D de/dx vs P
790140ac 115 TH2F *gHistdEdxP = dynamic_cast<TH2F *>(fQA2DList->At(0));
116 gHistdEdxP->SetStats(kFALSE);
7ec0d93f 117 drawdEdx(gHistdEdxP);
790140ac 118 TH2F *gHistProtonsdEdxP = dynamic_cast<TH2F *>(fQA2DList->At(1));
119 gHistProtonsdEdxP->SetStats(kFALSE);
37cb8683 120
7ec0d93f 121 //Theoretical Bethe-Bloch
122 Double_t fAlephParameters[5];
123 if(kMC) {
124 fAlephParameters[0] = 2.15898e+00/50.;
125 fAlephParameters[1] = 1.75295e+01;
126 fAlephParameters[2] = 3.40030e-09;
127 fAlephParameters[3] = 1.96178e+00;
128 fAlephParameters[4] = 3.91720e+00;
129 }
130 else {
131 fAlephParameters[0] = 0.0283086;
132 fAlephParameters[1] = 2.63394e+01;
133 fAlephParameters[2] = 5.04114e-11;
134 fAlephParameters[3] = 2.12543e+00;
135 fAlephParameters[4] = 4.88663e+00;
136 }
137
138 AliTPCPIDResponse *tpcResponse = new AliTPCPIDResponse();
139 tpcResponse->SetBetheBlochParameters(fAlephParameters[0],
140 fAlephParameters[1],
141 fAlephParameters[2],
142 fAlephParameters[3],
143 fAlephParameters[4]);
144 const Int_t nEntries = 10000;
145 Double_t mom[nEntries];
146 Double_t dEdxElectrons[nEntries];
147 Double_t dEdxMuons[nEntries];
148 Double_t dEdxPions[nEntries];
149 Double_t dEdxKaons[nEntries];
150 Double_t dEdxProtons[nEntries];
151 for(Int_t i = 0; i < nEntries; i++) {
152 mom[i] = 0.01 + 0.01*i;
153 dEdxElectrons[i] = tpcResponse->GetExpectedSignal(mom[i],0);
154 dEdxMuons[i] = tpcResponse->GetExpectedSignal(mom[i],1);
155 dEdxPions[i] = tpcResponse->GetExpectedSignal(mom[i],2);
156 dEdxKaons[i] = tpcResponse->GetExpectedSignal(mom[i],3);
157 dEdxProtons[i] = tpcResponse->GetExpectedSignal(mom[i],4);
158 }
159
160 TGraph *grElectrons = new TGraph(nEntries,mom,dEdxElectrons);
161 grElectrons->SetName("grElectrons");
162 grElectrons->SetLineColor(6); grElectrons->SetLineWidth(2);
163 TGraph *grMuons = new TGraph(nEntries,mom,dEdxMuons);
164 grMuons->SetLineColor(3); grMuons->SetLineWidth(2);
165 grMuons->SetName("grMuons");
166 TGraph *grPions = new TGraph(nEntries,mom,dEdxPions);
167 grPions->SetLineColor(1); grPions->SetLineWidth(2);
168 grPions->SetName("grPions");
169 TGraph *grKaons = new TGraph(nEntries,mom,dEdxKaons);
170 grKaons->SetLineColor(2); grKaons->SetLineWidth(2);
171 grKaons->SetName("grKaons");
172 TGraph *grProtons = new TGraph(nEntries,mom,dEdxProtons);
173 grProtons->SetLineColor(4); grProtons->SetLineWidth(2);
174 grProtons->SetName("grProtons");
175
37cb8683 176 //3D eta-phi-NPoints(dEdx)
177 TH3F *gHistEtaPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(2));
178 TH2D *gHistEtaPhi = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("yx");
179 gHistEtaPhi->SetStats(kFALSE);
180 TH2D *gHistEtaTPCdEdxNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("zx");
181 gHistEtaTPCdEdxNPoints->SetStats(kFALSE);
182 TH2D *gHistPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("zy");
183 gHistPhiTPCdEdxNPoints->SetStats(kFALSE);
184
185 //3D eta-phi-NPoints(dEdx): protons
186 TH3F *gHistProtonsEtaPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(3));
187 TH2D *gHistProtonsEtaPhi = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("yx");
188 gHistProtonsEtaPhi->SetStats(kFALSE);
189 TH2D *gHistProtonsEtaTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("zx");
190 gHistProtonsEtaTPCdEdxNPoints->SetStats(kFALSE);
191 TH2D *gHistProtonsPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("zy");
192 gHistProtonsPhiTPCdEdxNPoints->SetStats(kFALSE);
193
194 //3D eta-phi-NPoints
195 TH3F *gHistEtaPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(4));
196 TH2D *gHistEtaPhi = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("yx");
197 gHistEtaPhi->SetStats(kFALSE);
198 TH2D *gHistEtaTPCNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("zx");
199 gHistEtaTPCNPoints->SetStats(kFALSE);
200 TH2D *gHistPhiTPCNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("zy");
201 gHistPhiTPCNPoints->SetStats(kFALSE);
202
203 //3D eta-phi-NPoints: protons
204 TH3F *gHistProtonsEtaPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(5));
205 TH2D *gHistProtonsEtaPhi = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("yx");
206 gHistProtonsEtaPhi->SetStats(kFALSE);
207 TH2D *gHistProtonsEtaTPCNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("zx");
208 gHistProtonsEtaTPCNPoints->SetStats(kFALSE);
209 TH2D *gHistProtonsPhiTPCNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("zy");
210 gHistProtonsPhiTPCNPoints->SetStats(kFALSE);
211
212 //3D pt-phi-NPoints(dEdx)
213 TH3F *gHistPtPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(6));
214 TH2D *gHistPtPhi = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("yx");
215 gHistPtPhi->SetStats(kFALSE);
216 TH2D *gHistPtTPCdEdxNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("zx");
217 gHistPtTPCdEdxNPoints->SetStats(kFALSE);
218 TH2D *gHistPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("zy");
219 gHistPhiTPCdEdxNPoints->SetStats(kFALSE);
220
221 //3D pt-phi-NPoints(dEdx): protons
222 TH3F *gHistProtonsPtPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(7));
223 TH2D *gHistProtonsPtPhi = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("yx");
224 gHistProtonsPtPhi->SetStats(kFALSE);
225 TH2D *gHistProtonsPtTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("zx");
226 gHistProtonsPtTPCdEdxNPoints->SetStats(kFALSE);
227 TH2D *gHistProtonsPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("zy");
228 gHistProtonsPhiTPCdEdxNPoints->SetStats(kFALSE);
229
230 //3D pt-phi-NPoints
231 TH3F *gHistPtPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(8));
232 TH2D *gHistPtPhi = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("yx");
233 gHistPtPhi->SetStats(kFALSE);
234 TH2D *gHistPtTPCNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("zx");
235 gHistPtTPCNPoints->SetStats(kFALSE);
236 TH2D *gHistPhiTPCNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("zy");
237 gHistPhiTPCNPoints->SetStats(kFALSE);
238
239 //3D pt-phi-NPoints: protons
240 TH3F *gHistProtonsPtPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(9));
241 TH2D *gHistProtonsPtPhi = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("yx");
242 gHistProtonsPtPhi->SetStats(kFALSE);
243 TH2D *gHistProtonsPtTPCNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("zx");
244 gHistProtonsPtTPCNPoints->SetStats(kFALSE);
245 TH2D *gHistProtonsPhiTPCNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("zy");
246 gHistProtonsPhiTPCNPoints->SetStats(kFALSE);
247
e56f08ed 248 //2D eta-phi- accepted protons & antiprotons
249 TH2F *gHistEtaPhiProtons = dynamic_cast<TH2F *>(fQA2DList->At(10));
250 gHistEtaPhiProtons->SetStats(kFALSE);
251 TH2F *gHistEtaPhiAntiProtons = dynamic_cast<TH2F *>(fQA2DList->At(11));
252 gHistEtaPhiAntiProtons->SetStats(kFALSE);
253
629e3967 254 //2D dca vs pT - accepted protons & antiprotons
255 TH2F *gHistDCAxyPtProtons = dynamic_cast<TH2F *>(fQA2DList->At(12));
256 gHistDCAxyPtProtons->SetStats(kFALSE);
257 TH2F *gHistDCAzPtProtons = dynamic_cast<TH2F *>(fQA2DList->At(13));
258 gHistDCAzPtProtons->SetStats(kFALSE);
259 TH2F *gHistDCAxyPtAntiProtons = dynamic_cast<TH2F *>(fQA2DList->At(14));
260 gHistDCAxyPtAntiProtons->SetStats(kFALSE);
261 TH2F *gHistDCAzPtAntiProtons = dynamic_cast<TH2F *>(fQA2DList->At(15));
262 gHistDCAzPtAntiProtons->SetStats(kFALSE);
263
37cb8683 264 //__________________________________________________//
7ec0d93f 265 TH2F *hEmptydEdx = new TH2F("hEmptydEdx",
266 "TPC dE/dx parametrization;P[GeV/c];dE/dx [a.u]",
267 100,0.01,110.,100,30,1000);
268 hEmptydEdx->SetStats(kFALSE);
269
270 TLatex *latex = new TLatex();
271 latex->SetTextSize(0.035);
272
790140ac 273 TCanvas *cdEdx = new TCanvas("cdEdx","dE/dx (TPC)",0,0,700,400);
274 cdEdx->SetFillColor(10); cdEdx->SetHighLightColor(10); cdEdx->Divide(2,1);
7ec0d93f 275 cdEdx->cd(1)->SetLogx(); hEmptydEdx->DrawCopy();
276 gHistdEdxP->Draw("colsame");
277 grElectrons->Draw("LSAME"); latex->SetTextColor(6); latex->DrawLatex(0.02,55,"e");
278 grMuons->Draw("LSAME"); latex->SetTextColor(3); latex->DrawLatex(0.02,400,"#mu");
279 grPions->Draw("LSAME"); latex->SetTextColor(1); latex->DrawLatex(0.05,400,"#pi");
280 grKaons->Draw("LSAME"); latex->SetTextColor(2); latex->DrawLatex(0.17,400,"K");
281 grProtons->Draw("LSAME"); latex->SetTextColor(4); latex->DrawLatex(0.35,400,"p");
282
790140ac 283 cdEdx->cd(2)->SetLogx(); gHistProtonsdEdxP->Draw("col");
735cc63d 284
e56f08ed 285 TCanvas *cEtaPhi = new TCanvas("cEtaPhi",
286 "eta-phi",
287 0,0,700,400);
288 cEtaPhi->SetFillColor(10);
289 cEtaPhi->SetHighLightColor(10); cEtaPhi->Divide(2,1);
7ec0d93f 290 cEtaPhi->cd(1);
291 gHistEtaPhiProtons->SetTitle("Accepted protons - eta vs phi");
292 gHistEtaPhiProtons->Draw("colz");
293 cEtaPhi->cd(2);
294 gHistEtaPhiAntiProtons->SetTitle("Accepted antiprotons - eta vs phi");
295 gHistEtaPhiAntiProtons->Draw("colz");
e56f08ed 296
629e3967 297 TCanvas *cDCAPt = new TCanvas("cDCAPt","pT-dca",0,0,700,700);
298 cDCAPt->SetFillColor(10);
299 cDCAPt->SetHighLightColor(10); cDCAPt->Divide(2,2);
7ec0d93f 300 cDCAPt->cd(1);
301 gHistDCAxyPtProtons->SetTitle("Accepted protons - dca(xy) vs Pt");
302 gHistDCAxyPtProtons->Draw("colz");
303 cDCAPt->cd(2);
304 gHistDCAzPtProtons->SetTitle("Accepted protons - dca(z) vs Pt");
305 gHistDCAzPtProtons->Draw("colz");
306 cDCAPt->cd(3);
307 gHistDCAxyPtAntiProtons->SetTitle("Accepted antiprotons - dca(xy) vs Pt");
308 gHistDCAxyPtAntiProtons->Draw("colz");
309 cDCAPt->cd(4);
310 gHistDCAzPtAntiProtons->SetTitle("Accepted antiprotons - dca(z) vs Pt");
311 gHistDCAzPtAntiProtons->Draw("colz");
629e3967 312
e56f08ed 313 /*TCanvas *cEtaPhiNPointsdEdx = new TCanvas("cEtaPhiNPointsdEdx",
37cb8683 314 "eta-phi-NPoints(dE/dx)",
315 0,0,900,600);
316 cEtaPhiNPointsdEdx->SetFillColor(10);
317 cEtaPhiNPointsdEdx->SetHighLightColor(10); cEtaPhiNPointsdEdx->Divide(3,2);
318 cEtaPhiNPointsdEdx->cd(1); gHistEtaPhi->Draw("col");
319 cEtaPhiNPointsdEdx->cd(2); gHistEtaTPCdEdxNPoints->Draw("col");
320 cEtaPhiNPointsdEdx->cd(3); gHistPhiTPCdEdxNPoints->Draw("col");
321 cEtaPhiNPointsdEdx->cd(4); gHistProtonsEtaPhi->Draw("col");
322 cEtaPhiNPointsdEdx->cd(5); gHistProtonsEtaTPCdEdxNPoints->Draw("col");
323 cEtaPhiNPointsdEdx->cd(6); gHistProtonsPhiTPCdEdxNPoints->Draw("col");
324
325 TCanvas *cEtaPhiNPoints = new TCanvas("cEtaPhiNPoints",
326 "eta-phi-NPoints",
327 0,0,900,600);
328 cEtaPhiNPoints->SetFillColor(10);
329 cEtaPhiNPoints->SetHighLightColor(10); cEtaPhiNPoints->Divide(3,2);
330 cEtaPhiNPoints->cd(1); gHistEtaPhi->Draw("col");
331 cEtaPhiNPoints->cd(2); gHistEtaTPCNPoints->Draw("col");
332 cEtaPhiNPoints->cd(3); gHistPhiTPCNPoints->Draw("col");
333 cEtaPhiNPoints->cd(4); gHistProtonsEtaPhi->Draw("col");
334 cEtaPhiNPoints->cd(5); gHistProtonsEtaTPCNPoints->Draw("col");
335 cEtaPhiNPoints->cd(6); gHistProtonsPhiTPCNPoints->Draw("col");
336
337 TCanvas *cPtPhiNPointsdEdx = new TCanvas("cPtPhiNPointsdEdx",
338 "pt-phi-NPoints(dE/dx)",
339 0,0,900,600);
340 cPtPhiNPointsdEdx->SetFillColor(10);
341 cPtPhiNPointsdEdx->SetHighLightColor(10); cPtPhiNPointsdEdx->Divide(3,2);
342 cPtPhiNPointsdEdx->cd(1); gHistPtPhi->Draw("col");
343 cPtPhiNPointsdEdx->cd(2); gHistPtTPCdEdxNPoints->Draw("col");
344 cPtPhiNPointsdEdx->cd(3); gHistPhiTPCdEdxNPoints->Draw("col");
345 cPtPhiNPointsdEdx->cd(4); gHistProtonsPtPhi->Draw("col");
346 cPtPhiNPointsdEdx->cd(5); gHistProtonsPtTPCdEdxNPoints->Draw("col");
347 cPtPhiNPointsdEdx->cd(6); gHistProtonsPhiTPCdEdxNPoints->Draw("col");
348
349 TCanvas *cPtPhiNPoints = new TCanvas("cPtPhiNPoints",
350 "pt-phi-NPoints",
351 0,0,900,600);
352 cPtPhiNPoints->SetFillColor(10);
353 cPtPhiNPoints->SetHighLightColor(10); cPtPhiNPoints->Divide(3,2);
354 cPtPhiNPoints->cd(1); gHistPtPhi->Draw("col");
355 cPtPhiNPoints->cd(2); gHistPtTPCNPoints->Draw("col");
356 cPtPhiNPoints->cd(3); gHistPhiTPCNPoints->Draw("col");
357 cPtPhiNPoints->cd(4); gHistProtonsPtPhi->Draw("col");
358 cPtPhiNPoints->cd(5); gHistProtonsPtTPCNPoints->Draw("col");
e56f08ed 359 cPtPhiNPoints->cd(6); gHistProtonsPhiTPCNPoints->Draw("col");*/
37cb8683 360
735cc63d 361 //Accepted protons
362 TList *fQAProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQA->At(1));
363 TH1F *gProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(0));
364 TH1F *gProtonsChi2PerClusterITSPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(1));
365 TH1F *gProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(2));
366 TH1F *gProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(3));
367 TH1F *gProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(4));
368 TH1F *gProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(5));
369 TH1F *gProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(6));
370 TH1F *gProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(7));
371 TH1F *gProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(8));
372 TH1F *gProtonsSigmaToVertexPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(9));
373 TH1F *gProtonsSigmaToVertexTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(10));
374 TH1F *gProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(11));
375 TH1F *gProtonsDCAXYTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(12));
376 TH1F *gProtonsDCAZPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(13));
377 TH1F *gProtonsDCAZTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(14));
378 TH1F *gProtonsConstrainChi2Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(15));
379 TH1F *gProtonsITSRefitPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(16));
380 TH1F *gProtonsTPCRefitPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(17));
381 TH1F *gProtonsESDpidPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(18));
382 TH1F *gProtonsTPCpidPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(19));
383 TH1F *gProtonsPointOnITSLayer1Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(20));
384 TH1F *gProtonsPointOnITSLayer2Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(21));
385 TH1F *gProtonsPointOnITSLayer3Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(22));
386 TH1F *gProtonsPointOnITSLayer4Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(23));
387 TH1F *gProtonsPointOnITSLayer5Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(24));
388 TH1F *gProtonsPointOnITSLayer6Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(25));
389 TH1F *gProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(26));
390
391 //Rejected protons
392 TList *fQAProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQA->At(2));
393 TH1F *gProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(0));
394 TH1F *gProtonsChi2PerClusterITSReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(1));
395 TH1F *gProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(2));
396 TH1F *gProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(3));
397 TH1F *gProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(4));
398 TH1F *gProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(5));
399 TH1F *gProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(6));
400 TH1F *gProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(7));
401 TH1F *gProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(8));
402 TH1F *gProtonsSigmaToVertexReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(9));
403 TH1F *gProtonsSigmaToVertexTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(10));
404 TH1F *gProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(11));
405 TH1F *gProtonsDCAXYTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(12));
406 TH1F *gProtonsDCAZReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(13));
407 TH1F *gProtonsDCAZTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(14));
408 TH1F *gProtonsConstrainChi2Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(15));
409 TH1F *gProtonsITSRefitReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(16));
410 TH1F *gProtonsTPCRefitReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(17));
411 TH1F *gProtonsESDpidReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(18));
412 TH1F *gProtonsTPCpidReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(19));
413 TH1F *gProtonsPointOnITSLayer1Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(20));
414 TH1F *gProtonsPointOnITSLayer2Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(21));
415 TH1F *gProtonsPointOnITSLayer3Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(22));
416 TH1F *gProtonsPointOnITSLayer4Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(23));
417 TH1F *gProtonsPointOnITSLayer5Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(24));
418 TH1F *gProtonsPointOnITSLayer6Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(25));
419 TH1F *gProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(26));
420
421 //Accepted antiprotons
422 TList *fQAAntiProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQA->At(3));
423 TH1F *gAntiProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(0));
424 TH1F *gAntiProtonsChi2PerClusterITSPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(1));
425 TH1F *gAntiProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(2));
426 TH1F *gAntiProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(3));
427 TH1F *gAntiProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(4));
428 TH1F *gAntiProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(5));
429 TH1F *gAntiProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(6));
430 TH1F *gAntiProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(7));
431 TH1F *gAntiProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(8));
432 TH1F *gAntiProtonsSigmaToVertexPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(9));
433 TH1F *gAntiProtonsSigmaToVertexTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(10));
434 TH1F *gAntiProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(11));
435 TH1F *gAntiProtonsDCAXYTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(12));
436 TH1F *gAntiProtonsDCAZPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(13));
437 TH1F *gAntiProtonsDCAZTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(14));
438 TH1F *gAntiProtonsConstrainChi2Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(15));
439 TH1F *gAntiProtonsITSRefitPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(16));
440 TH1F *gAntiProtonsTPCRefitPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(17));
441 TH1F *gAntiProtonsESDpidPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(18));
442 TH1F *gAntiProtonsTPCpidPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(19));
443 TH1F *gAntiProtonsPointOnITSLayer1Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(20));
444 TH1F *gAntiProtonsPointOnITSLayer2Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(21));
445 TH1F *gAntiProtonsPointOnITSLayer3Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(22));
446 TH1F *gAntiProtonsPointOnITSLayer4Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(23));
447 TH1F *gAntiProtonsPointOnITSLayer5Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(24));
448 TH1F *gAntiProtonsPointOnITSLayer6Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(25));
449 TH1F *gAntiProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(26));
450
451 //Rejected antiprotons
452 TList *fQAAntiProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQA->At(4));
453 TH1F *gAntiProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(0));
454 TH1F *gAntiProtonsChi2PerClusterITSReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(1));
455 TH1F *gAntiProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(2));
456 TH1F *gAntiProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(3));
457 TH1F *gAntiProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(4));
458 TH1F *gAntiProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(5));
459 TH1F *gAntiProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(6));
460 TH1F *gAntiProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(7));
461 TH1F *gAntiProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(8));
462 TH1F *gAntiProtonsSigmaToVertexReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(9));
463 TH1F *gAntiProtonsSigmaToVertexTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(10));
464 TH1F *gAntiProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(11));
465 TH1F *gAntiProtonsDCAXYTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(12));
466 TH1F *gAntiProtonsDCAZReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(13));
467 TH1F *gAntiProtonsDCAZTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(14));
468 TH1F *gAntiProtonsConstrainChi2Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(15));
469 TH1F *gAntiProtonsITSRefitReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(16));
470 TH1F *gAntiProtonsTPCRefitReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(17));
471 TH1F *gAntiProtonsESDpidReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(18));
472 TH1F *gAntiProtonsTPCpidReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(19));
473 TH1F *gAntiProtonsPointOnITSLayer1Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(20));
474 TH1F *gAntiProtonsPointOnITSLayer2Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(21));
475 TH1F *gAntiProtonsPointOnITSLayer3Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(22));
476 TH1F *gAntiProtonsPointOnITSLayer4Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(23));
477 TH1F *gAntiProtonsPointOnITSLayer5Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(24));
478 TH1F *gAntiProtonsPointOnITSLayer6Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(25));
479 TH1F *gAntiProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(26));
480
481 //__________________________________________________//
790140ac 482 TCanvas *c1 = new TCanvas("c1","ITS clusters",0,0,600,400);
735cc63d 483 c1->SetFillColor(10); c1->SetHighLightColor(10);
484 c1->Divide(2,1);
485 c1->cd(1); gProtonsITSClustersPass->Draw();
486 gProtonsITSClustersReject->Draw("same");
487 c1->cd(2); gAntiProtonsITSClustersPass->Draw();
488 gAntiProtonsITSClustersReject->Draw("same");
489
790140ac 490 TCanvas *c2 = new TCanvas("c2","chi^2 per ITS cluster",0,100,600,400);
735cc63d 491 c2->SetFillColor(10); c2->SetHighLightColor(10);
492 c2->Divide(2,1);
493 c2->cd(1); gProtonsChi2PerClusterITSPass->Draw();
494 gProtonsChi2PerClusterITSReject->Draw("same");
495 c2->cd(2); gAntiProtonsChi2PerClusterITSPass->Draw();
496 gAntiProtonsChi2PerClusterITSReject->Draw("same");
497
790140ac 498 TCanvas *c3 = new TCanvas("c3","TPC clusters",0,200,600,400);
735cc63d 499 c3->SetFillColor(10); c3->SetHighLightColor(10);
500 c3->Divide(2,1);
501 c3->cd(1); gProtonsTPCClustersPass->Draw();
502 gProtonsTPCClustersReject->Draw("same");
503 c3->cd(2); gAntiProtonsTPCClustersPass->Draw();
504 gAntiProtonsTPCClustersReject->Draw("same");
505
790140ac 506 TCanvas *c4 = new TCanvas("c4","chi^2 per TPC cluster",0,300,600,400);
735cc63d 507 c4->SetFillColor(10); c4->SetHighLightColor(10);
508 c4->Divide(2,1);
509 c4->cd(1); gProtonsChi2PerClusterTPCPass->Draw();
510 gProtonsChi2PerClusterTPCReject->Draw("same");
511 c4->cd(2); gAntiProtonsChi2PerClusterTPCPass->Draw();
512 gAntiProtonsChi2PerClusterTPCReject->Draw("same");
513
37cb8683 514 if(gProtonsExtCov11Pass->GetEntries() != 0) {
515 TCanvas *c5 = new TCanvas("c5","Cov11",0,400,600,400);
516 c5->SetFillColor(10); c5->SetHighLightColor(10);
517 c5->Divide(2,1);
518 c5->cd(1)->SetLogy(); gProtonsExtCov11Pass->Draw();
519 gProtonsExtCov11Reject->Draw("same");
520 c5->cd(2)->SetLogy(); gAntiProtonsExtCov11Pass->Draw();
521 gAntiProtonsExtCov11Reject->Draw("same");
522 }
523
524 if(gProtonsExtCov11Pass->GetEntries() != 0) {
525 TCanvas *c6 = new TCanvas("c6","Cov22",0,500,600,400);
526 c6->SetFillColor(10); c6->SetHighLightColor(10);
527 c6->Divide(2,1);
528 c6->cd(1)->SetLogy(); gProtonsExtCov22Pass->Draw();
529 gProtonsExtCov22Reject->Draw("same");
530 c6->cd(2)->SetLogy(); gAntiProtonsExtCov22Pass->Draw();
531 gAntiProtonsExtCov22Reject->Draw("same");
532 }
533
534 if(gProtonsExtCov11Pass->GetEntries() != 0) {
535 TCanvas *c7 = new TCanvas("c7","Cov33",600,0,600,400);
536 c7->SetFillColor(10); c7->SetHighLightColor(10);
537 c7->Divide(2,1);
538 c7->cd(1)->SetLogy(); gProtonsExtCov33Pass->Draw();
539 gProtonsExtCov33Reject->Draw("same");
540 c7->cd(2)->SetLogy(); gAntiProtonsExtCov33Pass->Draw();
541 gAntiProtonsExtCov33Reject->Draw("same");
542 }
543
544 if(gProtonsExtCov11Pass->GetEntries() != 0) {
545 TCanvas *c8 = new TCanvas("c8","Cov44",600,100,600,400);
546 c8->SetFillColor(10); c8->SetHighLightColor(10);
547 c8->Divide(2,1);
548 c8->cd(1)->SetLogy(); gProtonsExtCov44Pass->Draw();
549 gProtonsExtCov44Reject->Draw("same");
550 c8->cd(2)->SetLogy(); gAntiProtonsExtCov44Pass->Draw();
551 gAntiProtonsExtCov44Reject->Draw("same");
552 }
553
554 if(gProtonsExtCov11Pass->GetEntries() != 0) {
555 TCanvas *c9 = new TCanvas("c9","Cov55",600,200,600,400);
556 c9->SetFillColor(10); c9->SetHighLightColor(10);
557 c9->Divide(2,1);
558 c9->cd(1)->SetLogy(); gProtonsExtCov55Pass->Draw();
559 gProtonsExtCov55Reject->Draw("same");
560 c9->cd(2)->SetLogy(); gAntiProtonsExtCov55Pass->Draw();
561 gAntiProtonsExtCov55Reject->Draw("same");
562 }
563
564 if(gProtonsSigmaToVertexPass->GetEntries() != 0) {
565 TCanvas *c10 = new TCanvas("c10","N-sigma to Vertex",600,300,600,400);
566 c10->SetFillColor(10); c10->SetHighLightColor(10);
567 c10->Divide(2,1);
568 c10->cd(1)->SetLogy(); gProtonsSigmaToVertexPass->Draw();
569 gProtonsSigmaToVertexReject->Draw("same");
570 c10->cd(2)->SetLogy(); gAntiProtonsSigmaToVertexPass->Draw();
571 gAntiProtonsSigmaToVertexReject->Draw("same");
572 }
573
574 if(gProtonsSigmaToVertexTPCPass->GetEntries() != 0) {
575 TCanvas *c11 = new TCanvas("c11","N-sigma to Vertex (TPC)",600,400,600,400);
576 c11->SetFillColor(10); c11->SetHighLightColor(10);
577 c11->Divide(2,1);
578 c11->cd(1)->SetLogy(); gProtonsSigmaToVertexTPCPass->Draw();
579 gProtonsSigmaToVertexTPCReject->Draw("same");
580 c11->cd(2)->SetLogy(); gAntiProtonsSigmaToVertexTPCPass->Draw();
581 gAntiProtonsSigmaToVertexTPCReject->Draw("same");
582 }
583
584 if(gProtonsDCAXYPass->GetEntries() != 0) {
585 TCanvas *c12 = new TCanvas("c12","dca(xy)",600,500,600,400);
586 c12->SetFillColor(10); c12->SetHighLightColor(10);
587 c12->Divide(2,1);
588 c12->cd(1)->SetLogy(); gProtonsDCAXYPass->Draw();
589 gProtonsDCAXYReject->Draw("same");
590 c12->cd(2)->SetLogy(); gAntiProtonsDCAXYPass->Draw();
591 gAntiProtonsDCAXYReject->Draw("same");
592 }
593
594 if(gProtonsDCAXYTPCPass->GetEntries() != 0) {
595 TCanvas *c13 = new TCanvas("c13","dca(xy - TPC)",1200,0,600,400);
596 c13->SetFillColor(10); c13->SetHighLightColor(10);
597 c13->Divide(2,1);
598 c13->cd(1)->SetLogy(); gProtonsDCAXYTPCPass->Draw();
599 gProtonsDCAXYTPCReject->Draw("same");
600 c13->cd(2)->SetLogy(); gAntiProtonsDCAXYTPCPass->Draw();
601 gAntiProtonsDCAXYTPCReject->Draw("same");
602 }
603
604 if(gProtonsDCAZPass->GetEntries() != 0) {
605 TCanvas *c14 = new TCanvas("c14","dca(z)",1200,100,600,400);
606 c14->SetFillColor(10); c14->SetHighLightColor(10);
607 c14->Divide(2,1);
608 c14->cd(1)->SetLogy(); gProtonsDCAZPass->Draw();
609 gProtonsDCAZReject->Draw("same");
610 c14->cd(2)->SetLogy(); gAntiProtonsDCAZPass->Draw();
611 gAntiProtonsDCAZReject->Draw("same");
612 }
613
614 if(gProtonsDCAZTPCPass->GetEntries() != 0) {
615 TCanvas *c15 = new TCanvas("c15","dca(z - TPC)",1200,200,600,400);
616 c15->SetFillColor(10); c15->SetHighLightColor(10);
617 c15->Divide(2,1);
618 c15->cd(1)->SetLogy(); gProtonsDCAZTPCPass->Draw();
619 gProtonsDCAZTPCReject->Draw("same");
620 c15->cd(2)->SetLogy(); gAntiProtonsDCAZTPCPass->Draw();
621 gAntiProtonsDCAZTPCReject->Draw("same");
622 }
735cc63d 623
790140ac 624 TCanvas *c16 = new TCanvas("c16","TPC clusters (dE/dx)",1200,300,600,400);
735cc63d 625 c16->SetFillColor(10); c16->SetHighLightColor(10);
626 c16->Divide(2,1);
627 c16->cd(1); gProtonsNumberOfTPCdEdxPointsPass->Draw();
628 gProtonsNumberOfTPCdEdxPointsReject->Draw("same");
629 c16->cd(2); gAntiProtonsNumberOfTPCdEdxPointsPass->Draw();
630 gAntiProtonsNumberOfTPCdEdxPointsReject->Draw("same");
631
632 //================Vertex QA================//
633 TList *gListVertexQA = dynamic_cast<TList *>(listQA->At(1));
634 TH1F *gHistVx = dynamic_cast<TH1F *>(gListVertexQA->At(0));
635 TH1F *gHistVxAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(1));
636 gHistVxAccepted->SetFillColor(10);
637 TH1F *gHistVy = dynamic_cast<TH1F *>(gListVertexQA->At(2));
638 TH1F *gHistVyAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(3));
639 gHistVyAccepted->SetFillColor(10);
640 TH1F *gHistVz = dynamic_cast<TH1F *>(gListVertexQA->At(4));
641 TH1F *gHistVzAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(5));
642 gHistVzAccepted->SetFillColor(10);
e56f08ed 643 TH1F *gHistNumberOfContributors = dynamic_cast<TH1F *>(gListVertexQA->At(6));
644 gHistNumberOfContributors->SetFillColor(10);
735cc63d 645
790140ac 646 TCanvas *cVertex = new TCanvas("cVertex","Vertex QA",0,0,900,400);
735cc63d 647 cVertex->SetFillColor(10); cVertex->SetHighLightColor(10);
648 cVertex->Divide(3,1);
790140ac 649 cVertex->cd(1)->SetLogy(); gHistVx->Draw(); gHistVxAccepted->Draw("same");
650 cVertex->cd(2)->SetLogy(); gHistVy->Draw(); gHistVyAccepted->Draw("same");
651 cVertex->cd(3)->SetLogy(); gHistVz->Draw(); gHistVzAccepted->Draw("same");
e56f08ed 652
653 TCanvas *cVertexNContributors = new TCanvas("cVertexNContributors",
654 "Vertex QA",0,0,400,400);
655 gHistNumberOfContributors->Draw();
735cc63d 656}
629e3967 657
658//________________________________________________________//
659void PrintYields(TH1 *h) {
660 Double_t sum = 0.0, error = 0.0;
661 for(Int_t iBin = 1; iBin <= h->GetNbinsX(); iBin++) {
662 sum += h->GetBinContent(iBin);
663 error += TMath::Power(h->GetBinError(iBin),2);
664 }
665 error = TMath::Sqrt(error);
666
667 Printf("==================================");
668 Printf("Histogram: %s",h->GetName());
669 Printf("Yields: %lf - %lf",sum,error);
670 Printf("==================================");
671}
7ec0d93f 672
673//___________________________________________________//
674void drawdEdx(TH2F *gHistdEdxP) {
675 //Draws the dE/dx distributions for the different momentum bins
676 TString title;
677 TH1D *gHist[100];
678 Int_t iCounter = 0;
679 Double_t binMin = gHistdEdxP->GetXaxis()->GetXmin();
680 Double_t binMax = gHistdEdxP->GetXaxis()->GetXmin() +
681 (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
682
683 TCanvas *c[100];
684
685 for(Int_t iBin = 1; iBin <= gHistdEdxP->GetNbinsX(); iBin++) {
686 if((binMax > 0.41)&&(binMin < 0.91)) {
687 title = "P: "; title += binMin; title += " - ";
688 title += binMax; title += "GeV/c";
689 c[iCounter] = new TCanvas(title.Data(),title.Data(),0,0,500,500);
690 c[iCounter]->SetFillColor(10); c[iCounter]->SetHighLightColor(10);
691 gHist[iCounter] = gHistdEdxP->ProjectionY(title.Data(),iBin,iBin);
692 gHist[iCounter]->SetTitle(title.Data());
693 gHist[iCounter]->SetStats(kFALSE);
694 if(gHist[iCounter]->GetEntries() != 0)
695 c[iCounter]->SetLogy();
696 gHist[iCounter]->Draw();
697 Printf("Bin: %d - Pmin: %lf - Pmax: %lf : %s",iBin,binMin,binMax,title.Data());
698 iCounter += 1;
699 }
700 binMin += (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
701 binMax += (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
702 }
703
704}