Adding the QA plot for the pid efficiency/contamination vs the number of TPC points...
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliProtonQAAnalysis.cxx
1 /**************************************************************************
2  * Author: Panos Christakoglou.                                           *
3  * Contributors are mentioned in the code where appropriate.              *
4  *                                                                        *
5  * Permission to use, copy, modify and distribute this software and its   *
6  * documentation strictly for non-commercial purposes is hereby granted   *
7  * without fee, provided that the above copyright notice appears in all   *
8  * copies and that both the copyright notice and this permission notice   *
9  * appear in the supporting documentation. The authors make no claims     *
10  * about the suitability of this software for any purpose. It is          *
11  * provided "as is" without express or implied warranty.                  *
12  **************************************************************************/
13
14 /* $Id: AliProtonQAAnalysis.cxx 29114 2008-10-03 16:49:02Z pchrist $ */
15
16 //-----------------------------------------------------------------
17 //                 AliProtonQAAnalysis class
18 //   This is the class to deal with the proton analysis
19 //   Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch
20 //-----------------------------------------------------------------
21 #include <Riostream.h>
22 #include <TSystem.h>
23 #include <TF1.h>
24 #include <TH2D.h>
25 #include <TH3F.h>
26 #include <TH1D.h>
27 #include <TArrayI.h>
28 #include <TParticle.h>
29
30 #include "AliProtonQAAnalysis.h"
31 #include "AliProtonAnalysisBase.h"
32
33 #include <AliExternalTrackParam.h>
34 #include <AliESDEvent.h>
35 #include <AliLog.h>
36 #include <AliPID.h>
37 #include <AliStack.h>
38 #include <AliESDVertex.h>
39 #include <AliGenEventHeader.h>
40 #include <AliMCEvent.h>
41
42 ClassImp(AliProtonQAAnalysis)
43
44 //____________________________________________________________________//
45 AliProtonQAAnalysis::AliProtonQAAnalysis() : 
46   TObject(), fProtonAnalysisBase(0),
47   fNBinsY(0), fMinY(0), fMaxY(0),
48   fNBinsPt(0), fMinPt(0), fMaxPt(0),
49   fGlobalQAList(0), fQAVertexList(0), fQA2DList(0),
50   fQAPrimaryProtonsAcceptedList(0),
51   fQAPrimaryProtonsRejectedList(0),
52   fQASecondaryProtonsAcceptedList(0),
53   fQASecondaryProtonsRejectedList(0),
54   fQAPrimaryAntiProtonsAcceptedList(0),
55   fQAPrimaryAntiProtonsRejectedList(0),
56   fQASecondaryAntiProtonsAcceptedList(0),
57   fQASecondaryAntiProtonsRejectedList(0),
58   fPDGList(0), fMCProcessesList(0),
59   fRunMCAnalysis(kFALSE),
60   fMCProcessIdFlag(kFALSE), fMCProcessId(0),
61   fMotherParticlePDGCodeFlag(kFALSE), fMotherParticlePDGCode(0),
62   fAcceptedCutList(0), fRejectedCutList(0),
63   fAcceptedDCAList(0), fRejectedDCAList(0),
64   fRunEfficiencyAnalysis(kFALSE),
65   fUseCutsInEfficiency(kFALSE),
66   fEfficiencyList(0) {
67   //Default constructor
68 }
69
70 //____________________________________________________________________//
71 AliProtonQAAnalysis::~AliProtonQAAnalysis() {
72   //Default destructor
73   if(fProtonAnalysisBase) delete fProtonAnalysisBase;
74   if(fGlobalQAList) delete fGlobalQAList;
75   if(fQAVertexList) delete fQAVertexList;
76   if(fQA2DList) delete fQA2DList;
77   if(fQAPrimaryProtonsAcceptedList) delete fQAPrimaryProtonsAcceptedList;
78   if(fQAPrimaryProtonsRejectedList) delete fQAPrimaryProtonsRejectedList;
79   if(fQASecondaryProtonsAcceptedList) delete fQASecondaryProtonsAcceptedList;
80   if(fQASecondaryProtonsRejectedList) delete fQASecondaryProtonsRejectedList;
81   if(fQAPrimaryAntiProtonsAcceptedList) 
82     delete fQAPrimaryAntiProtonsAcceptedList;
83   if(fQAPrimaryAntiProtonsRejectedList) 
84     delete fQAPrimaryAntiProtonsRejectedList;
85   if(fQASecondaryAntiProtonsAcceptedList) 
86     delete fQASecondaryAntiProtonsAcceptedList;
87   if(fQASecondaryAntiProtonsRejectedList) 
88     delete fQASecondaryAntiProtonsRejectedList; 
89
90   if(fPDGList) delete fPDGList;
91   if(fMCProcessesList) delete fMCProcessesList;
92   
93   if(fAcceptedCutList) delete fAcceptedCutList;
94   if(fRejectedCutList) delete fRejectedCutList;
95   if(fAcceptedDCAList) delete fAcceptedDCAList;
96   if(fRejectedDCAList) delete fRejectedDCAList;
97  
98   if(fEfficiencyList) delete fEfficiencyList;
99 }
100
101 //____________________________________________________________________//
102 void AliProtonQAAnalysis::FillQA(AliStack *const stack,
103                                  AliESDEvent *esd,
104                                  const AliESDVertex *vertex, 
105                                  AliESDtrack* track) {
106   // Checks if the track is excluded from the cuts
107   Int_t nPrimaries = stack->GetNprimary();
108   Int_t label = TMath::Abs(track->GetLabel());
109
110   Double_t gPt = 0.0, gPx = 0.0, gPy = 0.0, gPz = 0.0;
111   Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0};  //The impact parameters and their covariance.
112
113   if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
114     AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
115     if(!tpcTrack) {
116       gPt = 0.0; gPx = 0.0; gPy = 0.0; gPz = 0.0;
117       dca[0] = -100.; dca[1] = -100.;
118       cov[0] = -100.; cov[1] = -100.; cov[2] = -100.;
119     }
120     else {
121       gPt = tpcTrack->Pt();
122       gPx = tpcTrack->Px();
123       gPy = tpcTrack->Py();
124       gPz = tpcTrack->Pz();
125       tpcTrack->PropagateToDCA(vertex,
126                                esd->GetMagneticField(),
127                                100.,dca,cov);
128     }
129   }
130   else{
131     gPt = track->Pt();
132     gPx = track->Px();
133     gPy = track->Py();
134     gPz = track->Pz();
135     track->PropagateToDCA(vertex,
136                           esd->GetMagneticField(),
137                           100.,dca,cov);
138   }
139
140   Int_t  fIdxInt[200];
141   Int_t nClustersITS = track->GetITSclusters(fIdxInt);
142   Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
143
144   Float_t chi2PerClusterITS = -1;
145   if (nClustersITS!=0)
146     chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
147   Float_t chi2PerClusterTPC = -1;
148   if (nClustersTPC!=0)
149     chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
150
151   Double_t extCov[15];
152   track->GetExternalCovariance(extCov);
153   
154   //protons
155   if(track->Charge() > 0) {
156     //Primaries
157     if(label <= nPrimaries) {
158       if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
159         if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
160           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
161         }
162         else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters()) 
163           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
164       }//ITS clusters
165       if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
166         if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
167           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
168         }
169         else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
170           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
171       }//chi2 per ITS cluster
172       if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
173         if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
174           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(2)))->Fill(nClustersTPC);
175         }
176         else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
177           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
178         }
179       }//TPC clusters
180       if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
181         if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
182           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
183         }
184         else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
185           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
186       }//chi2 per TPC cluster
187       if(fProtonAnalysisBase->IsUsedMaxCov11()) {
188         if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
189           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(4)))->Fill(extCov[0]);
190         }
191         else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
192           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
193       }//cov11
194       if(fProtonAnalysisBase->IsUsedMaxCov22()) {
195         if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
196           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
197         }
198         else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
199           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
200       }//cov11
201       if(fProtonAnalysisBase->IsUsedMaxCov33()) {
202         if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
203           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
204         }
205         else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
206           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
207       }//cov11
208       if(fProtonAnalysisBase->IsUsedMaxCov44()) {
209         if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
210           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
211         }
212         else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
213           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
214       }//cov11
215       if(fProtonAnalysisBase->IsUsedMaxCov55()) {
216         if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
217           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
218         }
219         else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
220           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
221       }//cov55
222       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
223         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
224           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
225         }
226         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
227           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
228       }//sigma to vertex
229       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
230         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
231           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
232         }
233         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
234           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
235       }//sigma to vertex TPC
236       if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
237         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
238           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
239         }
240         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
241           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
242       }//DCA xy global tracking
243       if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
244         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
245           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
246         }
247         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
248           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
249       }//DCA xy TPC tracking
250       if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
251         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
252           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
253         }
254         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
255           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
256       }//DCA z global tracking
257       if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
258         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
259           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
260         }
261         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
262           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
263       }//DCA z TPC tracking
264       if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
265         if(track->GetConstrainedChi2() > 0) {
266           if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
267             ((TH1F *)(fQAPrimaryProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
268           }
269           else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
270             ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
271         }
272       }//constrain chi2 - vertex
273       if(fProtonAnalysisBase->IsUsedITSRefit()) {
274         if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
275           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(16)))->Fill(0);
276         }
277         else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
278           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(16)))->Fill(0);
279       }//ITS refit
280       if(fProtonAnalysisBase->IsUsedTPCRefit()) {
281         if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
282           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(17)))->Fill(0);
283         }
284         else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
285           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(17)))->Fill(0);
286       }//TPC refit
287       if(fProtonAnalysisBase->IsUsedESDpid()) {
288         if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
289           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(18)))->Fill(0);
290         }
291         else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
292           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(18)))->Fill(0);
293       }//ESD pid
294       if(fProtonAnalysisBase->IsUsedTPCpid()) {
295         if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
296           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(19)))->Fill(0);
297         }
298         else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
299           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(19)))->Fill(0);
300       }//TPC pid
301       if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
302         if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
303           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
304         }
305         if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
306           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(20)))->Fill(track->GetTPCsignalN());
307       }//number of TPC points for the dE/dx
308       if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
309         if(!track->HasPointOnITSLayer(0)) {
310           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(21)))->Fill(0);
311         }
312         else if(track->HasPointOnITSLayer(0))
313           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(21)))->Fill(0);
314       }//point on SPD1
315       if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
316         if(!track->HasPointOnITSLayer(1)) {
317           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(22)))->Fill(0);
318         }
319         else if(track->HasPointOnITSLayer(1))
320           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(22)))->Fill(0);
321       }//point on SPD2
322       if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
323         if(!track->HasPointOnITSLayer(2)) {
324           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(23)))->Fill(0);
325         }
326         else if(track->HasPointOnITSLayer(2))
327           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(23)))->Fill(0);
328       }//point on SDD1
329       if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
330         if(!track->HasPointOnITSLayer(3)) {
331           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(24)))->Fill(0);
332         }
333         else if(track->HasPointOnITSLayer(3))
334           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(24)))->Fill(0);
335       }//point on SDD2
336       if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
337         if(!track->HasPointOnITSLayer(4)) {
338           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(25)))->Fill(0);
339         }
340         else if(track->HasPointOnITSLayer(4))
341           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(25)))->Fill(0);
342       }//point on SSD1
343       if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
344         if(!track->HasPointOnITSLayer(5)) {
345           ((TH1F *)(fQAPrimaryProtonsRejectedList->At(26)))->Fill(0);
346         }
347         else if(track->HasPointOnITSLayer(5))
348           ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(26)))->Fill(0);
349       }//point on SSD2
350     }//primary particle cut
351
352     //Secondaries
353     if(label > nPrimaries) {
354       if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
355         if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
356           ((TH1F *)(fQASecondaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
357         }
358         else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters()) 
359           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
360       }//ITS clusters
361       if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
362         if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
363           ((TH1F *)(fQASecondaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
364         }
365         else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
366           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
367       }//chi2 per ITS cluster
368       if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
369         if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
370           //cout<<"Secondary proton rejected"<<endl;
371           ((TH1F *)(fQASecondaryProtonsRejectedList->At(2)))->Fill(nClustersTPC);
372         }
373         else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
374           //cout<<"Secondary proton accepted"<<endl;
375           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
376         }
377       }//TPC clusters
378       if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
379         if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
380           ((TH1F *)(fQASecondaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
381         }
382         else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
383           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
384       }//chi2 per TPC cluster
385       if(fProtonAnalysisBase->IsUsedMaxCov11()) {
386         if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
387           ((TH1F *)(fQASecondaryProtonsRejectedList->At(4)))->Fill(extCov[0]);
388         }
389         else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
390           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
391       }//cov11
392       if(fProtonAnalysisBase->IsUsedMaxCov22()) {
393         if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
394           ((TH1F *)(fQASecondaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
395         }
396         else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
397           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
398       }//cov11
399       if(fProtonAnalysisBase->IsUsedMaxCov33()) {
400         if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
401           ((TH1F *)(fQASecondaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
402         }
403         else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
404           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
405       }//cov11
406       if(fProtonAnalysisBase->IsUsedMaxCov44()) {
407         if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
408           ((TH1F *)(fQASecondaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
409         }
410         else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
411           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
412       }//cov11
413       if(fProtonAnalysisBase->IsUsedMaxCov55()) {
414         if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
415           ((TH1F *)(fQASecondaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
416         }
417         else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
418           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
419       }//cov55
420       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
421         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
422           ((TH1F *)(fQASecondaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
423         }
424         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
425           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
426       }//sigma to vertex
427       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
428         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
429           ((TH1F *)(fQASecondaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
430         }
431         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
432           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
433       }//sigma to vertex TPC
434       if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
435         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
436           ((TH1F *)(fQASecondaryProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
437         }
438         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
439           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
440       }//DCA xy global tracking
441       if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
442         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
443           ((TH1F *)(fQASecondaryProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
444         }
445         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
446           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
447       }//DCA xy TPC tracking
448       if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
449         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
450           ((TH1F *)(fQASecondaryProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
451         }
452         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
453           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
454       }//DCA z global tracking
455       if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
456         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
457           ((TH1F *)(fQASecondaryProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
458         }
459         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
460           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
461       }//DCA z TPC tracking
462       if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
463         if(track->GetConstrainedChi2() > 0) {
464           if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
465             ((TH1F *)(fQASecondaryProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
466           }
467           else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
468             ((TH1F *)(fQASecondaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
469         }
470       }//constrain chi2 - vertex
471       if(fProtonAnalysisBase->IsUsedITSRefit()) {
472         if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
473           ((TH1F *)(fQASecondaryProtonsRejectedList->At(16)))->Fill(0);
474         }
475         else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
476           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(16)))->Fill(0);
477       }//ITS refit
478       if(fProtonAnalysisBase->IsUsedTPCRefit()) {
479         if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
480           ((TH1F *)(fQASecondaryProtonsRejectedList->At(17)))->Fill(0);
481         }
482         else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
483           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(17)))->Fill(0);
484       }//TPC refit
485       if(fProtonAnalysisBase->IsUsedESDpid()) {
486         if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
487           ((TH1F *)(fQASecondaryProtonsRejectedList->At(18)))->Fill(0);
488         }
489         else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
490           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(18)))->Fill(0);
491       }//ESD pid
492       if(fProtonAnalysisBase->IsUsedTPCpid()) {
493         if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
494           ((TH1F *)(fQASecondaryProtonsRejectedList->At(19)))->Fill(0);
495         }
496         else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
497           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(19)))->Fill(0);
498       }//TPC pid
499       if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
500         if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
501           ((TH1F *)(fQASecondaryProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
502         }
503         if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
504           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(20)))->Fill(track->GetTPCsignalN());
505       }//number of TPC points for the dE/dx
506       if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
507         if(!track->HasPointOnITSLayer(0)) {
508           ((TH1F *)(fQASecondaryProtonsRejectedList->At(21)))->Fill(0);
509         }
510         else if(track->HasPointOnITSLayer(0))
511           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(21)))->Fill(0);
512       }//point on SPD1
513       if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
514         if(!track->HasPointOnITSLayer(1)) {
515           ((TH1F *)(fQASecondaryProtonsRejectedList->At(22)))->Fill(0);
516         }
517         else if(track->HasPointOnITSLayer(1))
518           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(22)))->Fill(0);
519       }//point on SPD2
520       if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
521         if(!track->HasPointOnITSLayer(2)) {
522           ((TH1F *)(fQASecondaryProtonsRejectedList->At(23)))->Fill(0);
523         }
524         else if(track->HasPointOnITSLayer(2))
525           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(23)))->Fill(0);
526       }//point on SDD1
527       if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
528         if(!track->HasPointOnITSLayer(3)) {
529           ((TH1F *)(fQASecondaryProtonsRejectedList->At(24)))->Fill(0);
530         }
531         else if(track->HasPointOnITSLayer(3))
532           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(24)))->Fill(0);
533       }//point on SDD2
534       if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
535         if(!track->HasPointOnITSLayer(4)) {
536           ((TH1F *)(fQASecondaryProtonsRejectedList->At(25)))->Fill(0);
537         }
538         else if(track->HasPointOnITSLayer(4))
539           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(25)))->Fill(0);
540       }//point on SSD1
541       if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
542         if(!track->HasPointOnITSLayer(5)) {
543           ((TH1F *)(fQASecondaryProtonsRejectedList->At(26)))->Fill(0);
544         }
545         else if(track->HasPointOnITSLayer(5))
546           ((TH1F *)(fQASecondaryProtonsAcceptedList->At(26)))->Fill(0);
547       }//point on SSD2
548     }//secondary particle cut
549   }//protons
550
551   //antiprotons
552   if(track->Charge() < 0) {
553     //Primaries
554     if(label <= nPrimaries) {
555       if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
556         if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
557           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
558         }
559         else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters()) 
560           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
561       }//ITS clusters
562       if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
563         if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
564           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
565         }
566         else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
567           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
568       }//chi2 per ITS cluster
569       if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
570         if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
571           //cout<<"Primary antiproton rejected"<<endl;
572           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(2)))->Fill(nClustersTPC);
573         }
574         else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
575           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
576         }
577       }//TPC clusters
578       if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
579         if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
580           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
581         }
582         else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
583           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
584       }//chi2 per TPC cluster
585       if(fProtonAnalysisBase->IsUsedMaxCov11()) {
586         if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
587           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(4)))->Fill(extCov[0]);
588         }
589         else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
590           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
591       }//cov11
592       if(fProtonAnalysisBase->IsUsedMaxCov22()) {
593         if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
594           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
595         }
596         else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
597           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
598       }//cov11
599       if(fProtonAnalysisBase->IsUsedMaxCov33()) {
600         if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
601           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
602         }
603         else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
604           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
605       }//cov11
606       if(fProtonAnalysisBase->IsUsedMaxCov44()) {
607         if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
608           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
609         }
610         else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
611           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
612       }//cov11
613       if(fProtonAnalysisBase->IsUsedMaxCov55()) {
614         if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
615           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
616         }
617         else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
618           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
619       }//cov55
620       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
621         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
622           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
623         }
624         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
625           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
626       }//sigma to vertex
627       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
628         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
629           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
630         }
631         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
632           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
633       }//sigma to vertex TPC
634       if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
635         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
636           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
637         }
638         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
639           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
640       }//DCA xy global tracking
641       if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
642         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
643           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
644         }
645         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
646           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
647       }//DCA xy TPC tracking
648       if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
649         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
650           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
651         }
652         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
653           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
654       }//DCA z global tracking
655       if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
656         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
657           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
658         }
659         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
660           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
661       }//DCA z TPC tracking
662       if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
663         if(track->GetConstrainedChi2() > 0) {
664           if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
665             ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
666           }
667           else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
668             ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
669         }
670       }//constrain chi2 - vertex
671       if(fProtonAnalysisBase->IsUsedITSRefit()) {
672         if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
673           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(16)))->Fill(0);
674         }
675         else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
676           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(16)))->Fill(0);
677       }//ITS refit
678       if(fProtonAnalysisBase->IsUsedTPCRefit()) {
679         if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
680           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(17)))->Fill(0);
681         }
682         else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
683           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(17)))->Fill(0);
684       }//TPC refit
685       if(fProtonAnalysisBase->IsUsedESDpid()) {
686         if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
687           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(18)))->Fill(0);
688         }
689         else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
690           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(18)))->Fill(0);
691       }//ESD pid
692       if(fProtonAnalysisBase->IsUsedTPCpid()) {
693         if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
694           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(19)))->Fill(0);
695         }
696         else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
697           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(19)))->Fill(0);
698       }//TPC pid
699       if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
700         if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
701           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
702         }
703         if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
704           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(20)))->Fill(track->GetTPCsignalN());
705       }//number of TPC points for the dE/dx
706       if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
707         if(!track->HasPointOnITSLayer(0)) {
708           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(21)))->Fill(0);
709         }
710         else if(track->HasPointOnITSLayer(0))
711           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(21)))->Fill(0);
712       }//point on SPD1
713       if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
714         if(!track->HasPointOnITSLayer(1)) {
715           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(22)))->Fill(0);
716         }
717         else if(track->HasPointOnITSLayer(1))
718           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(22)))->Fill(0);
719       }//point on SPD2
720       if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
721         if(!track->HasPointOnITSLayer(2)) {
722           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(23)))->Fill(0);
723         }
724         else if(track->HasPointOnITSLayer(2))
725           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(23)))->Fill(0);
726       }//point on SDD1
727       if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
728         if(!track->HasPointOnITSLayer(3)) {
729           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(24)))->Fill(0);
730         }
731         else if(track->HasPointOnITSLayer(3))
732           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(24)))->Fill(0);
733       }//point on SDD2
734       if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
735         if(!track->HasPointOnITSLayer(4)) {
736           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(25)))->Fill(0);
737         }
738         else if(track->HasPointOnITSLayer(4))
739           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(25)))->Fill(0);
740       }//point on SSD1
741       if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
742         if(!track->HasPointOnITSLayer(5)) {
743           ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(26)))->Fill(0);
744         }
745         else if(track->HasPointOnITSLayer(5))
746           ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(26)))->Fill(0);
747       }//point on SSD2
748     }//primary particle cut
749
750     //Secondaries
751     if(label > nPrimaries) {
752       if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
753         if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
754           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
755         }
756         else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters()) 
757           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
758       }//ITS clusters
759       if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
760         if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
761           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
762         }
763         else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
764           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
765       }//chi2 per ITS cluster
766       if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
767         if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
768           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(2)))->Fill(nClustersTPC);
769         }
770         else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
771           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
772         }
773       }//TPC clusters
774       if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
775         if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
776           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
777         }
778         else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
779           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
780       }//chi2 per TPC cluster
781       if(fProtonAnalysisBase->IsUsedMaxCov11()) {
782         if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
783           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(4)))->Fill(extCov[0]);
784         }
785         else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
786           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
787       }//cov11
788       if(fProtonAnalysisBase->IsUsedMaxCov22()) {
789         if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
790           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
791         }
792         else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
793           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
794       }//cov11
795       if(fProtonAnalysisBase->IsUsedMaxCov33()) {
796         if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
797           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
798         }
799         else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
800           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
801       }//cov11
802       if(fProtonAnalysisBase->IsUsedMaxCov44()) {
803         if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
804           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
805         }
806         else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
807           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
808       }//cov11
809       if(fProtonAnalysisBase->IsUsedMaxCov55()) {
810         if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
811           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
812         }
813         else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
814           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
815       }//cov55
816       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
817         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
818           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
819         }
820         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
821           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
822       }//sigma to vertex
823       if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
824         if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
825           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
826         }
827         else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
828           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
829       }//sigma to vertex TPC
830       if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
831         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
832           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
833         }
834         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
835           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
836       }//DCA xy global tracking
837       if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
838         if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
839           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
840         }
841         else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
842           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
843       }//DCA xy TPC tracking
844       if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
845         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
846           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
847         }
848         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
849           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
850       }//DCA z global tracking
851       if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
852         if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
853           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
854         }
855         else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
856           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
857       }//DCA z TPC tracking
858       if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
859         if(track->GetConstrainedChi2() > 0) {
860           if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
861             ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
862           }
863           else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
864             ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
865         }
866       }//constrain chi2 - vertex
867       if(fProtonAnalysisBase->IsUsedITSRefit()) {
868         if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
869           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(16)))->Fill(0);
870         }
871         else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
872           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(16)))->Fill(0);
873       }//ITS refit
874       if(fProtonAnalysisBase->IsUsedTPCRefit()) {
875         if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
876           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(17)))->Fill(0);
877         }
878         else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
879           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(17)))->Fill(0);
880       }//TPC refit
881       if(fProtonAnalysisBase->IsUsedESDpid()) {
882         if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
883           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(18)))->Fill(0);
884         }
885         else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
886           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(18)))->Fill(0);
887       }//ESD pid
888       if(fProtonAnalysisBase->IsUsedTPCpid()) {
889         if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
890           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(19)))->Fill(0);
891         }
892         else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
893           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(19)))->Fill(0);
894       }//TPC pid
895       if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
896         if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
897           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
898         }
899         if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
900           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(20)))->Fill(track->GetTPCsignalN());
901       }//number of TPC points for the dE/dx
902       if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
903         if(!track->HasPointOnITSLayer(0)) {
904           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(21)))->Fill(0);
905         }
906         else if(track->HasPointOnITSLayer(0))
907           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(21)))->Fill(0);
908       }//point on SPD1
909       if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
910         if(!track->HasPointOnITSLayer(1)) {
911           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(22)))->Fill(0);
912         }
913         else if(track->HasPointOnITSLayer(1))
914           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(22)))->Fill(0);
915       }//point on SPD2
916       if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
917         if(!track->HasPointOnITSLayer(2)) {
918           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(23)))->Fill(0);
919         }
920         else if(track->HasPointOnITSLayer(2))
921           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(23)))->Fill(0);
922       }//point on SDD1
923       if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
924         if(!track->HasPointOnITSLayer(3)) {
925           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(24)))->Fill(0);
926         }
927         else if(track->HasPointOnITSLayer(3))
928           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(24)))->Fill(0);
929       }//point on SDD2
930       if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
931         if(!track->HasPointOnITSLayer(4)) {
932           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(25)))->Fill(0);
933         }
934         else if(track->HasPointOnITSLayer(4))
935           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(25)))->Fill(0);
936       }//point on SSD1
937       if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
938         if(!track->HasPointOnITSLayer(5)) {
939           ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(26)))->Fill(0);
940         }
941         else if(track->HasPointOnITSLayer(5))
942           ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(26)))->Fill(0);
943       }//point on SSD2
944     }//secondary particle cut
945   }//antiprotons
946 }
947
948 //____________________________________________________________________//
949 void AliProtonQAAnalysis::SetRunQAAnalysis() {
950   //initializes the QA lists
951   //fQAHistograms = kTRUE;
952   fGlobalQAList = new TList();
953
954   fQA2DList = new TList();
955   fQA2DList->SetName("fQA2DList");
956   fGlobalQAList->Add(fQA2DList);
957   
958   fQAPrimaryProtonsAcceptedList = new TList();
959   fQAPrimaryProtonsAcceptedList->SetName("fQAPrimaryProtonsAcceptedList");
960   fGlobalQAList->Add(fQAPrimaryProtonsAcceptedList);
961   
962   fQAPrimaryProtonsRejectedList = new TList();
963   fQAPrimaryProtonsRejectedList->SetName("fQAPrimaryProtonsRejectedList");
964   fGlobalQAList->Add(fQAPrimaryProtonsRejectedList);
965   
966   fQASecondaryProtonsAcceptedList = new TList();
967   fQASecondaryProtonsAcceptedList->SetName("fQASecondaryProtonsAcceptedList");
968   fGlobalQAList->Add(fQASecondaryProtonsAcceptedList);
969   
970   fQASecondaryProtonsRejectedList = new TList();
971   fQASecondaryProtonsRejectedList->SetName("fQASecondaryProtonsRejectedList");
972   fGlobalQAList->Add(fQASecondaryProtonsRejectedList);
973   
974   fQAPrimaryAntiProtonsAcceptedList = new TList();
975   fQAPrimaryAntiProtonsAcceptedList->SetName("fQAPrimaryAntiProtonsAcceptedList");
976   fGlobalQAList->Add(fQAPrimaryAntiProtonsAcceptedList);
977   
978   fQAPrimaryAntiProtonsRejectedList = new TList();
979   fQAPrimaryAntiProtonsRejectedList->SetName("fQAPrimaryAntiProtonsRejectedList");
980   fGlobalQAList->Add(fQAPrimaryAntiProtonsRejectedList);
981   
982   fQASecondaryAntiProtonsAcceptedList = new TList();
983   fQASecondaryAntiProtonsAcceptedList->SetName("fQASecondaryAntiProtonsAcceptedList");
984   fGlobalQAList->Add(fQASecondaryAntiProtonsAcceptedList);
985   
986   fQASecondaryAntiProtonsRejectedList = new TList();
987   fQASecondaryAntiProtonsRejectedList->SetName("fQASecondaryAntiProtonsRejectedList");
988   fGlobalQAList->Add(fQASecondaryAntiProtonsRejectedList);
989 }
990
991 //____________________________________________________________________//
992 void AliProtonQAAnalysis::SetQAYPtBins(Int_t nbinsY, 
993                                        Double_t minY, Double_t maxY,
994                                        Int_t nbinsPt, 
995                                        Double_t minPt, Double_t maxPt) {
996   //Initializes the QA binning
997   fNBinsY = nbinsY;
998   fMinY = minY; fMaxY = maxY;
999   fNBinsPt = nbinsPt;
1000   fMinPt = minPt; fMaxPt = maxPt;
1001   InitQA();
1002   InitCutLists();
1003   InitVertexQA();
1004   if(fRunMCAnalysis) InitMCAnalysis();
1005   if(fRunEfficiencyAnalysis) InitEfficiencyAnalysis();
1006 }
1007
1008 //____________________________________________________________________//
1009 void AliProtonQAAnalysis::InitEfficiencyAnalysis() {
1010   //Initialization of the efficiency list - reconstruction & PID efficiency
1011   //Adding each monitored object in the list
1012   fEfficiencyList = new TList();
1013
1014   //MC primary protons and antiprotons for the reconstruction efficiency
1015   TH2D *gHistMCYPtProtons = new TH2D("gHistMCYPtProtons",
1016                                      ";;P_{T} [GeV/c]",
1017                                      fNBinsY,fMinY,fMaxY,
1018                                      fNBinsPt,fMinPt,fMaxPt);
1019   if(fProtonAnalysisBase->GetEtaMode()) 
1020     gHistMCYPtProtons->GetXaxis()->SetTitle("#eta");
1021   else 
1022     gHistMCYPtProtons->GetXaxis()->SetTitle("y");
1023   gHistMCYPtProtons->SetStats(kTRUE);
1024   gHistMCYPtProtons->GetXaxis()->SetTitleColor(1);
1025   fEfficiencyList->Add(gHistMCYPtProtons);
1026   TH2D *gHistMCYPtAntiProtons = new TH2D("gHistMCYPtAntiProtons",
1027                                          ";y;P_{T} [GeV/c]",
1028                                          fNBinsY,fMinY,fMaxY,
1029                                          fNBinsPt,fMinPt,fMaxPt);
1030   if(fProtonAnalysisBase->GetEtaMode()) 
1031     gHistMCYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1032   else 
1033     gHistMCYPtAntiProtons->GetXaxis()->SetTitle("y");
1034   gHistMCYPtAntiProtons->SetStats(kTRUE);
1035   gHistMCYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1036   fEfficiencyList->Add(gHistMCYPtAntiProtons);
1037
1038   //MC secondary protons and antiprotons that come from weak decay for the reconstruction efficiency
1039   TH2D *gHistMCYPtProtonsFromWeak = new TH2D("gHistMCYPtProtonsFromWeak",
1040                                              ";;P_{T} [GeV/c]",
1041                                              fNBinsY,fMinY,fMaxY,
1042                                              fNBinsPt,fMinPt,fMaxPt);
1043   if(fProtonAnalysisBase->GetEtaMode()) 
1044     gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1045   else 
1046     gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1047   gHistMCYPtProtonsFromWeak->SetStats(kTRUE);
1048   gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1049   fEfficiencyList->Add(gHistMCYPtProtonsFromWeak);
1050   TH2D *gHistMCYPtAntiProtonsFromWeak = new TH2D("gHistMCYPtAntiProtonsFromWeak",
1051                                                  ";y;P_{T} [GeV/c]",
1052                                                  fNBinsY,fMinY,fMaxY,
1053                                                  fNBinsPt,fMinPt,fMaxPt);
1054   if(fProtonAnalysisBase->GetEtaMode()) 
1055     gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1056   else 
1057     gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1058   gHistMCYPtAntiProtonsFromWeak->SetStats(kTRUE);
1059   gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1060   fEfficiencyList->Add(gHistMCYPtAntiProtonsFromWeak);
1061
1062   //MC secondary protons and antiprotons that come from hadronic interactions for the reconstruction efficiency
1063   TH2D *gHistMCYPtProtonsFromHadronic = new TH2D("gHistMCYPtProtonsFromHadronic",
1064                                                  ";;P_{T} [GeV/c]",
1065                                                  fNBinsY,fMinY,fMaxY,
1066                                                  fNBinsPt,fMinPt,fMaxPt);
1067   if(fProtonAnalysisBase->GetEtaMode()) 
1068     gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1069   else 
1070     gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1071   gHistMCYPtProtonsFromHadronic->SetStats(kTRUE);
1072   gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1073   fEfficiencyList->Add(gHistMCYPtProtonsFromHadronic);
1074   TH2D *gHistMCYPtAntiProtonsFromHadronic = new TH2D("gHistMCYPtAntiProtonsFromHadronic",
1075                                                      ";y;P_{T} [GeV/c]",
1076                                                      fNBinsY,fMinY,fMaxY,
1077                                                      fNBinsPt,fMinPt,fMaxPt);
1078   if(fProtonAnalysisBase->GetEtaMode()) 
1079     gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1080   else 
1081     gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1082   gHistMCYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1083   gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1084   fEfficiencyList->Add(gHistMCYPtAntiProtonsFromHadronic);
1085   
1086   //ESD primary protons and antiprotons for the reconstruction efficiency
1087   TH2D *gHistESDYPtProtons = new TH2D("gHistESDYPtProtons",
1088                                       ";;P_{T} [GeV/c]",
1089                                       fNBinsY,fMinY,fMaxY,
1090                                       fNBinsPt,fMinPt,fMaxPt);
1091   if(fProtonAnalysisBase->GetEtaMode()) 
1092     gHistESDYPtProtons->GetXaxis()->SetTitle("#eta");
1093   else 
1094     gHistESDYPtProtons->GetXaxis()->SetTitle("y");
1095   gHistESDYPtProtons->SetStats(kTRUE);
1096   gHistESDYPtProtons->GetXaxis()->SetTitleColor(1);
1097   fEfficiencyList->Add(gHistESDYPtProtons);
1098   TH2D *gHistESDYPtAntiProtons = new TH2D("gHistESDYPtAntiProtons",
1099                                           ";;P_{T} [GeV/c]",
1100                                           fNBinsY,fMinY,fMaxY,
1101                                           fNBinsPt,fMinPt,fMaxPt);
1102   if(fProtonAnalysisBase->GetEtaMode()) 
1103     gHistESDYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1104   else 
1105     gHistESDYPtAntiProtons->GetXaxis()->SetTitle("y");
1106   gHistESDYPtAntiProtons->SetStats(kTRUE);
1107   gHistESDYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1108   fEfficiencyList->Add(gHistESDYPtAntiProtons);
1109
1110   //ESD (anti)protons from weak decays for the reconstruction efficiency
1111   TH2D *gHistESDYPtProtonsFromWeak = new TH2D("gHistESDYPtProtonsFromWeak",
1112                                               ";;P_{T} [GeV/c]",
1113                                               fNBinsY,fMinY,fMaxY,
1114                                               fNBinsPt,fMinPt,fMaxPt);
1115   if(fProtonAnalysisBase->GetEtaMode()) 
1116     gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1117   else 
1118     gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1119   gHistESDYPtProtonsFromWeak->SetStats(kTRUE);
1120   gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1121   fEfficiencyList->Add(gHistESDYPtProtonsFromWeak);
1122   TH2D *gHistESDYPtAntiProtonsFromWeak = new TH2D("gHistESDYPtAntiProtonsFromWeak",
1123                                                   ";;P_{T} [GeV/c]",
1124                                                   fNBinsY,fMinY,fMaxY,
1125                                                   fNBinsPt,fMinPt,fMaxPt);
1126   if(fProtonAnalysisBase->GetEtaMode()) 
1127     gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1128   else 
1129     gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1130   gHistESDYPtAntiProtonsFromWeak->SetStats(kTRUE);
1131   gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1132   fEfficiencyList->Add(gHistESDYPtAntiProtonsFromWeak);
1133
1134   //ESD (anti)protons from hadronic interactions for the reconstruction efficiency
1135   TH2D *gHistESDYPtProtonsFromHadronic = new TH2D("gHistESDYPtProtonsFromHadronic",
1136                                                   ";;P_{T} [GeV/c]",
1137                                                   fNBinsY,fMinY,fMaxY,
1138                                                   fNBinsPt,fMinPt,fMaxPt);
1139   if(fProtonAnalysisBase->GetEtaMode()) 
1140     gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1141   else 
1142     gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1143   gHistESDYPtProtonsFromHadronic->SetStats(kTRUE);
1144   gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1145   fEfficiencyList->Add(gHistESDYPtProtonsFromHadronic);
1146   TH2D *gHistESDYPtAntiProtonsFromHadronic = new TH2D("gHistESDYPtAntiProtonsFromHadronic",
1147                                                       ";;P_{T} [GeV/c]",
1148                                                       fNBinsY,fMinY,fMaxY,
1149                                                       fNBinsPt,fMinPt,fMaxPt);
1150   if(fProtonAnalysisBase->GetEtaMode()) 
1151     gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1152   else 
1153     gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1154   gHistESDYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1155   gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1156   fEfficiencyList->Add(gHistESDYPtAntiProtonsFromHadronic);
1157   
1158   
1159   //ESD reconstructed tracks that were initially protons for the PID efficiency
1160   TH3D *gHistESDInitYPtProtons = new TH3D("gHistESDInitYPtProtons",
1161                                           ";;P_{T} [GeV/c];N_{points}",
1162                                           fNBinsY,fMinY,fMaxY,
1163                                           fNBinsPt,fMinPt,fMaxPt,
1164                                           100,0,200);
1165   if(fProtonAnalysisBase->GetEtaMode()) 
1166     gHistESDInitYPtProtons->GetXaxis()->SetTitle("#eta");
1167   else 
1168     gHistESDInitYPtProtons->GetXaxis()->SetTitle("y");
1169   gHistESDInitYPtProtons->SetStats(kTRUE);
1170   gHistESDInitYPtProtons->GetXaxis()->SetTitleColor(1);
1171   fEfficiencyList->Add(gHistESDInitYPtProtons);
1172   
1173   //ESD reconstructed tracks that were initially protons and were identified as protons for the PID efficiency
1174   TH3D *gHistESDIdYPtProtons = new TH3D("gHistESDIdYPtProtons",
1175                                         ";;P_{T} [GeV/c];N_{points}",
1176                                         fNBinsY,fMinY,fMaxY,
1177                                         fNBinsPt,fMinPt,fMaxPt,
1178                                         100,0,200);
1179   if(fProtonAnalysisBase->GetEtaMode()) 
1180     gHistESDIdYPtProtons->GetXaxis()->SetTitle("#eta");
1181   else 
1182     gHistESDIdYPtProtons->GetXaxis()->SetTitle("y");
1183   gHistESDIdYPtProtons->SetStats(kTRUE);
1184   gHistESDIdYPtProtons->GetXaxis()->SetTitleColor(1);
1185   fEfficiencyList->Add(gHistESDIdYPtProtons);
1186  
1187   //ESD reconstructed tracks that were identified as protons for the PID contamination
1188   TH3D *gHistESDRecIdYPtProtons = new TH3D("gHistESDRecIdYPtProtons",
1189                                            ";;P_{T} [GeV/c];N_{points}",
1190                                            fNBinsY,fMinY,fMaxY,
1191                                            fNBinsPt,fMinPt,fMaxPt,
1192                                            100,0,200);
1193   if(fProtonAnalysisBase->GetEtaMode()) 
1194     gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("#eta");
1195   else 
1196     gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("y");
1197   gHistESDRecIdYPtProtons->SetStats(kTRUE);
1198   gHistESDRecIdYPtProtons->GetXaxis()->SetTitleColor(1);
1199   fEfficiencyList->Add(gHistESDRecIdYPtProtons);
1200
1201   //ESD reconstructed tracks that were identified as protons but were initially not protons for the PID contamination
1202   TH3D *gHistESDContamYPtProtons = new TH3D("gHistESDContamYPtProtons",
1203                                             ";;P_{T} [GeV/c];N_{points}",
1204                                             fNBinsY,fMinY,fMaxY,
1205                                             fNBinsPt,fMinPt,fMaxPt,
1206                                             100,0,200);
1207   if(fProtonAnalysisBase->GetEtaMode()) 
1208     gHistESDContamYPtProtons->GetXaxis()->SetTitle("#eta");
1209   else 
1210     gHistESDContamYPtProtons->GetXaxis()->SetTitle("y");
1211   gHistESDContamYPtProtons->SetStats(kTRUE);
1212   gHistESDContamYPtProtons->GetXaxis()->SetTitleColor(1);
1213   fEfficiencyList->Add(gHistESDContamYPtProtons);
1214 }
1215
1216 //____________________________________________________________________//
1217 void AliProtonQAAnalysis::InitCutLists() {
1218   //Initialization of the cut lists
1219   //Adding each monitored object in each list
1220
1221   //Accepted cut list
1222   fAcceptedCutList = new TList();
1223   TH1F *gPrimaryProtonsClustersOnITSLayers = new TH1F("gPrimaryProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1224   fAcceptedCutList->Add(gPrimaryProtonsClustersOnITSLayers);
1225   TH1F *gPrimaryAntiProtonsClustersOnITSLayers = new TH1F("gPrimaryAntiProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1226   fAcceptedCutList->Add(gPrimaryAntiProtonsClustersOnITSLayers);
1227   TH1F *gSecondaryProtonsClustersOnITSLayers = new TH1F("gSecondaryProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1228   fAcceptedCutList->Add(gSecondaryProtonsClustersOnITSLayers);
1229   TH1F *gSecondaryAntiProtonsClustersOnITSLayers = new TH1F("gSecondaryAntiProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1230   fAcceptedCutList->Add(gSecondaryAntiProtonsClustersOnITSLayers);
1231
1232   TH1F *gPrimaryProtonsNClustersITS = new TH1F("gPrimaryProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1233   fAcceptedCutList->Add(gPrimaryProtonsNClustersITS);
1234   TH1F *gPrimaryAntiProtonsNClustersITS = new TH1F("gPrimaryAntiProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1235   fAcceptedCutList->Add(gPrimaryAntiProtonsNClustersITS);
1236   TH1F *gSecondaryProtonsNClustersITS = new TH1F("gSecondaryProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1237   fAcceptedCutList->Add(gSecondaryProtonsNClustersITS);
1238   TH1F *gSecondaryAntiProtonsNClustersITS = new TH1F("gSecondaryAntiProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1239   fAcceptedCutList->Add(gSecondaryAntiProtonsNClustersITS);
1240
1241   TH1F *gPrimaryProtonsChi2PerClusterITS = new TH1F("gPrimaryProtonsChi2PerClusterITS",
1242                                                     ";x^{2}/N_{clusters} (ITS);Entries",
1243                                                     100,0,20);
1244   fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterITS);
1245   TH1F *gPrimaryAntiProtonsChi2PerClusterITS = new TH1F("gPrimaryAntiProtonsChi2PerClusterITS",
1246                                                         ";x^{2}/N_{clusters} (ITS);Entries",
1247                                                         100,0,20);
1248   fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterITS);
1249   TH1F *gSecondaryProtonsChi2PerClusterITS = new TH1F("gSecondaryProtonsChi2PerClusterITS",
1250                                                       ";x^{2}/N_{clusters} (ITS);Entries",
1251                                                       100,0,20);
1252   fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterITS);
1253   TH1F *gSecondaryAntiProtonsChi2PerClusterITS = new TH1F("gSecondaryAntiProtonsChi2PerClusterITS",
1254                                                           ";x^{2}/N_{clusters} (ITS);Entries",
1255                                                           100,0,20);
1256   fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterITS);
1257
1258   TH1F *gPrimaryProtonsConstrainChi2 = new TH1F("gPrimaryProtonsConstrainChi2",
1259                                                 ";Log_{10}(#chi^{2});Entries",
1260                                                 100,-10,10);
1261   fAcceptedCutList->Add(gPrimaryProtonsConstrainChi2);
1262   TH1F *gPrimaryAntiProtonsConstrainChi2 = new TH1F("gPrimaryAntiProtonsConstrainChi2",
1263                                                     ";Log_{10}(#chi^{2});Entries",
1264                                                     100,-10,10);
1265   fAcceptedCutList->Add(gPrimaryAntiProtonsConstrainChi2);
1266   TH1F *gSecondaryProtonsConstrainChi2 = new TH1F("gSecondaryProtonsConstrainChi2",
1267                                                   ";Log_{10}(#chi^{2});Entries",
1268                                                   100,-10,10);
1269   fAcceptedCutList->Add(gSecondaryProtonsConstrainChi2);
1270   TH1F *gSecondaryAntiProtonsConstrainChi2 = new TH1F("gSecondaryAntiProtonsConstrainChi2",
1271                                                       ";Log_{10}(#chi^{2});Entries",
1272                                                       100,-10,10);
1273   fAcceptedCutList->Add(gSecondaryAntiProtonsConstrainChi2);
1274
1275   TH1F *gPrimaryProtonsTPCClusters = new TH1F("gPrimaryProtonsTPCClusters",
1276                                               ";N_{clusters} (TPC);Entries",
1277                                               100,0,200);
1278   fAcceptedCutList->Add(gPrimaryProtonsTPCClusters);
1279   TH1F *gPrimaryAntiProtonsTPCClusters = new TH1F("gPrimaryAntiProtonsTPCClusters",
1280                                                   ";N_{clusters} (TPC);Entries",
1281                                                   100,0,200);
1282   fAcceptedCutList->Add(gPrimaryAntiProtonsTPCClusters);
1283   TH1F *gSecondaryProtonsTPCClusters = new TH1F("gSecondaryProtonsTPCClusters",
1284                                                 ";N_{clusters} (TPC);Entries",
1285                                                 100,0,200);
1286   fAcceptedCutList->Add(gSecondaryProtonsTPCClusters);
1287   TH1F *gSecondaryAntiProtonsTPCClusters = new TH1F("gSecondaryAntiProtonsTPCClusters",
1288                                                     ";N_{clusters} (TPC);Entries",
1289                                                     100,0,200);
1290   fAcceptedCutList->Add(gSecondaryAntiProtonsTPCClusters);
1291
1292   TH1F *gPrimaryProtonsChi2PerClusterTPC = new TH1F("gPrimaryProtonsChi2PerClusterTPC",
1293                                                     ";x^{2}/N_{clusters} (TPC);Entries",
1294                                                     100,0,4);
1295   fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterTPC);
1296   TH1F *gPrimaryAntiProtonsChi2PerClusterTPC = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPC",
1297                                                         ";x^{2}/N_{clusters} (TPC);Entries",
1298                                                         100,0,4);
1299   fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterTPC);
1300   TH1F *gSecondaryProtonsChi2PerClusterTPC = new TH1F("gSecondaryProtonsChi2PerClusterTPC",
1301                                                       ";x^{2}/N_{clusters} (TPC);Entries",
1302                                                       100,0,4);
1303   fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterTPC);
1304   TH1F *gSecondaryAntiProtonsChi2PerClusterTPC = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPC",
1305                                                           ";x^{2}/N_{clusters} (TPC);Entries",
1306                                                           100,0,4);
1307   fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterTPC);
1308
1309   TH1F *gPrimaryProtonsExtCov11 = new TH1F("gPrimaryProtonsExtCov11",
1310                                            ";#sigma_{y} [cm];Entries",
1311                                            100,0,4);
1312   fAcceptedCutList->Add(gPrimaryProtonsExtCov11);
1313   TH1F *gPrimaryAntiProtonsExtCov11 = new TH1F("gPrimaryAntiProtonsExtCov11",
1314                                                ";#sigma_{y} [cm];Entries",
1315                                                100,0,4);
1316   fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov11);
1317   TH1F *gSecondaryProtonsExtCov11 = new TH1F("gSecondaryProtonsExtCov11",
1318                                              ";#sigma_{y} [cm];Entries",
1319                                              100,0,4);
1320   fAcceptedCutList->Add(gSecondaryProtonsExtCov11);
1321   TH1F *gSecondaryAntiProtonsExtCov11 = new TH1F("gSecondaryAntiProtonsExtCov11",
1322                                                  ";#sigma_{y} [cm];Entries",
1323                                                  100,0,4);
1324   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov11);
1325
1326
1327   TH1F *gPrimaryProtonsExtCov22 = new TH1F("gPrimaryProtonsExtCov22",
1328                                            ";#sigma_{z} [cm];Entries",
1329                                            100,0,4);
1330   fAcceptedCutList->Add(gPrimaryProtonsExtCov22);
1331   TH1F *gPrimaryAntiProtonsExtCov22 = new TH1F("gPrimaryAntiProtonsExtCov22",
1332                                                ";#sigma_{z} [cm];Entries",
1333                                                100,0,4);
1334   fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov22);
1335   TH1F *gSecondaryProtonsExtCov22 = new TH1F("gSecondaryProtonsExtCov22",
1336                                              ";#sigma_{z} [cm];Entries",
1337                                              100,0,4);
1338   fAcceptedCutList->Add(gSecondaryProtonsExtCov22);
1339   TH1F *gSecondaryAntiProtonsExtCov22 = new TH1F("gSecondaryAntiProtonsExtCov22",
1340                                                  ";#sigma_{z} [cm];Entries",
1341                                                  100,0,4);
1342   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov22);
1343
1344
1345   TH1F *gPrimaryProtonsExtCov33 = new TH1F("gPrimaryProtonsExtCov33",
1346                                            ";#sigma_{sin(#phi)};Entries",
1347                                            100,0,4);
1348   fAcceptedCutList->Add(gPrimaryProtonsExtCov33);
1349   TH1F *gPrimaryAntiProtonsExtCov33 = new TH1F("gPrimaryAntiProtonsExtCov33",
1350                                                ";#sigma_{sin(#phi)};Entries",
1351                                                100,0,4);
1352   fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov33);
1353   TH1F *gSecondaryProtonsExtCov33 = new TH1F("gSecondaryProtonsExtCov33",
1354                                              ";#sigma_{sin(#phi)};Entries",
1355                                              100,0,4);
1356   fAcceptedCutList->Add(gSecondaryProtonsExtCov33);
1357   TH1F *gSecondaryAntiProtonsExtCov33 = new TH1F("gSecondaryAntiProtonsExtCov33",
1358                                                  ";#sigma_{sin(#phi)};Entries",
1359                                                  100,0,4);
1360   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov33);
1361
1362
1363   TH1F *gPrimaryProtonsExtCov44 = new TH1F("gPrimaryProtonsExtCov44",
1364                                            ";#sigma_{tan(#lambda)};Entries",
1365                                            100,0,4);
1366   fAcceptedCutList->Add(gPrimaryProtonsExtCov44);
1367   TH1F *gPrimaryAntiProtonsExtCov44 = new TH1F("gPrimaryAntiProtonsExtCov44",
1368                                                ";#sigma_{tan(#lambda)};Entries",
1369                                                100,0,4);
1370   fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov44);
1371   TH1F *gSecondaryProtonsExtCov44 = new TH1F("gSecondaryProtonsExtCov44",
1372                                              ";#sigma_{tan(#lambda)};Entries",
1373                                              100,0,4);
1374   fAcceptedCutList->Add(gSecondaryProtonsExtCov44);
1375   TH1F *gSecondaryAntiProtonsExtCov44 = new TH1F("gSecondaryAntiProtonsExtCov44",
1376                                                  ";#sigma_{tan(#lambda)};Entries",
1377                                                  100,0,4);
1378   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov44);
1379
1380
1381   TH1F *gPrimaryProtonsExtCov55 = new TH1F("gPrimaryProtonsExtCov55",
1382                                            ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1383                                            100,0,4);
1384   fAcceptedCutList->Add(gPrimaryProtonsExtCov55);
1385   TH1F *gPrimaryAntiProtonsExtCov55 = new TH1F("gPrimaryAntiProtonsExtCov55",
1386                                                ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1387                                                100,0,4);
1388   fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov55);
1389   TH1F *gSecondaryProtonsExtCov55 = new TH1F("gSecondaryProtonsExtCov55",
1390                                              ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1391                                              100,0,4);
1392   fAcceptedCutList->Add(gSecondaryProtonsExtCov55);
1393   TH1F *gSecondaryAntiProtonsExtCov55 = new TH1F("gSecondaryAntiProtonsExtCov55",
1394                                                  ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1395                                                  100,0,4);
1396   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov55);
1397   //eta-phi-Nclusters
1398   TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryProtonsPass",
1399                                                           "Accepted primary protons;#eta;#phi;N_{clusters}(TPC)",
1400                                                           fNBinsY,fMinY,fMaxY,
1401                                                           100,0,360,
1402                                                           100,0,200);
1403   gHistEtaPhiNClustersPrimaryProtonsPass->SetStats(kTRUE);
1404   gHistEtaPhiNClustersPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1405   fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1406   TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsPass",
1407                                                               "Accepted primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1408                                                               fNBinsY,fMinY,fMaxY,
1409                                                               100,0,360,
1410                                                               100,0,200);
1411   gHistEtaPhiNClustersPrimaryAntiProtonsPass->SetStats(kTRUE);
1412   gHistEtaPhiNClustersPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1413   fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1414   TH3D *gHistEtaPhiNClustersSecondaryProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryProtonsPass",
1415                                                             "Accepted secondary protons;#eta;#phi;N_{clusters}(TPC)",
1416                                                             fNBinsY,fMinY,fMaxY,
1417                                                             100,0,360,
1418                                                             100,0,200);
1419   gHistEtaPhiNClustersSecondaryProtonsPass->SetStats(kTRUE);
1420   gHistEtaPhiNClustersSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1421   fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1422   TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsPass",
1423                                                                 "Accepted secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1424                                                                 fNBinsY,fMinY,fMaxY,
1425                                                                 100,0,360,
1426                                                                 100,0,200);
1427   gHistEtaPhiNClustersSecondaryAntiProtonsPass->SetStats(kTRUE);
1428   gHistEtaPhiNClustersSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1429   fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1430   //eta-phi-chi^2 per TPC cluster
1431   TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass",
1432                                                                   "Accepted primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1433                                                                   fNBinsY,fMinY,fMaxY,
1434                                                                   100,0,360,
1435                                                                   100,0,4);
1436   gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->SetStats(kTRUE);
1437   gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1438   fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1439   TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass",
1440                                                                       "Accepted primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1441                                                                       fNBinsY,fMinY,fMaxY,
1442                                                                       100,0,360,
1443                                                                       100,0,4);
1444   gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->SetStats(kTRUE);
1445   gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1446   fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1447   TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass",
1448                                                                     "Accepted secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1449                                                                     fNBinsY,fMinY,fMaxY,
1450                                                                     100,0,360,
1451                                                                     100,0,4);
1452   gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->SetStats(kTRUE);
1453   gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1454   fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1455   TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass",
1456                                                                         "Accepted secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1457                                                                         fNBinsY,fMinY,fMaxY,
1458                                                                         100,0,360,
1459                                                                         100,0,4);
1460   gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->SetStats(kTRUE);
1461   gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1462   fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1463   //eta-phi-number of TPC points for the dE/dx
1464   TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass",
1465                                                                   "Accepted primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1466                                                                   fNBinsY,fMinY,fMaxY,
1467                                                                   100,0,360,
1468                                                                   100,0,200);
1469   gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->SetStats(kTRUE);
1470   gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1471   fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1472   TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass",
1473                                                                       "Accepted primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1474                                                                       fNBinsY,fMinY,fMaxY,
1475                                                                       100,0,360,
1476                                                                       100,0,200);
1477   gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->SetStats(kTRUE);
1478   gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1479   fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1480   TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass",
1481                                                                     "Accepted secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1482                                                                     fNBinsY,fMinY,fMaxY,
1483                                                                     100,0,360,
1484                                                                     100,0,200);
1485   gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->SetStats(kTRUE);
1486   gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1487   fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1488   TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass",
1489                                                                         "Accepted secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1490                                                                         fNBinsY,fMinY,fMaxY,
1491                                                                         100,0,360,
1492                                                                         100,0,200);
1493   gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->SetStats(kTRUE);
1494   gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1495   fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1496
1497   TH1F *gPrimaryProtonsNPointsTPCdEdx = new TH1F("gPrimaryProtonsNPointsTPCdEdx",
1498                                               ";N_{points} (TPC-dE/dx);Entries",
1499                                               100,0,200);
1500   fAcceptedCutList->Add(gPrimaryProtonsNPointsTPCdEdx);
1501   TH1F *gPrimaryAntiProtonsNPointsTPCdEdx = new TH1F("gPrimaryAntiProtonsNPointsTPCdEdx",
1502                                                   ";N_{points} (TPC-dE/dx);Entries",
1503                                                   100,0,200);
1504   fAcceptedCutList->Add(gPrimaryAntiProtonsNPointsTPCdEdx);
1505   TH1F *gSecondaryProtonsNPointsTPCdEdx = new TH1F("gSecondaryProtonsNPointsTPCdEdx",
1506                                                 ";N_{points} (TPC-dE/dx);Entries",
1507                                                 100,0,200);
1508   fAcceptedCutList->Add(gSecondaryProtonsNPointsTPCdEdx);
1509   TH1F *gSecondaryAntiProtonsNPointsTPCdEdx = new TH1F("gSecondaryAntiProtonsNPointsTPCdEdx",
1510                                                     ";N_{points} (TPC-dE/dx);Entries",
1511                                                     100,0,200);
1512   fAcceptedCutList->Add(gSecondaryAntiProtonsNPointsTPCdEdx);
1513   
1514   //Rejected cut list
1515   fRejectedCutList = new TList();
1516   //eta-phi-Nclusters
1517   TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryProtonsReject",
1518                                                           "Rejected primary protons;#eta;#phi;N_{clusters}(TPC)",
1519                                                           fNBinsY,fMinY,fMaxY,
1520                                                           100,0,360,
1521                                                           100,0,200);
1522   gHistEtaPhiNClustersPrimaryProtonsReject->SetStats(kTRUE);
1523   gHistEtaPhiNClustersPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1524   fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1525   TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsReject",
1526                                                               "Rejected primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1527                                                               fNBinsY,fMinY,fMaxY,
1528                                                               100,0,360,
1529                                                               100,0,200);
1530   gHistEtaPhiNClustersPrimaryAntiProtonsReject->SetStats(kTRUE);
1531   gHistEtaPhiNClustersPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1532   fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1533   TH3D *gHistEtaPhiNClustersSecondaryProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryProtonsReject",
1534                                                             "Rejected secondary protons;#eta;#phi;N_{clusters}(TPC)",
1535                                                             fNBinsY,fMinY,fMaxY,
1536                                                             100,0,360,
1537                                                             100,0,200);
1538   gHistEtaPhiNClustersSecondaryProtonsReject->SetStats(kTRUE);
1539   gHistEtaPhiNClustersSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1540   fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1541   TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsReject",
1542                                                                 "Rejected secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1543                                                                 fNBinsY,fMinY,fMaxY,
1544                                                                 100,0,360,
1545                                                                 100,0,200);
1546   gHistEtaPhiNClustersSecondaryAntiProtonsReject->SetStats(kTRUE);
1547   gHistEtaPhiNClustersSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1548   fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
1549   //eta-phi-chi^2 per TPC cluster
1550   TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject",
1551                                                                   "Rejected primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1552                                                                   fNBinsY,fMinY,fMaxY,
1553                                                                   100,0,360,
1554                                                                   100,0,4);
1555   gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject->SetStats(kTRUE);
1556   gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1557   fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1558   TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject",
1559                                                                       "Rejected primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1560                                                                       fNBinsY,fMinY,fMaxY,
1561                                                                       100,0,360,
1562                                                                       100,0,4);
1563   gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject->SetStats(kTRUE);
1564   gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1565   fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1566   TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject",
1567                                                                     "Rejected secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1568                                                                     fNBinsY,fMinY,fMaxY,
1569                                                                     100,0,360,
1570                                                                     100,0,4);
1571   gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject->SetStats(kTRUE);
1572   gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1573   fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1574   TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject",
1575                                                                         "Rejected secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1576                                                                         fNBinsY,fMinY,fMaxY,
1577                                                                         100,0,360,
1578                                                                         100,0,4);
1579   gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject->SetStats(kTRUE);
1580   gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1581   fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
1582   //eta-phi-number of TPC points for the dE/dx
1583   TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject",
1584                                                                   "Rejected primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1585                                                                   fNBinsY,fMinY,fMaxY,
1586                                                                   100,0,360,
1587                                                                   100,0,200);
1588   gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject->SetStats(kTRUE);
1589   gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1590   fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1591   TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject",
1592                                                                       "Rejected primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1593                                                                       fNBinsY,fMinY,fMaxY,
1594                                                                       100,0,360,
1595                                                                       100,0,200);
1596   gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject->SetStats(kTRUE);
1597   gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1598   fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1599   TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject",
1600                                                                     "Rejected secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1601                                                                     fNBinsY,fMinY,fMaxY,
1602                                                                     100,0,360,
1603                                                                     100,0,200);
1604   gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject->SetStats(kTRUE);
1605   gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1606   fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1607   TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject",
1608                                                                         "Rejected secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1609                                                                         fNBinsY,fMinY,fMaxY,
1610                                                                         100,0,360,
1611                                                                         100,0,200);
1612   gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->SetStats(kTRUE);
1613   gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1614   fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
1615
1616   //DCA list
1617   fAcceptedDCAList = new TList();
1618   TH1F *gPrimaryProtonsDCAXY = new TH1F("gPrimaryProtonsDCAXY",
1619                                         ";DCA_{xy} [cm];Entries",
1620                                         100,0,20);
1621   fAcceptedDCAList->Add(gPrimaryProtonsDCAXY);
1622   TH1F *gPrimaryAntiProtonsDCAXY = new TH1F("gPrimaryAntiProtonsDCAXY",
1623                                             ";DCA_{xy} [cm];Entries",
1624                                             100,0,20);
1625   fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAXY);
1626   TH1F *gSecondaryProtonsDCAXY = new TH1F("gSecondaryProtonsDCAXY",
1627                                           ";DCA_{xy} [cm];Entries",
1628                                           100,0,20);
1629   fAcceptedDCAList->Add(gSecondaryProtonsDCAXY);
1630   TH1F *gSecondaryAntiProtonsDCAXY = new TH1F("gSecondaryAntiProtonsDCAXY",
1631                                               ";DCA_{xy} [cm];Entries",
1632                                               100,0,20);
1633
1634   fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAXY);
1635   TH1F *gPrimaryProtonsDCAZ = new TH1F("gPrimaryProtonsDCAZ",
1636                                        ";DCA_{z} [cm];Entries",
1637                                        100,0,20);
1638   fAcceptedDCAList->Add(gPrimaryProtonsDCAZ);
1639   TH1F *gPrimaryAntiProtonsDCAZ = new TH1F("gPrimaryAntiProtonsDCAZ",
1640                                            ";DCA_{z} [cm];Entries",
1641                                            100,0,20);
1642   fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAZ);
1643   TH1F *gSecondaryProtonsDCAZ = new TH1F("gSecondaryProtonsDCAZ",
1644                                          ";DCA_{z} [cm];Entries",
1645                                          100,0,20);
1646   fAcceptedDCAList->Add(gSecondaryProtonsDCAZ);
1647   TH1F *gSecondaryAntiProtonsDCAZ = new TH1F("gSecondaryAntiProtonsDCAZ",
1648                                              ";DCA_{z} [cm];Entries",
1649                                              100,0,20);
1650   fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAZ);
1651
1652   TH1F *gPrimaryProtonsSigmaToVertex = new TH1F("gPrimaryProtonsSigmaToVertex",
1653                                                 ";#sigma_{Vertex};Entries",
1654                                                 100,0,10);
1655   fAcceptedDCAList->Add(gPrimaryProtonsSigmaToVertex);
1656   TH1F *gPrimaryAntiProtonsSigmaToVertex = new TH1F("gPrimaryAntiProtonsSigmaToVertex",
1657                                                     ";#sigma_{Vertex};Entries",
1658                                                     100,0,10);
1659   fAcceptedDCAList->Add(gPrimaryAntiProtonsSigmaToVertex);
1660   TH1F *gSecondaryProtonsSigmaToVertex = new TH1F("gSecondaryProtonsSigmaToVertex",
1661                                                   ";#sigma_{Vertex};Entries",
1662                                                   100,0,10);
1663   fAcceptedDCAList->Add(gSecondaryProtonsSigmaToVertex);
1664   TH1F *gSecondaryAntiProtonsSigmaToVertex = new TH1F("gSecondaryAntiProtonsSigmaToVertex",
1665                                                       ";#sigma_{Vertex};Entries",
1666                                                       100,0,10);
1667   fAcceptedDCAList->Add(gSecondaryAntiProtonsSigmaToVertex);
1668
1669 }
1670
1671 //____________________________________________________________________//
1672 void AliProtonQAAnalysis::InitVertexQA() {
1673   //Initializes the Vertex QA histograms
1674   fQAVertexList = new TList();
1675   fQAVertexList->SetName("fQAVertexList");
1676
1677   //Gen. multiplicity bins
1678   //Float_t xBins[24] = {0,1,2,4,6,8,10,15,20,30,40,50,75,100,
1679   //200,300,400,500,750,1000,1500,2000,2500,3000};
1680   //MC primary multiplicity (vertex efficiency calculation)
1681   TH1F *gHistMCPrimaryVz = new TH1F("gHistMCPrimaryVz",
1682                                     ";V_{z} (gen.) [cm];Entries",
1683                                     40,-20.,20.);
1684   fQAVertexList->Add(gHistMCPrimaryVz);
1685   //TH1F *gHistMCPrimaryMultiplicity = new TH1F("gHistMCPrimaryMultiplicity",
1686   //";N_{prim. gen.};Entries",
1687   //23,xBins);
1688   //fQAVertexList->Add(gHistMCPrimaryMultiplicity);
1689   
1690   //TPC
1691   TH1F *gHistTPCVz = new TH1F("gHistTPCVz",
1692                               ";V_{z} (gen.) [cm];Entries",
1693                               40,-20.,20.);
1694   fQAVertexList->Add(gHistTPCVz);
1695   //TH1F *gHistMCPrimaryMultiplicityTPC = new TH1F("gHistMCPrimaryMultiplicityTPC",
1696   //"Vertex TPC;N_{prim. gen.};Entries",
1697   //23,xBins);
1698   //fQAVertexList->Add(gHistMCPrimaryMultiplicityTPC);
1699   TH2F *gHistTPCESDVxN = new TH2F("gHistTPCESDVxN",
1700                                  "Primary vertex TPC;V_{x} [cm];N_{contributors}",
1701                                  100,-10.,10.,1000,0,5000);
1702   fQAVertexList->Add(gHistTPCESDVxN);
1703   TH2F *gHistTPCESDVyN = new TH2F("gHistTPCESDVyN",
1704                                  "Primary vertex TPC;V_{y} [cm];N_{contributors}",
1705                                  100,-10.,10.,1000,0,5000);
1706   fQAVertexList->Add(gHistTPCESDVyN);
1707   TH2F *gHistTPCESDVzN = new TH2F("gHistTPCESDVzN",
1708                                  "Primary vertex TPC;V_{z} [cm];N_{contributors}",
1709                                  100,-20.,20.,1000,0,5000);
1710   fQAVertexList->Add(gHistTPCESDVzN);
1711   TH1F *gHistTPCDiffVx = new TH1F("gHistTPCDiffVx",
1712                                   ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
1713                                   100,-10000.,10000.);
1714   fQAVertexList->Add(gHistTPCDiffVx);
1715   TH1F *gHistTPCDiffVy = new TH1F("gHistTPCDiffVy",
1716                                   ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
1717                                   100,-10000.,10000.);
1718   fQAVertexList->Add(gHistTPCDiffVy);
1719   TH1F *gHistTPCDiffVz = new TH1F("gHistTPCDiffVz",
1720                                   ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
1721                                   100,-10000.,10000.);
1722   fQAVertexList->Add(gHistTPCDiffVz);
1723   TH1F *gHistTPCResolutionVx = new TH1F("gHistTPCResolutionVx",
1724                                         ";#sigma_{x} [#mu m];Entries",
1725                                         100,0.,1000000.);
1726   fQAVertexList->Add(gHistTPCResolutionVx);
1727   TH1F *gHistTPCResolutionVy = new TH1F("gHistTPCResolutionVy",
1728                                         ";#sigma_{y} [#mu m];Entries",
1729                                         100,0.,1000000.);
1730   fQAVertexList->Add(gHistTPCResolutionVy);
1731   TH1F *gHistTPCResolutionVz = new TH1F("gHistTPCResolutionVz",
1732                                         ";#sigma_{z} [#mu m];Entries",
1733                                         100,0.,6000.);
1734   fQAVertexList->Add(gHistTPCResolutionVz);
1735   
1736   //SPD
1737   TH1F *gHistSPDVz = new TH1F("gHistSPDVz",
1738                               ";V_{z} (gen.) [cm];Entries",
1739                               40,-20.,20.);
1740   fQAVertexList->Add(gHistSPDVz);
1741   //TH1F *gHistMCPrimaryMultiplicitySPD = new TH1F("gHistMCPrimaryMultiplicitySPD",
1742   //"Vertex SPD;N_{prim. gen.};Entries",
1743   //23,xBins);
1744   //fQAVertexList->Add(gHistMCPrimaryMultiplicitySPD);
1745   TH2F *gHistSPDESDVxN = new TH2F("gHistSPDESDVxN",
1746                                  "Primary vertex SPD;V_{x} [cm];N_{contributors}",
1747                                  100,-10.,10.,1000,0,5000);
1748   fQAVertexList->Add(gHistSPDESDVxN);
1749   TH2F *gHistSPDESDVyN = new TH2F("gHistSPDESDVyN",
1750                                  "Primary vertex SPD;V_{y} [cm];N_{contributors}",
1751                                  100,-10.,10.,1000,0,5000);
1752   fQAVertexList->Add(gHistSPDESDVyN);
1753   TH2F *gHistSPDESDVzN = new TH2F("gHistSPDESDVzN",
1754                                  "Primary vertex SPD;V_{z} [cm];N_{contributors}",
1755                                  100,-20.,20.,1000,0,5000);
1756   fQAVertexList->Add(gHistSPDESDVzN);
1757   TH1F *gHistSPDDiffVx = new TH1F("gHistSPDDiffVx",
1758                                   ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
1759                                   100,-10000.,10000.);
1760   fQAVertexList->Add(gHistSPDDiffVx);
1761   TH1F *gHistSPDDiffVy = new TH1F("gHistSPDDiffVy",
1762                                   ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
1763                                   100,-10000.,10000.);
1764   fQAVertexList->Add(gHistSPDDiffVy);
1765   TH1F *gHistSPDDiffVz = new TH1F("gHistSPDDiffVz",
1766                                   ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
1767                                   100,-10000.,10000.);
1768   fQAVertexList->Add(gHistSPDDiffVz);
1769   TH1F *gHistSPDResolutionVx = new TH1F("gHistSPDResolutionVx",
1770                                         ";#sigma_{x} [#mu m];Entries",
1771                                         100,0.,1000.);
1772   fQAVertexList->Add(gHistSPDResolutionVx);
1773   TH1F *gHistSPDResolutionVy = new TH1F("gHistSPDResolutionVy",
1774                                         ";#sigma_{y} [#mu m];Entries",
1775                                         100,0.,1000.);
1776   fQAVertexList->Add(gHistSPDResolutionVy);
1777   TH1F *gHistSPDResolutionVz = new TH1F("gHistSPDResolutionVz",
1778                                         ";#sigma_{z} [#mu m];Entries",
1779                                         100,0.,500.);
1780   fQAVertexList->Add(gHistSPDResolutionVz);
1781   
1782   //Tracks
1783   TH1F *gHistTracksVz = new TH1F("gHistTracksVz",
1784                                  ";V_{z} (gen.) [cm];Entries",
1785                                  40,-20.,20.);
1786   fQAVertexList->Add(gHistTracksVz);
1787   //TH1F *gHistMCPrimaryMultiplicityTracks = new TH1F("gHistMCPrimaryMultiplicityTracks",
1788   //"Vertex Tracks;N_{prim. gen.};Entries",
1789   //23,xBins);
1790   //fQAVertexList->Add(gHistMCPrimaryMultiplicityTracks);
1791   TH2F *gHistTracksESDVxN = new TH2F("gHistTracksESDVxN",
1792                                      "Primary vertex Tracks;V_{x} [cm];N_{contributors}",
1793                                      100,-10.,10.,1000,0,5000);
1794   fQAVertexList->Add(gHistTracksESDVxN);
1795   TH2F *gHistTracksESDVyN = new TH2F("gHistTracksESDVyN",
1796                                     "Primary vertex Tracks;V_{y} [cm];N_{contributors}",
1797                                     100,-10.,10.,1000,0,5000);
1798   fQAVertexList->Add(gHistTracksESDVyN);
1799   TH2F *gHistTracksESDVzN = new TH2F("gHistTracksESDVzN",
1800                                     "Primary vertex Tracks;V_{z} [cm];N_{contributors}",
1801                                     100,-20.,20.,1000,0,5000);
1802   fQAVertexList->Add(gHistTracksESDVzN);
1803   TH1F *gHistTracksDiffVx = new TH1F("gHistTracksDiffVx",
1804                                      ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
1805                                      100,-10000.,10000.);
1806   fQAVertexList->Add(gHistTracksDiffVx);
1807   TH1F *gHistTracksDiffVy = new TH1F("gHistTracksDiffVy",
1808                                      ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
1809                                      100,-10000.,10000.);
1810   fQAVertexList->Add(gHistTracksDiffVy);
1811   TH1F *gHistTracksDiffVz = new TH1F("gHistTracksDiffVz",
1812                                      ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
1813                                      100,-10000.,10000.);
1814   fQAVertexList->Add(gHistTracksDiffVz);
1815   TH1F *gHistTracksResolutionVx = new TH1F("gHistTracksResolutionVx",
1816                                            ";#sigma_{x} [#mu m];Entries",
1817                                            100,0.,5000.);
1818   fQAVertexList->Add(gHistTracksResolutionVx);
1819   TH1F *gHistTracksResolutionVy = new TH1F("gHistTracksResolutionVy",
1820                                            ";#sigma_{y} [#mu m];Entries",
1821                                            100,0.,5000.);
1822   fQAVertexList->Add(gHistTracksResolutionVy);
1823   TH1F *gHistTracksResolutionVz = new TH1F("gHistTracksResolutionVz",
1824                                            ";#sigma_{z} [#mu m];Entries",
1825                                            100,0.,1000.);
1826   fQAVertexList->Add(gHistTracksResolutionVz);
1827 }
1828
1829 //____________________________________________________________________//
1830 void AliProtonQAAnalysis::InitQA() {
1831   //Initializes the QA histograms
1832   //if(!fQAHistograms) 
1833   SetRunQAAnalysis();
1834
1835   //2D histograms
1836   //TDirectory *dir2D = gDirectory->mkdir("2D");
1837   //fGlobalQAList->Add(dir2D); dir2D->cd();
1838   TH2D *gHistYPtPrimaryProtonsPass = new TH2D("gHistYPtPrimaryProtonsPass",
1839                                               ";;P_{T} [GeV/c]",
1840                                               fNBinsY,fMinY,fMaxY,
1841                                               fNBinsPt,fMinPt,fMaxPt);
1842   if(fProtonAnalysisBase->GetEtaMode()) 
1843     gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitle("#eta");
1844   else 
1845     gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitle("y");
1846   gHistYPtPrimaryProtonsPass->SetStats(kTRUE);
1847   gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1848   fQA2DList->Add(gHistYPtPrimaryProtonsPass);//y-pT of primary accepted ESD protons
1849   TH2D *gHistYPtPrimaryProtonsReject = new TH2D("gHistYPtPrimaryProtonsReject",
1850                                                 ";;P_{T} [GeV/c]",
1851                                                 fNBinsY,fMinY,fMaxY,
1852                                                 fNBinsPt,fMinPt,fMaxPt);
1853   if(fProtonAnalysisBase->GetEtaMode()) 
1854     gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitle("#eta");
1855   else 
1856     gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitle("y");
1857   gHistYPtPrimaryProtonsReject->SetStats(kTRUE);
1858   gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1859   fQA2DList->Add(gHistYPtPrimaryProtonsReject);//y-pT of primary rejected ESD protons
1860
1861   TH2D *gHistYPtSecondaryProtonsPass = new TH2D("gHistYPtSecondaryProtonsPass",
1862                                                 ";;P_{T} [GeV/c]",
1863                                                 fNBinsY,fMinY,fMaxY,
1864                                                 fNBinsPt,fMinPt,fMaxPt);
1865   if(fProtonAnalysisBase->GetEtaMode()) 
1866     gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitle("#eta");
1867   else 
1868     gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitle("y");
1869   gHistYPtSecondaryProtonsPass->SetStats(kTRUE);
1870   gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1871   fQA2DList->Add(gHistYPtSecondaryProtonsPass);//y-pT of secondary accepted ESD protons
1872   TH2D *gHistYPtSecondaryProtonsReject = new TH2D("gHistYPtSecondaryProtonsReject",
1873                                                   ";;P_{T} [GeV/c]",
1874                                                   fNBinsY,fMinY,fMaxY,
1875                                                   fNBinsPt,fMinPt,fMaxPt);
1876   if(fProtonAnalysisBase->GetEtaMode()) 
1877     gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitle("#eta");
1878   else 
1879     gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitle("y");
1880   gHistYPtSecondaryProtonsReject->SetStats(kTRUE);
1881   gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1882   fQA2DList->Add(gHistYPtSecondaryProtonsReject);//y-pT of secondary rejected ESD protons
1883
1884   TH2D *gHistYPtPrimaryAntiProtonsPass = new TH2D("gHistYPtPrimaryAntiProtonsPass",
1885                                                   ";;P_{T} [GeV/c]",
1886                                                   fNBinsY,fMinY,fMaxY,
1887                                                   fNBinsPt,fMinPt,fMaxPt);
1888   if(fProtonAnalysisBase->GetEtaMode()) 
1889     gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
1890   else 
1891     gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitle("y");
1892   gHistYPtPrimaryAntiProtonsPass->SetStats(kTRUE);
1893   gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1894   fQA2DList->Add(gHistYPtPrimaryAntiProtonsPass);//y-pT of primary accepted ESD antiprotons
1895   TH2D *gHistYPtPrimaryAntiProtonsReject = new TH2D("gHistYPtPrimaryAntiProtonsReject",
1896                                                     ";;P_{T} [GeV/c]",
1897                                                     fNBinsY,fMinY,fMaxY,
1898                                                     fNBinsPt,fMinPt,fMaxPt);
1899   if(fProtonAnalysisBase->GetEtaMode()) 
1900     gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
1901   else 
1902     gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitle("y");
1903   gHistYPtPrimaryAntiProtonsReject->SetStats(kTRUE);
1904   gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1905   fQA2DList->Add(gHistYPtPrimaryAntiProtonsReject);//y-pT of primary rejected ESD antiprotons
1906
1907   TH2D *gHistYPtSecondaryAntiProtonsPass = new TH2D("gHistYPtSecondaryAntiProtonsPass",
1908                                                     ";;P_{T} [GeV/c]",
1909                                                     fNBinsY,fMinY,fMaxY,
1910                                                     fNBinsPt,fMinPt,fMaxPt);
1911   if(fProtonAnalysisBase->GetEtaMode()) 
1912     gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
1913   else 
1914     gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitle("y");
1915   gHistYPtSecondaryAntiProtonsPass->SetStats(kTRUE);
1916   gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1917   fQA2DList->Add(gHistYPtSecondaryAntiProtonsPass);//y-pT of secondary accepted ESD antiprotons
1918   TH2D *gHistYPtSecondaryAntiProtonsReject = new TH2D("gHistYPtSecondaryAntiProtonsReject",
1919                                                       ";;P_{T} [GeV/c]",
1920                                                       fNBinsY,fMinY,fMaxY,
1921                                                       fNBinsPt,fMinPt,fMaxPt);
1922   if(fProtonAnalysisBase->GetEtaMode()) 
1923     gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
1924   else 
1925     gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitle("y");
1926   gHistYPtSecondaryAntiProtonsReject->SetStats(kTRUE);
1927   gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1928   fQA2DList->Add(gHistYPtSecondaryAntiProtonsReject);//y-pT of secondary rejected ESD antiprotons
1929
1930   TH2D *gHistYPtPrimaryProtonsMC = new TH2D("gHistYPtPrimaryProtonsMC",
1931                                             ";;P_{T} [GeV/c]",
1932                                             fNBinsY,fMinY,fMaxY,
1933                                             fNBinsPt,fMinPt,fMaxPt);
1934   if(fProtonAnalysisBase->GetEtaMode()) 
1935     gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitle("#eta");
1936   else 
1937     gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitle("y");
1938   gHistYPtPrimaryProtonsMC->SetStats(kTRUE);
1939   gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitleColor(1);
1940   fQA2DList->Add(gHistYPtPrimaryProtonsMC);//y-pT of primary MC protons
1941   TH2D *gHistYPtPrimaryAntiProtonsMC = new TH2D("gHistYPtPrimaryAntiProtonsMC",
1942                                                 ";;P_{T} [GeV/c]",
1943                                                 fNBinsY,fMinY,fMaxY,
1944                                                 fNBinsPt,fMinPt,fMaxPt);
1945   if(fProtonAnalysisBase->GetEtaMode()) 
1946     gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("#eta");
1947   else 
1948     gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("y");
1949   gHistYPtPrimaryAntiProtonsMC->SetStats(kTRUE);
1950   gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitleColor(1);
1951   fQA2DList->Add(gHistYPtPrimaryAntiProtonsMC);//y-pT of primary MC antiprotons
1952
1953   TH3F *gHistYPtPDGProtonsPass = new TH3F("gHistYPtPDGProtonsPass",
1954                                           ";;P_{T} [GeV/c];PDG",
1955                                           fNBinsY,fMinY,fMaxY,
1956                                           fNBinsPt,fMinPt,fMaxPt,
1957                                           14,-0.5,13.5);
1958   if(fProtonAnalysisBase->GetEtaMode()) 
1959     gHistYPtPDGProtonsPass->GetXaxis()->SetTitle("#eta");
1960   else 
1961     gHistYPtPDGProtonsPass->GetXaxis()->SetTitle("y");
1962   fQA2DList->Add(gHistYPtPDGProtonsPass);//composition of secondary protons
1963   TH3F *gHistYPtPDGAntiProtonsPass = new TH3F("gHistYPtPDGAntiProtonsPass",
1964                                               ";;P_{T} [GeV/c];PDG",
1965                                               fNBinsY,fMinY,fMaxY,
1966                                               fNBinsPt,fMinPt,fMaxPt,
1967                                               14,-0.5,13.5);
1968   if(fProtonAnalysisBase->GetEtaMode()) 
1969     gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("#eta");
1970   else 
1971     gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("y");
1972   fQA2DList->Add(gHistYPtPDGAntiProtonsPass);//composition of secondary antiprotons
1973
1974   /*gDirectory->cd("../");
1975   //protons
1976   TDirectory *dirProtons = gDirectory->mkdir("Protons");
1977   fGlobalQAList->Add(dirProtons); dirProtons->cd();*/
1978   
1979   //________________________________________________________________//
1980   /*TDirectory *dirProtonsPrimary = gDirectory->mkdir("Primaries");
1981   dirProtonsPrimary->cd();
1982   TDirectory *dirProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
1983   dirProtonsPrimaryAccepted->cd();*/
1984
1985   //Accepted primary protons
1986   TH1F *gPrimaryProtonsITSClustersPass = new TH1F("gPrimaryProtonsITSClustersPass",
1987                                             ";N_{clusters} (ITS);Entries",
1988                                             7,0,7);
1989   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSClustersPass);
1990   TH1F *gPrimaryProtonsChi2PerClusterITSPass = new TH1F("gPrimaryProtonsChi2PerClusterITSPass",
1991                                                   ";x^{2}/N_{clusters} (ITS);Entries",
1992                                                   100,0,4);
1993   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterITSPass);
1994   TH1F *gPrimaryProtonsTPCClustersPass = new TH1F("gPrimaryProtonsTPCClustersPass",
1995                                             ";N_{clusters} (TPC);Entries",
1996                                             100,0,200);
1997   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCClustersPass);
1998   TH1F *gPrimaryProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryProtonsChi2PerClusterTPCPass",
1999                                                   ";x^{2}/N_{clusters} (TPC);Entries",
2000                                                   100,0,4);
2001   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterTPCPass);
2002   TH1F *gPrimaryProtonsExtCov11Pass = new TH1F("gPrimaryProtonsExtCov11Pass",
2003                                          ";#sigma_{y} [cm];Entries",
2004                                          100,0,4);
2005   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov11Pass);
2006   TH1F *gPrimaryProtonsExtCov22Pass = new TH1F("gPrimaryProtonsExtCov22Pass",
2007                                          ";#sigma_{z} [cm];Entries",
2008                                          100,0,4);
2009   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov22Pass);
2010   TH1F *gPrimaryProtonsExtCov33Pass = new TH1F("gPrimaryProtonsExtCov33Pass",
2011                                          ";#sigma_{sin(#phi)};Entries",
2012                                          100,0,4);
2013   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov33Pass);
2014   TH1F *gPrimaryProtonsExtCov44Pass = new TH1F("gPrimaryProtonsExtCov44Pass",
2015                                          ";#sigma_{tan(#lambda)};Entries",
2016                                          100,0,4);
2017   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov44Pass);
2018   TH1F *gPrimaryProtonsExtCov55Pass = new TH1F("gPrimaryProtonsExtCov55Pass",
2019                                          ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2020                                          100,0,4);
2021   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov55Pass);
2022   TH1F *gPrimaryProtonsSigmaToVertexPass = new TH1F("gPrimaryProtonsSigmaToVertexPass",
2023                                              ";#sigma_{Vertex};Entries",
2024                                              100,0,10);
2025   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexPass);
2026   TH1F *gPrimaryProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryProtonsSigmaToVertexTPCPass",
2027                                              ";#sigma_{Vertex};Entries",
2028                                              100,0,10);
2029   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexTPCPass);
2030   TH1F *gPrimaryProtonsDCAXYPass = new TH1F("gPrimaryProtonsDCAXYPass",
2031                                              ";DCA_{xy} [cm];Entries",
2032                                              100,0,20);
2033   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYPass);
2034   TH1F *gPrimaryProtonsDCAXYTPCPass = new TH1F("gPrimaryProtonsDCAXYTPCPass",
2035                                                ";DCA_{xy} [cm];Entries",
2036                                                100,0,20);
2037   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYTPCPass);
2038   TH1F *gPrimaryProtonsDCAZPass = new TH1F("gPrimaryProtonsDCAZPass",
2039                                            ";DCA_{z} [cm];Entries",
2040                                            100,0,20);
2041   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZPass);
2042   TH1F *gPrimaryProtonsDCAZTPCPass = new TH1F("gPrimaryProtonsDCAZTPCPass",
2043                                               ";DCA_{z} [cm];Entries",
2044                                               100,0,20);
2045   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZTPCPass);
2046   TH1F *gPrimaryProtonsConstrainChi2Pass = new TH1F("gPrimaryProtonsConstrainChi2Pass",
2047                                                     ";Log_{10}(#chi^{2});Entries",
2048                                                     100,-10,10);
2049   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsConstrainChi2Pass);
2050   TH1F *gPrimaryProtonsITSRefitPass = new TH1F("gPrimaryProtonsITSRefitPass",
2051                                                "",10,-1,1);
2052   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSRefitPass);
2053   TH1F *gPrimaryProtonsTPCRefitPass = new TH1F("gPrimaryProtonsTPCRefitPass",
2054                                                "",10,-1,1);
2055   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCRefitPass);
2056   TH1F *gPrimaryProtonsESDpidPass = new TH1F("gPrimaryProtonsESDpidPass",
2057                                              "",10,-1,1);
2058   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsESDpidPass);
2059   TH1F *gPrimaryProtonsTPCpidPass = new TH1F("gPrimaryProtonsTPCpidPass",
2060                                              "",10,-1,1);
2061   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCpidPass);
2062   TH1F *gPrimaryProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryProtonsPointOnITSLayer1Pass",
2063                                              "",10,-1,1);
2064   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer1Pass);
2065   TH1F *gPrimaryProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryProtonsPointOnITSLayer2Pass",
2066                                              "",10,-1,1);
2067   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer2Pass);
2068   TH1F *gPrimaryProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryProtonsPointOnITSLayer3Pass",
2069                                              "",10,-1,1);
2070   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer3Pass);
2071   TH1F *gPrimaryProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryProtonsPointOnITSLayer4Pass",
2072                                              "",10,-1,1);
2073   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer4Pass);
2074   TH1F *gPrimaryProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryProtonsPointOnITSLayer5Pass",
2075                                              "",10,-1,1);
2076   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer5Pass);
2077   TH1F *gPrimaryProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryProtonsPointOnITSLayer6Pass",
2078                                              "",10,-1,1);
2079   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer6Pass);
2080   TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2081   fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsPass);
2082
2083   //Rejected primary protons
2084   /*gDirectory->cd("../");
2085   TDirectory *dirProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2086   dirProtonsPrimaryRejected->cd();*/
2087
2088   TH1F *gPrimaryProtonsITSClustersReject = new TH1F("gPrimaryProtonsITSClustersReject",
2089                                                     ";N_{clusters} (ITS);Entries",
2090                                                     7,0,7);
2091   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSClustersReject);
2092   TH1F *gPrimaryProtonsChi2PerClusterITSReject = new TH1F("gPrimaryProtonsChi2PerClusterITSReject",
2093                                                           ";x^{2}/N_{clusters} (ITS);Entries",
2094                                                           100,0,4);
2095   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterITSReject);
2096   TH1F *gPrimaryProtonsTPCClustersReject = new TH1F("gPrimaryProtonsTPCClustersReject",
2097                                             ";N_{clusters} (TPC);Entries",
2098                                             100,0,200);
2099   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCClustersReject);
2100   TH1F *gPrimaryProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryProtonsChi2PerClusterTPCReject",
2101                                                   ";x^{2}/N_{clusters} (TPC);Entries",
2102                                                   100,0,4);
2103   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterTPCReject);
2104   TH1F *gPrimaryProtonsExtCov11Reject = new TH1F("gPrimaryProtonsExtCov11Reject",
2105                                          ";#sigma_{y} [cm];Entries",
2106                                          100,0,4);
2107   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov11Reject);
2108   TH1F *gPrimaryProtonsExtCov22Reject = new TH1F("gPrimaryProtonsExtCov22Reject",
2109                                          ";#sigma_{z} [cm];Entries",
2110                                          100,0,4);
2111   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov22Reject);
2112   TH1F *gPrimaryProtonsExtCov33Reject = new TH1F("gPrimaryProtonsExtCov33Reject",
2113                                          ";#sigma_{sin(#phi)};Entries",
2114                                          100,0,4);
2115   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov33Reject);
2116   TH1F *gPrimaryProtonsExtCov44Reject = new TH1F("gPrimaryProtonsExtCov44Reject",
2117                                          ";#sigma_{tan(#lambda)};Entries",
2118                                          100,0,4);
2119   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov44Reject);
2120   TH1F *gPrimaryProtonsExtCov55Reject = new TH1F("gPrimaryProtonsExtCov55Reject",
2121                                          ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2122                                          100,0,4);
2123   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov55Reject);
2124   TH1F *gPrimaryProtonsSigmaToVertexReject = new TH1F("gPrimaryProtonsSigmaToVertexReject",
2125                                              ";#sigma_{Vertex};Entries",
2126                                              100,0,10);
2127   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexReject);
2128   TH1F *gPrimaryProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryProtonsSigmaToVertexTPCReject",
2129                                              ";#sigma_{Vertex};Entries",
2130                                              100,0,10);
2131   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexTPCReject);
2132   TH1F *gPrimaryProtonsDCAXYReject = new TH1F("gPrimaryProtonsDCAXYReject",
2133                                               ";DCA_{xy} [cm];Entries",
2134                                               100,0,20);
2135   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYReject);
2136   TH1F *gPrimaryProtonsDCAXYTPCReject = new TH1F("gPrimaryProtonsDCAXYTPCReject",
2137                                                  ";DCA_{xy} [cm];Entries",
2138                                                  100,0,20);
2139   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYTPCReject);
2140   TH1F *gPrimaryProtonsDCAZReject = new TH1F("gPrimaryProtonsDCAZReject",
2141                                              ";DCA_{z} [cm];Entries",
2142                                              100,0,20);
2143   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZReject);
2144   TH1F *gPrimaryProtonsDCAZTPCReject = new TH1F("gPrimaryProtonsDCAZTPCReject",
2145                                                 ";DCA_{z} [cm];Entries",
2146                                                 100,0,20);
2147   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZTPCReject);
2148   TH1F *gPrimaryProtonsConstrainChi2Reject = new TH1F("gPrimaryProtonsConstrainChi2Reject",
2149                                                     ";Log_{10}(#chi^{2});Entries",
2150                                                     100,-10,10);
2151   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsConstrainChi2Reject);
2152   TH1F *gPrimaryProtonsITSRefitReject = new TH1F("gPrimaryProtonsITSRefitReject",
2153                                                  "",10,-1,1);
2154   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSRefitReject);
2155   TH1F *gPrimaryProtonsTPCRefitReject = new TH1F("gPrimaryProtonsTPCRefitReject",
2156                                                  "",10,-1,1);
2157   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCRefitReject);
2158   TH1F *gPrimaryProtonsESDpidReject = new TH1F("gPrimaryProtonsESDpidReject",
2159                                                "",10,-1,1);
2160   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsESDpidReject);
2161   TH1F *gPrimaryProtonsTPCpidReject = new TH1F("gPrimaryProtonsTPCpidReject",
2162                                                "",10,-1,1);
2163   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCpidReject);
2164   TH1F *gPrimaryProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryProtonsPointOnITSLayer1Reject",
2165                                              "",10,-1,1);
2166   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer1Reject);
2167   TH1F *gPrimaryProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryProtonsPointOnITSLayer2Reject",
2168                                              "",10,-1,1);
2169   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer2Reject);
2170   TH1F *gPrimaryProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryProtonsPointOnITSLayer3Reject",
2171                                              "",10,-1,1);
2172   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer3Reject);
2173   TH1F *gPrimaryProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryProtonsPointOnITSLayer4Reject",
2174                                              "",10,-1,1);
2175   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer4Reject);
2176   TH1F *gPrimaryProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryProtonsPointOnITSLayer5Reject",
2177                                              "",10,-1,1);
2178   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer5Reject);
2179   TH1F *gPrimaryProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryProtonsPointOnITSLayer6Reject",
2180                                              "",10,-1,1);
2181   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer6Reject);
2182   TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2183   fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsReject);
2184
2185   //________________________________________________________________//
2186   /*gDirectory->cd("../../");
2187
2188   TDirectory *dirProtonsSecondary = gDirectory->mkdir("Secondaries");
2189   dirProtonsSecondary->cd();
2190   TDirectory *dirProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
2191   dirProtonsSecondaryAccepted->cd();*/
2192
2193   //Accepted secondary protons
2194   TH1F *gSecondaryProtonsITSClustersPass = new TH1F("gSecondaryProtonsITSClustersPass",
2195                                                     ";N_{clusters} (ITS);Entries",
2196                                                     7,0,7);
2197   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSClustersPass);
2198   TH1F *gSecondaryProtonsChi2PerClusterITSPass = new TH1F("gSecondaryProtonsChi2PerClusterITSPass",
2199                                                           ";x^{2}/N_{clusters} (ITS);Entries",
2200                                                           100,0,4);
2201   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterITSPass);
2202   TH1F *gSecondaryProtonsTPCClustersPass = new TH1F("gSecondaryProtonsTPCClustersPass",
2203                                             ";N_{clusters} (TPC);Entries",
2204                                             100,0,200);
2205   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCClustersPass);
2206   TH1F *gSecondaryProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryProtonsChi2PerClusterTPCPass",
2207                                                   ";x^{2}/N_{clusters} (TPC);Entries",
2208                                                   100,0,4);
2209   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterTPCPass);
2210   TH1F *gSecondaryProtonsExtCov11Pass = new TH1F("gSecondaryProtonsExtCov11Pass",
2211                                          ";#sigma_{y} [cm];Entries",
2212                                          100,0,4);
2213   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov11Pass);
2214   TH1F *gSecondaryProtonsExtCov22Pass = new TH1F("gSecondaryProtonsExtCov22Pass",
2215                                          ";#sigma_{z} [cm];Entries",
2216                                          100,0,4);
2217   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov22Pass);
2218   TH1F *gSecondaryProtonsExtCov33Pass = new TH1F("gSecondaryProtonsExtCov33Pass",
2219                                          ";#sigma_{sin(#phi)};Entries",
2220                                          100,0,4);
2221   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov33Pass);
2222   TH1F *gSecondaryProtonsExtCov44Pass = new TH1F("gSecondaryProtonsExtCov44Pass",
2223                                          ";#sigma_{tan(#lambda)};Entries",
2224                                          100,0,4);
2225   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov44Pass);
2226   TH1F *gSecondaryProtonsExtCov55Pass = new TH1F("gSecondaryProtonsExtCov55Pass",
2227                                          ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2228                                          100,0,4);
2229   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov55Pass);
2230   TH1F *gSecondaryProtonsSigmaToVertexPass = new TH1F("gSecondaryProtonsSigmaToVertexPass",
2231                                              ";#sigma_{Vertex};Entries",
2232                                              100,0,10);
2233   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexPass);
2234   TH1F *gSecondaryProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryProtonsSigmaToVertexTPCPass",
2235                                              ";#sigma_{Vertex};Entries",
2236                                              100,0,10);
2237   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexTPCPass);
2238   TH1F *gSecondaryProtonsDCAXYPass = new TH1F("gSecondaryProtonsDCAXYPass",
2239                                               ";DCA_{xy} [cm];Entries",
2240                                               100,0,20);
2241   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYPass);
2242   TH1F *gSecondaryProtonsDCAXYTPCPass = new TH1F("gSecondaryProtonsDCAXYTPCPass",
2243                                                  ";DCA_{xy} [cm];Entries",
2244                                                  100,0,20);
2245   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYTPCPass);
2246   TH1F *gSecondaryProtonsDCAZPass = new TH1F("gSecondaryProtonsDCAZPass",
2247                                              ";DCA_{z} [cm];Entries",
2248                                              100,0,20);
2249   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZPass);
2250   TH1F *gSecondaryProtonsDCAZTPCPass = new TH1F("gSecondaryProtonsDCAZTPCPass",
2251                                                 ";DCA_{z} [cm];Entries",
2252                                                 100,0,20);
2253   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZTPCPass);
2254   TH1F *gSecondaryProtonsConstrainChi2Pass = new TH1F("gSecondaryProtonsConstrainChi2Pass",
2255                                                     ";Log_{10}(#chi^{2});Entries",
2256                                                     100,-10,10);
2257   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsConstrainChi2Pass);
2258   TH1F *gSecondaryProtonsITSRefitPass = new TH1F("gSecondaryProtonsITSRefitPass",
2259                                                  "",10,-1,1);
2260   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSRefitPass);
2261   TH1F *gSecondaryProtonsTPCRefitPass = new TH1F("gSecondaryProtonsTPCRefitPass",
2262                                                  "",10,-1,1);
2263   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCRefitPass);
2264   TH1F *gSecondaryProtonsESDpidPass = new TH1F("gSecondaryProtonsESDpidPass",
2265                                                "",10,-1,1);
2266   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsESDpidPass);
2267   TH1F *gSecondaryProtonsTPCpidPass = new TH1F("gSecondaryProtonsTPCpidPass",
2268                                                "",10,-1,1);
2269   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCpidPass);
2270   TH1F *gSecondaryProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryProtonsPointOnITSLayer1Pass",
2271                                                          "",10,-1,1);
2272   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer1Pass);
2273   TH1F *gSecondaryProtonsPointOnITSLayer2Pass = new TH1F("gSecondaryProtonsPointOnITSLayer2Pass",
2274                                                          "",10,-1,1);
2275   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer2Pass);
2276   TH1F *gSecondaryProtonsPointOnITSLayer3Pass = new TH1F("gSecondaryProtonsPointOnITSLayer3Pass",
2277                                                          "",10,-1,1);
2278   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer3Pass);
2279   TH1F *gSecondaryProtonsPointOnITSLayer4Pass = new TH1F("gSecondaryProtonsPointOnITSLayer4Pass",
2280                                                          "",10,-1,1);
2281   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer4Pass);
2282   TH1F *gSecondaryProtonsPointOnITSLayer5Pass = new TH1F("gSecondaryProtonsPointOnITSLayer5Pass",
2283                                                          "",10,-1,1);
2284   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer5Pass);
2285   TH1F *gSecondaryProtonsPointOnITSLayer6Pass = new TH1F("gSecondaryProtonsPointOnITSLayer6Pass",
2286                                                          "",10,-1,1);
2287   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer6Pass);
2288   TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2289   fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsPass);
2290
2291   //Rejected secondary protons
2292   /*gDirectory->cd("../");
2293   TDirectory *dirProtonsSecondaryRejected = gDirectory->mkdir("Rejected");
2294   dirProtonsSecondaryRejected->cd();*/
2295
2296   TH1F *gSecondaryProtonsITSClustersReject = new TH1F("gSecondaryProtonsITSClustersReject",
2297                                                       ";N_{clusters} (ITS);Entries",
2298                                                       7,0,7);
2299   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSClustersReject);
2300   TH1F *gSecondaryProtonsChi2PerClusterITSReject = new TH1F("gSecondaryProtonsChi2PerClusterITSReject",
2301                                                             ";x^{2}/N_{clusters} (ITS);Entries",
2302                                                             100,0,4);
2303   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterITSReject);
2304   TH1F *gSecondaryProtonsTPCClustersReject = new TH1F("gSecondaryProtonsTPCClustersReject",
2305                                             ";N_{clusters} (TPC);Entries",
2306                                             100,0,200);
2307   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCClustersReject);
2308   TH1F *gSecondaryProtonsChi2PerClusterTPCReject = new TH1F("gSecondaryProtonsChi2PerClusterTPCReject",
2309                                                   ";x^{2}/N_{clusters} (TPC);Entries",
2310                                                   100,0,4);
2311   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterTPCReject);
2312   TH1F *gSecondaryProtonsExtCov11Reject = new TH1F("gSecondaryProtonsExtCov11Reject",
2313                                          ";#sigma_{y} [cm];Entries",
2314                                          100,0,4);
2315   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov11Reject);
2316   TH1F *gSecondaryProtonsExtCov22Reject = new TH1F("gSecondaryProtonsExtCov22Reject",
2317                                          ";#sigma_{z} [cm];Entries",
2318                                          100,0,4);
2319   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov22Reject);
2320   TH1F *gSecondaryProtonsExtCov33Reject = new TH1F("gSecondaryProtonsExtCov33Reject",
2321                                          ";#sigma_{sin(#phi)};Entries",
2322                                          100,0,4);
2323   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov33Reject);
2324   TH1F *gSecondaryProtonsExtCov44Reject = new TH1F("gSecondaryProtonsExtCov44Reject",
2325                                          ";#sigma_{tan(#lambda)};Entries",
2326                                          100,0,4);
2327   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov44Reject);
2328   TH1F *gSecondaryProtonsExtCov55Reject = new TH1F("gSecondaryProtonsExtCov55Reject",
2329                                          ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2330                                          100,0,4);
2331   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov55Reject);
2332   TH1F *gSecondaryProtonsSigmaToVertexReject = new TH1F("gSecondaryProtonsSigmaToVertexReject",
2333                                              ";#sigma_{Vertex};Entries",
2334                                              100,0,10);
2335   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexReject);
2336   TH1F *gSecondaryProtonsSigmaToVertexTPCReject = new TH1F("gSecondaryProtonsSigmaToVertexTPCReject",
2337                                                            ";#sigma_{Vertex};Entries",
2338                                                            100,0,10);
2339   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexTPCReject);
2340   TH1F *gSecondaryProtonsDCAXYReject = new TH1F("gSecondaryProtonsDCAXYReject",
2341                                                 ";DCA_{xy} [cm];Entries",
2342                                                 100,0,20);
2343   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYReject);
2344   TH1F *gSecondaryProtonsDCAXYTPCReject = new TH1F("gSecondaryProtonsDCAXYTPCReject",
2345                                                    ";DCA_{xy} [cm];Entries",
2346                                                    100,0,20);
2347   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYTPCReject);
2348   TH1F *gSecondaryProtonsDCAZReject = new TH1F("gSecondaryProtonsDCAZReject",
2349                                                ";DCA_{z} [cm];Entries",
2350                                                100,0,20);
2351   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZReject);
2352   TH1F *gSecondaryProtonsDCAZTPCReject = new TH1F("gSecondaryProtonsDCAZTPCReject",
2353                                                   ";DCA_{z} [cm];Entries",
2354                                                   100,0,20);
2355   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZTPCReject);
2356   TH1F *gSecondaryProtonsConstrainChi2Reject = new TH1F("gSecondaryProtonsConstrainChi2Reject",
2357                                                         ";Log_{10}(#chi^{2});Entries",
2358                                                         100,-10,10);
2359   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsConstrainChi2Reject);
2360   TH1F *gSecondaryProtonsITSRefitReject = new TH1F("gSecondaryProtonsITSRefitReject",
2361                                                    "",10,-1,1);
2362   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSRefitReject);
2363   TH1F *gSecondaryProtonsTPCRefitReject = new TH1F("gSecondaryProtonsTPCRefitReject",
2364                                                    "",10,-1,1);
2365   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCRefitReject);
2366   TH1F *gSecondaryProtonsESDpidReject = new TH1F("gSecondaryProtonsESDpidReject",
2367                                                  "",10,-1,1);
2368   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsESDpidReject);
2369   TH1F *gSecondaryProtonsTPCpidReject = new TH1F("gSecondaryProtonsTPCpidReject",
2370                                                  "",10,-1,1);
2371   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCpidReject);
2372   TH1F *gSecondaryProtonsPointOnITSLayer1Reject = new TH1F("gSecondaryProtonsPointOnITSLayer1Reject",
2373                                                            "",10,-1,1);
2374   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer1Reject);
2375   TH1F *gSecondaryProtonsPointOnITSLayer2Reject = new TH1F("gSecondaryProtonsPointOnITSLayer2Reject",
2376                                                            "",10,-1,1);
2377   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer2Reject);
2378   TH1F *gSecondaryProtonsPointOnITSLayer3Reject = new TH1F("gSecondaryProtonsPointOnITSLayer3Reject",
2379                                                            "",10,-1,1);
2380   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer3Reject);
2381   TH1F *gSecondaryProtonsPointOnITSLayer4Reject = new TH1F("gSecondaryProtonsPointOnITSLayer4Reject",
2382                                                            "",10,-1,1);
2383   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer4Reject);
2384   TH1F *gSecondaryProtonsPointOnITSLayer5Reject = new TH1F("gSecondaryProtonsPointOnITSLayer5Reject",
2385                                                            "",10,-1,1);
2386   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer5Reject);
2387   TH1F *gSecondaryProtonsPointOnITSLayer6Reject = new TH1F("gSecondaryProtonsPointOnITSLayer6Reject",
2388                                                            "",10,-1,1);
2389   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer6Reject);
2390   TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2391   fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsReject);  
2392
2393   /*gDirectory->cd("../../../");
2394
2395   //antiprotons
2396   TDirectory *dirAntiProtons = gDirectory->mkdir("AntiProtons");
2397   fGlobalQAList->Add(dirAntiProtons); dirAntiProtons->cd();*/
2398   
2399   //________________________________________________________________//
2400   /*TDirectory *dirAntiProtonsPrimary = gDirectory->mkdir("Primaries");
2401   dirAntiProtonsPrimary->cd();
2402   TDirectory *dirAntiProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
2403   dirAntiProtonsPrimaryAccepted->cd();*/
2404   
2405   //Accepted primary antiprotons
2406   TH1F *gPrimaryAntiProtonsITSClustersPass = new TH1F("gPrimaryAntiProtonsITSClustersPass",
2407                                                       ";N_{clusters} (ITS);Entries",
2408                                                       7,0,7);
2409   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSClustersPass);
2410   TH1F *gPrimaryAntiProtonsChi2PerClusterITSPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSPass",
2411                                                             ";x^{2}/N_{clusters} (ITS);Entries",
2412                                                             100,0,4);
2413   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterITSPass);
2414   TH1F *gPrimaryAntiProtonsTPCClustersPass = new TH1F("gPrimaryAntiProtonsTPCClustersPass",
2415                                                       ";N_{clusters} (TPC);Entries",
2416                                                       100,0,200);
2417   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCClustersPass);
2418   TH1F *gPrimaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCPass",
2419                                                             ";x^{2}/N_{clusters} (TPC);Entries",
2420                                                             100,0,4);
2421   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCPass);
2422   TH1F *gPrimaryAntiProtonsExtCov11Pass = new TH1F("gPrimaryAntiProtonsExtCov11Pass",
2423                                                    ";#sigma_{y} [cm];Entries",
2424                                                    100,0,4);
2425   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov11Pass);
2426   TH1F *gPrimaryAntiProtonsExtCov22Pass = new TH1F("gPrimaryAntiProtonsExtCov22Pass",
2427                                                    ";#sigma_{z} [cm];Entries",
2428                                                    100,0,4);
2429   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov22Pass);
2430   TH1F *gPrimaryAntiProtonsExtCov33Pass = new TH1F("gPrimaryAntiProtonsExtCov33Pass",
2431                                                    ";#sigma_{sin(#phi)};Entries",
2432                                                    100,0,4);
2433   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov33Pass);
2434   TH1F *gPrimaryAntiProtonsExtCov44Pass = new TH1F("gPrimaryAntiProtonsExtCov44Pass",
2435                                                    ";#sigma_{tan(#lambda)};Entries",
2436                                                    100,0,4);
2437   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov44Pass);
2438   TH1F *gPrimaryAntiProtonsExtCov55Pass = new TH1F("gPrimaryAntiProtonsExtCov55Pass",
2439                                                    ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2440                                                    100,0,4);
2441   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov55Pass);
2442   TH1F *gPrimaryAntiProtonsSigmaToVertexPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexPass",
2443                                                         ";#sigma_{Vertex};Entries",
2444                                                         100,0,10);
2445   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexPass);
2446   TH1F *gPrimaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCPass",
2447                                                            ";#sigma_{Vertex};Entries",
2448                                                            100,0,10);
2449   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCPass);
2450   TH1F *gPrimaryAntiProtonsDCAXYPass = new TH1F("gPrimaryAntiProtonsDCAXYPass",
2451                                                 ";DCA_{xy} [cm];Entries",
2452                                                 100,0,20);
2453   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYPass);
2454   TH1F *gPrimaryAntiProtonsDCAXYTPCPass = new TH1F("gPrimaryAntiProtonsDCAXYTPCPass",
2455                                                    ";DCA_{xy} [cm];Entries",
2456                                                    100,0,20);
2457   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYTPCPass);
2458   TH1F *gPrimaryAntiProtonsDCAZPass = new TH1F("gPrimaryAntiProtonsDCAZPass",
2459                                                ";DCA_{z} [cm];Entries",
2460                                                100,0,20);
2461   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZPass);
2462   TH1F *gPrimaryAntiProtonsDCAZTPCPass = new TH1F("gPrimaryAntiProtonsDCAZTPCPass",
2463                                                   ";DCA_{z} [cm];Entries",
2464                                                   100,0,20);
2465   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZTPCPass);
2466   TH1F *gPrimaryAntiProtonsConstrainChi2Pass = new TH1F("gPrimaryAntiProtonsConstrainChi2Pass",
2467                                                         ";Log_{10}(#chi^{2});Entries",
2468                                                         100,-10,10);
2469   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsConstrainChi2Pass);
2470   TH1F *gPrimaryAntiProtonsITSRefitPass = new TH1F("gPrimaryAntiProtonsITSRefitPass",
2471                                                    "",10,-1,1);
2472   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSRefitPass);
2473   TH1F *gPrimaryAntiProtonsTPCRefitPass = new TH1F("gPrimaryAntiProtonsTPCRefitPass",
2474                                                    "",10,-1,1);
2475   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCRefitPass);
2476   TH1F *gPrimaryAntiProtonsESDpidPass = new TH1F("gPrimaryAntiProtonsESDpidPass",
2477                                                  "",10,-1,1);
2478   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsESDpidPass);
2479   TH1F *gPrimaryAntiProtonsTPCpidPass = new TH1F("gPrimaryAntiProtonsTPCpidPass",
2480                                                  "",10,-1,1);
2481   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCpidPass);
2482   TH1F *gPrimaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Pass",
2483                                                            "",10,-1,1);
2484   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Pass);
2485   TH1F *gPrimaryAntiProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Pass",
2486                                                            "",10,-1,1);
2487   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Pass);
2488   TH1F *gPrimaryAntiProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Pass",
2489                                                            "",10,-1,1);
2490   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Pass);
2491   TH1F *gPrimaryAntiProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Pass",
2492                                                            "",10,-1,1);
2493   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Pass);
2494   TH1F *gPrimaryAntiProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Pass",
2495                                                            "",10,-1,1);
2496   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Pass);
2497   TH1F *gPrimaryAntiProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Pass",
2498                                                            "",10,-1,1);
2499   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Pass);
2500   TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2501   fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass);
2502   
2503   //Rejected primary antiprotons
2504   /*gDirectory->cd("../");
2505   TDirectory *dirAntiProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2506   dirAntiProtonsPrimaryRejected->cd();*/
2507   
2508   TH1F *gPrimaryAntiProtonsITSClustersReject = new TH1F("gPrimaryAntiProtonsITSClustersReject",
2509                                                         ";N_{clusters} (ITS);Entries",
2510                                                         7,0,7);
2511   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSClustersReject);
2512   TH1F *gPrimaryAntiProtonsChi2PerClusterITSReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSReject",
2513                                                               ";x^{2}/N_{clusters} (ITS);Entries",
2514                                                               100,0,4);
2515   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterITSReject);
2516   TH1F *gPrimaryAntiProtonsTPCClustersReject = new TH1F("gPrimaryAntiProtonsTPCClustersReject",
2517                                                         ";N_{clusters} (TPC);Entries",
2518                                                         100,0,200);
2519   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCClustersReject);
2520   TH1F *gPrimaryAntiProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCReject",
2521                                                               ";x^{2}/N_{clusters} (TPC);Entries",
2522                                                               100,0,4);
2523   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCReject);
2524   TH1F *gPrimaryAntiProtonsExtCov11Reject = new TH1F("gPrimaryAntiProtonsExtCov11Reject",
2525                                                      ";#sigma_{y} [cm];Entries",
2526                                                      100,0,4);
2527   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov11Reject);
2528   TH1F *gPrimaryAntiProtonsExtCov22Reject = new TH1F("gPrimaryAntiProtonsExtCov22Reject",
2529                                                      ";#sigma_{z} [cm];Entries",
2530                                                      100,0,4);
2531   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov22Reject);
2532   TH1F *gPrimaryAntiProtonsExtCov33Reject = new TH1F("gPrimaryAntiProtonsExtCov33Reject",
2533                                                      ";#sigma_{sin(#phi)};Entries",
2534                                                      100,0,4);
2535   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov33Reject);
2536   TH1F *gPrimaryAntiProtonsExtCov44Reject = new TH1F("gPrimaryAntiProtonsExtCov44Reject",
2537                                                      ";#sigma_{tan(#lambda)};Entries",
2538                                                      100,0,4);
2539   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov44Reject);
2540   TH1F *gPrimaryAntiProtonsExtCov55Reject = new TH1F("gPrimaryAntiProtonsExtCov55Reject",
2541                                                      ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2542                                                      100,0,4);
2543   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov55Reject);
2544   TH1F *gPrimaryAntiProtonsSigmaToVertexReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexReject",
2545                                                           ";#sigma_{Vertex};Entries",
2546                                                           100,0,10);
2547   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexReject);
2548   TH1F *gPrimaryAntiProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCReject",
2549                                                              ";#sigma_{Vertex};Entries",
2550                                                              100,0,10);
2551   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCReject);
2552   TH1F *gPrimaryAntiProtonsDCAXYReject = new TH1F("gPrimaryAntiProtonsDCAXYReject",
2553                                                   ";DCA_{xy} [cm];Entries",
2554                                                   100,0,20);
2555   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYReject);
2556   TH1F *gPrimaryAntiProtonsDCAXYTPCReject = new TH1F("gPrimaryAntiProtonsDCAXYTPCReject",
2557                                                      ";DCA_{xy} [cm];Entries",
2558                                                      100,0,20);
2559   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYTPCReject);
2560   TH1F *gPrimaryAntiProtonsDCAZReject = new TH1F("gPrimaryAntiProtonsDCAZReject",
2561                                                  ";DCA_{z} [cm];Entries",
2562                                                  100,0,20);
2563   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZReject);
2564   TH1F *gPrimaryAntiProtonsDCAZTPCReject = new TH1F("gPrimaryAntiProtonsDCAZTPCReject",
2565                                                     ";DCA_{z} [cm];Entries",
2566                                                     100,0,20);
2567   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZTPCReject);
2568   TH1F *gPrimaryAntiProtonsConstrainChi2Reject = new TH1F("gPrimaryAntiProtonsConstrainChi2Reject",
2569                                                           ";Log_{10}(#chi^{2});Entries",
2570                                                           100,-10,10);
2571   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsConstrainChi2Reject);
2572   TH1F *gPrimaryAntiProtonsITSRefitReject = new TH1F("gPrimaryAntiProtonsITSRefitReject",
2573                                                      "",10,-1,1);
2574   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSRefitReject);
2575   TH1F *gPrimaryAntiProtonsTPCRefitReject = new TH1F("gPrimaryAntiProtonsTPCRefitReject",
2576                                                      "",10,-1,1);
2577   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCRefitReject);
2578   TH1F *gPrimaryAntiProtonsESDpidReject = new TH1F("gPrimaryAntiProtonsESDpidReject",
2579                                                    "",10,-1,1);
2580   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsESDpidReject);
2581   TH1F *gPrimaryAntiProtonsTPCpidReject = new TH1F("gPrimaryAntiProtonsTPCpidReject",
2582                                                    "",10,-1,1);
2583   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCpidReject);
2584   TH1F *gPrimaryAntiProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Reject",
2585                                                              "",10,-1,1);
2586   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Reject);
2587   TH1F *gPrimaryAntiProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Reject",
2588                                                              "",10,-1,1);
2589   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Reject);
2590   TH1F *gPrimaryAntiProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Reject",
2591                                                              "",10,-1,1);
2592   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Reject);
2593   TH1F *gPrimaryAntiProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Reject",
2594                                                              "",10,-1,1);
2595   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Reject);
2596   TH1F *gPrimaryAntiProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Reject",
2597                                                              "",10,-1,1);
2598   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Reject);
2599   TH1F *gPrimaryAntiProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Reject",
2600                                                              "",10,-1,1);
2601   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Reject);
2602   TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2603   fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject);
2604   
2605   //________________________________________________________________//
2606   /*gDirectory->cd("../../");
2607
2608   TDirectory *dirAntiProtonsSecondary = gDirectory->mkdir("Secondaries");
2609   dirAntiProtonsSecondary->cd();
2610   TDirectory *dirAntiProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
2611   dirAntiProtonsSecondaryAccepted->cd();*/
2612
2613   //Accepted secondary antiprotons
2614   TH1F *gSecondaryAntiProtonsITSClustersPass = new TH1F("gSecondaryAntiProtonsITSClustersPass",
2615                                                         ";N_{clusters} (ITS);Entries",
2616                                                         7,0,7);
2617   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSClustersPass);
2618   TH1F *gSecondaryAntiProtonsChi2PerClusterITSPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterITSPass",
2619                                                               ";x^{2}/N_{clusters} (ITS);Entries",
2620                                                               100,0,4);
2621   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterITSPass);
2622   TH1F *gSecondaryAntiProtonsTPCClustersPass = new TH1F("gSecondaryAntiProtonsTPCClustersPass",
2623                                                         ";N_{clusters} (TPC);Entries",
2624                                                         100,0,200);
2625   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCClustersPass);
2626   TH1F *gSecondaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPCPass",
2627                                                               ";x^{2}/N_{clusters} (TPC);Entries",
2628                                                               100,0,4);
2629   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterTPCPass);
2630   TH1F *gSecondaryAntiProtonsExtCov11Pass = new TH1F("gSecondaryAntiProtonsExtCov11Pass",
2631                                                      ";#sigma_{y} [cm];Entries",
2632                                                      100,0,4);
2633   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov11Pass);
2634   TH1F *gSecondaryAntiProtonsExtCov22Pass = new TH1F("gSecondaryAntiProtonsExtCov22Pass",
2635                                                      ";#sigma_{z} [cm];Entries",
2636                                                      100,0,4);
2637   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov22Pass);
2638   TH1F *gSecondaryAntiProtonsExtCov33Pass = new TH1F("gSecondaryAntiProtonsExtCov33Pass",
2639                                                      ";#sigma_{sin(#phi)};Entries",
2640                                                      100,0,4);
2641   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov33Pass);
2642   TH1F *gSecondaryAntiProtonsExtCov44Pass = new TH1F("gSecondaryAntiProtonsExtCov44Pass",
2643                                                      ";#sigma_{tan(#lambda)};Entries",
2644                                                      100,0,4);
2645   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov44Pass);
2646   TH1F *gSecondaryAntiProtonsExtCov55Pass = new TH1F("gSecondaryAntiProtonsExtCov55Pass",
2647                                                      ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2648                                                      100,0,4);
2649   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov55Pass);
2650   TH1F *gSecondaryAntiProtonsSigmaToVertexPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexPass",
2651                                                           ";#sigma_{Vertex};Entries",
2652                                                           100,0,10);
2653   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexPass);
2654   TH1F *gSecondaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexTPCPass",
2655                                                              ";#sigma_{Vertex};Entries",
2656                                                              100,0,10);
2657   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexTPCPass);
2658   TH1F *gSecondaryAntiProtonsDCAXYPass = new TH1F("gSecondaryAntiProtonsDCAXYPass",
2659                                                   ";DCA_{xy} [cm];Entries",
2660                                                   100,0,20);
2661   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYPass);
2662   TH1F *gSecondaryAntiProtonsDCAXYTPCPass = new TH1F("gSecondaryAntiProtonsDCAXYTPCPass",
2663                                                      ";DCA_{xy} [cm];Entries",
2664                                                      100,0,20);
2665   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYTPCPass);
2666   TH1F *gSecondaryAntiProtonsDCAZPass = new TH1F("gSecondaryAntiProtonsDCAZPass",
2667                                                  ";DCA_{z} [cm];Entries",
2668                                                  100,0,20);
2669   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZPass);
2670   TH1F *gSecondaryAntiProtonsDCAZTPCPass = new TH1F("gSecondaryAntiProtonsDCAZTPCPass",
2671                                                     ";DCA_{z} [cm];Entries",
2672                                                     100,0,20);
2673   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZTPCPass);
2674   TH1F *gSecondaryAntiProtonsConstrainChi2Pass = new TH1F("gSecondaryAntiProtonsConstrainChi2Pass",
2675                                                           ";Log_{10}(#chi^{2});Entries",
2676                                                           100,-10,10);
2677   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsConstrainChi2Pass);
2678   TH1F *gSecondaryAntiProtonsITSRefitPass = new TH1F("gSecondaryAntiProtonsITSRefitPass",
2679                                                      "",10,-1,1);
2680   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSRefitPass);
2681   TH1F *gSecondaryAntiProtonsTPCRefitPass = new TH1F("gSecondaryAntiProtonsTPCRefitPass",
2682                                                      "",10,-1,1);
2683   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCRefitPass);
2684   TH1F *gSecondaryAntiProtonsESDpidPass = new TH1F("gSecondaryAntiProtonsESDpidPass",
2685                                                    "",10,-1,1);
2686   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsESDpidPass);
2687   TH1F *gSecondaryAntiProtonsTPCpidPass = new TH1F("gSecondaryAntiProtonsTPCpidPass",
2688                                                    "",10,-1,1);
2689   fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCpidPass);
2690   TH1F *gSecondaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer1Pass",
2691                 &nbs