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 Int_t nGoodTracks = esd->GetNumberOfTracks();
3183 TArrayI labelArray(nGoodTracks);
3184 Int_t labelCounter = 0;
3185 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3186 AliESDtrack* track = esd->GetTrack(iTracks);
3187 if(!track) continue;
3190 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3191 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3192 if(!tpcTrack) continue;
3195 Int_t label = TMath::Abs(track->GetLabel());
3196 if(IsLabelUsed(labelArray,label)) continue;
3197 labelArray.AddAt(label,labelCounter);
3200 TParticle *particle = stack->Particle(label);
3201 if(!particle) continue;
3202 Int_t pdgcode = particle->GetPdgCode();
3204 Int_t nTPCpoints = track->GetTPCsignalN();
3206 if(TMath::Abs(pdgcode) == 2212) {
3207 if(fProtonAnalysisBase->GetEtaMode())
3208 ((TH3D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
3209 particle->Pt(),nTPCpoints);
3211 ((TH3D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3215 if(fProtonAnalysisBase->IsProton(track)) {
3216 if(fProtonAnalysisBase->GetEtaMode())
3217 ((TH3D *)(fEfficiencyList->At(14)))->Fill(particle->Eta(),
3218 particle->Pt(),nTPCpoints);
3219 else ((TH3D *)(fEfficiencyList->At(14)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3220 if(TMath::Abs(pdgcode) == 2212) {
3221 if(fProtonAnalysisBase->GetEtaMode())
3222 ((TH3D *)(fEfficiencyList->At(13)))->Fill(particle->Eta(),
3223 particle->Pt(),nTPCpoints);
3225 ((TH3D *)(fEfficiencyList->At(13)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3226 }//properly identified as proton
3228 if(fProtonAnalysisBase->GetEtaMode())
3229 ((TH3D *)(fEfficiencyList->At(15)))->Fill(particle->Eta(),
3230 particle->Pt(),nTPCpoints);
3232 ((TH3D *)(fEfficiencyList->At(15)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3234 }//identified as proton
3239 //____________________________________________________________________//
3240 void AliProtonQAAnalysis::RunEfficiencyAnalysis(AliStack *const stack,
3242 const AliESDVertex *vertex) {
3243 //Runs the efficiency code
3245 Int_t nMCProtons = 0, nESDProtons = 0;
3246 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
3247 TParticle *particle = stack->Particle(iParticle);
3248 if(!particle) continue;
3250 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3251 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3252 if(fProtonAnalysisBase->GetEtaMode()) {
3253 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3256 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3258 Int_t pdgcode = particle->GetPdgCode();
3259 if(TMath::Abs(pdgcode) != 2212) continue;
3261 if(iParticle <= stack->GetNprimary()) {
3262 if(pdgcode == 2212) {
3264 if(fProtonAnalysisBase->GetEtaMode())
3265 ((TH2D *)(fEfficiencyList->At(0)))->Fill(particle->Eta(),
3268 ((TH2D *)(fEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3273 if(pdgcode == -2212) {
3274 if(fProtonAnalysisBase->GetEtaMode())
3275 ((TH2D *)(fEfficiencyList->At(1)))->Fill(particle->Eta(),
3278 ((TH2D *)(fEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3286 Int_t lPartMother = -1;
3287 Int_t motherPDGCode = -1;
3288 lPartMother = particle->GetFirstMother();
3289 TParticle *motherParticle = stack->Particle(lPartMother);
3290 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3292 if(pdgcode == 2212) {
3293 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3294 if(fProtonAnalysisBase->GetEtaMode())
3295 ((TH2D *)(fEfficiencyList->At(2)))->Fill(particle->Eta(),
3298 ((TH2D *)(fEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3303 if((particle->GetUniqueID() == 13)) {
3304 if(fProtonAnalysisBase->GetEtaMode())
3305 ((TH2D *)(fEfficiencyList->At(4)))->Fill(particle->Eta(),
3308 ((TH2D *)(fEfficiencyList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3312 }//hadronic interactions
3314 if(pdgcode == -2212) {
3315 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3316 if(fProtonAnalysisBase->GetEtaMode())
3317 ((TH2D *)(fEfficiencyList->At(3)))->Fill(particle->Eta(),
3320 ((TH2D *)(fEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3325 if((particle->GetUniqueID() == 13)) {
3326 if(fProtonAnalysisBase->GetEtaMode())
3327 ((TH2D *)(fEfficiencyList->At(5)))->Fill(particle->Eta(),
3330 ((TH2D *)(fEfficiencyList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3334 }//hadronic interactions
3341 Int_t nGoodTracks = esd->GetNumberOfTracks();
3342 TArrayI labelArray(nGoodTracks);
3343 Int_t labelCounter = 0;
3344 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3345 AliESDtrack* track = esd->GetTrack(iTracks);
3346 if(!track) continue;
3348 Int_t label = TMath::Abs(track->GetLabel());
3349 if(IsLabelUsed(labelArray,label)) continue;
3350 labelArray.AddAt(label,labelCounter);
3353 TParticle *particle = stack->Particle(label);
3354 if(!particle) continue;
3355 Int_t pdgcode = particle->GetPdgCode();
3356 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3358 Double_t gPt = 0.0, gP = 0.0;
3361 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3362 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3363 if(!tpcTrack) continue;
3364 gPt = tpcTrack->Pt();
3367 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3368 if(fProtonAnalysisBase->GetEtaMode()) {
3369 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3372 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3374 if(fUseCutsInEfficiency)
3375 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3377 //reconstructed primary (anti)protons
3378 if(pdgcode == 2212) {
3379 if(label <= stack->GetNprimary()) {
3381 if(fProtonAnalysisBase->GetEtaMode())
3382 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3385 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3390 if(label > stack->GetNprimary()) {
3391 Int_t lPartMother = -1;
3392 Int_t motherPDGCode = -1;
3393 lPartMother = particle->GetFirstMother();
3394 TParticle *motherParticle = stack->Particle(lPartMother);
3395 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3397 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3398 if(fProtonAnalysisBase->GetEtaMode())
3399 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3402 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3407 if((particle->GetUniqueID() == 13)) {
3408 if(fProtonAnalysisBase->GetEtaMode())
3409 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3412 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3416 }//hadronic interactions
3419 if(pdgcode == -2212) {
3420 if(label <= stack->GetNprimary()) {
3421 if(fProtonAnalysisBase->GetEtaMode())
3422 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3425 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3430 if(label > stack->GetNprimary()) {
3431 Int_t lPartMother = -1;
3432 Int_t motherPDGCode = -1;
3433 lPartMother = particle->GetFirstMother();
3434 TParticle *motherParticle = stack->Particle(lPartMother);
3435 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3437 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3438 if(fProtonAnalysisBase->GetEtaMode())
3439 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3442 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3447 if((particle->GetUniqueID() == 13)) {
3448 if(fProtonAnalysisBase->GetEtaMode())
3449 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3452 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3456 }//hadronic interactions
3458 }//initial antiprotons
3461 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3462 if(fProtonAnalysisBase->GetEtaMode()) {
3463 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3466 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3469 if(fUseCutsInEfficiency)
3470 if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) continue;
3472 //reconstructed primary (anti)protons
3473 if(pdgcode == 2212) {
3474 if(label <= stack->GetNprimary()) {
3476 if(fProtonAnalysisBase->GetEtaMode())
3477 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3480 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3485 if(label > stack->GetNprimary()) {
3486 Int_t lPartMother = -1;
3487 Int_t motherPDGCode = -1;
3488 lPartMother = particle->GetFirstMother();
3489 TParticle *motherParticle = stack->Particle(lPartMother);
3490 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3492 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3493 if(fProtonAnalysisBase->GetEtaMode())
3494 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3497 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3502 if((particle->GetUniqueID() == 13)) {
3503 if(fProtonAnalysisBase->GetEtaMode())
3504 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3507 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3511 }//hadronic interactions
3514 if(pdgcode == -2212) {
3515 if(fProtonAnalysisBase->GetEtaMode())
3516 ((TH2D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
3519 ((TH2D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3523 if(label <= stack->GetNprimary()) {
3524 if(fProtonAnalysisBase->GetEtaMode())
3525 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3528 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3533 if(label > stack->GetNprimary()) {
3534 Int_t lPartMother = -1;
3535 Int_t motherPDGCode = -1;
3536 lPartMother = particle->GetFirstMother();
3537 TParticle *motherParticle = stack->Particle(lPartMother);
3538 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3540 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
3541 if(fProtonAnalysisBase->GetEtaMode())
3542 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3545 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3550 if((particle->GetUniqueID() == 13)) {
3551 if(fProtonAnalysisBase->GetEtaMode())
3552 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3555 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3559 }//hadronic interactions
3561 }//initial antiprotons
3565 //Printf("MC protons: %d - ESD protons: %d",nMCProtons,nESDProtons);
3568 //____________________________________________________________________//
3569 Bool_t AliProtonQAAnalysis::IsLabelUsed(TArrayI labelArray,
3571 //Checks if the label is used already
3572 Bool_t status = kFALSE;
3573 for(Int_t i = 0; i < labelArray.GetSize(); i++) {
3574 if(labelArray.At(i) == label)
3581 //____________________________________________________________________//
3582 void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
3583 AliStack *const stack,
3584 AliESDEvent *const esd) {
3585 //Runs the vertex QA
3587 TArrayF primaryVertex(3);
3588 header->PrimaryVertex(primaryVertex);
3590 //Int_t nPrimaries = stack->GetNprimary();
3591 ((TH1F *)(fQAVertexList->At(0)))->Fill(primaryVertex[2]);
3594 const AliESDVertex *vertexTPC = esd->GetPrimaryVertexTPC();
3596 Printf("ERROR: Could not retrieve the TPC vertex");
3599 if(vertexTPC->GetNContributors() > 0) {
3600 ((TH1F *)(fQAVertexList->At(1)))->Fill(primaryVertex[2]);
3601 ((TH2F *)(fQAVertexList->At(2)))->Fill(vertexTPC->GetXv(),
3602 vertexTPC->GetNContributors());
3603 ((TH2F *)(fQAVertexList->At(3)))->Fill(vertexTPC->GetYv(),
3604 vertexTPC->GetNContributors());
3605 ((TH2F *)(fQAVertexList->At(4)))->Fill(vertexTPC->GetZv(),
3606 vertexTPC->GetNContributors());
3607 ((TH1F *)(fQAVertexList->At(5)))->Fill((vertexTPC->GetXv()-primaryVertex[0])*10000.);
3608 ((TH1F *)(fQAVertexList->At(6)))->Fill((vertexTPC->GetYv()-primaryVertex[1])*10000.);
3609 ((TH1F *)(fQAVertexList->At(7)))->Fill((vertexTPC->GetZv()-primaryVertex[2])*10000.);
3610 ((TH1F *)(fQAVertexList->At(8)))->Fill(vertexTPC->GetXRes()*10000.);
3611 ((TH1F *)(fQAVertexList->At(9)))->Fill(vertexTPC->GetYRes()*10000.);
3612 ((TH1F *)(fQAVertexList->At(10)))->Fill(vertexTPC->GetZRes()*10000.);
3616 const AliESDVertex *vertexSPD = esd->GetPrimaryVertexSPD();
3618 Printf("ERROR: Could not retrieve the SPD vertex");
3621 if(vertexSPD->GetNContributors() > 0) {
3622 ((TH1F *)(fQAVertexList->At(11)))->Fill(primaryVertex[2]);
3623 ((TH2F *)(fQAVertexList->At(12)))->Fill(vertexSPD->GetXv(),
3624 vertexSPD->GetNContributors());
3625 ((TH2F *)(fQAVertexList->At(13)))->Fill(vertexSPD->GetYv(),
3626 vertexSPD->GetNContributors());
3627 ((TH2F *)(fQAVertexList->At(14)))->Fill(vertexSPD->GetZv(),
3628 vertexSPD->GetNContributors());
3629 ((TH1F *)(fQAVertexList->At(15)))->Fill((vertexSPD->GetXv()-primaryVertex[0])*10000.);
3630 ((TH1F *)(fQAVertexList->At(16)))->Fill((vertexSPD->GetYv()-primaryVertex[1])*10000.);
3631 ((TH1F *)(fQAVertexList->At(17)))->Fill((vertexSPD->GetZv()-primaryVertex[2])*10000.);
3632 ((TH1F *)(fQAVertexList->At(18)))->Fill(vertexSPD->GetXRes()*10000.);
3633 ((TH1F *)(fQAVertexList->At(19)))->Fill(vertexSPD->GetYRes()*10000.);
3634 ((TH1F *)(fQAVertexList->At(20)))->Fill(vertexSPD->GetZRes()*10000.);
3638 const AliESDVertex *vertexTracks = esd->GetPrimaryVertex();
3640 Printf("ERROR: Could not retrieve the Tracks vertex");
3643 if(vertexTracks->GetNContributors() > 0) {
3644 ((TH1F *)(fQAVertexList->At(21)))->Fill(primaryVertex[2]);
3645 ((TH2F *)(fQAVertexList->At(22)))->Fill(vertexTracks->GetXv(),
3646 vertexTracks->GetNContributors());
3647 ((TH2F *)(fQAVertexList->At(23)))->Fill(vertexTracks->GetYv(),
3648 vertexTracks->GetNContributors());
3649 ((TH2F *)(fQAVertexList->At(24)))->Fill(vertexTracks->GetZv(),
3650 vertexTracks->GetNContributors());
3651 ((TH1F *)(fQAVertexList->At(25)))->Fill((vertexTracks->GetXv()-primaryVertex[0])*10000.);
3652 ((TH1F *)(fQAVertexList->At(26)))->Fill((vertexTracks->GetYv()-primaryVertex[1])*10000.);
3653 ((TH1F *)(fQAVertexList->At(27)))->Fill((vertexTracks->GetZv()-primaryVertex[2])*10000.);
3654 ((TH1F *)(fQAVertexList->At(28)))->Fill(vertexTracks->GetXRes()*10000.);
3655 ((TH1F *)(fQAVertexList->At(29)))->Fill(vertexTracks->GetYRes()*10000.);
3656 ((TH1F *)(fQAVertexList->At(30)))->Fill(vertexTracks->GetZRes()*10000.);
3661 //____________________________________________________________________//
3662 void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
3664 const AliESDVertex *vertex) {
3667 for(Int_t iParticle = 0; iParticle < stack->GetNprimary(); iParticle++) {
3668 TParticle *particle = stack->Particle(iParticle);
3669 if(!particle) continue;
3671 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3672 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
3673 if(fProtonAnalysisBase->GetEtaMode()) {
3674 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
3677 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
3679 Int_t pdgcode = particle->GetPdgCode();
3680 if(pdgcode == 2212) {
3681 if(fProtonAnalysisBase->GetEtaMode())
3682 ((TH2D *)(fQA2DList->At(8)))->Fill(particle->Eta(),
3685 ((TH2D *)(fQA2DList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3690 if(pdgcode == -2212) {
3691 if(fProtonAnalysisBase->GetEtaMode())
3692 ((TH2D *)(fQA2DList->At(9)))->Fill(particle->Eta(),
3695 ((TH2D *)(fQA2DList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3703 Int_t nGoodTracks = esd->GetNumberOfTracks();
3704 TArrayI labelArray(nGoodTracks);
3705 Int_t labelCounter = 0;
3706 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3707 AliESDtrack* track = esd->GetTrack(iTracks);
3708 if(!track) continue;
3710 Int_t label = TMath::Abs(track->GetLabel());
3711 if(IsLabelUsed(labelArray,label)) continue;
3712 labelArray.AddAt(label,labelCounter);
3715 TParticle *particle = stack->Particle(label);
3716 if(!particle) continue;
3717 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3719 AliESDtrack trackTPC;
3721 //in case it's a TPC only track relate it to the proper vertex
3722 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)&&(!fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3723 //if((fUseTPCOnly)&&(!fUseHybridTPC)) {
3724 Float_t p[2],cov[3];
3725 track->GetImpactParametersTPC(p,cov);
3726 if (p[0]==0 && p[1]==0)
3727 track->RelateToVertexTPC(((AliESDEvent*)esd)->GetPrimaryVertexTPC(),esd->GetMagneticField(),kVeryBig);
3728 if (!track->FillTPCOnlyTrack(trackTPC)) {
3734 Double_t gPt = 0.0, gP = 0.0;
3735 //Double_t probability[5];
3736 Float_t dcaXY = 0.0, dcaZ = 0.0;
3737 Double_t nSigmaToVertex = fProtonAnalysisBase->GetSigmaToVertex(track);
3739 Int_t nClustersITS = track->GetITSclusters(fIdxInt);
3740 Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
3742 Float_t chi2PerClusterITS = -1;
3743 if (nClustersITS!=0)
3744 chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
3745 Float_t chi2PerClusterTPC = -1;
3746 if (nClustersTPC!=0)
3747 chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
3748 Double_t chi2ConstrainVertex = TMath::Log(track->GetConstrainedChi2());
3749 Double_t extCov[15];
3750 track->GetExternalCovariance(extCov);
3751 Int_t npointsTPCdEdx = track->GetTPCsignalN();
3754 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3755 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3756 if(!tpcTrack) continue;
3757 gPt = tpcTrack->Pt();
3759 if(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)
3760 track->GetImpactParameters(dcaXY,dcaZ);
3761 else track->GetImpactParametersTPC(dcaXY,dcaZ);
3764 if(fProtonAnalysisBase->IsProton(track)) {
3765 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
3767 FillQA(stack,esd,vertex,track);
3768 if(fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
3769 if(label <= stack->GetNprimary()) {
3770 if(track->Charge() > 0) {
3771 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3772 if(track->HasPointOnITSLayer(iLayer))
3773 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
3775 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
3776 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
3777 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
3778 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
3779 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
3780 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
3781 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
3782 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
3783 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
3784 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
3785 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(tpcTrack->Eta(),
3786 tpcTrack->Phi()*180./TMath::Pi(),
3788 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(tpcTrack->Eta(),
3789 tpcTrack->Phi()*180./TMath::Pi(),
3791 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(tpcTrack->Eta(),
3792 tpcTrack->Phi()*180./TMath::Pi(),
3794 ((TH1D *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
3796 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
3797 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
3798 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
3799 if(fProtonAnalysisBase->GetEtaMode())
3800 ((TH2D *)(fQA2DList->At(0)))->Fill(tpcTrack->Eta(),gPt);
3802 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3806 }//accepted primary protons
3807 else if(track->Charge() < 0) {
3808 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3809 if(track->HasPointOnITSLayer(iLayer))
3810 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
3812 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
3813 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
3814 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
3815 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
3816 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
3817 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
3818 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
3819 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
3820 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
3821 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
3822 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(tpcTrack->Eta(),
3823 tpcTrack->Phi()*180./TMath::Pi(),
3825 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(tpcTrack->Eta(),
3826 tpcTrack->Phi()*180./TMath::Pi(),
3828 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(tpcTrack->Eta(),
3829 tpcTrack->Phi()*180./TMath::Pi(),
3831 ((TH1D *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
3833 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
3834 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
3835 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
3836 if(fProtonAnalysisBase->GetEtaMode())
3837 ((TH2D *)(fQA2DList->At(4)))->Fill(tpcTrack->Eta(),gPt);
3839 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3843 }//accepted primary antiprotons
3844 }//accepted primary particles
3845 else if(label > stack->GetNprimary()) {
3846 Int_t lPartMother = -1;
3847 Int_t motherPDGCode = -1;
3849 lPartMother = particle->GetFirstMother();
3850 TParticle *motherParticle = stack->Particle(lPartMother);
3851 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3854 if(fMCProcessIdFlag)
3855 if(particle->GetUniqueID() != fMCProcessId) continue;
3856 if(fMotherParticlePDGCodeFlag)
3857 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
3859 if(track->Charge() > 0) {
3860 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3861 if(track->HasPointOnITSLayer(iLayer))
3862 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
3864 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
3865 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
3866 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
3867 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
3868 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
3869 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
3870 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
3871 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
3872 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
3873 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
3874 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(tpcTrack->Eta(),
3875 tpcTrack->Phi()*180./TMath::Pi(),
3877 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(tpcTrack->Eta(),
3878 tpcTrack->Phi()*180./TMath::Pi(),
3880 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(tpcTrack->Eta(),
3881 tpcTrack->Phi()*180./TMath::Pi(),
3883 ((TH1D *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
3885 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
3886 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
3887 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
3888 if(fProtonAnalysisBase->GetEtaMode())
3889 ((TH2D *)(fQA2DList->At(2)))->Fill(tpcTrack->Eta(),gPt);
3891 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3895 if(fProtonAnalysisBase->GetEtaMode())
3896 ((TH3F *)(fQA2DList->At(10)))->Fill(tpcTrack->Eta(),gPt,
3897 ConvertPDGToInt(motherPDGCode));
3899 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3903 ConvertPDGToInt(motherPDGCode));
3904 }//accepted secondary protons
3905 else if(track->Charge() < 0) {
3906 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
3907 if(track->HasPointOnITSLayer(iLayer))
3908 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
3910 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
3911 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
3912 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
3913 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
3914 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
3915 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
3916 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
3917 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
3918 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
3919 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
3920 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(tpcTrack->Eta(),
3921 tpcTrack->Phi()*180./TMath::Pi(),
3923 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(tpcTrack->Eta(),
3924 tpcTrack->Phi()*180./TMath::Pi(),
3926 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(tpcTrack->Eta(),
3927 tpcTrack->Phi()*180./TMath::Pi(),
3929 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
3931 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
3932 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
3933 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
3934 if(fProtonAnalysisBase->GetEtaMode())
3935 ((TH2D *)(fQA2DList->At(6)))->Fill(tpcTrack->Eta(),gPt);
3937 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3941 if(fProtonAnalysisBase->GetEtaMode())
3942 ((TH3F *)(fQA2DList->At(11)))->Fill(tpcTrack->Eta(),gPt,
3943 ConvertPDGToInt(motherPDGCode));
3945 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3949 ConvertPDGToInt(motherPDGCode));
3950 }//accepted secondary antiprotons
3951 }//accepted secondary particles
3952 }//accepted - track cuts
3954 if(label <= stack->GetNprimary()) {
3955 if(track->Charge() > 0) {
3956 ((TH3D *)(fRejectedCutList->At(0)))->Fill(tpcTrack->Eta(),
3957 tpcTrack->Phi()*180./TMath::Pi(),
3959 ((TH3D *)(fRejectedCutList->At(4)))->Fill(tpcTrack->Eta(),
3960 tpcTrack->Phi()*180./TMath::Pi(),
3962 ((TH3D *)(fRejectedCutList->At(8)))->Fill(tpcTrack->Eta(),
3963 tpcTrack->Phi()*180./TMath::Pi(),
3966 if(fProtonAnalysisBase->GetEtaMode())
3967 ((TH2D *)(fQA2DList->At(1)))->Fill(tpcTrack->Eta(),gPt);
3969 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3974 else if(track->Charge() < 0) {
3975 ((TH3D *)(fRejectedCutList->At(1)))->Fill(tpcTrack->Eta(),
3976 tpcTrack->Phi()*180./TMath::Pi(),
3978 ((TH3D *)(fRejectedCutList->At(5)))->Fill(tpcTrack->Eta(),
3979 tpcTrack->Phi()*180./TMath::Pi(),
3981 ((TH3D *)(fRejectedCutList->At(9)))->Fill(tpcTrack->Eta(),
3982 tpcTrack->Phi()*180./TMath::Pi(),
3984 if(fProtonAnalysisBase->GetEtaMode())
3985 ((TH2D *)(fQA2DList->At(5)))->Fill(tpcTrack->Eta(),gPt);
3987 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
3992 }//rejected primary particles
3993 else if(label > stack->GetNprimary()) {
3994 if(track->Charge() > 0) {
3995 ((TH3D *)(fRejectedCutList->At(2)))->Fill(tpcTrack->Eta(),
3996 tpcTrack->Phi()*180./TMath::Pi(),
3998 ((TH3D *)(fRejectedCutList->At(6)))->Fill(tpcTrack->Eta(),
3999 tpcTrack->Phi()*180./TMath::Pi(),
4001 ((TH3D *)(fRejectedCutList->At(10)))->Fill(tpcTrack->Eta(),
4002 tpcTrack->Phi()*180./TMath::Pi(),
4004 if(fProtonAnalysisBase->GetEtaMode())
4005 ((TH2D *)(fQA2DList->At(3)))->Fill(tpcTrack->Eta(),gPt);
4007 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4012 else if(track->Charge() < 0) {
4013 ((TH3D *)(fRejectedCutList->At(3)))->Fill(tpcTrack->Eta(),
4014 tpcTrack->Phi()*180./TMath::Pi(),
4016 ((TH3D *)(fRejectedCutList->At(7)))->Fill(tpcTrack->Eta(),
4017 tpcTrack->Phi()*180./TMath::Pi(),
4019 ((TH3D *)(fRejectedCutList->At(11)))->Fill(tpcTrack->Eta(),
4020 tpcTrack->Phi()*180./TMath::Pi(),
4023 if(fProtonAnalysisBase->GetEtaMode())
4024 ((TH2D *)(fQA2DList->At(7)))->Fill(tpcTrack->Eta(),gPt);
4026 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4031 }//rejected secondary particles
4032 }//rejected - track cuts
4039 track->GetImpactParameters(dcaXY,dcaZ);
4042 if(fProtonAnalysisBase->IsProton(track)) {
4043 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
4045 FillQA(stack,esd,vertex,track);
4046 if(fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
4047 if(label <= stack->GetNprimary()) {
4048 if(track->Charge() > 0) {
4049 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4050 if(track->HasPointOnITSLayer(iLayer))
4051 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
4053 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
4054 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
4055 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
4056 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
4057 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
4058 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
4059 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
4060 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
4061 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
4062 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
4063 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(track->Eta(),
4064 track->Phi()*180./TMath::Pi(),
4066 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(track->Eta(),
4067 track->Phi()*180./TMath::Pi(),
4069 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(track->Eta(),
4070 track->Phi()*180./TMath::Pi(),
4072 ((TH1F *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
4074 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
4075 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
4076 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
4077 if(fProtonAnalysisBase->GetEtaMode())
4078 ((TH2D *)(fQA2DList->At(0)))->Fill(track->Eta(),gPt);
4080 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4085 else if(track->Charge() < 0) {
4086 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4087 if(track->HasPointOnITSLayer(iLayer))
4088 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
4090 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
4091 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
4092 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
4093 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
4094 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
4095 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
4096 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
4097 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
4098 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
4099 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
4100 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(track->Eta(),
4101 track->Phi()*180./TMath::Pi(),
4103 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(track->Eta(),
4104 track->Phi()*180./TMath::Pi(),
4106 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(track->Eta(),
4107 track->Phi()*180./TMath::Pi(),
4109 ((TH1F *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
4111 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
4112 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
4113 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
4114 if(fProtonAnalysisBase->GetEtaMode())
4115 ((TH2D *)(fQA2DList->At(4)))->Fill(track->Eta(),gPt);
4117 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4122 }//primary particles
4123 else if(label > stack->GetNprimary()) {
4124 Int_t lPartMother = -1;
4125 Int_t motherPDGCode = -1;
4127 lPartMother = particle->GetFirstMother();
4128 TParticle *motherParticle = stack->Particle(lPartMother);
4129 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
4132 if(fMCProcessIdFlag)
4133 if(particle->GetUniqueID() != fMCProcessId) continue;
4134 if(fMotherParticlePDGCodeFlag)
4135 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4137 if(track->Charge() > 0) {
4138 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4139 if(track->HasPointOnITSLayer(iLayer))
4140 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
4142 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
4143 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
4144 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
4145 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
4146 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
4147 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
4148 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
4149 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
4150 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
4151 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
4152 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(track->Eta(),
4153 track->Phi()*180./TMath::Pi(),
4155 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(track->Eta(),
4156 track->Phi()*180./TMath::Pi(),
4158 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(track->Eta(),
4159 track->Phi()*180./TMath::Pi(),
4161 ((TH1F *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
4163 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
4164 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
4165 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
4166 if(fProtonAnalysisBase->GetEtaMode())
4167 ((TH2D *)(fQA2DList->At(2)))->Fill(track->Eta(),gPt);
4169 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4173 if(fProtonAnalysisBase->GetEtaMode())
4174 ((TH3F *)(fQA2DList->At(10)))->Fill(track->Eta(),gPt,
4175 ConvertPDGToInt(motherPDGCode));
4177 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4181 ConvertPDGToInt(motherPDGCode));
4183 else if(track->Charge() < 0) {
4184 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4185 if(track->HasPointOnITSLayer(iLayer))
4186 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
4188 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
4189 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
4190 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
4191 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
4192 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
4193 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
4194 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
4195 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
4196 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
4197 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
4198 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(track->Eta(),
4199 track->Phi()*180./TMath::Pi(),
4201 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(track->Eta(),
4202 track->Phi()*180./TMath::Pi(),
4204 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(track->Eta(),
4205 track->Phi()*180./TMath::Pi(),
4207 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
4209 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
4210 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
4211 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
4212 if(fProtonAnalysisBase->GetEtaMode())
4213 ((TH2D *)(fQA2DList->At(6)))->Fill(track->Eta(),gPt);
4215 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4219 if(fProtonAnalysisBase->GetEtaMode())
4220 ((TH3F *)(fQA2DList->At(11)))->Fill(track->Eta(),gPt,
4221 ConvertPDGToInt(motherPDGCode));
4223 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4227 ConvertPDGToInt(motherPDGCode));
4229 }//secondary particles
4230 }//accepted - track cuts
4231 else if(!fProtonAnalysisBase->IsAccepted(esd,vertex,track)) {
4232 if(label <= stack->GetNprimary()) {
4233 if(track->Charge() > 0) {
4234 ((TH3D *)(fRejectedCutList->At(0)))->Fill(track->Eta(),
4235 track->Phi()*180./TMath::Pi(),
4237 ((TH3D *)(fRejectedCutList->At(4)))->Fill(track->Eta(),
4238 track->Phi()*180./TMath::Pi(),
4240 ((TH3D *)(fRejectedCutList->At(8)))->Fill(track->Eta(),
4241 track->Phi()*180./TMath::Pi(),
4243 if(fProtonAnalysisBase->GetEtaMode())
4244 ((TH2D *)(fQA2DList->At(1)))->Fill(track->Eta(),gPt);
4246 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4251 else if(track->Charge() < 0) {
4252 ((TH3D *)(fRejectedCutList->At(1)))->Fill(track->Eta(),
4253 track->Phi()*180./TMath::Pi(),
4255 ((TH3D *)(fRejectedCutList->At(5)))->Fill(track->Eta(),
4256 track->Phi()*180./TMath::Pi(),
4258 ((TH3D *)(fRejectedCutList->At(9)))->Fill(track->Eta(),
4259 track->Phi()*180./TMath::Pi(),
4262 if(fProtonAnalysisBase->GetEtaMode())
4263 ((TH2D *)(fQA2DList->At(5)))->Fill(track->Eta(),gPt);
4265 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4270 }//primary particles
4271 else if(label > stack->GetNprimary()) {
4272 if(track->Charge() > 0) {
4273 ((TH3D *)(fRejectedCutList->At(2)))->Fill(track->Eta(),
4274 track->Phi()*180./TMath::Pi(),
4276 ((TH3D *)(fRejectedCutList->At(6)))->Fill(track->Eta(),
4277 track->Phi()*180./TMath::Pi(),
4279 ((TH3D *)(fRejectedCutList->At(10)))->Fill(track->Eta(),
4280 track->Phi()*180./TMath::Pi(),
4282 if(fProtonAnalysisBase->GetEtaMode())
4283 ((TH2D *)(fQA2DList->At(3)))->Fill(track->Eta(),gPt);
4285 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4290 else if(track->Charge() < 0) {
4291 ((TH3D *)(fRejectedCutList->At(3)))->Fill(track->Eta(),
4292 track->Phi()*180./TMath::Pi(),
4294 ((TH3D *)(fRejectedCutList->At(7)))->Fill(track->Eta(),
4295 track->Phi()*180./TMath::Pi(),
4297 ((TH3D *)(fRejectedCutList->At(11)))->Fill(track->Eta(),
4298 track->Phi()*180./TMath::Pi(),
4300 if(fProtonAnalysisBase->GetEtaMode())
4301 ((TH2D *)(fQA2DList->At(7)))->Fill(track->Eta(),gPt);
4303 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4308 }//secondary particles
4309 }//rejected - track cuts
4311 }//combined tracking
4316 //____________________________________________________________________//
4317 void AliProtonQAAnalysis::InitMCAnalysis() {
4318 //MC analysis - 3D histograms: y-pT-pdg
4319 fPDGList = new TList();
4320 TH3F *gHistYPtPDGProtons = new TH3F("gHistYPtPDGProtons",
4321 ";;P_{T} [GeV/c];PDG",
4322 fNBinsY,fMinY,fMaxY,
4323 fNBinsPt,fMinPt,fMaxPt,
4325 if(fProtonAnalysisBase->GetEtaMode())
4326 gHistYPtPDGProtons->GetXaxis()->SetTitle("#eta");
4328 gHistYPtPDGProtons->GetXaxis()->SetTitle("y");
4329 fPDGList->Add(gHistYPtPDGProtons);
4330 TH3F *gHistYPtPDGAntiProtons = new TH3F("gHistYPtPDGAntiProtons",
4331 ";;P_{T} [GeV/c];PDG",
4332 fNBinsY,fMinY,fMaxY,
4333 fNBinsPt,fMinPt,fMaxPt,
4335 if(fProtonAnalysisBase->GetEtaMode())
4336 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("#eta");
4338 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("y");
4339 fPDGList->Add(gHistYPtPDGAntiProtons);
4342 fMCProcessesList = new TList();
4343 TH1F *gHistProtonsFromKLProcess = new TH1F("gHistProtonsFromKLProcess","",51,-0.5,50.5);
4344 fMCProcessesList->Add(gHistProtonsFromKLProcess);
4345 TH1F *gHistProtonsFromPionProcess = new TH1F("gHistProtonsFromPionProcess","",51,-0.5,50.5);
4346 fMCProcessesList->Add(gHistProtonsFromPionProcess);
4347 TH1F *gHistProtonsFromKSProcess = new TH1F("gHistProtonsFromKSProcess","",51,-0.5,50.5);
4348 fMCProcessesList->Add(gHistProtonsFromKSProcess);
4349 TH1F *gHistProtonsFromKaonProcess = new TH1F("gHistProtonsFromKaonProcess","",51,-0.5,50.5);
4350 fMCProcessesList->Add(gHistProtonsFromKaonProcess);
4351 TH1F *gHistProtonsFromNeutronProcess = new TH1F("gHistProtonsFromNeutronProcess","",51,-0.5,50.5);
4352 fMCProcessesList->Add(gHistProtonsFromNeutronProcess);
4353 TH1F *gHistProtonsFromProtonProcess = new TH1F("gHistProtonsFromProtonProcess","",51,-0.5,50.5);
4354 fMCProcessesList->Add(gHistProtonsFromProtonProcess);
4355 TH1F *gHistProtonsFromSigmaMinusProcess = new TH1F("gHistProtonsFromSigmaMinusProcess","",51,-0.5,50.5);
4356 fMCProcessesList->Add(gHistProtonsFromSigmaMinusProcess);
4357 TH1F *gHistProtonsFromLambda0Process = new TH1F("gHistProtonsFromLambda0Process","",51,-0.5,50.5);
4358 fMCProcessesList->Add(gHistProtonsFromLambda0Process);
4359 TH1F *gHistProtonsFromSigmaPlusProcess = new TH1F("gHistProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
4360 fMCProcessesList->Add(gHistProtonsFromSigmaPlusProcess);
4361 TH1F *gHistProtonsFromXiMinusProcess = new TH1F("gHistProtonsFromXiMinusProcess","",51,-0.5,50.5);
4362 fMCProcessesList->Add(gHistProtonsFromXiMinusProcess);
4363 TH1F *gHistProtonsFromXi0Process = new TH1F("gHistProtonsFromXi0Process","",51,-0.5,50.5);
4364 fMCProcessesList->Add(gHistProtonsFromXi0Process);
4365 TH1F *gHistProtonsFromOmegaProcess = new TH1F("gHistProtonsFromOmegaProcess","",51,-0.5,50.5);
4366 fMCProcessesList->Add(gHistProtonsFromOmegaProcess);
4368 TH1F *gHistAntiProtonsFromKLProcess = new TH1F("gHistAntiProtonsFromKLProcess","",51,-0.5,50.5);
4369 fMCProcessesList->Add(gHistAntiProtonsFromKLProcess);
4370 TH1F *gHistAntiProtonsFromPionProcess = new TH1F("gHistAntiProtonsFromPionProcess","",51,-0.5,50.5);
4371 fMCProcessesList->Add(gHistAntiProtonsFromPionProcess);
4372 TH1F *gHistAntiProtonsFromKSProcess = new TH1F("gHistAntiProtonsFromKSProcess","",51,-0.5,50.5);
4373 fMCProcessesList->Add(gHistAntiProtonsFromKSProcess);
4374 TH1F *gHistAntiProtonsFromKaonProcess = new TH1F("gHistAntiProtonsFromKaonProcess","",51,-0.5,50.5);
4375 fMCProcessesList->Add(gHistAntiProtonsFromKaonProcess);
4376 TH1F *gHistAntiProtonsFromNeutronProcess = new TH1F("gHistAntiProtonsFromNeutronProcess","",51,-0.5,50.5);
4377 fMCProcessesList->Add(gHistAntiProtonsFromNeutronProcess);
4378 TH1F *gHistAntiProtonsFromProtonProcess = new TH1F("gHistAntiProtonsFromProtonProcess","",51,-0.5,50.5);
4379 fMCProcessesList->Add(gHistAntiProtonsFromProtonProcess);
4380 TH1F *gHistAntiProtonsFromLambda0Process = new TH1F("gHistAntiProtonsFromLambda0Process","",51,-0.5,50.5);
4381 fMCProcessesList->Add(gHistAntiProtonsFromLambda0Process);
4382 TH1F *gHistAntiProtonsFromSigmaPlusProcess = new TH1F("gHistAntiProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
4383 fMCProcessesList->Add(gHistAntiProtonsFromSigmaPlusProcess);
4386 //____________________________________________________________________//
4387 void AliProtonQAAnalysis::RunMCAnalysis(AliStack* const stack) {
4388 //Main analysis part - MC
4389 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
4390 TParticle *particle = stack->Particle(iParticle);
4391 if(!particle) continue;
4393 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
4394 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
4395 if(fProtonAnalysisBase->GetEtaMode()) {
4396 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
4399 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
4402 Int_t pdgcode = particle->GetPdgCode();
4403 if(pdgcode == 2212) {
4404 if(iParticle <= stack->GetNprimary()) {
4405 if(fProtonAnalysisBase->GetEtaMode())
4406 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),particle->Pt(),0);
4408 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4413 else if(iParticle > stack->GetNprimary()) {
4414 Int_t lPartMother = particle->GetFirstMother();
4415 TParticle *motherParticle = stack->Particle(lPartMother);
4416 if(!motherParticle) continue;
4417 Int_t motherPDGCode = motherParticle->GetPdgCode();
4418 if(fMCProcessIdFlag)
4419 if(particle->GetUniqueID() != fMCProcessId) continue;
4420 if(fMotherParticlePDGCodeFlag)
4421 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4423 if(fProtonAnalysisBase->GetEtaMode())
4424 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),
4426 ConvertPDGToInt(motherParticle->GetPdgCode()));
4428 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4432 ConvertPDGToInt(motherParticle->GetPdgCode()));
4434 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
4435 ((TH1F *)(fMCProcessesList->At(0)))->Fill(particle->GetUniqueID());
4436 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
4437 ((TH1F *)(fMCProcessesList->At(1)))->Fill(particle->GetUniqueID());
4438 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
4439 ((TH1F *)(fMCProcessesList->At(2)))->Fill(particle->GetUniqueID());
4440 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
4441 ((TH1F *)(fMCProcessesList->At(3)))->Fill(particle->GetUniqueID());
4442 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
4443 ((TH1F *)(fMCProcessesList->At(4)))->Fill(particle->GetUniqueID());
4444 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
4445 ((TH1F *)(fMCProcessesList->At(5)))->Fill(particle->GetUniqueID());
4446 if(TMath::Abs(motherParticle->GetPdgCode()) == 3112)
4447 ((TH1F *)(fMCProcessesList->At(6)))->Fill(particle->GetUniqueID());
4448 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
4449 ((TH1F *)(fMCProcessesList->At(7)))->Fill(particle->GetUniqueID());
4450 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
4451 ((TH1F *)(fMCProcessesList->At(8)))->Fill(particle->GetUniqueID());
4452 if(TMath::Abs(motherParticle->GetPdgCode()) == 3312)
4453 ((TH1F *)(fMCProcessesList->At(9)))->Fill(particle->GetUniqueID());
4454 if(TMath::Abs(motherParticle->GetPdgCode()) == 3322)
4455 ((TH1F *)(fMCProcessesList->At(10)))->Fill(particle->GetUniqueID());
4456 if(TMath::Abs(motherParticle->GetPdgCode()) == 3334)
4457 ((TH1F *)(fMCProcessesList->At(11)))->Fill(particle->GetUniqueID());
4459 }//pdgcode of proton
4461 if(pdgcode == -2212) {
4462 if(iParticle <= stack->GetNprimary()) {
4463 if(fProtonAnalysisBase->GetEtaMode())
4464 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),particle->Pt(),0);
4466 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4471 else if(iParticle > stack->GetNprimary()) {
4472 Int_t lPartMother = particle->GetFirstMother();
4473 TParticle *motherParticle = stack->Particle(lPartMother);
4474 if(!motherParticle) continue;
4475 Int_t motherPDGCode = motherParticle->GetPdgCode();
4476 if(fMCProcessIdFlag)
4477 if(particle->GetUniqueID() != fMCProcessId) continue;
4478 if(fMotherParticlePDGCodeFlag)
4479 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
4481 if(fProtonAnalysisBase->GetEtaMode())
4482 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),
4484 ConvertPDGToInt(motherParticle->GetPdgCode()));
4486 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4490 ConvertPDGToInt(motherParticle->GetPdgCode()));
4493 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
4494 ((TH1F *)(fMCProcessesList->At(12)))->Fill(particle->GetUniqueID());
4495 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
4496 ((TH1F *)(fMCProcessesList->At(13)))->Fill(particle->GetUniqueID());
4497 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
4498 ((TH1F *)(fMCProcessesList->At(14)))->Fill(particle->GetUniqueID());
4499 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
4500 ((TH1F *)(fMCProcessesList->At(15)))->Fill(particle->GetUniqueID());
4501 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
4502 ((TH1F *)(fMCProcessesList->At(16)))->Fill(particle->GetUniqueID());
4503 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
4504 ((TH1F *)(fMCProcessesList->At(17)))->Fill(particle->GetUniqueID());
4505 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
4506 ((TH1F *)(fMCProcessesList->At(18)))->Fill(particle->GetUniqueID());
4507 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
4508 ((TH1F *)(fMCProcessesList->At(19)))->Fill(particle->GetUniqueID());
4509 }//secondary antiproton
4510 }//pdgcode of antiproton
4515 //____________________________________________________________________//
4516 Int_t AliProtonQAAnalysis::ConvertPDGToInt(Int_t pdgCode) const {
4517 //Converts the pdg code to an int based on the following scheme:
4518 //1: PDG code: 130 - Name: K_L0
4519 //2: PDG code: 211 - Name: pi+
4520 //3: PDG code: 310 - Name: K_S0
4521 //4: PDG code: 321 - Name: K+
4522 //5: PDG code: 2112 - Name: neutron
4523 //6: PDG code: 2212 - Name: proton
4524 //7: PDG code: 3112 - Name: Sigma-
4525 //8: PDG code: 3122 - Name: Lambda0
4526 //9: PDG code: 3222 - Name: Sigma+
4527 //10: PDG code: 3312 - Name: Xi-
4528 //11: PDG code: 3322 - Name: Xi0
4529 //12: PDG code: 3334 - Name: Omega-
4531 switch (TMath::Abs(pdgCode)) {