]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/SPECTRA/macros/drawProtonResults.C
Coverity fixes for BUFFER_SIZE
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / drawProtonResults.C
1 void drawProtonResults(const char* analysisOutput = 0x0,
2                        Bool_t kShowResults = kTRUE,
3                        Bool_t kShowQAPlots = kFALSE,
4                        Bool_t kMC = kFALSE) {
5   //Macro to visualize the proton ratio results
6   //It also visualizes the QA plots
7   gStyle->SetPalette(1,0);
8   if(!analysisOutput)
9     Error("drawProtonResults::The analysis output was not defined!!!");
10   if(kShowResults) drawResults(analysisOutput);
11   if(kShowQAPlots) drawQAPlots(analysisOutput, kMC);
12 }
13
14 //___________________________________________________//
15 void drawResults(const char* analysisOutput) {
16   //Draws the main results from the ratio analysis
17   gSystem->Load("libANALYSIS.so");
18   gSystem->Load("libANALYSISalice.so");
19   gSystem->Load("libCORRFW.so");
20   gSystem->Load("libPWG2spectra.so");
21
22   //Create the AliProtonAnalysis object
23   AliProtonAnalysis *analysis = new AliProtonAnalysis();
24   analysis->ReadFromFile(analysisOutput);
25   TH1F *gHistEventStats = dynamic_cast<TH1F *>(analysis->GetEventStatistics());
26
27   TH2D *gHistYPtProtons = dynamic_cast<TH2D *>(analysis->GetProtonYPtHistogram());
28   TH2D *gHistYPtAntiProtons = dynamic_cast<TH2D *>(analysis->GetAntiProtonYPtHistogram());
29
30   TH1D *gHistYProtons = dynamic_cast<TH1D *>(analysis->GetProtonYHistogram());
31   TH1D *gHistYAntiProtons = dynamic_cast<TH1D *>(analysis->GetAntiProtonYHistogram());
32   TH1D *gHistPtProtons = dynamic_cast<TH1D *>(analysis->GetProtonPtHistogram());
33   TH1D *gHistPtAntiProtons = dynamic_cast<TH1D *>(analysis->GetAntiProtonPtHistogram());
34
35   TH1D *gHistYRatio = dynamic_cast<TH1D *>(analysis->GetYRatioHistogram());
36   TH1D *gHistPtRatio = dynamic_cast<TH1D *>(analysis->GetPtRatioHistogram());
37
38   TList *gYRatioInPtBinsList = dynamic_cast<TList *>(analysis->GetYRatioHistogramsInPtBins());
39   drawRatioInPtBins(gYRatioInPtBinsList);
40
41   //==================================================================//
42   TH2F *hEmptyRatio = new TH2F("hEmptyRatio",";;#bar{p}/p",100,-1.1,1.1,100,0.1,1.1);
43   hEmptyRatio->SetStats(kFALSE);
44   hEmptyRatio->GetXaxis()->SetNdivisions(10);
45   hEmptyRatio->GetYaxis()->SetNdivisions(10);
46
47   TLatex *latex = new TLatex();
48   latex->SetTextSize(0.04);
49   latex->SetTextColor(2);
50
51   TF1 *fFitFunction = new TF1("fFitFunction","[0]",-0.5,0.5);
52   fFitFunction->SetParameter(0,0.7);
53
54   TCanvas *c2D = new TCanvas("c2D","eta-pT (anti)protons",0,0,900,400);
55   c2D->SetFillColor(10); c2D->SetHighLightColor(10); c2D->Divide(3,1);
56   c2D->cd(1); gHistYPtProtons->Draw("col");
57   c2D->cd(2); gHistYPtAntiProtons->DrawCopy("col");
58   c2D->cd(3); gHistYPtAntiProtons->Divide(gHistYPtProtons);
59   gHistYPtAntiProtons->SetStats(kFALSE); gHistYPtAntiProtons->DrawCopy("colz");
60   TFile *fout = TFile::Open("test.root","recreate");
61   gHistYPtAntiProtons->SetName("gHistYPtAntiProtons");
62   gHistYPtAntiProtons->Write();
63   fout->Close();
64   TCanvas *cEventStats = new TCanvas("cEventStats","Event statistics",
65                                      0,0,500,500);
66   cEventStats->SetFillColor(10); cEventStats->SetHighLightColor(10);
67   cEventStats->SetLeftMargin(0.15);
68   gHistEventStats->GetYaxis()->SetTitleOffset(1.4);
69   gHistEventStats->SetStats(kFALSE); gHistEventStats->Draw();
70
71   TCanvas *cEta = new TCanvas("cEta","Eta",100,0,600,400);
72   cEta->SetFillColor(10); cEta->SetHighLightColor(10); cEta->Divide(2,1);
73   cEta->cd(1); gHistYProtons->Draw("E"); PrintYields(gHistYProtons);
74   cEta->cd(2); gHistYAntiProtons->Draw("E"); PrintYields(gHistYAntiProtons);
75
76   TCanvas *cPt = new TCanvas("cPt","Pt",100,200,600,400);
77
78   cPt->SetFillColor(10); cPt->SetHighLightColor(10); cPt->Divide(2,1);
79   cPt->cd(1)->SetLogy(); gHistPtProtons->Draw("E");
80   cPt->cd(2)->SetLogy(); gHistPtAntiProtons->Draw("E");
81
82   TCanvas *cRatio = new TCanvas("cRatio","Ratio",300,0,600,400);
83   cRatio->SetFillColor(10); cRatio->SetHighLightColor(10); cRatio->Divide(2,1);
84   cRatio->cd(1); hEmptyRatio->GetXaxis()->SetTitle("#eta"); 
85   hEmptyRatio->GetXaxis()->SetRangeUser(-1.0,1.0); 
86   hEmptyRatio->DrawCopy(); gHistYRatio->Draw("ESAME");
87   gHistYRatio->Fit("fFitFunction","N");
88   latex->DrawLatex(-0.1,0.45,"ALICE PRELIMINARY");
89   latex->DrawLatex(-0.1,0.4,"p-p: #sqrt{s} = 900 GeV");
90   cRatio->cd(2);  hEmptyRatio->GetXaxis()->SetTitle("P_{T} [GeV/c]"); 
91   hEmptyRatio->GetXaxis()->SetRangeUser(0.3,1.1); 
92   hEmptyRatio->DrawCopy(); gHistPtRatio->Draw("ESAME");
93   latex->DrawLatex(0.6,0.45,"ALICE PRELIMINARY");
94   latex->DrawLatex(0.6,0.4,"p-p: #sqrt{s} = 900 GeV");
95
96   TFile *fout = TFile::Open("RawRatioPlots.root","recreate");
97   gHistYRatio->Write();
98   gHistPtRatio->Write();
99   fout->Close();
100
101   Printf("==========================================");
102   for(Int_t iBin = 1; iBin <= gHistYRatio->GetNbinsX(); iBin++)
103     Printf("Eta: %lf - Ratio: %lf - Error: %lf",
104            gHistYRatio->GetBinCenter(iBin),
105            gHistYRatio->GetBinContent(iBin),
106            gHistYRatio->GetBinError(iBin));
107   Printf("==========================================");
108
109   Printf("Fit result: %lf - %lf",fFitFunction->GetParameter(0),fFitFunction->GetParError(0));
110   analysis->PrintMean(gHistYRatio,0.5);
111   Printf("==========================================");
112 }
113
114 //___________________________________________________//
115 void drawRatioInPtBins(TList *gYRatioInPtBinsList) {
116   Printf("drawRatioInPtBins:: %d entries",gYRatioInPtBinsList->GetEntries());
117   static const Int_t nEntries = gYRatioInPtBinsList->GetEntries();
118   TCanvas *cRatioInPtBins[100];
119   TH1D *gHistRatioInPtBins[100];
120   TString title;
121   for(Int_t iEntry = 0; iEntry < gYRatioInPtBinsList->GetEntries(); iEntry++) {
122     title = "ratioPtBin"; title += iEntry+1;
123     cRatioInPtBins[iEntry] = new TCanvas(title.Data(),
124                                          title.Data(),
125                                          0,0,400,400);
126     cRatioInPtBins[iEntry]->SetFillColor(10);
127     cRatioInPtBins[iEntry]->SetHighLightColor(10);
128     gHistRatioInPtBins[iEntry] = dynamic_cast<TH1D *>(gYRatioInPtBinsList->At(iEntry));
129     gHistRatioInPtBins[iEntry]->SetStats(kFALSE);
130     gHistRatioInPtBins[iEntry]->SetMarkerStyle(20);
131     gHistRatioInPtBins[iEntry]->SetMarkerColor(4);
132     gHistRatioInPtBins[iEntry]->GetYaxis()->SetRangeUser(0.0,1.4);
133     gHistRatioInPtBins[iEntry]->DrawCopy("E");
134   }
135 }
136
137 //___________________________________________________//
138 void drawQAPlots(const char* analysisOutput,
139                  Bool_t kMC) {
140   //Draws the QA plots from the output of the analysis
141   //=========================================================//
142   //QA plots
143   TFile *f = TFile::Open(analysisOutput);
144   //List of cuts
145   TCanvas *cListOfCuts = dynamic_cast<TCanvas *>(f->Get("cListOfCuts"));
146   if(cListOfCuts)
147     cListOfCuts->Draw();
148
149   TList *listQA = dynamic_cast<TList *>(f->Get("outputQAList"));
150   TList *gListGlobalQA = dynamic_cast<TList *>(listQA->At(0));
151
152   //================QA plots================//
153   TList *fQA2DList = dynamic_cast<TList *>(gListGlobalQA->At(0));
154   //2D de/dx vs P
155   TH2F *gHistdEdxP = dynamic_cast<TH2F *>(fQA2DList->At(0));
156   gHistdEdxP->SetStats(kFALSE);
157   drawdEdx(gHistdEdxP,0);
158   TH2F *gHistProtonsdEdxP = dynamic_cast<TH2F *>(fQA2DList->At(1));
159   gHistProtonsdEdxP->SetStats(kFALSE);
160
161   //Theoretical Bethe-Bloch
162   Double_t fAlephParameters[5];
163   if(kMC) {
164     fAlephParameters[0] = 2.15898e+00/50.;
165     fAlephParameters[1] = 1.75295e+01;
166     fAlephParameters[2] = 3.40030e-09;
167     fAlephParameters[3] = 1.96178e+00;
168     fAlephParameters[4] = 3.91720e+00;
169   }
170   else {
171     fAlephParameters[0] = 0.0283086;
172     fAlephParameters[1] = 2.63394e+01;
173     fAlephParameters[2] = 5.04114e-11;
174     fAlephParameters[3] = 2.12543e+00;
175     fAlephParameters[4] = 4.88663e+00;
176   }
177
178   AliTPCPIDResponse *tpcResponse = new AliTPCPIDResponse();
179   tpcResponse->SetBetheBlochParameters(fAlephParameters[0],
180                                        fAlephParameters[1],
181                                        fAlephParameters[2],
182                                        fAlephParameters[3],
183                                        fAlephParameters[4]);
184   const Int_t nEntries = 10000;
185   Double_t mom[nEntries];
186   Double_t dEdxElectrons[nEntries];
187   Double_t dEdxMuons[nEntries];
188   Double_t dEdxPions[nEntries];
189   Double_t dEdxKaons[nEntries];
190   Double_t dEdxProtons[nEntries];
191   for(Int_t i = 0; i < nEntries; i++) {
192     mom[i] = 0.01 + 0.01*i;
193     dEdxElectrons[i] = tpcResponse->GetExpectedSignal(mom[i],0);
194     dEdxMuons[i] = tpcResponse->GetExpectedSignal(mom[i],1);
195     dEdxPions[i] = tpcResponse->GetExpectedSignal(mom[i],2);
196     dEdxKaons[i] = tpcResponse->GetExpectedSignal(mom[i],3);
197     dEdxProtons[i] = tpcResponse->GetExpectedSignal(mom[i],4);
198   }
199
200   TGraph *grElectrons = new TGraph(nEntries,mom,dEdxElectrons);
201   grElectrons->SetName("grElectrons");
202   grElectrons->SetLineColor(6); grElectrons->SetLineWidth(2);
203   TGraph *grMuons = new TGraph(nEntries,mom,dEdxMuons);
204   grMuons->SetLineColor(3); grMuons->SetLineWidth(2);
205   grMuons->SetName("grMuons");
206   TGraph *grPions = new TGraph(nEntries,mom,dEdxPions);
207   grPions->SetLineColor(1); grPions->SetLineWidth(2);
208   grPions->SetName("grPions");
209   TGraph *grKaons = new TGraph(nEntries,mom,dEdxKaons);
210   grKaons->SetLineColor(2); grKaons->SetLineWidth(2);
211   grKaons->SetName("grKaons");
212   TGraph *grProtons = new TGraph(nEntries,mom,dEdxProtons);
213   grProtons->SetLineColor(4); grProtons->SetLineWidth(2);
214   grProtons->SetName("grProtons");
215
216   //2D de/dx vs P
217   TH2F *gHistZP = dynamic_cast<TH2F *>(fQA2DList->At(2));
218   gHistZP->SetStats(kFALSE);
219   drawdEdx(gHistZP,1);
220   TH2F *gHistProtonsZP = dynamic_cast<TH2F *>(fQA2DList->At(3));
221   gHistProtonsZP->SetStats(kFALSE);
222
223   //3D eta-phi-NPoints(dEdx)
224   TH3F *gHistEtaPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(4));
225   TH2D *gHistEtaPhi = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("yx");
226   gHistEtaPhi->SetStats(kFALSE);
227   TH2D *gHistEtaTPCdEdxNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("zx");
228   gHistEtaTPCdEdxNPoints->SetStats(kFALSE);
229   TH2D *gHistPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCdEdxNPoints->Project3D("zy");
230   gHistPhiTPCdEdxNPoints->SetStats(kFALSE);
231
232   //3D eta-phi-NPoints(dEdx): protons
233   TH3F *gHistProtonsEtaPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(5));
234   TH2D *gHistProtonsEtaPhi = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("yx");
235   gHistProtonsEtaPhi->SetStats(kFALSE);
236   TH2D *gHistProtonsEtaTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("zx");
237   gHistProtonsEtaTPCdEdxNPoints->SetStats(kFALSE);
238   TH2D *gHistProtonsPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCdEdxNPoints->Project3D("zy");
239   gHistProtonsPhiTPCdEdxNPoints->SetStats(kFALSE);
240
241   //3D eta-phi-NPoints
242   TH3F *gHistEtaPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(6));
243   TH2D *gHistEtaPhi = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("yx");
244   gHistEtaPhi->SetStats(kFALSE);
245   TH2D *gHistEtaTPCNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("zx");
246   gHistEtaTPCNPoints->SetStats(kFALSE);
247   TH2D *gHistPhiTPCNPoints = dynamic_cast<TH2D *>gHistEtaPhiTPCNPoints->Project3D("zy");
248   gHistPhiTPCNPoints->SetStats(kFALSE);
249
250   //3D eta-phi-NPoints: protons
251   TH3F *gHistProtonsEtaPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(7));
252   TH2D *gHistProtonsEtaPhi = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("yx");
253   gHistProtonsEtaPhi->SetStats(kFALSE);
254   TH2D *gHistProtonsEtaTPCNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("zx");
255   gHistProtonsEtaTPCNPoints->SetStats(kFALSE);
256   TH2D *gHistProtonsPhiTPCNPoints = dynamic_cast<TH2D *>gHistProtonsEtaPhiTPCNPoints->Project3D("zy");
257   gHistProtonsPhiTPCNPoints->SetStats(kFALSE);
258
259   //3D pt-phi-NPoints(dEdx)
260   TH3F *gHistPtPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(8));
261   TH2D *gHistPtPhi = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("yx");
262   gHistPtPhi->SetStats(kFALSE);
263   TH2D *gHistPtTPCdEdxNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("zx");
264   gHistPtTPCdEdxNPoints->SetStats(kFALSE);
265   TH2D *gHistPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCdEdxNPoints->Project3D("zy");
266   gHistPhiTPCdEdxNPoints->SetStats(kFALSE);
267
268   //3D pt-phi-NPoints(dEdx): protons
269   TH3F *gHistProtonsPtPhiTPCdEdxNPoints = dynamic_cast<TH3F *>(fQA2DList->At(9));
270   TH2D *gHistProtonsPtPhi = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("yx");
271   gHistProtonsPtPhi->SetStats(kFALSE);
272   TH2D *gHistProtonsPtTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("zx");
273   gHistProtonsPtTPCdEdxNPoints->SetStats(kFALSE);
274   TH2D *gHistProtonsPhiTPCdEdxNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCdEdxNPoints->Project3D("zy");
275   gHistProtonsPhiTPCdEdxNPoints->SetStats(kFALSE);
276
277   //3D pt-phi-NPoints
278   TH3F *gHistPtPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(10));
279   TH2D *gHistPtPhi = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("yx");
280   gHistPtPhi->SetStats(kFALSE);
281   TH2D *gHistPtTPCNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("zx");
282   gHistPtTPCNPoints->SetStats(kFALSE);
283   TH2D *gHistPhiTPCNPoints = dynamic_cast<TH2D *>gHistPtPhiTPCNPoints->Project3D("zy");
284   gHistPhiTPCNPoints->SetStats(kFALSE);
285
286   //3D pt-phi-NPoints: protons
287   TH3F *gHistProtonsPtPhiTPCNPoints = dynamic_cast<TH3F *>(fQA2DList->At(11));
288   TH2D *gHistProtonsPtPhi = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("yx");
289   gHistProtonsPtPhi->SetStats(kFALSE);
290   TH2D *gHistProtonsPtTPCNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("zx");
291   gHistProtonsPtTPCNPoints->SetStats(kFALSE);
292   TH2D *gHistProtonsPhiTPCNPoints = dynamic_cast<TH2D *>gHistProtonsPtPhiTPCNPoints->Project3D("zy");
293   gHistProtonsPhiTPCNPoints->SetStats(kFALSE);
294
295   //2D eta-phi- accepted protons & antiprotons
296   TH2F *gHistEtaPhiProtons = dynamic_cast<TH2F *>(fQA2DList->At(12));
297   gHistEtaPhiProtons->SetStats(kFALSE);
298   TH2F *gHistEtaPhiAntiProtons = dynamic_cast<TH2F *>(fQA2DList->At(13));
299   gHistEtaPhiAntiProtons->SetStats(kFALSE);
300
301   //2D dca vs pT - accepted protons & antiprotons
302   TH3F *gHistDCAxyEtaPtProtons = dynamic_cast<TH3F *>(fQA2DList->At(14));
303   gHistDCAxyEtaPtProtons->SetStats(kFALSE);
304   TH2D *gHistDCAxyPtProtons = gHistDCAxyEtaPtProtons->Project3D("zy");
305   gHistDCAxyPtProtons->SetStats(kFALSE);
306   TH3F *gHistDCAzEtaPtProtons = dynamic_cast<TH3F *>(fQA2DList->At(15));
307   gHistDCAzEtaPtProtons->SetStats(kFALSE);
308   TH2D *gHistDCAzPtProtons = gHistDCAzEtaPtProtons->Project3D("zy");
309   gHistDCAzPtProtons->SetStats(kFALSE);
310   TH3F *gHistDCAxyEtaPtAntiProtons = dynamic_cast<TH3F *>(fQA2DList->At(16));
311   gHistDCAxyEtaPtAntiProtons->SetStats(kFALSE);
312   TH2D *gHistDCAxyPtAntiProtons = gHistDCAxyEtaPtAntiProtons->Project3D("zy");
313   gHistDCAxyPtAntiProtons->SetStats(kFALSE);
314   TH3F *gHistDCAzEtaPtAntiProtons = dynamic_cast<TH3F *>(fQA2DList->At(17));
315   gHistDCAzEtaPtAntiProtons->SetStats(kFALSE);
316   TH2D *gHistDCAzPtAntiProtons = gHistDCAzEtaPtAntiProtons->Project3D("zy");
317   gHistDCAzPtAntiProtons->SetStats(kFALSE);
318
319   //__________________________________________________//
320   TH2F *hEmptydEdx = new TH2F("hEmptydEdx",
321                               ";p [GeV/c];dE/dx [arb. units]",
322                               100,0.08,20.,100,30,1000);
323   hEmptydEdx->SetStats(kFALSE);
324
325   TLatex *latex = new TLatex();
326   latex->SetTextSize(0.035);
327
328   TCanvas *cdEdx = new TCanvas("cdEdx","dE/dx (TPC)",0,0,700,400);
329   cdEdx->SetFillColor(10); cdEdx->SetHighLightColor(10); //cdEdx->Divide(2,1);
330   cdEdx->cd(1)->SetLogx(); cdEdx->cd(1)->SetLogy(); hEmptydEdx->DrawCopy();
331   gHistdEdxP->Draw("colsame");
332   latex->DrawLatex(7.,400,"ALICE");
333   latex->DrawLatex(6.,400,"p+p @ #sqrt{s} = 900 GeV");
334   grElectrons->Draw("LSAME"); latex->SetTextColor(6); latex->DrawLatex(0.09,55,"e");
335   grMuons->Draw("LSAME"); latex->SetTextColor(3); latex->DrawLatex(0.09,400,"#mu");
336   grPions->Draw("LSAME"); latex->SetTextColor(1); latex->DrawLatex(0.1,200,"#pi");
337   grKaons->Draw("LSAME"); latex->SetTextColor(2); latex->DrawLatex(0.17,400,"K");
338   grProtons->Draw("LSAME"); latex->SetTextColor(4); latex->DrawLatex(0.35,400,"p");
339   
340   //cdEdx->cd(2)->SetLogx(); gHistProtonsdEdxP->Draw("col");
341
342   TCanvas *cZdEdx = new TCanvas("cZdEdx","Normalized dE/dx (TPC)",500,0,700,400);
343   cZdEdx->SetFillColor(10); cZdEdx->SetHighLightColor(10); cZdEdx->Divide(2,1);
344   cZdEdx->cd(1); gHistZP->Draw("col");
345   cZdEdx->cd(2); gHistProtonsZP->Draw("col");
346
347   TCanvas *cEtaPhi = new TCanvas("cEtaPhi",
348                                  "eta-phi",
349                                  0,0,700,400);
350   cEtaPhi->SetFillColor(10); 
351   cEtaPhi->SetHighLightColor(10); cEtaPhi->Divide(2,1);
352   cEtaPhi->cd(1); 
353   gHistEtaPhiProtons->SetTitle("Accepted protons - eta vs phi");
354   gHistEtaPhiProtons->Draw("colz");
355   cEtaPhi->cd(2); 
356   gHistEtaPhiAntiProtons->SetTitle("Accepted antiprotons - eta vs phi");
357   gHistEtaPhiAntiProtons->Draw("colz");
358
359   TCanvas *cDCAPt = new TCanvas("cDCAPt","pT-dca",0,0,700,700);
360   cDCAPt->SetFillColor(10); 
361   cDCAPt->SetHighLightColor(10); cDCAPt->Divide(2,2);
362   cDCAPt->cd(1); 
363   gHistDCAxyPtProtons->SetTitle("Accepted protons - dca(xy) vs Pt");
364   gHistDCAxyPtProtons->Draw("colz");
365   cDCAPt->cd(2); 
366   gHistDCAzPtProtons->SetTitle("Accepted protons - dca(z) vs Pt");
367   gHistDCAzPtProtons->Draw("colz");
368   cDCAPt->cd(3); 
369   gHistDCAxyPtAntiProtons->SetTitle("Accepted antiprotons - dca(xy) vs Pt");
370   gHistDCAxyPtAntiProtons->Draw("colz");
371   cDCAPt->cd(4); 
372   gHistDCAzPtAntiProtons->SetTitle("Accepted antiprotons - dca(z) vs Pt");
373   gHistDCAzPtAntiProtons->Draw("colz");
374
375   /*TCanvas *cEtaPhiNPointsdEdx = new TCanvas("cEtaPhiNPointsdEdx",
376                                             "eta-phi-NPoints(dE/dx)",
377                                             0,0,900,600);
378   cEtaPhiNPointsdEdx->SetFillColor(10); 
379   cEtaPhiNPointsdEdx->SetHighLightColor(10); cEtaPhiNPointsdEdx->Divide(3,2);
380   cEtaPhiNPointsdEdx->cd(1); gHistEtaPhi->Draw("col");
381   cEtaPhiNPointsdEdx->cd(2); gHistEtaTPCdEdxNPoints->Draw("col");
382   cEtaPhiNPointsdEdx->cd(3); gHistPhiTPCdEdxNPoints->Draw("col");
383   cEtaPhiNPointsdEdx->cd(4); gHistProtonsEtaPhi->Draw("col");
384   cEtaPhiNPointsdEdx->cd(5); gHistProtonsEtaTPCdEdxNPoints->Draw("col");
385   cEtaPhiNPointsdEdx->cd(6); gHistProtonsPhiTPCdEdxNPoints->Draw("col");
386
387   TCanvas *cEtaPhiNPoints = new TCanvas("cEtaPhiNPoints",
388                                         "eta-phi-NPoints",
389                                         0,0,900,600);
390   cEtaPhiNPoints->SetFillColor(10); 
391   cEtaPhiNPoints->SetHighLightColor(10); cEtaPhiNPoints->Divide(3,2);
392   cEtaPhiNPoints->cd(1); gHistEtaPhi->Draw("col");
393   cEtaPhiNPoints->cd(2); gHistEtaTPCNPoints->Draw("col");
394   cEtaPhiNPoints->cd(3); gHistPhiTPCNPoints->Draw("col");
395   cEtaPhiNPoints->cd(4); gHistProtonsEtaPhi->Draw("col");
396   cEtaPhiNPoints->cd(5); gHistProtonsEtaTPCNPoints->Draw("col");
397   cEtaPhiNPoints->cd(6); gHistProtonsPhiTPCNPoints->Draw("col");
398
399   TCanvas *cPtPhiNPointsdEdx = new TCanvas("cPtPhiNPointsdEdx",
400                                            "pt-phi-NPoints(dE/dx)",
401                                            0,0,900,600);
402   cPtPhiNPointsdEdx->SetFillColor(10); 
403   cPtPhiNPointsdEdx->SetHighLightColor(10); cPtPhiNPointsdEdx->Divide(3,2);
404   cPtPhiNPointsdEdx->cd(1); gHistPtPhi->Draw("col");
405   cPtPhiNPointsdEdx->cd(2); gHistPtTPCdEdxNPoints->Draw("col");
406   cPtPhiNPointsdEdx->cd(3); gHistPhiTPCdEdxNPoints->Draw("col");
407   cPtPhiNPointsdEdx->cd(4); gHistProtonsPtPhi->Draw("col");
408   cPtPhiNPointsdEdx->cd(5); gHistProtonsPtTPCdEdxNPoints->Draw("col");
409   cPtPhiNPointsdEdx->cd(6); gHistProtonsPhiTPCdEdxNPoints->Draw("col");
410
411   TCanvas *cPtPhiNPoints = new TCanvas("cPtPhiNPoints",
412                                        "pt-phi-NPoints",
413                                        0,0,900,600);
414   cPtPhiNPoints->SetFillColor(10); 
415   cPtPhiNPoints->SetHighLightColor(10); cPtPhiNPoints->Divide(3,2);
416   cPtPhiNPoints->cd(1); gHistPtPhi->Draw("col");
417   cPtPhiNPoints->cd(2); gHistPtTPCNPoints->Draw("col");
418   cPtPhiNPoints->cd(3); gHistPhiTPCNPoints->Draw("col");
419   cPtPhiNPoints->cd(4); gHistProtonsPtPhi->Draw("col");
420   cPtPhiNPoints->cd(5); gHistProtonsPtTPCNPoints->Draw("col");
421   cPtPhiNPoints->cd(6); gHistProtonsPhiTPCNPoints->Draw("col");*/
422
423   //Accepted protons
424   TList *fQAProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQA->At(1));
425   TH1F *gProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(0));
426   TH1F *gProtonsChi2PerClusterITSPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(1));
427   TH1F *gProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(2));
428   TH1F *gProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(3));
429   TH1F *gProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(4));
430   TH1F *gProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(5));
431   TH1F *gProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(6));
432   TH1F *gProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(7));
433   TH1F *gProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(8));
434   TH1F *gProtonsSigmaToVertexPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(9));
435   TH1F *gProtonsSigmaToVertexTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(10));
436   TH1F *gProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(11));
437   TH1F *gProtonsDCAXYTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(12));
438   TH1F *gProtonsDCAZPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(13));
439   TH1F *gProtonsDCAZTPCPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(14));
440   TH1F *gProtonsConstrainChi2Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(15));
441   TH1F *gProtonsITSRefitPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(16));
442   TH1F *gProtonsTPCRefitPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(17));
443   TH1F *gProtonsESDpidPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(18));
444   TH1F *gProtonsTPCpidPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(19));
445   TH1F *gProtonsPointOnITSLayer1Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(20));
446   TH1F *gProtonsPointOnITSLayer2Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(21));
447   TH1F *gProtonsPointOnITSLayer3Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(22));
448   TH1F *gProtonsPointOnITSLayer4Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(23));
449   TH1F *gProtonsPointOnITSLayer5Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(24));
450   TH1F *gProtonsPointOnITSLayer6Pass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(25));
451   TH1F *gProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(26));
452   TH1F *gProtonsITSClusterMapPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(27));
453   TH1F *gProtonsDCA3DPass = dynamic_cast<TH1F *>(fQAProtonsAcceptedList->At(28));
454
455   //Rejected protons
456   TList *fQAProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQA->At(2));
457   TH1F *gProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(0));
458   TH1F *gProtonsChi2PerClusterITSReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(1));
459   TH1F *gProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(2));
460   TH1F *gProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(3));
461   TH1F *gProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(4));
462   TH1F *gProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(5));
463   TH1F *gProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(6));
464   TH1F *gProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(7));
465   TH1F *gProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(8));
466   TH1F *gProtonsSigmaToVertexReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(9));
467   TH1F *gProtonsSigmaToVertexTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(10));
468   TH1F *gProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(11));
469   TH1F *gProtonsDCAXYTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(12));
470   TH1F *gProtonsDCAZReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(13));
471   TH1F *gProtonsDCAZTPCReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(14));
472   TH1F *gProtonsConstrainChi2Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(15));
473   TH1F *gProtonsITSRefitReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(16));
474   TH1F *gProtonsTPCRefitReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(17));
475   TH1F *gProtonsESDpidReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(18));
476   TH1F *gProtonsTPCpidReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(19));
477   TH1F *gProtonsPointOnITSLayer1Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(20));
478   TH1F *gProtonsPointOnITSLayer2Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(21));
479   TH1F *gProtonsPointOnITSLayer3Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(22));
480   TH1F *gProtonsPointOnITSLayer4Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(23));
481   TH1F *gProtonsPointOnITSLayer5Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(24));
482   TH1F *gProtonsPointOnITSLayer6Reject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(25));
483   TH1F *gProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(26));
484   TH1F *gProtonsITSClusterMapReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(27));
485   TH1F *gProtonsDCA3DReject = dynamic_cast<TH1F *>(fQAProtonsRejectedList->At(28));
486
487   //Accepted antiprotons
488   TList *fQAAntiProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQA->At(3));
489   TH1F *gAntiProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(0));
490   TH1F *gAntiProtonsChi2PerClusterITSPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(1));
491   TH1F *gAntiProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(2));
492   TH1F *gAntiProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(3));
493   TH1F *gAntiProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(4));
494   TH1F *gAntiProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(5));
495   TH1F *gAntiProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(6));
496   TH1F *gAntiProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(7));
497   TH1F *gAntiProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(8));
498   TH1F *gAntiProtonsSigmaToVertexPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(9));
499   TH1F *gAntiProtonsSigmaToVertexTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(10));
500   TH1F *gAntiProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(11));
501   TH1F *gAntiProtonsDCAXYTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(12));
502   TH1F *gAntiProtonsDCAZPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(13));
503   TH1F *gAntiProtonsDCAZTPCPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(14));
504   TH1F *gAntiProtonsConstrainChi2Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(15));
505   TH1F *gAntiProtonsITSRefitPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(16));
506   TH1F *gAntiProtonsTPCRefitPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(17));
507   TH1F *gAntiProtonsESDpidPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(18));
508   TH1F *gAntiProtonsTPCpidPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(19));
509   TH1F *gAntiProtonsPointOnITSLayer1Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(20));
510   TH1F *gAntiProtonsPointOnITSLayer2Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(21));
511   TH1F *gAntiProtonsPointOnITSLayer3Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(22));
512   TH1F *gAntiProtonsPointOnITSLayer4Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(23));
513   TH1F *gAntiProtonsPointOnITSLayer5Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(24));
514   TH1F *gAntiProtonsPointOnITSLayer6Pass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(25));
515   TH1F *gAntiProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(26));
516   TH1F *gAntiProtonsITSClusterMapPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(27));
517   TH1F *gAntiProtonsDCA3DPass = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(28));
518
519   //Rejected antiprotons
520   TList *fQAAntiProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQA->At(4));
521   TH1F *gAntiProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(0));
522   TH1F *gAntiProtonsChi2PerClusterITSReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(1));
523   TH1F *gAntiProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(2));
524   TH1F *gAntiProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(3));
525   TH1F *gAntiProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(4));
526   TH1F *gAntiProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(5));
527   TH1F *gAntiProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(6));
528   TH1F *gAntiProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(7));
529   TH1F *gAntiProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(8));
530   TH1F *gAntiProtonsSigmaToVertexReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(9));
531   TH1F *gAntiProtonsSigmaToVertexTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(10));
532   TH1F *gAntiProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(11));
533   TH1F *gAntiProtonsDCAXYTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(12));
534   TH1F *gAntiProtonsDCAZReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(13));
535   TH1F *gAntiProtonsDCAZTPCReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(14));
536   TH1F *gAntiProtonsConstrainChi2Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(15));
537   TH1F *gAntiProtonsITSRefitReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(16));
538   TH1F *gAntiProtonsTPCRefitReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(17));
539   TH1F *gAntiProtonsESDpidReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(18));
540   TH1F *gAntiProtonsTPCpidReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(19));
541   TH1F *gAntiProtonsPointOnITSLayer1Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(20));
542   TH1F *gAntiProtonsPointOnITSLayer2Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(21));
543   TH1F *gAntiProtonsPointOnITSLayer3Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(22));
544   TH1F *gAntiProtonsPointOnITSLayer4Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(23));
545   TH1F *gAntiProtonsPointOnITSLayer5Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(24));
546   TH1F *gAntiProtonsPointOnITSLayer6Reject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(25));
547   TH1F *gAntiProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(26));
548   TH1F *gAntiProtonsITSClusterMapReject = dynamic_cast<TH1F *>(fQAAntiProtonsRejectedList->At(27));
549   TH1F *gAntiProtonsDCA3DReject = dynamic_cast<TH1F *>(fQAAntiProtonsAcceptedList->At(28));
550
551   //__________________________________________________//
552   TCanvas *c1 = new TCanvas("c1","ITS clusters",0,0,600,400);
553   c1->SetFillColor(10); c1->SetHighLightColor(10);
554   c1->Divide(2,1);
555   c1->cd(1); gProtonsITSClustersPass->Draw(); 
556   gProtonsITSClustersReject->Draw("same");
557   c1->cd(2); gAntiProtonsITSClustersPass->Draw(); 
558   gAntiProtonsITSClustersReject->Draw("same");
559
560   TCanvas *c2 = new TCanvas("c2","chi^2 per ITS cluster",0,100,600,400);
561   c2->SetFillColor(10); c2->SetHighLightColor(10);
562   c2->Divide(2,1);
563   c2->cd(1); gProtonsChi2PerClusterITSPass->Draw(); 
564   gProtonsChi2PerClusterITSReject->Draw("same");
565   c2->cd(2); gAntiProtonsChi2PerClusterITSPass->Draw(); 
566   gAntiProtonsChi2PerClusterITSReject->Draw("same");
567
568   TCanvas *c3 = new TCanvas("c3","TPC clusters",0,200,600,400);
569   c3->SetFillColor(10); c3->SetHighLightColor(10);
570   c3->Divide(2,1);
571   c3->cd(1); gProtonsTPCClustersPass->Draw();
572   gProtonsTPCClustersReject->Draw("same");
573   c3->cd(2); gAntiProtonsTPCClustersPass->Draw();
574   gAntiProtonsTPCClustersReject->Draw("same");
575
576   TCanvas *c4 = new TCanvas("c4","chi^2 per TPC cluster",0,300,600,400);
577   c4->SetFillColor(10); c4->SetHighLightColor(10);
578   c4->Divide(2,1);
579   c4->cd(1); gProtonsChi2PerClusterTPCPass->Draw(); 
580   gProtonsChi2PerClusterTPCReject->Draw("same");
581   c4->cd(2); gAntiProtonsChi2PerClusterTPCPass->Draw(); 
582   gAntiProtonsChi2PerClusterTPCReject->Draw("same");
583
584   if(gProtonsExtCov11Pass->GetEntries() != 0) {
585     TCanvas *c5 = new TCanvas("c5","Cov11",0,400,600,400);
586     c5->SetFillColor(10); c5->SetHighLightColor(10);
587     c5->Divide(2,1);
588     c5->cd(1)->SetLogy(); gProtonsExtCov11Pass->Draw(); 
589     gProtonsExtCov11Reject->Draw("same");
590     c5->cd(2)->SetLogy(); gAntiProtonsExtCov11Pass->Draw(); 
591     gAntiProtonsExtCov11Reject->Draw("same");
592   }
593
594   if(gProtonsExtCov11Pass->GetEntries() != 0) {
595     TCanvas *c6 = new TCanvas("c6","Cov22",0,500,600,400);
596     c6->SetFillColor(10); c6->SetHighLightColor(10);
597     c6->Divide(2,1);
598     c6->cd(1)->SetLogy(); gProtonsExtCov22Pass->Draw(); 
599     gProtonsExtCov22Reject->Draw("same");
600     c6->cd(2)->SetLogy(); gAntiProtonsExtCov22Pass->Draw(); 
601     gAntiProtonsExtCov22Reject->Draw("same");
602   }
603
604   if(gProtonsExtCov11Pass->GetEntries() != 0) {
605     TCanvas *c7 = new TCanvas("c7","Cov33",600,0,600,400);
606     c7->SetFillColor(10); c7->SetHighLightColor(10);
607     c7->Divide(2,1);
608     c7->cd(1)->SetLogy(); gProtonsExtCov33Pass->Draw(); 
609     gProtonsExtCov33Reject->Draw("same");
610     c7->cd(2)->SetLogy(); gAntiProtonsExtCov33Pass->Draw(); 
611     gAntiProtonsExtCov33Reject->Draw("same");
612   }
613
614   if(gProtonsExtCov11Pass->GetEntries() != 0) {
615     TCanvas *c8 = new TCanvas("c8","Cov44",600,100,600,400);
616     c8->SetFillColor(10); c8->SetHighLightColor(10);
617     c8->Divide(2,1);
618     c8->cd(1)->SetLogy(); gProtonsExtCov44Pass->Draw(); 
619     gProtonsExtCov44Reject->Draw("same");
620     c8->cd(2)->SetLogy(); gAntiProtonsExtCov44Pass->Draw(); 
621     gAntiProtonsExtCov44Reject->Draw("same");
622   }
623
624   if(gProtonsExtCov11Pass->GetEntries() != 0) {
625     TCanvas *c9 = new TCanvas("c9","Cov55",600,200,600,400);
626     c9->SetFillColor(10); c9->SetHighLightColor(10);
627     c9->Divide(2,1);
628     c9->cd(1)->SetLogy(); gProtonsExtCov55Pass->Draw(); 
629     gProtonsExtCov55Reject->Draw("same");
630     c9->cd(2)->SetLogy(); gAntiProtonsExtCov55Pass->Draw(); 
631     gAntiProtonsExtCov55Reject->Draw("same");
632   }
633
634   if(gProtonsSigmaToVertexPass->GetEntries() != 0) {
635     TCanvas *c10 = new TCanvas("c10","N-sigma to Vertex",600,300,600,400);
636     c10->SetFillColor(10); c10->SetHighLightColor(10);
637     c10->Divide(2,1);
638     c10->cd(1)->SetLogy(); gProtonsSigmaToVertexPass->Draw(); 
639     gProtonsSigmaToVertexReject->Draw("same");
640     c10->cd(2)->SetLogy(); gAntiProtonsSigmaToVertexPass->Draw(); 
641     gAntiProtonsSigmaToVertexReject->Draw("same");
642   }
643
644   if(gProtonsSigmaToVertexTPCPass->GetEntries() != 0) {
645     TCanvas *c11 = new TCanvas("c11","N-sigma to Vertex (TPC)",600,400,600,400);
646     c11->SetFillColor(10); c11->SetHighLightColor(10);
647     c11->Divide(2,1);
648     c11->cd(1)->SetLogy(); gProtonsSigmaToVertexTPCPass->Draw(); 
649     gProtonsSigmaToVertexTPCReject->Draw("same");
650     c11->cd(2)->SetLogy(); gAntiProtonsSigmaToVertexTPCPass->Draw(); 
651     gAntiProtonsSigmaToVertexTPCReject->Draw("same");
652   }
653
654   if(gProtonsDCAXYPass->GetEntries() != 0) {
655     TCanvas *c12 = new TCanvas("c12","dca(xy)",600,500,600,400);
656     c12->SetFillColor(10); c12->SetHighLightColor(10);
657     c12->Divide(2,1);
658     c12->cd(1)->SetLogy(); gProtonsDCAXYPass->Draw(); 
659     gProtonsDCAXYReject->Draw("same");
660     c12->cd(2)->SetLogy(); gAntiProtonsDCAXYPass->Draw(); 
661     gAntiProtonsDCAXYReject->Draw("same");
662   }
663
664   if(gProtonsDCAXYTPCPass->GetEntries() != 0) {
665     TCanvas *c13 = new TCanvas("c13","dca(xy - TPC)",1200,0,600,400);
666     c13->SetFillColor(10); c13->SetHighLightColor(10);
667     c13->Divide(2,1);
668     c13->cd(1)->SetLogy(); gProtonsDCAXYTPCPass->Draw(); 
669     gProtonsDCAXYTPCReject->Draw("same");
670     c13->cd(2)->SetLogy(); gAntiProtonsDCAXYTPCPass->Draw(); 
671     gAntiProtonsDCAXYTPCReject->Draw("same");
672   }
673
674   if(gProtonsDCAZPass->GetEntries() != 0) {
675     TCanvas *c14 = new TCanvas("c14","dca(z)",1200,100,600,400);
676     c14->SetFillColor(10); c14->SetHighLightColor(10);
677     c14->Divide(2,1);
678     c14->cd(1)->SetLogy(); gProtonsDCAZPass->Draw(); 
679     gProtonsDCAZReject->Draw("same");
680     c14->cd(2)->SetLogy(); gAntiProtonsDCAZPass->Draw(); 
681     gAntiProtonsDCAZReject->Draw("same");
682   }
683
684   if(gProtonsDCAZTPCPass->GetEntries() != 0) {
685     TCanvas *c15 = new TCanvas("c15","dca(z - TPC)",1200,200,600,400);
686     c15->SetFillColor(10); c15->SetHighLightColor(10);
687     c15->Divide(2,1);
688     c15->cd(1)->SetLogy(); gProtonsDCAZTPCPass->Draw(); 
689     gProtonsDCAZTPCReject->Draw("same");
690     c15->cd(2)->SetLogy(); gAntiProtonsDCAZTPCPass->Draw(); 
691     gAntiProtonsDCAZTPCReject->Draw("same");
692   }
693
694   TCanvas *c16 = new TCanvas("c16","TPC clusters (dE/dx)",1200,300,600,400);
695   c16->SetFillColor(10); c16->SetHighLightColor(10);
696   c16->Divide(2,1);
697   c16->cd(1); gProtonsNumberOfTPCdEdxPointsPass->Draw(); 
698   gProtonsNumberOfTPCdEdxPointsReject->Draw("same");
699   c16->cd(2); gAntiProtonsNumberOfTPCdEdxPointsPass->Draw(); 
700   gAntiProtonsNumberOfTPCdEdxPointsReject->Draw("same");
701
702   TCanvas *c17 = new TCanvas("c17","ITS cluster map",1200,400,600,400);
703   c17->SetFillColor(10); c17->SetHighLightColor(10);
704   c17->Divide(2,1);
705   c17->cd(1); gProtonsITSClusterMapPass->GetYaxis()->SetRangeUser(0,18000);
706   gProtonsITSClusterMapPass->Draw(); 
707   gProtonsITSClusterMapReject->Draw("same"); 
708   c17->cd(2); gAntiProtonsITSClusterMapPass->GetYaxis()->SetRangeUser(0,18000);
709   gAntiProtonsITSClusterMapPass->Draw(); 
710   gAntiProtonsITSClusterMapReject->Draw("same"); 
711
712   if(gProtonsDCA3DPass->GetEntries() != 0) {  
713     TCanvas *c18 = new TCanvas("c18","DCA 3D",1200,500,600,400);
714     c18->SetFillColor(10); c18->SetHighLightColor(10);
715     c18->Divide(2,1);
716     c18->cd(1)->SetLogy(); gProtonsDCA3DPass->Draw();
717     gProtonsDCA3DReject->Draw("SAME");
718     c18->cd(2)->SetLogy(); gAntiProtonsDCA3DPass->Draw();
719     gAntiProtonsDCA3DReject->Draw("SAME");
720   }
721
722   //================Vertex QA================//
723   TList *gListVertexQA = dynamic_cast<TList *>(listQA->At(1));
724   TH1F *gHistVx = dynamic_cast<TH1F *>(gListVertexQA->At(0));
725   TH1F *gHistVxAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(1));
726   gHistVxAccepted->SetFillColor(10);
727   TH1F *gHistVy = dynamic_cast<TH1F *>(gListVertexQA->At(2));
728   TH1F *gHistVyAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(3));
729   gHistVyAccepted->SetFillColor(10);
730   TH1F *gHistVz = dynamic_cast<TH1F *>(gListVertexQA->At(4));
731   TH1F *gHistVzAccepted = dynamic_cast<TH1F *>(gListVertexQA->At(5));
732   gHistVzAccepted->SetFillColor(10);
733   TH1F *gHistNumberOfContributors = dynamic_cast<TH1F *>(gListVertexQA->At(6));
734   gHistNumberOfContributors->SetFillColor(10);
735
736   TCanvas *cVertex = new TCanvas("cVertex","Vertex QA",0,0,900,400);
737   cVertex->SetFillColor(10); cVertex->SetHighLightColor(10);
738   cVertex->Divide(3,1);
739   cVertex->cd(1)->SetLogy(); gHistVx->Draw(); gHistVxAccepted->Draw("same");
740   cVertex->cd(2)->SetLogy(); gHistVy->Draw(); gHistVyAccepted->Draw("same");
741   cVertex->cd(3)->SetLogy(); gHistVz->Draw(); gHistVzAccepted->Draw("same");
742
743   TCanvas *cVertexNContributors = new TCanvas("cVertexNContributors",
744                                               "Vertex QA",0,0,400,400);
745   gHistNumberOfContributors->Draw();
746 }
747
748 //________________________________________________________//
749 void PrintYields(TH1 *h) {
750   Double_t sum = 0.0, error = 0.0;
751   for(Int_t iBin = 1; iBin <= h->GetNbinsX(); iBin++) {
752     sum += h->GetBinContent(iBin);
753     error += TMath::Power(h->GetBinError(iBin),2);
754   }
755   error = TMath::Sqrt(error);
756
757   Printf("==================================");
758   Printf("Histogram: %s",h->GetName());
759   Printf("Yields: %lf - %lf",sum,error);
760   Printf("==================================");
761 }
762
763 //___________________________________________________//
764 void drawdEdx(TH2F *gHistdEdxP, Int_t iMode) {
765   //Draws the dE/dx distributions for the different momentum bins
766   //iMode == 0: dEdx vs P
767   //iMode == 1: normalized(dEdx) vs P
768   TString title;
769   TH1D *gHist[100];
770   Int_t iCounter = 0;
771   Double_t binMin = gHistdEdxP->GetXaxis()->GetXmin();
772   Double_t binMax = gHistdEdxP->GetXaxis()->GetXmin() + 
773     (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
774
775   TCanvas *c[100];
776   TString canvasTitle;
777
778   for(Int_t iBin = 1; iBin <= gHistdEdxP->GetNbinsX(); iBin++) {
779     if((binMax > 0.45)&&(binMin < 1.05)) {
780       if(iMode == 0) {
781         title = "(dEdx)P: "; title += binMin; title += " - "; 
782         title += binMax; title += "GeV/c";
783         canvasTitle = "dedxMomentumSlice."; canvasTitle += iCounter;
784         canvasTitle += ".gif";
785         c[iCounter] = new TCanvas(title.Data(),title.Data(),0,0,500,500);
786       }
787       if(iMode == 1) {
788         title = "(normdEdx)P: "; title += binMin; title += " - "; 
789         title += binMax; title += "GeV/c";
790         canvasTitle = "normdedxMomentumSlice."; canvasTitle += iCounter;
791         canvasTitle += ".gif";
792         c[iCounter] = new TCanvas(title.Data(),title.Data(),500,0,500,500);
793       }
794       c[iCounter]->SetFillColor(10); c[iCounter]->SetHighLightColor(10); 
795       gHist[iCounter] = gHistdEdxP->ProjectionY(title.Data(),iBin,iBin+1);
796       gHist[iCounter]->SetTitle(title.Data());
797       gHist[iCounter]->SetStats(kFALSE);
798       if(iMode == 0)
799         gHist[iCounter]->GetXaxis()->SetRangeUser(0.0,300.);
800       if(iMode == 1)
801         gHist[iCounter]->GetXaxis()->SetRangeUser(-2.0,2.0);
802       if(gHist[iCounter]->GetEntries() != 0)
803         c[iCounter]->SetLogy();
804       gHist[iCounter]->Draw("E");
805       c[iCounter]->SaveAs(canvasTitle.Data());
806       //Printf("Bin: %d - Pmin: %lf - Pmax: %lf : %s",iBin,binMin,binMax,title.Data());
807       iCounter += 1;
808     }
809     binMin += (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
810     binMax += (gHistdEdxP->GetXaxis()->GetXmax() - gHistdEdxP->GetXaxis()->GetXmin())/gHistdEdxP->GetNbinsX();
811   }
812   
813 }
814
815 //___________________________________________________//
816 void drawMCvsData(const char* analysisOutputMC,
817                   const char* analysisOutputData) {
818   //Draws the QA plots from the output of the analysis
819   //=========================================================//
820   gStyle->SetPalette(1,0);
821
822   //=========================================================//
823   //QA MC plots
824   TFile *fMC = TFile::Open(analysisOutputMC);
825   TList *listQAMC = dynamic_cast<TList *>(fMC->Get("outputQAList"));
826   TList *gListGlobalQAMC = dynamic_cast<TList *>(listQAMC->At(0));
827
828   //================QA plots================//
829   TList *fQAMC2DList = dynamic_cast<TList *>(gListGlobalQAMC->At(0));
830
831   //Rejected protons
832   TList *fQAMCProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQAMC->At(2));
833   TH1F *gMCProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(0));
834   TH1F *gMCProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(2));
835   TH1F *gMCProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(3));
836   TH1F *gMCProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(4));
837   TH1F *gMCProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(5));
838   TH1F *gMCProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(6));
839   TH1F *gMCProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(7));
840   TH1F *gMCProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(8));
841   TH1F *gMCProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(11));
842   TH1F *gMCProtonsDCAZReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(13));
843   TH1F *gMCProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAMCProtonsRejectedList->At(26));
844
845   //Accepted protons
846   TList *fQAMCProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQAMC->At(1));
847   TH1F *gMCProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(0));
848   gMCProtonsITSClustersPass->SetStats(kFALSE);
849   gMCProtonsITSClustersPass->Add(gMCProtonsITSClustersReject);
850   gMCProtonsITSClustersPass->Sumw2();
851   gMCProtonsITSClustersPass->Scale(1./gMCProtonsITSClustersPass->Integral(1,gMCProtonsITSClustersPass->GetNbinsX()));
852   gMCProtonsITSClustersPass->SetMarkerStyle(20);
853   TH1F *gMCProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(2));
854   gMCProtonsTPCClustersPass->SetStats(kFALSE);
855   gMCProtonsTPCClustersPass->Add(gMCProtonsTPCClustersReject);
856   gMCProtonsTPCClustersPass->Sumw2();
857   gMCProtonsTPCClustersPass->Scale(1./gMCProtonsTPCClustersPass->Integral(1,gMCProtonsTPCClustersPass->GetNbinsX()));
858   gMCProtonsTPCClustersPass->SetMarkerStyle(20);
859   TH1F *gMCProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(3));
860   gMCProtonsChi2PerClusterTPCPass->SetStats(kFALSE);
861   gMCProtonsChi2PerClusterTPCPass->Add(gMCProtonsChi2PerClusterTPCReject);
862   gMCProtonsChi2PerClusterTPCPass->Sumw2();
863   gMCProtonsChi2PerClusterTPCPass->Scale(1./gMCProtonsChi2PerClusterTPCPass->Integral(1,gMCProtonsChi2PerClusterTPCPass->GetNbinsX()));
864   gMCProtonsChi2PerClusterTPCPass->SetMarkerStyle(20);
865   TH1F *gMCProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(4));
866   gMCProtonsExtCov11Pass->SetStats(kFALSE);
867   gMCProtonsExtCov11Pass->Add(gMCProtonsExtCov11Reject);
868   gMCProtonsExtCov11Pass->Sumw2();
869   gMCProtonsExtCov11Pass->Scale(1./gMCProtonsExtCov11Pass->Integral(1,gMCProtonsExtCov11Pass->GetNbinsX()));
870   gMCProtonsExtCov11Pass->SetMarkerStyle(20);
871   TH1F *gMCProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(5));
872   gMCProtonsExtCov22Pass->SetStats(kFALSE);
873   gMCProtonsExtCov22Pass->Add(gMCProtonsExtCov22Reject);
874   gMCProtonsExtCov22Pass->Sumw2();
875   gMCProtonsExtCov22Pass->Scale(1./gMCProtonsExtCov22Pass->Integral(1,gMCProtonsExtCov22Pass->GetNbinsX()));
876   gMCProtonsExtCov22Pass->SetMarkerStyle(20);
877   TH1F *gMCProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(6));
878   gMCProtonsExtCov33Pass->SetStats(kFALSE);
879   gMCProtonsExtCov33Pass->Add(gMCProtonsExtCov33Reject);
880   gMCProtonsExtCov33Pass->Sumw2();
881   gMCProtonsExtCov33Pass->Scale(1./gMCProtonsExtCov33Pass->Integral(1,gMCProtonsExtCov33Pass->GetNbinsX()));
882   gMCProtonsExtCov33Pass->SetMarkerStyle(20);
883   TH1F *gMCProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(7));
884   gMCProtonsExtCov44Pass->SetStats(kFALSE);
885   gMCProtonsExtCov44Pass->Add(gMCProtonsExtCov44Reject);
886   gMCProtonsExtCov44Pass->Sumw2();
887   gMCProtonsExtCov44Pass->Scale(1./gMCProtonsExtCov44Pass->Integral(1,gMCProtonsExtCov44Pass->GetNbinsX()));
888   gMCProtonsExtCov44Pass->SetMarkerStyle(20);
889   TH1F *gMCProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(8));
890   gMCProtonsExtCov55Pass->SetStats(kFALSE);
891   gMCProtonsExtCov55Pass->Add(gMCProtonsExtCov55Reject);
892   gMCProtonsExtCov55Pass->Sumw2();
893   gMCProtonsExtCov55Pass->Scale(1./gMCProtonsExtCov55Pass->Integral(1,gMCProtonsExtCov55Pass->GetNbinsX()));
894   gMCProtonsExtCov55Pass->SetMarkerStyle(20);
895   TH1F *gMCProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(11));
896   gMCProtonsDCAXYPass->SetStats(kFALSE);  
897   gMCProtonsDCAXYPass->Add(gMCProtonsDCAXYReject);
898   gMCProtonsDCAXYPass->Sumw2();
899   gMCProtonsDCAXYPass->Scale(1./gMCProtonsDCAXYPass->Integral(1,gMCProtonsDCAXYPass->GetNbinsX()));
900   gMCProtonsDCAXYPass->SetMarkerStyle(20);
901   TH1F *gMCProtonsDCAZPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(13));
902   gMCProtonsDCAZPass->SetStats(kFALSE);  
903   gMCProtonsDCAZPass->Add(gMCProtonsDCAZReject);
904   gMCProtonsDCAZPass->Sumw2();
905   gMCProtonsDCAZPass->Scale(1./gMCProtonsDCAZPass->Integral(1,gMCProtonsDCAZPass->GetNbinsX()));
906   gMCProtonsDCAZPass->SetMarkerStyle(20);
907   TH1F *gMCProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAMCProtonsAcceptedList->At(26));
908   gMCProtonsNumberOfTPCdEdxPointsPass->SetStats(kFALSE);  
909   gMCProtonsNumberOfTPCdEdxPointsPass->Add(gMCProtonsNumberOfTPCdEdxPointsReject);
910   gMCProtonsNumberOfTPCdEdxPointsPass->Sumw2();
911   gMCProtonsNumberOfTPCdEdxPointsPass->Scale(1./gMCProtonsNumberOfTPCdEdxPointsPass->Integral(1,gMCProtonsNumberOfTPCdEdxPointsPass->GetNbinsX()));
912   gMCProtonsNumberOfTPCdEdxPointsPass->SetMarkerStyle(20);
913
914   //Rejected antiprotons
915   TList *fQAMCAntiProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQAMC->At(4));
916   TH1F *gMCAntiProtonsITSClustersReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(0));
917   TH1F *gMCAntiProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(2));
918   TH1F *gMCAntiProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(3));
919   TH1F *gMCAntiProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(4));
920   TH1F *gMCAntiProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(5));
921   TH1F *gMCAntiProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(6));
922   TH1F *gMCAntiProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(7));
923   TH1F *gMCAntiProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(8));
924   TH1F *gMCAntiProtonsDCAXYReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(11));
925   TH1F *gMCAntiProtonsDCAZReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(13));
926   TH1F *gMCAntiProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQAMCAntiProtonsRejectedList->At(26));
927
928   //Accepted protons
929   TList *fQAMCAntiProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQAMC->At(3));
930   TH1F *gMCAntiProtonsITSClustersPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(0));
931   gMCAntiProtonsITSClustersPass->SetStats(kFALSE);
932   gMCAntiProtonsITSClustersPass->Add(gMCAntiProtonsITSClustersReject);
933   gMCAntiProtonsITSClustersPass->Sumw2();
934   gMCAntiProtonsITSClustersPass->Scale(1./gMCAntiProtonsITSClustersPass->Integral(1,gMCAntiProtonsITSClustersPass->GetNbinsX()));
935   gMCAntiProtonsITSClustersPass->SetMarkerStyle(20);
936   TH1F *gMCAntiProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(2));
937   gMCAntiProtonsTPCClustersPass->SetStats(kFALSE);
938   gMCAntiProtonsTPCClustersPass->Add(gMCAntiProtonsTPCClustersReject);
939   gMCAntiProtonsTPCClustersPass->Sumw2();
940   gMCAntiProtonsTPCClustersPass->Scale(1./gMCAntiProtonsTPCClustersPass->Integral(1,gMCAntiProtonsTPCClustersPass->GetNbinsX()));
941   gMCAntiProtonsTPCClustersPass->SetMarkerStyle(20);
942   TH1F *gMCAntiProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(3));
943   gMCAntiProtonsChi2PerClusterTPCPass->SetStats(kFALSE);
944   gMCAntiProtonsChi2PerClusterTPCPass->Add(gMCAntiProtonsChi2PerClusterTPCReject);
945   gMCAntiProtonsChi2PerClusterTPCPass->Sumw2();
946   gMCAntiProtonsChi2PerClusterTPCPass->Scale(1./gMCAntiProtonsChi2PerClusterTPCPass->Integral(1,gMCAntiProtonsChi2PerClusterTPCPass->GetNbinsX()));
947   gMCAntiProtonsChi2PerClusterTPCPass->SetMarkerStyle(20);
948   TH1F *gMCAntiProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(4));
949   gMCAntiProtonsExtCov11Pass->SetStats(kFALSE);
950   gMCAntiProtonsExtCov11Pass->Add(gMCAntiProtonsExtCov11Reject);
951   gMCAntiProtonsExtCov11Pass->Sumw2();
952   gMCAntiProtonsExtCov11Pass->Scale(1./gMCAntiProtonsExtCov11Pass->Integral(1,gMCAntiProtonsExtCov11Pass->GetNbinsX()));
953   gMCAntiProtonsExtCov11Pass->SetMarkerStyle(20);
954   TH1F *gMCAntiProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(5));
955   gMCAntiProtonsExtCov22Pass->SetStats(kFALSE);
956   gMCAntiProtonsExtCov22Pass->Add(gMCAntiProtonsExtCov22Reject);
957   gMCAntiProtonsExtCov22Pass->Sumw2();
958   gMCAntiProtonsExtCov22Pass->Scale(1./gMCAntiProtonsExtCov22Pass->Integral(1,gMCAntiProtonsExtCov22Pass->GetNbinsX()));
959   gMCAntiProtonsExtCov22Pass->SetMarkerStyle(20);
960   TH1F *gMCAntiProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(6));
961   gMCAntiProtonsExtCov33Pass->SetStats(kFALSE);
962   gMCAntiProtonsExtCov33Pass->Add(gMCAntiProtonsExtCov33Reject);
963   gMCAntiProtonsExtCov33Pass->Sumw2();
964   gMCAntiProtonsExtCov33Pass->Scale(1./gMCAntiProtonsExtCov33Pass->Integral(1,gMCAntiProtonsExtCov33Pass->GetNbinsX()));
965   gMCAntiProtonsExtCov33Pass->SetMarkerStyle(20);
966   TH1F *gMCAntiProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(7));
967   gMCAntiProtonsExtCov44Pass->SetStats(kFALSE);
968   gMCAntiProtonsExtCov44Pass->Add(gMCAntiProtonsExtCov44Reject);
969   gMCAntiProtonsExtCov44Pass->Sumw2();
970   gMCAntiProtonsExtCov44Pass->Scale(1./gMCAntiProtonsExtCov44Pass->Integral(1,gMCAntiProtonsExtCov44Pass->GetNbinsX()));
971   gMCAntiProtonsExtCov44Pass->SetMarkerStyle(20);
972   TH1F *gMCAntiProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(8));
973   gMCAntiProtonsExtCov55Pass->SetStats(kFALSE);
974   gMCAntiProtonsExtCov55Pass->Add(gMCAntiProtonsExtCov55Reject);
975   gMCAntiProtonsExtCov55Pass->Sumw2();
976   gMCAntiProtonsExtCov55Pass->Scale(1./gMCAntiProtonsExtCov55Pass->Integral(1,gMCAntiProtonsExtCov55Pass->GetNbinsX()));
977   gMCAntiProtonsExtCov55Pass->SetMarkerStyle(20);
978   TH1F *gMCAntiProtonsDCAXYPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(11));
979   gMCAntiProtonsDCAXYPass->SetStats(kFALSE);  
980   gMCAntiProtonsDCAXYPass->Add(gMCAntiProtonsDCAXYReject);
981   gMCAntiProtonsDCAXYPass->Sumw2();
982   gMCAntiProtonsDCAXYPass->Scale(1./gMCAntiProtonsDCAXYPass->Integral(1,gMCAntiProtonsDCAXYPass->GetNbinsX()));
983   gMCAntiProtonsDCAXYPass->SetMarkerStyle(20);
984   TH1F *gMCAntiProtonsDCAZPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(13));
985   gMCAntiProtonsDCAZPass->SetStats(kFALSE);  
986   gMCAntiProtonsDCAZPass->Add(gMCAntiProtonsDCAZReject);
987   gMCAntiProtonsDCAZPass->Sumw2();
988   gMCAntiProtonsDCAZPass->Scale(1./gMCAntiProtonsDCAZPass->Integral(1,gMCAntiProtonsDCAZPass->GetNbinsX()));
989   gMCAntiProtonsDCAZPass->SetMarkerStyle(20);
990   TH1F *gMCAntiProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQAMCAntiProtonsAcceptedList->At(26));
991   gMCAntiProtonsNumberOfTPCdEdxPointsPass->SetStats(kFALSE);  
992   gMCAntiProtonsNumberOfTPCdEdxPointsPass->Add(gMCAntiProtonsNumberOfTPCdEdxPointsReject);
993   gMCAntiProtonsNumberOfTPCdEdxPointsPass->Sumw2();
994   gMCAntiProtonsNumberOfTPCdEdxPointsPass->Scale(1./gMCAntiProtonsNumberOfTPCdEdxPointsPass->Integral(1,gMCAntiProtonsNumberOfTPCdEdxPointsPass->GetNbinsX()));
995   gMCAntiProtonsNumberOfTPCdEdxPointsPass->SetMarkerStyle(20);
996
997   //=========================================================//
998   //QA data plots
999   TFile *fData = TFile::Open(analysisOutputData);
1000   TList *listQAData = dynamic_cast<TList *>(fData->Get("outputQAList"));
1001   TList *gListGlobalQAData = dynamic_cast<TList *>(listQAData->At(0));
1002
1003   //================QA plots================//
1004   TList *fQAData2DList = dynamic_cast<TList *>(gListGlobalQAData->At(0));
1005
1006   //Rejected protons
1007   TList *fQADataProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQAData->At(2));
1008   TH1F *gDataProtonsITSClustersReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(0));
1009   TH1F *gDataProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(2));
1010   TH1F *gDataProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(3));
1011   TH1F *gDataProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(4));
1012   TH1F *gDataProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(5));
1013   TH1F *gDataProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(6));
1014   TH1F *gDataProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(7));
1015   TH1F *gDataProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(8));
1016   TH1F *gDataProtonsDCAXYReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(11));
1017   TH1F *gDataProtonsDCAZReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(13));
1018   TH1F *gDataProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQADataProtonsRejectedList->At(26));
1019
1020   //Accepted protons
1021   TList *fQADataProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQAData->At(1));
1022   TH1F *gDataProtonsITSClustersPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(0));
1023   gDataProtonsITSClustersPass->SetStats(kFALSE);
1024   gDataProtonsITSClustersPass->Add(gDataProtonsITSClustersReject);
1025   gDataProtonsITSClustersPass->Sumw2();
1026   gDataProtonsITSClustersPass->Scale(1./gDataProtonsITSClustersPass->Integral(1,gDataProtonsITSClustersPass->GetNbinsX()));
1027   gDataProtonsITSClustersPass->SetMarkerStyle(1);
1028   TH1F *gDataProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(2));
1029   gDataProtonsTPCClustersPass->SetStats(kFALSE);
1030   gDataProtonsTPCClustersPass->Add(gDataProtonsTPCClustersReject);
1031   gDataProtonsTPCClustersPass->Sumw2();
1032   gDataProtonsTPCClustersPass->Scale(1./gDataProtonsTPCClustersPass->Integral(1,gDataProtonsTPCClustersPass->GetNbinsX()));
1033   gDataProtonsTPCClustersPass->SetMarkerStyle(1);
1034   TH1F *gDataProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(3));
1035   gDataProtonsChi2PerClusterTPCPass->SetStats(kFALSE);
1036   gDataProtonsChi2PerClusterTPCPass->Add(gDataProtonsChi2PerClusterTPCReject);
1037   gDataProtonsChi2PerClusterTPCPass->Sumw2();
1038   gDataProtonsChi2PerClusterTPCPass->Scale(1./gDataProtonsChi2PerClusterTPCPass->Integral(1,gDataProtonsChi2PerClusterTPCPass->GetNbinsX()));
1039   gDataProtonsChi2PerClusterTPCPass->SetMarkerStyle(1);
1040   TH1F *gDataProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(4));
1041   gDataProtonsExtCov11Pass->SetStats(kFALSE);
1042   gDataProtonsExtCov11Pass->Add(gDataProtonsExtCov11Reject);
1043   gDataProtonsExtCov11Pass->Sumw2();
1044   gDataProtonsExtCov11Pass->Scale(1./gDataProtonsExtCov11Pass->Integral(1,gDataProtonsExtCov11Pass->GetNbinsX()));
1045   gDataProtonsExtCov11Pass->SetMarkerStyle(1);
1046   TH1F *gDataProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(5));
1047   gDataProtonsExtCov22Pass->SetStats(kFALSE);
1048   gDataProtonsExtCov22Pass->Add(gDataProtonsExtCov22Reject);
1049   gDataProtonsExtCov22Pass->Sumw2();
1050   gDataProtonsExtCov22Pass->Scale(1./gDataProtonsExtCov22Pass->Integral(1,gDataProtonsExtCov22Pass->GetNbinsX()));
1051   gDataProtonsExtCov22Pass->SetMarkerStyle(1);
1052   TH1F *gDataProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(6));
1053   gDataProtonsExtCov33Pass->SetStats(kFALSE);
1054   gDataProtonsExtCov33Pass->Add(gDataProtonsExtCov33Reject);
1055   gDataProtonsExtCov33Pass->Sumw2();
1056   gDataProtonsExtCov33Pass->Scale(1./gDataProtonsExtCov33Pass->Integral(1,gDataProtonsExtCov33Pass->GetNbinsX()));
1057   gDataProtonsExtCov33Pass->SetMarkerStyle(1);
1058   TH1F *gDataProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(7));
1059   gDataProtonsExtCov44Pass->SetStats(kFALSE);
1060   gDataProtonsExtCov44Pass->Add(gDataProtonsExtCov44Reject);
1061   gDataProtonsExtCov44Pass->Sumw2();
1062   gDataProtonsExtCov44Pass->Scale(1./gDataProtonsExtCov44Pass->Integral(1,gDataProtonsExtCov44Pass->GetNbinsX()));
1063   gDataProtonsExtCov44Pass->SetMarkerStyle(1);
1064   TH1F *gDataProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(8));
1065   gDataProtonsExtCov55Pass->SetStats(kFALSE);
1066   gDataProtonsExtCov55Pass->Add(gDataProtonsExtCov55Reject);
1067   gDataProtonsExtCov55Pass->Sumw2();
1068   gDataProtonsExtCov55Pass->Scale(1./gDataProtonsExtCov55Pass->Integral(1,gDataProtonsExtCov55Pass->GetNbinsX()));
1069   gDataProtonsExtCov55Pass->SetMarkerStyle(1);
1070   TH1F *gDataProtonsDCAXYPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(11));
1071   gDataProtonsDCAXYPass->SetStats(kFALSE);  
1072   gDataProtonsDCAXYPass->Add(gDataProtonsDCAXYReject);
1073   gDataProtonsDCAXYPass->Sumw2();
1074   gDataProtonsDCAXYPass->Scale(1./gDataProtonsDCAXYPass->Integral(1,gDataProtonsDCAXYPass->GetNbinsX()));
1075   gDataProtonsDCAXYPass->SetMarkerStyle(1);
1076   TH1F *gDataProtonsDCAZPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(13));
1077   gDataProtonsDCAZPass->SetStats(kFALSE);  
1078   gDataProtonsDCAZPass->Add(gDataProtonsDCAZReject);
1079   gDataProtonsDCAZPass->Sumw2();
1080   gDataProtonsDCAZPass->Scale(1./gDataProtonsDCAZPass->Integral(1,gDataProtonsDCAZPass->GetNbinsX()));
1081   gDataProtonsDCAZPass->SetMarkerStyle(1);
1082   TH1F *gDataProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQADataProtonsAcceptedList->At(26));
1083   gDataProtonsNumberOfTPCdEdxPointsPass->SetStats(kFALSE);  
1084   gDataProtonsNumberOfTPCdEdxPointsPass->Add(gDataProtonsNumberOfTPCdEdxPointsReject);
1085   gDataProtonsNumberOfTPCdEdxPointsPass->Sumw2();
1086   gDataProtonsNumberOfTPCdEdxPointsPass->Scale(1./gDataProtonsNumberOfTPCdEdxPointsPass->Integral(1,gDataProtonsNumberOfTPCdEdxPointsPass->GetNbinsX()));
1087   gDataProtonsNumberOfTPCdEdxPointsPass->SetMarkerStyle(1);
1088
1089   //Rejected antiprotons
1090   TList *fQADataAntiProtonsRejectedList = dynamic_cast<TList *>(gListGlobalQAData->At(4));
1091   TH1F *gDataAntiProtonsITSClustersReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(0));
1092   TH1F *gDataAntiProtonsTPCClustersReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(2));
1093   TH1F *gDataAntiProtonsChi2PerClusterTPCReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(3));
1094   TH1F *gDataAntiProtonsExtCov11Reject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(4));
1095   TH1F *gDataAntiProtonsExtCov22Reject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(5));
1096   TH1F *gDataAntiProtonsExtCov33Reject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(6));
1097   TH1F *gDataAntiProtonsExtCov44Reject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(7));
1098   TH1F *gDataAntiProtonsExtCov55Reject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(8));
1099   TH1F *gDataAntiProtonsDCAXYReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(11));
1100   TH1F *gDataAntiProtonsDCAZReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(13));
1101   TH1F *gDataAntiProtonsNumberOfTPCdEdxPointsReject = dynamic_cast<TH1F *>(fQADataAntiProtonsRejectedList->At(26));
1102
1103   //Accepted protons
1104   TList *fQADataAntiProtonsAcceptedList = dynamic_cast<TList *>(gListGlobalQAData->At(3));
1105   TH1F *gDataAntiProtonsITSClustersPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(0));
1106   gDataAntiProtonsITSClustersPass->SetStats(kFALSE);
1107   gDataAntiProtonsITSClustersPass->Add(gDataAntiProtonsITSClustersReject);
1108   gDataAntiProtonsITSClustersPass->Sumw2();
1109   gDataAntiProtonsITSClustersPass->Scale(1./gDataAntiProtonsITSClustersPass->Integral(1,gDataAntiProtonsITSClustersPass->GetNbinsX()));
1110   gDataAntiProtonsITSClustersPass->SetMarkerStyle(1);
1111   TH1F *gDataAntiProtonsTPCClustersPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(2));
1112   gDataAntiProtonsTPCClustersPass->SetStats(kFALSE);
1113   gDataAntiProtonsTPCClustersPass->Add(gDataAntiProtonsTPCClustersReject);
1114   gDataAntiProtonsTPCClustersPass->Sumw2();
1115   gDataAntiProtonsTPCClustersPass->Scale(1./gDataAntiProtonsTPCClustersPass->Integral(1,gDataAntiProtonsTPCClustersPass->GetNbinsX()));
1116   gDataAntiProtonsTPCClustersPass->SetMarkerStyle(1);
1117   TH1F *gDataAntiProtonsChi2PerClusterTPCPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(3));
1118   gDataAntiProtonsChi2PerClusterTPCPass->SetStats(kFALSE);
1119   gDataAntiProtonsChi2PerClusterTPCPass->Add(gDataAntiProtonsChi2PerClusterTPCReject);
1120   gDataAntiProtonsChi2PerClusterTPCPass->Sumw2();
1121   gDataAntiProtonsChi2PerClusterTPCPass->Scale(1./gDataAntiProtonsChi2PerClusterTPCPass->Integral(1,gDataAntiProtonsChi2PerClusterTPCPass->GetNbinsX()));
1122   gDataAntiProtonsChi2PerClusterTPCPass->SetMarkerStyle(1);
1123   TH1F *gDataAntiProtonsExtCov11Pass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(4));
1124   gDataAntiProtonsExtCov11Pass->SetStats(kFALSE);
1125   gDataAntiProtonsExtCov11Pass->Add(gDataAntiProtonsExtCov11Reject);
1126   gDataAntiProtonsExtCov11Pass->Sumw2();
1127   gDataAntiProtonsExtCov11Pass->Scale(1./gDataAntiProtonsExtCov11Pass->Integral(1,gDataAntiProtonsExtCov11Pass->GetNbinsX()));
1128   gDataAntiProtonsExtCov11Pass->SetMarkerStyle(1);
1129   TH1F *gDataAntiProtonsExtCov22Pass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(5));
1130   gDataAntiProtonsExtCov22Pass->SetStats(kFALSE);
1131   gDataAntiProtonsExtCov22Pass->Add(gDataAntiProtonsExtCov22Reject);
1132   gDataAntiProtonsExtCov22Pass->Sumw2();
1133   gDataAntiProtonsExtCov22Pass->Scale(1./gDataAntiProtonsExtCov22Pass->Integral(1,gDataAntiProtonsExtCov22Pass->GetNbinsX()));
1134   gDataAntiProtonsExtCov22Pass->SetMarkerStyle(1);
1135   TH1F *gDataAntiProtonsExtCov33Pass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(6));
1136   gDataAntiProtonsExtCov33Pass->SetStats(kFALSE);
1137   gDataAntiProtonsExtCov33Pass->Add(gDataAntiProtonsExtCov33Reject);
1138   gDataAntiProtonsExtCov33Pass->Sumw2();
1139   gDataAntiProtonsExtCov33Pass->Scale(1./gDataAntiProtonsExtCov33Pass->Integral(1,gDataAntiProtonsExtCov33Pass->GetNbinsX()));
1140   gDataAntiProtonsExtCov33Pass->SetMarkerStyle(1);
1141   TH1F *gDataAntiProtonsExtCov44Pass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(7));
1142   gDataAntiProtonsExtCov44Pass->SetStats(kFALSE);
1143   gDataAntiProtonsExtCov44Pass->Add(gDataAntiProtonsExtCov44Reject);
1144   gDataAntiProtonsExtCov44Pass->Sumw2();
1145   gDataAntiProtonsExtCov44Pass->Scale(1./gDataAntiProtonsExtCov44Pass->Integral(1,gDataAntiProtonsExtCov44Pass->GetNbinsX()));
1146   gDataAntiProtonsExtCov44Pass->SetMarkerStyle(1);
1147   TH1F *gDataAntiProtonsExtCov55Pass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(8));
1148   gDataAntiProtonsExtCov55Pass->SetStats(kFALSE);
1149   gDataAntiProtonsExtCov55Pass->Add(gDataAntiProtonsExtCov55Reject);
1150   gDataAntiProtonsExtCov55Pass->Sumw2();
1151   gDataAntiProtonsExtCov55Pass->Scale(1./gDataAntiProtonsExtCov55Pass->Integral(1,gDataAntiProtonsExtCov55Pass->GetNbinsX()));
1152   gDataAntiProtonsExtCov55Pass->SetMarkerStyle(1);
1153   TH1F *gDataAntiProtonsDCAXYPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(11));
1154   gDataAntiProtonsDCAXYPass->SetStats(kFALSE);  
1155   gDataAntiProtonsDCAXYPass->Add(gDataAntiProtonsDCAXYReject);
1156   gDataAntiProtonsDCAXYPass->Sumw2();
1157   gDataAntiProtonsDCAXYPass->Scale(1./gDataAntiProtonsDCAXYPass->Integral(1,gDataAntiProtonsDCAXYPass->GetNbinsX()));
1158   gDataAntiProtonsDCAXYPass->SetMarkerStyle(1);
1159   TH1F *gDataAntiProtonsDCAZPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(13));
1160   gDataAntiProtonsDCAZPass->SetStats(kFALSE);  
1161   gDataAntiProtonsDCAZPass->Add(gDataAntiProtonsDCAZReject);
1162   gDataAntiProtonsDCAZPass->Sumw2();
1163   gDataAntiProtonsDCAZPass->Scale(1./gDataAntiProtonsDCAZPass->Integral(1,gDataAntiProtonsDCAZPass->GetNbinsX()));
1164   gDataAntiProtonsDCAZPass->SetMarkerStyle(1);
1165   TH1F *gDataAntiProtonsNumberOfTPCdEdxPointsPass = dynamic_cast<TH1F *>(fQADataAntiProtonsAcceptedList->At(26));
1166   gDataAntiProtonsNumberOfTPCdEdxPointsPass->SetStats(kFALSE);  
1167   gDataAntiProtonsNumberOfTPCdEdxPointsPass->Add(gDataAntiProtonsNumberOfTPCdEdxPointsReject);
1168   gDataAntiProtonsNumberOfTPCdEdxPointsPass->Sumw2();
1169   gDataAntiProtonsNumberOfTPCdEdxPointsPass->Scale(1./gDataAntiProtonsNumberOfTPCdEdxPointsPass->Integral(1,gDataAntiProtonsNumberOfTPCdEdxPointsPass->GetNbinsX()));
1170   gDataAntiProtonsNumberOfTPCdEdxPointsPass->SetMarkerStyle(1);
1171
1172
1173   //__________________________________________________//
1174   TCanvas *c1 = new TCanvas("c1","ITS clusters",0,0,600,400);
1175   c1->SetFillColor(10); c1->SetHighLightColor(10);
1176   c1->Divide(2,1);
1177   c1->cd(1); gDataProtonsITSClustersPass->Divide(gMCProtonsITSClustersPass);
1178   gDataProtonsITSClustersPass->SetTitle("Protons");
1179   gDataProtonsITSClustersPass->GetYaxis()->SetTitle("Data/MC");
1180   gDataProtonsITSClustersPass->Draw("E"); 
1181   c1->cd(2); 
1182   gDataAntiProtonsITSClustersPass->Divide(gMCAntiProtonsITSClustersPass);
1183   gDataAntiProtonsITSClustersPass->SetTitle("Antiprotons");
1184   gDataAntiProtonsITSClustersPass->GetYaxis()->SetTitle("Data/MC");
1185   gDataAntiProtonsITSClustersPass->Draw("E"); 
1186   c1->SaveAs("NClustersITS.gif");
1187
1188   TCanvas *c3 = new TCanvas("c3","TPC clusters",0,200,600,400);
1189   c3->SetFillColor(10); c3->SetHighLightColor(10);
1190   c3->Divide(2,1);
1191   c3->cd(1); gDataProtonsTPCClustersPass->Divide(gMCProtonsTPCClustersPass);
1192   gDataProtonsTPCClustersPass->SetTitle("Protons");
1193   gDataProtonsTPCClustersPass->GetYaxis()->SetTitle("Data/MC");
1194   gDataProtonsTPCClustersPass->Draw("E");
1195   c3->cd(2); 
1196   gDataAntiProtonsTPCClustersPass->Divide(gMCAntiProtonsTPCClustersPass);
1197   gDataAntiProtonsTPCClustersPass->SetTitle("Antirotons");
1198   gDataAntiProtonsTPCClustersPass->GetYaxis()->SetTitle("Data/MC");
1199   gDataAntiProtonsTPCClustersPass->Draw("E");
1200   c3->SaveAs("NClustersTPC.gif");
1201
1202   TCanvas *c4 = new TCanvas("c4","chi^2 per TPC cluster",0,300,600,400);
1203   c4->SetFillColor(10); c4->SetHighLightColor(10);
1204   c4->Divide(2,1);
1205   c4->cd(1); 
1206   gDataProtonsChi2PerClusterTPCPass->Divide(gMCProtonsChi2PerClusterTPCPass);
1207   gDataProtonsChi2PerClusterTPCPass->SetTitle("Protons");
1208   gDataProtonsChi2PerClusterTPCPass->GetYaxis()->SetTitle("Data/MC");
1209   gDataProtonsChi2PerClusterTPCPass->Draw("E"); 
1210   c4->cd(2); 
1211   gDataAntiProtonsChi2PerClusterTPCPass->Divide(gMCAntiProtonsChi2PerClusterTPCPass);
1212   gDataAntiProtonsChi2PerClusterTPCPass->SetTitle("Antirotons");
1213   gDataAntiProtonsChi2PerClusterTPCPass->GetYaxis()->SetTitle("Data/MC");
1214   gDataAntiProtonsChi2PerClusterTPCPass->Draw("E"); 
1215   c4->SaveAs("Chi2PerTPCCluster.gif");
1216
1217   if(gMCProtonsExtCov11Pass->GetEntries() != 0) {
1218     TCanvas *c5 = new TCanvas("c5","Cov11",0,400,600,400);
1219     c5->SetFillColor(10); c5->SetHighLightColor(10);
1220     c5->Divide(2,1);
1221     c5->cd(1); 
1222     gDataProtonsExtCov11Pass->Divide(gMCProtonsExtCov11Pass);
1223     gDataProtonsExtCov11Pass->SetTitle("Protons");
1224     gDataProtonsExtCov11Pass->GetYaxis()->SetTitle("Data/MC");
1225     gDataProtonsExtCov11Pass->Draw("E"); 
1226     c5->cd(2); 
1227     gDataAntiProtonsExtCov11Pass->Divide(gMCAntiProtonsExtCov11Pass);
1228     gDataAntiProtonsExtCov11Pass->SetTitle("Antiprotons");
1229     gDataAntiProtonsExtCov11Pass->GetYaxis()->SetTitle("Data/MC");
1230     gDataAntiProtonsExtCov11Pass->Draw("E"); 
1231     c5->SaveAs("cov11.gif");
1232   }
1233
1234   if(gMCProtonsExtCov22Pass->GetEntries() != 0) {
1235     TCanvas *c6 = new TCanvas("c6","Cov22",0,500,600,400);
1236     c6->SetFillColor(10); c6->SetHighLightColor(10);
1237     c6->Divide(2,1);
1238     c6->cd(1); 
1239     gDataProtonsExtCov22Pass->Divide(gMCProtonsExtCov11Pass);
1240     gDataProtonsExtCov22Pass->SetTitle("Protons");
1241     gDataProtonsExtCov22Pass->GetYaxis()->SetTitle("Data/MC");
1242     gDataProtonsExtCov22Pass->Draw("E"); 
1243     c6->cd(2); 
1244     gDataAntiProtonsExtCov22Pass->Divide(gMCAntiProtonsExtCov22Pass);
1245     gDataAntiProtonsExtCov22Pass->SetTitle("Antiprotons");
1246     gDataAntiProtonsExtCov22Pass->GetYaxis()->SetTitle("Data/MC");
1247     gDataAntiProtonsExtCov22Pass->Draw("E"); 
1248     c6->SaveAs("cov22.gif");
1249   }
1250
1251   if(gMCProtonsExtCov33Pass->GetEntries() != 0) {
1252     TCanvas *c7 = new TCanvas("c7","Cov33",600,0,600,400);
1253     c7->SetFillColor(10); c7->SetHighLightColor(10);
1254     c7->Divide(2,1);
1255     c7->cd(1); 
1256     gDataProtonsExtCov33Pass->Divide(gMCProtonsExtCov33Pass);
1257     gDataProtonsExtCov33Pass->SetTitle("Protons");
1258     gDataProtonsExtCov33Pass->GetYaxis()->SetTitle("Data/MC");
1259     gDataProtonsExtCov33Pass->Draw("E"); 
1260     c7->cd(2); 
1261     gDataAntiProtonsExtCov33Pass->Divide(gMCAntiProtonsExtCov33Pass);
1262     gDataAntiProtonsExtCov33Pass->SetTitle("Antiprotons");
1263     gDataAntiProtonsExtCov33Pass->GetYaxis()->SetTitle("Data/MC");
1264     gDataAntiProtonsExtCov33Pass->Draw("E"); 
1265     c7->SaveAs("cov33.gif");
1266   }
1267
1268   if(gMCProtonsExtCov44Pass->GetEntries() != 0) {
1269     TCanvas *c8 = new TCanvas("c8","Cov44",600,100,600,400);
1270     c8->SetFillColor(10); c8->SetHighLightColor(10);
1271     c8->Divide(2,1);
1272     c8->cd(1); 
1273     gDataProtonsExtCov44Pass->Divide(gMCProtonsExtCov44Pass);
1274     gDataProtonsExtCov44Pass->SetTitle("Protons");
1275     gDataProtonsExtCov44Pass->GetYaxis()->SetTitle("Data/MC");
1276     gDataProtonsExtCov44Pass->Draw("E"); 
1277     c8->cd(2); 
1278     gDataAntiProtonsExtCov44Pass->Divide(gMCAntiProtonsExtCov44Pass);
1279     gDataAntiProtonsExtCov44Pass->SetTitle("Antiprotons");
1280     gDataAntiProtonsExtCov44Pass->GetYaxis()->SetTitle("Data/MC");
1281     gDataAntiProtonsExtCov44Pass->Draw("E"); 
1282     c8->SaveAs("cov44.gif");
1283   }
1284
1285   if(gMCProtonsExtCov55Pass->GetEntries() != 0) {
1286     TCanvas *c9 = new TCanvas("c9","Cov55",600,200,600,400);
1287     c9->SetFillColor(10); c9->SetHighLightColor(10);
1288     c9->Divide(2,1);
1289     c9->cd(1); 
1290     gDataProtonsExtCov55Pass->Divide(gMCProtonsExtCov55Pass);
1291     gDataProtonsExtCov55Pass->SetTitle("Protons");
1292     gDataProtonsExtCov55Pass->GetYaxis()->SetTitle("Data/MC");
1293     gDataProtonsExtCov55Pass->Draw("E"); 
1294     c9->cd(2); 
1295     gDataAntiProtonsExtCov55Pass->Divide(gMCAntiProtonsExtCov55Pass);
1296     gDataAntiProtonsExtCov55Pass->SetTitle("Antiprotons");
1297     gDataAntiProtonsExtCov55Pass->GetYaxis()->SetTitle("Data/MC");
1298     gDataAntiProtonsExtCov55Pass->Draw("E"); 
1299     c9->SaveAs("cov55.gif");
1300   }
1301
1302   if(gMCProtonsDCAXYPass->GetEntries() != 0) {
1303     TCanvas *c12 = new TCanvas("c12","dca(xy)",600,500,600,400);
1304     c12->SetFillColor(10); c12->SetHighLightColor(10);
1305     c12->Divide(2,1);
1306     c12->cd(1); 
1307     gDataProtonsDCAXYPass->Divide(gMCProtonsDCAXYPass);
1308     gDataProtonsDCAXYPass->SetTitle("Protons");
1309     gDataProtonsDCAXYPass->GetYaxis()->SetTitle("Data/MC");
1310     gDataProtonsDCAXYPass->Draw("E"); 
1311     c12->cd(2); 
1312     gDataAntiProtonsDCAXYPass->Divide(gMCAntiProtonsDCAXYPass);
1313     gDataAntiProtonsDCAXYPass->SetTitle("Antiprotons");
1314     gDataAntiProtonsDCAXYPass->GetYaxis()->SetTitle("Data/MC");
1315     gDataAntiProtonsDCAXYPass->Draw("E"); 
1316     c12->SaveAs("dcaXY.gif");
1317   }
1318
1319   if(gMCProtonsDCAZPass->GetEntries() != 0) {
1320     TCanvas *c14 = new TCanvas("c14","dca(z)",1200,100,600,400);
1321     c14->SetFillColor(10); c14->SetHighLightColor(10);
1322     c14->Divide(2,1);
1323     c14->cd(1); 
1324     gDataProtonsDCAZPass->Divide(gMCProtonsDCAZPass);
1325     gDataProtonsDCAZPass->SetTitle("Protons");
1326     gDataProtonsDCAZPass->GetYaxis()->SetTitle("Data/MC");
1327     gDataProtonsDCAZPass->Draw("E"); 
1328     c14->cd(2); 
1329     gDataAntiProtonsDCAZPass->Divide(gMCAntiProtonsDCAZPass);
1330     gDataAntiProtonsDCAZPass->SetTitle("Antiprotons");
1331     gDataAntiProtonsDCAZPass->GetYaxis()->SetTitle("Data/MC");
1332     gDataAntiProtonsDCAZPass->Draw("E"); 
1333     c14->SaveAs("dcaZ.gif");
1334   }
1335
1336   TCanvas *c16 = new TCanvas("c16","TPC clusters (dE/dx)",1200,300,600,400);
1337   c16->SetFillColor(10); c16->SetHighLightColor(10);
1338   c16->Divide(2,1);
1339   c16->cd(1); 
1340   gDataProtonsNumberOfTPCdEdxPointsPass->Divide(gMCProtonsNumberOfTPCdEdxPointsPass);
1341   gDataProtonsNumberOfTPCdEdxPointsPass->SetTitle("Protons");
1342   gDataProtonsNumberOfTPCdEdxPointsPass->GetYaxis()->SetTitle("Data/MC");
1343   gDataProtonsNumberOfTPCdEdxPointsPass->Draw("E"); 
1344   c16->cd(2); 
1345   gDataAntiProtonsNumberOfTPCdEdxPointsPass->Divide(gMCAntiProtonsNumberOfTPCdEdxPointsPass);
1346   gDataAntiProtonsNumberOfTPCdEdxPointsPass->SetTitle("Antiprotons");
1347   gDataAntiProtonsNumberOfTPCdEdxPointsPass->GetYaxis()->SetTitle("Data/MC");
1348   gDataAntiProtonsNumberOfTPCdEdxPointsPass->Draw("E"); 
1349   c16->SaveAs("NClustersTPCdEdx.gif");
1350 }
1351
1352 void drawDCAPlots(const char* fileName) {
1353   //Function to draw the DCA plots for protons and antiprotons
1354   TString histoTitle, newTitle;
1355   Int_t iCounter = 0;
1356   Double_t etaMin = 0.0, etaMax = 0.0, etaStep = 0.0;
1357   Double_t ptMin = 0.45, ptMax = 0.0, ptStep = 0.1;
1358
1359   TFile *f = TFile::Open(fileName);
1360   TList *listQA = dynamic_cast<TList *>(f->Get("outputQAList"));
1361   TList *gListGlobalQA = dynamic_cast<TList *>(listQA->At(0));
1362   TList *fQA2DList = dynamic_cast<TList *>(gListGlobalQA->At(0));
1363
1364   //2D dca vs pT - accepted protons & antiprotons
1365   TH3F *gHistDCAxyEtaPtProtons = dynamic_cast<TH3F *>(fQA2DList->At(14));
1366   gHistDCAxyEtaPtProtons->SetStats(kFALSE);
1367   TH3F *gHistDCAzEtaPtProtons = dynamic_cast<TH3F *>(fQA2DList->At(15));
1368   gHistDCAzEtaPtProtons->SetStats(kFALSE);
1369   TH3F *gHistDCAxyEtaPtAntiProtons = dynamic_cast<TH3F *>(fQA2DList->At(16));
1370   gHistDCAxyEtaPtAntiProtons->SetStats(kFALSE);
1371   TH3F *gHistDCAzEtaPtAntiProtons = dynamic_cast<TH3F *>(fQA2DList->At(17));
1372   gHistDCAzEtaPtAntiProtons->SetStats(kFALSE);
1373
1374   //Protons dcaXY
1375   ptMin = 0.45, ptMax = 0.0, ptStep = 0.1;
1376   TH1D *gHistProtonsDCAxy[200];
1377   //ptStep = (gHistDCAxyEtaPtProtons->GetYaxis()->GetXmax() - 
1378   //gHistDCAxyEtaPtProtons->GetYaxis()->GetXmin())/gHistDCAxyEtaPtProtons->GetNbinsY();
1379   for(Int_t iBinY = 1; iBinY <= gHistDCAxyEtaPtProtons->GetNbinsY(); iBinY++) {
1380     //ptMin = gHistDCAxyEtaPtProtons->GetYaxis()->GetBinCenter(iBinY) - ptStep/2.;
1381     ptMax = ptMin + ptStep;
1382     //Printf("Pt: %lf - %lf",ptMin,ptMax);
1383     histoTitle = "gHistProtonsDCAxy_etaBin"; //histoTitle += iBinX;
1384     histoTitle += "_ptBin"; histoTitle += iBinY;
1385     newTitle = "(Protons) "; newTitle += ptMin; newTitle += " < Pt < ";
1386     newTitle += ptMax; newTitle += "GeV/c";
1387     ptMin += ptStep;
1388
1389     //gHistPrimaryProtonsDCAxy[iCounter] = gDCAListHistograms3D[0]->ProjectionZ(histoTitle.Data(),iBinX,iBinX,iBinY,iBinY,"e");
1390     gHistProtonsDCAxy[iCounter] = gHistDCAxyEtaPtProtons->ProjectionZ(histoTitle.Data(),1,gHistDCAxyEtaPtProtons->GetNbinsX(),iBinY,iBinY,"e");
1391     gHistProtonsDCAxy[iCounter]->SetStats(kFALSE);
1392     gHistProtonsDCAxy[iCounter]->SetMarkerStyle(24);
1393     gHistProtonsDCAxy[iCounter]->SetTitle(newTitle.Data());
1394     gHistProtonsDCAxy[iCounter]->GetXaxis()->SetTitle("dca_{(xy)} [cm]");
1395     gHistProtonsDCAxy[iCounter]->GetYaxis()->SetTitle("Entries");
1396     iCounter += 1;
1397   }//loop over y axis
1398
1399   //Antiprotons dcaXY
1400   ptMin = 0.45, ptMax = 0.0, ptStep = 0.1;
1401   iCounter = 0;
1402   TH1D *gHistAntiProtonsDCAxy[200];
1403   //ptStep = (gHistDCAxyEtaPtAntiProtons->GetYaxis()->GetXmax() - 
1404   //gHistDCAxyEtaPtAntiProtons->GetYaxis()->GetXmin())/gHistDCAxyEtaPtAntiProtons->GetNbinsY();
1405   for(Int_t iBinY = 1; iBinY <= gHistDCAxyEtaPtAntiProtons->GetNbinsY(); iBinY++) {
1406     //ptMin = gHistDCAxyEtaPtAntiProtons->GetYaxis()->GetBinCenter(iBinY) - ptStep/2.;
1407     ptMax = ptMin + ptStep;
1408     //Printf("Pt: %lf - %lf",ptMin,ptMax);
1409     histoTitle = "gHistAntiProtonsDCAxy_etaBin"; //histoTitle += iBinX;
1410     histoTitle += "_ptBin"; histoTitle += iBinY;
1411     newTitle = "(AntiProtons) "; newTitle += ptMin; newTitle += " < Pt < ";
1412     newTitle += ptMax; newTitle += "GeV/c";
1413     ptMin += ptStep;
1414
1415     //gHistPrimaryAntiProtonsDCAxy[iCounter] = gDCAListHistograms3D[0]->ProjectionZ(histoTitle.Data(),iBinX,iBinX,iBinY,iBinY,"e");
1416     gHistAntiProtonsDCAxy[iCounter] = gHistDCAxyEtaPtAntiProtons->ProjectionZ(histoTitle.Data(),1,gHistDCAxyEtaPtAntiProtons->GetNbinsX(),iBinY,iBinY,"e");
1417     gHistAntiProtonsDCAxy[iCounter]->SetStats(kFALSE);
1418     gHistAntiProtonsDCAxy[iCounter]->SetMarkerStyle(20);
1419     gHistAntiProtonsDCAxy[iCounter]->SetTitle(newTitle.Data());
1420     gHistAntiProtonsDCAxy[iCounter]->GetXaxis()->SetTitle("dca_{(xy)} [cm]");
1421     gHistAntiProtonsDCAxy[iCounter]->GetYaxis()->SetTitle("Entries");
1422     iCounter += 1;
1423   }//loop over y axis
1424
1425
1426   //Protons dcaZ
1427   ptMin = 0.45, ptMax = 0.0, ptStep = 0.1;
1428   iCounter = 0;
1429   TH1D *gHistProtonsDCAz[200];
1430   //ptStep = (gHistDCAzEtaPtProtons->GetYaxis()->GetXmax() - 
1431   //gHistDCAzEtaPtProtons->GetYaxis()->GetXmin())/gHistDCAzEtaPtProtons->GetNbinsY();
1432   for(Int_t iBinY = 1; iBinY <= gHistDCAzEtaPtProtons->GetNbinsY(); iBinY++) {
1433     //ptMin = gHistDCAzEtaPtProtons->GetYaxis()->GetBinCenter(iBinY) - ptStep/2.;
1434     ptMax = ptMin + ptStep;
1435     //Printf("Pt: %lf - %lf",ptMin,ptMax);
1436     histoTitle = "gHistProtonsDCAz_etaBin"; //histoTitle += iBinX;
1437     histoTitle += "_ptBin"; histoTitle += iBinY;
1438     newTitle = "(Protons) "; newTitle += ptMin; newTitle += " < Pt < ";
1439     newTitle += ptMax; newTitle += "GeV/c";
1440     ptMin += ptStep;
1441
1442     //gHistPrimaryProtonsDCAz[iCounter] = gDCAListHistograms3D[0]->ProjectionZ(histoTitle.Data(),iBinX,iBinX,iBinY,iBinY,"e");
1443     gHistProtonsDCAz[iCounter] = gHistDCAzEtaPtProtons->ProjectionZ(histoTitle.Data(),1,gHistDCAzEtaPtProtons->GetNbinsX(),iBinY,iBinY,"e");
1444     gHistProtonsDCAz[iCounter]->SetStats(kFALSE);
1445     gHistProtonsDCAz[iCounter]->SetMarkerStyle(24);
1446     gHistProtonsDCAz[iCounter]->SetTitle(newTitle.Data());
1447     gHistProtonsDCAz[iCounter]->GetXaxis()->SetTitle("dca_{(z)} [cm]");
1448     gHistProtonsDCAz[iCounter]->GetYaxis()->SetTitle("Entries");
1449     iCounter += 1;
1450   }//loop over y axis
1451
1452   //Antiprotons dcaZ
1453   ptMin = 0.45, ptMax = 0.0, ptStep = 0.1;
1454   iCounter = 0;
1455   TH1D *gHistAntiProtonsDCAz[200];
1456   //ptStep = (gHistDCAzEtaPtAntiProtons->GetYaxis()->GetXmax() - 
1457   //gHistDCAzEtaPtAntiProtons->GetYaxis()->GetXmin())/gHistDCAzEtaPtAntiProtons->GetNbinsY();
1458   for(Int_t iBinY = 1; iBinY <= gHistDCAzEtaPtAntiProtons->GetNbinsY(); iBinY++) {
1459     //ptMin = gHistDCAzEtaPtAntiProtons->GetYaxis()->GetBinCenter(iBinY) - ptStep/2.;
1460     ptMax = ptMin + ptStep;
1461     //Printf("Pt: %lf - %lf",ptMin,ptMax);
1462     histoTitle = "gHistAntiProtonsDCAz_etaBin"; //histoTitle += iBinX;
1463     histoTitle += "_ptBin"; histoTitle += iBinY;
1464     newTitle = "(AntiProtons) "; newTitle += ptMin; newTitle += " < Pt < ";
1465     newTitle += ptMax; newTitle += "GeV/c";
1466     ptMin += ptStep;
1467
1468     //gHistPrimaryAntiProtonsDCAz[iCounter] = gDCAListHistograms3D[0]->ProjectionZ(histoTitle.Data(),iBinX,iBinX,iBinY,iBinY,"e");
1469     gHistAntiProtonsDCAz[iCounter] = gHistDCAzEtaPtAntiProtons->ProjectionZ(histoTitle.Data(),1,gHistDCAzEtaPtAntiProtons->GetNbinsX(),iBinY,iBinY,"e");
1470     gHistAntiProtonsDCAz[iCounter]->SetStats(kFALSE);
1471     gHistAntiProtonsDCAz[iCounter]->SetMarkerStyle(20);
1472     gHistAntiProtonsDCAz[iCounter]->SetTitle(newTitle.Data());
1473     gHistAntiProtonsDCAz[iCounter]->GetXaxis()->SetTitle("dca_{(z)} [cm]");
1474     gHistAntiProtonsDCAz[iCounter]->GetYaxis()->SetTitle("Entries");
1475     iCounter += 1;
1476   }//loop over y axis
1477
1478
1479
1480   //==========================================================//
1481   TCanvas *c1 = new TCanvas("c1","DCA(3D)",0,0,600,600);
1482   c1->SetFillColor(10); c1->SetHighLightColor(10); c1->Divide(2,2);
1483   c1->cd(1); gHistDCAxyEtaPtProtons->Draw("box");
1484   c1->cd(2); gHistDCAzEtaPtProtons->Draw("box");
1485   c1->cd(3); gHistDCAxyEtaPtAntiProtons->Draw("box");
1486   c1->cd(4); gHistDCAzEtaPtAntiProtons->Draw("box");
1487
1488   //==========================================================//
1489   TCanvas *c2 = new TCanvas("c2","DCA(xy)",100,100,900,600);
1490   c2->SetFillColor(10); c2->SetHighLightColor(10); c2->Divide(3,2);
1491   c2->cd(1)->SetLogy(); gHistProtonsDCAxy[0]->Draw("E");
1492   gHistAntiProtonsDCAxy[0]->Draw("ESAME");
1493   c2->cd(2)->SetLogy(); gHistProtonsDCAxy[1]->Draw("E");
1494   gHistAntiProtonsDCAxy[1]->Draw("ESAME");
1495   c2->cd(3)->SetLogy(); gHistProtonsDCAxy[2]->Draw("E");
1496   gHistAntiProtonsDCAxy[2]->Draw("ESAME");
1497   c2->cd(4)->SetLogy(); gHistProtonsDCAxy[3]->Draw("E");
1498   gHistAntiProtonsDCAxy[3]->Draw("ESAME");
1499   c2->cd(5)->SetLogy(); gHistProtonsDCAxy[4]->Draw("E");
1500   gHistAntiProtonsDCAxy[4]->Draw("ESAME");
1501   c2->cd(6)->SetLogy(); gHistProtonsDCAxy[5]->Draw("E");
1502   gHistAntiProtonsDCAxy[5]->Draw("ESAME");
1503
1504   TFile *fout = TFile::Open("test.root","recreate");
1505   gHistProtonsDCAxy[0]->Write();
1506   gHistProtonsDCAxy[1]->Write();
1507   gHistProtonsDCAxy[2]->Write();
1508   gHistProtonsDCAxy[3]->Write();
1509   gHistProtonsDCAxy[4]->Write();
1510   gHistProtonsDCAxy[5]->Write();
1511   gHistAntiProtonsDCAxy[0]->Write();
1512   gHistAntiProtonsDCAxy[1]->Write();
1513   gHistAntiProtonsDCAxy[2]->Write();
1514   gHistAntiProtonsDCAxy[3]->Write();
1515   gHistAntiProtonsDCAxy[4]->Write();
1516   gHistAntiProtonsDCAxy[5]->Write();
1517   gHistProtonsDCAz[0]->Write();
1518   gHistProtonsDCAz[1]->Write();
1519   gHistProtonsDCAz[2]->Write();
1520   gHistProtonsDCAz[3]->Write();
1521   gHistProtonsDCAz[4]->Write();
1522   gHistProtonsDCAz[5]->Write();
1523   gHistAntiProtonsDCAz[0]->Write();
1524   gHistAntiProtonsDCAz[1]->Write();
1525   gHistAntiProtonsDCAz[2]->Write();
1526   gHistAntiProtonsDCAz[3]->Write();
1527   gHistAntiProtonsDCAz[4]->Write();
1528   gHistAntiProtonsDCAz[5]->Write();
1529   fout->Close();
1530   //==========================================================//
1531   TCanvas *c3 = new TCanvas("c3","DCA(z)",200,200,900,600);
1532   c3->SetFillColor(10); c3->SetHighLightColor(10); c3->Divide(3,2);
1533   c3->cd(1)->SetLogy(); gHistProtonsDCAz[0]->Draw("E");
1534   gHistAntiProtonsDCAz[0]->Draw("ESAME");
1535   c3->cd(2)->SetLogy(); gHistProtonsDCAz[1]->Draw("E");
1536   gHistAntiProtonsDCAz[1]->Draw("ESAME");
1537   c3->cd(3)->SetLogy(); gHistProtonsDCAz[2]->Draw("E");
1538   gHistAntiProtonsDCAz[2]->Draw("ESAME");
1539   c3->cd(4)->SetLogy(); gHistProtonsDCAz[3]->Draw("E");
1540   gHistAntiProtonsDCAz[3]->Draw("ESAME");
1541   c3->cd(5)->SetLogy(); gHistProtonsDCAz[4]->Draw("E");
1542   gHistAntiProtonsDCAz[4]->Draw("ESAME");
1543   c3->cd(6)->SetLogy(); gHistProtonsDCAz[5]->Draw("E");
1544   gHistAntiProtonsDCAz[5]->Draw("ESAME");
1545
1546 }
1547