]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliProtonQAAnalysis.cxx
Coverity fixes for BUFFER_SIZE
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliProtonQAAnalysis.cxx
CommitLineData
3e6c06f4 1/**************************************************************************
2 * Author: Panos Christakoglou. *
3 * Contributors are mentioned in the code where appropriate. *
4 * *
5 * Permission to use, copy, modify and distribute this software and its *
6 * documentation strictly for non-commercial purposes is hereby granted *
7 * without fee, provided that the above copyright notice appears in all *
8 * copies and that both the copyright notice and this permission notice *
9 * appear in the supporting documentation. The authors make no claims *
10 * about the suitability of this software for any purpose. It is *
11 * provided "as is" without express or implied warranty. *
12 **************************************************************************/
13
14/* $Id: AliProtonQAAnalysis.cxx 29114 2008-10-03 16:49:02Z pchrist $ */
15
16//-----------------------------------------------------------------
17// AliProtonQAAnalysis class
18// This is the class to deal with the proton analysis
dd3fa486 19// Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch
3e6c06f4 20//-----------------------------------------------------------------
21#include <Riostream.h>
3e6c06f4 22#include <TSystem.h>
23#include <TF1.h>
24#include <TH2D.h>
d4733690 25#include <TH3F.h>
3e6c06f4 26#include <TH1D.h>
9c0b9f24 27#include <TArrayI.h>
3e6c06f4 28#include <TParticle.h>
29
30#include "AliProtonQAAnalysis.h"
e7df5638 31#include "AliProtonAnalysisBase.h"
3e6c06f4 32
33#include <AliExternalTrackParam.h>
34#include <AliESDEvent.h>
35#include <AliLog.h>
36#include <AliPID.h>
37#include <AliStack.h>
6667f3a7 38#include <AliESDVertex.h>
75decd62 39#include <AliGenEventHeader.h>
4042c3a2 40#include <AliMCEvent.h>
3e6c06f4 41
42ClassImp(AliProtonQAAnalysis)
43
44//____________________________________________________________________//
45AliProtonQAAnalysis::AliProtonQAAnalysis() :
e7df5638 46 TObject(), fProtonAnalysisBase(0),
4acc9d4d 47 fNBinsY(0), fMinY(0), fMaxY(0), fY(0),
48 fNBinsPt(0), fMinPt(0), fMaxPt(0), fPt(0), fUseAsymmetricBinning(kFALSE),
75decd62 49 fGlobalQAList(0), fQAVertexList(0), fQA2DList(0),
3e6c06f4 50 fQAPrimaryProtonsAcceptedList(0),
51 fQAPrimaryProtonsRejectedList(0),
52 fQASecondaryProtonsAcceptedList(0),
53 fQASecondaryProtonsRejectedList(0),
54 fQAPrimaryAntiProtonsAcceptedList(0),
55 fQAPrimaryAntiProtonsRejectedList(0),
56 fQASecondaryAntiProtonsAcceptedList(0),
57 fQASecondaryAntiProtonsRejectedList(0),
d4733690 58 fPDGList(0), fMCProcessesList(0),
5b8133c7 59 fRunMCAnalysis(kFALSE),
60 fMCProcessIdFlag(kFALSE), fMCProcessId(0),
61 fMotherParticlePDGCodeFlag(kFALSE), fMotherParticlePDGCode(0),
62 fAcceptedCutList(0), fRejectedCutList(0),
9c0b9f24 63 fAcceptedDCAList(0), fRejectedDCAList(0),
dd3fa486 64 fRunEfficiencyAnalysis(kFALSE),
e13bbda6 65 fUseCutsInEfficiency(kFALSE),
df201289 66 fEfficiencyList(0), fCutEfficiencyList(0) {
3e6c06f4 67 //Default constructor
3e6c06f4 68}
69
70//____________________________________________________________________//
71AliProtonQAAnalysis::~AliProtonQAAnalysis() {
72 //Default destructor
e7df5638 73 if(fProtonAnalysisBase) delete fProtonAnalysisBase;
3e6c06f4 74 if(fGlobalQAList) delete fGlobalQAList;
75decd62 75 if(fQAVertexList) delete fQAVertexList;
3e6c06f4 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;
d4733690 89
90 if(fPDGList) delete fPDGList;
91 if(fMCProcessesList) delete fMCProcessesList;
5b8133c7 92
93 if(fAcceptedCutList) delete fAcceptedCutList;
94 if(fRejectedCutList) delete fRejectedCutList;
95 if(fAcceptedDCAList) delete fAcceptedDCAList;
96 if(fRejectedDCAList) delete fRejectedDCAList;
9c0b9f24 97
98 if(fEfficiencyList) delete fEfficiencyList;
df201289 99 if(fCutEfficiencyList) delete fCutEfficiencyList;
3e6c06f4 100}
101
3e6c06f4 102//____________________________________________________________________//
73aba974 103void AliProtonQAAnalysis::FillQA(AliStack *const stack,
3e23254a 104 AliESDEvent *esd,
105 const AliESDVertex *vertex,
106 AliESDtrack* track) {
3e6c06f4 107 // Checks if the track is excluded from the cuts
108 Int_t nPrimaries = stack->GetNprimary();
109 Int_t label = TMath::Abs(track->GetLabel());
110
73aba974 111 Double_t gPt = 0.0, gPx = 0.0, gPy = 0.0, gPz = 0.0;
3e23254a 112 Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0}; //The impact parameters and their covariance.
113
e7df5638 114 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3e6c06f4 115 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
116 if(!tpcTrack) {
73aba974 117 gPt = 0.0; gPx = 0.0; gPy = 0.0; gPz = 0.0;
3e23254a 118 dca[0] = -100.; dca[1] = -100.;
119 cov[0] = -100.; cov[1] = -100.; cov[2] = -100.;
3e6c06f4 120 }
121 else {
73aba974 122 gPt = tpcTrack->Pt();
123 gPx = tpcTrack->Px();
124 gPy = tpcTrack->Py();
125 gPz = tpcTrack->Pz();
3e23254a 126 tpcTrack->PropagateToDCA(vertex,
127 esd->GetMagneticField(),
128 100.,dca,cov);
3e6c06f4 129 }
130 }
131 else{
73aba974 132 gPt = track->Pt();
133 gPx = track->Px();
134 gPy = track->Py();
135 gPz = track->Pz();
3e23254a 136 track->PropagateToDCA(vertex,
137 esd->GetMagneticField(),
138 100.,dca,cov);
3e6c06f4 139 }
3e23254a 140
369b48c8 141 //TParticle *particle = stack->Particle(label);
142 //if(particle) {
143 //Int_t pdgcode = particle->GetPdgCode();
144 //Int_t gProcess = particle->GetUniqueID();
145 Int_t fIdxInt[200];
146 Int_t nClustersITS = track->GetITSclusters(fIdxInt);
147 Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
148
149 Float_t chi2PerClusterITS = -1;
150 if (nClustersITS!=0)
151 chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
152 Float_t chi2PerClusterTPC = -1;
153 if (nClustersTPC!=0)
154 chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
155
156 Double_t extCov[15];
15788b9d 157 track->GetExternalCovariance(extCov);
158
159 //protons
160 if(track->Charge() > 0) {
161 //Primaries
162 if(label <= nPrimaries) {
163 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
164 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
165 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
166 }
167 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
168 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
169 }//ITS clusters
170 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
171 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
172 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
173 }
174 else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
175 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
176 }//chi2 per ITS cluster
177 if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
178 if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
179 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(2)))->Fill(nClustersTPC);
180 }
181 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
182 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
183 }
184 }//TPC clusters
185 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
186 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
187 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
188 }
189 else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
190 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
191 }//chi2 per TPC cluster
192 if(fProtonAnalysisBase->IsUsedMaxCov11()) {
193 if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
194 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(4)))->Fill(extCov[0]);
195 }
196 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
197 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
198 }//cov11
199 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
200 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
201 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
202 }
203 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
204 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
205 }//cov11
206 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
207 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
208 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
209 }
210 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
211 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
212 }//cov11
213 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
214 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
215 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
216 }
217 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
218 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
219 }//cov11
220 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
221 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
222 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
223 }
224 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
225 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
226 }//cov55
227 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
228 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
229 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
230 }
231 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
232 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
233 }//sigma to vertex
234 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
235 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
236 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
237 }
238 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
239 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
240 }//sigma to vertex TPC
241 if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
242 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
243 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
244 }
245 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
246 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
247 }//DCA xy global tracking
248 if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
249 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
250 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
251 }
252 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
253 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
254 }//DCA xy TPC tracking
255 if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
256 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
257 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
258 }
259 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
260 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
261 }//DCA z global tracking
262 if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
263 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
264 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
265 }
266 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
267 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
268 }//DCA z TPC tracking
269 if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
270 if(track->GetConstrainedChi2() > 0) {
271 if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
272 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
273 }
274 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
275 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
276 }
277 }//constrain chi2 - vertex
278 if(fProtonAnalysisBase->IsUsedITSRefit()) {
279 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
280 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(16)))->Fill(0);
281 }
282 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
283 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(16)))->Fill(0);
284 }//ITS refit
285 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
286 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
287 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(17)))->Fill(0);
288 }
289 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
290 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(17)))->Fill(0);
291 }//TPC refit
292 if(fProtonAnalysisBase->IsUsedESDpid()) {
293 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
294 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(18)))->Fill(0);
295 }
296 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
297 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(18)))->Fill(0);
298 }//ESD pid
299 if(fProtonAnalysisBase->IsUsedTPCpid()) {
300 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
301 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(19)))->Fill(0);
302 }
303 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
304 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(19)))->Fill(0);
305 }//TPC pid
306 if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
307 if(!track->HasPointOnITSLayer(0)) {
308 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(20)))->Fill(0);
309 }
310 else if(track->HasPointOnITSLayer(0))
311 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(20)))->Fill(0);
312 }//point on SPD1
313 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
314 if(!track->HasPointOnITSLayer(1)) {
315 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(21)))->Fill(0);
316 }
317 else if(track->HasPointOnITSLayer(1))
318 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(21)))->Fill(0);
319 }//point on SPD2
320 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
321 if(!track->HasPointOnITSLayer(2)) {
322 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(22)))->Fill(0);
323 }
324 else if(track->HasPointOnITSLayer(2))
325 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(22)))->Fill(0);
326 }//point on SDD1
327 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
328 if(!track->HasPointOnITSLayer(3)) {
329 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(23)))->Fill(0);
330 }
331 else if(track->HasPointOnITSLayer(3))
332 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(23)))->Fill(0);
333 }//point on SDD2
334 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
335 if(!track->HasPointOnITSLayer(4)) {
336 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(24)))->Fill(0);
337 }
338 else if(track->HasPointOnITSLayer(4))
339 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(24)))->Fill(0);
340 }//point on SSD1
341 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
342 if(!track->HasPointOnITSLayer(5)) {
343 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(25)))->Fill(0);
344 }
345 else if(track->HasPointOnITSLayer(5))
346 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(25)))->Fill(0);
347 }//point on SSD2
348 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
349 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
350 ((TH1F *)(fQAPrimaryProtonsRejectedList->At(26)))->Fill(track->GetTPCsignalN());
351 }
352 if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
353 ((TH1F *)(fQAPrimaryProtonsAcceptedList->At(26)))->Fill(track->GetTPCsignalN());
354 }//number of TPC points for the dE/dx
355
369b48c8 356 /*if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
357 ((TH2F *)(fQAPrimaryProtonsRejectedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
3e6c06f4 358 }
e7df5638 359 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
369b48c8 360 ((TH2F *)(fQAPrimaryProtonsAcceptedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
e7df5638 361 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
369b48c8 362 ((TH2F *)(fQAPrimaryProtonsRejectedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
3e6c06f4 363 }
e7df5638 364 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
369b48c8 365 ((TH2F *)(fQAPrimaryProtonsAcceptedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));*/
15788b9d 366 }//primary particle cut
367
368 //Secondaries
369 if(label > nPrimaries) {
370 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
371 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
372 ((TH1F *)(fQASecondaryProtonsRejectedList->At(0)))->Fill(nClustersITS);
3e6c06f4 373 }
15788b9d 374 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
375 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(0)))->Fill(nClustersITS);
376 }//ITS clusters
377 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
378 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
379 ((TH1F *)(fQASecondaryProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
380 }
381 else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
382 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
383 }//chi2 per ITS cluster
384 if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
385 if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
386 //cout<<"Secondary proton rejected"<<endl;
387 ((TH1F *)(fQASecondaryProtonsRejectedList->At(2)))->Fill(nClustersTPC);
388 }
389 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
390 //cout<<"Secondary proton accepted"<<endl;
391 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
392 }
393 }//TPC clusters
394 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
395 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
396 ((TH1F *)(fQASecondaryProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
397 }
398 else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
399 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
400 }//chi2 per TPC cluster
401 if(fProtonAnalysisBase->IsUsedMaxCov11()) {
402 if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
403 ((TH1F *)(fQASecondaryProtonsRejectedList->At(4)))->Fill(extCov[0]);
404 }
405 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
406 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(4)))->Fill(extCov[0]);
407 }//cov11
408 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
409 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
410 ((TH1F *)(fQASecondaryProtonsRejectedList->At(5)))->Fill(extCov[2]);
411 }
412 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
413 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(5)))->Fill(extCov[2]);
414 }//cov11
415 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
416 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
417 ((TH1F *)(fQASecondaryProtonsRejectedList->At(6)))->Fill(extCov[5]);
418 }
419 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
420 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(6)))->Fill(extCov[5]);
421 }//cov11
422 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
423 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
424 ((TH1F *)(fQASecondaryProtonsRejectedList->At(7)))->Fill(extCov[9]);
425 }
426 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
427 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(7)))->Fill(extCov[9]);
428 }//cov11
429 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
430 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
431 ((TH1F *)(fQASecondaryProtonsRejectedList->At(8)))->Fill(extCov[14]);
432 }
433 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
434 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(8)))->Fill(extCov[14]);
435 }//cov55
436 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
437 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
438 ((TH1F *)(fQASecondaryProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
439 }
440 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
441 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
442 }//sigma to vertex
443 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
444 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
445 ((TH1F *)(fQASecondaryProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
446 }
447 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
448 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
449 }//sigma to vertex TPC
450 if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
451 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
452 ((TH1F *)(fQASecondaryProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
453 }
454 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
455 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
456 }//DCA xy global tracking
457 if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
458 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
459 ((TH1F *)(fQASecondaryProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
460 }
461 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
462 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
463 }//DCA xy TPC tracking
464 if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
465 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
466 ((TH1F *)(fQASecondaryProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
467 }
468 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
469 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
470 }//DCA z global tracking
471 if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
472 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
473 ((TH1F *)(fQASecondaryProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
474 }
475 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
476 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
477 }//DCA z TPC tracking
478 if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
479 if(track->GetConstrainedChi2() > 0) {
480 if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
481 ((TH1F *)(fQASecondaryProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
482 }
483 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
484 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
485 }
486 }//constrain chi2 - vertex
487 if(fProtonAnalysisBase->IsUsedITSRefit()) {
488 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
489 ((TH1F *)(fQASecondaryProtonsRejectedList->At(16)))->Fill(0);
490 }
491 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
492 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(16)))->Fill(0);
493 }//ITS refit
494 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
495 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
496 ((TH1F *)(fQASecondaryProtonsRejectedList->At(17)))->Fill(0);
497 }
498 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
499 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(17)))->Fill(0);
500 }//TPC refit
501 if(fProtonAnalysisBase->IsUsedESDpid()) {
502 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
503 ((TH1F *)(fQASecondaryProtonsRejectedList->At(18)))->Fill(0);
504 }
505 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
506 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(18)))->Fill(0);
507 }//ESD pid
508 if(fProtonAnalysisBase->IsUsedTPCpid()) {
509 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
510 ((TH1F *)(fQASecondaryProtonsRejectedList->At(19)))->Fill(0);
511 }
512 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
513 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(19)))->Fill(0);
514 }//TPC pid
515 if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
516 if(!track->HasPointOnITSLayer(0)) {
517 ((TH1F *)(fQASecondaryProtonsRejectedList->At(20)))->Fill(0);
518 }
519 else if(track->HasPointOnITSLayer(0))
520 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(20)))->Fill(0);
521 }//point on SPD1
522 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
523 if(!track->HasPointOnITSLayer(1)) {
524 ((TH1F *)(fQASecondaryProtonsRejectedList->At(21)))->Fill(0);
525 }
526 else if(track->HasPointOnITSLayer(1))
527 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(21)))->Fill(0);
528 }//point on SPD2
529 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
530 if(!track->HasPointOnITSLayer(2)) {
531 ((TH1F *)(fQASecondaryProtonsRejectedList->At(22)))->Fill(0);
532 }
533 else if(track->HasPointOnITSLayer(2))
534 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(22)))->Fill(0);
535 }//point on SDD1
536 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
537 if(!track->HasPointOnITSLayer(3)) {
538 ((TH1F *)(fQASecondaryProtonsRejectedList->At(23)))->Fill(0);
539 }
540 else if(track->HasPointOnITSLayer(3))
541 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(23)))->Fill(0);
542 }//point on SDD2
543 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
544 if(!track->HasPointOnITSLayer(4)) {
545 ((TH1F *)(fQASecondaryProtonsRejectedList->At(24)))->Fill(0);
546 }
547 else if(track->HasPointOnITSLayer(4))
548 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(24)))->Fill(0);
549 }//point on SSD1
550 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
551 if(!track->HasPointOnITSLayer(5)) {
552 ((TH1F *)(fQASecondaryProtonsRejectedList->At(25)))->Fill(0);
553 }
554 else if(track->HasPointOnITSLayer(5))
555 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(25)))->Fill(0);
556 }//point on SSD2
557 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
558 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
559 ((TH1F *)(fQASecondaryProtonsRejectedList->At(26)))->Fill(track->GetTPCsignalN());
560 }
561 if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
562 ((TH1F *)(fQASecondaryProtonsAcceptedList->At(26)))->Fill(track->GetTPCsignalN());
563 }//number of TPC points for the dE/dx
3e6c06f4 564
369b48c8 565 /*if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
15788b9d 566 if(gProcess == 4)
369b48c8 567 ((TH2F *)(fQASecondaryProtonsRejectedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 568 if(gProcess == 13)
369b48c8 569 ((TH2F *)(fQASecondaryProtonsRejectedList->At(29)))->Fill(gPt,TMath::Abs(dca[0]));
3e6c06f4 570 }
15788b9d 571 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY()) {
572 if(gProcess == 4)
369b48c8 573 ((TH2F *)(fQASecondaryProtonsAcceptedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 574 if(gProcess == 13)
369b48c8 575 ((TH2F *)(fQASecondaryProtonsAcceptedList->At(29)))->Fill(gPt,TMath::Abs(dca[0]));
3e6c06f4 576 }
e7df5638 577 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
15788b9d 578 if(gProcess == 4)
369b48c8 579 ((TH2F *)(fQASecondaryProtonsRejectedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 580 if(gProcess == 13)
369b48c8 581 ((TH2F *)(fQASecondaryProtonsRejectedList->At(30)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 582 }
583 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ()) {
584 if(gProcess == 4)
369b48c8 585 ((TH2F *)(fQASecondaryProtonsAcceptedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 586 if(gProcess == 13)
369b48c8 587 ((TH2F *)(fQASecondaryProtonsAcceptedList->At(30)))->Fill(gPt,TMath::Abs(dca[1]));
588 }*/
15788b9d 589 }//secondary particle cut
590 }//protons
591
592 //antiprotons
593 if(track->Charge() < 0) {
594 //Primaries
595 if(label <= nPrimaries) {
596 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
e7df5638 597 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
3e6c06f4 598 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
3e6c06f4 599 }
e7df5638 600 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
3e6c06f4 601 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
602 }//ITS clusters
e7df5638 603 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
604 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
3e6c06f4 605 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
3e6c06f4 606 }
e7df5638 607 else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
3e6c06f4 608 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
609 }//chi2 per ITS cluster
e7df5638 610 if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
611 if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
3e6c06f4 612 //cout<<"Primary antiproton rejected"<<endl;
613 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(2)))->Fill(nClustersTPC);
3e6c06f4 614 }
e7df5638 615 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
3e6c06f4 616 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
617 }
618 }//TPC clusters
e7df5638 619 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
620 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
3e6c06f4 621 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
3e6c06f4 622 }
e7df5638 623 else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
3e6c06f4 624 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
625 }//chi2 per TPC cluster
e7df5638 626 if(fProtonAnalysisBase->IsUsedMaxCov11()) {
627 if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
3e6c06f4 628 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(4)))->Fill(extCov[0]);
3e6c06f4 629 }
e7df5638 630 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
3e6c06f4 631 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
632 }//cov11
e7df5638 633 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
634 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
3e6c06f4 635 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
3e6c06f4 636 }
e7df5638 637 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
3e6c06f4 638 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
639 }//cov11
e7df5638 640 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
641 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
3e6c06f4 642 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
3e6c06f4 643 }
e7df5638 644 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
3e6c06f4 645 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
646 }//cov11
e7df5638 647 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
648 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
3e6c06f4 649 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
3e6c06f4 650 }
e7df5638 651 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
3e6c06f4 652 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
653 }//cov11
e7df5638 654 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
655 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
3e6c06f4 656 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
3e6c06f4 657 }
e7df5638 658 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
3e6c06f4 659 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
660 }//cov55
e7df5638 661 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
662 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
663 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 664 }
e7df5638 665 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
666 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 667 }//sigma to vertex
e7df5638 668 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
669 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
670 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 671 }
e7df5638 672 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
673 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 674 }//sigma to vertex TPC
e7df5638 675 if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
676 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
3e23254a 677 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 678 }
e7df5638 679 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
3e23254a 680 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 681 }//DCA xy global tracking
e7df5638 682 if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
683 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
3e23254a 684 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 685 }
e7df5638 686 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
3e23254a 687 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 688 }//DCA xy TPC tracking
e7df5638 689 if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
690 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
3e23254a 691 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 692 }
e7df5638 693 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
3e23254a 694 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 695 }//DCA z global tracking
e7df5638 696 if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
697 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
3e23254a 698 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 699 }
e7df5638 700 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
3e23254a 701 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 702 }//DCA z TPC tracking
e7df5638 703 if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
3e6c06f4 704 if(track->GetConstrainedChi2() > 0) {
e7df5638 705 if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
3e6c06f4 706 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
3e6c06f4 707 }
e7df5638 708 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
3e6c06f4 709 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
710 }
711 }//constrain chi2 - vertex
e7df5638 712 if(fProtonAnalysisBase->IsUsedITSRefit()) {
3e6c06f4 713 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
714 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(16)))->Fill(0);
3e6c06f4 715 }
716 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
717 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(16)))->Fill(0);
718 }//ITS refit
e7df5638 719 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
3e6c06f4 720 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
721 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(17)))->Fill(0);
3e6c06f4 722 }
723 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
724 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(17)))->Fill(0);
725 }//TPC refit
e7df5638 726 if(fProtonAnalysisBase->IsUsedESDpid()) {
3e6c06f4 727 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
728 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(18)))->Fill(0);
3e6c06f4 729 }
730 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
731 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(18)))->Fill(0);
732 }//ESD pid
e7df5638 733 if(fProtonAnalysisBase->IsUsedTPCpid()) {
3e6c06f4 734 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
735 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(19)))->Fill(0);
3e6c06f4 736 }
737 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
738 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(19)))->Fill(0);
739 }//TPC pid
e7df5638 740 if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
0008a5a6 741 if(!track->HasPointOnITSLayer(0)) {
15788b9d 742 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(20)))->Fill(0);
0008a5a6 743 }
744 else if(track->HasPointOnITSLayer(0))
15788b9d 745 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(20)))->Fill(0);
0008a5a6 746 }//point on SPD1
e7df5638 747 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
0008a5a6 748 if(!track->HasPointOnITSLayer(1)) {
15788b9d 749 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(21)))->Fill(0);
0008a5a6 750 }
751 else if(track->HasPointOnITSLayer(1))
15788b9d 752 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(21)))->Fill(0);
0008a5a6 753 }//point on SPD2
e7df5638 754 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
0008a5a6 755 if(!track->HasPointOnITSLayer(2)) {
15788b9d 756 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(22)))->Fill(0);
0008a5a6 757 }
758 else if(track->HasPointOnITSLayer(2))
15788b9d 759 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(22)))->Fill(0);
0008a5a6 760 }//point on SDD1
e7df5638 761 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
0008a5a6 762 if(!track->HasPointOnITSLayer(3)) {
15788b9d 763 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(23)))->Fill(0);
0008a5a6 764 }
765 else if(track->HasPointOnITSLayer(3))
15788b9d 766 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(23)))->Fill(0);
0008a5a6 767 }//point on SDD2
e7df5638 768 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
0008a5a6 769 if(!track->HasPointOnITSLayer(4)) {
15788b9d 770 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(24)))->Fill(0);
0008a5a6 771 }
772 else if(track->HasPointOnITSLayer(4))
15788b9d 773 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(24)))->Fill(0);
0008a5a6 774 }//point on SSD1
e7df5638 775 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
0008a5a6 776 if(!track->HasPointOnITSLayer(5)) {
15788b9d 777 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(25)))->Fill(0);
0008a5a6 778 }
779 else if(track->HasPointOnITSLayer(5))
15788b9d 780 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(25)))->Fill(0);
0008a5a6 781 }//point on SSD2
15788b9d 782 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
783 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
784 ((TH1F *)(fQAPrimaryAntiProtonsRejectedList->At(26)))->Fill(track->GetTPCsignalN());
785 }
786 if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
787 ((TH1F *)(fQAPrimaryAntiProtonsAcceptedList->At(26)))->Fill(track->GetTPCsignalN());
788 }//number of TPC points for the dE/dx
789
369b48c8 790 /*if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
791 ((TH2F *)(fQAPrimaryAntiProtonsRejectedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 792 }
793 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
369b48c8 794 ((TH2F *)(fQAPrimaryAntiProtonsAcceptedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 795 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
369b48c8 796 ((TH2F *)(fQAPrimaryAntiProtonsRejectedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 797 }
798 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
369b48c8 799 ((TH2F *)(fQAPrimaryAntiProtonsAcceptedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));*/
3e6c06f4 800 }//primary particle cut
801
802 //Secondaries
803 if(label > nPrimaries) {
e7df5638 804 if(fProtonAnalysisBase->IsUsedMinITSClusters()) {
805 if(nClustersITS < fProtonAnalysisBase->GetMinITSClusters()) {
3e6c06f4 806 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(0)))->Fill(nClustersITS);
3e6c06f4 807 }
e7df5638 808 else if(nClustersITS >= fProtonAnalysisBase->GetMinITSClusters())
3e6c06f4 809 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(0)))->Fill(nClustersITS);
810 }//ITS clusters
e7df5638 811 if(fProtonAnalysisBase->IsUsedMaxChi2PerITSCluster()) {
812 if(chi2PerClusterITS > fProtonAnalysisBase->GetMaxChi2PerITSCluster()) {
3e6c06f4 813 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(1)))->Fill(chi2PerClusterITS);
3e6c06f4 814 }
e7df5638 815 else if(chi2PerClusterITS <= fProtonAnalysisBase->GetMaxChi2PerITSCluster())
3e6c06f4 816 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(1)))->Fill(chi2PerClusterITS);
817 }//chi2 per ITS cluster
e7df5638 818 if(fProtonAnalysisBase->IsUsedMinTPCClusters()) {
819 if(nClustersTPC < fProtonAnalysisBase->GetMinTPCClusters()) {
3e6c06f4 820 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(2)))->Fill(nClustersTPC);
3e6c06f4 821 }
e7df5638 822 else if(nClustersTPC >= fProtonAnalysisBase->GetMinTPCClusters()) {
3e6c06f4 823 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(2)))->Fill(nClustersTPC);
824 }
825 }//TPC clusters
e7df5638 826 if(fProtonAnalysisBase->IsUsedMaxChi2PerTPCCluster()) {
827 if(chi2PerClusterTPC > fProtonAnalysisBase->GetMaxChi2PerTPCCluster()) {
3e6c06f4 828 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(3)))->Fill(chi2PerClusterTPC);
3e6c06f4 829 }
e7df5638 830 else if(chi2PerClusterTPC <= fProtonAnalysisBase->GetMaxChi2PerTPCCluster())
3e6c06f4 831 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(3)))->Fill(chi2PerClusterTPC);
832 }//chi2 per TPC cluster
e7df5638 833 if(fProtonAnalysisBase->IsUsedMaxCov11()) {
834 if(extCov[0] > fProtonAnalysisBase->GetMaxCov11()) {
3e6c06f4 835 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(4)))->Fill(extCov[0]);
3e6c06f4 836 }
e7df5638 837 else if(extCov[0] <= fProtonAnalysisBase->GetMaxCov11())
3e6c06f4 838 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(4)))->Fill(extCov[0]);
839 }//cov11
e7df5638 840 if(fProtonAnalysisBase->IsUsedMaxCov22()) {
841 if(extCov[2] > fProtonAnalysisBase->GetMaxCov22()) {
3e6c06f4 842 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(5)))->Fill(extCov[2]);
3e6c06f4 843 }
e7df5638 844 else if(extCov[2] <= fProtonAnalysisBase->GetMaxCov22())
3e6c06f4 845 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(5)))->Fill(extCov[2]);
846 }//cov11
e7df5638 847 if(fProtonAnalysisBase->IsUsedMaxCov33()) {
848 if(extCov[5] > fProtonAnalysisBase->GetMaxCov33()) {
3e6c06f4 849 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(6)))->Fill(extCov[5]);
3e6c06f4 850 }
e7df5638 851 else if(extCov[5] <= fProtonAnalysisBase->GetMaxCov33())
3e6c06f4 852 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(6)))->Fill(extCov[5]);
853 }//cov11
e7df5638 854 if(fProtonAnalysisBase->IsUsedMaxCov44()) {
855 if(extCov[9] > fProtonAnalysisBase->GetMaxCov44()) {
3e6c06f4 856 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(7)))->Fill(extCov[9]);
3e6c06f4 857 }
e7df5638 858 else if(extCov[9] <= fProtonAnalysisBase->GetMaxCov44())
3e6c06f4 859 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(7)))->Fill(extCov[9]);
860 }//cov11
e7df5638 861 if(fProtonAnalysisBase->IsUsedMaxCov55()) {
862 if(extCov[14] > fProtonAnalysisBase->GetMaxCov55()) {
3e6c06f4 863 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(8)))->Fill(extCov[14]);
3e6c06f4 864 }
e7df5638 865 else if(extCov[14] <= fProtonAnalysisBase->GetMaxCov55())
3e6c06f4 866 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(8)))->Fill(extCov[14]);
867 }//cov55
e7df5638 868 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertex()) {
869 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertex()) {
870 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 871 }
e7df5638 872 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertex())
873 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(9)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 874 }//sigma to vertex
e7df5638 875 if(fProtonAnalysisBase->IsUsedMaxSigmaToVertexTPC()) {
876 if(fProtonAnalysisBase->GetSigmaToVertex(track) > fProtonAnalysisBase->GetMaxSigmaToVertexTPC()) {
877 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 878 }
e7df5638 879 else if(fProtonAnalysisBase->GetSigmaToVertex(track) <= fProtonAnalysisBase->GetMaxSigmaToVertexTPC())
880 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(10)))->Fill(fProtonAnalysisBase->GetSigmaToVertex(track));
3e6c06f4 881 }//sigma to vertex TPC
e7df5638 882 if(fProtonAnalysisBase->IsUsedMaxDCAXY()) {
883 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
3e23254a 884 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(11)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 885 }
e7df5638 886 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY())
3e23254a 887 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(11)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 888 }//DCA xy global tracking
e7df5638 889 if(fProtonAnalysisBase->IsUsedMaxDCAXYTPC()) {
890 if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXYTPC()) {
3e23254a 891 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(12)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 892 }
e7df5638 893 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXYTPC())
3e23254a 894 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(12)))->Fill(TMath::Abs(dca[0]));
3e6c06f4 895 }//DCA xy TPC tracking
e7df5638 896 if(fProtonAnalysisBase->IsUsedMaxDCAZ()) {
897 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
3e23254a 898 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(13)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 899 }
e7df5638 900 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ())
3e23254a 901 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(13)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 902 }//DCA z global tracking
e7df5638 903 if(fProtonAnalysisBase->IsUsedMaxDCAZTPC()) {
904 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZTPC()) {
3e23254a 905 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(14)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 906 }
e7df5638 907 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZTPC())
3e23254a 908 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(14)))->Fill(TMath::Abs(dca[1]));
3e6c06f4 909 }//DCA z TPC tracking
e7df5638 910 if(fProtonAnalysisBase->IsUsedMaxConstrainChi2()) {
3e6c06f4 911 if(track->GetConstrainedChi2() > 0) {
e7df5638 912 if(TMath::Log(track->GetConstrainedChi2()) > fProtonAnalysisBase->GetMaxConstrainChi2()) {
3e6c06f4 913 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
3e6c06f4 914 }
e7df5638 915 else if(TMath::Log(track->GetConstrainedChi2()) <= fProtonAnalysisBase->GetMaxConstrainChi2())
3e6c06f4 916 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(15)))->Fill(TMath::Log(track->GetConstrainedChi2()));
917 }
918 }//constrain chi2 - vertex
e7df5638 919 if(fProtonAnalysisBase->IsUsedITSRefit()) {
3e6c06f4 920 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) {
921 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(16)))->Fill(0);
3e6c06f4 922 }
923 else if((track->GetStatus() & AliESDtrack::kITSrefit) != 0)
924 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(16)))->Fill(0);
925 }//ITS refit
e7df5638 926 if(fProtonAnalysisBase->IsUsedTPCRefit()) {
3e6c06f4 927 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) {
928 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(17)))->Fill(0);
3e6c06f4 929 }
930 else if((track->GetStatus() & AliESDtrack::kTPCrefit) != 0)
931 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(17)))->Fill(0);
932 }//TPC refit
e7df5638 933 if(fProtonAnalysisBase->IsUsedESDpid()) {
3e6c06f4 934 if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) {
935 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(18)))->Fill(0);
3e6c06f4 936 }
937 else if((track->GetStatus() & AliESDtrack::kESDpid) != 0)
938 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(18)))->Fill(0);
939 }//ESD pid
e7df5638 940 if(fProtonAnalysisBase->IsUsedTPCpid()) {
3e6c06f4 941 if ((track->GetStatus() & AliESDtrack::kTPCpid) == 0) {
942 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(19)))->Fill(0);
3e6c06f4 943 }
944 else if((track->GetStatus() & AliESDtrack::kTPCpid) != 0)
945 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(19)))->Fill(0);
946 }//TPC pid
e7df5638 947 if(fProtonAnalysisBase->IsUsedPointOnITSLayer1()) {
0008a5a6 948 if(!track->HasPointOnITSLayer(0)) {
15788b9d 949 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(20)))->Fill(0);
0008a5a6 950 }
951 else if(track->HasPointOnITSLayer(0))
15788b9d 952 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(20)))->Fill(0);
0008a5a6 953 }//point on SPD1
e7df5638 954 if(fProtonAnalysisBase->IsUsedPointOnITSLayer2()) {
0008a5a6 955 if(!track->HasPointOnITSLayer(1)) {
15788b9d 956 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(21)))->Fill(0);
0008a5a6 957 }
958 else if(track->HasPointOnITSLayer(1))
15788b9d 959 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(21)))->Fill(0);
0008a5a6 960 }//point on SPD2
e7df5638 961 if(fProtonAnalysisBase->IsUsedPointOnITSLayer3()) {
0008a5a6 962 if(!track->HasPointOnITSLayer(2)) {
15788b9d 963 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(22)))->Fill(0);
0008a5a6 964 }
965 else if(track->HasPointOnITSLayer(2))
15788b9d 966 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(22)))->Fill(0);
0008a5a6 967 }//point on SDD1
e7df5638 968 if(fProtonAnalysisBase->IsUsedPointOnITSLayer4()) {
0008a5a6 969 if(!track->HasPointOnITSLayer(3)) {
15788b9d 970 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(23)))->Fill(0);
0008a5a6 971 }
972 else if(track->HasPointOnITSLayer(3))
15788b9d 973 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(23)))->Fill(0);
0008a5a6 974 }//point on SDD2
e7df5638 975 if(fProtonAnalysisBase->IsUsedPointOnITSLayer5()) {
0008a5a6 976 if(!track->HasPointOnITSLayer(4)) {
15788b9d 977 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(24)))->Fill(0);
0008a5a6 978 }
979 else if(track->HasPointOnITSLayer(4))
15788b9d 980 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(24)))->Fill(0);
0008a5a6 981 }//point on SSD1
e7df5638 982 if(fProtonAnalysisBase->IsUsedPointOnITSLayer6()) {
0008a5a6 983 if(!track->HasPointOnITSLayer(5)) {
15788b9d 984 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(25)))->Fill(0);
0008a5a6 985 }
986 else if(track->HasPointOnITSLayer(5))
15788b9d 987 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(25)))->Fill(0);
0008a5a6 988 }//point on SSD2
15788b9d 989 if(fProtonAnalysisBase->IsUsedMinTPCdEdxPoints()) {
990 if(track->GetTPCsignalN() < fProtonAnalysisBase->GetMinTPCdEdxPoints()) {
991 ((TH1F *)(fQASecondaryAntiProtonsRejectedList->At(26)))->Fill(track->GetTPCsignalN());
992 }
993 if(track->GetTPCsignalN() >= fProtonAnalysisBase->GetMinTPCdEdxPoints())
994 ((TH1F *)(fQASecondaryAntiProtonsAcceptedList->At(26)))->Fill(track->GetTPCsignalN());
995 }//number of TPC points for the dE/dx
996
369b48c8 997 /*if(TMath::Abs(dca[0]) > fProtonAnalysisBase->GetMaxDCAXY()) {
15788b9d 998 if(gProcess == 4)
369b48c8 999 ((TH2F *)(fQASecondaryAntiProtonsRejectedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 1000 if(gProcess == 13)
369b48c8 1001 ((TH2F *)(fQASecondaryAntiProtonsRejectedList->At(29)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 1002 }
1003 else if(TMath::Abs(dca[0]) <= fProtonAnalysisBase->GetMaxDCAXY()) {
1004 if(gProcess == 4)
369b48c8 1005 ((TH2F *)(fQASecondaryAntiProtonsAcceptedList->At(27)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 1006 if(gProcess == 13)
369b48c8 1007 ((TH2F *)(fQASecondaryAntiProtonsAcceptedList->At(29)))->Fill(gPt,TMath::Abs(dca[0]));
15788b9d 1008 }
1009 if(TMath::Abs(dca[1]) > fProtonAnalysisBase->GetMaxDCAZ()) {
1010 if(gProcess == 4)
369b48c8 1011 ((TH2F *)(fQASecondaryAntiProtonsRejectedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 1012 if(gProcess == 13)
369b48c8 1013 ((TH2F *)(fQASecondaryAntiProtonsRejectedList->At(30)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 1014 }
1015 else if(TMath::Abs(dca[1]) <= fProtonAnalysisBase->GetMaxDCAZ()) {
1016 if(gProcess == 4)
369b48c8 1017 ((TH2F *)(fQASecondaryAntiProtonsAcceptedList->At(28)))->Fill(gPt,TMath::Abs(dca[1]));
15788b9d 1018 if(gProcess == 13)
369b48c8 1019 ((TH2F *)(fQASecondaryAntiProtonsAcceptedList->At(30)))->Fill(gPt,TMath::Abs(dca[1]));
1020 }*/
3e6c06f4 1021 }//secondary particle cut
1022 }//antiprotons
369b48c8 1023 //}//if TParticle
3e6c06f4 1024}
1025
3e6c06f4 1026//____________________________________________________________________//
9c0b9f24 1027void AliProtonQAAnalysis::SetRunQAAnalysis() {
3e6c06f4 1028 //initializes the QA lists
1029 //fQAHistograms = kTRUE;
1030 fGlobalQAList = new TList();
75decd62 1031
3e6c06f4 1032 fQA2DList = new TList();
1033 fQA2DList->SetName("fQA2DList");
1034 fGlobalQAList->Add(fQA2DList);
1035
1036 fQAPrimaryProtonsAcceptedList = new TList();
1037 fQAPrimaryProtonsAcceptedList->SetName("fQAPrimaryProtonsAcceptedList");
1038 fGlobalQAList->Add(fQAPrimaryProtonsAcceptedList);
1039
1040 fQAPrimaryProtonsRejectedList = new TList();
1041 fQAPrimaryProtonsRejectedList->SetName("fQAPrimaryProtonsRejectedList");
1042 fGlobalQAList->Add(fQAPrimaryProtonsRejectedList);
1043
1044 fQASecondaryProtonsAcceptedList = new TList();
1045 fQASecondaryProtonsAcceptedList->SetName("fQASecondaryProtonsAcceptedList");
1046 fGlobalQAList->Add(fQASecondaryProtonsAcceptedList);
1047
1048 fQASecondaryProtonsRejectedList = new TList();
1049 fQASecondaryProtonsRejectedList->SetName("fQASecondaryProtonsRejectedList");
1050 fGlobalQAList->Add(fQASecondaryProtonsRejectedList);
1051
1052 fQAPrimaryAntiProtonsAcceptedList = new TList();
1053 fQAPrimaryAntiProtonsAcceptedList->SetName("fQAPrimaryAntiProtonsAcceptedList");
1054 fGlobalQAList->Add(fQAPrimaryAntiProtonsAcceptedList);
1055
1056 fQAPrimaryAntiProtonsRejectedList = new TList();
1057 fQAPrimaryAntiProtonsRejectedList->SetName("fQAPrimaryAntiProtonsRejectedList");
1058 fGlobalQAList->Add(fQAPrimaryAntiProtonsRejectedList);
1059
1060 fQASecondaryAntiProtonsAcceptedList = new TList();
1061 fQASecondaryAntiProtonsAcceptedList->SetName("fQASecondaryAntiProtonsAcceptedList");
1062 fGlobalQAList->Add(fQASecondaryAntiProtonsAcceptedList);
1063
1064 fQASecondaryAntiProtonsRejectedList = new TList();
1065 fQASecondaryAntiProtonsRejectedList->SetName("fQASecondaryAntiProtonsRejectedList");
1066 fGlobalQAList->Add(fQASecondaryAntiProtonsRejectedList);
1067}
1068
1069//____________________________________________________________________//
e7df5638 1070void AliProtonQAAnalysis::SetQAYPtBins(Int_t nbinsY,
1071 Double_t minY, Double_t maxY,
1072 Int_t nbinsPt,
1073 Double_t minPt, Double_t maxPt) {
3e6c06f4 1074 //Initializes the QA binning
1075 fNBinsY = nbinsY;
1076 fMinY = minY; fMaxY = maxY;
1077 fNBinsPt = nbinsPt;
1078 fMinPt = minPt; fMaxPt = maxPt;
1079 InitQA();
5b8133c7 1080 InitCutLists();
75decd62 1081 InitVertexQA();
d4733690 1082 if(fRunMCAnalysis) InitMCAnalysis();
9c0b9f24 1083 if(fRunEfficiencyAnalysis) InitEfficiencyAnalysis();
1084}
1085
4acc9d4d 1086//____________________________________________________________________//
1087void AliProtonQAAnalysis::SetQAYPtBins(Int_t nbinsY, Double_t *gY,
1088 Int_t nbinsPt, Double_t *gPt) {
1089 //Initializes the QA binning - asymmetric binning case
1090 fUseAsymmetricBinning = kTRUE;
1091 fNBinsY = nbinsY;
1092 for(Int_t i = 0; i < nbinsY; i++) fY[i] = gY[i];
1093 fMinY = gY[0]; fMaxY = gY[nbinsPt];
1094 fNBinsPt = nbinsPt;
1095 for(Int_t i = 0; i < nbinsPt; i++) fPt[i] = gPt[i];
1096 fMinPt = gPt[0]; fMaxPt = gPt[nbinsPt];
1097 InitQA();
1098 InitCutLists();
1099 InitVertexQA();
1100 if(fRunMCAnalysis) InitMCAnalysis();
1101 if(fRunEfficiencyAnalysis) InitEfficiencyAnalysis();
1102}
1103
9c0b9f24 1104//____________________________________________________________________//
1105void AliProtonQAAnalysis::InitEfficiencyAnalysis() {
df201289 1106 //Initialization of the efficiency list - reconstruction & PID & cut
1107 //efficiency
9c0b9f24 1108 //Adding each monitored object in the list
1109 fEfficiencyList = new TList();
1110
1111 //MC primary protons and antiprotons for the reconstruction efficiency
4acc9d4d 1112 TH2D *gHistMCYPtProtons = 0x0;
1113 if(fUseAsymmetricBinning)
1114 gHistMCYPtProtons = new TH2D("gHistMCYPtProtons",
1115 ";;P_{T} [GeV/c]",
1116 fNBinsY,fY,fNBinsPt,fPt);
1117 else
1118 gHistMCYPtProtons = new TH2D("gHistMCYPtProtons",
1119 ";;P_{T} [GeV/c]",
1120 fNBinsY,fMinY,fMaxY,
1121 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1122 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1123 gHistMCYPtProtons->GetXaxis()->SetTitle("#eta");
1124 else
1125 gHistMCYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1126 gHistMCYPtProtons->SetStats(kTRUE);
1127 gHistMCYPtProtons->GetXaxis()->SetTitleColor(1);
1128 fEfficiencyList->Add(gHistMCYPtProtons);
4acc9d4d 1129 TH2D *gHistMCYPtAntiProtons = 0x0;
1130 if(fUseAsymmetricBinning)
1131 gHistMCYPtAntiProtons = new TH2D("gHistMCYPtAntiProtons",
1132 ";;P_{T} [GeV/c]",
1133 fNBinsY,fY,fNBinsPt,fPt);
1134 else
1135 gHistMCYPtAntiProtons = new TH2D("gHistMCYPtAntiProtons",
1136 ";y;P_{T} [GeV/c]",
1137 fNBinsY,fMinY,fMaxY,
1138 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1139 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1140 gHistMCYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1141 else
1142 gHistMCYPtAntiProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1143 gHistMCYPtAntiProtons->SetStats(kTRUE);
1144 gHistMCYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1145 fEfficiencyList->Add(gHistMCYPtAntiProtons);
1146
e13bbda6 1147 //MC secondary protons and antiprotons that come from weak decay for the reconstruction efficiency
4acc9d4d 1148 TH2D *gHistMCYPtProtonsFromWeak = 0x0;
1149 if(fUseAsymmetricBinning)
1150 gHistMCYPtProtonsFromWeak = new TH2D("gHistMCYPtProtonsFromWeak",
1151 ";;P_{T} [GeV/c]",
1152 fNBinsY,fY,fNBinsPt,fPt);
1153 else
1154 gHistMCYPtProtonsFromWeak = new TH2D("gHistMCYPtProtonsFromWeak",
1155 ";;P_{T} [GeV/c]",
1156 fNBinsY,fMinY,fMaxY,
1157 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1158 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1159 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1160 else
1161 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1162 gHistMCYPtProtonsFromWeak->SetStats(kTRUE);
1163 gHistMCYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1164 fEfficiencyList->Add(gHistMCYPtProtonsFromWeak);
4acc9d4d 1165 TH2D *gHistMCYPtAntiProtonsFromWeak = 0x0;
1166 if(fUseAsymmetricBinning)
1167 gHistMCYPtAntiProtonsFromWeak = new TH2D("gHistMCYPtAntiProtonsFromWeak",
1168 ";;P_{T} [GeV/c]",
1169 fNBinsY,fY,fNBinsPt,fPt);
1170 else
1171 gHistMCYPtAntiProtonsFromWeak = new TH2D("gHistMCYPtAntiProtonsFromWeak",
1172 ";y;P_{T} [GeV/c]",
1173 fNBinsY,fMinY,fMaxY,
1174 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1175 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1176 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1177 else
1178 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1179 gHistMCYPtAntiProtonsFromWeak->SetStats(kTRUE);
1180 gHistMCYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1181 fEfficiencyList->Add(gHistMCYPtAntiProtonsFromWeak);
1182
1183 //MC secondary protons and antiprotons that come from hadronic interactions for the reconstruction efficiency
4acc9d4d 1184 TH2D *gHistMCYPtProtonsFromHadronic = 0x0;
1185 if(fUseAsymmetricBinning)
1186 gHistMCYPtProtonsFromHadronic = new TH2D("gHistMCYPtProtonsFromHadronic",
1187 ";;P_{T} [GeV/c]",
1188 fNBinsY,fY,fNBinsPt,fPt);
1189 else
1190 gHistMCYPtProtonsFromHadronic = new TH2D("gHistMCYPtProtonsFromHadronic",
1191 ";;P_{T} [GeV/c]",
1192 fNBinsY,fMinY,fMaxY,
1193 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1194 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1195 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1196 else
1197 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1198 gHistMCYPtProtonsFromHadronic->SetStats(kTRUE);
1199 gHistMCYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1200 fEfficiencyList->Add(gHistMCYPtProtonsFromHadronic);
4acc9d4d 1201 TH2D *gHistMCYPtAntiProtonsFromHadronic = 0x0;
1202 if(fUseAsymmetricBinning)
1203 gHistMCYPtAntiProtonsFromHadronic = new TH2D("gHistMCYPtAntiProtonsFromHadronic",
1204 ";;P_{T} [GeV/c]",
1205 fNBinsY,fY,fNBinsPt,fPt);
1206 else
1207 gHistMCYPtAntiProtonsFromHadronic = new TH2D("gHistMCYPtAntiProtonsFromHadronic",
1208 ";y;P_{T} [GeV/c]",
1209 fNBinsY,fMinY,fMaxY,
1210 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1211 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1212 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1213 else
1214 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1215 gHistMCYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1216 gHistMCYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1217 fEfficiencyList->Add(gHistMCYPtAntiProtonsFromHadronic);
1218
9c0b9f24 1219 //ESD primary protons and antiprotons for the reconstruction efficiency
4acc9d4d 1220 TH2D *gHistESDYPtProtons = 0x0;
1221 if(fUseAsymmetricBinning)
1222 gHistESDYPtProtons = new TH2D("gHistESDYPtProtons",
1223 ";;P_{T} [GeV/c]",
1224 fNBinsY,fY,fNBinsPt,fPt);
1225 else
1226 gHistESDYPtProtons = new TH2D("gHistESDYPtProtons",
1227 ";;P_{T} [GeV/c]",
1228 fNBinsY,fMinY,fMaxY,
1229 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1230 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1231 gHistESDYPtProtons->GetXaxis()->SetTitle("#eta");
1232 else
1233 gHistESDYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1234 gHistESDYPtProtons->SetStats(kTRUE);
1235 gHistESDYPtProtons->GetXaxis()->SetTitleColor(1);
1236 fEfficiencyList->Add(gHistESDYPtProtons);
4acc9d4d 1237 TH2D *gHistESDYPtAntiProtons = 0x0;
1238 if(fUseAsymmetricBinning)
1239 gHistESDYPtAntiProtons = new TH2D("gHistESDYPtAntiProtons",
1240 ";;P_{T} [GeV/c]",
1241 fNBinsY,fY,fNBinsPt,fPt);
1242 else
1243 gHistESDYPtAntiProtons = new TH2D("gHistESDYPtAntiProtons",
1244 ";;P_{T} [GeV/c]",
1245 fNBinsY,fMinY,fMaxY,
1246 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1247 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1248 gHistESDYPtAntiProtons->GetXaxis()->SetTitle("#eta");
1249 else
1250 gHistESDYPtAntiProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1251 gHistESDYPtAntiProtons->SetStats(kTRUE);
1252 gHistESDYPtAntiProtons->GetXaxis()->SetTitleColor(1);
1253 fEfficiencyList->Add(gHistESDYPtAntiProtons);
1254
e13bbda6 1255 //ESD (anti)protons from weak decays for the reconstruction efficiency
4acc9d4d 1256 TH2D *gHistESDYPtProtonsFromWeak = 0x0;
1257 if(fUseAsymmetricBinning)
1258 gHistESDYPtProtonsFromWeak = new TH2D("gHistESDYPtProtonsFromWeak",
1259 ";;P_{T} [GeV/c]",
1260 fNBinsY,fY,fNBinsPt,fPt);
1261 else
1262 gHistESDYPtProtonsFromWeak = new TH2D("gHistESDYPtProtonsFromWeak",
1263 ";;P_{T} [GeV/c]",
1264 fNBinsY,fMinY,fMaxY,
1265 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1266 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1267 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1268 else
1269 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitle("y");
1270 gHistESDYPtProtonsFromWeak->SetStats(kTRUE);
1271 gHistESDYPtProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1272 fEfficiencyList->Add(gHistESDYPtProtonsFromWeak);
4acc9d4d 1273 TH2D *gHistESDYPtAntiProtonsFromWeak = 0x0;
1274 if(fUseAsymmetricBinning)
1275 gHistESDYPtAntiProtonsFromWeak = new TH2D("gHistESDYPtAntiProtonsFromWeak",
1276 ";;P_{T} [GeV/c]",
1277 fNBinsY,fY,fNBinsPt,fPt);
1278 else
1279 gHistESDYPtAntiProtonsFromWeak = new TH2D("gHistESDYPtAntiProtonsFromWeak",
1280 ";;P_{T} [GeV/c]",
1281 fNBinsY,fMinY,fMaxY,
1282 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1283 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1284 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("#eta");
1285 else
1286 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitle("y");
1287 gHistESDYPtAntiProtonsFromWeak->SetStats(kTRUE);
1288 gHistESDYPtAntiProtonsFromWeak->GetXaxis()->SetTitleColor(1);
1289 fEfficiencyList->Add(gHistESDYPtAntiProtonsFromWeak);
1290
1291 //ESD (anti)protons from hadronic interactions for the reconstruction efficiency
4acc9d4d 1292 TH2D *gHistESDYPtProtonsFromHadronic = 0x0;
1293 if(fUseAsymmetricBinning)
1294 gHistESDYPtProtonsFromHadronic = new TH2D("gHistESDYPtProtonsFromHadronic",
1295 ";;P_{T} [GeV/c]",
1296 fNBinsY,fY,fNBinsPt,fPt);
1297 else
1298 gHistESDYPtProtonsFromHadronic = new TH2D("gHistESDYPtProtonsFromHadronic",
1299 ";;P_{T} [GeV/c]",
1300 fNBinsY,fMinY,fMaxY,
1301 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1302 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1303 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1304 else
1305 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitle("y");
1306 gHistESDYPtProtonsFromHadronic->SetStats(kTRUE);
1307 gHistESDYPtProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1308 fEfficiencyList->Add(gHistESDYPtProtonsFromHadronic);
4acc9d4d 1309 TH2D *gHistESDYPtAntiProtonsFromHadronic = 0x0;
1310 if(fUseAsymmetricBinning)
1311 gHistESDYPtAntiProtonsFromHadronic = new TH2D("gHistESDYPtAntiProtonsFromHadronic",
1312 ";;P_{T} [GeV/c]",
1313 fNBinsY,fY,fNBinsPt,fPt);
1314 else
1315 gHistESDYPtAntiProtonsFromHadronic = new TH2D("gHistESDYPtAntiProtonsFromHadronic",
1316 ";;P_{T} [GeV/c]",
1317 fNBinsY,fMinY,fMaxY,
1318 fNBinsPt,fMinPt,fMaxPt);
e7df5638 1319 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1320 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("#eta");
1321 else
1322 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitle("y");
1323 gHistESDYPtAntiProtonsFromHadronic->SetStats(kTRUE);
1324 gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->SetTitleColor(1);
1325 fEfficiencyList->Add(gHistESDYPtAntiProtonsFromHadronic);
1326
9c0b9f24 1327 //ESD reconstructed tracks that were initially protons for the PID efficiency
4acc9d4d 1328 TH3D *gHistESDInitYPtProtons = 0x0;
1329 if(fUseAsymmetricBinning) {
1330 Double_t gNPoints[51];
1331 for(Int_t i = 0; i < 51; i++)
1332 gNPoints[i] = i*4;
1333 gHistESDInitYPtProtons = new TH3D("gHistESDInitYPtProtons",
1334 ";;P_{T} [GeV/c];N_{points}",
1335 fNBinsY,fY,fNBinsPt,fPt,50,gNPoints);
1336 }
1337 else
1338 gHistESDInitYPtProtons = new TH3D("gHistESDInitYPtProtons",
1339 ";;P_{T} [GeV/c];N_{points}",
1340 fNBinsY,fMinY,fMaxY,
1341 fNBinsPt,fMinPt,fMaxPt,
1342 50,0,200);
e7df5638 1343 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1344 gHistESDInitYPtProtons->GetXaxis()->SetTitle("#eta");
1345 else
1346 gHistESDInitYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1347 gHistESDInitYPtProtons->SetStats(kTRUE);
1348 gHistESDInitYPtProtons->GetXaxis()->SetTitleColor(1);
1349 fEfficiencyList->Add(gHistESDInitYPtProtons);
1350
1351 //ESD reconstructed tracks that were initially protons and were identified as protons for the PID efficiency
4acc9d4d 1352 TH3D *gHistESDIdYPtProtons = 0x0;
1353 if(fUseAsymmetricBinning) {
1354 Double_t gNPoints[51];
1355 for(Int_t i = 0; i < 51; i++)
1356 gNPoints[i] = i*4;
1357 gHistESDIdYPtProtons = new TH3D("gHistESDIdYPtProtons",
1358 ";;P_{T} [GeV/c];N_{points}",
1359 fNBinsY,fY,fNBinsPt,fPt,50,gNPoints);
1360 }
1361 else
1362 gHistESDIdYPtProtons = new TH3D("gHistESDIdYPtProtons",
1363 ";;P_{T} [GeV/c];N_{points}",
1364 fNBinsY,fMinY,fMaxY,
1365 fNBinsPt,fMinPt,fMaxPt,
1366 50,0,200);
e7df5638 1367 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1368 gHistESDIdYPtProtons->GetXaxis()->SetTitle("#eta");
1369 else
1370 gHistESDIdYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1371 gHistESDIdYPtProtons->SetStats(kTRUE);
1372 gHistESDIdYPtProtons->GetXaxis()->SetTitleColor(1);
1373 fEfficiencyList->Add(gHistESDIdYPtProtons);
1374
1375 //ESD reconstructed tracks that were identified as protons for the PID contamination
4acc9d4d 1376 TH3D *gHistESDRecIdYPtProtons = 0x0;
1377 if(fUseAsymmetricBinning) {
1378 Double_t gNPoints[51];
1379 for(Int_t i = 0; i < 51; i++)
1380 gNPoints[i] = i*4;
1381 gHistESDRecIdYPtProtons = new TH3D("gHistESDRecIdYPtProtons",
1382 ";;P_{T} [GeV/c];N_{points}",
1383 fNBinsY,fY,fNBinsPt,fPt,50,gNPoints);
1384 }
1385 else
1386 gHistESDRecIdYPtProtons = new TH3D("gHistESDRecIdYPtProtons",
1387 ";;P_{T} [GeV/c];N_{points}",
1388 fNBinsY,fMinY,fMaxY,
1389 fNBinsPt,fMinPt,fMaxPt,
1390 50,0,200);
e7df5638 1391 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1392 gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("#eta");
1393 else
1394 gHistESDRecIdYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1395 gHistESDRecIdYPtProtons->SetStats(kTRUE);
1396 gHistESDRecIdYPtProtons->GetXaxis()->SetTitleColor(1);
1397 fEfficiencyList->Add(gHistESDRecIdYPtProtons);
1398
1399 //ESD reconstructed tracks that were identified as protons but were initially not protons for the PID contamination
4acc9d4d 1400 TH3D *gHistESDContamYPtProtons = 0x0;
1401 if(fUseAsymmetricBinning) {
1402 Double_t gNPoints[51];
1403 for(Int_t i = 0; i < 51; i++)
1404 gNPoints[i] = i*4;
1405 gHistESDContamYPtProtons = new TH3D("gHistESDContamYPtProtons",
1406 ";;P_{T} [GeV/c];N_{points}",
1407 fNBinsY,fY,fNBinsPt,fPt,50,gNPoints);
1408 }
1409 else
1410 gHistESDContamYPtProtons = new TH3D("gHistESDContamYPtProtons",
1411 ";;P_{T} [GeV/c];N_{points}",
1412 fNBinsY,fMinY,fMaxY,
1413 fNBinsPt,fMinPt,fMaxPt,
1414 50,0,200);
e7df5638 1415 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 1416 gHistESDContamYPtProtons->GetXaxis()->SetTitle("#eta");
1417 else
1418 gHistESDContamYPtProtons->GetXaxis()->SetTitle("y");
9c0b9f24 1419 gHistESDContamYPtProtons->SetStats(kTRUE);
1420 gHistESDContamYPtProtons->GetXaxis()->SetTitleColor(1);
1421 fEfficiencyList->Add(gHistESDContamYPtProtons);
df201289 1422
1423 //==============//
1424 //Cut efficiency//
1425 //==============//
1426 fCutEfficiencyList = new TList();
1427 //Reconstructed primary tracks that were identified as protons
1428 TH2D *gHistESDYPtProtonsTotal = 0x0;
1429 if(fUseAsymmetricBinning)
1430 gHistESDYPtProtonsTotal = new TH2D("gHistESDYPtProtonsTotal",
1431 ";;P_{T} [GeV/c]",
1432 fNBinsY,fY,fNBinsPt,fPt);
1433 else
1434 gHistESDYPtProtonsTotal = new TH2D("gHistESDYPtProtonsTotal",
1435 ";;P_{T} [GeV/c]",
1436 fNBinsY,fMinY,fMaxY,
1437 fNBinsPt,fMinPt,fMaxPt);
1438 if(fProtonAnalysisBase->GetEtaMode())
1439 gHistESDYPtProtonsTotal->GetXaxis()->SetTitle("#eta");
1440 else
1441 gHistESDYPtProtonsTotal->GetXaxis()->SetTitle("y");
1442 gHistESDYPtProtonsTotal->SetStats(kTRUE);
1443 gHistESDYPtProtonsTotal->GetXaxis()->SetTitleColor(1);
1444 fCutEfficiencyList->Add(gHistESDYPtProtonsTotal);
1445
1446 //Reconstructed primary tracks that were identified as antiprotons
1447 TH2D *gHistESDYPtAntiProtonsTotal = 0x0;
1448 if(fUseAsymmetricBinning)
1449 gHistESDYPtAntiProtonsTotal = new TH2D("gHistESDYPtAntiProtonsTotal",
1450 ";;P_{T} [GeV/c]",
1451 fNBinsY,fY,fNBinsPt,fPt);
1452 else
1453 gHistESDYPtAntiProtonsTotal = new TH2D("gHistESDYPtAntiProtonsTotal",
1454 ";;P_{T} [GeV/c]",
1455 fNBinsY,fMinY,fMaxY,
1456 fNBinsPt,fMinPt,fMaxPt);
1457 if(fProtonAnalysisBase->GetEtaMode())
1458 gHistESDYPtAntiProtonsTotal->GetXaxis()->SetTitle("#eta");
1459 else
1460 gHistESDYPtAntiProtonsTotal->GetXaxis()->SetTitle("y");
1461 gHistESDYPtAntiProtonsTotal->SetStats(kTRUE);
1462 gHistESDYPtAntiProtonsTotal->GetXaxis()->SetTitleColor(1);
1463 fCutEfficiencyList->Add(gHistESDYPtAntiProtonsTotal);
1464
1465 //Reconstructed, survived primary tracks that were identified as protons
1466 TH2D *gHistESDYPtProtonsSurvived = 0x0;
1467 if(fUseAsymmetricBinning)
1468 gHistESDYPtProtonsSurvived = new TH2D("gHistESDYPtProtonsSurvived",
1469 ";;P_{T} [GeV/c]",
1470 fNBinsY,fY,fNBinsPt,fPt);
1471 else
1472 gHistESDYPtProtonsSurvived = new TH2D("gHistESDYPtProtonsSurvived",
1473 ";;P_{T} [GeV/c]",
1474 fNBinsY,fMinY,fMaxY,
1475 fNBinsPt,fMinPt,fMaxPt);
1476 if(fProtonAnalysisBase->GetEtaMode())
1477 gHistESDYPtProtonsSurvived->GetXaxis()->SetTitle("#eta");
1478 else
1479 gHistESDYPtProtonsSurvived->GetXaxis()->SetTitle("y");
1480 gHistESDYPtProtonsSurvived->SetStats(kTRUE);
1481 gHistESDYPtProtonsSurvived->GetXaxis()->SetTitleColor(1);
1482 fCutEfficiencyList->Add(gHistESDYPtProtonsSurvived);
1483
1484 //Reconstructed, survived primary tracks that were identified as antiprotons
1485 TH2D *gHistESDYPtAntiProtonsSurvived = 0x0;
1486 if(fUseAsymmetricBinning)
1487 gHistESDYPtAntiProtonsSurvived = new TH2D("gHistESDYPtAntiProtonsSurvived",
1488 ";;P_{T} [GeV/c]",
1489 fNBinsY,fY,fNBinsPt,fPt);
1490 else
1491 gHistESDYPtAntiProtonsSurvived = new TH2D("gHistESDYPtAntiProtonsSurvived",
1492 ";;P_{T} [GeV/c]",
1493 fNBinsY,fMinY,fMaxY,
1494 fNBinsPt,fMinPt,fMaxPt);
1495 if(fProtonAnalysisBase->GetEtaMode())
1496 gHistESDYPtAntiProtonsSurvived->GetXaxis()->SetTitle("#eta");
1497 else
1498 gHistESDYPtAntiProtonsSurvived->GetXaxis()->SetTitle("y");
1499 gHistESDYPtAntiProtonsSurvived->SetStats(kTRUE);
1500 gHistESDYPtAntiProtonsSurvived->GetXaxis()->SetTitleColor(1);
1501 fCutEfficiencyList->Add(gHistESDYPtAntiProtonsSurvived);
3e6c06f4 1502}
1503
5b8133c7 1504//____________________________________________________________________//
1505void AliProtonQAAnalysis::InitCutLists() {
1506 //Initialization of the cut lists
1507 //Adding each monitored object in each list
1508
1509 //Accepted cut list
1510 fAcceptedCutList = new TList();
1511 TH1F *gPrimaryProtonsClustersOnITSLayers = new TH1F("gPrimaryProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1512 fAcceptedCutList->Add(gPrimaryProtonsClustersOnITSLayers);
1513 TH1F *gPrimaryAntiProtonsClustersOnITSLayers = new TH1F("gPrimaryAntiProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1514 fAcceptedCutList->Add(gPrimaryAntiProtonsClustersOnITSLayers);
1515 TH1F *gSecondaryProtonsClustersOnITSLayers = new TH1F("gSecondaryProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1516 fAcceptedCutList->Add(gSecondaryProtonsClustersOnITSLayers);
1517 TH1F *gSecondaryAntiProtonsClustersOnITSLayers = new TH1F("gSecondaryAntiProtonsClustersOnITSLayers",";ITS Layer;Entries",6,0.5,6.5);
1518 fAcceptedCutList->Add(gSecondaryAntiProtonsClustersOnITSLayers);
1519
1520 TH1F *gPrimaryProtonsNClustersITS = new TH1F("gPrimaryProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1521 fAcceptedCutList->Add(gPrimaryProtonsNClustersITS);
1522 TH1F *gPrimaryAntiProtonsNClustersITS = new TH1F("gPrimaryAntiProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1523 fAcceptedCutList->Add(gPrimaryAntiProtonsNClustersITS);
1524 TH1F *gSecondaryProtonsNClustersITS = new TH1F("gSecondaryProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1525 fAcceptedCutList->Add(gSecondaryProtonsNClustersITS);
1526 TH1F *gSecondaryAntiProtonsNClustersITS = new TH1F("gSecondaryAntiProtonsNClustersITS",";ITS Layer;Entries",6,0.5,6.5);
1527 fAcceptedCutList->Add(gSecondaryAntiProtonsNClustersITS);
1528
1529 TH1F *gPrimaryProtonsChi2PerClusterITS = new TH1F("gPrimaryProtonsChi2PerClusterITS",
1530 ";x^{2}/N_{clusters} (ITS);Entries",
1531 100,0,20);
1532 fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterITS);
1533 TH1F *gPrimaryAntiProtonsChi2PerClusterITS = new TH1F("gPrimaryAntiProtonsChi2PerClusterITS",
1534 ";x^{2}/N_{clusters} (ITS);Entries",
1535 100,0,20);
1536 fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterITS);
1537 TH1F *gSecondaryProtonsChi2PerClusterITS = new TH1F("gSecondaryProtonsChi2PerClusterITS",
1538 ";x^{2}/N_{clusters} (ITS);Entries",
1539 100,0,20);
1540 fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterITS);
1541 TH1F *gSecondaryAntiProtonsChi2PerClusterITS = new TH1F("gSecondaryAntiProtonsChi2PerClusterITS",
1542 ";x^{2}/N_{clusters} (ITS);Entries",
1543 100,0,20);
1544 fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterITS);
1545
1546 TH1F *gPrimaryProtonsConstrainChi2 = new TH1F("gPrimaryProtonsConstrainChi2",
1547 ";Log_{10}(#chi^{2});Entries",
1548 100,-10,10);
1549 fAcceptedCutList->Add(gPrimaryProtonsConstrainChi2);
1550 TH1F *gPrimaryAntiProtonsConstrainChi2 = new TH1F("gPrimaryAntiProtonsConstrainChi2",
1551 ";Log_{10}(#chi^{2});Entries",
1552 100,-10,10);
1553 fAcceptedCutList->Add(gPrimaryAntiProtonsConstrainChi2);
1554 TH1F *gSecondaryProtonsConstrainChi2 = new TH1F("gSecondaryProtonsConstrainChi2",
1555 ";Log_{10}(#chi^{2});Entries",
1556 100,-10,10);
1557 fAcceptedCutList->Add(gSecondaryProtonsConstrainChi2);
1558 TH1F *gSecondaryAntiProtonsConstrainChi2 = new TH1F("gSecondaryAntiProtonsConstrainChi2",
1559 ";Log_{10}(#chi^{2});Entries",
1560 100,-10,10);
1561 fAcceptedCutList->Add(gSecondaryAntiProtonsConstrainChi2);
1562
1563 TH1F *gPrimaryProtonsTPCClusters = new TH1F("gPrimaryProtonsTPCClusters",
1564 ";N_{clusters} (TPC);Entries",
1565 100,0,200);
1566 fAcceptedCutList->Add(gPrimaryProtonsTPCClusters);
1567 TH1F *gPrimaryAntiProtonsTPCClusters = new TH1F("gPrimaryAntiProtonsTPCClusters",
1568 ";N_{clusters} (TPC);Entries",
1569 100,0,200);
1570 fAcceptedCutList->Add(gPrimaryAntiProtonsTPCClusters);
1571 TH1F *gSecondaryProtonsTPCClusters = new TH1F("gSecondaryProtonsTPCClusters",
1572 ";N_{clusters} (TPC);Entries",
1573 100,0,200);
1574 fAcceptedCutList->Add(gSecondaryProtonsTPCClusters);
1575 TH1F *gSecondaryAntiProtonsTPCClusters = new TH1F("gSecondaryAntiProtonsTPCClusters",
1576 ";N_{clusters} (TPC);Entries",
1577 100,0,200);
1578 fAcceptedCutList->Add(gSecondaryAntiProtonsTPCClusters);
1579
1580 TH1F *gPrimaryProtonsChi2PerClusterTPC = new TH1F("gPrimaryProtonsChi2PerClusterTPC",
1581 ";x^{2}/N_{clusters} (TPC);Entries",
1582 100,0,4);
1583 fAcceptedCutList->Add(gPrimaryProtonsChi2PerClusterTPC);
1584 TH1F *gPrimaryAntiProtonsChi2PerClusterTPC = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPC",
1585 ";x^{2}/N_{clusters} (TPC);Entries",
1586 100,0,4);
1587 fAcceptedCutList->Add(gPrimaryAntiProtonsChi2PerClusterTPC);
1588 TH1F *gSecondaryProtonsChi2PerClusterTPC = new TH1F("gSecondaryProtonsChi2PerClusterTPC",
1589 ";x^{2}/N_{clusters} (TPC);Entries",
1590 100,0,4);
1591 fAcceptedCutList->Add(gSecondaryProtonsChi2PerClusterTPC);
1592 TH1F *gSecondaryAntiProtonsChi2PerClusterTPC = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPC",
1593 ";x^{2}/N_{clusters} (TPC);Entries",
1594 100,0,4);
1595 fAcceptedCutList->Add(gSecondaryAntiProtonsChi2PerClusterTPC);
1596
1597 TH1F *gPrimaryProtonsExtCov11 = new TH1F("gPrimaryProtonsExtCov11",
1598 ";#sigma_{y} [cm];Entries",
1599 100,0,4);
1600 fAcceptedCutList->Add(gPrimaryProtonsExtCov11);
1601 TH1F *gPrimaryAntiProtonsExtCov11 = new TH1F("gPrimaryAntiProtonsExtCov11",
1602 ";#sigma_{y} [cm];Entries",
1603 100,0,4);
1604 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov11);
1605 TH1F *gSecondaryProtonsExtCov11 = new TH1F("gSecondaryProtonsExtCov11",
1606 ";#sigma_{y} [cm];Entries",
1607 100,0,4);
1608 fAcceptedCutList->Add(gSecondaryProtonsExtCov11);
1609 TH1F *gSecondaryAntiProtonsExtCov11 = new TH1F("gSecondaryAntiProtonsExtCov11",
1610 ";#sigma_{y} [cm];Entries",
1611 100,0,4);
1612 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov11);
1613
1614
1615 TH1F *gPrimaryProtonsExtCov22 = new TH1F("gPrimaryProtonsExtCov22",
1616 ";#sigma_{z} [cm];Entries",
1617 100,0,4);
1618 fAcceptedCutList->Add(gPrimaryProtonsExtCov22);
1619 TH1F *gPrimaryAntiProtonsExtCov22 = new TH1F("gPrimaryAntiProtonsExtCov22",
1620 ";#sigma_{z} [cm];Entries",
1621 100,0,4);
1622 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov22);
1623 TH1F *gSecondaryProtonsExtCov22 = new TH1F("gSecondaryProtonsExtCov22",
1624 ";#sigma_{z} [cm];Entries",
1625 100,0,4);
1626 fAcceptedCutList->Add(gSecondaryProtonsExtCov22);
1627 TH1F *gSecondaryAntiProtonsExtCov22 = new TH1F("gSecondaryAntiProtonsExtCov22",
1628 ";#sigma_{z} [cm];Entries",
1629 100,0,4);
1630 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov22);
1631
1632
1633 TH1F *gPrimaryProtonsExtCov33 = new TH1F("gPrimaryProtonsExtCov33",
1634 ";#sigma_{sin(#phi)};Entries",
1635 100,0,4);
1636 fAcceptedCutList->Add(gPrimaryProtonsExtCov33);
1637 TH1F *gPrimaryAntiProtonsExtCov33 = new TH1F("gPrimaryAntiProtonsExtCov33",
1638 ";#sigma_{sin(#phi)};Entries",
1639 100,0,4);
1640 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov33);
1641 TH1F *gSecondaryProtonsExtCov33 = new TH1F("gSecondaryProtonsExtCov33",
1642 ";#sigma_{sin(#phi)};Entries",
1643 100,0,4);
1644 fAcceptedCutList->Add(gSecondaryProtonsExtCov33);
1645 TH1F *gSecondaryAntiProtonsExtCov33 = new TH1F("gSecondaryAntiProtonsExtCov33",
1646 ";#sigma_{sin(#phi)};Entries",
1647 100,0,4);
1648 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov33);
1649
1650
1651 TH1F *gPrimaryProtonsExtCov44 = new TH1F("gPrimaryProtonsExtCov44",
1652 ";#sigma_{tan(#lambda)};Entries",
1653 100,0,4);
1654 fAcceptedCutList->Add(gPrimaryProtonsExtCov44);
1655 TH1F *gPrimaryAntiProtonsExtCov44 = new TH1F("gPrimaryAntiProtonsExtCov44",
1656 ";#sigma_{tan(#lambda)};Entries",
1657 100,0,4);
1658 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov44);
1659 TH1F *gSecondaryProtonsExtCov44 = new TH1F("gSecondaryProtonsExtCov44",
1660 ";#sigma_{tan(#lambda)};Entries",
1661 100,0,4);
1662 fAcceptedCutList->Add(gSecondaryProtonsExtCov44);
1663 TH1F *gSecondaryAntiProtonsExtCov44 = new TH1F("gSecondaryAntiProtonsExtCov44",
1664 ";#sigma_{tan(#lambda)};Entries",
1665 100,0,4);
1666 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov44);
1667
1668
1669 TH1F *gPrimaryProtonsExtCov55 = new TH1F("gPrimaryProtonsExtCov55",
1670 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1671 100,0,4);
1672 fAcceptedCutList->Add(gPrimaryProtonsExtCov55);
1673 TH1F *gPrimaryAntiProtonsExtCov55 = new TH1F("gPrimaryAntiProtonsExtCov55",
1674 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1675 100,0,4);
1676 fAcceptedCutList->Add(gPrimaryAntiProtonsExtCov55);
1677 TH1F *gSecondaryProtonsExtCov55 = new TH1F("gSecondaryProtonsExtCov55",
1678 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1679 100,0,4);
1680 fAcceptedCutList->Add(gSecondaryProtonsExtCov55);
1681 TH1F *gSecondaryAntiProtonsExtCov55 = new TH1F("gSecondaryAntiProtonsExtCov55",
1682 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
1683 100,0,4);
1684 fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov55);
5661e210 1685 //eta-phi-Nclusters
1686 TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryProtonsPass",
1687 "Accepted primary protons;#eta;#phi;N_{clusters}(TPC)",
1688 fNBinsY,fMinY,fMaxY,
1689 100,0,360,
1690 100,0,200);
1691 gHistEtaPhiNClustersPrimaryProtonsPass->SetStats(kTRUE);
1692 gHistEtaPhiNClustersPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1693 fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1694 TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsPass",
1695 "Accepted primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1696 fNBinsY,fMinY,fMaxY,
1697 100,0,360,
1698 100,0,200);
1699 gHistEtaPhiNClustersPrimaryAntiProtonsPass->SetStats(kTRUE);
1700 gHistEtaPhiNClustersPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1701 fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1702 TH3D *gHistEtaPhiNClustersSecondaryProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryProtonsPass",
1703 "Accepted secondary protons;#eta;#phi;N_{clusters}(TPC)",
1704 fNBinsY,fMinY,fMaxY,
1705 100,0,360,
1706 100,0,200);
1707 gHistEtaPhiNClustersSecondaryProtonsPass->SetStats(kTRUE);
1708 gHistEtaPhiNClustersSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1709 fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1710 TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsPass",
1711 "Accepted secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1712 fNBinsY,fMinY,fMaxY,
1713 100,0,360,
1714 100,0,200);
1715 gHistEtaPhiNClustersSecondaryAntiProtonsPass->SetStats(kTRUE);
1716 gHistEtaPhiNClustersSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1717 fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
57e749bb 1718 //eta-phi-chi^2 per TPC cluster
1719 TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass",
1720 "Accepted primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1721 fNBinsY,fMinY,fMaxY,
1722 100,0,360,
1723 100,0,4);
1724 gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->SetStats(kTRUE);
1725 gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1726 fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1727 TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass",
1728 "Accepted primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1729 fNBinsY,fMinY,fMaxY,
1730 100,0,360,
1731 100,0,4);
1732 gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->SetStats(kTRUE);
1733 gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1734 fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1735 TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass",
1736 "Accepted secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1737 fNBinsY,fMinY,fMaxY,
1738 100,0,360,
1739 100,0,4);
1740 gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->SetStats(kTRUE);
1741 gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1742 fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1743 TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass",
1744 "Accepted secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1745 fNBinsY,fMinY,fMaxY,
1746 100,0,360,
1747 100,0,4);
1748 gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->SetStats(kTRUE);
1749 gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1750 fAcceptedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1751 //eta-phi-number of TPC points for the dE/dx
1752 TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass",
724d7ba9 1753 "Accepted primary protons;#eta;#phi;N_{points}(TPC)",
57e749bb 1754 fNBinsY,fMinY,fMaxY,
1755 100,0,360,
1756 100,0,200);
1757 gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->SetStats(kTRUE);
1758 gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
1759 fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
1760 TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass",
724d7ba9 1761 "Accepted primary antiprotons;#eta;#phi;N_{points}(TPC)",
57e749bb 1762 fNBinsY,fMinY,fMaxY,
1763 100,0,360,
1764 100,0,200);
1765 gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->SetStats(kTRUE);
1766 gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1767 fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
1768 TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass",
724d7ba9 1769 "Accepted secondary protons;#eta;#phi;N_{points}(TPC)",
57e749bb 1770 fNBinsY,fMinY,fMaxY,
1771 100,0,360,
1772 100,0,200);
1773 gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->SetStats(kTRUE);
1774 gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
1775 fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
1776 TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass",
724d7ba9 1777 "Accepted secondary antiprotons;#eta;#phi;N_{points}(TPC)",
57e749bb 1778 fNBinsY,fMinY,fMaxY,
1779 100,0,360,
1780 100,0,200);
1781 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->SetStats(kTRUE);
1782 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
1783 fAcceptedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
1784
1785 TH1F *gPrimaryProtonsNPointsTPCdEdx = new TH1F("gPrimaryProtonsNPointsTPCdEdx",
1786 ";N_{points} (TPC-dE/dx);Entries",
1787 100,0,200);
1788 fAcceptedCutList->Add(gPrimaryProtonsNPointsTPCdEdx);
1789 TH1F *gPrimaryAntiProtonsNPointsTPCdEdx = new TH1F("gPrimaryAntiProtonsNPointsTPCdEdx",
1790 ";N_{points} (TPC-dE/dx);Entries",
1791 100,0,200);
1792 fAcceptedCutList->Add(gPrimaryAntiProtonsNPointsTPCdEdx);
1793 TH1F *gSecondaryProtonsNPointsTPCdEdx = new TH1F("gSecondaryProtonsNPointsTPCdEdx",
1794 ";N_{points} (TPC-dE/dx);Entries",
1795 100,0,200);
1796 fAcceptedCutList->Add(gSecondaryProtonsNPointsTPCdEdx);
1797 TH1F *gSecondaryAntiProtonsNPointsTPCdEdx = new TH1F("gSecondaryAntiProtonsNPointsTPCdEdx",
1798 ";N_{points} (TPC-dE/dx);Entries",
1799 100,0,200);
1800 fAcceptedCutList->Add(gSecondaryAntiProtonsNPointsTPCdEdx);
5661e210 1801
1802 //Rejected cut list
1803 fRejectedCutList = new TList();
1804 //eta-phi-Nclusters
1805 TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryProtonsReject",
1806 "Rejected primary protons;#eta;#phi;N_{clusters}(TPC)",
1807 fNBinsY,fMinY,fMaxY,
1808 100,0,360,
1809 100,0,200);
1810 gHistEtaPhiNClustersPrimaryProtonsReject->SetStats(kTRUE);
1811 gHistEtaPhiNClustersPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1812 fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1813 TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsReject",
1814 "Rejected primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1815 fNBinsY,fMinY,fMaxY,
1816 100,0,360,
1817 100,0,200);
1818 gHistEtaPhiNClustersPrimaryAntiProtonsReject->SetStats(kTRUE);
1819 gHistEtaPhiNClustersPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1820 fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1821 TH3D *gHistEtaPhiNClustersSecondaryProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryProtonsReject",
1822 "Rejected secondary protons;#eta;#phi;N_{clusters}(TPC)",
1823 fNBinsY,fMinY,fMaxY,
1824 100,0,360,
1825 100,0,200);
1826 gHistEtaPhiNClustersSecondaryProtonsReject->SetStats(kTRUE);
1827 gHistEtaPhiNClustersSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1828 fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1829 TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsReject",
1830 "Rejected secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
1831 fNBinsY,fMinY,fMaxY,
1832 100,0,360,
1833 100,0,200);
1834 gHistEtaPhiNClustersSecondaryAntiProtonsReject->SetStats(kTRUE);
1835 gHistEtaPhiNClustersSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1836 fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
57e749bb 1837 //eta-phi-chi^2 per TPC cluster
1838 TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject",
1839 "Rejected primary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1840 fNBinsY,fMinY,fMaxY,
1841 100,0,360,
1842 100,0,4);
1843 gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject->SetStats(kTRUE);
1844 gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1845 fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1846 TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject",
1847 "Rejected primary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1848 fNBinsY,fMinY,fMaxY,
1849 100,0,360,
1850 100,0,4);
1851 gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject->SetStats(kTRUE);
1852 gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1853 fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1854 TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject",
1855 "Rejected secondary protons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1856 fNBinsY,fMinY,fMaxY,
1857 100,0,360,
1858 100,0,4);
1859 gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject->SetStats(kTRUE);
1860 gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1861 fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1862 TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject",
1863 "Rejected secondary antiprotons;#eta;#phi;#chi^{2}/N_{clusters}(TPC)",
1864 fNBinsY,fMinY,fMaxY,
1865 100,0,360,
1866 100,0,4);
1867 gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject->SetStats(kTRUE);
1868 gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1869 fRejectedCutList->Add(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
1870 //eta-phi-number of TPC points for the dE/dx
1871 TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject",
724d7ba9 1872 "Rejected primary protons;#eta;#phi;N_{points}(TPC)",
57e749bb 1873 fNBinsY,fMinY,fMaxY,
1874 100,0,360,
1875 100,0,200);
1876 gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject->SetStats(kTRUE);
1877 gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
1878 fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
1879 TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject",
724d7ba9 1880 "Rejected primary antiprotons;#eta;#phi;N_{points}(TPC)",
57e749bb 1881 fNBinsY,fMinY,fMaxY,
1882 100,0,360,
1883 100,0,200);
1884 gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject->SetStats(kTRUE);
1885 gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1886 fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
1887 TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject",
724d7ba9 1888 "Rejected secondary protons;#eta;#phi;N_{points}(TPC)",
57e749bb 1889 fNBinsY,fMinY,fMaxY,
1890 100,0,360,
1891 100,0,200);
1892 gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject->SetStats(kTRUE);
1893 gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
1894 fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
1895 TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject",
724d7ba9 1896 "Rejected secondary antiprotons;#eta;#phi;N_{points}(TPC)",
57e749bb 1897 fNBinsY,fMinY,fMaxY,
1898 100,0,360,
1899 100,0,200);
1900 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->SetStats(kTRUE);
1901 gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
1902 fRejectedCutList->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
5b8133c7 1903
1904 //DCA list
1905 fAcceptedDCAList = new TList();
1906 TH1F *gPrimaryProtonsDCAXY = new TH1F("gPrimaryProtonsDCAXY",
1907 ";DCA_{xy} [cm];Entries",
1908 100,0,20);
1909 fAcceptedDCAList->Add(gPrimaryProtonsDCAXY);
1910 TH1F *gPrimaryAntiProtonsDCAXY = new TH1F("gPrimaryAntiProtonsDCAXY",
1911 ";DCA_{xy} [cm];Entries",
1912 100,0,20);
1913 fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAXY);
1914 TH1F *gSecondaryProtonsDCAXY = new TH1F("gSecondaryProtonsDCAXY",
1915 ";DCA_{xy} [cm];Entries",
1916 100,0,20);
1917 fAcceptedDCAList->Add(gSecondaryProtonsDCAXY);
1918 TH1F *gSecondaryAntiProtonsDCAXY = new TH1F("gSecondaryAntiProtonsDCAXY",
1919 ";DCA_{xy} [cm];Entries",
1920 100,0,20);
1921
1922 fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAXY);
1923 TH1F *gPrimaryProtonsDCAZ = new TH1F("gPrimaryProtonsDCAZ",
1924 ";DCA_{z} [cm];Entries",
1925 100,0,20);
1926 fAcceptedDCAList->Add(gPrimaryProtonsDCAZ);
1927 TH1F *gPrimaryAntiProtonsDCAZ = new TH1F("gPrimaryAntiProtonsDCAZ",
1928 ";DCA_{z} [cm];Entries",
1929 100,0,20);
1930 fAcceptedDCAList->Add(gPrimaryAntiProtonsDCAZ);
1931 TH1F *gSecondaryProtonsDCAZ = new TH1F("gSecondaryProtonsDCAZ",
1932 ";DCA_{z} [cm];Entries",
1933 100,0,20);
1934 fAcceptedDCAList->Add(gSecondaryProtonsDCAZ);
1935 TH1F *gSecondaryAntiProtonsDCAZ = new TH1F("gSecondaryAntiProtonsDCAZ",
1936 ";DCA_{z} [cm];Entries",
1937 100,0,20);
1938 fAcceptedDCAList->Add(gSecondaryAntiProtonsDCAZ);
1939
1940 TH1F *gPrimaryProtonsSigmaToVertex = new TH1F("gPrimaryProtonsSigmaToVertex",
1941 ";#sigma_{Vertex};Entries",
1942 100,0,10);
1943 fAcceptedDCAList->Add(gPrimaryProtonsSigmaToVertex);
1944 TH1F *gPrimaryAntiProtonsSigmaToVertex = new TH1F("gPrimaryAntiProtonsSigmaToVertex",
1945 ";#sigma_{Vertex};Entries",
1946 100,0,10);
1947 fAcceptedDCAList->Add(gPrimaryAntiProtonsSigmaToVertex);
1948 TH1F *gSecondaryProtonsSigmaToVertex = new TH1F("gSecondaryProtonsSigmaToVertex",
1949 ";#sigma_{Vertex};Entries",
1950 100,0,10);
1951 fAcceptedDCAList->Add(gSecondaryProtonsSigmaToVertex);
1952 TH1F *gSecondaryAntiProtonsSigmaToVertex = new TH1F("gSecondaryAntiProtonsSigmaToVertex",
1953 ";#sigma_{Vertex};Entries",
1954 100,0,10);
1955 fAcceptedDCAList->Add(gSecondaryAntiProtonsSigmaToVertex);
1956
4da3d354 1957 //3D DCA vs pT plots
1958 TH3F *gHistPrimaryProtonsDCAxyEtaPt = new TH3F("gHistPrimaryProtonsDCAxyEtaPt",
1959 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1960 9,-0.9,0.9,
a3bc43fb 1961 6,0.45,1.05,
1962 100,0,10);
4da3d354 1963 gHistPrimaryProtonsDCAxyEtaPt->SetStats(kFALSE);
1964 fAcceptedDCAList->Add(gHistPrimaryProtonsDCAxyEtaPt);
1965 TH3F *gHistPrimaryAntiProtonsDCAxyEtaPt = new TH3F("gHistPrimaryAntiProtonsDCAxyEtaPt",
1966 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1967 9,-0.9,0.9,
a3bc43fb 1968 6,0.45,1.05,
1969 100,0,10);
4da3d354 1970 gHistPrimaryAntiProtonsDCAxyEtaPt->SetStats(kFALSE);
1971 fAcceptedDCAList->Add(gHistPrimaryAntiProtonsDCAxyEtaPt);
1972 TH3F *gHistSecondaryProtonsFromWeakDCAxyEtaPt = new TH3F("gHistSecondaryProtonsFromWeakDCAxyEtaPt",
1973 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1974 9,-0.9,0.9,
a3bc43fb 1975 6,0.45,1.05,
1976 100,0,10);
4da3d354 1977 gHistSecondaryProtonsFromWeakDCAxyEtaPt->SetStats(kFALSE);
1978 fAcceptedDCAList->Add(gHistSecondaryProtonsFromWeakDCAxyEtaPt);
1979 TH3F *gHistSecondaryAntiProtonsFromWeakDCAxyEtaPt = new TH3F("gHistSecondaryAntiProtonsFromWeakDCAxyEtaPt",
1980 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1981 9,-0.9,0.9,
a3bc43fb 1982 6,0.45,1.05,
1983 100,0,10);
4da3d354 1984 gHistSecondaryAntiProtonsFromWeakDCAxyEtaPt->SetStats(kFALSE);
1985 fAcceptedDCAList->Add(gHistSecondaryAntiProtonsFromWeakDCAxyEtaPt);
1986 TH3F *gHistSecondaryProtonsFromHadronicDCAxyEtaPt = new TH3F("gHistSecondaryProtonsFromHadronicDCAxyEtaPt",
1987 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1988 9,-0.9,0.9,
a3bc43fb 1989 6,0.45,1.05,
1990 100,0,10);
4da3d354 1991 gHistSecondaryProtonsFromHadronicDCAxyEtaPt->SetStats(kFALSE);
1992 fAcceptedDCAList->Add(gHistSecondaryProtonsFromHadronicDCAxyEtaPt);
1993 TH3F *gHistSecondaryAntiProtonsFromHadronicDCAxyEtaPt = new TH3F("gHistSecondaryAntiProtonsFromHadronicDCAxyEtaPt",
1994 ";#eta;P_{T} [GeV/c];dca_{xy} [cm]",
1995 9,-0.9,0.9,
a3bc43fb 1996 6,0.45,1.05,
1997 100,0,10);
4da3d354 1998 gHistSecondaryAntiProtonsFromHadronicDCAxyEtaPt->SetStats(kFALSE);
1999 fAcceptedDCAList->Add(gHistSecondaryAntiProtonsFromHadronicDCAxyEtaPt);
2000
2001 TH3F *gHistPrimaryProtonsDCAzEtaPt = new TH3F("gHistPrimaryProtonsDCAzEtaPt",
2002 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2003 9,-0.9,0.9,
a3bc43fb 2004 6,0.45,1.05,
2005 100,0,10);
4da3d354 2006 gHistPrimaryProtonsDCAzEtaPt->SetStats(kFALSE);
2007 fAcceptedDCAList->Add(gHistPrimaryProtonsDCAzEtaPt);
2008 TH3F *gHistPrimaryAntiProtonsDCAzEtaPt = new TH3F("gHistPrimaryAntiProtonsDCAzEtaPt",
2009 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2010 9,-0.9,0.9,
a3bc43fb 2011 6,0.45,1.05,
2012 100,0,10);
4da3d354 2013 gHistPrimaryAntiProtonsDCAzEtaPt->SetStats(kFALSE);
2014 fAcceptedDCAList->Add(gHistPrimaryAntiProtonsDCAzEtaPt);
2015 TH3F *gHistSecondaryProtonsFromWeakDCAzEtaPt = new TH3F("gHistSecondaryProtonsFromWeakDCAzEtaPt",
2016 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2017 9,-0.9,0.9,
a3bc43fb 2018 6,0.45,1.05,
2019 100,0,10);
4da3d354 2020 gHistSecondaryProtonsFromWeakDCAzEtaPt->SetStats(kFALSE);
2021 fAcceptedDCAList->Add(gHistSecondaryProtonsFromWeakDCAzEtaPt);
2022 TH3F *gHistSecondaryAntiProtonsFromWeakDCAzEtaPt = new TH3F("gHistSecondaryAntiProtonsFromWeakDCAzEtaPt",
2023 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2024 9,-0.9,0.9,
a3bc43fb 2025 6,0.45,1.05,
2026 100,0,10);
4da3d354 2027 gHistSecondaryAntiProtonsFromWeakDCAzEtaPt->SetStats(kFALSE);
2028 fAcceptedDCAList->Add(gHistSecondaryAntiProtonsFromWeakDCAzEtaPt);
2029 TH3F *gHistSecondaryProtonsFromHadronicDCAzEtaPt = new TH3F("gHistSecondaryProtonsFromHadronicDCAzEtaPt",
2030 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2031 9,-0.9,0.9,
a3bc43fb 2032 6,0.45,1.05,
2033 100,0,10);
4da3d354 2034 gHistSecondaryProtonsFromHadronicDCAzEtaPt->SetStats(kFALSE);
2035 fAcceptedDCAList->Add(gHistSecondaryProtonsFromHadronicDCAzEtaPt);
2036 TH3F *gHistSecondaryAntiProtonsFromHadronicDCAzEtaPt = new TH3F("gHistSecondaryAntiProtonsFromHadronicDCAzEtaPt",
2037 ";#eta;P_{T} [GeV/c];dca_{z} [cm]",
2038 9,-0.9,0.9,
a3bc43fb 2039 6,0.45,1.05,
2040 100,0,10);
4da3d354 2041 gHistSecondaryAntiProtonsFromHadronicDCAzEtaPt->SetStats(kFALSE);
2042 fAcceptedDCAList->Add(gHistSecondaryAntiProtonsFromHadronicDCAzEtaPt);
5b8133c7 2043}
2044
75decd62 2045//____________________________________________________________________//
2046void AliProtonQAAnalysis::InitVertexQA() {
2047 //Initializes the Vertex QA histograms
2048 fQAVertexList = new TList();
2049 fQAVertexList->SetName("fQAVertexList");
2050
5661e210 2051 //Gen. multiplicity bins
e7df5638 2052 //Float_t xBins[24] = {0,1,2,4,6,8,10,15,20,30,40,50,75,100,
2053 //200,300,400,500,750,1000,1500,2000,2500,3000};
75decd62 2054 //MC primary multiplicity (vertex efficiency calculation)
4042c3a2 2055 TH1F *gHistMCPrimaryVz = new TH1F("gHistMCPrimaryVz",
2056 ";V_{z} (gen.) [cm];Entries",
2057 40,-20.,20.);
2058 fQAVertexList->Add(gHistMCPrimaryVz);
e7df5638 2059 //TH1F *gHistMCPrimaryMultiplicity = new TH1F("gHistMCPrimaryMultiplicity",
2060 //";N_{prim. gen.};Entries",
2061 //23,xBins);
4042c3a2 2062 //fQAVertexList->Add(gHistMCPrimaryMultiplicity);
75decd62 2063
2064 //TPC
4042c3a2 2065 TH1F *gHistTPCVz = new TH1F("gHistTPCVz",
2066 ";V_{z} (gen.) [cm];Entries",
2067 40,-20.,20.);
2068 fQAVertexList->Add(gHistTPCVz);
e7df5638 2069 //TH1F *gHistMCPrimaryMultiplicityTPC = new TH1F("gHistMCPrimaryMultiplicityTPC",
2070 //"Vertex TPC;N_{prim. gen.};Entries",
2071 //23,xBins);
4042c3a2 2072 //fQAVertexList->Add(gHistMCPrimaryMultiplicityTPC);
2073 TH2F *gHistTPCESDVxN = new TH2F("gHistTPCESDVxN",
75decd62 2074 "Primary vertex TPC;V_{x} [cm];N_{contributors}",
5661e210 2075 100,-10.,10.,1000,0,5000);
4042c3a2 2076 fQAVertexList->Add(gHistTPCESDVxN);
2077 TH2F *gHistTPCESDVyN = new TH2F("gHistTPCESDVyN",
75decd62 2078 "Primary vertex TPC;V_{y} [cm];N_{contributors}",
5661e210 2079 100,-10.,10.,1000,0,5000);
4042c3a2 2080 fQAVertexList->Add(gHistTPCESDVyN);
2081 TH2F *gHistTPCESDVzN = new TH2F("gHistTPCESDVzN",
75decd62 2082 "Primary vertex TPC;V_{z} [cm];N_{contributors}",
5661e210 2083 100,-20.,20.,1000,0,5000);
4042c3a2 2084 fQAVertexList->Add(gHistTPCESDVzN);
75decd62 2085 TH1F *gHistTPCDiffVx = new TH1F("gHistTPCDiffVx",
2086 ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
2087 100,-10000.,10000.);
2088 fQAVertexList->Add(gHistTPCDiffVx);
2089 TH1F *gHistTPCDiffVy = new TH1F("gHistTPCDiffVy",
2090 ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
2091 100,-10000.,10000.);
2092 fQAVertexList->Add(gHistTPCDiffVy);
2093 TH1F *gHistTPCDiffVz = new TH1F("gHistTPCDiffVz",
2094 ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
2095 100,-10000.,10000.);
2096 fQAVertexList->Add(gHistTPCDiffVz);
2097 TH1F *gHistTPCResolutionVx = new TH1F("gHistTPCResolutionVx",
2098 ";#sigma_{x} [#mu m];Entries",
5aa87008 2099 100,0.,1000000.);
75decd62 2100 fQAVertexList->Add(gHistTPCResolutionVx);
2101 TH1F *gHistTPCResolutionVy = new TH1F("gHistTPCResolutionVy",
2102 ";#sigma_{y} [#mu m];Entries",
5aa87008 2103 100,0.,1000000.);
75decd62 2104 fQAVertexList->Add(gHistTPCResolutionVy);
2105 TH1F *gHistTPCResolutionVz = new TH1F("gHistTPCResolutionVz",
2106 ";#sigma_{z} [#mu m];Entries",
5aa87008 2107 100,0.,6000.);
75decd62 2108 fQAVertexList->Add(gHistTPCResolutionVz);
2109
2110 //SPD
4042c3a2 2111 TH1F *gHistSPDVz = new TH1F("gHistSPDVz",
2112 ";V_{z} (gen.) [cm];Entries",
2113 40,-20.,20.);
2114 fQAVertexList->Add(gHistSPDVz);
e7df5638 2115 //TH1F *gHistMCPrimaryMultiplicitySPD = new TH1F("gHistMCPrimaryMultiplicitySPD",
2116 //"Vertex SPD;N_{prim. gen.};Entries",
2117 //23,xBins);
4042c3a2 2118 //fQAVertexList->Add(gHistMCPrimaryMultiplicitySPD);
2119 TH2F *gHistSPDESDVxN = new TH2F("gHistSPDESDVxN",
75decd62 2120 "Primary vertex SPD;V_{x} [cm];N_{contributors}",
5661e210 2121 100,-10.,10.,1000,0,5000);
4042c3a2 2122 fQAVertexList->Add(gHistSPDESDVxN);
2123 TH2F *gHistSPDESDVyN = new TH2F("gHistSPDESDVyN",
75decd62 2124 "Primary vertex SPD;V_{y} [cm];N_{contributors}",
5661e210 2125 100,-10.,10.,1000,0,5000);
4042c3a2 2126 fQAVertexList->Add(gHistSPDESDVyN);
2127 TH2F *gHistSPDESDVzN = new TH2F("gHistSPDESDVzN",
75decd62 2128 "Primary vertex SPD;V_{z} [cm];N_{contributors}",
5661e210 2129 100,-20.,20.,1000,0,5000);
4042c3a2 2130 fQAVertexList->Add(gHistSPDESDVzN);
75decd62 2131 TH1F *gHistSPDDiffVx = new TH1F("gHistSPDDiffVx",
2132 ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
2133 100,-10000.,10000.);
2134 fQAVertexList->Add(gHistSPDDiffVx);
2135 TH1F *gHistSPDDiffVy = new TH1F("gHistSPDDiffVy",
2136 ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
2137 100,-10000.,10000.);
2138 fQAVertexList->Add(gHistSPDDiffVy);
2139 TH1F *gHistSPDDiffVz = new TH1F("gHistSPDDiffVz",
2140 ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
2141 100,-10000.,10000.);
2142 fQAVertexList->Add(gHistSPDDiffVz);
2143 TH1F *gHistSPDResolutionVx = new TH1F("gHistSPDResolutionVx",
2144 ";#sigma_{x} [#mu m];Entries",
2145 100,0.,1000.);
2146 fQAVertexList->Add(gHistSPDResolutionVx);
2147 TH1F *gHistSPDResolutionVy = new TH1F("gHistSPDResolutionVy",
2148 ";#sigma_{y} [#mu m];Entries",
2149 100,0.,1000.);
2150 fQAVertexList->Add(gHistSPDResolutionVy);
2151 TH1F *gHistSPDResolutionVz = new TH1F("gHistSPDResolutionVz",
2152 ";#sigma_{z} [#mu m];Entries",
2153 100,0.,500.);
2154 fQAVertexList->Add(gHistSPDResolutionVz);
2155
2156 //Tracks
4042c3a2 2157 TH1F *gHistTracksVz = new TH1F("gHistTracksVz",
2158 ";V_{z} (gen.) [cm];Entries",
2159 40,-20.,20.);
2160 fQAVertexList->Add(gHistTracksVz);
e7df5638 2161 //TH1F *gHistMCPrimaryMultiplicityTracks = new TH1F("gHistMCPrimaryMultiplicityTracks",
2162 //"Vertex Tracks;N_{prim. gen.};Entries",
2163 //23,xBins);
4042c3a2 2164 //fQAVertexList->Add(gHistMCPrimaryMultiplicityTracks);
2165 TH2F *gHistTracksESDVxN = new TH2F("gHistTracksESDVxN",
2166 "Primary vertex Tracks;V_{x} [cm];N_{contributors}",
2167 100,-10.,10.,1000,0,5000);
2168 fQAVertexList->Add(gHistTracksESDVxN);
2169 TH2F *gHistTracksESDVyN = new TH2F("gHistTracksESDVyN",
75decd62 2170 "Primary vertex Tracks;V_{y} [cm];N_{contributors}",
5661e210 2171 100,-10.,10.,1000,0,5000);
4042c3a2 2172 fQAVertexList->Add(gHistTracksESDVyN);
2173 TH2F *gHistTracksESDVzN = new TH2F("gHistTracksESDVzN",
75decd62 2174 "Primary vertex Tracks;V_{z} [cm];N_{contributors}",
5661e210 2175 100,-20.,20.,1000,0,5000);
4042c3a2 2176 fQAVertexList->Add(gHistTracksESDVzN);
75decd62 2177 TH1F *gHistTracksDiffVx = new TH1F("gHistTracksDiffVx",
2178 ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
2179 100,-10000.,10000.);
2180 fQAVertexList->Add(gHistTracksDiffVx);
2181 TH1F *gHistTracksDiffVy = new TH1F("gHistTracksDiffVy",
2182 ";V_{y}(rec.) - V_{y}(true) [#mu m];Entries",
2183 100,-10000.,10000.);
2184 fQAVertexList->Add(gHistTracksDiffVy);
2185 TH1F *gHistTracksDiffVz = new TH1F("gHistTracksDiffVz",
2186 ";V_{z}(rec.) - V_{z}(true) [#mu m];Entries",
2187 100,-10000.,10000.);
2188 fQAVertexList->Add(gHistTracksDiffVz);
2189 TH1F *gHistTracksResolutionVx = new TH1F("gHistTracksResolutionVx",
2190 ";#sigma_{x} [#mu m];Entries",
5661e210 2191 100,0.,5000.);
75decd62 2192 fQAVertexList->Add(gHistTracksResolutionVx);
2193 TH1F *gHistTracksResolutionVy = new TH1F("gHistTracksResolutionVy",
2194 ";#sigma_{y} [#mu m];Entries",
5661e210 2195 100,0.,5000.);
75decd62 2196 fQAVertexList->Add(gHistTracksResolutionVy);
2197 TH1F *gHistTracksResolutionVz = new TH1F("gHistTracksResolutionVz",
2198 ";#sigma_{z} [#mu m];Entries",
5661e210 2199 100,0.,1000.);
75decd62 2200 fQAVertexList->Add(gHistTracksResolutionVz);
2201}
2202
3e6c06f4 2203//____________________________________________________________________//
2204void AliProtonQAAnalysis::InitQA() {
75decd62 2205 //Initializes the QA histograms
3e6c06f4 2206 //if(!fQAHistograms)
9c0b9f24 2207 SetRunQAAnalysis();
3e6c06f4 2208
2209 //2D histograms
2210 //TDirectory *dir2D = gDirectory->mkdir("2D");
2211 //fGlobalQAList->Add(dir2D); dir2D->cd();
4acc9d4d 2212 TH2D *gHistYPtPrimaryProtonsPass = 0x0;
2213 if(fUseAsymmetricBinning)
2214 gHistYPtPrimaryProtonsPass = new TH2D("gHistYPtPrimaryProtonsPass",
2215 ";;P_{T} [GeV/c]",
2216 fNBinsY,fY,fNBinsPt,fPt);
2217 else
2218 gHistYPtPrimaryProtonsPass = new TH2D("gHistYPtPrimaryProtonsPass",
2219 ";;P_{T} [GeV/c]",
2220 fNBinsY,fMinY,fMaxY,
2221 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2222 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2223 gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitle("#eta");
2224 else
2225 gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitle("y");
3e6c06f4 2226 gHistYPtPrimaryProtonsPass->SetStats(kTRUE);
2227 gHistYPtPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
9c0b9f24 2228 fQA2DList->Add(gHistYPtPrimaryProtonsPass);//y-pT of primary accepted ESD protons
4acc9d4d 2229 TH2D *gHistYPtPrimaryProtonsReject = 0x0;
2230 if(fUseAsymmetricBinning)
2231 gHistYPtPrimaryProtonsReject = new TH2D("gHistYPtPrimaryProtonsReject",
2232 ";;P_{T} [GeV/c]",
2233 fNBinsY,fY,fNBinsPt,fPt);
2234 else
2235 gHistYPtPrimaryProtonsReject = new TH2D("gHistYPtPrimaryProtonsReject",
2236 ";;P_{T} [GeV/c]",
2237 fNBinsY,fMinY,fMaxY,
2238 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2239 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2240 gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitle("#eta");
2241 else
2242 gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitle("y");
3e6c06f4 2243 gHistYPtPrimaryProtonsReject->SetStats(kTRUE);
2244 gHistYPtPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
9c0b9f24 2245 fQA2DList->Add(gHistYPtPrimaryProtonsReject);//y-pT of primary rejected ESD protons
3e6c06f4 2246
4acc9d4d 2247 TH2D *gHistYPtSecondaryProtonsPass = 0x0;
2248 if(fUseAsymmetricBinning)
2249 gHistYPtSecondaryProtonsPass = new TH2D("gHistYPtSecondaryProtonsPass",
2250 ";;P_{T} [GeV/c]",
2251 fNBinsY,fY,fNBinsPt,fPt);
2252 else
2253 gHistYPtSecondaryProtonsPass = new TH2D("gHistYPtSecondaryProtonsPass",
2254 ";;P_{T} [GeV/c]",
2255 fNBinsY,fMinY,fMaxY,
2256 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2257 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2258 gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitle("#eta");
2259 else
2260 gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitle("y");
3e6c06f4 2261 gHistYPtSecondaryProtonsPass->SetStats(kTRUE);
2262 gHistYPtSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
9c0b9f24 2263 fQA2DList->Add(gHistYPtSecondaryProtonsPass);//y-pT of secondary accepted ESD protons
4acc9d4d 2264 TH2D *gHistYPtSecondaryProtonsReject = 0x0;
2265 if(fUseAsymmetricBinning)
2266 gHistYPtSecondaryProtonsReject = new TH2D("gHistYPtSecondaryProtonsReject",
2267 ";;P_{T} [GeV/c]",
2268 fNBinsY,fY,fNBinsPt,fPt);
2269 else
2270 gHistYPtSecondaryProtonsReject = new TH2D("gHistYPtSecondaryProtonsReject",
2271 ";;P_{T} [GeV/c]",
2272 fNBinsY,fMinY,fMaxY,
2273 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2274 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2275 gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitle("#eta");
2276 else
2277 gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitle("y");
3e6c06f4 2278 gHistYPtSecondaryProtonsReject->SetStats(kTRUE);
2279 gHistYPtSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
9c0b9f24 2280 fQA2DList->Add(gHistYPtSecondaryProtonsReject);//y-pT of secondary rejected ESD protons
3e6c06f4 2281
4acc9d4d 2282 TH2D *gHistYPtPrimaryAntiProtonsPass = 0x0;
2283 if(fUseAsymmetricBinning)
2284 gHistYPtPrimaryAntiProtonsPass = new TH2D("gHistYPtPrimaryAntiProtonsPass",
2285 ";;P_{T} [GeV/c]",
2286 fNBinsY,fY,fNBinsPt,fPt);
2287 else
2288 gHistYPtPrimaryAntiProtonsPass = new TH2D("gHistYPtPrimaryAntiProtonsPass",
2289 ";;P_{T} [GeV/c]",
2290 fNBinsY,fMinY,fMaxY,
2291 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2292 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2293 gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
2294 else
2295 gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitle("y");
3e6c06f4 2296 gHistYPtPrimaryAntiProtonsPass->SetStats(kTRUE);
2297 gHistYPtPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
9c0b9f24 2298 fQA2DList->Add(gHistYPtPrimaryAntiProtonsPass);//y-pT of primary accepted ESD antiprotons
4acc9d4d 2299 TH2D *gHistYPtPrimaryAntiProtonsReject = 0x0;
2300 if(fUseAsymmetricBinning)
2301 gHistYPtPrimaryAntiProtonsReject = new TH2D("gHistYPtPrimaryAntiProtonsReject",
2302 ";;P_{T} [GeV/c]",
2303 fNBinsY,fY,fNBinsPt,fPt);
2304 else
2305 gHistYPtPrimaryAntiProtonsReject = new TH2D("gHistYPtPrimaryAntiProtonsReject",
2306 ";;P_{T} [GeV/c]",
2307 fNBinsY,fMinY,fMaxY,
2308 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2309 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2310 gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
2311 else
2312 gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitle("y");
3e6c06f4 2313 gHistYPtPrimaryAntiProtonsReject->SetStats(kTRUE);
2314 gHistYPtPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
9c0b9f24 2315 fQA2DList->Add(gHistYPtPrimaryAntiProtonsReject);//y-pT of primary rejected ESD antiprotons
3e6c06f4 2316
4acc9d4d 2317 TH2D *gHistYPtSecondaryAntiProtonsPass = 0x0;
2318 if(fUseAsymmetricBinning)
2319 gHistYPtSecondaryAntiProtonsPass = new TH2D("gHistYPtSecondaryAntiProtonsPass",
2320 ";;P_{T} [GeV/c]",
2321 fNBinsY,fY,fNBinsPt,fPt);
2322 else
2323 gHistYPtSecondaryAntiProtonsPass = new TH2D("gHistYPtSecondaryAntiProtonsPass",
2324 ";;P_{T} [GeV/c]",
2325 fNBinsY,fMinY,fMaxY,
2326 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2327 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2328 gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitle("#eta");
2329 else
2330 gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitle("y");
3e6c06f4 2331 gHistYPtSecondaryAntiProtonsPass->SetStats(kTRUE);
2332 gHistYPtSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
9c0b9f24 2333 fQA2DList->Add(gHistYPtSecondaryAntiProtonsPass);//y-pT of secondary accepted ESD antiprotons
4acc9d4d 2334 TH2D *gHistYPtSecondaryAntiProtonsReject = 0x0;
2335 if(fUseAsymmetricBinning)
2336 gHistYPtSecondaryAntiProtonsReject = new TH2D("gHistYPtSecondaryAntiProtonsReject",
2337 ";;P_{T} [GeV/c]",
2338 fNBinsY,fY,fNBinsPt,fPt);
2339 else
2340 gHistYPtSecondaryAntiProtonsReject = new TH2D("gHistYPtSecondaryAntiProtonsReject",
2341 ";;P_{T} [GeV/c]",
2342 fNBinsY,fMinY,fMaxY,
2343 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2344 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2345 gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitle("#eta");
2346 else
2347 gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitle("y");
3e6c06f4 2348 gHistYPtSecondaryAntiProtonsReject->SetStats(kTRUE);
2349 gHistYPtSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
9c0b9f24 2350 fQA2DList->Add(gHistYPtSecondaryAntiProtonsReject);//y-pT of secondary rejected ESD antiprotons
3e6c06f4 2351
4acc9d4d 2352 TH2D *gHistYPtPrimaryProtonsMC = 0x0;
2353 if(fUseAsymmetricBinning)
2354 gHistYPtPrimaryProtonsMC = new TH2D("gHistYPtPrimaryProtonsMC",
2355 ";;P_{T} [GeV/c]",
2356 fNBinsY,fY,fNBinsPt,fPt);
2357 else
2358 gHistYPtPrimaryProtonsMC = new TH2D("gHistYPtPrimaryProtonsMC",
2359 ";;P_{T} [GeV/c]",
2360 fNBinsY,fMinY,fMaxY,
2361 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2362 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2363 gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitle("#eta");
2364 else
2365 gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitle("y");
1c21299a 2366 gHistYPtPrimaryProtonsMC->SetStats(kTRUE);
2367 gHistYPtPrimaryProtonsMC->GetXaxis()->SetTitleColor(1);
9c0b9f24 2368 fQA2DList->Add(gHistYPtPrimaryProtonsMC);//y-pT of primary MC protons
4acc9d4d 2369 TH2D *gHistYPtPrimaryAntiProtonsMC = 0x0;
2370 if(fUseAsymmetricBinning)
2371 gHistYPtPrimaryAntiProtonsMC = new TH2D("gHistYPtPrimaryAntiProtonsMC",
2372 ";;P_{T} [GeV/c]",
2373 fNBinsY,fY,fNBinsPt,fPt);
2374 else
2375 gHistYPtPrimaryAntiProtonsMC = new TH2D("gHistYPtPrimaryAntiProtonsMC",
2376 ";;P_{T} [GeV/c]",
2377 fNBinsY,fMinY,fMaxY,
2378 fNBinsPt,fMinPt,fMaxPt);
e7df5638 2379 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2380 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("#eta");
2381 else
2382 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitle("y");
1c21299a 2383 gHistYPtPrimaryAntiProtonsMC->SetStats(kTRUE);
2384 gHistYPtPrimaryAntiProtonsMC->GetXaxis()->SetTitleColor(1);
9c0b9f24 2385 fQA2DList->Add(gHistYPtPrimaryAntiProtonsMC);//y-pT of primary MC antiprotons
2386
4acc9d4d 2387 TH3F *gHistYPtPDGProtonsPass = 0x0;
2388 if(fUseAsymmetricBinning) {
2389 Double_t gPDG[15] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5};
2390 gHistYPtPDGProtonsPass = new TH3F("gHistYPtPDGProtonsPass",
2391 ";;P_{T} [GeV/c];PDG",
2392 fNBinsY,fY,fNBinsPt,fPt,14,gPDG);
2393 }
2394 else
2395 gHistYPtPDGProtonsPass = new TH3F("gHistYPtPDGProtonsPass",
2396 ";;P_{T} [GeV/c];PDG",
2397 fNBinsY,fMinY,fMaxY,
2398 fNBinsPt,fMinPt,fMaxPt,
2399 14,-0.5,13.5);
e7df5638 2400 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2401 gHistYPtPDGProtonsPass->GetXaxis()->SetTitle("#eta");
2402 else
2403 gHistYPtPDGProtonsPass->GetXaxis()->SetTitle("y");
9c0b9f24 2404 fQA2DList->Add(gHistYPtPDGProtonsPass);//composition of secondary protons
4acc9d4d 2405 TH3F *gHistYPtPDGAntiProtonsPass = 0x0;
2406 if(fUseAsymmetricBinning) {
2407 Double_t gPDG[15] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5};
2408 gHistYPtPDGAntiProtonsPass = new TH3F("gHistYPtPDGAntiProtonsPass",
2409 ";;P_{T} [GeV/c];PDG",
2410 fNBinsY,fY,fNBinsPt,fPt,14,gPDG);
2411 }
2412 else
2413 gHistYPtPDGAntiProtonsPass = new TH3F("gHistYPtPDGAntiProtonsPass",
2414 ";;P_{T} [GeV/c];PDG",
2415 fNBinsY,fMinY,fMaxY,
2416 fNBinsPt,fMinPt,fMaxPt,
2417 14,-0.5,13.5);
e7df5638 2418 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 2419 gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("#eta");
2420 else
2421 gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("y");
9c0b9f24 2422 fQA2DList->Add(gHistYPtPDGAntiProtonsPass);//composition of secondary antiprotons
1c21299a 2423
3e6c06f4 2424 /*gDirectory->cd("../");
2425 //protons
2426 TDirectory *dirProtons = gDirectory->mkdir("Protons");
2427 fGlobalQAList->Add(dirProtons); dirProtons->cd();*/
2428
2429 //________________________________________________________________//
2430 /*TDirectory *dirProtonsPrimary = gDirectory->mkdir("Primaries");
2431 dirProtonsPrimary->cd();
2432 TDirectory *dirProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
2433 dirProtonsPrimaryAccepted->cd();*/
2434
2435 //Accepted primary protons
a3478218 2436 TH1F *gPrimaryProtonsITSClustersPass = new TH1F("gPrimaryProtonsITSClustersPass",
3e6c06f4 2437 ";N_{clusters} (ITS);Entries",
2438 7,0,7);
a3478218 2439 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSClustersPass);
2440 TH1F *gPrimaryProtonsChi2PerClusterITSPass = new TH1F("gPrimaryProtonsChi2PerClusterITSPass",
3e6c06f4 2441 ";x^{2}/N_{clusters} (ITS);Entries",
2442 100,0,4);
a3478218 2443 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterITSPass);
2444 TH1F *gPrimaryProtonsTPCClustersPass = new TH1F("gPrimaryProtonsTPCClustersPass",
3e6c06f4 2445 ";N_{clusters} (TPC);Entries",
2446 100,0,200);
a3478218 2447 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCClustersPass);
2448 TH1F *gPrimaryProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryProtonsChi2PerClusterTPCPass",
3e6c06f4 2449 ";x^{2}/N_{clusters} (TPC);Entries",
2450 100,0,4);
a3478218 2451 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsChi2PerClusterTPCPass);
2452 TH1F *gPrimaryProtonsExtCov11Pass = new TH1F("gPrimaryProtonsExtCov11Pass",
3e6c06f4 2453 ";#sigma_{y} [cm];Entries",
2454 100,0,4);
a3478218 2455 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov11Pass);
2456 TH1F *gPrimaryProtonsExtCov22Pass = new TH1F("gPrimaryProtonsExtCov22Pass",
3e6c06f4 2457 ";#sigma_{z} [cm];Entries",
2458 100,0,4);
a3478218 2459 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov22Pass);
2460 TH1F *gPrimaryProtonsExtCov33Pass = new TH1F("gPrimaryProtonsExtCov33Pass",
3e6c06f4 2461 ";#sigma_{sin(#phi)};Entries",
2462 100,0,4);
a3478218 2463 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov33Pass);
2464 TH1F *gPrimaryProtonsExtCov44Pass = new TH1F("gPrimaryProtonsExtCov44Pass",
3e6c06f4 2465 ";#sigma_{tan(#lambda)};Entries",
2466 100,0,4);
a3478218 2467 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov44Pass);
2468 TH1F *gPrimaryProtonsExtCov55Pass = new TH1F("gPrimaryProtonsExtCov55Pass",
3e6c06f4 2469 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2470 100,0,4);
a3478218 2471 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsExtCov55Pass);
2472 TH1F *gPrimaryProtonsSigmaToVertexPass = new TH1F("gPrimaryProtonsSigmaToVertexPass",
3e6c06f4 2473 ";#sigma_{Vertex};Entries",
2474 100,0,10);
a3478218 2475 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexPass);
2476 TH1F *gPrimaryProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryProtonsSigmaToVertexTPCPass",
3e6c06f4 2477 ";#sigma_{Vertex};Entries",
2478 100,0,10);
a3478218 2479 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsSigmaToVertexTPCPass);
2480 TH1F *gPrimaryProtonsDCAXYPass = new TH1F("gPrimaryProtonsDCAXYPass",
3e6c06f4 2481 ";DCA_{xy} [cm];Entries",
2482 100,0,20);
a3478218 2483 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYPass);
2484 TH1F *gPrimaryProtonsDCAXYTPCPass = new TH1F("gPrimaryProtonsDCAXYTPCPass",
3e6c06f4 2485 ";DCA_{xy} [cm];Entries",
2486 100,0,20);
a3478218 2487 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAXYTPCPass);
2488 TH1F *gPrimaryProtonsDCAZPass = new TH1F("gPrimaryProtonsDCAZPass",
3e6c06f4 2489 ";DCA_{z} [cm];Entries",
2490 100,0,20);
a3478218 2491 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZPass);
2492 TH1F *gPrimaryProtonsDCAZTPCPass = new TH1F("gPrimaryProtonsDCAZTPCPass",
3e6c06f4 2493 ";DCA_{z} [cm];Entries",
2494 100,0,20);
a3478218 2495 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsDCAZTPCPass);
2496 TH1F *gPrimaryProtonsConstrainChi2Pass = new TH1F("gPrimaryProtonsConstrainChi2Pass",
3e6c06f4 2497 ";Log_{10}(#chi^{2});Entries",
2498 100,-10,10);
a3478218 2499 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsConstrainChi2Pass);
2500 TH1F *gPrimaryProtonsITSRefitPass = new TH1F("gPrimaryProtonsITSRefitPass",
3e6c06f4 2501 "",10,-1,1);
a3478218 2502 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsITSRefitPass);
2503 TH1F *gPrimaryProtonsTPCRefitPass = new TH1F("gPrimaryProtonsTPCRefitPass",
3e6c06f4 2504 "",10,-1,1);
a3478218 2505 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCRefitPass);
2506 TH1F *gPrimaryProtonsESDpidPass = new TH1F("gPrimaryProtonsESDpidPass",
3e6c06f4 2507 "",10,-1,1);
a3478218 2508 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsESDpidPass);
2509 TH1F *gPrimaryProtonsTPCpidPass = new TH1F("gPrimaryProtonsTPCpidPass",
3e6c06f4 2510 "",10,-1,1);
a3478218 2511 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsTPCpidPass);
2512 TH1F *gPrimaryProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryProtonsPointOnITSLayer1Pass",
0008a5a6 2513 "",10,-1,1);
a3478218 2514 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer1Pass);
2515 TH1F *gPrimaryProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryProtonsPointOnITSLayer2Pass",
0008a5a6 2516 "",10,-1,1);
a3478218 2517 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer2Pass);
2518 TH1F *gPrimaryProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryProtonsPointOnITSLayer3Pass",
0008a5a6 2519 "",10,-1,1);
a3478218 2520 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer3Pass);
2521 TH1F *gPrimaryProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryProtonsPointOnITSLayer4Pass",
0008a5a6 2522 "",10,-1,1);
a3478218 2523 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer4Pass);
2524 TH1F *gPrimaryProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryProtonsPointOnITSLayer5Pass",
0008a5a6 2525 "",10,-1,1);
a3478218 2526 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer5Pass);
2527 TH1F *gPrimaryProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryProtonsPointOnITSLayer6Pass",
0008a5a6 2528 "",10,-1,1);
a3478218 2529 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsPointOnITSLayer6Pass);
87a55728 2530 TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2531 fQAPrimaryProtonsAcceptedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsPass);
3e6c06f4 2532
2533 //Rejected primary protons
2534 /*gDirectory->cd("../");
2535 TDirectory *dirProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2536 dirProtonsPrimaryRejected->cd();*/
2537
a3478218 2538 TH1F *gPrimaryProtonsITSClustersReject = new TH1F("gPrimaryProtonsITSClustersReject",
3e6c06f4 2539 ";N_{clusters} (ITS);Entries",
2540 7,0,7);
a3478218 2541 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSClustersReject);
2542 TH1F *gPrimaryProtonsChi2PerClusterITSReject = new TH1F("gPrimaryProtonsChi2PerClusterITSReject",
3e6c06f4 2543 ";x^{2}/N_{clusters} (ITS);Entries",
2544 100,0,4);
a3478218 2545 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterITSReject);
2546 TH1F *gPrimaryProtonsTPCClustersReject = new TH1F("gPrimaryProtonsTPCClustersReject",
3e6c06f4 2547 ";N_{clusters} (TPC);Entries",
2548 100,0,200);
a3478218 2549 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCClustersReject);
2550 TH1F *gPrimaryProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryProtonsChi2PerClusterTPCReject",
3e6c06f4 2551 ";x^{2}/N_{clusters} (TPC);Entries",
2552 100,0,4);
a3478218 2553 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsChi2PerClusterTPCReject);
2554 TH1F *gPrimaryProtonsExtCov11Reject = new TH1F("gPrimaryProtonsExtCov11Reject",
3e6c06f4 2555 ";#sigma_{y} [cm];Entries",
2556 100,0,4);
a3478218 2557 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov11Reject);
2558 TH1F *gPrimaryProtonsExtCov22Reject = new TH1F("gPrimaryProtonsExtCov22Reject",
3e6c06f4 2559 ";#sigma_{z} [cm];Entries",
2560 100,0,4);
a3478218 2561 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov22Reject);
2562 TH1F *gPrimaryProtonsExtCov33Reject = new TH1F("gPrimaryProtonsExtCov33Reject",
3e6c06f4 2563 ";#sigma_{sin(#phi)};Entries",
2564 100,0,4);
a3478218 2565 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov33Reject);
2566 TH1F *gPrimaryProtonsExtCov44Reject = new TH1F("gPrimaryProtonsExtCov44Reject",
3e6c06f4 2567 ";#sigma_{tan(#lambda)};Entries",
2568 100,0,4);
a3478218 2569 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov44Reject);
2570 TH1F *gPrimaryProtonsExtCov55Reject = new TH1F("gPrimaryProtonsExtCov55Reject",
3e6c06f4 2571 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2572 100,0,4);
a3478218 2573 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsExtCov55Reject);
2574 TH1F *gPrimaryProtonsSigmaToVertexReject = new TH1F("gPrimaryProtonsSigmaToVertexReject",
3e6c06f4 2575 ";#sigma_{Vertex};Entries",
2576 100,0,10);
a3478218 2577 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexReject);
2578 TH1F *gPrimaryProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryProtonsSigmaToVertexTPCReject",
3e6c06f4 2579 ";#sigma_{Vertex};Entries",
2580 100,0,10);
a3478218 2581 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsSigmaToVertexTPCReject);
2582 TH1F *gPrimaryProtonsDCAXYReject = new TH1F("gPrimaryProtonsDCAXYReject",
3e6c06f4 2583 ";DCA_{xy} [cm];Entries",
2584 100,0,20);
a3478218 2585 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYReject);
2586 TH1F *gPrimaryProtonsDCAXYTPCReject = new TH1F("gPrimaryProtonsDCAXYTPCReject",
3e6c06f4 2587 ";DCA_{xy} [cm];Entries",
2588 100,0,20);
a3478218 2589 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAXYTPCReject);
2590 TH1F *gPrimaryProtonsDCAZReject = new TH1F("gPrimaryProtonsDCAZReject",
3e6c06f4 2591 ";DCA_{z} [cm];Entries",
2592 100,0,20);
a3478218 2593 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZReject);
2594 TH1F *gPrimaryProtonsDCAZTPCReject = new TH1F("gPrimaryProtonsDCAZTPCReject",
3e6c06f4 2595 ";DCA_{z} [cm];Entries",
2596 100,0,20);
a3478218 2597 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsDCAZTPCReject);
2598 TH1F *gPrimaryProtonsConstrainChi2Reject = new TH1F("gPrimaryProtonsConstrainChi2Reject",
3e6c06f4 2599 ";Log_{10}(#chi^{2});Entries",
2600 100,-10,10);
a3478218 2601 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsConstrainChi2Reject);
2602 TH1F *gPrimaryProtonsITSRefitReject = new TH1F("gPrimaryProtonsITSRefitReject",
3e6c06f4 2603 "",10,-1,1);
a3478218 2604 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsITSRefitReject);
2605 TH1F *gPrimaryProtonsTPCRefitReject = new TH1F("gPrimaryProtonsTPCRefitReject",
3e6c06f4 2606 "",10,-1,1);
a3478218 2607 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCRefitReject);
2608 TH1F *gPrimaryProtonsESDpidReject = new TH1F("gPrimaryProtonsESDpidReject",
3e6c06f4 2609 "",10,-1,1);
a3478218 2610 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsESDpidReject);
2611 TH1F *gPrimaryProtonsTPCpidReject = new TH1F("gPrimaryProtonsTPCpidReject",
3e6c06f4 2612 "",10,-1,1);
a3478218 2613 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsTPCpidReject);
2614 TH1F *gPrimaryProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryProtonsPointOnITSLayer1Reject",
0008a5a6 2615 "",10,-1,1);
a3478218 2616 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer1Reject);
2617 TH1F *gPrimaryProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryProtonsPointOnITSLayer2Reject",
0008a5a6 2618 "",10,-1,1);
a3478218 2619 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer2Reject);
2620 TH1F *gPrimaryProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryProtonsPointOnITSLayer3Reject",
0008a5a6 2621 "",10,-1,1);
a3478218 2622 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer3Reject);
2623 TH1F *gPrimaryProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryProtonsPointOnITSLayer4Reject",
0008a5a6 2624 "",10,-1,1);
a3478218 2625 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer4Reject);
2626 TH1F *gPrimaryProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryProtonsPointOnITSLayer5Reject",
0008a5a6 2627 "",10,-1,1);
a3478218 2628 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer5Reject);
2629 TH1F *gPrimaryProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryProtonsPointOnITSLayer6Reject",
0008a5a6 2630 "",10,-1,1);
a3478218 2631 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsPointOnITSLayer6Reject);
87a55728 2632 TH1F *gPrimaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2633 fQAPrimaryProtonsRejectedList->Add(gPrimaryProtonsNumberOfTPCdEdxPointsReject);
3e6c06f4 2634 //________________________________________________________________//
2635 /*gDirectory->cd("../../");
2636
2637 TDirectory *dirProtonsSecondary = gDirectory->mkdir("Secondaries");
2638 dirProtonsSecondary->cd();
2639 TDirectory *dirProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
2640 dirProtonsSecondaryAccepted->cd();*/
2641
2642 //Accepted secondary protons
a3478218 2643 TH1F *gSecondaryProtonsITSClustersPass = new TH1F("gSecondaryProtonsITSClustersPass",
3e6c06f4 2644 ";N_{clusters} (ITS);Entries",
2645 7,0,7);
a3478218 2646 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSClustersPass);
2647 TH1F *gSecondaryProtonsChi2PerClusterITSPass = new TH1F("gSecondaryProtonsChi2PerClusterITSPass",
3e6c06f4 2648 ";x^{2}/N_{clusters} (ITS);Entries",
2649 100,0,4);
a3478218 2650 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterITSPass);
2651 TH1F *gSecondaryProtonsTPCClustersPass = new TH1F("gSecondaryProtonsTPCClustersPass",
3e6c06f4 2652 ";N_{clusters} (TPC);Entries",
2653 100,0,200);
a3478218 2654 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCClustersPass);
2655 TH1F *gSecondaryProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryProtonsChi2PerClusterTPCPass",
3e6c06f4 2656 ";x^{2}/N_{clusters} (TPC);Entries",
2657 100,0,4);
a3478218 2658 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsChi2PerClusterTPCPass);
2659 TH1F *gSecondaryProtonsExtCov11Pass = new TH1F("gSecondaryProtonsExtCov11Pass",
3e6c06f4 2660 ";#sigma_{y} [cm];Entries",
2661 100,0,4);
a3478218 2662 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov11Pass);
2663 TH1F *gSecondaryProtonsExtCov22Pass = new TH1F("gSecondaryProtonsExtCov22Pass",
3e6c06f4 2664 ";#sigma_{z} [cm];Entries",
2665 100,0,4);
a3478218 2666 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov22Pass);
2667 TH1F *gSecondaryProtonsExtCov33Pass = new TH1F("gSecondaryProtonsExtCov33Pass",
3e6c06f4 2668 ";#sigma_{sin(#phi)};Entries",
2669 100,0,4);
a3478218 2670 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov33Pass);
2671 TH1F *gSecondaryProtonsExtCov44Pass = new TH1F("gSecondaryProtonsExtCov44Pass",
3e6c06f4 2672 ";#sigma_{tan(#lambda)};Entries",
2673 100,0,4);
a3478218 2674 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov44Pass);
2675 TH1F *gSecondaryProtonsExtCov55Pass = new TH1F("gSecondaryProtonsExtCov55Pass",
3e6c06f4 2676 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2677 100,0,4);
a3478218 2678 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsExtCov55Pass);
2679 TH1F *gSecondaryProtonsSigmaToVertexPass = new TH1F("gSecondaryProtonsSigmaToVertexPass",
3e6c06f4 2680 ";#sigma_{Vertex};Entries",
2681 100,0,10);
a3478218 2682 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexPass);
2683 TH1F *gSecondaryProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryProtonsSigmaToVertexTPCPass",
3e6c06f4 2684 ";#sigma_{Vertex};Entries",
2685 100,0,10);
a3478218 2686 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsSigmaToVertexTPCPass);
2687 TH1F *gSecondaryProtonsDCAXYPass = new TH1F("gSecondaryProtonsDCAXYPass",
3e6c06f4 2688 ";DCA_{xy} [cm];Entries",
2689 100,0,20);
a3478218 2690 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYPass);
2691 TH1F *gSecondaryProtonsDCAXYTPCPass = new TH1F("gSecondaryProtonsDCAXYTPCPass",
3e6c06f4 2692 ";DCA_{xy} [cm];Entries",
2693 100,0,20);
a3478218 2694 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAXYTPCPass);
2695 TH1F *gSecondaryProtonsDCAZPass = new TH1F("gSecondaryProtonsDCAZPass",
3e6c06f4 2696 ";DCA_{z} [cm];Entries",
2697 100,0,20);
a3478218 2698 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZPass);
2699 TH1F *gSecondaryProtonsDCAZTPCPass = new TH1F("gSecondaryProtonsDCAZTPCPass",
3e6c06f4 2700 ";DCA_{z} [cm];Entries",
2701 100,0,20);
a3478218 2702 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsDCAZTPCPass);
2703 TH1F *gSecondaryProtonsConstrainChi2Pass = new TH1F("gSecondaryProtonsConstrainChi2Pass",
3e6c06f4 2704 ";Log_{10}(#chi^{2});Entries",
2705 100,-10,10);
a3478218 2706 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsConstrainChi2Pass);
2707 TH1F *gSecondaryProtonsITSRefitPass = new TH1F("gSecondaryProtonsITSRefitPass",
3e6c06f4 2708 "",10,-1,1);
a3478218 2709 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsITSRefitPass);
2710 TH1F *gSecondaryProtonsTPCRefitPass = new TH1F("gSecondaryProtonsTPCRefitPass",
3e6c06f4 2711 "",10,-1,1);
a3478218 2712 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCRefitPass);
2713 TH1F *gSecondaryProtonsESDpidPass = new TH1F("gSecondaryProtonsESDpidPass",
3e6c06f4 2714 "",10,-1,1);
a3478218 2715 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsESDpidPass);
2716 TH1F *gSecondaryProtonsTPCpidPass = new TH1F("gSecondaryProtonsTPCpidPass",
3e6c06f4 2717 "",10,-1,1);
a3478218 2718 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsTPCpidPass);
2719 TH1F *gSecondaryProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryProtonsPointOnITSLayer1Pass",
0008a5a6 2720 "",10,-1,1);
a3478218 2721 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer1Pass);
2722 TH1F *gSecondaryProtonsPointOnITSLayer2Pass = new TH1F("gSecondaryProtonsPointOnITSLayer2Pass",
0008a5a6 2723 "",10,-1,1);
a3478218 2724 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer2Pass);
2725 TH1F *gSecondaryProtonsPointOnITSLayer3Pass = new TH1F("gSecondaryProtonsPointOnITSLayer3Pass",
0008a5a6 2726 "",10,-1,1);
a3478218 2727 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer3Pass);
2728 TH1F *gSecondaryProtonsPointOnITSLayer4Pass = new TH1F("gSecondaryProtonsPointOnITSLayer4Pass",
0008a5a6 2729 "",10,-1,1);
a3478218 2730 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer4Pass);
2731 TH1F *gSecondaryProtonsPointOnITSLayer5Pass = new TH1F("gSecondaryProtonsPointOnITSLayer5Pass",
0008a5a6 2732 "",10,-1,1);
a3478218 2733 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer5Pass);
2734 TH1F *gSecondaryProtonsPointOnITSLayer6Pass = new TH1F("gSecondaryProtonsPointOnITSLayer6Pass",
0008a5a6 2735 "",10,-1,1);
a3478218 2736 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsPointOnITSLayer6Pass);
87a55728 2737 TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsPass = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2738 fQASecondaryProtonsAcceptedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsPass);
3e6c06f4 2739
2740 //Rejected secondary protons
2741 /*gDirectory->cd("../");
2742 TDirectory *dirProtonsSecondaryRejected = gDirectory->mkdir("Rejected");
2743 dirProtonsSecondaryRejected->cd();*/
2744
a3478218 2745 TH1F *gSecondaryProtonsITSClustersReject = new TH1F("gSecondaryProtonsITSClustersReject",
3e6c06f4 2746 ";N_{clusters} (ITS);Entries",
2747 7,0,7);
a3478218 2748 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSClustersReject);
2749 TH1F *gSecondaryProtonsChi2PerClusterITSReject = new TH1F("gSecondaryProtonsChi2PerClusterITSReject",
3e6c06f4 2750 ";x^{2}/N_{clusters} (ITS);Entries",
2751 100,0,4);
a3478218 2752 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterITSReject);
2753 TH1F *gSecondaryProtonsTPCClustersReject = new TH1F("gSecondaryProtonsTPCClustersReject",
3e6c06f4 2754 ";N_{clusters} (TPC);Entries",
2755 100,0,200);
a3478218 2756 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCClustersReject);
2757 TH1F *gSecondaryProtonsChi2PerClusterTPCReject = new TH1F("gSecondaryProtonsChi2PerClusterTPCReject",
3e6c06f4 2758 ";x^{2}/N_{clusters} (TPC);Entries",
2759 100,0,4);
a3478218 2760 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsChi2PerClusterTPCReject);
2761 TH1F *gSecondaryProtonsExtCov11Reject = new TH1F("gSecondaryProtonsExtCov11Reject",
3e6c06f4 2762 ";#sigma_{y} [cm];Entries",
2763 100,0,4);
a3478218 2764 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov11Reject);
2765 TH1F *gSecondaryProtonsExtCov22Reject = new TH1F("gSecondaryProtonsExtCov22Reject",
3e6c06f4 2766 ";#sigma_{z} [cm];Entries",
2767 100,0,4);
a3478218 2768 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov22Reject);
2769 TH1F *gSecondaryProtonsExtCov33Reject = new TH1F("gSecondaryProtonsExtCov33Reject",
3e6c06f4 2770 ";#sigma_{sin(#phi)};Entries",
2771 100,0,4);
a3478218 2772 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov33Reject);
2773 TH1F *gSecondaryProtonsExtCov44Reject = new TH1F("gSecondaryProtonsExtCov44Reject",
3e6c06f4 2774 ";#sigma_{tan(#lambda)};Entries",
2775 100,0,4);
a3478218 2776 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov44Reject);
2777 TH1F *gSecondaryProtonsExtCov55Reject = new TH1F("gSecondaryProtonsExtCov55Reject",
3e6c06f4 2778 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2779 100,0,4);
a3478218 2780 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsExtCov55Reject);
2781 TH1F *gSecondaryProtonsSigmaToVertexReject = new TH1F("gSecondaryProtonsSigmaToVertexReject",
3e6c06f4 2782 ";#sigma_{Vertex};Entries",
2783 100,0,10);
a3478218 2784 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexReject);
2785 TH1F *gSecondaryProtonsSigmaToVertexTPCReject = new TH1F("gSecondaryProtonsSigmaToVertexTPCReject",
3e6c06f4 2786 ";#sigma_{Vertex};Entries",
2787 100,0,10);
a3478218 2788 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsSigmaToVertexTPCReject);
2789 TH1F *gSecondaryProtonsDCAXYReject = new TH1F("gSecondaryProtonsDCAXYReject",
3e6c06f4 2790 ";DCA_{xy} [cm];Entries",
2791 100,0,20);
a3478218 2792 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYReject);
2793 TH1F *gSecondaryProtonsDCAXYTPCReject = new TH1F("gSecondaryProtonsDCAXYTPCReject",
3e6c06f4 2794 ";DCA_{xy} [cm];Entries",
2795 100,0,20);
a3478218 2796 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAXYTPCReject);
2797 TH1F *gSecondaryProtonsDCAZReject = new TH1F("gSecondaryProtonsDCAZReject",
3e6c06f4 2798 ";DCA_{z} [cm];Entries",
2799 100,0,20);
a3478218 2800 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZReject);
2801 TH1F *gSecondaryProtonsDCAZTPCReject = new TH1F("gSecondaryProtonsDCAZTPCReject",
3e6c06f4 2802 ";DCA_{z} [cm];Entries",
2803 100,0,20);
a3478218 2804 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsDCAZTPCReject);
2805 TH1F *gSecondaryProtonsConstrainChi2Reject = new TH1F("gSecondaryProtonsConstrainChi2Reject",
3e6c06f4 2806 ";Log_{10}(#chi^{2});Entries",
2807 100,-10,10);
a3478218 2808 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsConstrainChi2Reject);
2809 TH1F *gSecondaryProtonsITSRefitReject = new TH1F("gSecondaryProtonsITSRefitReject",
3e6c06f4 2810 "",10,-1,1);
a3478218 2811 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsITSRefitReject);
2812 TH1F *gSecondaryProtonsTPCRefitReject = new TH1F("gSecondaryProtonsTPCRefitReject",
3e6c06f4 2813 "",10,-1,1);
a3478218 2814 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCRefitReject);
2815 TH1F *gSecondaryProtonsESDpidReject = new TH1F("gSecondaryProtonsESDpidReject",
3e6c06f4 2816 "",10,-1,1);
a3478218 2817 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsESDpidReject);
2818 TH1F *gSecondaryProtonsTPCpidReject = new TH1F("gSecondaryProtonsTPCpidReject",
3e6c06f4 2819 "",10,-1,1);
a3478218 2820 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsTPCpidReject);
2821 TH1F *gSecondaryProtonsPointOnITSLayer1Reject = new TH1F("gSecondaryProtonsPointOnITSLayer1Reject",
0008a5a6 2822 "",10,-1,1);
a3478218 2823 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer1Reject);
2824 TH1F *gSecondaryProtonsPointOnITSLayer2Reject = new TH1F("gSecondaryProtonsPointOnITSLayer2Reject",
0008a5a6 2825 "",10,-1,1);
a3478218 2826 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer2Reject);
2827 TH1F *gSecondaryProtonsPointOnITSLayer3Reject = new TH1F("gSecondaryProtonsPointOnITSLayer3Reject",
0008a5a6 2828 "",10,-1,1);
a3478218 2829 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer3Reject);
2830 TH1F *gSecondaryProtonsPointOnITSLayer4Reject = new TH1F("gSecondaryProtonsPointOnITSLayer4Reject",
0008a5a6 2831 "",10,-1,1);
a3478218 2832 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer4Reject);
2833 TH1F *gSecondaryProtonsPointOnITSLayer5Reject = new TH1F("gSecondaryProtonsPointOnITSLayer5Reject",
0008a5a6 2834 "",10,-1,1);
a3478218 2835 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer5Reject);
2836 TH1F *gSecondaryProtonsPointOnITSLayer6Reject = new TH1F("gSecondaryProtonsPointOnITSLayer6Reject",
0008a5a6 2837 "",10,-1,1);
a3478218 2838 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsPointOnITSLayer6Reject);
87a55728 2839 TH1F *gSecondaryProtonsNumberOfTPCdEdxPointsReject = new TH1F("gSecondaryProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
2840 fQASecondaryProtonsRejectedList->Add(gSecondaryProtonsNumberOfTPCdEdxPointsReject);
3e6c06f4 2841
2842 /*gDirectory->cd("../../../");
2843
2844 //antiprotons
2845 TDirectory *dirAntiProtons = gDirectory->mkdir("AntiProtons");
2846 fGlobalQAList->Add(dirAntiProtons); dirAntiProtons->cd();*/
2847
2848 //________________________________________________________________//
2849 /*TDirectory *dirAntiProtonsPrimary = gDirectory->mkdir("Primaries");
2850 dirAntiProtonsPrimary->cd();
2851 TDirectory *dirAntiProtonsPrimaryAccepted = gDirectory->mkdir("Accepted");
2852 dirAntiProtonsPrimaryAccepted->cd();*/
2853
2854 //Accepted primary antiprotons
a3478218 2855 TH1F *gPrimaryAntiProtonsITSClustersPass = new TH1F("gPrimaryAntiProtonsITSClustersPass",
3e6c06f4 2856 ";N_{clusters} (ITS);Entries",
2857 7,0,7);
a3478218 2858 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSClustersPass);
2859 TH1F *gPrimaryAntiProtonsChi2PerClusterITSPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSPass",
3e6c06f4 2860 ";x^{2}/N_{clusters} (ITS);Entries",
2861 100,0,4);
a3478218 2862 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterITSPass);
2863 TH1F *gPrimaryAntiProtonsTPCClustersPass = new TH1F("gPrimaryAntiProtonsTPCClustersPass",
3e6c06f4 2864 ";N_{clusters} (TPC);Entries",
2865 100,0,200);
a3478218 2866 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCClustersPass);
2867 TH1F *gPrimaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCPass",
3e6c06f4 2868 ";x^{2}/N_{clusters} (TPC);Entries",
2869 100,0,4);
a3478218 2870 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCPass);
2871 TH1F *gPrimaryAntiProtonsExtCov11Pass = new TH1F("gPrimaryAntiProtonsExtCov11Pass",
3e6c06f4 2872 ";#sigma_{y} [cm];Entries",
2873 100,0,4);
a3478218 2874 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov11Pass);
2875 TH1F *gPrimaryAntiProtonsExtCov22Pass = new TH1F("gPrimaryAntiProtonsExtCov22Pass",
3e6c06f4 2876 ";#sigma_{z} [cm];Entries",
2877 100,0,4);
a3478218 2878 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov22Pass);
2879 TH1F *gPrimaryAntiProtonsExtCov33Pass = new TH1F("gPrimaryAntiProtonsExtCov33Pass",
3e6c06f4 2880 ";#sigma_{sin(#phi)};Entries",
2881 100,0,4);
a3478218 2882 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov33Pass);
2883 TH1F *gPrimaryAntiProtonsExtCov44Pass = new TH1F("gPrimaryAntiProtonsExtCov44Pass",
3e6c06f4 2884 ";#sigma_{tan(#lambda)};Entries",
2885 100,0,4);
a3478218 2886 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov44Pass);
2887 TH1F *gPrimaryAntiProtonsExtCov55Pass = new TH1F("gPrimaryAntiProtonsExtCov55Pass",
3e6c06f4 2888 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
2889 100,0,4);
a3478218 2890 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsExtCov55Pass);
2891 TH1F *gPrimaryAntiProtonsSigmaToVertexPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexPass",
3e6c06f4 2892 ";#sigma_{Vertex};Entries",
2893 100,0,10);
a3478218 2894 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexPass);
2895 TH1F *gPrimaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCPass",
3e6c06f4 2896 ";#sigma_{Vertex};Entries",
2897 100,0,10);
a3478218 2898 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCPass);
2899 TH1F *gPrimaryAntiProtonsDCAXYPass = new TH1F("gPrimaryAntiProtonsDCAXYPass",
3e6c06f4 2900 ";DCA_{xy} [cm];Entries",
2901 100,0,20);
a3478218 2902 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYPass);
2903 TH1F *gPrimaryAntiProtonsDCAXYTPCPass = new TH1F("gPrimaryAntiProtonsDCAXYTPCPass",
3e6c06f4 2904 ";DCA_{xy} [cm];Entries",
2905 100,0,20);
a3478218 2906 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAXYTPCPass);
2907 TH1F *gPrimaryAntiProtonsDCAZPass = new TH1F("gPrimaryAntiProtonsDCAZPass",
3e6c06f4 2908 ";DCA_{z} [cm];Entries",
2909 100,0,20);
a3478218 2910 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZPass);
2911 TH1F *gPrimaryAntiProtonsDCAZTPCPass = new TH1F("gPrimaryAntiProtonsDCAZTPCPass",
3e6c06f4 2912 ";DCA_{z} [cm];Entries",
2913 100,0,20);
a3478218 2914 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsDCAZTPCPass);
2915 TH1F *gPrimaryAntiProtonsConstrainChi2Pass = new TH1F("gPrimaryAntiProtonsConstrainChi2Pass",
3e6c06f4 2916 ";Log_{10}(#chi^{2});Entries",
2917 100,-10,10);
a3478218 2918 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsConstrainChi2Pass);
2919 TH1F *gPrimaryAntiProtonsITSRefitPass = new TH1F("gPrimaryAntiProtonsITSRefitPass",
3e6c06f4 2920 "",10,-1,1);
a3478218 2921 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsITSRefitPass);
2922 TH1F *gPrimaryAntiProtonsTPCRefitPass = new TH1F("gPrimaryAntiProtonsTPCRefitPass",
3e6c06f4 2923 "",10,-1,1);
a3478218 2924 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCRefitPass);
2925 TH1F *gPrimaryAntiProtonsESDpidPass = new TH1F("gPrimaryAntiProtonsESDpidPass",
3e6c06f4 2926 "",10,-1,1);
a3478218 2927 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsESDpidPass);
2928 TH1F *gPrimaryAntiProtonsTPCpidPass = new TH1F("gPrimaryAntiProtonsTPCpidPass",
3e6c06f4 2929 "",10,-1,1);
a3478218 2930 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsTPCpidPass);
2931 TH1F *gPrimaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Pass",
0008a5a6 2932 "",10,-1,1);
a3478218 2933 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Pass);
2934 TH1F *gPrimaryAntiProtonsPointOnITSLayer2Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Pass",
0008a5a6 2935 "",10,-1,1);
a3478218 2936 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Pass);
2937 TH1F *gPrimaryAntiProtonsPointOnITSLayer3Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Pass",
0008a5a6 2938 "",10,-1,1);
a3478218 2939 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Pass);
2940 TH1F *gPrimaryAntiProtonsPointOnITSLayer4Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Pass",
0008a5a6 2941 "",10,-1,1);
a3478218 2942 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Pass);
2943 TH1F *gPrimaryAntiProtonsPointOnITSLayer5Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Pass",
0008a5a6 2944 "",10,-1,1);
a3478218 2945 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Pass);
2946 TH1F *gPrimaryAntiProtonsPointOnITSLayer6Pass = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Pass",
0008a5a6 2947 "",10,-1,1);
a3478218 2948 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Pass);
87a55728 2949 TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
2950 fQAPrimaryAntiProtonsAcceptedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsPass);
369b48c8 2951 /*TH2F *gHistPrimaryAntiProtonsDCAxyPtPass = new TH2F("gHistPrimaryAntiProtonsDCAxyPtPass",
15788b9d 2952 ";P_{T} [GeV/c];dca_{xy} [cm]",
2953 16,0.3,1.1,
2954 1000,0,10);
2955 gHistPrimaryAntiProtonsDCAxyPtPass->SetStats(kFALSE);
2956 fQAPrimaryAntiProtonsAcceptedList->Add(gHistPrimaryAntiProtonsDCAxyPtPass);
2957 TH2F *gHistPrimaryAntiProtonsDCAzPtPass = new TH2F("gHistPrimaryAntiProtonsDCAzPtPass",
2958 ";P_{T} [GeV/c];dca_{z} [cm]",
2959 16,0.3,1.1,
2960 1000,0,10);
2961 gHistPrimaryAntiProtonsDCAzPtPass->SetStats(kFALSE);
369b48c8 2962 fQAPrimaryAntiProtonsAcceptedList->Add(gHistPrimaryAntiProtonsDCAzPtPass);*/
15788b9d 2963
3e6c06f4 2964 //Rejected primary antiprotons
2965 /*gDirectory->cd("../");
2966 TDirectory *dirAntiProtonsPrimaryRejected = gDirectory->mkdir("Rejected");
2967 dirAntiProtonsPrimaryRejected->cd();*/
2968
a3478218 2969 TH1F *gPrimaryAntiProtonsITSClustersReject = new TH1F("gPrimaryAntiProtonsITSClustersReject",
3e6c06f4 2970 ";N_{clusters} (ITS);Entries",
2971 7,0,7);
a3478218 2972 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSClustersReject);
2973 TH1F *gPrimaryAntiProtonsChi2PerClusterITSReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterITSReject",
3e6c06f4 2974 ";x^{2}/N_{clusters} (ITS);Entries",
2975 100,0,4);
a3478218 2976 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterITSReject);
2977 TH1F *gPrimaryAntiProtonsTPCClustersReject = new TH1F("gPrimaryAntiProtonsTPCClustersReject",
3e6c06f4 2978 ";N_{clusters} (TPC);Entries",
2979 100,0,200);
a3478218 2980 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCClustersReject);
2981 TH1F *gPrimaryAntiProtonsChi2PerClusterTPCReject = new TH1F("gPrimaryAntiProtonsChi2PerClusterTPCReject",
3e6c06f4 2982 ";x^{2}/N_{clusters} (TPC);Entries",
2983 100,0,4);
a3478218 2984 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsChi2PerClusterTPCReject);
2985 TH1F *gPrimaryAntiProtonsExtCov11Reject = new TH1F("gPrimaryAntiProtonsExtCov11Reject",
3e6c06f4 2986 ";#sigma_{y} [cm];Entries",
2987 100,0,4);
a3478218 2988 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov11Reject);
2989 TH1F *gPrimaryAntiProtonsExtCov22Reject = new TH1F("gPrimaryAntiProtonsExtCov22Reject",
3e6c06f4 2990 ";#sigma_{z} [cm];Entries",
2991 100,0,4);
a3478218 2992 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov22Reject);
2993 TH1F *gPrimaryAntiProtonsExtCov33Reject = new TH1F("gPrimaryAntiProtonsExtCov33Reject",
3e6c06f4 2994 ";#sigma_{sin(#phi)};Entries",
2995 100,0,4);
a3478218 2996 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov33Reject);
2997 TH1F *gPrimaryAntiProtonsExtCov44Reject = new TH1F("gPrimaryAntiProtonsExtCov44Reject",
3e6c06f4 2998 ";#sigma_{tan(#lambda)};Entries",
2999 100,0,4);
a3478218 3000 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov44Reject);
3001 TH1F *gPrimaryAntiProtonsExtCov55Reject = new TH1F("gPrimaryAntiProtonsExtCov55Reject",
3e6c06f4 3002 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
3003 100,0,4);
a3478218 3004 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsExtCov55Reject);
3005 TH1F *gPrimaryAntiProtonsSigmaToVertexReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexReject",
3e6c06f4 3006 ";#sigma_{Vertex};Entries",
3007 100,0,10);
a3478218 3008 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexReject);
3009 TH1F *gPrimaryAntiProtonsSigmaToVertexTPCReject = new TH1F("gPrimaryAntiProtonsSigmaToVertexTPCReject",
3e6c06f4 3010 ";#sigma_{Vertex};Entries",
3011 100,0,10);
a3478218 3012 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsSigmaToVertexTPCReject);
3013 TH1F *gPrimaryAntiProtonsDCAXYReject = new TH1F("gPrimaryAntiProtonsDCAXYReject",
3e6c06f4 3014 ";DCA_{xy} [cm];Entries",
3015 100,0,20);
a3478218 3016 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYReject);
3017 TH1F *gPrimaryAntiProtonsDCAXYTPCReject = new TH1F("gPrimaryAntiProtonsDCAXYTPCReject",
3e6c06f4 3018 ";DCA_{xy} [cm];Entries",
3019 100,0,20);
a3478218 3020 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAXYTPCReject);
3021 TH1F *gPrimaryAntiProtonsDCAZReject = new TH1F("gPrimaryAntiProtonsDCAZReject",
3e6c06f4 3022 ";DCA_{z} [cm];Entries",
3023 100,0,20);
a3478218 3024 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZReject);
3025 TH1F *gPrimaryAntiProtonsDCAZTPCReject = new TH1F("gPrimaryAntiProtonsDCAZTPCReject",
3e6c06f4 3026 ";DCA_{z} [cm];Entries",
3027 100,0,20);
a3478218 3028 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsDCAZTPCReject);
3029 TH1F *gPrimaryAntiProtonsConstrainChi2Reject = new TH1F("gPrimaryAntiProtonsConstrainChi2Reject",
3e6c06f4 3030 ";Log_{10}(#chi^{2});Entries",
3031 100,-10,10);
a3478218 3032 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsConstrainChi2Reject);
3033 TH1F *gPrimaryAntiProtonsITSRefitReject = new TH1F("gPrimaryAntiProtonsITSRefitReject",
3e6c06f4 3034 "",10,-1,1);
a3478218 3035 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsITSRefitReject);
3036 TH1F *gPrimaryAntiProtonsTPCRefitReject = new TH1F("gPrimaryAntiProtonsTPCRefitReject",
3e6c06f4 3037 "",10,-1,1);
a3478218 3038 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCRefitReject);
3039 TH1F *gPrimaryAntiProtonsESDpidReject = new TH1F("gPrimaryAntiProtonsESDpidReject",
3e6c06f4 3040 "",10,-1,1);
a3478218 3041 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsESDpidReject);
3042 TH1F *gPrimaryAntiProtonsTPCpidReject = new TH1F("gPrimaryAntiProtonsTPCpidReject",
3e6c06f4 3043 "",10,-1,1);
a3478218 3044 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsTPCpidReject);
3045 TH1F *gPrimaryAntiProtonsPointOnITSLayer1Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer1Reject",
0008a5a6 3046 "",10,-1,1);
a3478218 3047 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer1Reject);
3048 TH1F *gPrimaryAntiProtonsPointOnITSLayer2Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer2Reject",
0008a5a6 3049 "",10,-1,1);
a3478218 3050 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer2Reject);
3051 TH1F *gPrimaryAntiProtonsPointOnITSLayer3Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer3Reject",
0008a5a6 3052 "",10,-1,1);
a3478218 3053 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer3Reject);
3054 TH1F *gPrimaryAntiProtonsPointOnITSLayer4Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer4Reject",
0008a5a6 3055 "",10,-1,1);
a3478218 3056 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer4Reject);
3057 TH1F *gPrimaryAntiProtonsPointOnITSLayer5Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer5Reject",
0008a5a6 3058 "",10,-1,1);
a3478218 3059 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer5Reject);
3060 TH1F *gPrimaryAntiProtonsPointOnITSLayer6Reject = new TH1F("gPrimaryAntiProtonsPointOnITSLayer6Reject",
0008a5a6 3061 "",10,-1,1);
a3478218 3062 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsPointOnITSLayer6Reject);
87a55728 3063 TH1F *gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject = new TH1F("gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
3064 fQAPrimaryAntiProtonsRejectedList->Add(gPrimaryAntiProtonsNumberOfTPCdEdxPointsReject);
369b48c8 3065 /*TH2F *gHistPrimaryAntiProtonsDCAxyPtReject = new TH2F("gHistPrimaryAntiProtonsDCAxyPtReject",
15788b9d 3066 ";P_{T} [GeV/c];dca_{xy} [cm]",
3067 16,0.3,1.1,
3068 1000,0,10);
3069 gHistPrimaryAntiProtonsDCAxyPtReject->SetStats(kFALSE);
3070 fQAPrimaryAntiProtonsRejectedList->Add(gHistPrimaryAntiProtonsDCAxyPtReject);
3071 TH2F *gHistPrimaryAntiProtonsDCAzPtReject = new TH2F("gHistPrimaryAntiProtonsDCAzPtReject",
3072 ";P_{T} [GeV/c];dca_{z} [cm]",
3073 16,0.3,1.1,
3074 1000,0,10);
3075 gHistPrimaryAntiProtonsDCAzPtReject->SetStats(kFALSE);
369b48c8 3076 fQAPrimaryAntiProtonsRejectedList->Add(gHistPrimaryAntiProtonsDCAzPtReject);*/
3e6c06f4 3077
3078 //________________________________________________________________//
3079 /*gDirectory->cd("../../");
3080
3081 TDirectory *dirAntiProtonsSecondary = gDirectory->mkdir("Secondaries");
3082 dirAntiProtonsSecondary->cd();
3083 TDirectory *dirAntiProtonsSecondaryAccepted = gDirectory->mkdir("Accepted");
3084 dirAntiProtonsSecondaryAccepted->cd();*/
3085
3086 //Accepted secondary antiprotons
a3478218 3087 TH1F *gSecondaryAntiProtonsITSClustersPass = new TH1F("gSecondaryAntiProtonsITSClustersPass",
3e6c06f4 3088 ";N_{clusters} (ITS);Entries",
3089 7,0,7);
a3478218 3090 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSClustersPass);
3091 TH1F *gSecondaryAntiProtonsChi2PerClusterITSPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterITSPass",
3e6c06f4 3092 ";x^{2}/N_{clusters} (ITS);Entries",
3093 100,0,4);
a3478218 3094 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterITSPass);
3095 TH1F *gSecondaryAntiProtonsTPCClustersPass = new TH1F("gSecondaryAntiProtonsTPCClustersPass",
3e6c06f4 3096 ";N_{clusters} (TPC);Entries",
3097 100,0,200);
a3478218 3098 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCClustersPass);
3099 TH1F *gSecondaryAntiProtonsChi2PerClusterTPCPass = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPCPass",
3e6c06f4 3100 ";x^{2}/N_{clusters} (TPC);Entries",
3101 100,0,4);
a3478218 3102 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsChi2PerClusterTPCPass);
3103 TH1F *gSecondaryAntiProtonsExtCov11Pass = new TH1F("gSecondaryAntiProtonsExtCov11Pass",
3e6c06f4 3104 ";#sigma_{y} [cm];Entries",
3105 100,0,4);
a3478218 3106 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov11Pass);
3107 TH1F *gSecondaryAntiProtonsExtCov22Pass = new TH1F("gSecondaryAntiProtonsExtCov22Pass",
3e6c06f4 3108 ";#sigma_{z} [cm];Entries",
3109 100,0,4);
a3478218 3110 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov22Pass);
3111 TH1F *gSecondaryAntiProtonsExtCov33Pass = new TH1F("gSecondaryAntiProtonsExtCov33Pass",
3e6c06f4 3112 ";#sigma_{sin(#phi)};Entries",
3113 100,0,4);
a3478218 3114 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov33Pass);
3115 TH1F *gSecondaryAntiProtonsExtCov44Pass = new TH1F("gSecondaryAntiProtonsExtCov44Pass",
3e6c06f4 3116 ";#sigma_{tan(#lambda)};Entries",
3117 100,0,4);
a3478218 3118 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov44Pass);
3119 TH1F *gSecondaryAntiProtonsExtCov55Pass = new TH1F("gSecondaryAntiProtonsExtCov55Pass",
3e6c06f4 3120 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
3121 100,0,4);
a3478218 3122 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsExtCov55Pass);
3123 TH1F *gSecondaryAntiProtonsSigmaToVertexPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexPass",
3e6c06f4 3124 ";#sigma_{Vertex};Entries",
3125 100,0,10);
a3478218 3126 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexPass);
3127 TH1F *gSecondaryAntiProtonsSigmaToVertexTPCPass = new TH1F("gSecondaryAntiProtonsSigmaToVertexTPCPass",
3e6c06f4 3128 ";#sigma_{Vertex};Entries",
3129 100,0,10);
a3478218 3130 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsSigmaToVertexTPCPass);
3131 TH1F *gSecondaryAntiProtonsDCAXYPass = new TH1F("gSecondaryAntiProtonsDCAXYPass",
3e6c06f4 3132 ";DCA_{xy} [cm];Entries",
3133 100,0,20);
a3478218 3134 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYPass);
3135 TH1F *gSecondaryAntiProtonsDCAXYTPCPass = new TH1F("gSecondaryAntiProtonsDCAXYTPCPass",
3e6c06f4 3136 ";DCA_{xy} [cm];Entries",
3137 100,0,20);
a3478218 3138 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAXYTPCPass);
3139 TH1F *gSecondaryAntiProtonsDCAZPass = new TH1F("gSecondaryAntiProtonsDCAZPass",
3e6c06f4 3140 ";DCA_{z} [cm];Entries",
3141 100,0,20);
a3478218 3142 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZPass);
3143 TH1F *gSecondaryAntiProtonsDCAZTPCPass = new TH1F("gSecondaryAntiProtonsDCAZTPCPass",
3e6c06f4 3144 ";DCA_{z} [cm];Entries",
3145 100,0,20);
a3478218 3146 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsDCAZTPCPass);
3147 TH1F *gSecondaryAntiProtonsConstrainChi2Pass = new TH1F("gSecondaryAntiProtonsConstrainChi2Pass",
3e6c06f4 3148 ";Log_{10}(#chi^{2});Entries",
3149 100,-10,10);
a3478218 3150 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsConstrainChi2Pass);
3151 TH1F *gSecondaryAntiProtonsITSRefitPass = new TH1F("gSecondaryAntiProtonsITSRefitPass",
3e6c06f4 3152 "",10,-1,1);
a3478218 3153 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsITSRefitPass);
3154 TH1F *gSecondaryAntiProtonsTPCRefitPass = new TH1F("gSecondaryAntiProtonsTPCRefitPass",
3e6c06f4 3155 "",10,-1,1);
a3478218 3156 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCRefitPass);
3157 TH1F *gSecondaryAntiProtonsESDpidPass = new TH1F("gSecondaryAntiProtonsESDpidPass",
3e6c06f4 3158 "",10,-1,1);
a3478218 3159 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsESDpidPass);
3160 TH1F *gSecondaryAntiProtonsTPCpidPass = new TH1F("gSecondaryAntiProtonsTPCpidPass",
3e6c06f4 3161 "",10,-1,1);
a3478218 3162 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsTPCpidPass);
3163 TH1F *gSecondaryAntiProtonsPointOnITSLayer1Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer1Pass",
0008a5a6 3164 "",10,-1,1);
a3478218 3165 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer1Pass);
3166 TH1F *gSecondaryAntiProtonsPointOnITSLayer2Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer2Pass",
0008a5a6 3167 "",10,-1,1);
a3478218 3168 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer2Pass);
3169 TH1F *gSecondaryAntiProtonsPointOnITSLayer3Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer3Pass",
0008a5a6 3170 "",10,-1,1);
a3478218 3171 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer3Pass);
3172 TH1F *gSecondaryAntiProtonsPointOnITSLayer4Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer4Pass",
0008a5a6 3173 "",10,-1,1);
a3478218 3174 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer4Pass);
3175 TH1F *gSecondaryAntiProtonsPointOnITSLayer5Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer5Pass",
0008a5a6 3176 "",10,-1,1);
a3478218 3177 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer5Pass);
3178 TH1F *gSecondaryAntiProtonsPointOnITSLayer6Pass = new TH1F("gSecondaryAntiProtonsPointOnITSLayer6Pass",
0008a5a6 3179 "",10,-1,1);
a3478218 3180 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsPointOnITSLayer6Pass);
87a55728 3181 TH1F *gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass = new TH1F("gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass","",100,0,200);
3182 fQASecondaryAntiProtonsAcceptedList->Add(gSecondaryAntiProtonsNumberOfTPCdEdxPointsPass);
369b48c8 3183 /*TH2F *gHistSecondaryAntiProtonsFromWeakDCAxyPtPass = new TH2F("gHistSecondaryAntiProtonsFromWeakDCAxyPtPass",
15788b9d 3184 ";P_{T} [GeV/c];dca_{xy} [cm]",
3185 16,0.3,1.1,
3186 1000,0,10);
3187 gHistSecondaryAntiProtonsFromWeakDCAxyPtPass->SetStats(kFALSE);
3188 fQASecondaryAntiProtonsAcceptedList->Add(gHistSecondaryAntiProtonsFromWeakDCAxyPtPass);
3189 TH2F *gHistSecondaryAntiProtonsFromWeakDCAzPtPass = new TH2F("gHistSecondaryAntiProtonsFromWeakDCAzPtPass",
3190 ";P_{T} [GeV/c];dca_{z} [cm]",
3191 16,0.3,1.1,
3192 1000,0,10);
3193 gHistSecondaryAntiProtonsFromWeakDCAzPtPass->SetStats(kFALSE);
3194 fQASecondaryAntiProtonsAcceptedList->Add(gHistSecondaryAntiProtonsFromWeakDCAzPtPass);
3195 TH2F *gHistSecondaryAntiProtonsFromHadronicDCAxyPtPass = new TH2F("gHistSecondaryAntiProtonsFromHadronicDCAxyPtPass",
3196 ";P_{T} [GeV/c];dca_{xy} [cm]",
3197 16,0.3,1.1,
3198 1000,0,10);
3199 gHistSecondaryAntiProtonsFromHadronicDCAxyPtPass->SetStats(kFALSE);
3200 fQASecondaryAntiProtonsAcceptedList->Add(gHistSecondaryAntiProtonsFromHadronicDCAxyPtPass);
3201 TH2F *gHistSecondaryAntiProtonsFromHadronicDCAzPtPass = new TH2F("gHistSecondaryAntiProtonsFromHadronicDCAzPtPass",
3202 ";P_{T} [GeV/c];dca_{z} [cm]",
3203 16,0.3,1.1,
3204 1000,0,10);
3205 gHistSecondaryAntiProtonsFromHadronicDCAzPtPass->SetStats(kFALSE);
369b48c8 3206 fQASecondaryAntiProtonsAcceptedList->Add(gHistSecondaryAntiProtonsFromHadronicDCAzPtPass);*/
15788b9d 3207
3e6c06f4 3208 //Rejected secondary antiprotons
3209 /*gDirectory->cd("../");
3210 TDirectory *dirAntiProtonsSecondaryRejected = gDirectory->mkdir("Rejected");
3211 dirAntiProtonsSecondaryRejected->cd();*/
3212
a3478218 3213 TH1F *gSecondaryAntiProtonsITSClustersReject = new TH1F("gSecondaryAntiProtonsITSClustersReject",
3e6c06f4 3214 ";N_{clusters} (ITS);Entries",
3215 7,0,7);
a3478218 3216 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsITSClustersReject);
3217 TH1F *gSecondaryAntiProtonsChi2PerClusterITSReject = new TH1F("gSecondaryAntiProtonsChi2PerClusterITSReject",
3e6c06f4 3218 ";x^{2}/N_{clusters} (ITS);Entries",
3219 100,0,4);
a3478218 3220 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsChi2PerClusterITSReject);
3221 TH1F *gSecondaryAntiProtonsTPCClustersReject = new TH1F("gSecondaryAntiProtonsTPCClustersReject",
3e6c06f4 3222 ";N_{clusters} (TPC);Entries",
3223 100,0,200);
a3478218 3224 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCClustersReject);
3225 TH1F *gSecondaryAntiProtonsChi2PerClusterTPCReject = new TH1F("gSecondaryAntiProtonsChi2PerClusterTPCReject",
3e6c06f4 3226 ";x^{2}/N_{clusters} (TPC);Entries",
3227 100,0,4);
a3478218 3228 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsChi2PerClusterTPCReject);
3229 TH1F *gSecondaryAntiProtonsExtCov11Reject = new TH1F("gSecondaryAntiProtonsExtCov11Reject",
3e6c06f4 3230 ";#sigma_{y} [cm];Entries",
3231 100,0,4);
a3478218 3232 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov11Reject);
3233 TH1F *gSecondaryAntiProtonsExtCov22Reject = new TH1F("gSecondaryAntiProtonsExtCov22Reject",
3e6c06f4 3234 ";#sigma_{z} [cm];Entries",
3235 100,0,4);
a3478218 3236 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov22Reject);
3237 TH1F *gSecondaryAntiProtonsExtCov33Reject = new TH1F("gSecondaryAntiProtonsExtCov33Reject",
3e6c06f4 3238 ";#sigma_{sin(#phi)};Entries",
3239 100,0,4);
a3478218 3240 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov33Reject);
3241 TH1F *gSecondaryAntiProtonsExtCov44Reject = new TH1F("gSecondaryAntiProtonsExtCov44Reject",
3e6c06f4 3242 ";#sigma_{tan(#lambda)};Entries",
3243 100,0,4);
a3478218 3244 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov44Reject);
3245 TH1F *gSecondaryAntiProtonsExtCov55Reject = new TH1F("gSecondaryAntiProtonsExtCov55Reject",
3e6c06f4 3246 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
3247 100,0,4);
a3478218 3248 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsExtCov55Reject);
3249 TH1F *gSecondaryAntiProtonsSigmaToVertexReject = new TH1F("gSecondaryAntiProtonsSigmaToVertexReject",
3e6c06f4 3250 ";#sigma_{Vertex};Entries",
3251 100,0,10);
a3478218 3252 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsSigmaToVertexReject);
3253 TH1F *gSecondaryAntiProtonsSigmaToVertexTPCReject = new TH1F("gSecondaryAntiProtonsSigmaToVertexTPCReject",
3e6c06f4 3254 ";#sigma_{Vertex};Entries",
3255 100,0,10);
a3478218 3256 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsSigmaToVertexTPCReject);
3257 TH1F *gSecondaryAntiProtonsDCAXYReject = new TH1F("gSecondaryAntiProtonsDCAXYReject",
3e6c06f4 3258 ";DCA_{xy} [cm];Entries",
3259 100,0,20);
a3478218 3260 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAXYReject);
3261 TH1F *gSecondaryAntiProtonsDCAXYTPCReject = new TH1F("gSecondaryAntiProtonsDCAXYTPCReject",
3e6c06f4 3262 ";DCA_{xy} [cm];Entries",
3263 100,0,20);
a3478218 3264 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAXYTPCReject);
3265 TH1F *gSecondaryAntiProtonsDCAZReject = new TH1F("gSecondaryAntiProtonsDCAZReject",
3e6c06f4 3266 ";DCA_{z} [cm];Entries",
3267 100,0,20);
a3478218 3268 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAZReject);
3269 TH1F *gSecondaryAntiProtonsDCAZTPCReject = new TH1F("gSecondaryAntiProtonsDCAZTPCReject",
3e6c06f4 3270 ";DCA_{z} [cm];Entries",
3271 100,0,20);
a3478218 3272 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsDCAZTPCReject);
3273 TH1F *gSecondaryAntiProtonsConstrainChi2Reject = new TH1F("gSecondaryAntiProtonsConstrainChi2Reject",
3e6c06f4 3274 ";Log_{10}(#chi^{2});Entries",
3275 100,-10,10);
a3478218 3276 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsConstrainChi2Reject);
3277 TH1F *gSecondaryAntiProtonsITSRefitReject = new TH1F("gSecondaryAntiProtonsITSRefitReject",
3e6c06f4 3278 "",10,-1,1);
a3478218 3279 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsITSRefitReject);
3280 TH1F *gSecondaryAntiProtonsTPCRefitReject = new TH1F("gSecondaryAntiProtonsTPCRefitReject",
3e6c06f4 3281 "",10,-1,1);
a3478218 3282 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCRefitReject);
3283 TH1F *gSecondaryAntiProtonsESDpidReject = new TH1F("gSecondaryAntiProtonsESDpidReject",
3e6c06f4 3284 "",10,-1,1);
a3478218 3285 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsESDpidReject);
3286 TH1F *gSecondaryAntiProtonsTPCpidReject = new TH1F("gSecondaryAntiProtonsTPCpidReject",
3e6c06f4 3287 "",10,-1,1);
a3478218 3288 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsTPCpidReject);
3289 TH1F *gSecondaryAntiProtonsPointOnITSLayer1Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer1Reject",
0008a5a6 3290 "",10,-1,1);
a3478218 3291 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer1Reject);
3292 TH1F *gSecondaryAntiProtonsPointOnITSLayer2Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer2Reject",
0008a5a6 3293 "",10,-1,1);
a3478218 3294 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer2Reject);
3295 TH1F *gSecondaryAntiProtonsPointOnITSLayer3Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer3Reject",
0008a5a6 3296 "",10,-1,1);
a3478218 3297 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer3Reject);
3298 TH1F *gSecondaryAntiProtonsPointOnITSLayer4Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer4Reject",
0008a5a6 3299 "",10,-1,1);
a3478218 3300 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer4Reject);
3301 TH1F *gSecondaryAntiProtonsPointOnITSLayer5Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer5Reject",
0008a5a6 3302 "",10,-1,1);
a3478218 3303 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer5Reject);
3304 TH1F *gSecondaryAntiProtonsPointOnITSLayer6Reject = new TH1F("gSecondaryAntiProtonsPointOnITSLayer6Reject",
0008a5a6 3305 "",10,-1,1);
a3478218 3306 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsPointOnITSLayer6Reject);
87a55728 3307 TH1F *gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject = new TH1F("gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject","",100,0,200);
3308 fQASecondaryAntiProtonsRejectedList->Add(gSecondaryAntiProtonsNumberOfTPCdEdxPointsReject);
369b48c8 3309 /*TH2F *gHistSecondaryAntiProtonsFromWeakDCAxyPtReject = new TH2F("gHistSecondaryAntiProtonsFromWeakDCAxyPtReject",
15788b9d 3310 ";P_{T} [GeV/c];dca_{xy} [cm]",
3311 16,0.3,1.1,
3312 1000,0,10);
3313 gHistSecondaryAntiProtonsFromWeakDCAxyPtReject->SetStats(kFALSE);
3314 fQASecondaryAntiProtonsRejectedList->Add(gHistSecondaryAntiProtonsFromWeakDCAxyPtReject);
3315 TH2F *gHistSecondaryAntiProtonsFromWeakDCAzPtReject = new TH2F("gHistSecondaryAntiProtonsFromWeakDCAzPtReject",
3316 ";P_{T} [GeV/c];dca_{z} [cm]",
3317 16,0.3,1.1,
3318 1000,0,10);
3319 gHistSecondaryAntiProtonsFromWeakDCAzPtReject->SetStats(kFALSE);
3320 fQASecondaryAntiProtonsRejectedList->Add(gHistSecondaryAntiProtonsFromWeakDCAzPtReject);
3321 TH2F *gHistSecondaryAntiProtonsFromHadronicDCAxyPtReject = new TH2F("gHistSecondaryAntiProtonsFromHadronicDCAxyPtReject",
3322 ";P_{T} [GeV/c];dca_{xy} [cm]",
3323 16,0.3,1.1,
3324 1000,0,10);
3325 gHistSecondaryAntiProtonsFromHadronicDCAxyPtReject->SetStats(kFALSE);
3326 fQASecondaryAntiProtonsRejectedList->Add(gHistSecondaryAntiProtonsFromHadronicDCAxyPtReject);
3327 TH2F *gHistSecondaryAntiProtonsFromHadronicDCAzPtReject = new TH2F("gHistSecondaryAntiProtonsFromHadronicDCAzPtReject",
3328 ";P_{T} [GeV/c];dca_{z} [cm]",
3329 16,0.3,1.1,
3330 1000,0,10);
3331 gHistSecondaryAntiProtonsFromHadronicDCAzPtReject->SetStats(kFALSE);
369b48c8 3332 fQASecondaryAntiProtonsRejectedList->Add(gHistSecondaryAntiProtonsFromHadronicDCAzPtReject);*/
3e6c06f4 3333}
3334
4042c3a2 3335//____________________________________________________________________//
c20898de 3336void AliProtonQAAnalysis::RunReconstructionEfficiencyAnalysis(AliMCEvent *const mcEvent,
3337 AliESDEvent *esd,
3338 const AliESDVertex *vertex) {
4042c3a2 3339 //Run the reconstruction efficiency code (primaries & secondaries)
3340 AliStack *stack = mcEvent->Stack();
3341
3342 Int_t nMCParticles = mcEvent->GetNumberOfTracks();
3343 Int_t nMCLabelCounter = 0;
3344 TArrayI labelMCArray(nMCParticles);
57e749bb 3345
4042c3a2 3346 for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfTracks(); iTracks++) {
7aad0c47 3347 AliMCParticle *mcTrack = (AliMCParticle*) mcEvent->GetTrack(iTracks);
4042c3a2 3348 if (!mcTrack) {
3349 Printf("ERROR: Could not receive track %d (mc loop)", iTracks);
3350 continue;
3351 }
ab0e89dd 3352
3353 Double_t vz = mcTrack->Zv();
3354 if (TMath::Abs(vz) > 50.) continue;//exclude particles generated out of the acceptance
3355
4042c3a2 3356 if(TMath::Abs(mcTrack->Eta()) > 1.0) continue;//acceptance
3357 if((mcTrack->Pt() > fMaxPt)||(mcTrack->Pt() < fMinPt)) continue;
e7df5638 3358 if(fProtonAnalysisBase->GetEtaMode()) {
4042c3a2 3359 if((mcTrack->Eta() > fMaxY)|| (mcTrack->Eta() < fMinY)) continue;
3360 }
3361 else
e7df5638 3362 if((fProtonAnalysisBase->Rapidity(mcTrack->Px(),mcTrack->Py(),mcTrack->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(mcTrack->Px(),mcTrack->Py(),mcTrack->Pz()) < fMinY)) continue;
4042c3a2 3363
3364 // Loop over Track References
73aba974 3365 Bool_t labelTPC = kFALSE;
4042c3a2 3366 AliTrackReference* trackRef = 0;
3367 for (Int_t iTrackRef = 0; iTrackRef < mcTrack->GetNumberOfTrackReferences(); iTrackRef++) {
3368 trackRef = mcTrack->GetTrackReference(iTrackRef);
3369 if(trackRef) {
3370 Int_t detectorId = trackRef->DetectorId();
3371 if (detectorId == AliTrackReference::kTPC) {
73aba974 3372 labelTPC = kTRUE;
4042c3a2 3373 break;
3374 }
3375 }
3376 }
3377
3378 //findable tracks
df201289 3379 //if (labelTPC) {
4042c3a2 3380 TParticle* particle = mcTrack->Particle();
57e749bb 3381 if(!particle) continue;
4042c3a2 3382 Int_t pdgcode = particle->GetPdgCode();
3383 if(TMath::Abs(pdgcode) != 2212) continue;
3384
3385 labelMCArray.AddAt(iTracks,nMCLabelCounter);
3386 nMCLabelCounter += 1;
3387
3388 if(iTracks <= stack->GetNprimary()) {
3389 if(pdgcode == 2212) {
e7df5638 3390 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3391 ((TH2D *)(fEfficiencyList->At(0)))->Fill(particle->Eta(),
3392 particle->Pt());
3393 else
e7df5638 3394 ((TH2D *)(fEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
57e749bb 3395 particle->Py(),
3396 particle->Pz()),
4042c3a2 3397 particle->Pt());
3398 }//protons
3399 if(pdgcode == -2212) {
e7df5638 3400 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3401 ((TH2D *)(fEfficiencyList->At(1)))->Fill(particle->Eta(),
3402 particle->Pt());
3403 else
e7df5638 3404 ((TH2D *)(fEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
57e749bb 3405 particle->Py(),
3406 particle->Pz()),
4042c3a2 3407 particle->Pt());
3408 }//antiprotons
3409 }//primaries
3410 else {
3411 //secondaries
3412 Int_t lPartMother = -1;
3413 Int_t motherPDGCode = -1;
3414 lPartMother = particle->GetFirstMother();
7aad0c47 3415 AliMCParticle *mcMotherTrack = (AliMCParticle*) mcEvent->GetTrack(lPartMother);
4042c3a2 3416 TParticle *motherParticle = mcMotherTrack->Particle();
3417 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3418
3419 if(pdgcode == 2212) {
3420 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3421 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3422 ((TH2D *)(fEfficiencyList->At(2)))->Fill(particle->Eta(),
3423 particle->Pt());
3424 else
e7df5638 3425 ((TH2D *)(fEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3426 particle->Py(),
3427 particle->Pz()),
3428 particle->Pt());
3429 }//weak decays
3430 if((particle->GetUniqueID() == 13)) {
e7df5638 3431 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3432 ((TH2D *)(fEfficiencyList->At(4)))->Fill(particle->Eta(),
3433 particle->Pt());
3434 else
e7df5638 3435 ((TH2D *)(fEfficiencyList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3436 particle->Py(),
3437 particle->Pz()),
3438 particle->Pt());
3439 }//hadronic interactions
3440 }//protons
3441 if(pdgcode == -2212) {
3442 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3443 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3444 ((TH2D *)(fEfficiencyList->At(3)))->Fill(particle->Eta(),
3445 particle->Pt());
3446 else
e7df5638 3447 ((TH2D *)(fEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3448 particle->Py(),
3449 particle->Pz()),
3450 particle->Pt());
3451 }//weak decays
3452 if((particle->GetUniqueID() == 13)) {
e7df5638 3453 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3454 ((TH2D *)(fEfficiencyList->At(5)))->Fill(particle->Eta(),
3455 particle->Pt());
3456 else
e7df5638 3457 ((TH2D *)(fEfficiencyList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3458 particle->Py(),
3459 particle->Pz()),
3460 particle->Pt());
3461 }//hadronic interactions
3462 }//antiprotons
3463 }//secondaries
df201289 3464 //}//findable tracks
4042c3a2 3465 }//MC track loop
3466
3467 //ESD track loop
3468 Bool_t iFound = kFALSE;
3469 Int_t mcGoods = nMCLabelCounter;
3470 for (Int_t k = 0; k < mcGoods; k++) {
3471 Int_t mcLabel = labelMCArray.At(k);
3472 iFound = kFALSE;
3473
3474 Int_t nGoodTracks = esd->GetNumberOfTracks();
3475 TArrayI labelArray(nGoodTracks);
3476 Int_t labelCounter = 0;
3477 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3478 AliESDtrack* track = esd->GetTrack(iTracks);
3479 if(!track) continue;
3480
3481 //TPC only
e7df5638 3482 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
4042c3a2 3483 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3484 if(!tpcTrack) continue;
3485
3486 Int_t label = TMath::Abs(track->GetTPCLabel());
3487 if(IsLabelUsed(labelArray,label)) continue;
3488 labelArray.AddAt(label,labelCounter);
3489 labelCounter += 1;
3490
3491 if (mcLabel != TMath::Abs(label)) continue;
3492 if(mcLabel != label) continue;
afc2ac17 3493 if(label > stack->GetNtrack()) continue;
3494
4042c3a2 3495 TParticle *particle = stack->Particle(label);
3496 if(!particle) continue;
3497 Int_t pdgcode = particle->GetPdgCode();
3498 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3499 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 3500 if(fProtonAnalysisBase->GetEtaMode()) {
4042c3a2 3501 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3502 }
3503 else
e7df5638 3504 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
0ececdf2 3505
30f87a5b 3506 if(fUseCutsInEfficiency) {
3507 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
3508 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
3509 }
4042c3a2 3510 //reconstructed primary (anti)protons
3511 if(pdgcode == 2212) {
4042c3a2 3512 if(label <= stack->GetNprimary()) {
e7df5638 3513 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3514 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3515 particle->Pt());
3516 else
e7df5638 3517 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3518 particle->Py(),
3519 particle->Pz()),
3520 particle->Pt());
3521 }//primaries
3522 if(label > stack->GetNprimary()) {
3523 Int_t lPartMother = -1;
3524 Int_t motherPDGCode = -1;
3525 lPartMother = particle->GetFirstMother();
3526 TParticle *motherParticle = stack->Particle(lPartMother);
3527 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3528
3529 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3530 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3531 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3532 particle->Pt());
3533 else
e7df5638 3534 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3535 particle->Py(),
3536 particle->Pz()),
3537 particle->Pt());
3538 }//weak decays
3539 if((particle->GetUniqueID() == 13)) {
e7df5638 3540 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3541 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3542 particle->Pt());
3543 else
e7df5638 3544 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3545 particle->Py(),
3546 particle->Pz()),
3547 particle->Pt());
3548 }//hadronic interactions
3549 }//secondaries
3550 }//initial protons
3551 if(pdgcode == -2212) {
4042c3a2 3552 if(label <= stack->GetNprimary()) {
e7df5638 3553 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3554 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3555 particle->Pt());
3556 else
e7df5638 3557 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3558 particle->Py(),
3559 particle->Pz()),
3560 particle->Pt());
3561 }//primaries
3562 if(label > stack->GetNprimary()) {
3563 Int_t lPartMother = -1;
3564 Int_t motherPDGCode = -1;
3565 lPartMother = particle->GetFirstMother();
3566 TParticle *motherParticle = stack->Particle(lPartMother);
3567 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3568
3569 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3570 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3571 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3572 particle->Pt());
3573 else
e7df5638 3574 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3575 particle->Py(),
3576 particle->Pz()),
3577 particle->Pt());
3578 }//weak decays
3579 if((particle->GetUniqueID() == 13)) {
e7df5638 3580 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3581 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3582 particle->Pt());
3583 else
e7df5638 3584 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3585 particle->Py(),
3586 particle->Pz()),
3587 particle->Pt());
3588 }//hadronic interactions
3589 }//secondaries
c20898de 3590 }//initial antiprotons
4042c3a2 3591 }//TPC only tracks
e7df5638 3592 else {
4042c3a2 3593 Int_t label = TMath::Abs(track->GetLabel());
3594 if(IsLabelUsed(labelArray,label)) continue;
3595 labelArray.AddAt(label,labelCounter);
3596 labelCounter += 1;
3597
3598 if (mcLabel != TMath::Abs(label)) continue;
3599 if(mcLabel != label) continue;
afc2ac17 3600 if(label > stack->GetNtrack()) continue;
3601
4042c3a2 3602 TParticle *particle = stack->Particle(label);
3603 if(!particle) continue;
3604 Int_t pdgcode = particle->GetPdgCode();
3605 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3606 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 3607 if(fProtonAnalysisBase->GetEtaMode()) {
4042c3a2 3608 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3609 }
3610 else
e7df5638 3611 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
4042c3a2 3612
e7df5638 3613 //Double_t probability[5];
4042c3a2 3614
30f87a5b 3615 if(fUseCutsInEfficiency) {
3616 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
3617 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
3618 }
4042c3a2 3619 //reconstructed primary (anti)protons
3620 if(pdgcode == 2212) {
4042c3a2 3621 if(label <= stack->GetNprimary()) {
e7df5638 3622 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3623 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3624 particle->Pt());
3625 else
e7df5638 3626 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3627 particle->Py(),
3628 particle->Pz()),
3629 particle->Pt());
3630 }//primaries
3631 if(label > stack->GetNprimary()) {
3632 Int_t lPartMother = -1;
3633 Int_t motherPDGCode = -1;
3634 lPartMother = particle->GetFirstMother();
3635 TParticle *motherParticle = stack->Particle(lPartMother);
3636 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3637
3638 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3639 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3640 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
3641 particle->Pt());
3642 else
e7df5638 3643 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3644 particle->Py(),
3645 particle->Pz()),
3646 particle->Pt());
3647 }//weak decays
3648 if((particle->GetUniqueID() == 13)) {
e7df5638 3649 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3650 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
3651 particle->Pt());
3652 else
e7df5638 3653 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3654 particle->Py(),
3655 particle->Pz()),
3656 particle->Pt());
3657 }//hadronic interactions
3658 }//secondaries
3659 }//initial protons
3660 if(pdgcode == -2212) {
4042c3a2 3661 if(label <= stack->GetNprimary()) {
e7df5638 3662 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3663 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
3664 particle->Pt());
3665 else
e7df5638 3666 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3667 particle->Py(),
3668 particle->Pz()),
3669 particle->Pt());
3670 }//primaries
3671 if(label > stack->GetNprimary()) {
3672 Int_t lPartMother = -1;
3673 Int_t motherPDGCode = -1;
3674 lPartMother = particle->GetFirstMother();
3675 TParticle *motherParticle = stack->Particle(lPartMother);
3676 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3677
3678 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3679 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3680 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
3681 particle->Pt());
3682 else
e7df5638 3683 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3684 particle->Py(),
3685 particle->Pz()),
3686 particle->Pt());
3687 }//weak decays
3688 if((particle->GetUniqueID() == 13)) {
e7df5638 3689 if(fProtonAnalysisBase->GetEtaMode())
4042c3a2 3690 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
3691 particle->Pt());
3692 else
e7df5638 3693 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
4042c3a2 3694 particle->Py(),
3695 particle->Pz()),
3696 particle->Pt());
3697 }//hadronic interactions
3698 }//secondaries
0ececdf2 3699 }//initial antiprotons
4042c3a2 3700 }//global tracking
3701 }//track loop
3702 labelArray.Reset();
3703 }//loop over findable tracks
3704
3705 labelMCArray.Reset();
3706}
3707
c20898de 3708//____________________________________________________________________//
3709void AliProtonQAAnalysis::RunPIDEfficiencyAnalysis(AliStack *const stack,
d488527a 3710 AliESDEvent *esd,
3711 const AliESDVertex *vertex) {
df201289 3712 //Runs the PID efficiency analysis
c20898de 3713 Int_t nGoodTracks = esd->GetNumberOfTracks();
3714 TArrayI labelArray(nGoodTracks);
3715 Int_t labelCounter = 0;
3716 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3717 AliESDtrack* track = esd->GetTrack(iTracks);
3718 if(!track) continue;
3719
3720 //TPC only
3721 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3722 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3723 if(!tpcTrack) continue;
3724 }
3725
3726 Int_t label = TMath::Abs(track->GetLabel());
3727 if(IsLabelUsed(labelArray,label)) continue;
3728 labelArray.AddAt(label,labelCounter);
3729 labelCounter += 1;
afc2ac17 3730 if(label > stack->GetNtrack()) continue;
3731
c20898de 3732 TParticle *particle = stack->Particle(label);
3733 if(!particle) continue;
3734 Int_t pdgcode = particle->GetPdgCode();
3735
9a316962 3736 Int_t nTPCpoints = track->GetTPCsignalN();
3737
30f87a5b 3738 if(fUseCutsInEfficiency) {
3739 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
3740 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
3741 }
0ececdf2 3742 if(TMath::Abs(pdgcode) == 2212) {
3743 if(fProtonAnalysisBase->GetEtaMode())
3744 ((TH3D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
3745 particle->Pt(),nTPCpoints);
3746 else
3747 ((TH3D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
3748 }
3749
c20898de 3750 //pid
3751 if(fProtonAnalysisBase->IsProton(track)) {
3752 if(fProtonAnalysisBase->GetEtaMode())
9a316962 3753 ((TH3D *)(fEfficiencyList->At(14)))->Fill(particle->Eta(),
3754 particle->Pt(),nTPCpoints);
3755 else ((TH3D *)(fEfficiencyList->At(14)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
c20898de 3756 if(TMath::Abs(pdgcode) == 2212) {
3757 if(fProtonAnalysisBase->GetEtaMode())
9a316962 3758 ((TH3D *)(fEfficiencyList->At(13)))->Fill(particle->Eta(),
3759 particle->Pt(),nTPCpoints);
c20898de 3760 else
9a316962 3761 ((TH3D *)(fEfficiencyList->At(13)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
c20898de 3762 }//properly identified as proton
3763 else {
3764 if(fProtonAnalysisBase->GetEtaMode())
9a316962 3765 ((TH3D *)(fEfficiencyList->At(15)))->Fill(particle->Eta(),
3766 particle->Pt(),nTPCpoints);
c20898de 3767 else
9a316962 3768 ((TH3D *)(fEfficiencyList->At(15)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt(),nTPCpoints);
c20898de 3769 }//contamination
3770 }//identified as proton
3771 }//ESD track loop
3772 labelArray.Reset();
3773}
3774
df201289 3775//____________________________________________________________________//
3776void AliProtonQAAnalysis::RunCutEfficiencyAnalysis(AliStack *const stack,
3777 AliESDEvent *esd,
3778 const AliESDVertex *vertex) {
3779 //Runs the cut efficiency analysis
3780 Int_t nGoodTracks = esd->GetNumberOfTracks();
3781 TArrayI labelArray(nGoodTracks);
3782 Int_t labelCounter = 0;
3783 Int_t nPrimaries = stack->GetNprimary();
3784 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3785 AliESDtrack* track = esd->GetTrack(iTracks);
3786 if(!track) continue;
3787
3788 //TPC only
3789 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3790 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3791 if(!tpcTrack) continue;
3792 }
3793
3794 Int_t label = TMath::Abs(track->GetLabel());
3795 if(IsLabelUsed(labelArray,label)) continue;
3796 labelArray.AddAt(label,labelCounter);
3797 labelCounter += 1;
afc2ac17 3798 if(label > stack->GetNtrack()) continue;
df201289 3799
3800 TParticle *particle = stack->Particle(label);
3801 if(!particle) continue;
3802
3803 //select primaries
3804 if(label > nPrimaries) continue;
3805 //select identified protons
3806 if(!fProtonAnalysisBase->IsProton(track)) continue;
3807
3808 if(track->Charge() > 0) {
3809 if(fProtonAnalysisBase->GetEtaMode())
3810 ((TH2F *)(fCutEfficiencyList->At(0)))->Fill(particle->Eta(),
3811 particle->Pt());
3812 else
3813 ((TH2F *)(fCutEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt());
3814 }
3815
3816 if(track->Charge() < 0) {
3817 if(fProtonAnalysisBase->GetEtaMode())
3818 ((TH2F *)(fCutEfficiencyList->At(1)))->Fill(particle->Eta(),
3819 particle->Pt());
3820 else
3821 ((TH2F *)(fCutEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt());
3822 }
3823
3824 //survived tracks
30f87a5b 3825 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
3826 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
df201289 3827 if(track->Charge() > 0) {
3828 if(fProtonAnalysisBase->GetEtaMode())
3829 ((TH2F *)(fCutEfficiencyList->At(2)))->Fill(particle->Eta(),
3830 particle->Pt());
3831 else
3832 ((TH2F *)(fCutEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt());
3833 }
3834
3835 if(track->Charge() < 0) {
3836 if(fProtonAnalysisBase->GetEtaMode())
3837 ((TH2F *)(fCutEfficiencyList->At(3)))->Fill(particle->Eta(),
3838 particle->Pt());
3839 else
3840 ((TH2F *)(fCutEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()),particle->Pt());
3841 }
3842 }//ESD track loop
3843 labelArray.Reset();
3844}
3845
3e6c06f4 3846//____________________________________________________________________//
73aba974 3847void AliProtonQAAnalysis::RunEfficiencyAnalysis(AliStack *const stack,
6667f3a7 3848 AliESDEvent *esd,
3849 const AliESDVertex *vertex) {
9c0b9f24 3850 //Runs the efficiency code
3851 //MC loop
3852 Int_t nMCProtons = 0, nESDProtons = 0;
e13bbda6 3853 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
9c0b9f24 3854 TParticle *particle = stack->Particle(iParticle);
3855 if(!particle) continue;
55f9a666 3856
9c0b9f24 3857 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
3858 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 3859 if(fProtonAnalysisBase->GetEtaMode()) {
e13bbda6 3860 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3861 }
3862 else
e7df5638 3863 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
9c0b9f24 3864
3865 Int_t pdgcode = particle->GetPdgCode();
e13bbda6 3866 if(TMath::Abs(pdgcode) != 2212) continue;
3867
3868 if(iParticle <= stack->GetNprimary()) {
3869 if(pdgcode == 2212) {
3870 nMCProtons += 1;
e7df5638 3871 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3872 ((TH2D *)(fEfficiencyList->At(0)))->Fill(particle->Eta(),
3873 particle->Pt());
3874 else
e7df5638 3875 ((TH2D *)(fEfficiencyList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
e13bbda6 3876 particle->Py(),
3877 particle->Pz()),
3878 particle->Pt());
3879 }//protons
3880 if(pdgcode == -2212) {
e7df5638 3881 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3882 ((TH2D *)(fEfficiencyList->At(1)))->Fill(particle->Eta(),
3883 particle->Pt());
3884 else
e7df5638 3885 ((TH2D *)(fEfficiencyList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 3886 particle->Py(),
3887 particle->Pz()),
e13bbda6 3888 particle->Pt());
3889 }//antiprotons
3890 }//primaries
3891 else {
3892 //secondaries
3893 Int_t lPartMother = -1;
3894 Int_t motherPDGCode = -1;
3895 lPartMother = particle->GetFirstMother();
3896 TParticle *motherParticle = stack->Particle(lPartMother);
3897 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
3898
3899 if(pdgcode == 2212) {
3900 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3901 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3902 ((TH2D *)(fEfficiencyList->At(2)))->Fill(particle->Eta(),
3903 particle->Pt());
3904 else
e7df5638 3905 ((TH2D *)(fEfficiencyList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 3906 particle->Py(),
3907 particle->Pz()),
e13bbda6 3908 particle->Pt());
3909 }//weak decays
3910 if((particle->GetUniqueID() == 13)) {
e7df5638 3911 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3912 ((TH2D *)(fEfficiencyList->At(4)))->Fill(particle->Eta(),
3913 particle->Pt());
3914 else
e7df5638 3915 ((TH2D *)(fEfficiencyList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
3916 particle->Py(),
3917 particle->Pz()),
e13bbda6 3918 particle->Pt());
3919 }//hadronic interactions
3920 }//protons
3921 if(pdgcode == -2212) {
3922 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 3923 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3924 ((TH2D *)(fEfficiencyList->At(3)))->Fill(particle->Eta(),
3925 particle->Pt());
3926 else
e7df5638 3927 ((TH2D *)(fEfficiencyList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 3928 particle->Py(),
3929 particle->Pz()),
e13bbda6 3930 particle->Pt());
3931 }//weak decays
3932 if((particle->GetUniqueID() == 13)) {
e7df5638 3933 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3934 ((TH2D *)(fEfficiencyList->At(5)))->Fill(particle->Eta(),
3935 particle->Pt());
3936 else
e7df5638 3937 ((TH2D *)(fEfficiencyList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
e13bbda6 3938 particle->Py(),
3939 particle->Pz()),
3940 particle->Pt());
3941 }//hadronic interactions
3942 }//antiprotons
3943 }//secondaries
3944
9c0b9f24 3945 }//MC loop
3946
6667f3a7 3947 //ESD track loop
9c0b9f24 3948 Int_t nGoodTracks = esd->GetNumberOfTracks();
3949 TArrayI labelArray(nGoodTracks);
3950 Int_t labelCounter = 0;
3951 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
3952 AliESDtrack* track = esd->GetTrack(iTracks);
3953 if(!track) continue;
6667f3a7 3954
9c0b9f24 3955 Int_t label = TMath::Abs(track->GetLabel());
3956 if(IsLabelUsed(labelArray,label)) continue;
3957 labelArray.AddAt(label,labelCounter);
3958 labelCounter += 1;
afc2ac17 3959 if(label > stack->GetNtrack()) continue;
3960
9c0b9f24 3961 TParticle *particle = stack->Particle(label);
3962 if(!particle) continue;
3963 Int_t pdgcode = particle->GetPdgCode();
e13bbda6 3964 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
9c0b9f24 3965
73aba974 3966 Double_t gPt = 0.0, gP = 0.0;
9c0b9f24 3967
3968 //TPC only
e7df5638 3969 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
9c0b9f24 3970 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
3971 if(!tpcTrack) continue;
73aba974 3972 gPt = tpcTrack->Pt();
3973 gP = tpcTrack->P();
6667f3a7 3974
e13bbda6 3975 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 3976 if(fProtonAnalysisBase->GetEtaMode()) {
e13bbda6 3977 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
3978 }
3979 else
e7df5638 3980 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
e13bbda6 3981
30f87a5b 3982 if(fUseCutsInEfficiency) {
3983 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
3984 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
3985 }
9c0b9f24 3986 //reconstructed primary (anti)protons
3987 if(pdgcode == 2212) {
9c0b9f24 3988 if(label <= stack->GetNprimary()) {
3989 nESDProtons += 1;
e7df5638 3990 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 3991 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
3992 particle->Pt());
3993 else
e7df5638 3994 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 3995 particle->Py(),
3996 particle->Pz()),
e13bbda6 3997 particle->Pt());
3998 }//primaries
3999 if(label > stack->GetNprimary()) {
4000 Int_t lPartMother = -1;
4001 Int_t motherPDGCode = -1;
4002 lPartMother = particle->GetFirstMother();
4003 TParticle *motherParticle = stack->Particle(lPartMother);
4004 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
6667f3a7 4005
e13bbda6 4006 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 4007 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4008 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
4009 particle->Pt());
4010 else
e7df5638 4011 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4012 particle->Py(),
4013 particle->Pz()),
e13bbda6 4014 particle->Pt());
4015 }//weak decays
4016 if((particle->GetUniqueID() == 13)) {
e7df5638 4017 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4018 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
4019 particle->Pt());
4020 else
e7df5638 4021 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4022 particle->Py(),
4023 particle->Pz()),
e13bbda6 4024 particle->Pt());
4025 }//hadronic interactions
4026 }//secondaries
9c0b9f24 4027 }//initial protons
e13bbda6 4028 if(pdgcode == -2212) {
e13bbda6 4029 if(label <= stack->GetNprimary()) {
e7df5638 4030 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4031 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
4032 particle->Pt());
4033 else
e7df5638 4034 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4035 particle->Py(),
4036 particle->Pz()),
e13bbda6 4037 particle->Pt());
4038 }//primaries
4039 if(label > stack->GetNprimary()) {
4040 Int_t lPartMother = -1;
4041 Int_t motherPDGCode = -1;
4042 lPartMother = particle->GetFirstMother();
4043 TParticle *motherParticle = stack->Particle(lPartMother);
4044 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
6667f3a7 4045
e13bbda6 4046 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 4047 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4048 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
4049 particle->Pt());
4050 else
e7df5638 4051 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4052 particle->Py(),
4053 particle->Pz()),
e13bbda6 4054 particle->Pt());
4055 }//weak decays
4056 if((particle->GetUniqueID() == 13)) {
e7df5638 4057 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4058 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
4059 particle->Pt());
4060 else
e7df5638 4061 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4062 particle->Py(),
4063 particle->Pz()),
e13bbda6 4064 particle->Pt());
4065 }//hadronic interactions
4066 }//secondaries
9c0b9f24 4067 }//initial antiprotons
9c0b9f24 4068 }//TPC only tracks
e7df5638 4069 else {
e13bbda6 4070 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 4071 if(fProtonAnalysisBase->GetEtaMode()) {
e13bbda6 4072 if((particle->Eta() > fMaxY)|| (particle->Eta() < fMinY)) continue;
4073 }
4074 else {
e7df5638 4075 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
e13bbda6 4076 }
4077
30f87a5b 4078 if(fUseCutsInEfficiency) {
4079 if(!fProtonAnalysisBase->IsPrimary(esd,vertex,track)) continue;
4080 if(!fProtonAnalysisBase->IsAccepted(track)) continue;
4081 }
9c0b9f24 4082 //reconstructed primary (anti)protons
4083 if(pdgcode == 2212) {
e13bbda6 4084 if(label <= stack->GetNprimary()) {
4085 nESDProtons += 1;
e7df5638 4086 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4087 ((TH2D *)(fEfficiencyList->At(6)))->Fill(particle->Eta(),
4088 particle->Pt());
4089 else
e7df5638 4090 ((TH2D *)(fEfficiencyList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4091 particle->Py(),
4092 particle->Pz()),
e13bbda6 4093 particle->Pt());
4094 }//primaries
4095 if(label > stack->GetNprimary()) {
4096 Int_t lPartMother = -1;
4097 Int_t motherPDGCode = -1;
4098 lPartMother = particle->GetFirstMother();
4099 TParticle *motherParticle = stack->Particle(lPartMother);
4100 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
6667f3a7 4101
e13bbda6 4102 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 4103 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4104 ((TH2D *)(fEfficiencyList->At(8)))->Fill(particle->Eta(),
4105 particle->Pt());
4106 else
e7df5638 4107 ((TH2D *)(fEfficiencyList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4108 particle->Py(),
4109 particle->Pz()),
e13bbda6 4110 particle->Pt());
4111 }//weak decays
4112 if((particle->GetUniqueID() == 13)) {
e7df5638 4113 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4114 ((TH2D *)(fEfficiencyList->At(10)))->Fill(particle->Eta(),
4115 particle->Pt());
4116 else
e7df5638 4117 ((TH2D *)(fEfficiencyList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4118 particle->Py(),
4119 particle->Pz()),
e13bbda6 4120 particle->Pt());
4121 }//hadronic interactions
4122 }//secondaries
9c0b9f24 4123 }//initial protons
e13bbda6 4124 if(pdgcode == -2212) {
e7df5638 4125 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4126 ((TH2D *)(fEfficiencyList->At(12)))->Fill(particle->Eta(),
6667f3a7 4127 particle->Pt());
e13bbda6 4128 else
e7df5638 4129 ((TH2D *)(fEfficiencyList->At(12)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4130 particle->Py(),
4131 particle->Pz()),
6667f3a7 4132 particle->Pt());
e13bbda6 4133 if(label <= stack->GetNprimary()) {
e7df5638 4134 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4135 ((TH2D *)(fEfficiencyList->At(7)))->Fill(particle->Eta(),
4136 particle->Pt());
4137 else
e7df5638 4138 ((TH2D *)(fEfficiencyList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4139 particle->Py(),
4140 particle->Pz()),
e13bbda6 4141 particle->Pt());
4142 }//primaries
4143 if(label > stack->GetNprimary()) {
4144 Int_t lPartMother = -1;
4145 Int_t motherPDGCode = -1;
4146 lPartMother = particle->GetFirstMother();
4147 TParticle *motherParticle = stack->Particle(lPartMother);
4148 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
6667f3a7 4149
e13bbda6 4150 if((particle->GetUniqueID() == 4)&&(TMath::Abs(motherPDGCode) == 3122)) {
e7df5638 4151 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4152 ((TH2D *)(fEfficiencyList->At(9)))->Fill(particle->Eta(),
4153 particle->Pt());
4154 else
e7df5638 4155 ((TH2D *)(fEfficiencyList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4156 particle->Py(),
4157 particle->Pz()),
e13bbda6 4158 particle->Pt());
4159 }//weak decays
4160 if((particle->GetUniqueID() == 13)) {
e7df5638 4161 if(fProtonAnalysisBase->GetEtaMode())
e13bbda6 4162 ((TH2D *)(fEfficiencyList->At(11)))->Fill(particle->Eta(),
4163 particle->Pt());
4164 else
e7df5638 4165 ((TH2D *)(fEfficiencyList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4166 particle->Py(),
4167 particle->Pz()),
e13bbda6 4168 particle->Pt());
4169 }//hadronic interactions
4170 }//secondaries
9c0b9f24 4171 }//initial antiprotons
9c0b9f24 4172 }//global tracking
4173 }//track loop
4174
4175 //Printf("MC protons: %d - ESD protons: %d",nMCProtons,nESDProtons);
4176}
4177
4178//____________________________________________________________________//
4179Bool_t AliProtonQAAnalysis::IsLabelUsed(TArrayI labelArray,
4180 Int_t label) {
4181 //Checks if the label is used already
4182 Bool_t status = kFALSE;
4183 for(Int_t i = 0; i < labelArray.GetSize(); i++) {
4184 if(labelArray.At(i) == label)
4185 status = kTRUE;
4186 }
4187
4188 return status;
4189}
4190
75decd62 4191//____________________________________________________________________//
4192void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
73aba974 4193 AliESDEvent *const esd) {
75decd62 4194 //Runs the vertex QA
4195 //MC vertex
4196 TArrayF primaryVertex(3);
4197 header->PrimaryVertex(primaryVertex);
4198
e7df5638 4199 //Int_t nPrimaries = stack->GetNprimary();
4042c3a2 4200 ((TH1F *)(fQAVertexList->At(0)))->Fill(primaryVertex[2]);
75decd62 4201
4202 //TPC vertex
4203 const AliESDVertex *vertexTPC = esd->GetPrimaryVertexTPC();
4204 if(!vertexTPC) {
4205 Printf("ERROR: Could not retrieve the TPC vertex");
4206 return;
4207 }
4208 if(vertexTPC->GetNContributors() > 0) {
4042c3a2 4209 ((TH1F *)(fQAVertexList->At(1)))->Fill(primaryVertex[2]);
75decd62 4210 ((TH2F *)(fQAVertexList->At(2)))->Fill(vertexTPC->GetXv(),
4211 vertexTPC->GetNContributors());
4212 ((TH2F *)(fQAVertexList->At(3)))->Fill(vertexTPC->GetYv(),
4213 vertexTPC->GetNContributors());
4214 ((TH2F *)(fQAVertexList->At(4)))->Fill(vertexTPC->GetZv(),
4215 vertexTPC->GetNContributors());
4216 ((TH1F *)(fQAVertexList->At(5)))->Fill((vertexTPC->GetXv()-primaryVertex[0])*10000.);
4217 ((TH1F *)(fQAVertexList->At(6)))->Fill((vertexTPC->GetYv()-primaryVertex[1])*10000.);
4218 ((TH1F *)(fQAVertexList->At(7)))->Fill((vertexTPC->GetZv()-primaryVertex[2])*10000.);
4219 ((TH1F *)(fQAVertexList->At(8)))->Fill(vertexTPC->GetXRes()*10000.);
4220 ((TH1F *)(fQAVertexList->At(9)))->Fill(vertexTPC->GetYRes()*10000.);
4221 ((TH1F *)(fQAVertexList->At(10)))->Fill(vertexTPC->GetZRes()*10000.);
4222 }//TPC vertex
4223
4224 //SPD vertex
4225 const AliESDVertex *vertexSPD = esd->GetPrimaryVertexSPD();
4226 if(!vertexSPD) {
4227 Printf("ERROR: Could not retrieve the SPD vertex");
4228 return;
4229 }
4230 if(vertexSPD->GetNContributors() > 0) {
4042c3a2 4231 ((TH1F *)(fQAVertexList->At(11)))->Fill(primaryVertex[2]);
75decd62 4232 ((TH2F *)(fQAVertexList->At(12)))->Fill(vertexSPD->GetXv(),
4233 vertexSPD->GetNContributors());
4234 ((TH2F *)(fQAVertexList->At(13)))->Fill(vertexSPD->GetYv(),
4235 vertexSPD->GetNContributors());
4236 ((TH2F *)(fQAVertexList->At(14)))->Fill(vertexSPD->GetZv(),
4237 vertexSPD->GetNContributors());
4238 ((TH1F *)(fQAVertexList->At(15)))->Fill((vertexSPD->GetXv()-primaryVertex[0])*10000.);
4239 ((TH1F *)(fQAVertexList->At(16)))->Fill((vertexSPD->GetYv()-primaryVertex[1])*10000.);
4240 ((TH1F *)(fQAVertexList->At(17)))->Fill((vertexSPD->GetZv()-primaryVertex[2])*10000.);
4241 ((TH1F *)(fQAVertexList->At(18)))->Fill(vertexSPD->GetXRes()*10000.);
4242 ((TH1F *)(fQAVertexList->At(19)))->Fill(vertexSPD->GetYRes()*10000.);
4243 ((TH1F *)(fQAVertexList->At(20)))->Fill(vertexSPD->GetZRes()*10000.);
4244 }//SPD vertex
4245
4246 //Tracks vertex
4247 const AliESDVertex *vertexTracks = esd->GetPrimaryVertex();
4248 if(!vertexTracks) {
4249 Printf("ERROR: Could not retrieve the Tracks vertex");
4250 return;
4251 }
4252 if(vertexTracks->GetNContributors() > 0) {
4042c3a2 4253 ((TH1F *)(fQAVertexList->At(21)))->Fill(primaryVertex[2]);
75decd62 4254 ((TH2F *)(fQAVertexList->At(22)))->Fill(vertexTracks->GetXv(),
4255 vertexTracks->GetNContributors());
4256 ((TH2F *)(fQAVertexList->At(23)))->Fill(vertexTracks->GetYv(),
4257 vertexTracks->GetNContributors());
4258 ((TH2F *)(fQAVertexList->At(24)))->Fill(vertexTracks->GetZv(),
4259 vertexTracks->GetNContributors());
4260 ((TH1F *)(fQAVertexList->At(25)))->Fill((vertexTracks->GetXv()-primaryVertex[0])*10000.);
4261 ((TH1F *)(fQAVertexList->At(26)))->Fill((vertexTracks->GetYv()-primaryVertex[1])*10000.);
4262 ((TH1F *)(fQAVertexList->At(27)))->Fill((vertexTracks->GetZv()-primaryVertex[2])*10000.);
4263 ((TH1F *)(fQAVertexList->At(28)))->Fill(vertexTracks->GetXRes()*10000.);
4264 ((TH1F *)(fQAVertexList->At(29)))->Fill(vertexTracks->GetYRes()*10000.);
4265 ((TH1F *)(fQAVertexList->At(30)))->Fill(vertexTracks->GetZRes()*10000.);
4266 }//Tracks vertex
4267
4268}
4269
9c0b9f24 4270//____________________________________________________________________//
4271void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
6667f3a7 4272 AliESDEvent *esd,
4273 const AliESDVertex *vertex) {
3e6c06f4 4274 //Runs the QA code
1c21299a 4275 //MC loop
4276 for(Int_t iParticle = 0; iParticle < stack->GetNprimary(); iParticle++) {
4277 TParticle *particle = stack->Particle(iParticle);
55f9a666 4278 if(!particle) continue;
4279
1c21299a 4280 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
4281 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 4282 if(fProtonAnalysisBase->GetEtaMode()) {
dd3fa486 4283 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
4284 }
4285 else {
e7df5638 4286 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
dd3fa486 4287 }
1c21299a 4288 Int_t pdgcode = particle->GetPdgCode();
dd3fa486 4289 if(pdgcode == 2212) {
e7df5638 4290 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 4291 ((TH2D *)(fQA2DList->At(8)))->Fill(particle->Eta(),
4292 particle->Pt());
4293 else
e7df5638 4294 ((TH2D *)(fQA2DList->At(8)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4295 particle->Py(),
4296 particle->Pz()),
dd3fa486 4297 particle->Pt());
4298 }
4299 if(pdgcode == -2212) {
e7df5638 4300 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 4301 ((TH2D *)(fQA2DList->At(9)))->Fill(particle->Eta(),
4302 particle->Pt());
4303 else
e7df5638 4304 ((TH2D *)(fQA2DList->At(9)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
37cb8683 4305 particle->Py(),
4306 particle->Pz()),
dd3fa486 4307 particle->Pt());
4308 }
1c21299a 4309 }//MC loop
369b48c8 4310
4311 Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0};
6667f3a7 4312 //ESD track loop
9c0b9f24 4313 Int_t nGoodTracks = esd->GetNumberOfTracks();
2b00fd2c 4314 TArrayI labelArray(nGoodTracks);
4315 Int_t labelCounter = 0;
3e6c06f4 4316 for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
9c0b9f24 4317 AliESDtrack* track = esd->GetTrack(iTracks);
4318 if(!track) continue;
4319
3e6c06f4 4320 Int_t label = TMath::Abs(track->GetLabel());
2b00fd2c 4321 if(IsLabelUsed(labelArray,label)) continue;
4322 labelArray.AddAt(label,labelCounter);
4323 labelCounter += 1;
afc2ac17 4324 if(label > stack->GetNtrack()) continue;
4325
5b44449f 4326 TParticle *particle = stack->Particle(label);
6667f3a7 4327 if(!particle) continue;
5b44449f 4328 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
4329
32a2ebb6 4330 AliESDtrack trackTPC;
4331
4332 //in case it's a TPC only track relate it to the proper vertex
369b48c8 4333 //if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)&&(!fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
e7df5638 4334 //if((fUseTPCOnly)&&(!fUseHybridTPC)) {
369b48c8 4335 /*track->GetImpactParametersTPC(dca,cov);
4336 if (dca[0]==0 && dca[1]==0)
32a2ebb6 4337 track->RelateToVertexTPC(((AliESDEvent*)esd)->GetPrimaryVertexTPC(),esd->GetMagneticField(),kVeryBig);
4338 if (!track->FillTPCOnlyTrack(trackTPC)) {
4339 continue;
4340 }
369b48c8 4341 track = &trackTPC ;*/
4342 //}
6667f3a7 4343
73aba974 4344 Double_t gPt = 0.0, gP = 0.0;
e7df5638 4345 //Double_t probability[5];
369b48c8 4346 //Float_t dcaXY = 0.0, dcaZ = 0.0;
e7df5638 4347 Double_t nSigmaToVertex = fProtonAnalysisBase->GetSigmaToVertex(track);
5b8133c7 4348 Int_t fIdxInt[200];
4349 Int_t nClustersITS = track->GetITSclusters(fIdxInt);
4350 Int_t nClustersTPC = track->GetTPCclusters(fIdxInt);
6667f3a7 4351
5b8133c7 4352 Float_t chi2PerClusterITS = -1;
4353 if (nClustersITS!=0)
4354 chi2PerClusterITS = track->GetITSchi2()/Float_t(nClustersITS);
4355 Float_t chi2PerClusterTPC = -1;
4356 if (nClustersTPC!=0)
4357 chi2PerClusterTPC = track->GetTPCchi2()/Float_t(nClustersTPC);
4358 Double_t chi2ConstrainVertex = TMath::Log(track->GetConstrainedChi2());
4359 Double_t extCov[15];
4360 track->GetExternalCovariance(extCov);
57e749bb 4361 Int_t npointsTPCdEdx = track->GetTPCsignalN();
4362
5b8133c7 4363 //TPC only
e7df5638 4364 if((fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kTPC)||(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)) {
3e6c06f4 4365 AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
4366 if(!tpcTrack) continue;
73aba974 4367 gPt = tpcTrack->Pt();
4368 gP = tpcTrack->P();
369b48c8 4369 /*if(fProtonAnalysisBase->GetAnalysisMode()==AliProtonAnalysisBase::kHybrid)
e7df5638 4370 track->GetImpactParameters(dcaXY,dcaZ);
369b48c8 4371 else track->GetImpactParametersTPC(dcaXY,dcaZ);*/
4372 tpcTrack->PropagateToDCA(vertex,
4373 esd->GetMagneticField(),
4374 100.,dca,cov);
4375
3e6c06f4 4376 //pid
e7df5638 4377 if(fProtonAnalysisBase->IsProton(track)) {
4378 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
3e23254a 4379
4380 FillQA(stack,esd,vertex,track);
30f87a5b 4381 if(fProtonAnalysisBase->IsPrimary(esd,vertex,track)) {
4382 if(fProtonAnalysisBase->IsAccepted(track)) {
4383 if(label <= stack->GetNprimary()) {
4384 if(track->Charge() > 0) {
4385 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4386 if(track->HasPointOnITSLayer(iLayer))
4387 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
4388 }
4389 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
4390 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
4391 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
4392 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
4393 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
4394 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
4395 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
4396 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
4397 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
4398 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
4399 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(tpcTrack->Eta(),
4400 tpcTrack->Phi()*180./TMath::Pi(),
4401 nClustersTPC);
4402 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(tpcTrack->Eta(),
4403 tpcTrack->Phi()*180./TMath::Pi(),
4404 chi2PerClusterTPC);
4405 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(tpcTrack->Eta(),
4406 tpcTrack->Phi()*180./TMath::Pi(),
4407 npointsTPCdEdx);
4408 ((TH1D *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
4409
369b48c8 4410 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dca[0]));
4411 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4412 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
4da3d354 4413 ((TH3F *)(fAcceptedDCAList->At(12)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4414 ((TH3F *)(fAcceptedDCAList->At(18)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
30f87a5b 4415 if(fProtonAnalysisBase->GetEtaMode())
4416 ((TH2D *)(fQA2DList->At(0)))->Fill(tpcTrack->Eta(),gPt);
4417 else
4418 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4419 tpcTrack->Py(),
4420 tpcTrack->Pz()),
4421 gPt);
4422 }//accepted primary protons
4423 else if(track->Charge() < 0) {
4424 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4425 if(track->HasPointOnITSLayer(iLayer))
4426 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
4427 }
4428 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
4429 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
4430 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
4431 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
4432 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
4433 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
4434 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
4435 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
4436 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
4437 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
4438 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(tpcTrack->Eta(),
4439 tpcTrack->Phi()*180./TMath::Pi(),
4440 nClustersTPC);
4441 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(tpcTrack->Eta(),
4442 tpcTrack->Phi()*180./TMath::Pi(),
4443 chi2PerClusterTPC);
4444 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(tpcTrack->Eta(),
4445 tpcTrack->Phi()*180./TMath::Pi(),
4446 npointsTPCdEdx);
4447 ((TH1D *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
4448
369b48c8 4449 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dca[0]));
4450 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4451 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
4da3d354 4452 ((TH3F *)(fAcceptedDCAList->At(13)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4453 ((TH3F *)(fAcceptedDCAList->At(19)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
30f87a5b 4454 if(fProtonAnalysisBase->GetEtaMode())
4455 ((TH2D *)(fQA2DList->At(4)))->Fill(tpcTrack->Eta(),gPt);
4456 else
4457 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4458 tpcTrack->Py(),
4459 tpcTrack->Pz()),
4460 gPt);
4461 }//accepted primary antiprotons
4462 }//accepted primary particles
4463 else if(label > stack->GetNprimary()) {
4464 Int_t lPartMother = -1;
4465 Int_t motherPDGCode = -1;
4466 if(particle) {
4467 lPartMother = particle->GetFirstMother();
4468 TParticle *motherParticle = stack->Particle(lPartMother);
4469 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
5b8133c7 4470 }
6667f3a7 4471
30f87a5b 4472 if(fMCProcessIdFlag)
4473 if(particle->GetUniqueID() != fMCProcessId) continue;
4474 if(fMotherParticlePDGCodeFlag)
4475 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
6667f3a7 4476
30f87a5b 4477 if(track->Charge() > 0) {
4478 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4479 if(track->HasPointOnITSLayer(iLayer))
4480 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
4481 }
4482 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
4483 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
4484 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
4485 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
4486 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
4487 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
4488 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
4489 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
4490 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
4491 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
4492 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(tpcTrack->Eta(),
4493 tpcTrack->Phi()*180./TMath::Pi(),
4494 nClustersTPC);
4495 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(tpcTrack->Eta(),
4496 tpcTrack->Phi()*180./TMath::Pi(),
4497 chi2PerClusterTPC);
4498 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(tpcTrack->Eta(),
4499 tpcTrack->Phi()*180./TMath::Pi(),
4500 npointsTPCdEdx);
4501 ((TH1D *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
4502
369b48c8 4503 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dca[0]));
4504 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4505 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
369b48c8 4506 if(particle->GetUniqueID() == 4) {
4da3d354 4507 ((TH3F *)(fAcceptedDCAList->At(14)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4508 ((TH3F *)(fAcceptedDCAList->At(20)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4509 }
4510 if(particle->GetUniqueID() == 13) {
4da3d354 4511 ((TH3F *)(fAcceptedDCAList->At(16)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4512 ((TH3F *)(fAcceptedDCAList->At(22)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4513 }
30f87a5b 4514 if(fProtonAnalysisBase->GetEtaMode())
4515 ((TH2D *)(fQA2DList->At(2)))->Fill(tpcTrack->Eta(),gPt);
4516 else
4517 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4518 tpcTrack->Py(),
4519 tpcTrack->Pz()),
4520 gPt);
4521 if(fProtonAnalysisBase->GetEtaMode())
4522 ((TH3F *)(fQA2DList->At(10)))->Fill(tpcTrack->Eta(),gPt,
4523 ConvertPDGToInt(motherPDGCode));
4524 else
4525 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4526 tpcTrack->Py(),
4527 tpcTrack->Pz()),
4528 gPt,
4529 ConvertPDGToInt(motherPDGCode));
4530 }//accepted secondary protons
4531 else if(track->Charge() < 0) {
4532 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4533 if(track->HasPointOnITSLayer(iLayer))
4534 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
4535 }
4536 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
4537 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
4538 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
4539 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
4540 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
4541 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
4542 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
4543 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
4544 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
4545 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
4546 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(tpcTrack->Eta(),
4547 tpcTrack->Phi()*180./TMath::Pi(),
4548 nClustersTPC);
4549 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(tpcTrack->Eta(),
4550 tpcTrack->Phi()*180./TMath::Pi(),
4551 chi2PerClusterTPC);
4552 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(tpcTrack->Eta(),
4553 tpcTrack->Phi()*180./TMath::Pi(),
4554 npointsTPCdEdx);
4555 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
4556
369b48c8 4557 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dca[0]));
4558 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4559 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
369b48c8 4560 if(particle->GetUniqueID() == 4) {
4da3d354 4561 ((TH3F *)(fAcceptedDCAList->At(15)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4562 ((TH3F *)(fAcceptedDCAList->At(21)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4563 }
4564 if(particle->GetUniqueID() == 13) {
4da3d354 4565 ((TH3F *)(fAcceptedDCAList->At(17)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[0]));
4566 ((TH3F *)(fAcceptedDCAList->At(23)))->Fill(tpcTrack->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4567 }
30f87a5b 4568 if(fProtonAnalysisBase->GetEtaMode())
4569 ((TH2D *)(fQA2DList->At(6)))->Fill(tpcTrack->Eta(),gPt);
4570 else
4571 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4572 tpcTrack->Py(),
4573 tpcTrack->Pz()),
4574 gPt);
4575 if(fProtonAnalysisBase->GetEtaMode())
4576 ((TH3F *)(fQA2DList->At(11)))->Fill(tpcTrack->Eta(),gPt,
4577 ConvertPDGToInt(motherPDGCode));
4578 else
4579 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
4580 tpcTrack->Py(),
4581 tpcTrack->Pz()),
4582 gPt,
4583 ConvertPDGToInt(motherPDGCode));
4584 }//accepted secondary antiprotons
4585 }//accepted secondary particles
4586 }//accepted - track cuts
4587 }//primary-like cut
8debca88 4588 else {
3e6c06f4 4589 if(label <= stack->GetNprimary()) {
dd3fa486 4590 if(track->Charge() > 0) {
5661e210 4591 ((TH3D *)(fRejectedCutList->At(0)))->Fill(tpcTrack->Eta(),
4592 tpcTrack->Phi()*180./TMath::Pi(),
4593 nClustersTPC);
57e749bb 4594 ((TH3D *)(fRejectedCutList->At(4)))->Fill(tpcTrack->Eta(),
4595 tpcTrack->Phi()*180./TMath::Pi(),
4596 chi2PerClusterTPC);
4597 ((TH3D *)(fRejectedCutList->At(8)))->Fill(tpcTrack->Eta(),
4598 tpcTrack->Phi()*180./TMath::Pi(),
4599 npointsTPCdEdx);
30f87a5b 4600
e7df5638 4601 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4602 ((TH2D *)(fQA2DList->At(1)))->Fill(tpcTrack->Eta(),gPt);
dd3fa486 4603 else
e7df5638 4604 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
37cb8683 4605 tpcTrack->Py(),
4606 tpcTrack->Pz()),
73aba974 4607 gPt);
dd3fa486 4608 }
4609 else if(track->Charge() < 0) {
5661e210 4610 ((TH3D *)(fRejectedCutList->At(1)))->Fill(tpcTrack->Eta(),
4611 tpcTrack->Phi()*180./TMath::Pi(),
4612 nClustersTPC);
57e749bb 4613 ((TH3D *)(fRejectedCutList->At(5)))->Fill(tpcTrack->Eta(),
4614 tpcTrack->Phi()*180./TMath::Pi(),
4615 chi2PerClusterTPC);
4616 ((TH3D *)(fRejectedCutList->At(9)))->Fill(tpcTrack->Eta(),
4617 tpcTrack->Phi()*180./TMath::Pi(),
4618 npointsTPCdEdx);
e7df5638 4619 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4620 ((TH2D *)(fQA2DList->At(5)))->Fill(tpcTrack->Eta(),gPt);
dd3fa486 4621 else
e7df5638 4622 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
dd3fa486 4623 tpcTrack->Py(),
4624 tpcTrack->Pz()),
73aba974 4625 gPt);
dd3fa486 4626 }
3e23254a 4627 }//rejected primary particles
3e6c06f4 4628 else if(label > stack->GetNprimary()) {
dd3fa486 4629 if(track->Charge() > 0) {
5661e210 4630 ((TH3D *)(fRejectedCutList->At(2)))->Fill(tpcTrack->Eta(),
4631 tpcTrack->Phi()*180./TMath::Pi(),
4632 nClustersTPC);
57e749bb 4633 ((TH3D *)(fRejectedCutList->At(6)))->Fill(tpcTrack->Eta(),
4634 tpcTrack->Phi()*180./TMath::Pi(),
4635 chi2PerClusterTPC);
4636 ((TH3D *)(fRejectedCutList->At(10)))->Fill(tpcTrack->Eta(),
4637 tpcTrack->Phi()*180./TMath::Pi(),
4638 npointsTPCdEdx);
e7df5638 4639 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4640 ((TH2D *)(fQA2DList->At(3)))->Fill(tpcTrack->Eta(),gPt);
dd3fa486 4641 else
e7df5638 4642 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
dd3fa486 4643 tpcTrack->Py(),
4644 tpcTrack->Pz()),
73aba974 4645 gPt);
dd3fa486 4646 }
4647 else if(track->Charge() < 0) {
5661e210 4648 ((TH3D *)(fRejectedCutList->At(3)))->Fill(tpcTrack->Eta(),
4649 tpcTrack->Phi()*180./TMath::Pi(),
4650 nClustersTPC);
57e749bb 4651 ((TH3D *)(fRejectedCutList->At(7)))->Fill(tpcTrack->Eta(),
4652 tpcTrack->Phi()*180./TMath::Pi(),
4653 chi2PerClusterTPC);
4654 ((TH3D *)(fRejectedCutList->At(11)))->Fill(tpcTrack->Eta(),
4655 tpcTrack->Phi()*180./TMath::Pi(),
4656 npointsTPCdEdx);
4657
e7df5638 4658 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4659 ((TH2D *)(fQA2DList->At(7)))->Fill(tpcTrack->Eta(),gPt);
dd3fa486 4660 else
e7df5638 4661 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(tpcTrack->Px(),
dd3fa486 4662 tpcTrack->Py(),
4663 tpcTrack->Pz()),
73aba974 4664 gPt);
dd3fa486 4665 }
3e23254a 4666 }//rejected secondary particles
5b8133c7 4667 }//rejected - track cuts
3e6c06f4 4668 }//proton check
4669 }//TPC only tracks
5b8133c7 4670 //combined tracking
e7df5638 4671 else {
73aba974 4672 gPt = track->Pt();
4673 gP = track->P();
369b48c8 4674 track->PropagateToDCA(vertex,
4675 esd->GetMagneticField(),
4676 100.,dca,cov);
6667f3a7 4677
3e6c06f4 4678 //pid
e7df5638 4679 if(fProtonAnalysisBase->IsProton(track)) {
4680 if(!fProtonAnalysisBase->IsInPhaseSpace(track)) continue; //track outside the analyzed y-Pt
3e23254a 4681
4682 FillQA(stack,esd,vertex,track);
30f87a5b 4683 if(fProtonAnalysisBase->IsPrimary(esd,vertex,track)) {
4684 if(fProtonAnalysisBase->IsAccepted(track)) {
4685 if(label <= stack->GetNprimary()) {
4686 if(track->Charge() > 0) {
4687 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4688 if(track->HasPointOnITSLayer(iLayer))
4689 ((TH1F *)(fAcceptedCutList->At(0)))->Fill(iLayer+1);
4690 }
4691 ((TH1F *)(fAcceptedCutList->At(4)))->Fill(nClustersITS);
4692 ((TH1F *)(fAcceptedCutList->At(8)))->Fill(chi2PerClusterITS);
4693 ((TH1F *)(fAcceptedCutList->At(12)))->Fill(chi2ConstrainVertex);
4694 ((TH1F *)(fAcceptedCutList->At(16)))->Fill(nClustersTPC);
4695 ((TH1F *)(fAcceptedCutList->At(20)))->Fill(chi2PerClusterTPC);
4696 ((TH1F *)(fAcceptedCutList->At(24)))->Fill(extCov[0]);
4697 ((TH1F *)(fAcceptedCutList->At(28)))->Fill(extCov[2]);
4698 ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
4699 ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
4700 ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
4701 ((TH3D *)(fAcceptedCutList->At(44)))->Fill(track->Eta(),
4702 track->Phi()*180./TMath::Pi(),
4703 nClustersTPC);
4704 ((TH3D *)(fAcceptedCutList->At(48)))->Fill(track->Eta(),
4705 track->Phi()*180./TMath::Pi(),
4706 chi2PerClusterTPC);
4707 ((TH3D *)(fAcceptedCutList->At(52)))->Fill(track->Eta(),
4708 track->Phi()*180./TMath::Pi(),
4709 npointsTPCdEdx);
4710 ((TH1F *)(fAcceptedCutList->At(56)))->Fill(npointsTPCdEdx);
4711
369b48c8 4712 ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dca[0]));
4713 ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4714 ((TH1F *)(fAcceptedDCAList->At(8)))->Fill(nSigmaToVertex);
4da3d354 4715 ((TH3F *)(fAcceptedDCAList->At(12)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4716 ((TH3F *)(fAcceptedDCAList->At(18)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
30f87a5b 4717 if(fProtonAnalysisBase->GetEtaMode())
4718 ((TH2D *)(fQA2DList->At(0)))->Fill(track->Eta(),gPt);
4719 else
4720 ((TH2D *)(fQA2DList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4721 track->Py(),
4722 track->Pz()),
4723 gPt);
5b8133c7 4724 }
30f87a5b 4725 else if(track->Charge() < 0) {
4726 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4727 if(track->HasPointOnITSLayer(iLayer))
4728 ((TH1F *)(fAcceptedCutList->At(1)))->Fill(iLayer+1);
4729 }
4730 ((TH1F *)(fAcceptedCutList->At(5)))->Fill(nClustersITS);
4731 ((TH1F *)(fAcceptedCutList->At(9)))->Fill(chi2PerClusterITS);
4732 ((TH1F *)(fAcceptedCutList->At(13)))->Fill(chi2ConstrainVertex);
4733 ((TH1F *)(fAcceptedCutList->At(17)))->Fill(nClustersTPC);
4734 ((TH1F *)(fAcceptedCutList->At(21)))->Fill(chi2PerClusterTPC);
4735 ((TH1F *)(fAcceptedCutList->At(25)))->Fill(extCov[0]);
4736 ((TH1F *)(fAcceptedCutList->At(29)))->Fill(extCov[2]);
4737 ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
4738 ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
4739 ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
4740 ((TH3D *)(fAcceptedCutList->At(45)))->Fill(track->Eta(),
4741 track->Phi()*180./TMath::Pi(),
4742 nClustersTPC);
4743 ((TH3D *)(fAcceptedCutList->At(49)))->Fill(track->Eta(),
4744 track->Phi()*180./TMath::Pi(),
4745 chi2PerClusterTPC);
4746 ((TH3D *)(fAcceptedCutList->At(53)))->Fill(track->Eta(),
4747 track->Phi()*180./TMath::Pi(),
4748 npointsTPCdEdx);
4749 ((TH1F *)(fAcceptedCutList->At(57)))->Fill(npointsTPCdEdx);
4750
369b48c8 4751 ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dca[0]));
4752 ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4753 ((TH1F *)(fAcceptedDCAList->At(9)))->Fill(nSigmaToVertex);
4da3d354 4754 ((TH3F *)(fAcceptedDCAList->At(13)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4755 ((TH3F *)(fAcceptedDCAList->At(19)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
30f87a5b 4756 if(fProtonAnalysisBase->GetEtaMode())
4757 ((TH2D *)(fQA2DList->At(4)))->Fill(track->Eta(),gPt);
4758 else
4759 ((TH2D *)(fQA2DList->At(4)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4760 track->Py(),
4761 track->Pz()),
4762 gPt);
5b8133c7 4763 }
30f87a5b 4764 }//primary particles
4765 else if(label > stack->GetNprimary()) {
4766 Int_t lPartMother = -1;
4767 Int_t motherPDGCode = -1;
4768 if(particle) {
4769 lPartMother = particle->GetFirstMother();
4770 TParticle *motherParticle = stack->Particle(lPartMother);
4771 if(motherParticle) motherPDGCode = motherParticle->GetPdgCode();
5b8133c7 4772 }
6667f3a7 4773
30f87a5b 4774 if(fMCProcessIdFlag)
4775 if(particle->GetUniqueID() != fMCProcessId) continue;
4776 if(fMotherParticlePDGCodeFlag)
4777 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
6667f3a7 4778
30f87a5b 4779 if(track->Charge() > 0) {
4780 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4781 if(track->HasPointOnITSLayer(iLayer))
4782 ((TH1F *)(fAcceptedCutList->At(2)))->Fill(iLayer+1);
4783 }
4784 ((TH1F *)(fAcceptedCutList->At(6)))->Fill(nClustersITS);
4785 ((TH1F *)(fAcceptedCutList->At(10)))->Fill(chi2PerClusterITS);
4786 ((TH1F *)(fAcceptedCutList->At(14)))->Fill(chi2ConstrainVertex);
4787 ((TH1F *)(fAcceptedCutList->At(18)))->Fill(nClustersTPC);
4788 ((TH1F *)(fAcceptedCutList->At(22)))->Fill(chi2PerClusterTPC);
4789 ((TH1F *)(fAcceptedCutList->At(26)))->Fill(extCov[0]);
4790 ((TH1F *)(fAcceptedCutList->At(30)))->Fill(extCov[2]);
4791 ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
4792 ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
4793 ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
4794 ((TH3D *)(fAcceptedCutList->At(46)))->Fill(track->Eta(),
4795 track->Phi()*180./TMath::Pi(),
4796 nClustersTPC);
4797 ((TH3D *)(fAcceptedCutList->At(50)))->Fill(track->Eta(),
4798 track->Phi()*180./TMath::Pi(),
4799 chi2PerClusterTPC);
4800 ((TH3D *)(fAcceptedCutList->At(54)))->Fill(track->Eta(),
4801 track->Phi()*180./TMath::Pi(),
4802 npointsTPCdEdx);
4803 ((TH1F *)(fAcceptedCutList->At(58)))->Fill(npointsTPCdEdx);
4804
369b48c8 4805 ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dca[0]));
4806 ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4807 ((TH1F *)(fAcceptedDCAList->At(10)))->Fill(nSigmaToVertex);
369b48c8 4808 if(particle->GetUniqueID() == 4) {
4da3d354 4809 ((TH3F *)(fAcceptedDCAList->At(14)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4810 ((TH3F *)(fAcceptedDCAList->At(20)))->Fill(track->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4811 }
4812 if(particle->GetUniqueID() == 13) {
4da3d354 4813 ((TH3F *)(fAcceptedDCAList->At(16)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4814 ((TH3F *)(fAcceptedDCAList->At(22)))->Fill(track->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4815 }
30f87a5b 4816 if(fProtonAnalysisBase->GetEtaMode())
4817 ((TH2D *)(fQA2DList->At(2)))->Fill(track->Eta(),gPt);
4818 else
4819 ((TH2D *)(fQA2DList->At(2)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4820 track->Py(),
4821 track->Pz()),
4822 gPt);
4823 if(fProtonAnalysisBase->GetEtaMode())
4824 ((TH3F *)(fQA2DList->At(10)))->Fill(track->Eta(),gPt,
4825 ConvertPDGToInt(motherPDGCode));
4826 else
4827 ((TH3F *)(fQA2DList->At(10)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4828 track->Py(),
4829 track->Pz()),
4830 gPt,
4831 ConvertPDGToInt(motherPDGCode));
4832 }
4833 else if(track->Charge() < 0) {
4834 for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
4835 if(track->HasPointOnITSLayer(iLayer))
4836 ((TH1F *)(fAcceptedCutList->At(3)))->Fill(iLayer+1);
4837 }
4838 ((TH1F *)(fAcceptedCutList->At(7)))->Fill(nClustersITS);
4839 ((TH1F *)(fAcceptedCutList->At(11)))->Fill(chi2PerClusterITS);
4840 ((TH1F *)(fAcceptedCutList->At(15)))->Fill(chi2ConstrainVertex);
4841 ((TH1F *)(fAcceptedCutList->At(19)))->Fill(nClustersTPC);
4842 ((TH1F *)(fAcceptedCutList->At(23)))->Fill(chi2PerClusterTPC);
4843 ((TH1F *)(fAcceptedCutList->At(27)))->Fill(extCov[0]);
4844 ((TH1F *)(fAcceptedCutList->At(31)))->Fill(extCov[2]);
4845 ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
4846 ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
4847 ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
4848 ((TH3D *)(fAcceptedCutList->At(47)))->Fill(track->Eta(),
4849 track->Phi()*180./TMath::Pi(),
4850 nClustersTPC);
4851 ((TH3D *)(fAcceptedCutList->At(51)))->Fill(track->Eta(),
4852 track->Phi()*180./TMath::Pi(),
4853 chi2PerClusterTPC);
4854 ((TH3D *)(fAcceptedCutList->At(55)))->Fill(track->Eta(),
4855 track->Phi()*180./TMath::Pi(),
4856 npointsTPCdEdx);
4857 ((TH1F *)(fAcceptedCutList->At(59)))->Fill(npointsTPCdEdx);
4858
369b48c8 4859 ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dca[0]));
4860 ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dca[1]));
30f87a5b 4861 ((TH1F *)(fAcceptedDCAList->At(11)))->Fill(nSigmaToVertex);
369b48c8 4862 if(particle->GetUniqueID() == 4) {
4da3d354 4863 ((TH3F *)(fAcceptedDCAList->At(15)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4864 ((TH3F *)(fAcceptedDCAList->At(21)))->Fill(track->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4865 }
4866 if(particle->GetUniqueID() == 13) {
4da3d354 4867 ((TH3F *)(fAcceptedDCAList->At(17)))->Fill(track->Eta(),gPt,TMath::Abs(dca[0]));
4868 ((TH3F *)(fAcceptedDCAList->At(23)))->Fill(track->Eta(),gPt,TMath::Abs(dca[1]));
369b48c8 4869 }
30f87a5b 4870 if(fProtonAnalysisBase->GetEtaMode())
4871 ((TH2D *)(fQA2DList->At(6)))->Fill(track->Eta(),gPt);
4872 else
4873 ((TH2D *)(fQA2DList->At(6)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4874 track->Py(),
4875 track->Pz()),
4876 gPt);
4877 if(fProtonAnalysisBase->GetEtaMode())
4878 ((TH3F *)(fQA2DList->At(11)))->Fill(track->Eta(),gPt,
4879 ConvertPDGToInt(motherPDGCode));
4880 else
4881 ((TH3F *)(fQA2DList->At(11)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
4882 track->Py(),
4883 track->Pz()),
4884 gPt,
4885 ConvertPDGToInt(motherPDGCode));
4886 }
4887 }//secondary particles
4888 }//accepted - track cuts
4889 }//primary-like cut
4890 else if((!fProtonAnalysisBase->IsAccepted(track)) ||
4891 (!fProtonAnalysisBase->IsPrimary(esd,vertex,track))) {
3e6c06f4 4892 if(label <= stack->GetNprimary()) {
dd3fa486 4893 if(track->Charge() > 0) {
5661e210 4894 ((TH3D *)(fRejectedCutList->At(0)))->Fill(track->Eta(),
4895 track->Phi()*180./TMath::Pi(),
4896 nClustersTPC);
57e749bb 4897 ((TH3D *)(fRejectedCutList->At(4)))->Fill(track->Eta(),
4898 track->Phi()*180./TMath::Pi(),
4899 chi2PerClusterTPC);
4900 ((TH3D *)(fRejectedCutList->At(8)))->Fill(track->Eta(),
4901 track->Phi()*180./TMath::Pi(),
4902 npointsTPCdEdx);
e7df5638 4903 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4904 ((TH2D *)(fQA2DList->At(1)))->Fill(track->Eta(),gPt);
dd3fa486 4905 else
e7df5638 4906 ((TH2D *)(fQA2DList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
dd3fa486 4907 track->Py(),
4908 track->Pz()),
73aba974 4909 gPt);
dd3fa486 4910 }
4911 else if(track->Charge() < 0) {
5661e210 4912 ((TH3D *)(fRejectedCutList->At(1)))->Fill(track->Eta(),
4913 track->Phi()*180./TMath::Pi(),
4914 nClustersTPC);
57e749bb 4915 ((TH3D *)(fRejectedCutList->At(5)))->Fill(track->Eta(),
4916 track->Phi()*180./TMath::Pi(),
4917 chi2PerClusterTPC);
4918 ((TH3D *)(fRejectedCutList->At(9)))->Fill(track->Eta(),
4919 track->Phi()*180./TMath::Pi(),
4920 npointsTPCdEdx);
4921
e7df5638 4922 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4923 ((TH2D *)(fQA2DList->At(5)))->Fill(track->Eta(),gPt);
dd3fa486 4924 else
e7df5638 4925 ((TH2D *)(fQA2DList->At(5)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
dd3fa486 4926 track->Py(),
4927 track->Pz()),
73aba974 4928 gPt);
dd3fa486 4929 }
3e6c06f4 4930 }//primary particles
4931 else if(label > stack->GetNprimary()) {
dd3fa486 4932 if(track->Charge() > 0) {
5661e210 4933 ((TH3D *)(fRejectedCutList->At(2)))->Fill(track->Eta(),
4934 track->Phi()*180./TMath::Pi(),
4935 nClustersTPC);
57e749bb 4936 ((TH3D *)(fRejectedCutList->At(6)))->Fill(track->Eta(),
4937 track->Phi()*180./TMath::Pi(),
4938 chi2PerClusterTPC);
4939 ((TH3D *)(fRejectedCutList->At(10)))->Fill(track->Eta(),
4940 track->Phi()*180./TMath::Pi(),
4941 npointsTPCdEdx);
e7df5638 4942 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4943 ((TH2D *)(fQA2DList->At(3)))->Fill(track->Eta(),gPt);
dd3fa486 4944 else
e7df5638 4945 ((TH2D *)(fQA2DList->At(3)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
dd3fa486 4946 track->Py(),
4947 track->Pz()),
73aba974 4948 gPt);
dd3fa486 4949 }
4950 else if(track->Charge() < 0) {
5661e210 4951 ((TH3D *)(fRejectedCutList->At(3)))->Fill(track->Eta(),
4952 track->Phi()*180./TMath::Pi(),
4953 nClustersTPC);
57e749bb 4954 ((TH3D *)(fRejectedCutList->At(7)))->Fill(track->Eta(),
4955 track->Phi()*180./TMath::Pi(),
4956 chi2PerClusterTPC);
4957 ((TH3D *)(fRejectedCutList->At(11)))->Fill(track->Eta(),
4958 track->Phi()*180./TMath::Pi(),
4959 npointsTPCdEdx);
e7df5638 4960 if(fProtonAnalysisBase->GetEtaMode())
73aba974 4961 ((TH2D *)(fQA2DList->At(7)))->Fill(track->Eta(),gPt);
dd3fa486 4962 else
e7df5638 4963 ((TH2D *)(fQA2DList->At(7)))->Fill(fProtonAnalysisBase->Rapidity(track->Px(),
dd3fa486 4964 track->Py(),
4965 track->Pz()),
73aba974 4966 gPt);
dd3fa486 4967 }
3e6c06f4 4968 }//secondary particles
5b8133c7 4969 }//rejected - track cuts
3e6c06f4 4970 }//proton check
4971 }//combined tracking
4972 }//track loop
4973
4974}
4975
d4733690 4976//____________________________________________________________________//
4977void AliProtonQAAnalysis::InitMCAnalysis() {
4978 //MC analysis - 3D histograms: y-pT-pdg
4979 fPDGList = new TList();
4acc9d4d 4980 TH3F *gHistYPtPDGProtons = 0x0;
4981 if(fUseAsymmetricBinning) {
4982 Double_t gPDG[15] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5};
4983 gHistYPtPDGProtons = new TH3F("gHistYPtPDGProtons",
4984 ";;P_{T} [GeV/c];PDG",
4985 fNBinsY,fY,fNBinsPt,fPt,14,gPDG);
4986 }
4987 else
4988 gHistYPtPDGProtons = new TH3F("gHistYPtPDGProtons",
4989 ";;P_{T} [GeV/c];PDG",
4990 fNBinsY,fMinY,fMaxY,
4991 fNBinsPt,fMinPt,fMaxPt,
4992 14,-0.5,13.5);
e7df5638 4993 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 4994 gHistYPtPDGProtons->GetXaxis()->SetTitle("#eta");
4995 else
4996 gHistYPtPDGProtons->GetXaxis()->SetTitle("y");
d4733690 4997 fPDGList->Add(gHistYPtPDGProtons);
4acc9d4d 4998 TH3F *gHistYPtPDGAntiProtons = 0x0;
4999 if(fUseAsymmetricBinning) {
5000 Double_t gPDG[15] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5};
5001 gHistYPtPDGAntiProtons = new TH3F("gHistYPtPDGAntiProtons",
5002 ";;P_{T} [GeV/c];PDG",
5003 fNBinsY,fY,fNBinsPt,fPt,14,gPDG);
5004 }
5005 else
5006 gHistYPtPDGAntiProtons = new TH3F("gHistYPtPDGAntiProtons",
5007 ";;P_{T} [GeV/c];PDG",
5008 fNBinsY,fMinY,fMaxY,
5009 fNBinsPt,fMinPt,fMaxPt,
5010 14,-0.5,13.5);
e7df5638 5011 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 5012 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("#eta");
5013 else
5014 gHistYPtPDGAntiProtons->GetXaxis()->SetTitle("y");
d4733690 5015 fPDGList->Add(gHistYPtPDGAntiProtons);
5016
5017 //MC processes
5018 fMCProcessesList = new TList();
5019 TH1F *gHistProtonsFromKLProcess = new TH1F("gHistProtonsFromKLProcess","",51,-0.5,50.5);
5020 fMCProcessesList->Add(gHistProtonsFromKLProcess);
5021 TH1F *gHistProtonsFromPionProcess = new TH1F("gHistProtonsFromPionProcess","",51,-0.5,50.5);
5022 fMCProcessesList->Add(gHistProtonsFromPionProcess);
5023 TH1F *gHistProtonsFromKSProcess = new TH1F("gHistProtonsFromKSProcess","",51,-0.5,50.5);
5024 fMCProcessesList->Add(gHistProtonsFromKSProcess);
5025 TH1F *gHistProtonsFromKaonProcess = new TH1F("gHistProtonsFromKaonProcess","",51,-0.5,50.5);
5026 fMCProcessesList->Add(gHistProtonsFromKaonProcess);
5027 TH1F *gHistProtonsFromNeutronProcess = new TH1F("gHistProtonsFromNeutronProcess","",51,-0.5,50.5);
5028 fMCProcessesList->Add(gHistProtonsFromNeutronProcess);
5029 TH1F *gHistProtonsFromProtonProcess = new TH1F("gHistProtonsFromProtonProcess","",51,-0.5,50.5);
5030 fMCProcessesList->Add(gHistProtonsFromProtonProcess);
5031 TH1F *gHistProtonsFromSigmaMinusProcess = new TH1F("gHistProtonsFromSigmaMinusProcess","",51,-0.5,50.5);
5032 fMCProcessesList->Add(gHistProtonsFromSigmaMinusProcess);
5033 TH1F *gHistProtonsFromLambda0Process = new TH1F("gHistProtonsFromLambda0Process","",51,-0.5,50.5);
5034 fMCProcessesList->Add(gHistProtonsFromLambda0Process);
5035 TH1F *gHistProtonsFromSigmaPlusProcess = new TH1F("gHistProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
5036 fMCProcessesList->Add(gHistProtonsFromSigmaPlusProcess);
5037 TH1F *gHistProtonsFromXiMinusProcess = new TH1F("gHistProtonsFromXiMinusProcess","",51,-0.5,50.5);
5038 fMCProcessesList->Add(gHistProtonsFromXiMinusProcess);
5039 TH1F *gHistProtonsFromXi0Process = new TH1F("gHistProtonsFromXi0Process","",51,-0.5,50.5);
5040 fMCProcessesList->Add(gHistProtonsFromXi0Process);
5041 TH1F *gHistProtonsFromOmegaProcess = new TH1F("gHistProtonsFromOmegaProcess","",51,-0.5,50.5);
5042 fMCProcessesList->Add(gHistProtonsFromOmegaProcess);
5043
5044 TH1F *gHistAntiProtonsFromKLProcess = new TH1F("gHistAntiProtonsFromKLProcess","",51,-0.5,50.5);
5045 fMCProcessesList->Add(gHistAntiProtonsFromKLProcess);
5046 TH1F *gHistAntiProtonsFromPionProcess = new TH1F("gHistAntiProtonsFromPionProcess","",51,-0.5,50.5);
5047 fMCProcessesList->Add(gHistAntiProtonsFromPionProcess);
5048 TH1F *gHistAntiProtonsFromKSProcess = new TH1F("gHistAntiProtonsFromKSProcess","",51,-0.5,50.5);
5049 fMCProcessesList->Add(gHistAntiProtonsFromKSProcess);
5050 TH1F *gHistAntiProtonsFromKaonProcess = new TH1F("gHistAntiProtonsFromKaonProcess","",51,-0.5,50.5);
5051 fMCProcessesList->Add(gHistAntiProtonsFromKaonProcess);
5052 TH1F *gHistAntiProtonsFromNeutronProcess = new TH1F("gHistAntiProtonsFromNeutronProcess","",51,-0.5,50.5);
5053 fMCProcessesList->Add(gHistAntiProtonsFromNeutronProcess);
5054 TH1F *gHistAntiProtonsFromProtonProcess = new TH1F("gHistAntiProtonsFromProtonProcess","",51,-0.5,50.5);
5055 fMCProcessesList->Add(gHistAntiProtonsFromProtonProcess);
5056 TH1F *gHistAntiProtonsFromLambda0Process = new TH1F("gHistAntiProtonsFromLambda0Process","",51,-0.5,50.5);
5057 fMCProcessesList->Add(gHistAntiProtonsFromLambda0Process);
5058 TH1F *gHistAntiProtonsFromSigmaPlusProcess = new TH1F("gHistAntiProtonsFromSigmaPlusProcess","",51,-0.5,50.5);
5059 fMCProcessesList->Add(gHistAntiProtonsFromSigmaPlusProcess);
5060}
5061
5062//____________________________________________________________________//
73aba974 5063void AliProtonQAAnalysis::RunMCAnalysis(AliStack* const stack) {
d4733690 5064 //Main analysis part - MC
5065 for(Int_t iParticle = 0; iParticle < stack->GetNtrack(); iParticle++) {
5066 TParticle *particle = stack->Particle(iParticle);
55f9a666 5067 if(!particle) continue;
5068
d4733690 5069 if(TMath::Abs(particle->Eta()) > 1.0) continue;//acceptance
2b00fd2c 5070 if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue;
e7df5638 5071 if(fProtonAnalysisBase->GetEtaMode()) {
dd3fa486 5072 if((particle->Eta() > fMaxY)||(particle->Eta() < fMinY)) continue;
5073 }
5074 else {
e7df5638 5075 if((fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(fProtonAnalysisBase->Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue;
dd3fa486 5076 }
2b00fd2c 5077
d4733690 5078 Int_t pdgcode = particle->GetPdgCode();
5079 if(pdgcode == 2212) {
dd3fa486 5080 if(iParticle <= stack->GetNprimary()) {
e7df5638 5081 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 5082 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),particle->Pt(),0);
5083 else
e7df5638 5084 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
dd3fa486 5085 particle->Py(),
5086 particle->Pz()),
5087 particle->Pt(),0);
5088 }
d4733690 5089 else if(iParticle > stack->GetNprimary()) {
5090 Int_t lPartMother = particle->GetFirstMother();
5091 TParticle *motherParticle = stack->Particle(lPartMother);
5092 if(!motherParticle) continue;
9933c613 5093 Int_t motherPDGCode = motherParticle->GetPdgCode();
5094 if(fMCProcessIdFlag)
5095 if(particle->GetUniqueID() != fMCProcessId) continue;
5096 if(fMotherParticlePDGCodeFlag)
5097 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
5098
e7df5638 5099 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 5100 ((TH3F *)(fPDGList->At(0)))->Fill(particle->Eta(),
5101 particle->Pt(),
5102 ConvertPDGToInt(motherParticle->GetPdgCode()));
5103 else
e7df5638 5104 ((TH3F *)(fPDGList->At(0)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
dd3fa486 5105 particle->Py(),
5106 particle->Pz()),
5107 particle->Pt(),
5108 ConvertPDGToInt(motherParticle->GetPdgCode()));
d4733690 5109 //processes
5110 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
5111 ((TH1F *)(fMCProcessesList->At(0)))->Fill(particle->GetUniqueID());
5112 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
5113 ((TH1F *)(fMCProcessesList->At(1)))->Fill(particle->GetUniqueID());
5114 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
5115 ((TH1F *)(fMCProcessesList->At(2)))->Fill(particle->GetUniqueID());
5116 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
5117 ((TH1F *)(fMCProcessesList->At(3)))->Fill(particle->GetUniqueID());
5118 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
5119 ((TH1F *)(fMCProcessesList->At(4)))->Fill(particle->GetUniqueID());
5120 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
5121 ((TH1F *)(fMCProcessesList->At(5)))->Fill(particle->GetUniqueID());
5122 if(TMath::Abs(motherParticle->GetPdgCode()) == 3112)
5123 ((TH1F *)(fMCProcessesList->At(6)))->Fill(particle->GetUniqueID());
5124 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
5125 ((TH1F *)(fMCProcessesList->At(7)))->Fill(particle->GetUniqueID());
5126 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
5127 ((TH1F *)(fMCProcessesList->At(8)))->Fill(particle->GetUniqueID());
5128 if(TMath::Abs(motherParticle->GetPdgCode()) == 3312)
5129 ((TH1F *)(fMCProcessesList->At(9)))->Fill(particle->GetUniqueID());
5130 if(TMath::Abs(motherParticle->GetPdgCode()) == 3322)
5131 ((TH1F *)(fMCProcessesList->At(10)))->Fill(particle->GetUniqueID());
5132 if(TMath::Abs(motherParticle->GetPdgCode()) == 3334)
5133 ((TH1F *)(fMCProcessesList->At(11)))->Fill(particle->GetUniqueID());
5134 }//secondary proton
5135 }//pdgcode of proton
5136
5137 if(pdgcode == -2212) {
dd3fa486 5138 if(iParticle <= stack->GetNprimary()) {
e7df5638 5139 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 5140 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),particle->Pt(),0);
5141 else
e7df5638 5142 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
dd3fa486 5143 particle->Py(),
5144 particle->Pz()),
5145 particle->Pt(),0);
5146 }
d4733690 5147 else if(iParticle > stack->GetNprimary()) {
5148 Int_t lPartMother = particle->GetFirstMother();
5149 TParticle *motherParticle = stack->Particle(lPartMother);
5150 if(!motherParticle) continue;
9933c613 5151 Int_t motherPDGCode = motherParticle->GetPdgCode();
5152 if(fMCProcessIdFlag)
5153 if(particle->GetUniqueID() != fMCProcessId) continue;
5154 if(fMotherParticlePDGCodeFlag)
5155 if(TMath::Abs(motherPDGCode) != fMotherParticlePDGCode) continue;
5156
e7df5638 5157 if(fProtonAnalysisBase->GetEtaMode())
dd3fa486 5158 ((TH3F *)(fPDGList->At(1)))->Fill(particle->Eta(),
5159 particle->Pt(),
5160 ConvertPDGToInt(motherParticle->GetPdgCode()));
5161 else
e7df5638 5162 ((TH3F *)(fPDGList->At(1)))->Fill(fProtonAnalysisBase->Rapidity(particle->Px(),
dd3fa486 5163 particle->Py(),
5164 particle->Pz()),
5165 particle->Pt(),
5166 ConvertPDGToInt(motherParticle->GetPdgCode()));
d4733690 5167
5168 //processes
5169 if(TMath::Abs(motherParticle->GetPdgCode()) == 130)
5170 ((TH1F *)(fMCProcessesList->At(12)))->Fill(particle->GetUniqueID());
5171 if(TMath::Abs(motherParticle->GetPdgCode()) == 211)
5172 ((TH1F *)(fMCProcessesList->At(13)))->Fill(particle->GetUniqueID());
5173 if(TMath::Abs(motherParticle->GetPdgCode()) == 310)
5174 ((TH1F *)(fMCProcessesList->At(14)))->Fill(particle->GetUniqueID());
5175 if(TMath::Abs(motherParticle->GetPdgCode()) == 321)
5176 ((TH1F *)(fMCProcessesList->At(15)))->Fill(particle->GetUniqueID());
5177 if(TMath::Abs(motherParticle->GetPdgCode()) == 2112)
5178 ((TH1F *)(fMCProcessesList->At(16)))->Fill(particle->GetUniqueID());
5179 if(TMath::Abs(motherParticle->GetPdgCode()) == 2212)
5180 ((TH1F *)(fMCProcessesList->At(17)))->Fill(particle->GetUniqueID());
5181 if(TMath::Abs(motherParticle->GetPdgCode()) == 3122)
5182 ((TH1F *)(fMCProcessesList->At(18)))->Fill(particle->GetUniqueID());
5183 if(TMath::Abs(motherParticle->GetPdgCode()) == 3222)
5184 ((TH1F *)(fMCProcessesList->At(19)))->Fill(particle->GetUniqueID());
5185 }//secondary antiproton
5186 }//pdgcode of antiproton
5187
5188 }//particle loop
5189}
5190
5191//____________________________________________________________________//
73aba974 5192Int_t AliProtonQAAnalysis::ConvertPDGToInt(Int_t pdgCode) const {
d4733690 5193 //Converts the pdg code to an int based on the following scheme:
5194 //1: PDG code: 130 - Name: K_L0
5195 //2: PDG code: 211 - Name: pi+
5196 //3: PDG code: 310 - Name: K_S0
5197 //4: PDG code: 321 - Name: K+
5198 //5: PDG code: 2112 - Name: neutron
5199 //6: PDG code: 2212 - Name: proton
5200 //7: PDG code: 3112 - Name: Sigma-
5201 //8: PDG code: 3122 - Name: Lambda0
5202 //9: PDG code: 3222 - Name: Sigma+
5203 //10: PDG code: 3312 - Name: Xi-
5204 //11: PDG code: 3322 - Name: Xi0
5205 //12: PDG code: 3334 - Name: Omega-
5206 Int_t code = -1;
5207 switch (TMath::Abs(pdgCode)) {
5208 case 130: {
5209 code = 1;
5210 break;
5211 }
5212 case 211: {
5213 code = 2;
5214 break;
5215 }
5216 case 310: {
5217 code = 3;
5218 break;
5219 }
5220 case 321: {
5221 code = 4;
5222 break;
5223 }
5224 case 2112: {
5225 code = 5;
5226 break;
5227 }
5228 case 2212: {
5229 code = 6;
5230 break;
5231 }
5232 case 3112: {
5233 code = 7;
5234 break;
5235 }
5236 case 3122: {
5237 code = 8;
5238 break;
5239 }
5240 case 3222: {
5241 code = 9;
5242 break;
5243 }
5244 case 3312: {
5245 code = 10;
5246 break;
5247 }
5248 case 3322: {
5249 code = 11;
5250 break;
5251 }
5252 case 3334: {
5253 code = 12;
5254 break;
5255 }
5256 default: {
5257 code = -1;
5258 break;
5259 }
5260 }//switch
5261
5262 return code;
5263}
3e6c06f4 5264
3e6c06f4 5265
5266
5267
5268
5269