1 /**************************************************************************
2 * Author: Panos Christakoglou. *
3 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
14 /* $Id: AliProtonQAAnalysis.cxx 29114 2008-10-03 16:49:02Z pchrist $ */
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>
28 #include <TParticle.h>
30 #include "AliProtonQAAnalysis.h"
31 #include "AliProtonAnalysisBase.h"
33 #include <AliExternalTrackParam.h>
34 #include <AliESDEvent.h>
38 #include <AliESDVertex.h>
39 #include <AliGenEventHeader.h>
40 #include <AliMCEvent.h>
42 ClassImp(AliProtonQAAnalysis)
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),
70 //____________________________________________________________________//
71 AliProtonQAAnalysis::~AliProtonQAAnalysis() {
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;
90 if(fPDGList) delete fPDGList;
91 if(fMCProcessesList) delete fMCProcessesList;
93 if(fAcceptedCutList) delete fAcceptedCutList;
94 if(fRejectedCutList) delete fRejectedCutList;
95 if(fAcceptedDCAList) delete fAcceptedDCAList;
96 if(fRejectedDCAList) delete fRejectedDCAList;
98 if(fEfficiencyList) delete fEfficiencyList;
101 //____________________________________________________________________//
102 void AliProtonQAAnalysis::FillQA(AliStack *const stack,
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());
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.
113 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
114 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
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.;
121 gPt = tpcTrack->Pt();
122 gPx = tpcTrack->Px();
123 gPy = tpcTrack->Py();
124 gPz = tpcTrack->Pz();
125 tpcTrack->PropagateToDCA(vertex,
126 esd->GetMagneticField(),
135 track->PropagateToDCA(vertex,
136 esd->GetMagneticField(),
141 Int_t nClustersITS = track->GetITSclusters(fIdxInt);
142 Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
144 Float_t chi2PerClusterITS = -1;
146 chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
147 Float_t chi2PerClusterTPC = -1;
149 chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
152 track->GetExternalCovariance(extCov);
155 if(track->Charge() > 0) {
157 if(label <= nPrimaries) {
158 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
159 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
160 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
162 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
163 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
165 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
166 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
167 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
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);
176 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
177 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
180 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
181 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
182 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
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]);
191 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
192 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
194 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
195 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
196 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
198 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
199 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
201 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
202 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
203 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
205 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
206 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
208 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
209 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
210 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
212 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
213 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
215 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
216 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
217 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
219 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
220 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
222 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
223 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
224 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
226 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
227 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
229 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
230 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
231 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
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]));
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]));
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]));
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]));
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()));
269 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
270 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
272 }//constrain chi2 - vertex
273 if(fProtonAnalysisBase->IsUsedITSRefit()) {
274 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
275 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(16)))->Fill(0);
277 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
278 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(16)))->Fill(0);
280 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
281 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
282 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(17)))->Fill(0);
284 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
285 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(17)))->Fill(0);
287 if(fProtonAnalysisBase->IsUsedESDpid()) {
288 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
289 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(18)))->Fill(0);
291 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
292 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(18)))->Fill(0);
294 if(fProtonAnalysisBase->IsUsedTPCpid()) {
295 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
296 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(19)))->Fill(0);
298 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
299 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(19)))->Fill(0);
301 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
302 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
303 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
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);
312 else if(track->HasPointOnITSLayer(0))
313 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(21)))->Fill(0);
315 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
316 if(!track->HasPointOnITSLayer(1)) {
317 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(22)))->Fill(0);
319 else if(track->HasPointOnITSLayer(1))
320 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(22)))->Fill(0);
322 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
323 if(!track->HasPointOnITSLayer(2)) {
324 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(23)))->Fill(0);
326 else if(track->HasPointOnITSLayer(2))
327 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(23)))->Fill(0);
329 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
330 if(!track->HasPointOnITSLayer(3)) {
331 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(24)))->Fill(0);
333 else if(track->HasPointOnITSLayer(3))
334 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(24)))->Fill(0);
336 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
337 if(!track->HasPointOnITSLayer(4)) {
338 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(25)))->Fill(0);
340 else if(track->HasPointOnITSLayer(4))
341 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(25)))->Fill(0);
343 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
344 if(!track->HasPointOnITSLayer(5)) {
345 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(26)))->Fill(0);
347 else if(track->HasPointOnITSLayer(5))
348 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(26)))->Fill(0);
350 }//primary particle cut
353 if(label > nPrimaries) {
354 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
355 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
356 ((TH1F *)(fQASecondaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
358 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
359 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
361 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
362 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
363 ((TH1F *)(fQASecondaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
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);
373 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
374 //cout<<"Secondary proton accepted"<<endl;
375 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
378 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
379 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
380 ((TH1F *)(fQASecondaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
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]);
389 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
390 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
392 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
393 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
394 ((TH1F *)(fQASecondaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
396 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
397 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
399 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
400 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
401 ((TH1F *)(fQASecondaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
403 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
404 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
406 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
407 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
408 ((TH1F *)(fQASecondaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
410 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
411 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
413 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
414 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
415 ((TH1F *)(fQASecondaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
417 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
418 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
420 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
421 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
422 ((TH1F *)(fQASecondaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
424 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
425 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
427 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
428 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
429 ((TH1F *)(fQASecondaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
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]));
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]));
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]));
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]));
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()));
467 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
468 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
470 }//constrain chi2 - vertex
471 if(fProtonAnalysisBase->IsUsedITSRefit()) {
472 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
473 ((TH1F *)(fQASecondaryProtonsRejectedList->At(16)))->Fill(0);
475 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
476 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(16)))->Fill(0);
478 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
479 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
480 ((TH1F *)(fQASecondaryProtonsRejectedList->At(17)))->Fill(0);
482 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
483 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(17)))->Fill(0);
485 if(fProtonAnalysisBase->IsUsedESDpid()) {
486 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
487 ((TH1F *)(fQASecondaryProtonsRejectedList->At(18)))->Fill(0);
489 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
490 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(18)))->Fill(0);
492 if(fProtonAnalysisBase->IsUsedTPCpid()) {
493 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
494 ((TH1F *)(fQASecondaryProtonsRejectedList->At(19)))->Fill(0);
496 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
497 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(19)))->Fill(0);
499 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
500 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
501 ((TH1F *)(fQASecondaryProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
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);
510 else if(track->HasPointOnITSLayer(0))
511 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(21)))->Fill(0);
513 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
514 if(!track->HasPointOnITSLayer(1)) {
515 ((TH1F *)(fQASecondaryProtonsRejectedList->At(22)))->Fill(0);
517 else if(track->HasPointOnITSLayer(1))
518 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(22)))->Fill(0);
520 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
521 if(!track->HasPointOnITSLayer(2)) {
522 ((TH1F *)(fQASecondaryProtonsRejectedList->At(23)))->Fill(0);
524 else if(track->HasPointOnITSLayer(2))
525 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(23)))->Fill(0);
527 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
528 if(!track->HasPointOnITSLayer(3)) {
529 ((TH1F *)(fQASecondaryProtonsRejectedList->At(24)))->Fill(0);
531 else if(track->HasPointOnITSLayer(3))
532 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(24)))->Fill(0);
534 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
535 if(!track->HasPointOnITSLayer(4)) {
536 ((TH1F *)(fQASecondaryProtonsRejectedList->At(25)))->Fill(0);
538 else if(track->HasPointOnITSLayer(4))
539 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(25)))->Fill(0);
541 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
542 if(!track->HasPointOnITSLayer(5)) {
543 ((TH1F *)(fQASecondaryProtonsRejectedList->At(26)))->Fill(0);
545 else if(track->HasPointOnITSLayer(5))
546 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(26)))->Fill(0);
548 }//secondary particle cut
552 if(track->Charge() < 0) {
554 if(label <= nPrimaries) {
555 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
556 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
557 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
559 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
560 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
562 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
563 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
564 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
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);
574 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
575 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
578 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
579 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
580 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
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]);
589 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
590 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
592 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
593 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
594 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
596 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
597 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
599 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
600 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
601 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
603 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
604 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
606 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
607 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
608 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
610 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
611 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
613 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
614 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
615 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
617 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
618 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
620 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
621 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
622 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
624 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
625 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
627 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
628 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
629 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
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]));
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]));
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]));
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]));
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()));
667 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
668 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
670 }//constrain chi2 - vertex
671 if(fProtonAnalysisBase->IsUsedITSRefit()) {
672 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
673 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(16)))->Fill(0);
675 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
676 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(16)))->Fill(0);
678 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
679 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
680 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(17)))->Fill(0);
682 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
683 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(17)))->Fill(0);
685 if(fProtonAnalysisBase->IsUsedESDpid()) {
686 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
687 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(18)))->Fill(0);
689 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
690 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(18)))->Fill(0);
692 if(fProtonAnalysisBase->IsUsedTPCpid()) {
693 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
694 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(19)))->Fill(0);
696 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
697 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(19)))->Fill(0);
699 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
700 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
701 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
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);
710 else if(track->HasPointOnITSLayer(0))
711 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(21)))->Fill(0);
713 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
714 if(!track->HasPointOnITSLayer(1)) {
715 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(22)))->Fill(0);
717 else if(track->HasPointOnITSLayer(1))
718 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(22)))->Fill(0);
720 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
721 if(!track->HasPointOnITSLayer(2)) {
722 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(23)))->Fill(0);
724 else if(track->HasPointOnITSLayer(2))
725 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(23)))->Fill(0);
727 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
728 if(!track->HasPointOnITSLayer(3)) {
729 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(24)))->Fill(0);
731 else if(track->HasPointOnITSLayer(3))
732 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(24)))->Fill(0);
734 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
735 if(!track->HasPointOnITSLayer(4)) {
736 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(25)))->Fill(0);
738 else if(track->HasPointOnITSLayer(4))
739 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(25)))->Fill(0);
741 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
742 if(!track->HasPointOnITSLayer(5)) {
743 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(26)))->Fill(0);
745 else if(track->HasPointOnITSLayer(5))
746 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(26)))->Fill(0);
748 }//primary particle cut
751 if(label > nPrimaries) {
752 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
753 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
754 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
756 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
757 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
759 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
760 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
761 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
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);
770 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
771 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
774 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
775 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
776 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
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]);
785 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
786 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
788 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
789 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
790 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
792 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
793 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
795 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
796 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
797 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
799 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
800 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
802 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
803 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
804 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
806 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
807 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
809 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
810 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
811 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
813 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
814 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
816 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
817 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
818 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
820 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
821 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
823 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
824 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
825 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
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]));
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]));
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]));
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]));
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()));
863 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
864 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
866 }//constrain chi2 - vertex
867 if(fProtonAnalysisBase->IsUsedITSRefit()) {
868 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
869 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(16)))->Fill(0);
871 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
872 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(16)))->Fill(0);
874 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
875 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
876 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(17)))->Fill(0);
878 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
879 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(17)))->Fill(0);
881 if(fProtonAnalysisBase->IsUsedESDpid()) {
882 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
883 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(18)))->Fill(0);
885 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
886 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(18)))->Fill(0);
888 if(fProtonAnalysisBase->IsUsedTPCpid()) {
889 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
890 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(19)))->Fill(0);
892 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
893 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(19)))->Fill(0);
895 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
896 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
897 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(20)))->Fill(track->GetTPCsignalN());
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);
906 else if(track->HasPointOnITSLayer(0))
907 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(21)))->Fill(0);
909 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
910 if(!track->HasPointOnITSLayer(1)) {
911 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(22)))->Fill(0);
913 else if(track->HasPointOnITSLayer(1))
914 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(22)))->Fill(0);
916 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
917 if(!track->HasPointOnITSLayer(2)) {
918 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(23)))->Fill(0);
920 else if(track->HasPointOnITSLayer(2))
921 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(23)))->Fill(0);
923 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
924 if(!track->HasPointOnITSLayer(3)) {
925 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(24)))->Fill(0);
927 else if(track->HasPointOnITSLayer(3))
928 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(24)))->Fill(0);
930 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
931 if(!track->HasPointOnITSLayer(4)) {
932 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(25)))->Fill(0);
934 else if(track->HasPointOnITSLayer(4))
935 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(25)))->Fill(0);
937 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
938 if(!track->HasPointOnITSLayer(5)) {
939 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(26)))->Fill(0);
941 else if(track->HasPointOnITSLayer(5))
942 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(26)))->Fill(0);
944 }//secondary particle cut
948 //____________________________________________________________________//
949 void AliProtonQAAnalysis::SetRunQAAnalysis() {
950 //initializes the QA lists
951 //fQAHistograms = kTRUE;
952 fGlobalQAList = new TList();
954 fQA2DList = new TList();
955 fQA2DList->SetName("fQA2DList");
956 fGlobalQAList->Add(fQA2DList);
958 fQAPrimaryProtonsAcceptedList = new TList();
959 fQAPrimaryProtonsAcceptedList->SetName("fQAPrimaryProtonsAcceptedList");
960 fGlobalQAList->Add(fQAPrimaryProtonsAcceptedList);
962 fQAPrimaryProtonsRejectedList = new TList();
963 fQAPrimaryProtonsRejectedList->SetName("fQAPrimaryProtonsRejectedList");
964 fGlobalQAList->Add(fQAPrimaryProtonsRejectedList);
966 fQASecondaryProtonsAcceptedList = new TList();
967 fQASecondaryProtonsAcceptedList->SetName("fQASecondaryProtonsAcceptedList");
968 fGlobalQAList->Add(fQASecondaryProtonsAcceptedList);
970 fQASecondaryProtonsRejectedList = new TList();
971 fQASecondaryProtonsRejectedList->SetName("fQASecondaryProtonsRejectedList");
972 fGlobalQAList->Add(fQASecondaryProtonsRejectedList);
974 fQAPrimaryAntiProtonsAcceptedList = new TList();
975 fQAPrimaryAntiProtonsAcceptedList->SetName("fQAPrimaryAntiProtonsAcceptedList");
976 fGlobalQAList->Add(fQAPrimaryAntiProtonsAcceptedList);
978 fQAPrimaryAntiProtonsRejectedList = new TList();
979 fQAPrimaryAntiProtonsRejectedList->SetName("fQAPrimaryAntiProtonsRejectedList");
980 fGlobalQAList->Add(fQAPrimaryAntiProtonsRejectedList);
982 fQASecondaryAntiProtonsAcceptedList = new TList();
983 fQASecondaryAntiProtonsAcceptedList->SetName("fQASecondaryAntiProtonsAcceptedList");
984 fGlobalQAList->Add(fQASecondaryAntiProtonsAcceptedList);
986 fQASecondaryAntiProtonsRejectedList = new TList();
987 fQASecondaryAntiProtonsRejectedList->SetName("fQASecondaryAntiProtonsRejectedList");
988 fGlobalQAList->Add(fQASecondaryAntiProtonsRejectedList);
991 //____________________________________________________________________//
992 void AliProtonQAAnalysis::SetQAYPtBins(Int_t nbinsY,
993 Double_t minY, Double_t maxY,
995 Double_t minPt, Double_t maxPt) {
996 //Initializes the QA binning
998 fMinY = minY; fMaxY = maxY;
1000 fMinPt = minPt; fMaxPt = maxPt;
1004 if(fRunMCAnalysis) InitMCAnalysis();
1005 if(fRunEfficiencyAnalysis) InitEfficiencyAnalysis();
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();
1014 //MC primary protons and antiprotons for the reconstruction efficiency
1015 TH2D *gHistMCYPtProtons = new TH2D("gHistMCYPtProtons",
1017 fNBinsY,fMinY,fMaxY,
1018 fNBinsPt,fMinPt,fMaxPt);
1019 if(fProtonAnalysisBase->GetEtaMode())
1020 gHistMCYPtProtons->GetXaxis()->SetTitle("#eta");
1022 gHistMCYPtProtons->GetXaxis()->SetTitle("y");
1023 gHistMCYPtProtons->SetStats(kTRUE);
1024 gHistMCYPtProtons->GetXaxis()->SetTitleColor(1);
1025 fEfficiencyList->Add(gHistMCYPtProtons);
1026 TH2D *gHistMCYPtAntiProtons = new TH2D("gHistMCYPtAntiProtons",
1028 fNBinsY,fMinY,fMaxY,
1029 fNBinsPt,fMinPt,fMaxPt);
1030 if(fProtonAnalysisBase->GetEtaMode())
1031 gHistMCYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1033 gHistMCYPtAntiProtons->GetXaxis()->SetTitle("y");
1034 gHistMCYPtAntiProtons->SetStats(kTRUE);
1035 gHistMCYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1036 fEfficiencyList->Add(gHistMCYPtAntiProtons);
1038 //MC secondary protons and antiprotons that come from weak decay for the reconstruction efficiency
1039 TH2D *gHistMCYPtProtonsFromWeak = new TH2D("gHistMCYPtProtonsFromWeak",
1041 fNBinsY,fMinY,fMaxY,
1042 fNBinsPt,fMinPt,fMaxPt);
1043 if(fProtonAnalysisBase->GetEtaMode())
1044 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1046 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1047 gHistMCYPtProtonsFromWeak->SetStats(kTRUE);
1048 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1049 fEfficiencyList->Add(gHistMCYPtProtonsFromWeak);
1050 TH2D *gHistMCYPtAntiProtonsFromWeak = new TH2D("gHistMCYPtAntiProtonsFromWeak",
1052 fNBinsY,fMinY,fMaxY,
1053 fNBinsPt,fMinPt,fMaxPt);
1054 if(fProtonAnalysisBase->GetEtaMode())
1055 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1057 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1058 gHistMCYPtAntiProtonsFromWeak->SetStats(kTRUE);
1059 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1060 fEfficiencyList->Add(gHistMCYPtAntiProtonsFromWeak);
1062 //MC secondary protons and antiprotons that come from hadronic interactions for the reconstruction efficiency
1063 TH2D *gHistMCYPtProtonsFromHadronic = new TH2D("gHistMCYPtProtonsFromHadronic",
1065 fNBinsY,fMinY,fMaxY,
1066 fNBinsPt,fMinPt,fMaxPt);
1067 if(fProtonAnalysisBase->GetEtaMode())
1068 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1070 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1071 gHistMCYPtProtonsFromHadronic->SetStats(kTRUE);
1072 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1073 fEfficiencyList->Add(gHistMCYPtProtonsFromHadronic);
1074 TH2D *gHistMCYPtAntiProtonsFromHadronic = new TH2D("gHistMCYPtAntiProtonsFromHadronic",
1076 fNBinsY,fMinY,fMaxY,
1077 fNBinsPt,fMinPt,fMaxPt);
1078 if(fProtonAnalysisBase->GetEtaMode())
1079 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1081 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1082 gHistMCYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1083 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1084 fEfficiencyList->Add(gHistMCYPtAntiProtonsFromHadronic);
1086 //ESD primary protons and antiprotons for the reconstruction efficiency
1087 TH2D *gHistESDYPtProtons = new TH2D("gHistESDYPtProtons",
1089 fNBinsY,fMinY,fMaxY,
1090 fNBinsPt,fMinPt,fMaxPt);
1091 if(fProtonAnalysisBase->GetEtaMode())
1092 gHistESDYPtProtons->GetXaxis()->SetTitle("#eta");
1094 gHistESDYPtProtons->GetXaxis()->SetTitle("y");
1095 gHistESDYPtProtons->SetStats(kTRUE);
1096 gHistESDYPtProtons->GetXaxis()->SetTitleColor(1);
1097 fEfficiencyList->Add(gHistESDYPtProtons);
1098 TH2D *gHistESDYPtAntiProtons = new TH2D("gHistESDYPtAntiProtons",
1100 fNBinsY,fMinY,fMaxY,
1101 fNBinsPt,fMinPt,fMaxPt);
1102 if(fProtonAnalysisBase->GetEtaMode())
1103 gHistESDYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1105 gHistESDYPtAntiProtons->GetXaxis()->SetTitle("y");
1106 gHistESDYPtAntiProtons->SetStats(kTRUE);
1107 gHistESDYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1108 fEfficiencyList->Add(gHistESDYPtAntiProtons);
1110 //ESD (anti)protons from weak decays for the reconstruction efficiency
1111 TH2D *gHistESDYPtProtonsFromWeak = new TH2D("gHistESDYPtProtonsFromWeak",
1113 fNBinsY,fMinY,fMaxY,
1114 fNBinsPt,fMinPt,fMaxPt);
1115 if(fProtonAnalysisBase->GetEtaMode())
1116 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1118 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1119 gHistESDYPtProtonsFromWeak->SetStats(kTRUE);
1120 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1121 fEfficiencyList->Add(gHistESDYPtProtonsFromWeak);
1122 TH2D *gHistESDYPtAntiProtonsFromWeak = new TH2D("gHistESDYPtAntiProtonsFromWeak",
1124 fNBinsY,fMinY,fMaxY,
1125 fNBinsPt,fMinPt,fMaxPt);
1126 if(fProtonAnalysisBase->GetEtaMode())
1127 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1129 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1130 gHistESDYPtAntiProtonsFromWeak->SetStats(kTRUE);
1131 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1132 fEfficiencyList->Add(gHistESDYPtAntiProtonsFromWeak);
1134 //ESD (anti)protons from hadronic interactions for the reconstruction efficiency
1135 TH2D *gHistESDYPtProtonsFromHadronic = new TH2D("gHistESDYPtProtonsFromHadronic",
1137 fNBinsY,fMinY,fMaxY,
1138 fNBinsPt,fMinPt,fMaxPt);
1139 if(fProtonAnalysisBase->GetEtaMode())
1140 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1142 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1143 gHistESDYPtProtonsFromHadronic->SetStats(kTRUE);
1144 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1145 fEfficiencyList->Add(gHistESDYPtProtonsFromHadronic);
1146 TH2D *gHistESDYPtAntiProtonsFromHadronic = new TH2D("gHistESDYPtAntiProtonsFromHadronic",
1148 fNBinsY,fMinY,fMaxY,
1149 fNBinsPt,fMinPt,fMaxPt);
1150 if(fProtonAnalysisBase->GetEtaMode())
1151 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1153 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1154 gHistESDYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1155 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1156 fEfficiencyList->Add(gHistESDYPtAntiProtonsFromHadronic);
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,
1165 if(fProtonAnalysisBase->GetEtaMode())
1166 gHistESDInitYPtProtons->GetXaxis()->SetTitle("#eta");
1168 gHistESDInitYPtProtons->GetXaxis()->SetTitle("y");
1169 gHistESDInitYPtProtons->SetStats(kTRUE);
1170 gHistESDInitYPtProtons->GetXaxis()->SetTitleColor(1);
1171 fEfficiencyList->Add(gHistESDInitYPtProtons);
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,
1179 if(fProtonAnalysisBase->GetEtaMode())
1180 gHistESDIdYPtProtons->GetXaxis()->SetTitle("#eta");
1182 gHistESDIdYPtProtons->GetXaxis()->SetTitle("y");
1183 gHistESDIdYPtProtons->SetStats(kTRUE);
1184 gHistESDIdYPtProtons->GetXaxis()->SetTitleColor(1);
1185 fEfficiencyList->Add(gHistESDIdYPtProtons);
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,
1193 if(fProtonAnalysisBase->GetEtaMode())
1194 gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("#eta");
1196 gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("y");
1197 gHistESDRecIdYPtProtons->SetStats(kTRUE);
1198 gHistESDRecIdYPtProtons->GetXaxis()->SetTitleColor(1);
1199 fEfficiencyList->Add(gHistESDRecIdYPtProtons);
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,
1207 if(fProtonAnalysisBase->GetEtaMode())
1208 gHistESDContamYPtProtons->GetXaxis()->SetTitle("#eta");
1210 gHistESDContamYPtProtons->GetXaxis()->SetTitle("y");
1211 gHistESDContamYPtProtons->SetStats(kTRUE);
1212 gHistESDContamYPtProtons->GetXaxis()->SetTitleColor(1);
1213 fEfficiencyList->Add(gHistESDContamYPtProtons);
1216 //____________________________________________________________________//
1217 void AliProtonQAAnalysis::InitCutLists() {
1218 //Initialization of the cut lists
1219 //Adding each monitored object in each 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);
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);
1241 TH1F *gPrimaryProtonsChi2PerClusterITS = new TH1F("gPrimaryProtonsChi2PerClusterITS",
1242 ";x^{2}/N_{clusters} (ITS);Entries",
1244 fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterITS);
1245 TH1F *gPrimaryAntiProtonsChi2PerClusterITS = new TH1F("gPrimaryAntiProtonsChi2PerClusterITS",
1246 ";x^{2}/N_{clusters} (ITS);Entries",
1248 fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterITS);
1249 TH1F *gSecondaryProtonsChi2PerClusterITS = new TH1F("gSecondaryProtonsChi2PerClusterITS",
1250 ";x^{2}/N_{clusters} (ITS);Entries",
1252 fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterITS);
1253 TH1F *gSecondaryAntiProtonsChi2PerClusterITS = new TH1F("gSecondaryAntiProtonsChi2PerClusterITS",
1254 ";x^{2}/N_{clusters} (ITS);Entries",
1256 fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterITS);
1258 TH1F *gPrimaryProtonsConstrainChi2 = new TH1F("gPrimaryProtonsConstrainChi2",
1259 ";Log_{10}(#chi^{2});Entries",
1261 fAcceptedCutList->Add(gPrimaryProtonsConstrainChi2);
1262 TH1F *gPrimaryAntiProtonsConstrainChi2 = new TH1F("gPrimaryAntiProtonsConstrainChi2",
1263 ";Log_{10}(#chi^{2});Entries",
1265 fAcceptedCutList->Add(gPrimaryAntiProtonsConstrainChi2);
1266 TH1F *gSecondaryProtonsConstrainChi2 = new TH1F("gSecondaryProtonsConstrainChi2",
1267 ";Log_{10}(#chi^{2});Entries",
1269 fAcceptedCutList->Add(gSecondaryProtonsConstrainChi2);
1270 TH1F *gSecondaryAntiProtonsConstrainChi2 = new TH1F("gSecondaryAntiProtonsConstrainChi2",
1271 ";Log_{10}(#chi^{2});Entries",
1273 fAcceptedCutList->Add(gSecondaryAntiProtonsConstrainChi2);
1275 TH1F *gPrimaryProtonsTPCClusters = new TH1F("gPrimaryProtonsTPCClusters",
1276 ";N_{clusters} (TPC);Entries",
1278 fAcceptedCutList->Add(gPrimaryProtonsTPCClusters);
1279 TH1F *gPrimaryAntiProtonsTPCClusters = new TH1F("gPrimaryAntiProtonsTPCClusters",
1280 ";N_{clusters} (TPC);Entries",
1282 fAcceptedCutList->Add(gPrimaryAntiProtonsTPCClusters);
1283 TH1F *gSecondaryProtonsTPCClusters = new TH1F("gSecondaryProtonsTPCClusters",
1284 ";N_{clusters} (TPC);Entries",
1286 fAcceptedCutList->Add(gSecondaryProtonsTPCClusters);
1287 TH1F *gSecondaryAntiProtonsTPCClusters = new TH1F("gSecondaryAntiProtonsTPCClusters",
1288 ";N_{clusters} (TPC);Entries",
1290 fAcceptedCutList->Add(gSecondaryAntiProtonsTPCClusters);
1292 TH1F *gPrimaryProtonsChi2PerClusterTPC = new TH1F("gPrimaryProtonsChi2PerClusterTPC",
1293 ";x^{2}/N_{clusters} (TPC);Entries",
1295 fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterTPC);
1296 TH1F *gPrimaryAntiProtonsChi2PerClusterTPC = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPC",
1297 ";x^{2}/N_{clusters} (TPC);Entries",
1299 fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterTPC);
1300 TH1F *gSecondaryProtonsChi2PerClusterTPC = new TH1F("gSecondaryProtonsChi2PerClusterTPC",
1301 ";x^{2}/N_{clusters} (TPC);Entries",
1303 fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterTPC);
1304 TH1F *gSecondaryAntiProtonsChi2PerClusterTPC = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPC",
1305 ";x^{2}/N_{clusters} (TPC);Entries",
1307 fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterTPC);
1309 TH1F *gPrimaryProtonsExtCov11 = new TH1F("gPrimaryProtonsExtCov11",
1310 ";#sigma_{y} [cm];Entries",
1312 fAcceptedCutList->Add(gPrimaryProtonsExtCov11);
1313 TH1F *gPrimaryAntiProtonsExtCov11 = new TH1F("gPrimaryAntiProtonsExtCov11",
1314 ";#sigma_{y} [cm];Entries",
1316 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov11);
1317 TH1F *gSecondaryProtonsExtCov11 = new TH1F("gSecondaryProtonsExtCov11",
1318 ";#sigma_{y} [cm];Entries",
1320 fAcceptedCutList->Add(gSecondaryProtonsExtCov11);
1321 TH1F *gSecondaryAntiProtonsExtCov11 = new TH1F("gSecondaryAntiProtonsExtCov11",
1322 ";#sigma_{y} [cm];Entries",
1324 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov11);
1327 TH1F *gPrimaryProtonsExtCov22 = new TH1F("gPrimaryProtonsExtCov22",
1328 ";#sigma_{z} [cm];Entries",
1330 fAcceptedCutList->Add(gPrimaryProtonsExtCov22);
1331 TH1F *gPrimaryAntiProtonsExtCov22 = new TH1F("gPrimaryAntiProtonsExtCov22",
1332 ";#sigma_{z} [cm];Entries",
1334 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov22);
1335 TH1F *gSecondaryProtonsExtCov22 = new TH1F("gSecondaryProtonsExtCov22",
1336 ";#sigma_{z} [cm];Entries",
1338 fAcceptedCutList->Add(gSecondaryProtonsExtCov22);
1339 TH1F *gSecondaryAntiProtonsExtCov22 = new TH1F("gSecondaryAntiProtonsExtCov22",
1340 ";#sigma_{z} [cm];Entries",
1342 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov22);
1345 TH1F *gPrimaryProtonsExtCov33 = new TH1F("gPrimaryProtonsExtCov33",
1346 ";#sigma_{sin(#phi)};Entries",
1348 fAcceptedCutList->Add(gPrimaryProtonsExtCov33);
1349 TH1F *gPrimaryAntiProtonsExtCov33 = new TH1F("gPrimaryAntiProtonsExtCov33",
1350 ";#sigma_{sin(#phi)};Entries",
1352 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov33);
1353 TH1F *gSecondaryProtonsExtCov33 = new TH1F("gSecondaryProtonsExtCov33",
1354 ";#sigma_{sin(#phi)};Entries",
1356 fAcceptedCutList->Add(gSecondaryProtonsExtCov33);
1357 TH1F *gSecondaryAntiProtonsExtCov33 = new TH1F("gSecondaryAntiProtonsExtCov33",
1358 ";#sigma_{sin(#phi)};Entries",
1360 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov33);
1363 TH1F *gPrimaryProtonsExtCov44 = new TH1F("gPrimaryProtonsExtCov44",
1364 ";#sigma_{tan(#lambda)};Entries",
1366 fAcceptedCutList->Add(gPrimaryProtonsExtCov44);
1367 TH1F *gPrimaryAntiProtonsExtCov44 = new TH1F("gPrimaryAntiProtonsExtCov44",
1368 ";#sigma_{tan(#lambda)};Entries",
1370 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov44);
1371 TH1F *gSecondaryProtonsExtCov44 = new TH1F("gSecondaryProtonsExtCov44",
1372 ";#sigma_{tan(#lambda)};Entries",
1374 fAcceptedCutList->Add(gSecondaryProtonsExtCov44);
1375 TH1F *gSecondaryAntiProtonsExtCov44 = new TH1F("gSecondaryAntiProtonsExtCov44",
1376 ";#sigma_{tan(#lambda)};Entries",
1378 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov44);
1381 TH1F *gPrimaryProtonsExtCov55 = new TH1F("gPrimaryProtonsExtCov55",
1382 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1384 fAcceptedCutList->Add(gPrimaryProtonsExtCov55);
1385 TH1F *gPrimaryAntiProtonsExtCov55 = new TH1F("gPrimaryAntiProtonsExtCov55",
1386 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1388 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov55);
1389 TH1F *gSecondaryProtonsExtCov55 = new TH1F("gSecondaryProtonsExtCov55",
1390 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1392 fAcceptedCutList->Add(gSecondaryProtonsExtCov55);
1393 TH1F *gSecondaryAntiProtonsExtCov55 = new TH1F("gSecondaryAntiProtonsExtCov55",
1394 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1396 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov55);
1398 TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryProtonsPass",
1399 "Accepted primary protons;#eta;#phi;N_{clusters}(TPC)",
1400 fNBinsY,fMinY,fMaxY,
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,
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,
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,
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,
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,
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,
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,
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;N_{points}(TPC)",
1466 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1474 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1482 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1490 fNBinsY,fMinY,fMaxY,
1493 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->SetStats(kTRUE);
1494 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1495 fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1497 TH1F *gPrimaryProtonsNPointsTPCdEdx = new TH1F("gPrimaryProtonsNPointsTPCdEdx",
1498 ";N_{points} (TPC-dE/dx);Entries",
1500 fAcceptedCutList->Add(gPrimaryProtonsNPointsTPCdEdx);
1501 TH1F *gPrimaryAntiProtonsNPointsTPCdEdx = new TH1F("gPrimaryAntiProtonsNPointsTPCdEdx",
1502 ";N_{points} (TPC-dE/dx);Entries",
1504 fAcceptedCutList->Add(gPrimaryAntiProtonsNPointsTPCdEdx);
1505 TH1F *gSecondaryProtonsNPointsTPCdEdx = new TH1F("gSecondaryProtonsNPointsTPCdEdx",
1506 ";N_{points} (TPC-dE/dx);Entries",
1508 fAcceptedCutList->Add(gSecondaryProtonsNPointsTPCdEdx);
1509 TH1F *gSecondaryAntiProtonsNPointsTPCdEdx = new TH1F("gSecondaryAntiProtonsNPointsTPCdEdx",
1510 ";N_{points} (TPC-dE/dx);Entries",
1512 fAcceptedCutList->Add(gSecondaryAntiProtonsNPointsTPCdEdx);
1515 fRejectedCutList = new TList();
1517 TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryProtonsReject",
1518 "Rejected primary protons;#eta;#phi;N_{clusters}(TPC)",
1519 fNBinsY,fMinY,fMaxY,
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,
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,
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,
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,
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,
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,
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,
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;N_{points}(TPC)",
1585 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1593 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1601 fNBinsY,fMinY,fMaxY,
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;N_{points}(TPC)",
1609 fNBinsY,fMinY,fMaxY,
1612 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->SetStats(kTRUE);
1613 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1614 fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
1617 fAcceptedDCAList = new TList();
1618 TH1F *gPrimaryProtonsDCAXY = new TH1F("gPrimaryProtonsDCAXY",
1619 ";DCA_{xy} [cm];Entries",
1621 fAcceptedDCAList->Add(gPrimaryProtonsDCAXY);
1622 TH1F *gPrimaryAntiProtonsDCAXY = new TH1F("gPrimaryAntiProtonsDCAXY",
1623 ";DCA_{xy} [cm];Entries",
1625 fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAXY);
1626 TH1F *gSecondaryProtonsDCAXY = new TH1F("gSecondaryProtonsDCAXY",
1627 ";DCA_{xy} [cm];Entries",
1629 fAcceptedDCAList->Add(gSecondaryProtonsDCAXY);
1630 TH1F *gSecondaryAntiProtonsDCAXY = new TH1F("gSecondaryAntiProtonsDCAXY",
1631 ";DCA_{xy} [cm];Entries",
1634 fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAXY);
1635 TH1F *gPrimaryProtonsDCAZ = new TH1F("gPrimaryProtonsDCAZ",
1636 ";DCA_{z} [cm];Entries",
1638 fAcceptedDCAList->Add(gPrimaryProtonsDCAZ);
1639 TH1F *gPrimaryAntiProtonsDCAZ = new TH1F("gPrimaryAntiProtonsDCAZ",
1640 ";DCA_{z} [cm];Entries",
1642 fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAZ);
1643 TH1F *gSecondaryProtonsDCAZ = new TH1F("gSecondaryProtonsDCAZ",
1644 ";DCA_{z} [cm];Entries",
1646 fAcceptedDCAList->Add(gSecondaryProtonsDCAZ);
1647 TH1F *gSecondaryAntiProtonsDCAZ = new TH1F("gSecondaryAntiProtonsDCAZ",
1648 ";DCA_{z} [cm];Entries",
1650 fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAZ);
1652 TH1F *gPrimaryProtonsSigmaToVertex = new TH1F("gPrimaryProtonsSigmaToVertex",
1653 ";#sigma_{Vertex};Entries",
1655 fAcceptedDCAList->Add(gPrimaryProtonsSigmaToVertex);
1656 TH1F *gPrimaryAntiProtonsSigmaToVertex = new TH1F("gPrimaryAntiProtonsSigmaToVertex",
1657 ";#sigma_{Vertex};Entries",
1659 fAcceptedDCAList->Add(gPrimaryAntiProtonsSigmaToVertex);
1660 TH1F *gSecondaryProtonsSigmaToVertex = new TH1F("gSecondaryProtonsSigmaToVertex",
1661 ";#sigma_{Vertex};Entries",
1663 fAcceptedDCAList->Add(gSecondaryProtonsSigmaToVertex);
1664 TH1F *gSecondaryAntiProtonsSigmaToVertex = new TH1F("gSecondaryAntiProtonsSigmaToVertex",
1665 ";#sigma_{Vertex};Entries",
1667 fAcceptedDCAList->Add(gSecondaryAntiProtonsSigmaToVertex);
1671 //____________________________________________________________________//
1672 void AliProtonQAAnalysis::InitVertexQA() {
1673 //Initializes the Vertex QA histograms
1674 fQAVertexList = new TList();
1675 fQAVertexList->SetName("fQAVertexList");
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",
1684 fQAVertexList->Add(gHistMCPrimaryVz);
1685 //TH1F *gHistMCPrimaryMultiplicity = new TH1F("gHistMCPrimaryMultiplicity",
1686 //";N_{prim. gen.};Entries",
1688 //fQAVertexList->Add(gHistMCPrimaryMultiplicity);
1691 TH1F *gHistTPCVz = new TH1F("gHistTPCVz",
1692 ";V_{z} (gen.) [cm];Entries",
1694 fQAVertexList->Add(gHistTPCVz);
1695 //TH1F *gHistMCPrimaryMultiplicityTPC = new TH1F("gHistMCPrimaryMultiplicityTPC",
1696 //"Vertex TPC;N_{prim. gen.};Entries",
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",
1726 fQAVertexList->Add(gHistTPCResolutionVx);
1727 TH1F *gHistTPCResolutionVy = new TH1F("gHistTPCResolutionVy",
1728 ";#sigma_{y} [#mu m];Entries",
1730 fQAVertexList->Add(gHistTPCResolutionVy);
1731 TH1F *gHistTPCResolutionVz = new TH1F("gHistTPCResolutionVz",
1732 ";#sigma_{z} [#mu m];Entries",
1734 fQAVertexList->Add(gHistTPCResolutionVz);
1737 TH1F *gHistSPDVz = new TH1F("gHistSPDVz",
1738 ";V_{z} (gen.) [cm];Entries",
1740 fQAVertexList->Add(gHistSPDVz);
1741 //TH1F *gHistMCPrimaryMultiplicitySPD = new TH1F("gHistMCPrimaryMultiplicitySPD",
1742 //"Vertex SPD;N_{prim. gen.};Entries",
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",
1772 fQAVertexList->Add(gHistSPDResolutionVx);
1773 TH1F *gHistSPDResolutionVy = new TH1F("gHistSPDResolutionVy",
1774 ";#sigma_{y} [#mu m];Entries",
1776 fQAVertexList->Add(gHistSPDResolutionVy);
1777 TH1F *gHistSPDResolutionVz = new TH1F("gHistSPDResolutionVz",
1778 ";#sigma_{z} [#mu m];Entries",
1780 fQAVertexList->Add(gHistSPDResolutionVz);
1783 TH1F *gHistTracksVz = new TH1F("gHistTracksVz",
1784 ";V_{z} (gen.) [cm];Entries",
1786 fQAVertexList->Add(gHistTracksVz);
1787 //TH1F *gHistMCPrimaryMultiplicityTracks = new TH1F("gHistMCPrimaryMultiplicityTracks",
1788 //"Vertex Tracks;N_{prim. gen.};Entries",
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",
1818 fQAVertexList->Add(gHistTracksResolutionVx);
1819 TH1F *gHistTracksResolutionVy = new TH1F("gHistTracksResolutionVy",
1820 ";#sigma_{y} [#mu m];Entries",
1822 fQAVertexList->Add(gHistTracksResolutionVy);
1823 TH1F *gHistTracksResolutionVz = new TH1F("gHistTracksResolutionVz",
1824 ";#sigma_{z} [#mu m];Entries",
1826 fQAVertexList->Add(gHistTracksResolutionVz);
1829 //____________________________________________________________________//
1830 void AliProtonQAAnalysis::InitQA() {
1831 //Initializes the QA histograms
1832 //if(!fQAHistograms)
1836 //TDirectory *dir2D = gDirectory->mkdir("2D");
1837 //fGlobalQAList->Add(dir2D); dir2D->cd();
1838 TH2D *gHistYPtPrimaryProtonsPass = new TH2D("gHistYPtPrimaryProtonsPass",
1840 fNBinsY,fMinY,fMaxY,
1841 fNBinsPt,fMinPt,fMaxPt);
1842 if(fProtonAnalysisBase->GetEtaMode())
1843 gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitle("#eta");
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",
1851 fNBinsY,fMinY,fMaxY,
1852 fNBinsPt,fMinPt,fMaxPt);
1853 if(fProtonAnalysisBase->GetEtaMode())
1854 gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitle("#eta");
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
1861 TH2D *gHistYPtSecondaryProtonsPass = new TH2D("gHistYPtSecondaryProtonsPass",
1863 fNBinsY,fMinY,fMaxY,
1864 fNBinsPt,fMinPt,fMaxPt);
1865 if(fProtonAnalysisBase->GetEtaMode())
1866 gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitle("#eta");
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",
1874 fNBinsY,fMinY,fMaxY,
1875 fNBinsPt,fMinPt,fMaxPt);
1876 if(fProtonAnalysisBase->GetEtaMode())
1877 gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitle("#eta");
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
1884 TH2D *gHistYPtPrimaryAntiProtonsPass = new TH2D("gHistYPtPrimaryAntiProtonsPass",
1886 fNBinsY,fMinY,fMaxY,
1887 fNBinsPt,fMinPt,fMaxPt);
1888 if(fProtonAnalysisBase->GetEtaMode())
1889 gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
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",
1897 fNBinsY,fMinY,fMaxY,
1898 fNBinsPt,fMinPt,fMaxPt);
1899 if(fProtonAnalysisBase->GetEtaMode())
1900 gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
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
1907 TH2D *gHistYPtSecondaryAntiProtonsPass = new TH2D("gHistYPtSecondaryAntiProtonsPass",
1909 fNBinsY,fMinY,fMaxY,
1910 fNBinsPt,fMinPt,fMaxPt);
1911 if(fProtonAnalysisBase->GetEtaMode())
1912 gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
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",
1920 fNBinsY,fMinY,fMaxY,
1921 fNBinsPt,fMinPt,fMaxPt);
1922 if(fProtonAnalysisBase->GetEtaMode())
1923 gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
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
1930 TH2D *gHistYPtPrimaryProtonsMC = new TH2D("gHistYPtPrimaryProtonsMC",
1932 fNBinsY,fMinY,fMaxY,
1933 fNBinsPt,fMinPt,fMaxPt);
1934 if(fProtonAnalysisBase->GetEtaMode())
1935 gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitle("#eta");
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",
1943 fNBinsY,fMinY,fMaxY,
1944 fNBinsPt,fMinPt,fMaxPt);
1945 if(fProtonAnalysisBase->GetEtaMode())
1946 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("#eta");
1948 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("y");
1949 gHistYPtPrimaryAntiProtonsMC->SetStats(kTRUE);
1950 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitleColor(1);
1951 fQA2DList->Add(gHistYPtPrimaryAntiProtonsMC);//y-pT of primary MC antiprotons
1953 TH3F *gHistYPtPDGProtonsPass = new TH3F("gHistYPtPDGProtonsPass",
1954 ";;P_{T} [GeV/c];PDG",
1955 fNBinsY,fMinY,fMaxY,
1956 fNBinsPt,fMinPt,fMaxPt,
1958 if(fProtonAnalysisBase->GetEtaMode())
1959 gHistYPtPDGProtonsPass->GetXaxis()->SetTitle("#eta");
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,
1968 if(fProtonAnalysisBase->GetEtaMode())
1969 gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("#eta");
1971 gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("y");
1972 fQA2DList->Add(gHistYPtPDGAntiProtonsPass);//composition of secondary antiprotons
1974 /*gDirectory->cd("../");
1976 TDirectory *dirProtons = gDirectory->mkdir("Protons");
1977 fGlobalQAList->Add(dirProtons); dirProtons->cd();*/
1979 //________________________________________________________________//
1980 /*TDirectory *dirProtonsPrimary = gDirectory->mkdir("Primaries");
1981 dirProtonsPrimary->cd();
1982 TDirectory *dirProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
1983 dirProtonsPrimaryAccepted->cd();*/
1985 //Accepted primary protons
1986 TH1F *gPrimaryProtonsITSClustersPass = new TH1F("gPrimaryProtonsITSClustersPass",
1987 ";N_{clusters} (ITS);Entries",
1989 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSClustersPass);
1990 TH1F *gPrimaryProtonsChi2PerClusterITSPass = new TH1F("gPrimaryProtonsChi2PerClusterITSPass",
1991 ";x^{2}/N_{clusters} (ITS);Entries",
1993 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterITSPass);
1994 TH1F *gPrimaryProtonsTPCClustersPass = new TH1F("gPrimaryProtonsTPCClustersPass",
1995 ";N_{clusters} (TPC);Entries",
1997 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCClustersPass);
1998 TH1F *gPrimaryProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryProtonsChi2PerClusterTPCPass",
1999 ";x^{2}/N_{clusters} (TPC);Entries",
2001 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterTPCPass);
2002 TH1F *gPrimaryProtonsExtCov11Pass = new TH1F("gPrimaryProtonsExtCov11Pass",
2003 ";#sigma_{y} [cm];Entries",
2005 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov11Pass);
2006 TH1F *gPrimaryProtonsExtCov22Pass = new TH1F("gPrimaryProtonsExtCov22Pass",
2007 ";#sigma_{z} [cm];Entries",
2009 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov22Pass);
2010 TH1F *gPrimaryProtonsExtCov33Pass = new TH1F("gPrimaryProtonsExtCov33Pass",
2011 ";#sigma_{sin(#phi)};Entries",
2013 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov33Pass);
2014 TH1F *gPrimaryProtonsExtCov44Pass = new TH1F("gPrimaryProtonsExtCov44Pass",
2015 ";#sigma_{tan(#lambda)};Entries",
2017 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov44Pass);
2018 TH1F *gPrimaryProtonsExtCov55Pass = new TH1F("gPrimaryProtonsExtCov55Pass",
2019 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2021 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov55Pass);
2022 TH1F *gPrimaryProtonsSigmaToVertexPass = new TH1F("gPrimaryProtonsSigmaToVertexPass",
2023 ";#sigma_{Vertex};Entries",
2025 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexPass);
2026 TH1F *gPrimaryProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryProtonsSigmaToVertexTPCPass",
2027 ";#sigma_{Vertex};Entries",
2029 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexTPCPass);
2030 TH1F *gPrimaryProtonsDCAXYPass = new TH1F("gPrimaryProtonsDCAXYPass",
2031 ";DCA_{xy} [cm];Entries",
2033 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYPass);
2034 TH1F *gPrimaryProtonsDCAXYTPCPass = new TH1F("gPrimaryProtonsDCAXYTPCPass",
2035 ";DCA_{xy} [cm];Entries",
2037 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYTPCPass);
2038 TH1F *gPrimaryProtonsDCAZPass = new TH1F("gPrimaryProtonsDCAZPass",
2039 ";DCA_{z} [cm];Entries",
2041 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZPass);
2042 TH1F *gPrimaryProtonsDCAZTPCPass = new TH1F("gPrimaryProtonsDCAZTPCPass",
2043 ";DCA_{z} [cm];Entries",
2045 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZTPCPass);
2046 TH1F *gPrimaryProtonsConstrainChi2Pass = new TH1F("gPrimaryProtonsConstrainChi2Pass",
2047 ";Log_{10}(#chi^{2});Entries",
2049 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsConstrainChi2Pass);
2050 TH1F *gPrimaryProtonsITSRefitPass = new TH1F("gPrimaryProtonsITSRefitPass",
2052 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSRefitPass);
2053 TH1F *gPrimaryProtonsTPCRefitPass = new TH1F("gPrimaryProtonsTPCRefitPass",
2055 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCRefitPass);
2056 TH1F *gPrimaryProtonsESDpidPass = new TH1F("gPrimaryProtonsESDpidPass",
2058 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsESDpidPass);
2059 TH1F *gPrimaryProtonsTPCpidPass = new TH1F("gPrimaryProtonsTPCpidPass",
2061 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCpidPass);
2062 TH1F *gPrimaryProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryProtonsPointOnITSLayer1Pass",
2064 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer1Pass);
2065 TH1F *gPrimaryProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryProtonsPointOnITSLayer2Pass",
2067 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer2Pass);
2068 TH1F *gPrimaryProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryProtonsPointOnITSLayer3Pass",
2070 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer3Pass);
2071 TH1F *gPrimaryProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryProtonsPointOnITSLayer4Pass",
2073 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer4Pass);
2074 TH1F *gPrimaryProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryProtonsPointOnITSLayer5Pass",
2076 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer5Pass);
2077 TH1F *gPrimaryProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryProtonsPointOnITSLayer6Pass",
2079 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer6Pass);
2080 TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2081 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsPass);
2083 //Rejected primary protons
2084 /*gDirectory->cd("../");
2085 TDirectory *dirProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2086 dirProtonsPrimaryRejected->cd();*/
2088 TH1F *gPrimaryProtonsITSClustersReject = new TH1F("gPrimaryProtonsITSClustersReject",
2089 ";N_{clusters} (ITS);Entries",
2091 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSClustersReject);
2092 TH1F *gPrimaryProtonsChi2PerClusterITSReject = new TH1F("gPrimaryProtonsChi2PerClusterITSReject",
2093 ";x^{2}/N_{clusters} (ITS);Entries",
2095 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterITSReject);
2096 TH1F *gPrimaryProtonsTPCClustersReject = new TH1F("gPrimaryProtonsTPCClustersReject",
2097 ";N_{clusters} (TPC);Entries",
2099 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCClustersReject);
2100 TH1F *gPrimaryProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryProtonsChi2PerClusterTPCReject",
2101 ";x^{2}/N_{clusters} (TPC);Entries",
2103 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterTPCReject);
2104 TH1F *gPrimaryProtonsExtCov11Reject = new TH1F("gPrimaryProtonsExtCov11Reject",
2105 ";#sigma_{y} [cm];Entries",
2107 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov11Reject);
2108 TH1F *gPrimaryProtonsExtCov22Reject = new TH1F("gPrimaryProtonsExtCov22Reject",
2109 ";#sigma_{z} [cm];Entries",
2111 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov22Reject);
2112 TH1F *gPrimaryProtonsExtCov33Reject = new TH1F("gPrimaryProtonsExtCov33Reject",
2113 ";#sigma_{sin(#phi)};Entries",
2115 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov33Reject);
2116 TH1F *gPrimaryProtonsExtCov44Reject = new TH1F("gPrimaryProtonsExtCov44Reject",
2117 ";#sigma_{tan(#lambda)};Entries",
2119 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov44Reject);
2120 TH1F *gPrimaryProtonsExtCov55Reject = new TH1F("gPrimaryProtonsExtCov55Reject",
2121 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2123 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov55Reject);
2124 TH1F *gPrimaryProtonsSigmaToVertexReject = new TH1F("gPrimaryProtonsSigmaToVertexReject",
2125 ";#sigma_{Vertex};Entries",
2127 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexReject);
2128 TH1F *gPrimaryProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryProtonsSigmaToVertexTPCReject",
2129 ";#sigma_{Vertex};Entries",
2131 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexTPCReject);
2132 TH1F *gPrimaryProtonsDCAXYReject = new TH1F("gPrimaryProtonsDCAXYReject",
2133 ";DCA_{xy} [cm];Entries",
2135 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYReject);
2136 TH1F *gPrimaryProtonsDCAXYTPCReject = new TH1F("gPrimaryProtonsDCAXYTPCReject",
2137 ";DCA_{xy} [cm];Entries",
2139 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYTPCReject);
2140 TH1F *gPrimaryProtonsDCAZReject = new TH1F("gPrimaryProtonsDCAZReject",
2141 ";DCA_{z} [cm];Entries",
2143 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZReject);
2144 TH1F *gPrimaryProtonsDCAZTPCReject = new TH1F("gPrimaryProtonsDCAZTPCReject",
2145 ";DCA_{z} [cm];Entries",
2147 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZTPCReject);
2148 TH1F *gPrimaryProtonsConstrainChi2Reject = new TH1F("gPrimaryProtonsConstrainChi2Reject",
2149 ";Log_{10}(#chi^{2});Entries",
2151 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsConstrainChi2Reject);
2152 TH1F *gPrimaryProtonsITSRefitReject = new TH1F("gPrimaryProtonsITSRefitReject",
2154 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSRefitReject);
2155 TH1F *gPrimaryProtonsTPCRefitReject = new TH1F("gPrimaryProtonsTPCRefitReject",
2157 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCRefitReject);
2158 TH1F *gPrimaryProtonsESDpidReject = new TH1F("gPrimaryProtonsESDpidReject",
2160 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsESDpidReject);
2161 TH1F *gPrimaryProtonsTPCpidReject = new TH1F("gPrimaryProtonsTPCpidReject",
2163 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCpidReject);
2164 TH1F *gPrimaryProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryProtonsPointOnITSLayer1Reject",
2166 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer1Reject);
2167 TH1F *gPrimaryProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryProtonsPointOnITSLayer2Reject",
2169 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer2Reject);
2170 TH1F *gPrimaryProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryProtonsPointOnITSLayer3Reject",
2172 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer3Reject);
2173 TH1F *gPrimaryProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryProtonsPointOnITSLayer4Reject",
2175 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer4Reject);
2176 TH1F *gPrimaryProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryProtonsPointOnITSLayer5Reject",
2178 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer5Reject);
2179 TH1F *gPrimaryProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryProtonsPointOnITSLayer6Reject",
2181 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer6Reject);
2182 TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2183 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsReject);
2185 //________________________________________________________________//
2186 /*gDirectory->cd("../../");
2188 TDirectory *dirProtonsSecondary = gDirectory->mkdir("Secondaries");
2189 dirProtonsSecondary->cd();
2190 TDirectory *dirProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
2191 dirProtonsSecondaryAccepted->cd();*/
2193 //Accepted secondary protons
2194 TH1F *gSecondaryProtonsITSClustersPass = new TH1F("gSecondaryProtonsITSClustersPass",
2195 ";N_{clusters} (ITS);Entries",
2197 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSClustersPass);
2198 TH1F *gSecondaryProtonsChi2PerClusterITSPass = new TH1F("gSecondaryProtonsChi2PerClusterITSPass",
2199 ";x^{2}/N_{clusters} (ITS);Entries",
2201 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterITSPass);
2202 TH1F *gSecondaryProtonsTPCClustersPass = new TH1F("gSecondaryProtonsTPCClustersPass",
2203 ";N_{clusters} (TPC);Entries",
2205 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCClustersPass);
2206 TH1F *gSecondaryProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryProtonsChi2PerClusterTPCPass",
2207 ";x^{2}/N_{clusters} (TPC);Entries",
2209 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterTPCPass);
2210 TH1F *gSecondaryProtonsExtCov11Pass = new TH1F("gSecondaryProtonsExtCov11Pass",
2211 ";#sigma_{y} [cm];Entries",
2213 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov11Pass);
2214 TH1F *gSecondaryProtonsExtCov22Pass = new TH1F("gSecondaryProtonsExtCov22Pass",
2215 ";#sigma_{z} [cm];Entries",
2217 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov22Pass);
2218 TH1F *gSecondaryProtonsExtCov33Pass = new TH1F("gSecondaryProtonsExtCov33Pass",
2219 ";#sigma_{sin(#phi)};Entries",
2221 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov33Pass);
2222 TH1F *gSecondaryProtonsExtCov44Pass = new TH1F("gSecondaryProtonsExtCov44Pass",
2223 ";#sigma_{tan(#lambda)};Entries",
2225 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov44Pass);
2226 TH1F *gSecondaryProtonsExtCov55Pass = new TH1F("gSecondaryProtonsExtCov55Pass",
2227 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2229 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov55Pass);
2230 TH1F *gSecondaryProtonsSigmaToVertexPass = new TH1F("gSecondaryProtonsSigmaToVertexPass",
2231 ";#sigma_{Vertex};Entries",
2233 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexPass);
2234 TH1F *gSecondaryProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryProtonsSigmaToVertexTPCPass",
2235 ";#sigma_{Vertex};Entries",
2237 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexTPCPass);
2238 TH1F *gSecondaryProtonsDCAXYPass = new TH1F("gSecondaryProtonsDCAXYPass",
2239 ";DCA_{xy} [cm];Entries",
2241 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYPass);
2242 TH1F *gSecondaryProtonsDCAXYTPCPass = new TH1F("gSecondaryProtonsDCAXYTPCPass",
2243 ";DCA_{xy} [cm];Entries",
2245 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYTPCPass);
2246 TH1F *gSecondaryProtonsDCAZPass = new TH1F("gSecondaryProtonsDCAZPass",
2247 ";DCA_{z} [cm];Entries",
2249 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZPass);
2250 TH1F *gSecondaryProtonsDCAZTPCPass = new TH1F("gSecondaryProtonsDCAZTPCPass",
2251 ";DCA_{z} [cm];Entries",
2253 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZTPCPass);
2254 TH1F *gSecondaryProtonsConstrainChi2Pass = new TH1F("gSecondaryProtonsConstrainChi2Pass",
2255 ";Log_{10}(#chi^{2});Entries",
2257 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsConstrainChi2Pass);
2258 TH1F *gSecondaryProtonsITSRefitPass = new TH1F("gSecondaryProtonsITSRefitPass",
2260 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSRefitPass);
2261 TH1F *gSecondaryProtonsTPCRefitPass = new TH1F("gSecondaryProtonsTPCRefitPass",
2263 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCRefitPass);
2264 TH1F *gSecondaryProtonsESDpidPass = new TH1F("gSecondaryProtonsESDpidPass",
2266 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsESDpidPass);
2267 TH1F *gSecondaryProtonsTPCpidPass = new TH1F("gSecondaryProtonsTPCpidPass",
2269 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCpidPass);
2270 TH1F *gSecondaryProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryProtonsPointOnITSLayer1Pass",
2272 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer1Pass);
2273 TH1F *gSecondaryProtonsPointOnITSLayer2Pass = new TH1F("gSecondaryProtonsPointOnITSLayer2Pass",
2275 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer2Pass);
2276 TH1F *gSecondaryProtonsPointOnITSLayer3Pass = new TH1F("gSecondaryProtonsPointOnITSLayer3Pass",
2278 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer3Pass);
2279 TH1F *gSecondaryProtonsPointOnITSLayer4Pass = new TH1F("gSecondaryProtonsPointOnITSLayer4Pass",
2281 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer4Pass);
2282 TH1F *gSecondaryProtonsPointOnITSLayer5Pass = new TH1F("gSecondaryProtonsPointOnITSLayer5Pass",
2284 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer5Pass);
2285 TH1F *gSecondaryProtonsPointOnITSLayer6Pass = new TH1F("gSecondaryProtonsPointOnITSLayer6Pass",
2287 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer6Pass);
2288 TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2289 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsPass);
2291 //Rejected secondary protons
2292 /*gDirectory->cd("../");
2293 TDirectory *dirProtonsSecondaryRejected = gDirectory->mkdir("Rejected");
2294 dirProtonsSecondaryRejected->cd();*/
2296 TH1F *gSecondaryProtonsITSClustersReject = new TH1F("gSecondaryProtonsITSClustersReject",
2297 ";N_{clusters} (ITS);Entries",
2299 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSClustersReject);
2300 TH1F *gSecondaryProtonsChi2PerClusterITSReject = new TH1F("gSecondaryProtonsChi2PerClusterITSReject",
2301 ";x^{2}/N_{clusters} (ITS);Entries",
2303 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterITSReject);
2304 TH1F *gSecondaryProtonsTPCClustersReject = new TH1F("gSecondaryProtonsTPCClustersReject",
2305 ";N_{clusters} (TPC);Entries",
2307 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCClustersReject);
2308 TH1F *gSecondaryProtonsChi2PerClusterTPCReject = new TH1F("gSecondaryProtonsChi2PerClusterTPCReject",
2309 ";x^{2}/N_{clusters} (TPC);Entries",
2311 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterTPCReject);
2312 TH1F *gSecondaryProtonsExtCov11Reject = new TH1F("gSecondaryProtonsExtCov11Reject",
2313 ";#sigma_{y} [cm];Entries",
2315 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov11Reject);
2316 TH1F *gSecondaryProtonsExtCov22Reject = new TH1F("gSecondaryProtonsExtCov22Reject",
2317 ";#sigma_{z} [cm];Entries",
2319 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov22Reject);
2320 TH1F *gSecondaryProtonsExtCov33Reject = new TH1F("gSecondaryProtonsExtCov33Reject",
2321 ";#sigma_{sin(#phi)};Entries",
2323 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov33Reject);
2324 TH1F *gSecondaryProtonsExtCov44Reject = new TH1F("gSecondaryProtonsExtCov44Reject",
2325 ";#sigma_{tan(#lambda)};Entries",
2327 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov44Reject);
2328 TH1F *gSecondaryProtonsExtCov55Reject = new TH1F("gSecondaryProtonsExtCov55Reject",
2329 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2331 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov55Reject);
2332 TH1F *gSecondaryProtonsSigmaToVertexReject = new TH1F("gSecondaryProtonsSigmaToVertexReject",
2333 ";#sigma_{Vertex};Entries",
2335 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexReject);
2336 TH1F *gSecondaryProtonsSigmaToVertexTPCReject = new TH1F("gSecondaryProtonsSigmaToVertexTPCReject",
2337 ";#sigma_{Vertex};Entries",
2339 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexTPCReject);
2340 TH1F *gSecondaryProtonsDCAXYReject = new TH1F("gSecondaryProtonsDCAXYReject",
2341 ";DCA_{xy} [cm];Entries",
2343 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYReject);
2344 TH1F *gSecondaryProtonsDCAXYTPCReject = new TH1F("gSecondaryProtonsDCAXYTPCReject",
2345 ";DCA_{xy} [cm];Entries",
2347 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYTPCReject);
2348 TH1F *gSecondaryProtonsDCAZReject = new TH1F("gSecondaryProtonsDCAZReject",
2349 ";DCA_{z} [cm];Entries",
2351 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZReject);
2352 TH1F *gSecondaryProtonsDCAZTPCReject = new TH1F("gSecondaryProtonsDCAZTPCReject",
2353 ";DCA_{z} [cm];Entries",
2355 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZTPCReject);
2356 TH1F *gSecondaryProtonsConstrainChi2Reject = new TH1F("gSecondaryProtonsConstrainChi2Reject",
2357 ";Log_{10}(#chi^{2});Entries",
2359 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsConstrainChi2Reject);
2360 TH1F *gSecondaryProtonsITSRefitReject = new TH1F("gSecondaryProtonsITSRefitReject",
2362 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSRefitReject);
2363 TH1F *gSecondaryProtonsTPCRefitReject = new TH1F("gSecondaryProtonsTPCRefitReject",
2365 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCRefitReject);
2366 TH1F *gSecondaryProtonsESDpidReject = new TH1F("gSecondaryProtonsESDpidReject",
2368 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsESDpidReject);
2369 TH1F *gSecondaryProtonsTPCpidReject = new TH1F("gSecondaryProtonsTPCpidReject",
2371 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCpidReject);
2372 TH1F *gSecondaryProtonsPointOnITSLayer1Reject = new TH1F("gSecondaryProtonsPointOnITSLayer1Reject",
2374 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer1Reject);
2375 TH1F *gSecondaryProtonsPointOnITSLayer2Reject = new TH1F("gSecondaryProtonsPointOnITSLayer2Reject",
2377 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer2Reject);
2378 TH1F *gSecondaryProtonsPointOnITSLayer3Reject = new TH1F("gSecondaryProtonsPointOnITSLayer3Reject",
2380 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer3Reject);
2381 TH1F *gSecondaryProtonsPointOnITSLayer4Reject = new TH1F("gSecondaryProtonsPointOnITSLayer4Reject",
2383 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer4Reject);
2384 TH1F *gSecondaryProtonsPointOnITSLayer5Reject = new TH1F("gSecondaryProtonsPointOnITSLayer5Reject",
2386 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer5Reject);
2387 TH1F *gSecondaryProtonsPointOnITSLayer6Reject = new TH1F("gSecondaryProtonsPointOnITSLayer6Reject",
2389 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer6Reject);
2390 TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2391 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsReject);
2393 /*gDirectory->cd("../../../");
2396 TDirectory *dirAntiProtons = gDirectory->mkdir("AntiProtons");
2397 fGlobalQAList->Add(dirAntiProtons); dirAntiProtons->cd();*/
2399 //________________________________________________________________//
2400 /*TDirectory *dirAntiProtonsPrimary = gDirectory->mkdir("Primaries");
2401 dirAntiProtonsPrimary->cd();
2402 TDirectory *dirAntiProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
2403 dirAntiProtonsPrimaryAccepted->cd();*/
2405 //Accepted primary antiprotons
2406 TH1F *gPrimaryAntiProtonsITSClustersPass = new TH1F("gPrimaryAntiProtonsITSClustersPass",
2407 ";N_{clusters} (ITS);Entries",
2409 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSClustersPass);
2410 TH1F *gPrimaryAntiProtonsChi2PerClusterITSPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSPass",
2411 ";x^{2}/N_{clusters} (ITS);Entries",
2413 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterITSPass);
2414 TH1F *gPrimaryAntiProtonsTPCClustersPass = new TH1F("gPrimaryAntiProtonsTPCClustersPass",
2415 ";N_{clusters} (TPC);Entries",
2417 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCClustersPass);
2418 TH1F *gPrimaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCPass",
2419 ";x^{2}/N_{clusters} (TPC);Entries",
2421 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCPass);
2422 TH1F *gPrimaryAntiProtonsExtCov11Pass = new TH1F("gPrimaryAntiProtonsExtCov11Pass",
2423 ";#sigma_{y} [cm];Entries",
2425 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov11Pass);
2426 TH1F *gPrimaryAntiProtonsExtCov22Pass = new TH1F("gPrimaryAntiProtonsExtCov22Pass",
2427 ";#sigma_{z} [cm];Entries",
2429 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov22Pass);
2430 TH1F *gPrimaryAntiProtonsExtCov33Pass = new TH1F("gPrimaryAntiProtonsExtCov33Pass",
2431 ";#sigma_{sin(#phi)};Entries",
2433 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov33Pass);
2434 TH1F *gPrimaryAntiProtonsExtCov44Pass = new TH1F("gPrimaryAntiProtonsExtCov44Pass",
2435 ";#sigma_{tan(#lambda)};Entries",
2437 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov44Pass);
2438 TH1F *gPrimaryAntiProtonsExtCov55Pass = new TH1F("gPrimaryAntiProtonsExtCov55Pass",
2439 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2441 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov55Pass);
2442 TH1F *gPrimaryAntiProtonsSigmaToVertexPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexPass",
2443 ";#sigma_{Vertex};Entries",
2445 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexPass);
2446 TH1F *gPrimaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCPass",
2447 ";#sigma_{Vertex};Entries",
2449 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCPass);
2450 TH1F *gPrimaryAntiProtonsDCAXYPass = new TH1F("gPrimaryAntiProtonsDCAXYPass",
2451 ";DCA_{xy} [cm];Entries",
2453 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYPass);
2454 TH1F *gPrimaryAntiProtonsDCAXYTPCPass = new TH1F("gPrimaryAntiProtonsDCAXYTPCPass",
2455 ";DCA_{xy} [cm];Entries",
2457 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYTPCPass);
2458 TH1F *gPrimaryAntiProtonsDCAZPass = new TH1F("gPrimaryAntiProtonsDCAZPass",
2459 ";DCA_{z} [cm];Entries",
2461 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZPass);
2462 TH1F *gPrimaryAntiProtonsDCAZTPCPass = new TH1F("gPrimaryAntiProtonsDCAZTPCPass",
2463 ";DCA_{z} [cm];Entries",
2465 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZTPCPass);
2466 TH1F *gPrimaryAntiProtonsConstrainChi2Pass = new TH1F("gPrimaryAntiProtonsConstrainChi2Pass",
2467 ";Log_{10}(#chi^{2});Entries",
2469 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsConstrainChi2Pass);
2470 TH1F *gPrimaryAntiProtonsITSRefitPass = new TH1F("gPrimaryAntiProtonsITSRefitPass",
2472 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSRefitPass);
2473 TH1F *gPrimaryAntiProtonsTPCRefitPass = new TH1F("gPrimaryAntiProtonsTPCRefitPass",
2475 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCRefitPass);
2476 TH1F *gPrimaryAntiProtonsESDpidPass = new TH1F("gPrimaryAntiProtonsESDpidPass",
2478 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsESDpidPass);
2479 TH1F *gPrimaryAntiProtonsTPCpidPass = new TH1F("gPrimaryAntiProtonsTPCpidPass",
2481 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCpidPass);
2482 TH1F *gPrimaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Pass",
2484 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Pass);
2485 TH1F *gPrimaryAntiProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Pass",
2487 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Pass);
2488 TH1F *gPrimaryAntiProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Pass",
2490 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Pass);
2491 TH1F *gPrimaryAntiProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Pass",
2493 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Pass);
2494 TH1F *gPrimaryAntiProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Pass",
2496 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Pass);
2497 TH1F *gPrimaryAntiProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Pass",
2499 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Pass);
2500 TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2501 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass);
2503 //Rejected primary antiprotons
2504 /*gDirectory->cd("../");
2505 TDirectory *dirAntiProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2506 dirAntiProtonsPrimaryRejected->cd();*/
2508 TH1F *gPrimaryAntiProtonsITSClustersReject = new TH1F("gPrimaryAntiProtonsITSClustersReject",
2509 ";N_{clusters} (ITS);Entries",
2511 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSClustersReject);
2512 TH1F *gPrimaryAntiProtonsChi2PerClusterITSReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSReject",
2513 ";x^{2}/N_{clusters} (ITS);Entries",
2515 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterITSReject);
2516 TH1F *gPrimaryAntiProtonsTPCClustersReject = new TH1F("gPrimaryAntiProtonsTPCClustersReject",
2517 ";N_{clusters} (TPC);Entries",
2519 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCClustersReject);
2520 TH1F *gPrimaryAntiProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCReject",
2521 ";x^{2}/N_{clusters} (TPC);Entries",
2523 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCReject);
2524 TH1F *gPrimaryAntiProtonsExtCov11Reject = new TH1F("gPrimaryAntiProtonsExtCov11Reject",
2525 ";#sigma_{y} [cm];Entries",
2527 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov11Reject);
2528 TH1F *gPrimaryAntiProtonsExtCov22Reject = new TH1F("gPrimaryAntiProtonsExtCov22Reject",
2529 ";#sigma_{z} [cm];Entries",
2531 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov22Reject);
2532 TH1F *gPrimaryAntiProtonsExtCov33Reject = new TH1F("gPrimaryAntiProtonsExtCov33Reject",
2533 ";#sigma_{sin(#phi)};Entries",
2535 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov33Reject);
2536 TH1F *gPrimaryAntiProtonsExtCov44Reject = new TH1F("gPrimaryAntiProtonsExtCov44Reject",
2537 ";#sigma_{tan(#lambda)};Entries",
2539 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov44Reject);
2540 TH1F *gPrimaryAntiProtonsExtCov55Reject = new TH1F("gPrimaryAntiProtonsExtCov55Reject",
2541 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2543 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov55Reject);
2544 TH1F *gPrimaryAntiProtonsSigmaToVertexReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexReject",
2545 ";#sigma_{Vertex};Entries",
2547 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexReject);
2548 TH1F *gPrimaryAntiProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCReject",
2549 ";#sigma_{Vertex};Entries",
2551 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCReject);
2552 TH1F *gPrimaryAntiProtonsDCAXYReject = new TH1F("gPrimaryAntiProtonsDCAXYReject",
2553 ";DCA_{xy} [cm];Entries",
2555 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYReject);
2556 TH1F *gPrimaryAntiProtonsDCAXYTPCReject = new TH1F("gPrimaryAntiProtonsDCAXYTPCReject",
2557 ";DCA_{xy} [cm];Entries",
2559 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYTPCReject);
2560 TH1F *gPrimaryAntiProtonsDCAZReject = new TH1F("gPrimaryAntiProtonsDCAZReject",
2561 ";DCA_{z} [cm];Entries",
2563 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZReject);
2564 TH1F *gPrimaryAntiProtonsDCAZTPCReject = new TH1F("gPrimaryAntiProtonsDCAZTPCReject",
2565 ";DCA_{z} [cm];Entries",
2567 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZTPCReject);
2568 TH1F *gPrimaryAntiProtonsConstrainChi2Reject = new TH1F("gPrimaryAntiProtonsConstrainChi2Reject",
2569 ";Log_{10}(#chi^{2});Entries",
2571 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsConstrainChi2Reject);
2572 TH1F *gPrimaryAntiProtonsITSRefitReject = new TH1F("gPrimaryAntiProtonsITSRefitReject",
2574 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSRefitReject);
2575 TH1F *gPrimaryAntiProtonsTPCRefitReject = new TH1F("gPrimaryAntiProtonsTPCRefitReject",
2577 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCRefitReject);
2578 TH1F *gPrimaryAntiProtonsESDpidReject = new TH1F("gPrimaryAntiProtonsESDpidReject",
2580 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsESDpidReject);
2581 TH1F *gPrimaryAntiProtonsTPCpidReject = new TH1F("gPrimaryAntiProtonsTPCpidReject",
2583 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCpidReject);
2584 TH1F *gPrimaryAntiProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Reject",
2586 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Reject);
2587 TH1F *gPrimaryAntiProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Reject",
2589 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Reject);
2590 TH1F *gPrimaryAntiProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Reject",
2592 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Reject);
2593 TH1F *gPrimaryAntiProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Reject",
2595 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Reject);
2596 TH1F *gPrimaryAntiProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Reject",
2598 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Reject);
2599 TH1F *gPrimaryAntiProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Reject",
2601 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Reject);
2602 TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2603 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject);
2605 //________________________________________________________________//
2606 /*gDirectory->cd("../../");
2608 TDirectory *dirAntiProtonsSecondary = gDirectory->mkdir("Secondaries");
2609 dirAntiProtonsSecondary->cd();
2610 TDirectory *dirAntiProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
2611 dirAntiProtonsSecondaryAccepted->cd();*/
2613 //Accepted secondary antiprotons
2614 TH1F *gSecondaryAntiProtonsITSClustersPass = new TH1F("gSecondaryAntiProtonsITSClustersPass",
2615 ";N_{clusters} (ITS);Entries",
2617 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSClustersPass);
2618 TH1F *gSecondaryAntiProtonsChi2PerClusterITSPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterITSPass",
2619 ";x^{2}/N_{clusters} (ITS);Entries",
2621 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterITSPass);
2622 TH1F *gSecondaryAntiProtonsTPCClustersPass = new TH1F("gSecondaryAntiProtonsTPCClustersPass",
2623 ";N_{clusters} (TPC);Entries",
2625 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCClustersPass);
2626 TH1F *gSecondaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPCPass",
2627 ";x^{2}/N_{clusters} (TPC);Entries",
2629 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterTPCPass);
2630 TH1F *gSecondaryAntiProtonsExtCov11Pass = new TH1F("gSecondaryAntiProtonsExtCov11Pass",
2631 ";#sigma_{y} [cm];Entries",
2633 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov11Pass);
2634 TH1F *gSecondaryAntiProtonsExtCov22Pass = new TH1F("gSecondaryAntiProtonsExtCov22Pass",
2635 ";#sigma_{z} [cm];Entries",
2637 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov22Pass);
2638 TH1F *gSecondaryAntiProtonsExtCov33Pass = new TH1F("gSecondaryAntiProtonsExtCov33Pass",
2639 ";#sigma_{sin(#phi)};Entries",
2641 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov33Pass);
2642 TH1F *gSecondaryAntiProtonsExtCov44Pass = new TH1F("gSecondaryAntiProtonsExtCov44Pass",
2643 ";#sigma_{tan(#lambda)};Entries",
2645 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov44Pass);
2646 TH1F *gSecondaryAntiProtonsExtCov55Pass = new TH1F("gSecondaryAntiProtonsExtCov55Pass",
2647 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2649 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov55Pass);
2650 TH1F *gSecondaryAntiProtonsSigmaToVertexPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexPass",
2651 ";#sigma_{Vertex};Entries",
2653 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexPass);
2654 TH1F *gSecondaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexTPCPass",
2655 ";#sigma_{Vertex};Entries",
2657 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexTPCPass);
2658 TH1F *gSecondaryAntiProtonsDCAXYPass = new TH1F("gSecondaryAntiProtonsDCAXYPass",
2659 ";DCA_{xy} [cm];Entries",
2661 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYPass);
2662 TH1F *gSecondaryAntiProtonsDCAXYTPCPass = new TH1F("gSecondaryAntiProtonsDCAXYTPCPass",
2663 ";DCA_{xy} [cm];Entries",
2665 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYTPCPass);
2666 TH1F *gSecondaryAntiProtonsDCAZPass = new TH1F("gSecondaryAntiProtonsDCAZPass",
2667 ";DCA_{z} [cm];Entries",
2669 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZPass);
2670 TH1F *gSecondaryAntiProtonsDCAZTPCPass = new TH1F("gSecondaryAntiProtonsDCAZTPCPass",
2671 ";DCA_{z} [cm];Entries",
2673 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZTPCPass);
2674 TH1F *gSecondaryAntiProtonsConstrainChi2Pass = new TH1F("gSecondaryAntiProtonsConstrainChi2Pass",
2675 ";Log_{10}(#chi^{2});Entries",
2677 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsConstrainChi2Pass);
2678 TH1F *gSecondaryAntiProtonsITSRefitPass = new TH1F("gSecondaryAntiProtonsITSRefitPass",
2680 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSRefitPass);
2681 TH1F *gSecondaryAntiProtonsTPCRefitPass = new TH1F("gSecondaryAntiProtonsTPCRefitPass",
2683 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCRefitPass);
2684 TH1F *gSecondaryAntiProtonsESDpidPass = new TH1F("gSecondaryAntiProtonsESDpidPass",
2686 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsESDpidPass);
2687 TH1F *gSecondaryAntiProtonsTPCpidPass = new TH1F("gSecondaryAntiProtonsTPCpidPass",
2689 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCpidPass);
2690 TH1F *gSecondaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer1Pass",
2692 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer1Pass);
2693 TH1F *gSecondaryAntiProtonsPointOnITSLayer2Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer2Pass",
2695 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer2Pass);
2696 TH1F *gSecondaryAntiProtonsPointOnITSLayer3Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer3Pass",
2698 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer3Pass);
2699 TH1F *gSecondaryAntiProtonsPointOnITSLayer4Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer4Pass",
2701 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer4Pass);
2702 TH1F *gSecondaryAntiProtonsPointOnITSLayer5Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer5Pass",
2704 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer5Pass);
2705 TH1F *gSecondaryAntiProtonsPointOnITSLayer6Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer6Pass",
2707 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer6Pass);
2708 TH1F *gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass = new TH1F("gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2709 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass);
2711 //Rejected secondary antiprotons
2712 /*gDirectory->cd("../");
2713 TDirectory *dirAntiProtonsSecondaryRejected = gDirectory->mkdir("Rejected");
2714 dirAntiProtonsSecondaryRejected->cd();*/
2716 TH1F *gSecondaryAntiProtonsITSClustersReject = new TH1F("gSecondaryAntiProtonsITSClustersReject",
2717 ";N_{clusters} (ITS);Entries",
2719 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsITSClustersReject);
2720 TH1F *gSecondaryAntiProtonsChi2PerClusterITSReject = new TH1F("gSecondaryAntiProtonsChi2PerClusterITSReject",
2721 ";x^{2}/N_{clusters} (ITS);Entries",
2723 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsChi2PerClusterITSReject);
2724 TH1F *gSecondaryAntiProtonsTPCClustersReject = new TH1F("gSecondaryAntiProtonsTPCClustersReject",
2725 ";N_{clusters} (TPC);Entries",
2727 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCClustersReject);
2728 TH1F *gSecondaryAntiProtonsChi2PerClusterTPCReject = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPCReject",
2729 ";x^{2}/N_{clusters} (TPC);Entries",
2731 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsChi2PerClusterTPCReject);
2732 TH1F *gSecondaryAntiProtonsExtCov11Reject = new TH1F("gSecondaryAntiProtonsExtCov11Reject",
2733 ";#sigma_{y} [cm];Entries",
2735 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov11Reject);
2736 TH1F *gSecondaryAntiProtonsExtCov22Reject = new TH1F("gSecondaryAntiProtonsExtCov22Reject",
2737 ";#sigma_{z} [cm];Entries",
2739 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov22Reject);
2740 TH1F *gSecondaryAntiProtonsExtCov33Reject = new TH1F("gSecondaryAntiProtonsExtCov33Reject",
2741 ";#sigma_{sin(#phi)};Entries",
2743 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov33Reject);
2744 TH1F *gSecondaryAntiProtonsExtCov44Reject = new TH1F("gSecondaryAntiProtonsExtCov44Reject",
2745 ";#sigma_{tan(#lambda)};Entries",
2747 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov44Reject);
2748 TH1F *gSecondaryAntiProtonsExtCov55Reject = new TH1F("gSecondaryAntiProtonsExtCov55Reject",
2749 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2751 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov55Reject);
2752 TH1F *gSecondaryAntiProtonsSigmaToVertexReject = new TH1F("gSecondaryAntiProtonsSigmaToVertexReject",
2753 ";#sigma_{Vertex};Entries",
2755 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsSigmaToVertexReject);
2756 TH1F *gSecondaryAntiProtonsSigmaToVertexTPCReject = new TH1F("gSecondaryAntiProtonsSigmaToVertexTPCReject",
2757 ";#sigma_{Vertex};Entries",
2759 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsSigmaToVertexTPCReject);
2760 TH1F *gSecondaryAntiProtonsDCAXYReject = new TH1F("gSecondaryAntiProtonsDCAXYReject",
2761 ";DCA_{xy} [cm];Entries",
2763 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAXYReject);
2764 TH1F *gSecondaryAntiProtonsDCAXYTPCReject = new TH1F("gSecondaryAntiProtonsDCAXYTPCReject",
2765 ";DCA_{xy} [cm];Entries",
2767 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAXYTPCReject);
2768 TH1F *gSecondaryAntiProtonsDCAZReject = new TH1F("gSecondaryAntiProtonsDCAZReject",
2769 ";DCA_{z} [cm];Entries",
2771 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAZReject);
2772 TH1F *gSecondaryAntiProtonsDCAZTPCReject = new TH1F("gSecondaryAntiProtonsDCAZTPCReject",
2773 ";DCA_{z} [cm];Entries",
2775 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAZTPCReject);
2776 TH1F *gSecondaryAntiProtonsConstrainChi2Reject = new TH1F("gSecondaryAntiProtonsConstrainChi2Reject",
2777 ";Log_{10}(#chi^{2});Entries",
2779 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsConstrainChi2Reject);
2780 TH1F *gSecondaryAntiProtonsITSRefitReject = new TH1F("gSecondaryAntiProtonsITSRefitReject",
2782 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsITSRefitReject);
2783 TH1F *gSecondaryAntiProtonsTPCRefitReject = new TH1F("gSecondaryAntiProtonsTPCRefitReject",
2785 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCRefitReject);
2786 TH1F *gSecondaryAntiProtonsESDpidReject = new TH1F("gSecondaryAntiProtonsESDpidReject",
2788 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsESDpidReject);
2789 TH1F *gSecondaryAntiProtonsTPCpidReject = new TH1F("gSecondaryAntiProtonsTPCpidReject",
2791 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCpidReject);
2792 TH1F *gSecondaryAntiProtonsPointOnITSLayer1Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer1Reject",
2794 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer1Reject);
2795 TH1F *gSecondaryAntiProtonsPointOnITSLayer2Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer2Reject",
2797 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer2Reject);
2798 TH1F *gSecondaryAntiProtonsPointOnITSLayer3Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer3Reject",
2800 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer3Reject);
2801 TH1F *gSecondaryAntiProtonsPointOnITSLayer4Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer4Reject",
2803 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer4Reject);
2804 TH1F *gSecondaryAntiProtonsPointOnITSLayer5Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer5Reject",
2806 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer5Reject);
2807 TH1F *gSecondaryAntiProtonsPointOnITSLayer6Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer6Reject",
2809 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer6Reject);
2810 TH1F *gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject = new TH1F("gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2811 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject);
2814 //____________________________________________________________________//
2815 void AliProtonQAAnalysis::RunReconstructionEfficiencyAnalysis(AliMCEvent *const mcEvent,
2817 const AliESDVertex *vertex) {
2818 //Run the reconstruction efficiency code (primaries & secondaries)
2819 AliStack *stack = mcEvent->Stack();
2821 Int_t nMCParticles = mcEvent->GetNumberOfTracks();
2822 Int_t nMCLabelCounter = 0;
2823 TArrayI labelMCArray(nMCParticles);
2825 for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfTracks(); iTracks++) {
2826 AliMCParticle *mcTrack = mcEvent->GetTrack(iTracks);
2828 Printf("ERROR: Could not receive track %d (mc loop)", iTracks);
2831 if(TMath::Abs(mcTrack->Eta()) > 1.0) continue;//acceptance
2832 if((mcTrack->Pt() > fMaxPt)||(mcTrack->Pt() < fMinPt)) continue;
2833 if(fProtonAnalysisBase->GetEtaMode()) {
2834 if((mcTrack->Eta() > fMaxY)|| (mcTrack->Eta() < fMinY)) continue;
2837 if((fProtonAnalysisBase->Rapidity(mcTrack->Px(),mcTrack->Py(),mcTrack->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(mcTrack->Px(),mcTrack->Py(),mcTrack->Pz()) < fMinY)) continue;
2839 // Loop over Track References
2840 Bool_t labelTPC = kFALSE;
2841 AliTrackReference* trackRef = 0;
2842 for (Int_t iTrackRef = 0; iTrackRef < mcTrack->GetNumberOfTrackReferences(); iTrackRef++) {
2843 trackRef = mcTrack->GetTrackReference(iTrackRef);
2845 Int_t detectorId = trackRef->DetectorId();
2846 if (detectorId == AliTrackReference::kTPC) {
2855 TParticle* particle = mcTrack->Particle();
2856 if(!particle) continue;
2857 Int_t pdgcode = particle->GetPdgCode();
2858 if(TMath::Abs(pdgcode) != 2212) continue;
2860 labelMCArray.AddAt(iTracks,nMCLabelCounter);
2861 nMCLabelCounter += 1;
2863 if(iTracks <= stack->GetNprimary()) {
2864 if(pdgcode == 2212) {
2865 if(fProtonAnalysisBase->GetEtaMode())
2866 ((TH2D *)(fEfficiencyList->At(0)))->Fill(particle->Eta(),
2869 ((TH2D *)(fEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2874 if(pdgcode == -2212) {
2875 if(fProtonAnalysisBase->GetEtaMode())
2876 ((TH2D *)(fEfficiencyList->At(1)))->Fill(particle->Eta(),
2879 ((TH2D *)(fEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2887 Int_t lPartMother = -1;
2888 Int_t motherPDGCode = -1;
2889 lPartMother = particle->GetFirstMother();
2890 AliMCParticle *mcMotherTrack = mcEvent->GetTrack(lPartMother);
2891 TParticle *motherParticle = mcMotherTrack->Particle();
2892 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
2894 if(pdgcode == 2212) {
2895 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
2896 if(fProtonAnalysisBase->GetEtaMode())
2897 ((TH2D *)(fEfficiencyList->At(2)))->Fill(particle->Eta(),
2900 ((TH2D *)(fEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2905 if((particle->GetUniqueID() == 13)) {
2906 if(fProtonAnalysisBase->GetEtaMode())
2907 ((TH2D *)(fEfficiencyList->At(4)))->Fill(particle->Eta(),
2910 ((TH2D *)(fEfficiencyList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2914 }//hadronic interactions
2916 if(pdgcode == -2212) {
2917 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
2918 if(fProtonAnalysisBase->GetEtaMode())
2919 ((TH2D *)(fEfficiencyList->At(3)))->Fill(particle->Eta(),
2922 ((TH2D *)(fEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2927 if((particle->GetUniqueID() == 13)) {
2928 if(fProtonAnalysisBase->GetEtaMode())
2929 ((TH2D *)(fEfficiencyList->At(5)))->Fill(particle->Eta(),
2932 ((TH2D *)(fEfficiencyList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2936 }//hadronic interactions
2943 Bool_t iFound = kFALSE;
2944 Int_t mcGoods = nMCLabelCounter;
2945 for (Int_t k = 0; k < mcGoods; k++) {
2946 Int_t mcLabel = labelMCArray.At(k);
2949 Int_t nGoodTracks = esd->GetNumberOfTracks();
2950 TArrayI labelArray(nGoodTracks);
2951 Int_t labelCounter = 0;
2952 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2953 AliESDtrack* track = esd->GetTrack(iTracks);
2954 if(!track) continue;
2957 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
2958 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
2959 if(!tpcTrack) continue;
2961 Int_t label = TMath::Abs(track->GetTPCLabel());
2962 if(IsLabelUsed(labelArray,label)) continue;
2963 labelArray.AddAt(label,labelCounter);
2966 if (mcLabel != TMath::Abs(label)) continue;
2967 if(mcLabel != label) continue;
2969 TParticle *particle = stack->Particle(label);
2970 if(!particle) continue;
2971 Int_t pdgcode = particle->GetPdgCode();
2972 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
2973 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
2974 if(fProtonAnalysisBase->GetEtaMode()) {
2975 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
2978 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
2980 if(fUseCutsInEfficiency)
2981 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
2983 //reconstructed primary (anti)protons
2984 if(pdgcode == 2212) {
2985 if(label <= stack->GetNprimary()) {
2986 if(fProtonAnalysisBase->GetEtaMode())
2987 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
2990 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
2995 if(label > stack->GetNprimary()) {
2996 Int_t lPartMother = -1;
2997 Int_t motherPDGCode = -1;
2998 lPartMother = particle->GetFirstMother();
2999 TParticle *motherParticle = stack->Particle(lPartMother);
3000 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3002 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3003 if(fProtonAnalysisBase->GetEtaMode())
3004 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3007 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3012 if((particle->GetUniqueID() == 13)) {
3013 if(fProtonAnalysisBase->GetEtaMode())
3014 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3017 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3021 }//hadronic interactions
3024 if(pdgcode == -2212) {
3025 if(label <= stack->GetNprimary()) {
3026 if(fProtonAnalysisBase->GetEtaMode())
3027 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3030 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3035 if(label > stack->GetNprimary()) {
3036 Int_t lPartMother = -1;
3037 Int_t motherPDGCode = -1;
3038 lPartMother = particle->GetFirstMother();
3039 TParticle *motherParticle = stack->Particle(lPartMother);
3040 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3042 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3043 if(fProtonAnalysisBase->GetEtaMode())
3044 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3047 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3052 if((particle->GetUniqueID() == 13)) {
3053 if(fProtonAnalysisBase->GetEtaMode())
3054 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3057 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3061 }//hadronic interactions
3063 }//initial antiprotons
3066 Int_t label = TMath::Abs(track->GetLabel());
3067 if(IsLabelUsed(labelArray,label)) continue;
3068 labelArray.AddAt(label,labelCounter);
3071 if (mcLabel != TMath::Abs(label)) continue;
3072 if(mcLabel != label) continue;
3074 TParticle *particle = stack->Particle(label);
3075 if(!particle) continue;
3076 Int_t pdgcode = particle->GetPdgCode();
3077 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3078 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3079 if(fProtonAnalysisBase->GetEtaMode()) {
3080 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3083 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3085 //Double_t probability[5];
3087 if(fUseCutsInEfficiency)
3088 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3090 //reconstructed primary (anti)protons
3091 if(pdgcode == 2212) {
3092 if(label <= stack->GetNprimary()) {
3093 if(fProtonAnalysisBase->GetEtaMode())
3094 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3097 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3102 if(label > stack->GetNprimary()) {
3103 Int_t lPartMother = -1;
3104 Int_t motherPDGCode = -1;
3105 lPartMother = particle->GetFirstMother();
3106 TParticle *motherParticle = stack->Particle(lPartMother);
3107 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3109 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3110 if(fProtonAnalysisBase->GetEtaMode())
3111 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3114 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3119 if((particle->GetUniqueID() == 13)) {
3120 if(fProtonAnalysisBase->GetEtaMode())
3121 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3124 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3128 }//hadronic interactions
3131 if(pdgcode == -2212) {
3132 if(label <= stack->GetNprimary()) {
3133 if(fProtonAnalysisBase->GetEtaMode())
3134 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3137 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3142 if(label > stack->GetNprimary()) {
3143 Int_t lPartMother = -1;
3144 Int_t motherPDGCode = -1;
3145 lPartMother = particle->GetFirstMother();
3146 TParticle *motherParticle = stack->Particle(lPartMother);
3147 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3149 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3150 if(fProtonAnalysisBase->GetEtaMode())
3151 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3154 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3159 if((particle->GetUniqueID() == 13)) {
3160 if(fProtonAnalysisBase->GetEtaMode())
3161 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3164 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3168 }//hadronic interactions
3170 }//initial antiprotons
3174 }//loop over findable tracks
3176 labelMCArray.Reset();
3179 //____________________________________________________________________//
3180 void AliProtonQAAnalysis::RunPIDEfficiencyAnalysis(AliStack *const stack,
3182 const AliESDVertex *vertex) {
3183 Int_t nGoodTracks = esd->GetNumberOfTracks();
3184 TArrayI labelArray(nGoodTracks);
3185 Int_t labelCounter = 0;
3186 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3187 AliESDtrack* track = esd->GetTrack(iTracks);
3188 if(!track) continue;
3191 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3192 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3193 if(!tpcTrack) continue;
3196 Int_t label = TMath::Abs(track->GetLabel());
3197 if(IsLabelUsed(labelArray,label)) continue;
3198 labelArray.AddAt(label,labelCounter);
3201 TParticle *particle = stack->Particle(label);
3202 if(!particle) continue;
3203 Int_t pdgcode = particle->GetPdgCode();
3205 Int_t nTPCpoints = track->GetTPCsignalN();
3207 if(fUseCutsInEfficiency)
3208 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3210 if(TMath::Abs(pdgcode) == 2212) {
3211 if(fProtonAnalysisBase->GetEtaMode())
3212 ((TH3D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
3213 particle->Pt(),nTPCpoints);
3215 ((TH3D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3219 if(fProtonAnalysisBase->IsProton(track)) {
3220 if(fProtonAnalysisBase->GetEtaMode())
3221 ((TH3D *)(fEfficiencyList->At(14)))->Fill(particle->Eta(),
3222 particle->Pt(),nTPCpoints);
3223 else ((TH3D *)(fEfficiencyList->At(14)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3224 if(TMath::Abs(pdgcode) == 2212) {
3225 if(fProtonAnalysisBase->GetEtaMode())
3226 ((TH3D *)(fEfficiencyList->At(13)))->Fill(particle->Eta(),
3227 particle->Pt(),nTPCpoints);
3229 ((TH3D *)(fEfficiencyList->At(13)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3230 }//properly identified as proton
3232 if(fProtonAnalysisBase->GetEtaMode())
3233 ((TH3D *)(fEfficiencyList->At(15)))->Fill(particle->Eta(),
3234 particle->Pt(),nTPCpoints);
3236 ((TH3D *)(fEfficiencyList->At(15)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3238 }//identified as proton
3243 //____________________________________________________________________//
3244 void AliProtonQAAnalysis::RunEfficiencyAnalysis(AliStack *const stack,
3246 const AliESDVertex *vertex) {
3247 //Runs the efficiency code
3249 Int_t nMCProtons = 0, nESDProtons = 0;
3250 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
3251 TParticle *particle = stack->Particle(iParticle);
3252 if(!particle) continue;
3254 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3255 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3256 if(fProtonAnalysisBase->GetEtaMode()) {
3257 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3260 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3262 Int_t pdgcode = particle->GetPdgCode();
3263 if(TMath::Abs(pdgcode) != 2212) continue;
3265 if(iParticle <= stack->GetNprimary()) {
3266 if(pdgcode == 2212) {
3268 if(fProtonAnalysisBase->GetEtaMode())
3269 ((TH2D *)(fEfficiencyList->At(0)))->Fill(particle->Eta(),
3272 ((TH2D *)(fEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3277 if(pdgcode == -2212) {
3278 if(fProtonAnalysisBase->GetEtaMode())
3279 ((TH2D *)(fEfficiencyList->At(1)))->Fill(particle->Eta(),
3282 ((TH2D *)(fEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3290 Int_t lPartMother = -1;
3291 Int_t motherPDGCode = -1;
3292 lPartMother = particle->GetFirstMother();
3293 TParticle *motherParticle = stack->Particle(lPartMother);
3294 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3296 if(pdgcode == 2212) {
3297 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3298 if(fProtonAnalysisBase->GetEtaMode())
3299 ((TH2D *)(fEfficiencyList->At(2)))->Fill(particle->Eta(),
3302 ((TH2D *)(fEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3307 if((particle->GetUniqueID() == 13)) {
3308 if(fProtonAnalysisBase->GetEtaMode())
3309 ((TH2D *)(fEfficiencyList->At(4)))->Fill(particle->Eta(),
3312 ((TH2D *)(fEfficiencyList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3316 }//hadronic interactions
3318 if(pdgcode == -2212) {
3319 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3320 if(fProtonAnalysisBase->GetEtaMode())
3321 ((TH2D *)(fEfficiencyList->At(3)))->Fill(particle->Eta(),
3324 ((TH2D *)(fEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3329 if((particle->GetUniqueID() == 13)) {
3330 if(fProtonAnalysisBase->GetEtaMode())
3331 ((TH2D *)(fEfficiencyList->At(5)))->Fill(particle->Eta(),
3334 ((TH2D *)(fEfficiencyList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3338 }//hadronic interactions
3345 Int_t nGoodTracks = esd->GetNumberOfTracks();
3346 TArrayI labelArray(nGoodTracks);
3347 Int_t labelCounter = 0;
3348 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3349 AliESDtrack* track = esd->GetTrack(iTracks);
3350 if(!track) continue;
3352 Int_t label = TMath::Abs(track->GetLabel());
3353 if(IsLabelUsed(labelArray,label)) continue;
3354 labelArray.AddAt(label,labelCounter);
3357 TParticle *particle = stack->Particle(label);
3358 if(!particle) continue;
3359 Int_t pdgcode = particle->GetPdgCode();
3360 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3362 Double_t gPt = 0.0, gP = 0.0;
3365 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3366 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3367 if(!tpcTrack) continue;
3368 gPt = tpcTrack->Pt();
3371 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3372 if(fProtonAnalysisBase->GetEtaMode()) {
3373 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3376 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3378 if(fUseCutsInEfficiency)
3379 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3381 //reconstructed primary (anti)protons
3382 if(pdgcode == 2212) {
3383 if(label <= stack->GetNprimary()) {
3385 if(fProtonAnalysisBase->GetEtaMode())
3386 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3389 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3394 if(label > stack->GetNprimary()) {
3395 Int_t lPartMother = -1;
3396 Int_t motherPDGCode = -1;
3397 lPartMother = particle->GetFirstMother();
3398 TParticle *motherParticle = stack->Particle(lPartMother);
3399 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3401 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3402 if(fProtonAnalysisBase->GetEtaMode())
3403 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3406 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3411 if((particle->GetUniqueID() == 13)) {
3412 if(fProtonAnalysisBase->GetEtaMode())
3413 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3416 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3420 }//hadronic interactions
3423 if(pdgcode == -2212) {
3424 if(label <= stack->GetNprimary()) {
3425 if(fProtonAnalysisBase->GetEtaMode())
3426 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3429 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3434 if(label > stack->GetNprimary()) {
3435 Int_t lPartMother = -1;
3436 Int_t motherPDGCode = -1;
3437 lPartMother = particle->GetFirstMother();
3438 TParticle *motherParticle = stack->Particle(lPartMother);
3439 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3441 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3442 if(fProtonAnalysisBase->GetEtaMode())
3443 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3446 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3451 if((particle->GetUniqueID() == 13)) {
3452 if(fProtonAnalysisBase->GetEtaMode())
3453 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3456 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3460 }//hadronic interactions
3462 }//initial antiprotons
3465 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3466 if(fProtonAnalysisBase->GetEtaMode()) {
3467 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3470 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3473 if(fUseCutsInEfficiency)
3474 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3476 //reconstructed primary (anti)protons
3477 if(pdgcode == 2212) {
3478 if(label <= stack->GetNprimary()) {
3480 if(fProtonAnalysisBase->GetEtaMode())
3481 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3484 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3489 if(label > stack->GetNprimary()) {
3490 Int_t lPartMother = -1;
3491 Int_t motherPDGCode = -1;
3492 lPartMother = particle->GetFirstMother();
3493 TParticle *motherParticle = stack->Particle(lPartMother);
3494 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3496 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3497 if(fProtonAnalysisBase->GetEtaMode())
3498 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3501 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3506 if((particle->GetUniqueID() == 13)) {
3507 if(fProtonAnalysisBase->GetEtaMode())
3508 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3511 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3515 }//hadronic interactions
3518 if(pdgcode == -2212) {
3519 if(fProtonAnalysisBase->GetEtaMode())
3520 ((TH2D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
3523 ((TH2D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3527 if(label <= stack->GetNprimary()) {
3528 if(fProtonAnalysisBase->GetEtaMode())
3529 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3532 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3537 if(label > stack->GetNprimary()) {
3538 Int_t lPartMother = -1;
3539 Int_t motherPDGCode = -1;
3540 lPartMother = particle->GetFirstMother();
3541 TParticle *motherParticle = stack->Particle(lPartMother);
3542 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3544 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3545 if(fProtonAnalysisBase->GetEtaMode())
3546 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3549 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3554 if((particle->GetUniqueID() == 13)) {
3555 if(fProtonAnalysisBase->GetEtaMode())
3556 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3559 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3563 }//hadronic interactions
3565 }//initial antiprotons
3569 //Printf("MC protons: %d - ESD protons: %d",nMCProtons,nESDProtons);
3572 //____________________________________________________________________//
3573 Bool_t AliProtonQAAnalysis::IsLabelUsed(TArrayI labelArray,
3575 //Checks if the label is used already
3576 Bool_t status = kFALSE;
3577 for(Int_t i = 0; i < labelArray.GetSize(); i++) {
3578 if(labelArray.At(i) == label)
3585 //____________________________________________________________________//
3586 void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
3587 AliESDEvent *const esd) {
3588 //Runs the vertex QA
3590 TArrayF primaryVertex(3);
3591 header->PrimaryVertex(primaryVertex);
3593 //Int_t nPrimaries = stack->GetNprimary();
3594 ((TH1F *)(fQAVertexList->At(0)))->Fill(primaryVertex[2]);
3597 const AliESDVertex *vertexTPC = esd->GetPrimaryVertexTPC();
3599 Printf("ERROR: Could not retrieve the TPC vertex");
3602 if(vertexTPC->GetNContributors() > 0) {
3603 ((TH1F *)(fQAVertexList->At(1)))->Fill(primaryVertex[2]);
3604 ((TH2F *)(fQAVertexList->At(2)))->Fill(vertexTPC->GetXv(),
3605 vertexTPC->GetNContributors());
3606 ((TH2F *)(fQAVertexList->At(3)))->Fill(vertexTPC->GetYv(),
3607 vertexTPC->GetNContributors());
3608 ((TH2F *)(fQAVertexList->At(4)))->Fill(vertexTPC->GetZv(),
3609 vertexTPC->GetNContributors());
3610 ((TH1F *)(fQAVertexList->At(5)))->Fill((vertexTPC->GetXv()-primaryVertex[0])*10000.);
3611 ((TH1F *)(fQAVertexList->At(6)))->Fill((vertexTPC->GetYv()-primaryVertex[1])*10000.);
3612 ((TH1F *)(fQAVertexList->At(7)))->Fill((vertexTPC->GetZv()-primaryVertex[2])*10000.);
3613 ((TH1F *)(fQAVertexList->At(8)))->Fill(vertexTPC->GetXRes()*10000.);
3614 ((TH1F *)(fQAVertexList->At(9)))->Fill(vertexTPC->GetYRes()*10000.);
3615 ((TH1F *)(fQAVertexList->At(10)))->Fill(vertexTPC->GetZRes()*10000.);
3619 const AliESDVertex *vertexSPD = esd->GetPrimaryVertexSPD();
3621 Printf("ERROR: Could not retrieve the SPD vertex");
3624 if(vertexSPD->GetNContributors() > 0) {
3625 ((TH1F *)(fQAVertexList->At(11)))->Fill(primaryVertex[2]);
3626 ((TH2F *)(fQAVertexList->At(12)))->Fill(vertexSPD->GetXv(),
3627 vertexSPD->GetNContributors());
3628 ((TH2F *)(fQAVertexList->At(13)))->Fill(vertexSPD->GetYv(),
3629 vertexSPD->GetNContributors());
3630 ((TH2F *)(fQAVertexList->At(14)))->Fill(vertexSPD->GetZv(),
3631 vertexSPD->GetNContributors());
3632 ((TH1F *)(fQAVertexList->At(15)))->Fill((vertexSPD->GetXv()-primaryVertex[0])*10000.);
3633 ((TH1F *)(fQAVertexList->At(16)))->Fill((vertexSPD->GetYv()-primaryVertex[1])*10000.);
3634 ((TH1F *)(fQAVertexList->At(17)))->Fill((vertexSPD->GetZv()-primaryVertex[2])*10000.);
3635 ((TH1F *)(fQAVertexList->At(18)))->Fill(vertexSPD->GetXRes()*10000.);
3636 ((TH1F *)(fQAVertexList->At(19)))->Fill(vertexSPD->GetYRes()*10000.);
3637 ((TH1F *)(fQAVertexList->At(20)))->Fill(vertexSPD->GetZRes()*10000.);
3641 const AliESDVertex *vertexTracks = esd->GetPrimaryVertex();
3643 Printf("ERROR: Could not retrieve the Tracks vertex");
3646 if(vertexTracks->GetNContributors() > 0) {
3647 ((TH1F *)(fQAVertexList->At(21)))->Fill(primaryVertex[2]);
3648 ((TH2F *)(fQAVertexList->At(22)))->Fill(vertexTracks->GetXv(),
3649 vertexTracks->GetNContributors());
3650 ((TH2F *)(fQAVertexList->At(23)))->Fill(vertexTracks->GetYv(),
3651 vertexTracks->GetNContributors());
3652 ((TH2F *)(fQAVertexList->At(24)))->Fill(vertexTracks->GetZv(),
3653 vertexTracks->GetNContributors());
3654 ((TH1F *)(fQAVertexList->At(25)))->Fill((vertexTracks->GetXv()-primaryVertex[0])*10000.);
3655 ((TH1F *)(fQAVertexList->At(26)))->Fill((vertexTracks->GetYv()-primaryVertex[1])*10000.);
3656 ((TH1F *)(fQAVertexList->At(27)))->Fill((vertexTracks->GetZv()-primaryVertex[2])*10000.);
3657 ((TH1F *)(fQAVertexList->At(28)))->Fill(vertexTracks->GetXRes()*10000.);
3658 ((TH1F *)(fQAVertexList->At(29)))->Fill(vertexTracks->GetYRes()*10000.);
3659 ((TH1F *)(fQAVertexList->At(30)))->Fill(vertexTracks->GetZRes()*10000.);
3664 //____________________________________________________________________//
3665 void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
3667 const AliESDVertex *vertex) {
3670 for(Int_t iParticle = 0; iParticle < stack->GetNprimary(); iParticle++) {
3671 TParticle *particle = stack->Particle(iParticle);
3672 if(!particle) continue;
3674 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3675 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3676 if(fProtonAnalysisBase->GetEtaMode()) {
3677 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
3680 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3682 Int_t pdgcode = particle->GetPdgCode();
3683 if(pdgcode == 2212) {
3684 if(fProtonAnalysisBase->GetEtaMode())
3685 ((TH2D *)(fQA2DList->At(8)))->Fill(particle->Eta(),
3688 ((TH2D *)(fQA2DList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3693 if(pdgcode == -2212) {
3694 if(fProtonAnalysisBase->GetEtaMode())
3695 ((TH2D *)(fQA2DList->At(9)))->Fill(particle->Eta(),
3698 ((TH2D *)(fQA2DList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3706 Int_t nGoodTracks = esd->GetNumberOfTracks();
3707 TArrayI labelArray(nGoodTracks);
3708 Int_t labelCounter = 0;
3709 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3710 AliESDtrack* track = esd->GetTrack(iTracks);
3711 if(!track) continue;
3713 Int_t label = TMath::Abs(track->GetLabel());
3714 if(IsLabelUsed(labelArray,label)) continue;
3715 labelArray.AddAt(label,labelCounter);
3718 TParticle *particle = stack->Particle(label);
3719 if(!particle) continue;
3720 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3722 AliESDtrack trackTPC;
3724 //in case it's a TPC only track relate it to the proper vertex
3725 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)&&(!fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3726 //if((fUseTPCOnly)&&(!fUseHybridTPC)) {
3727 Float_t p[2],cov[3];
3728 track->GetImpactParametersTPC(p,cov);
3729 if (p[0]==0 && p[1]==0)
3730 track->RelateToVertexTPC(((AliESDEvent*)esd)->GetPrimaryVertexTPC(),esd->GetMagneticField(),kVeryBig);
3731 if (!track->FillTPCOnlyTrack(trackTPC)) {
3737 Double_t gPt = 0.0, gP = 0.0;
3738 //Double_t probability[5];
3739 Float_t dcaXY = 0.0, dcaZ = 0.0;
3740 Double_t nSigmaToVertex = fProtonAnalysisBase->GetSigmaToVertex(track);
3742 Int_t nClustersITS = track->GetITSclusters(fIdxInt);
3743 Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
3745 Float_t chi2PerClusterITS = -1;
3746 if (nClustersITS!=0)
3747 chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
3748 Float_t chi2PerClusterTPC = -1;
3749 if (nClustersTPC!=0)
3750 chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
3751 Double_t chi2ConstrainVertex = TMath::Log(track->GetConstrainedChi2());
3752 Double_t extCov[15];
3753 track->GetExternalCovariance(extCov);
3754 Int_t npointsTPCdEdx = track->GetTPCsignalN();
3757 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3758 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3759 if(!tpcTrack) continue;
3760 gPt = tpcTrack->Pt();
3762 if(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)
3763 track->GetImpactParameters(dcaXY,dcaZ);
3764 else track->GetImpactParametersTPC(dcaXY,dcaZ);
3767 if(fProtonAnalysisBase->IsProton(track)) {
3768 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
3770 FillQA(stack,esd,vertex,track);
3771 if(fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
3772 if(label <= stack->GetNprimary()) {
3773 if(track->Charge() > 0) {
3774 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3775 if(track->HasPointOnITSLayer(iLayer))
3776 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
3778 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
3779 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
3780 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
3781 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
3782 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
3783 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
3784 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
3785 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
3786 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
3787 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
3788 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(tpcTrack->Eta(),
3789 tpcTrack->Phi()*180./TMath::Pi(),
3791 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(tpcTrack->Eta(),
3792 tpcTrack->Phi()*180./TMath::Pi(),
3794 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(tpcTrack->Eta(),
3795 tpcTrack->Phi()*180./TMath::Pi(),
3797 ((TH1D *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
3799 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
3800 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
3801 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
3802 if(fProtonAnalysisBase->GetEtaMode())
3803 ((TH2D *)(fQA2DList->At(0)))->Fill(tpcTrack->Eta(),gPt);
3805 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3809 }//accepted primary protons
3810 else if(track->Charge() < 0) {
3811 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3812 if(track->HasPointOnITSLayer(iLayer))
3813 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
3815 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
3816 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
3817 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
3818 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
3819 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
3820 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
3821 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
3822 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
3823 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
3824 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
3825 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(tpcTrack->Eta(),
3826 tpcTrack->Phi()*180./TMath::Pi(),
3828 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(tpcTrack->Eta(),
3829 tpcTrack->Phi()*180./TMath::Pi(),
3831 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(tpcTrack->Eta(),
3832 tpcTrack->Phi()*180./TMath::Pi(),
3834 ((TH1D *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
3836 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
3837 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
3838 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
3839 if(fProtonAnalysisBase->GetEtaMode())
3840 ((TH2D *)(fQA2DList->At(4)))->Fill(tpcTrack->Eta(),gPt);
3842 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3846 }//accepted primary antiprotons
3847 }//accepted primary particles
3848 else if(label > stack->GetNprimary()) {
3849 Int_t lPartMother = -1;
3850 Int_t motherPDGCode = -1;
3852 lPartMother = particle->GetFirstMother();
3853 TParticle *motherParticle = stack->Particle(lPartMother);
3854 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3857 if(fMCProcessIdFlag)
3858 if(particle->GetUniqueID() != fMCProcessId) continue;
3859 if(fMotherParticlePDGCodeFlag)
3860 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
3862 if(track->Charge() > 0) {
3863 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3864 if(track->HasPointOnITSLayer(iLayer))
3865 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
3867 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
3868 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
3869 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
3870 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
3871 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
3872 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
3873 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
3874 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
3875 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
3876 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
3877 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(tpcTrack->Eta(),
3878 tpcTrack->Phi()*180./TMath::Pi(),
3880 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(tpcTrack->Eta(),
3881 tpcTrack->Phi()*180./TMath::Pi(),
3883 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(tpcTrack->Eta(),
3884 tpcTrack->Phi()*180./TMath::Pi(),
3886 ((TH1D *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
3888 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
3889 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
3890 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
3891 if(fProtonAnalysisBase->GetEtaMode())
3892 ((TH2D *)(fQA2DList->At(2)))->Fill(tpcTrack->Eta(),gPt);
3894 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3898 if(fProtonAnalysisBase->GetEtaMode())
3899 ((TH3F *)(fQA2DList->At(10)))->Fill(tpcTrack->Eta(),gPt,
3900 ConvertPDGToInt(motherPDGCode));
3902 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3906 ConvertPDGToInt(motherPDGCode));
3907 }//accepted secondary protons
3908 else if(track->Charge() < 0) {
3909 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3910 if(track->HasPointOnITSLayer(iLayer))
3911 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
3913 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
3914 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
3915 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
3916 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
3917 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
3918 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
3919 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
3920 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
3921 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
3922 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
3923 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(tpcTrack->Eta(),
3924 tpcTrack->Phi()*180./TMath::Pi(),
3926 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(tpcTrack->Eta(),
3927 tpcTrack->Phi()*180./TMath::Pi(),
3929 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(tpcTrack->Eta(),
3930 tpcTrack->Phi()*180./TMath::Pi(),
3932 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
3934 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
3935 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
3936 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
3937 if(fProtonAnalysisBase->GetEtaMode())
3938 ((TH2D *)(fQA2DList->At(6)))->Fill(tpcTrack->Eta(),gPt);
3940 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3944 if(fProtonAnalysisBase->GetEtaMode())
3945 ((TH3F *)(fQA2DList->At(11)))->Fill(tpcTrack->Eta(),gPt,
3946 ConvertPDGToInt(motherPDGCode));
3948 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3952 ConvertPDGToInt(motherPDGCode));
3953 }//accepted secondary antiprotons
3954 }//accepted secondary particles
3955 }//accepted - track cuts
3957 if(label <= stack->GetNprimary()) {
3958 if(track->Charge() > 0) {
3959 ((TH3D *)(fRejectedCutList->At(0)))->Fill(tpcTrack->Eta(),
3960 tpcTrack->Phi()*180./TMath::Pi(),
3962 ((TH3D *)(fRejectedCutList->At(4)))->Fill(tpcTrack->Eta(),
3963 tpcTrack->Phi()*180./TMath::Pi(),
3965 ((TH3D *)(fRejectedCutList->At(8)))->Fill(tpcTrack->Eta(),
3966 tpcTrack->Phi()*180./TMath::Pi(),
3969 if(fProtonAnalysisBase->GetEtaMode())
3970 ((TH2D *)(fQA2DList->At(1)))->Fill(tpcTrack->Eta(),gPt);
3972 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3977 else if(track->Charge() < 0) {
3978 ((TH3D *)(fRejectedCutList->At(1)))->Fill(tpcTrack->Eta(),
3979 tpcTrack->Phi()*180./TMath::Pi(),
3981 ((TH3D *)(fRejectedCutList->At(5)))->Fill(tpcTrack->Eta(),
3982 tpcTrack->Phi()*180./TMath::Pi(),
3984 ((TH3D *)(fRejectedCutList->At(9)))->Fill(tpcTrack->Eta(),
3985 tpcTrack->Phi()*180./TMath::Pi(),
3987 if(fProtonAnalysisBase->GetEtaMode())
3988 ((TH2D *)(fQA2DList->At(5)))->Fill(tpcTrack->Eta(),gPt);
3990 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3995 }//rejected primary particles
3996 else if(label > stack->GetNprimary()) {
3997 if(track->Charge() > 0) {
3998 ((TH3D *)(fRejectedCutList->At(2)))->Fill(tpcTrack->Eta(),
3999 tpcTrack->Phi()*180./TMath::Pi(),
4001 ((TH3D *)(fRejectedCutList->At(6)))->Fill(tpcTrack->Eta(),
4002 tpcTrack->Phi()*180./TMath::Pi(),
4004 ((TH3D *)(fRejectedCutList->At(10)))->Fill(tpcTrack->Eta(),
4005 tpcTrack->Phi()*180./TMath::Pi(),
4007 if(fProtonAnalysisBase->GetEtaMode())
4008 ((TH2D *)(fQA2DList->At(3)))->Fill(tpcTrack->Eta(),gPt);
4010 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4015 else if(track->Charge() < 0) {
4016 ((TH3D *)(fRejectedCutList->At(3)))->Fill(tpcTrack->Eta(),
4017 tpcTrack->Phi()*180./TMath::Pi(),
4019 ((TH3D *)(fRejectedCutList->At(7)))->Fill(tpcTrack->Eta(),
4020 tpcTrack->Phi()*180./TMath::Pi(),
4022 ((TH3D *)(fRejectedCutList->At(11)))->Fill(tpcTrack->Eta(),
4023 tpcTrack->Phi()*180./TMath::Pi(),
4026 if(fProtonAnalysisBase->GetEtaMode())
4027 ((TH2D *)(fQA2DList->At(7)))->Fill(tpcTrack->Eta(),gPt);
4029 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4034 }//rejected secondary particles
4035 }//rejected - track cuts
4042 track->GetImpactParameters(dcaXY,dcaZ);
4045 if(fProtonAnalysisBase->IsProton(track)) {
4046 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
4048 FillQA(stack,esd,vertex,track);
4049 if(fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
4050 if(label <= stack->GetNprimary()) {
4051 if(track->Charge() > 0) {
4052 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4053 if(track->HasPointOnITSLayer(iLayer))
4054 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
4056 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
4057 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
4058 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
4059 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
4060 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
4061 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
4062 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
4063 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
4064 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
4065 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
4066 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(track->Eta(),
4067 track->Phi()*180./TMath::Pi(),
4069 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(track->Eta(),
4070 track->Phi()*180./TMath::Pi(),
4072 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(track->Eta(),
4073 track->Phi()*180./TMath::Pi(),
4075 ((TH1F *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
4077 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
4078 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
4079 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
4080 if(fProtonAnalysisBase->GetEtaMode())
4081 ((TH2D *)(fQA2DList->At(0)))->Fill(track->Eta(),gPt);
4083 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4088 else if(track->Charge() < 0) {
4089 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4090 if(track->HasPointOnITSLayer(iLayer))
4091 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
4093 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
4094 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
4095 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
4096 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
4097 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
4098 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
4099 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
4100 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
4101 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
4102 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
4103 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(track->Eta(),
4104 track->Phi()*180./TMath::Pi(),
4106 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(track->Eta(),
4107 track->Phi()*180./TMath::Pi(),
4109 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(track->Eta(),
4110 track->Phi()*180./TMath::Pi(),
4112 ((TH1F *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
4114 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
4115 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
4116 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
4117 if(fProtonAnalysisBase->GetEtaMode())
4118 ((TH2D *)(fQA2DList->At(4)))->Fill(track->Eta(),gPt);
4120 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4125 }//primary particles
4126 else if(label > stack->GetNprimary()) {
4127 Int_t lPartMother = -1;
4128 Int_t motherPDGCode = -1;
4130 lPartMother = particle->GetFirstMother();
4131 TParticle *motherParticle = stack->Particle(lPartMother);
4132 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
4135 if(fMCProcessIdFlag)
4136 if(particle->GetUniqueID() != fMCProcessId) continue;
4137 if(fMotherParticlePDGCodeFlag)
4138 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4140 if(track->Charge() > 0) {
4141 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4142 if(track->HasPointOnITSLayer(iLayer))
4143 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
4145 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
4146 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
4147 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
4148 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
4149 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
4150 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
4151 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
4152 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
4153 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
4154 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
4155 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(track->Eta(),
4156 track->Phi()*180./TMath::Pi(),
4158 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(track->Eta(),
4159 track->Phi()*180./TMath::Pi(),
4161 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(track->Eta(),
4162 track->Phi()*180./TMath::Pi(),
4164 ((TH1F *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
4166 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
4167 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
4168 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
4169 if(fProtonAnalysisBase->GetEtaMode())
4170 ((TH2D *)(fQA2DList->At(2)))->Fill(track->Eta(),gPt);
4172 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4176 if(fProtonAnalysisBase->GetEtaMode())
4177 ((TH3F *)(fQA2DList->At(10)))->Fill(track->Eta(),gPt,
4178 ConvertPDGToInt(motherPDGCode));
4180 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4184 ConvertPDGToInt(motherPDGCode));
4186 else if(track->Charge() < 0) {
4187 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4188 if(track->HasPointOnITSLayer(iLayer))
4189 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
4191 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
4192 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
4193 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
4194 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
4195 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
4196 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
4197 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
4198 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
4199 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
4200 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
4201 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(track->Eta(),
4202 track->Phi()*180./TMath::Pi(),
4204 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(track->Eta(),
4205 track->Phi()*180./TMath::Pi(),
4207 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(track->Eta(),
4208 track->Phi()*180./TMath::Pi(),
4210 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
4212 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
4213 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
4214 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
4215 if(fProtonAnalysisBase->GetEtaMode())
4216 ((TH2D *)(fQA2DList->At(6)))->Fill(track->Eta(),gPt);
4218 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4222 if(fProtonAnalysisBase->GetEtaMode())
4223 ((TH3F *)(fQA2DList->At(11)))->Fill(track->Eta(),gPt,
4224 ConvertPDGToInt(motherPDGCode));
4226 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4230 ConvertPDGToInt(motherPDGCode));
4232 }//secondary particles
4233 }//accepted - track cuts
4234 else if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
4235 if(label <= stack->GetNprimary()) {
4236 if(track->Charge() > 0) {
4237 ((TH3D *)(fRejectedCutList->At(0)))->Fill(track->Eta(),
4238 track->Phi()*180./TMath::Pi(),
4240 ((TH3D *)(fRejectedCutList->At(4)))->Fill(track->Eta(),
4241 track->Phi()*180./TMath::Pi(),
4243 ((TH3D *)(fRejectedCutList->At(8)))->Fill(track->Eta(),
4244 track->Phi()*180./TMath::Pi(),
4246 if(fProtonAnalysisBase->GetEtaMode())
4247 ((TH2D *)(fQA2DList->At(1)))->Fill(track->Eta(),gPt);
4249 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4254 else if(track->Charge() < 0) {
4255 ((TH3D *)(fRejectedCutList->At(1)))->Fill(track->Eta(),
4256 track->Phi()*180./TMath::Pi(),
4258 ((TH3D *)(fRejectedCutList->At(5)))->Fill(track->Eta(),
4259 track->Phi()*180./TMath::Pi(),
4261 ((TH3D *)(fRejectedCutList->At(9)))->Fill(track->Eta(),
4262 track->Phi()*180./TMath::Pi(),
4265 if(fProtonAnalysisBase->GetEtaMode())
4266 ((TH2D *)(fQA2DList->At(5)))->Fill(track->Eta(),gPt);
4268 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4273 }//primary particles
4274 else if(label > stack->GetNprimary()) {
4275 if(track->Charge() > 0) {
4276 ((TH3D *)(fRejectedCutList->At(2)))->Fill(track->Eta(),
4277 track->Phi()*180./TMath::Pi(),
4279 ((TH3D *)(fRejectedCutList->At(6)))->Fill(track->Eta(),
4280 track->Phi()*180./TMath::Pi(),
4282 ((TH3D *)(fRejectedCutList->At(10)))->Fill(track->Eta(),
4283 track->Phi()*180./TMath::Pi(),
4285 if(fProtonAnalysisBase->GetEtaMode())
4286 ((TH2D *)(fQA2DList->At(3)))->Fill(track->Eta(),gPt);
4288 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4293 else if(track->Charge() < 0) {
4294 ((TH3D *)(fRejectedCutList->At(3)))->Fill(track->Eta(),
4295 track->Phi()*180./TMath::Pi(),
4297 ((TH3D *)(fRejectedCutList->At(7)))->Fill(track->Eta(),
4298 track->Phi()*180./TMath::Pi(),
4300 ((TH3D *)(fRejectedCutList->At(11)))->Fill(track->Eta(),
4301 track->Phi()*180./TMath::Pi(),
4303 if(fProtonAnalysisBase->GetEtaMode())
4304 ((TH2D *)(fQA2DList->At(7)))->Fill(track->Eta(),gPt);
4306 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4311 }//secondary particles
4312 }//rejected - track cuts
4314 }//combined tracking
4319 //____________________________________________________________________//
4320 void AliProtonQAAnalysis::InitMCAnalysis() {
4321 //MC analysis - 3D histograms: y-pT-pdg
4322 fPDGList = new TList();
4323 TH3F *gHistYPtPDGProtons = new TH3F("gHistYPtPDGProtons",
4324 ";;P_{T} [GeV/c];PDG",
4325 fNBinsY,fMinY,fMaxY,
4326 fNBinsPt,fMinPt,fMaxPt,
4328 if(fProtonAnalysisBase->GetEtaMode())
4329 gHistYPtPDGProtons->GetXaxis()->SetTitle("#eta");
4331 gHistYPtPDGProtons->GetXaxis()->SetTitle("y");
4332 fPDGList->Add(gHistYPtPDGProtons);
4333 TH3F *gHistYPtPDGAntiProtons = new TH3F("gHistYPtPDGAntiProtons",
4334 ";;P_{T} [GeV/c];PDG",
4335 fNBinsY,fMinY,fMaxY,
4336 fNBinsPt,fMinPt,fMaxPt,
4338 if(fProtonAnalysisBase->GetEtaMode())
4339 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("#eta");
4341 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("y");
4342 fPDGList->Add(gHistYPtPDGAntiProtons);
4345 fMCProcessesList = new TList();
4346 TH1F *gHistProtonsFromKLProcess = new TH1F("gHistProtonsFromKLProcess","",51,-0.5,50.5);
4347 fMCProcessesList->Add(gHistProtonsFromKLProcess);
4348 TH1F *gHistProtonsFromPionProcess = new TH1F("gHistProtonsFromPionProcess","",51,-0.5,50.5);
4349 fMCProcessesList->Add(gHistProtonsFromPionProcess);
4350 TH1F *gHistProtonsFromKSProcess = new TH1F("gHistProtonsFromKSProcess","",51,-0.5,50.5);
4351 fMCProcessesList->Add(gHistProtonsFromKSProcess);
4352 TH1F *gHistProtonsFromKaonProcess = new TH1F("gHistProtonsFromKaonProcess","",51,-0.5,50.5);
4353 fMCProcessesList->Add(gHistProtonsFromKaonProcess);
4354 TH1F *gHistProtonsFromNeutronProcess = new TH1F("gHistProtonsFromNeutronProcess","",51,-0.5,50.5);
4355 fMCProcessesList->Add(gHistProtonsFromNeutronProcess);
4356 TH1F *gHistProtonsFromProtonProcess = new TH1F("gHistProtonsFromProtonProcess","",51,-0.5,50.5);
4357 fMCProcessesList->Add(gHistProtonsFromProtonProcess);
4358 TH1F *gHistProtonsFromSigmaMinusProcess = new TH1F("gHistProtonsFromSigmaMinusProcess","",51,-0.5,50.5);
4359 fMCProcessesList->Add(gHistProtonsFromSigmaMinusProcess);
4360 TH1F *gHistProtonsFromLambda0Process = new TH1F("gHistProtonsFromLambda0Process","",51,-0.5,50.5);
4361 fMCProcessesList->Add(gHistProtonsFromLambda0Process);
4362 TH1F *gHistProtonsFromSigmaPlusProcess = new TH1F("gHistProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
4363 fMCProcessesList->Add(gHistProtonsFromSigmaPlusProcess);
4364 TH1F *gHistProtonsFromXiMinusProcess = new TH1F("gHistProtonsFromXiMinusProcess","",51,-0.5,50.5);
4365 fMCProcessesList->Add(gHistProtonsFromXiMinusProcess);
4366 TH1F *gHistProtonsFromXi0Process = new TH1F("gHistProtonsFromXi0Process","",51,-0.5,50.5);
4367 fMCProcessesList->Add(gHistProtonsFromXi0Process);
4368 TH1F *gHistProtonsFromOmegaProcess = new TH1F("gHistProtonsFromOmegaProcess","",51,-0.5,50.5);
4369 fMCProcessesList->Add(gHistProtonsFromOmegaProcess);
4371 TH1F *gHistAntiProtonsFromKLProcess = new TH1F("gHistAntiProtonsFromKLProcess","",51,-0.5,50.5);
4372 fMCProcessesList->Add(gHistAntiProtonsFromKLProcess);
4373 TH1F *gHistAntiProtonsFromPionProcess = new TH1F("gHistAntiProtonsFromPionProcess","",51,-0.5,50.5);
4374 fMCProcessesList->Add(gHistAntiProtonsFromPionProcess);
4375 TH1F *gHistAntiProtonsFromKSProcess = new TH1F("gHistAntiProtonsFromKSProcess","",51,-0.5,50.5);
4376 fMCProcessesList->Add(gHistAntiProtonsFromKSProcess);
4377 TH1F *gHistAntiProtonsFromKaonProcess = new TH1F("gHistAntiProtonsFromKaonProcess","",51,-0.5,50.5);
4378 fMCProcessesList->Add(gHistAntiProtonsFromKaonProcess);
4379 TH1F *gHistAntiProtonsFromNeutronProcess = new TH1F("gHistAntiProtonsFromNeutronProcess","",51,-0.5,50.5);
4380 fMCProcessesList->Add(gHistAntiProtonsFromNeutronProcess);
4381 TH1F *gHistAntiProtonsFromProtonProcess = new TH1F("gHistAntiProtonsFromProtonProcess","",51,-0.5,50.5);
4382 fMCProcessesList->Add(gHistAntiProtonsFromProtonProcess);
4383 TH1F *gHistAntiProtonsFromLambda0Process = new TH1F("gHistAntiProtonsFromLambda0Process","",51,-0.5,50.5);
4384 fMCProcessesList->Add(gHistAntiProtonsFromLambda0Process);
4385 TH1F *gHistAntiProtonsFromSigmaPlusProcess = new TH1F("gHistAntiProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
4386 fMCProcessesList->Add(gHistAntiProtonsFromSigmaPlusProcess);
4389 //____________________________________________________________________//
4390 void AliProtonQAAnalysis::RunMCAnalysis(AliStack* const stack) {
4391 //Main analysis part - MC
4392 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
4393 TParticle *particle = stack->Particle(iParticle);
4394 if(!particle) continue;
4396 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
4397 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
4398 if(fProtonAnalysisBase->GetEtaMode()) {
4399 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
4402 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
4405 Int_t pdgcode = particle->GetPdgCode();
4406 if(pdgcode == 2212) {
4407 if(iParticle <= stack->GetNprimary()) {
4408 if(fProtonAnalysisBase->GetEtaMode())
4409 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),particle->Pt(),0);
4411 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4416 else if(iParticle > stack->GetNprimary()) {
4417 Int_t lPartMother = particle->GetFirstMother();
4418 TParticle *motherParticle = stack->Particle(lPartMother);
4419 if(!motherParticle) continue;
4420 Int_t motherPDGCode = motherParticle->GetPdgCode();
4421 if(fMCProcessIdFlag)
4422 if(particle->GetUniqueID() != fMCProcessId) continue;
4423 if(fMotherParticlePDGCodeFlag)
4424 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4426 if(fProtonAnalysisBase->GetEtaMode())
4427 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),
4429 ConvertPDGToInt(motherParticle->GetPdgCode()));
4431 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4435 ConvertPDGToInt(motherParticle->GetPdgCode()));
4437 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
4438 ((TH1F *)(fMCProcessesList->At(0)))->Fill(particle->GetUniqueID());
4439 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
4440 ((TH1F *)(fMCProcessesList->At(1)))->Fill(particle->GetUniqueID());
4441 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
4442 ((TH1F *)(fMCProcessesList->At(2)))->Fill(particle->GetUniqueID());
4443 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
4444 ((TH1F *)(fMCProcessesList->At(3)))->Fill(particle->GetUniqueID());
4445 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
4446 ((TH1F *)(fMCProcessesList->At(4)))->Fill(particle->GetUniqueID());
4447 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
4448 ((TH1F *)(fMCProcessesList->At(5)))->Fill(particle->GetUniqueID());
4449 if(TMath::Abs(motherParticle->GetPdgCode()) == 3112)
4450 ((TH1F *)(fMCProcessesList->At(6)))->Fill(particle->GetUniqueID());
4451 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
4452 ((TH1F *)(fMCProcessesList->At(7)))->Fill(particle->GetUniqueID());
4453 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
4454 ((TH1F *)(fMCProcessesList->At(8)))->Fill(particle->GetUniqueID());
4455 if(TMath::Abs(motherParticle->GetPdgCode()) == 3312)
4456 ((TH1F *)(fMCProcessesList->At(9)))->Fill(particle->GetUniqueID());
4457 if(TMath::Abs(motherParticle->GetPdgCode()) == 3322)
4458 ((TH1F *)(fMCProcessesList->At(10)))->Fill(particle->GetUniqueID());
4459 if(TMath::Abs(motherParticle->GetPdgCode()) == 3334)
4460 ((TH1F *)(fMCProcessesList->At(11)))->Fill(particle->GetUniqueID());
4462 }//pdgcode of proton
4464 if(pdgcode == -2212) {
4465 if(iParticle <= stack->GetNprimary()) {
4466 if(fProtonAnalysisBase->GetEtaMode())
4467 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),particle->Pt(),0);
4469 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4474 else if(iParticle > stack->GetNprimary()) {
4475 Int_t lPartMother = particle->GetFirstMother();
4476 TParticle *motherParticle = stack->Particle(lPartMother);
4477 if(!motherParticle) continue;
4478 Int_t motherPDGCode = motherParticle->GetPdgCode();
4479 if(fMCProcessIdFlag)
4480 if(particle->GetUniqueID() != fMCProcessId) continue;
4481 if(fMotherParticlePDGCodeFlag)
4482 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4484 if(fProtonAnalysisBase->GetEtaMode())
4485 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),
4487 ConvertPDGToInt(motherParticle->GetPdgCode()));
4489 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4493 ConvertPDGToInt(motherParticle->GetPdgCode()));
4496 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
4497 ((TH1F *)(fMCProcessesList->At(12)))->Fill(particle->GetUniqueID());
4498 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
4499 ((TH1F *)(fMCProcessesList->At(13)))->Fill(particle->GetUniqueID());
4500 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
4501 ((TH1F *)(fMCProcessesList->At(14)))->Fill(particle->GetUniqueID());
4502 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
4503 ((TH1F *)(fMCProcessesList->At(15)))->Fill(particle->GetUniqueID());
4504 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
4505 ((TH1F *)(fMCProcessesList->At(16)))->Fill(particle->GetUniqueID());
4506 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
4507 ((TH1F *)(fMCProcessesList->At(17)))->Fill(particle->GetUniqueID());
4508 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
4509 ((TH1F *)(fMCProcessesList->At(18)))->Fill(particle->GetUniqueID());
4510 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
4511 ((TH1F *)(fMCProcessesList->At(19)))->Fill(particle->GetUniqueID());
4512 }//secondary antiproton
4513 }//pdgcode of antiproton
4518 //____________________________________________________________________//
4519 Int_t AliProtonQAAnalysis::ConvertPDGToInt(Int_t pdgCode) const {
4520 //Converts the pdg code to an int based on the following scheme:
4521 //1: PDG code: 130 - Name: K_L0
4522 //2: PDG code: 211 - Name: pi+
4523 //3: PDG code: 310 - Name: K_S0
4524 //4: PDG code: 321 - Name: K+
4525 //5: PDG code: 2112 - Name: neutron
4526 //6: PDG code: 2212 - Name: proton
4527 //7: PDG code: 3112 - Name: Sigma-
4528 //8: PDG code: 3122 - Name: Lambda0
4529 //9: PDG code: 3222 - Name: Sigma+
4530 //10: PDG code: 3312 - Name: Xi-
4531 //11: PDG code: 3322 - Name: Xi0
4532 //12: PDG code: 3334 - Name: Omega-
4534 switch (TMath::Abs(pdgCode)) {