]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/ITS/AliAnalysisTaskITSTrackingCheck.cxx
Fix for savannah bug report 87728 (Laurent) + fix invalid read found with valgrind...
[u/mrichter/AliRoot.git] / PWG1 / ITS / AliAnalysisTaskITSTrackingCheck.cxx
CommitLineData
8d63376d 1/**************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/////////////////////////////////////////////////////////////
17//
18// AliAnalysisTask to extract from ESD tracks the information
19// on ITS tracking efficiency and resolutions.
20//
21// Author: A.Dainese, andrea.dainese@pd.infn.it
22/////////////////////////////////////////////////////////////
23
c2893e82 24#include <TStyle.h>
8d63376d 25#include <TChain.h>
26#include <TTree.h>
27#include <TNtuple.h>
28#include <TBranch.h>
29#include <TClonesArray.h>
30#include <TObjArray.h>
31#include <TH1F.h>
32#include <TH2F.h>
33#include <TCanvas.h>
34#include <TParticle.h>
35
36#include "AliAnalysisTask.h"
37#include "AliAnalysisManager.h"
38
39#include "AliMultiplicity.h"
40#include "AliVertexerTracks.h"
41#include "AliESDtrack.h"
42#include "AliExternalTrackParam.h"
43#include "AliESDVertex.h"
44#include "AliESDEvent.h"
45#include "AliESDfriend.h"
46#include "AliESDInputHandler.h"
47#include "AliESDInputHandlerRP.h"
f8777463 48#include "AliESDtrackCuts.h"
8d63376d 49#include "AliTrackPointArray.h"
2308c814 50#include "../ITS/AliITSRecPoint.h"
8d63376d 51
f8777463 52#include "AliInputEventHandler.h"
8d63376d 53#include "AliMCEventHandler.h"
54#include "AliMCEvent.h"
55#include "AliStack.h"
56#include "AliLog.h"
57
58#include "AliGenEventHeader.h"
59#include "AliAnalysisTaskITSTrackingCheck.h"
60
61
62ClassImp(AliAnalysisTaskITSTrackingCheck)
d98a315a 63AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck() :
64AliAnalysisTaskSE(),
65fReadMC(kFALSE),
66fReadRPLabels(kFALSE),
67fFillNtuples(kFALSE),
68fUseITSSAforNtuples(kFALSE),
0e808834 69fUsePhysSel(kFALSE),
9f024d7a 70fRejPileupSPD(kFALSE),
d98a315a 71fESD(0),
5ac4a99f 72fMinMult(0),
73fMaxMult(1000000),
d98a315a 74fOutput(0),
0e808834 75fHistNEvents(0),
76fHistNEventsFrac(0),
d98a315a 77fHistNtracks(0),
78fHistNclsITSMI(0),
79fHistNclsITSSA(0),
80fHistNclsITSSAInAcc(0),
81fHistClusterMapITSMI(0),
0b2e8130 82fHistClusterMapITSMIokA(0),
83fHistClusterMapITSMIokB(0),
d98a315a 84fHistClusterMapITSMIok(0),
85fHistClusterMapITSMIbad(0),
86fHistClusterMapITSMIskipped(0),
87fHistClusterMapITSMIoutinz(0),
88fHistClusterMapITSMInorefit(0),
89fHistClusterMapITSMInocls(0),
90fHistClusterMapITSMIokoutinzbad(0),
91fHistClusterMapITSSA(0),
92fHistClusterMapITSSAok(0),
93fHistClusterMapITSSAbad(0),
94fHistClusterMapITSSAskipped(0),
95fHistClusterMapITSSAoutinz(0),
96fHistClusterMapITSSAnorefit(0),
97fHistClusterMapITSSAnocls(0),
98fHistClusterMapITSSAokoutinzbad(0),
99fHistClusterMapITSSAInAcc(0),
100fHistClusterMapITSSAokInAcc(0),
101fHistClusterMapITSSAbadInAcc(0),
102fHistClusterMapITSSAskippedInAcc(0),
103fHistClusterMapITSSAoutinzInAcc(0),
104fHistClusterMapITSSAnorefitInAcc(0),
105fHistClusterMapITSSAnoclsInAcc(0),
106fHistClusterMapITSSAokoutinzbadInAcc(0),
107fHistClusterMapModuleITSSAokInAcc(0),
108fHistClusterMapModuleITSSAbadInAcc(0),
109fHistClusterMapModuleITSSAnoclsInAcc(0),
0e808834 110fHistClusterMapModuleITSMIokInAcc(0),
111fHistClusterMapModuleITSMIbadInAcc(0),
112fHistClusterMapModuleITSMInoclsInAcc(0),
0b2e8130 113fHistNClustersMapModule(0),
dbf573fb 114fHistZatSPDouter0ok(0),
115fHistZatSPDouter1ok(0),
116fHistZatSPDouter2ok(0),
117fHistZatSPDouter3ok(0),
118fHistZatSPDouter0notok(0),
119fHistZatSPDouter1notok(0),
120fHistZatSPDouter2notok(0),
121fHistZatSPDouter3notok(0),
0e808834 122fHistxlocSDDok(0),
123fHistzlocSDDok(0),
124fHistxlocVSmodSDDok(0),
125fHistxlocSDDall(0),
126fHistzlocSDDall(0),
0b2e8130 127fHistxlocSDDA(0),
128fHistxlocSDDB(0),
129fHistzlocSDDA(0),
130fHistzlocSDDB(0),
d98a315a 131fHistPhiTPCInAcc(0),
547640ff 132fHistEtaTPCInAcc(0),
0b2e8130 133fHistEtaTPCInAccA(0),
134fHistEtaTPCInAccB(0),
135fHistNclsTPCInAccA(0),
136fHistNclsTPCInAccB(0),
137fHistChi2PerClsTPCInAccA(0),
138fHistChi2PerClsTPCInAccB(0),
139fHistChi2PerClsITSInAccA(0),
140fHistChi2PerClsITSInAccB(0),
d98a315a 141fHistPtTPC(0),
142fHistPtTPCInAcc(0),
dbf573fb 143fHistPtTPCInAccMCtwoSPD(0),
144fHistPtTPCInAccMConeSPD(0),
0e808834 145fHistdEdxVSPtTPCInAcc(0),
146fHistdEdxVSPtITSTPCsel(0),
0b2e8130 147fHistTPCclsVSPtTPCInAcc(0),
148fHistTPCclsVSPtITSMISPDInAcc(0),
0e808834 149fHistPtVSphiTPCInAcc(0),
150fHistPtTPCInAccNoTRDout(0),
151fHistPtTPCInAccNoTOFout(0),
152fHistPtTPCInAccWithPtTPCAtInnerWall(0),
153fHistPtTPCInAccWithPtTPCAtVtx(0),
154fHistDeltaPtTPC(0),
155fHistPtTPCInAccP(0),
156fHistPtTPCInAccS(0),
157fHistPtTPCInAccPfromStrange(0),
158fHistPtTPCInAccSfromStrange(0),
159fHistPtTPCInAccSfromMat(0),
d98a315a 160fHistPtITSMI2(0),
161fHistPtITSMI3(0),
162fHistPtITSMI4(0),
163fHistPtITSMI5(0),
164fHistPtITSMI6(0),
165fHistPtITSMISPD(0),
166fHistPtITSMIoneSPD(0),
167fHistPtITSMI2InAcc(0),
168fHistPtITSMI3InAcc(0),
169fHistPtITSMI4InAcc(0),
170fHistPtITSMI5InAcc(0),
171fHistPtITSMI6InAcc(0),
172fHistPtITSMISPDInAcc(0),
173fHistPtITSMIoneSPDInAcc(0),
0b2e8130 174fHistPtITSMIoneSPDInAccShared(0),
175fHistPtITSMIoneSPDInAccSharedSPD(0),
176fHistPtITSMISPD1InAccShared(0),
177fHistPtITSMISPD2InAccShared(0),
178fHistPtITSMIoneSPDInAccSharedFake(0),
179fHistPtITSMIoneSPDInAccSharedSPDFake(0),
547640ff 180fHistPhiITSMI2InAcc(0),
181fHistPhiITSMI3InAcc(0),
182fHistPhiITSMI4InAcc(0),
183fHistPhiITSMI5InAcc(0),
184fHistPhiITSMI6InAcc(0),
185fHistPhiITSMISPDInAcc(0),
186fHistPhiITSMIoneSPDInAcc(0),
187fHistEtaITSMI2InAcc(0),
188fHistEtaITSMI3InAcc(0),
189fHistEtaITSMI4InAcc(0),
190fHistEtaITSMI5InAcc(0),
191fHistEtaITSMI6InAcc(0),
192fHistEtaITSMISPDInAcc(0),
193fHistEtaITSMIoneSPDInAcc(0),
0faeb7ba 194fHistPtITSMI2InAccFake(0),
195fHistPtITSMI3InAccFake(0),
196fHistPtITSMI4InAccFake(0),
197fHistPtITSMI5InAccFake(0),
198fHistPtITSMI6InAccFake(0),
199fHistPtITSMISPDInAccFake(0),
200fHistPtITSMIoneSPDInAccFake(0),
6c6fab7b 201fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
0e808834 202fHistPtITSTPCsel(0),
203fHistPtITSTPCselP(0),
204fHistPtITSTPCselS(0),
af874c53 205fHistPtITSTPCselFake(0),
0e808834 206fHistPtITSTPCselPfromStrange(0),
207fHistPtITSTPCselSfromStrange(0),
208fHistPtITSTPCselSfromMat(0),
209fHistPtITSMI2InAccP(0),
210fHistPtITSMI3InAccP(0),
211fHistPtITSMI4InAccP(0),
212fHistPtITSMI5InAccP(0),
213fHistPtITSMI6InAccP(0),
214fHistPtITSMISPDInAccP(0),
215fHistPtITSMIoneSPDInAccP(0),
216fHistPtITSMI2InAccS(0),
217fHistPtITSMI3InAccS(0),
218fHistPtITSMI4InAccS(0),
219fHistPtITSMI5InAccS(0),
220fHistPtITSMI6InAccS(0),
221fHistPtITSMISPDInAccS(0),
222fHistPtITSMIoneSPDInAccS(0),
d98a315a 223fHistPtITSMIokbadoutinz6(0),
224fHistPtITSMIokbadoutinz4InAcc(0),
225fHistPtITSMIokbadoutinz5InAcc(0),
226fHistPtITSMIokbadoutinz6InAcc(0),
227fHistPhiITSMIokbadoutinz6InAcc(0),
0e808834 228fHistRProdVtxInAccP(0),
229fHistRProdVtxInAccS(0),
0b2e8130 230fHistd0rphiTPCInAccA(0),
231fHistd0rphiTPCInAccB(0),
232fHistd0zTPCInAccA(0),
233fHistd0zTPCInAccB(0),
0e808834 234fHistd0rphiTPCInAccP150200(0),
235fHistd0rphiTPCInAccP500700(0),
236fHistd0rphiTPCInAccP10001500(0),
237fHistd0rphiTPCInAccS150200(0),
238fHistd0rphiTPCInAccS500700(0),
239fHistd0rphiTPCInAccS10001500(0),
240fHistd0rphiITSMISPDInAccP150200(0),
241fHistd0rphiITSMISPDInAccP500700(0),
242fHistd0rphiITSMISPDInAccP10001500(0),
243fHistd0rphiITSMISPDInAccS150200(0),
244fHistd0rphiITSMISPDInAccS500700(0),
245fHistd0rphiITSMISPDInAccS10001500(0),
246fHistd0rphiITSMIoneSPDInAccP150200(0),
dbf573fb 247fHistd0rphiITSMIoneSPDInAccP350450(0),
0e808834 248fHistd0rphiITSMIoneSPDInAccP500700(0),
249fHistd0rphiITSMIoneSPDInAccP10001500(0),
dbf573fb 250fHistd0rphiITSMIoneSPDInAccP25004000(0),
251fHistd0rphiITSMIoneSPDInAccP40008000(0),
0b2e8130 252fHistd0rphiITSMIoneSPDInAccA(0),
253fHistd0rphiITSMIoneSPDInAccB(0),
254fHistd0zITSMIoneSPDInAccA(0),
255fHistd0zITSMIoneSPDInAccB(0),
0e808834 256fHistd0zITSMIoneSPDInAccP150200(0),
257fHistd0zITSMIoneSPDInAccP500700(0),
258fHistd0zITSMIoneSPDInAccP10001500(0),
9a3cd95a 259fHistd0zVSetaTPCInAccP10001500(0),
0e808834 260fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
261fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
262fHistd0rphiITSMIoneSPDInAccS150200(0),
dbf573fb 263fHistd0rphiITSMIoneSPDInAccS350450(0),
0e808834 264fHistd0rphiITSMIoneSPDInAccS500700(0),
265fHistd0rphiITSMIoneSPDInAccS500700from22(0),
266fHistd0rphiITSMIoneSPDInAccS500700from211(0),
267fHistd0rphiITSMIoneSPDInAccS500700from310(0),
268fHistd0rphiITSMIoneSPDInAccS500700from321(0),
dbf573fb 269fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
0e808834 270fHistd0rphiITSMIoneSPDInAccS10001500(0),
dbf573fb 271fHistd0rphiITSMIoneSPDInAccS25004000(0),
272fHistd0rphiITSMIoneSPDInAccS40008000(0),
273fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
274fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
275fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
276fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
277fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
278fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
279fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
280fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
281fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
282fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
283fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
284fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
0e808834 285fHistd0zITSMIoneSPDInAccS150200(0),
286fHistd0zITSMIoneSPDInAccS500700(0),
287fHistd0zITSMIoneSPDInAccS10001500(0),
288fHistPDGMoth(0),
289fHistPDGMoth150200(0),
290fHistPDGMoth500700(0),
291fHistPDGMoth10001500(0),
292fHistPDGTrk(0),
af874c53 293fHistITSRedChi2NonFakePt02(0),
294fHistITSRedChi2FakePt02(0),
295fHistITSRedChi2NonFakePt05(0),
296fHistITSRedChi2FakePt05(0),
297fHistITSRedChi2NonFakePt1(0),
298fHistITSRedChi2FakePt1(0),
d98a315a 299fNtupleESDTracks(0),
300fNtupleITSAlignExtra(0),
0e808834 301fNtupleITSAlignSPDTracklets(0),
302fESDtrackCutsTPC(0),
303fESDtrackCutsITSTPC(0)
d98a315a 304{
305 // Constructor
779c3917 306 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
0b2e8130 307
d98a315a 308}
8d63376d 309
310//________________________________________________________________________
311AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) :
d98a315a 312AliAnalysisTaskSE(name),
2308c814 313fReadMC(kFALSE),
8d63376d 314fReadRPLabels(kFALSE),
2308c814 315fFillNtuples(kFALSE),
3f18d0a6 316fUseITSSAforNtuples(kFALSE),
f8777463 317fUsePhysSel(kFALSE),
9f024d7a 318fRejPileupSPD(kFALSE),
8d63376d 319fESD(0),
5ac4a99f 320fMinMult(0),
321fMaxMult(1000000),
8d63376d 322fOutput(0),
f8777463 323fHistNEvents(0),
324fHistNEventsFrac(0),
8d63376d 325fHistNtracks(0),
326fHistNclsITSMI(0),
327fHistNclsITSSA(0),
2308c814 328fHistNclsITSSAInAcc(0),
8d63376d 329fHistClusterMapITSMI(0),
0b2e8130 330fHistClusterMapITSMIokA(0),
331fHistClusterMapITSMIokB(0),
8d63376d 332fHistClusterMapITSMIok(0),
333fHistClusterMapITSMIbad(0),
334fHistClusterMapITSMIskipped(0),
335fHistClusterMapITSMIoutinz(0),
336fHistClusterMapITSMInorefit(0),
337fHistClusterMapITSMInocls(0),
2308c814 338fHistClusterMapITSMIokoutinzbad(0),
8d63376d 339fHistClusterMapITSSA(0),
340fHistClusterMapITSSAok(0),
341fHistClusterMapITSSAbad(0),
342fHistClusterMapITSSAskipped(0),
343fHistClusterMapITSSAoutinz(0),
344fHistClusterMapITSSAnorefit(0),
345fHistClusterMapITSSAnocls(0),
2308c814 346fHistClusterMapITSSAokoutinzbad(0),
347fHistClusterMapITSSAInAcc(0),
348fHistClusterMapITSSAokInAcc(0),
349fHistClusterMapITSSAbadInAcc(0),
350fHistClusterMapITSSAskippedInAcc(0),
351fHistClusterMapITSSAoutinzInAcc(0),
352fHistClusterMapITSSAnorefitInAcc(0),
353fHistClusterMapITSSAnoclsInAcc(0),
354fHistClusterMapITSSAokoutinzbadInAcc(0),
355fHistClusterMapModuleITSSAokInAcc(0),
356fHistClusterMapModuleITSSAbadInAcc(0),
357fHistClusterMapModuleITSSAnoclsInAcc(0),
f8777463 358fHistClusterMapModuleITSMIokInAcc(0),
359fHistClusterMapModuleITSMIbadInAcc(0),
360fHistClusterMapModuleITSMInoclsInAcc(0),
0b2e8130 361fHistNClustersMapModule(0),
dbf573fb 362fHistZatSPDouter0ok(0),
363fHistZatSPDouter1ok(0),
364fHistZatSPDouter2ok(0),
365fHistZatSPDouter3ok(0),
366fHistZatSPDouter0notok(0),
367fHistZatSPDouter1notok(0),
368fHistZatSPDouter2notok(0),
369fHistZatSPDouter3notok(0),
f8777463 370fHistxlocSDDok(0),
371fHistzlocSDDok(0),
372fHistxlocVSmodSDDok(0),
373fHistxlocSDDall(0),
374fHistzlocSDDall(0),
0b2e8130 375fHistxlocSDDA(0),
376fHistxlocSDDB(0),
377fHistzlocSDDA(0),
378fHistzlocSDDB(0),
3f18d0a6 379fHistPhiTPCInAcc(0),
547640ff 380fHistEtaTPCInAcc(0),
0b2e8130 381fHistEtaTPCInAccA(0),
382fHistEtaTPCInAccB(0),
383fHistNclsTPCInAccA(0),
384fHistNclsTPCInAccB(0),
385fHistChi2PerClsTPCInAccA(0),
386fHistChi2PerClsTPCInAccB(0),
387fHistChi2PerClsITSInAccA(0),
388fHistChi2PerClsITSInAccB(0),
8d63376d 389fHistPtTPC(0),
3f18d0a6 390fHistPtTPCInAcc(0),
dbf573fb 391fHistPtTPCInAccMCtwoSPD(0),
392fHistPtTPCInAccMConeSPD(0),
f8777463 393fHistdEdxVSPtTPCInAcc(0),
394fHistdEdxVSPtITSTPCsel(0),
0b2e8130 395fHistTPCclsVSPtTPCInAcc(0),
396fHistTPCclsVSPtITSMISPDInAcc(0),
f8777463 397fHistPtVSphiTPCInAcc(0),
398fHistPtTPCInAccNoTRDout(0),
399fHistPtTPCInAccNoTOFout(0),
400fHistPtTPCInAccWithPtTPCAtInnerWall(0),
401fHistPtTPCInAccWithPtTPCAtVtx(0),
402fHistDeltaPtTPC(0),
403fHistPtTPCInAccP(0),
404fHistPtTPCInAccS(0),
405fHistPtTPCInAccPfromStrange(0),
406fHistPtTPCInAccSfromStrange(0),
407fHistPtTPCInAccSfromMat(0),
8d63376d 408fHistPtITSMI2(0),
409fHistPtITSMI3(0),
410fHistPtITSMI4(0),
411fHistPtITSMI5(0),
412fHistPtITSMI6(0),
413fHistPtITSMISPD(0),
7b4d74b2 414fHistPtITSMIoneSPD(0),
3f18d0a6 415fHistPtITSMI2InAcc(0),
416fHistPtITSMI3InAcc(0),
417fHistPtITSMI4InAcc(0),
418fHistPtITSMI5InAcc(0),
419fHistPtITSMI6InAcc(0),
420fHistPtITSMISPDInAcc(0),
7b4d74b2 421fHistPtITSMIoneSPDInAcc(0),
0b2e8130 422fHistPtITSMIoneSPDInAccShared(0),
423fHistPtITSMIoneSPDInAccSharedSPD(0),
424fHistPtITSMISPD1InAccShared(0),
425fHistPtITSMISPD2InAccShared(0),
426fHistPtITSMIoneSPDInAccSharedFake(0),
427fHistPtITSMIoneSPDInAccSharedSPDFake(0),
547640ff 428fHistPhiITSMI2InAcc(0),
429fHistPhiITSMI3InAcc(0),
430fHistPhiITSMI4InAcc(0),
431fHistPhiITSMI5InAcc(0),
432fHistPhiITSMI6InAcc(0),
433fHistPhiITSMISPDInAcc(0),
434fHistPhiITSMIoneSPDInAcc(0),
435fHistEtaITSMI2InAcc(0),
436fHistEtaITSMI3InAcc(0),
437fHistEtaITSMI4InAcc(0),
438fHistEtaITSMI5InAcc(0),
439fHistEtaITSMI6InAcc(0),
440fHistEtaITSMISPDInAcc(0),
441fHistEtaITSMIoneSPDInAcc(0),
0faeb7ba 442fHistPtITSMI2InAccFake(0),
443fHistPtITSMI3InAccFake(0),
444fHistPtITSMI4InAccFake(0),
445fHistPtITSMI5InAccFake(0),
446fHistPtITSMI6InAccFake(0),
447fHistPtITSMISPDInAccFake(0),
448fHistPtITSMIoneSPDInAccFake(0),
6c6fab7b 449fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
f8777463 450fHistPtITSTPCsel(0),
451fHistPtITSTPCselP(0),
452fHistPtITSTPCselS(0),
af874c53 453fHistPtITSTPCselFake(0),
f8777463 454fHistPtITSTPCselPfromStrange(0),
455fHistPtITSTPCselSfromStrange(0),
456fHistPtITSTPCselSfromMat(0),
457fHistPtITSMI2InAccP(0),
458fHistPtITSMI3InAccP(0),
459fHistPtITSMI4InAccP(0),
460fHistPtITSMI5InAccP(0),
461fHistPtITSMI6InAccP(0),
462fHistPtITSMISPDInAccP(0),
463fHistPtITSMIoneSPDInAccP(0),
464fHistPtITSMI2InAccS(0),
465fHistPtITSMI3InAccS(0),
466fHistPtITSMI4InAccS(0),
467fHistPtITSMI5InAccS(0),
468fHistPtITSMI6InAccS(0),
469fHistPtITSMISPDInAccS(0),
470fHistPtITSMIoneSPDInAccS(0),
3f18d0a6 471fHistPtITSMIokbadoutinz6(0),
c2893e82 472fHistPtITSMIokbadoutinz4InAcc(0),
473fHistPtITSMIokbadoutinz5InAcc(0),
3f18d0a6 474fHistPtITSMIokbadoutinz6InAcc(0),
475fHistPhiITSMIokbadoutinz6InAcc(0),
f8777463 476fHistRProdVtxInAccP(0),
477fHistRProdVtxInAccS(0),
0b2e8130 478fHistd0rphiTPCInAccA(0),
479fHistd0rphiTPCInAccB(0),
480fHistd0zTPCInAccA(0),
481fHistd0zTPCInAccB(0),
f8777463 482fHistd0rphiTPCInAccP150200(0),
483fHistd0rphiTPCInAccP500700(0),
484fHistd0rphiTPCInAccP10001500(0),
485fHistd0rphiTPCInAccS150200(0),
486fHistd0rphiTPCInAccS500700(0),
487fHistd0rphiTPCInAccS10001500(0),
488fHistd0rphiITSMISPDInAccP150200(0),
489fHistd0rphiITSMISPDInAccP500700(0),
490fHistd0rphiITSMISPDInAccP10001500(0),
491fHistd0rphiITSMISPDInAccS150200(0),
492fHistd0rphiITSMISPDInAccS500700(0),
493fHistd0rphiITSMISPDInAccS10001500(0),
494fHistd0rphiITSMIoneSPDInAccP150200(0),
dbf573fb 495fHistd0rphiITSMIoneSPDInAccP350450(0),
f8777463 496fHistd0rphiITSMIoneSPDInAccP500700(0),
497fHistd0rphiITSMIoneSPDInAccP10001500(0),
dbf573fb 498fHistd0rphiITSMIoneSPDInAccP25004000(0),
499fHistd0rphiITSMIoneSPDInAccP40008000(0),
0b2e8130 500fHistd0rphiITSMIoneSPDInAccA(0),
501fHistd0rphiITSMIoneSPDInAccB(0),
502fHistd0zITSMIoneSPDInAccA(0),
503fHistd0zITSMIoneSPDInAccB(0),
f8777463 504fHistd0zITSMIoneSPDInAccP150200(0),
505fHistd0zITSMIoneSPDInAccP500700(0),
506fHistd0zITSMIoneSPDInAccP10001500(0),
9a3cd95a 507fHistd0zVSetaTPCInAccP10001500(0),
f8777463 508fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
509fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
510fHistd0rphiITSMIoneSPDInAccS150200(0),
dbf573fb 511fHistd0rphiITSMIoneSPDInAccS350450(0),
f8777463 512fHistd0rphiITSMIoneSPDInAccS500700(0),
513fHistd0rphiITSMIoneSPDInAccS500700from22(0),
514fHistd0rphiITSMIoneSPDInAccS500700from211(0),
515fHistd0rphiITSMIoneSPDInAccS500700from310(0),
516fHistd0rphiITSMIoneSPDInAccS500700from321(0),
dbf573fb 517fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
f8777463 518fHistd0rphiITSMIoneSPDInAccS10001500(0),
dbf573fb 519fHistd0rphiITSMIoneSPDInAccS25004000(0),
520fHistd0rphiITSMIoneSPDInAccS40008000(0),
521fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
522fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
523fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
524fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
525fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
526fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
527fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
528fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
529fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
530fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
531fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
532fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
f8777463 533fHistd0zITSMIoneSPDInAccS150200(0),
534fHistd0zITSMIoneSPDInAccS500700(0),
535fHistd0zITSMIoneSPDInAccS10001500(0),
536fHistPDGMoth(0),
537fHistPDGMoth150200(0),
538fHistPDGMoth500700(0),
539fHistPDGMoth10001500(0),
540fHistPDGTrk(0),
af874c53 541fHistITSRedChi2NonFakePt02(0),
542fHistITSRedChi2FakePt02(0),
543fHistITSRedChi2NonFakePt05(0),
544fHistITSRedChi2FakePt05(0),
545fHistITSRedChi2NonFakePt1(0),
546fHistITSRedChi2FakePt1(0),
8d63376d 547fNtupleESDTracks(0),
548fNtupleITSAlignExtra(0),
f8777463 549fNtupleITSAlignSPDTracklets(0),
550fESDtrackCutsTPC(0),
551fESDtrackCutsITSTPC(0)
8d63376d 552{
553 // Constructor
554
f8777463 555 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
8d63376d 556
557 // Define input and output slots here
8d63376d 558 // Output slot #0 writes into a TList container
d98a315a 559 DefineOutput(1, TList::Class()); //My private output
8d63376d 560}
561//________________________________________________________________________
562AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck()
563{
564 // Destructor
565
566 // histograms are in the output list and deleted when the output
567 // list is deleted by the TSelector dtor
568
569 if (fOutput) {
570 delete fOutput;
571 fOutput = 0;
572 }
573}
8d63376d 574//________________________________________________________________________
d98a315a 575void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
8d63376d 576{
577 // Create histograms
578 // Called once
579
c2893e82 580 gStyle->SetHistLineWidth(2);
581
f8777463 582 Int_t nPtBins=34;
d1d5a660 583 //Float_t xPtBins[35]={0,0.025,0.05,0.075,0.08,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.280,0.325,0.35,0.375,0.4,0.45,0.55,0.7,0.75,0.9,1.2,1.7,2.5,3.5,4.5,5,6,8,13,15,23,28,35};
584 Float_t xPtBins[35]={0,0.025,0.05,0.075,0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.5,0.6,0.7,0.8,1.0,1.5,2.,2.5,3,4,5,6,8,10,15,20,25,30};
3f18d0a6 585
f8777463 586 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
8d63376d 587
588 // Several histograms are more conveniently managed in a TList
589 fOutput = new TList;
590 fOutput->SetOwner();
591
f8777463 592 fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000);
593 fOutput->Add(fHistPDGMoth);
594 fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000);
595 fOutput->Add(fHistPDGMoth150200);
596 fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000);
597 fOutput->Add(fHistPDGMoth500700);
598 fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000);
599 fOutput->Add(fHistPDGMoth10001500);
600 fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000);
601 fOutput->Add(fHistPDGTrk);
602
603 fHistNEvents = new TH1F("fHistNEvents", "Events: -1 tot, 0 sel, 1 vSPD3D, 2 vSPDZ, 3 vSPD, 4 vTRK; Type; N Events",12, -1.5, 10.5);
604 fHistNEvents->SetMinimum(0);
605 fOutput->Add(fHistNEvents);
606
607 fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac");
608 fOutput->Add(fHistNEventsFrac);
609
8d63376d 610 fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5);
611 fHistNtracks->Sumw2();
612 fHistNtracks->SetMinimum(0);
613 fOutput->Add(fHistNtracks);
614
615 fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5);
616 fHistNclsITSMI->Sumw2();
617 fHistNclsITSMI->SetMinimum(0);
618 fOutput->Add(fHistNclsITSMI);
619
2308c814 620 fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
621 fHistNclsITSSAInAcc->Sumw2();
622 fHistNclsITSSAInAcc->SetMinimum(0);
623 fOutput->Add(fHistNclsITSSAInAcc);
624
8d63376d 625 fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
626 fHistNclsITSSA->Sumw2();
627 fHistNclsITSSA->SetMinimum(0);
628 fOutput->Add(fHistNclsITSSA);
629
630 fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
631 fHistClusterMapITSMI->Sumw2();
632 fHistClusterMapITSMI->SetMinimum(0);
633 fOutput->Add(fHistClusterMapITSMI);
634
635 fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
636 fHistClusterMapITSSA->Sumw2();
637 fHistClusterMapITSSA->SetMinimum(0);
638 fOutput->Add(fHistClusterMapITSSA);
639
2308c814 640 fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
641 fHistClusterMapITSSAInAcc->Sumw2();
642 fHistClusterMapITSSAInAcc->SetMinimum(0);
643 fOutput->Add(fHistClusterMapITSSAInAcc);
644
8d63376d 645 fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
646 fHistClusterMapITSMIok->Sumw2();
647 fHistClusterMapITSMIok->SetMinimum(0);
648 fOutput->Add(fHistClusterMapITSMIok);
649
0b2e8130 650 fHistClusterMapITSMIokA = new TH1F("fHistClusterMapITSMIokA", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
651 fHistClusterMapITSMIokA->Sumw2();
652 fHistClusterMapITSMIokA->SetMinimum(0);
653 fOutput->Add(fHistClusterMapITSMIokA);
654
655 fHistClusterMapITSMIokB = new TH1F("fHistClusterMapITSMIokB", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
656 fHistClusterMapITSMIokB->Sumw2();
657 fHistClusterMapITSMIokB->SetMinimum(0);
658 fOutput->Add(fHistClusterMapITSMIokB);
659
660
2308c814 661 fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
662 fHistClusterMapITSSAokInAcc->Sumw2();
663 fHistClusterMapITSSAokInAcc->SetMinimum(0);
664 fOutput->Add(fHistClusterMapITSSAokInAcc);
665
666 fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
667 fHistClusterMapModuleITSSAokInAcc->SetMinimum(0);
668 fOutput->Add(fHistClusterMapModuleITSSAokInAcc);
669
f8777463 670 fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
671 fHistClusterMapModuleITSMIokInAcc->SetMinimum(0);
672 fOutput->Add(fHistClusterMapModuleITSMIokInAcc);
673
0b2e8130 674 fHistNClustersMapModule = new TH1F("fHistNClustersMapModule", "N clusters; Module; N tracks",2198, -0.5, 2197.5);
675 fHistNClustersMapModule->SetMinimum(0);
676 fOutput->Add(fHistNClustersMapModule);
677
8d63376d 678 fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
679 fHistClusterMapITSSAok->Sumw2();
680 fHistClusterMapITSSAok->SetMinimum(0);
681 fOutput->Add(fHistClusterMapITSSAok);
682
683 fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
684 fHistClusterMapITSMIbad->Sumw2();
685 fHistClusterMapITSMIbad->SetMinimum(0);
686 fOutput->Add(fHistClusterMapITSMIbad);
687
2308c814 688 fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
689 fHistClusterMapITSSAbadInAcc->Sumw2();
690 fHistClusterMapITSSAbadInAcc->SetMinimum(0);
691 fOutput->Add(fHistClusterMapITSSAbadInAcc);
692
693 fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
694 fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0);
695 fOutput->Add(fHistClusterMapModuleITSSAbadInAcc);
696
f8777463 697 fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
698 fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
699 fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
700
8d63376d 701 fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
702 fHistClusterMapITSSAbad->Sumw2();
703 fHistClusterMapITSSAbad->SetMinimum(0);
704 fOutput->Add(fHistClusterMapITSSAbad);
705
706 fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
707 fHistClusterMapITSMIskipped->Sumw2();
708 fHistClusterMapITSMIskipped->SetMinimum(0);
709 fOutput->Add(fHistClusterMapITSMIskipped);
710
2308c814 711 fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
712 fHistClusterMapITSSAskippedInAcc->Sumw2();
713 fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
714 fOutput->Add(fHistClusterMapITSSAskippedInAcc);
715
8d63376d 716 fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
717 fHistClusterMapITSSAskipped->Sumw2();
718 fHistClusterMapITSSAskipped->SetMinimum(0);
719 fOutput->Add(fHistClusterMapITSSAskipped);
720
721 fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
722 fHistClusterMapITSMIoutinz->Sumw2();
723 fHistClusterMapITSMIoutinz->SetMinimum(0);
724 fOutput->Add(fHistClusterMapITSMIoutinz);
725
2308c814 726 fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
727 fHistClusterMapITSSAoutinzInAcc->Sumw2();
728 fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
729 fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
730
8d63376d 731 fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
732 fHistClusterMapITSSAoutinz->Sumw2();
733 fHistClusterMapITSSAoutinz->SetMinimum(0);
734 fOutput->Add(fHistClusterMapITSSAoutinz);
735
2308c814 736 fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
737 fHistClusterMapITSSAokoutinzbad->Sumw2();
738 fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
739 fOutput->Add(fHistClusterMapITSSAokoutinzbad);
740
741 fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5);
742 fHistClusterMapITSMIokoutinzbad->Sumw2();
743 fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
744 fOutput->Add(fHistClusterMapITSMIokoutinzbad);
745
746 fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
747 fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
748 fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
749 fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
750
8d63376d 751 fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
752 fHistClusterMapITSMInorefit->Sumw2();
753 fHistClusterMapITSMInorefit->SetMinimum(0);
754 fOutput->Add(fHistClusterMapITSMInorefit);
755
2308c814 756 fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
757 fHistClusterMapITSSAnorefitInAcc->Sumw2();
758 fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
759 fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
760
8d63376d 761 fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
762 fHistClusterMapITSSAnorefit->Sumw2();
763 fHistClusterMapITSSAnorefit->SetMinimum(0);
764 fOutput->Add(fHistClusterMapITSSAnorefit);
765
766 fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
767 fHistClusterMapITSMInocls->Sumw2();
768 fHistClusterMapITSMInocls->SetMinimum(0);
769 fOutput->Add(fHistClusterMapITSMInocls);
770
2308c814 771 fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
772 fHistClusterMapITSSAnoclsInAcc->Sumw2();
773 fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
774 fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
775
776 fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
777 fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0);
778 fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc);
779
f8777463 780 fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
781 fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
782 fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
783
8d63376d 784 fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
785 fHistClusterMapITSSAnocls->Sumw2();
786 fHistClusterMapITSSAnocls->SetMinimum(0);
787 fOutput->Add(fHistClusterMapITSSAnocls);
788
dbf573fb 789
790 fHistZatSPDouter0ok = new TH1F("fHistZatSPDouter0ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
791 fHistZatSPDouter0ok->Sumw2();
792 fHistZatSPDouter0ok->SetMinimum(0);
793 fOutput->Add(fHistZatSPDouter0ok);
794 fHistZatSPDouter1ok = new TH1F("fHistZatSPDouter1ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
795 fHistZatSPDouter1ok->Sumw2();
796 fHistZatSPDouter1ok->SetMinimum(0);
797 fOutput->Add(fHistZatSPDouter1ok);
798 fHistZatSPDouter2ok = new TH1F("fHistZatSPDouter2ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
799 fHistZatSPDouter2ok->Sumw2();
800 fHistZatSPDouter2ok->SetMinimum(0);
801 fOutput->Add(fHistZatSPDouter2ok);
802 fHistZatSPDouter3ok = new TH1F("fHistZatSPDouter3ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
803 fHistZatSPDouter3ok->Sumw2();
804 fHistZatSPDouter3ok->SetMinimum(0);
805 fOutput->Add(fHistZatSPDouter3ok);
806 fHistZatSPDouter0notok = new TH1F("fHistZatSPDouter0notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
807 fHistZatSPDouter0notok->Sumw2();
808 fHistZatSPDouter0notok->SetMinimum(0);
809 fOutput->Add(fHistZatSPDouter0notok);
810 fHistZatSPDouter1notok = new TH1F("fHistZatSPDouter1notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
811 fHistZatSPDouter1notok->Sumw2();
812 fHistZatSPDouter1notok->SetMinimum(0);
813 fOutput->Add(fHistZatSPDouter1notok);
814 fHistZatSPDouter2notok = new TH1F("fHistZatSPDouter2notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
815 fHistZatSPDouter2notok->Sumw2();
816 fHistZatSPDouter2notok->SetMinimum(0);
817 fOutput->Add(fHistZatSPDouter2notok);
818 fHistZatSPDouter3notok = new TH1F("fHistZatSPDouter3notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
819 fHistZatSPDouter3notok->Sumw2();
820 fHistZatSPDouter3notok->SetMinimum(0);
821 fOutput->Add(fHistZatSPDouter3notok);
822
f8777463 823 fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
824 fHistxlocSDDok->Sumw2();
825 fHistxlocSDDok->SetMinimum(0);
826 fOutput->Add(fHistxlocSDDok);
827
828 fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75);
829 fOutput->Add(fHistxlocVSmodSDDok);
830
831 fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
832 fHistzlocSDDok->Sumw2();
833 fHistzlocSDDok->SetMinimum(0);
834 fOutput->Add(fHistzlocSDDok);
835
836 fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
837 fHistxlocSDDall->Sumw2();
838 fHistxlocSDDall->SetMinimum(0);
839 fOutput->Add(fHistxlocSDDall);
840
841 fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
842 fHistzlocSDDall->Sumw2();
843 fHistzlocSDDall->SetMinimum(0);
844 fOutput->Add(fHistzlocSDDall);
0b2e8130 845
846 fHistxlocSDDA = new TH1F("fHistxlocSDDA", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
847 fHistxlocSDDA->Sumw2();
848 fHistxlocSDDA->SetMinimum(0);
849 fOutput->Add(fHistxlocSDDA);
850
851 fHistzlocSDDA = new TH1F("fHistzlocSDDA", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
852 fHistzlocSDDA->Sumw2();
853 fHistzlocSDDA->SetMinimum(0);
854 fOutput->Add(fHistzlocSDDA);
855
856 fHistxlocSDDB = new TH1F("fHistxlocSDDB", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
857 fHistxlocSDDB->Sumw2();
858 fHistxlocSDDB->SetMinimum(0);
859 fOutput->Add(fHistxlocSDDB);
860
861 fHistzlocSDDB = new TH1F("fHistzlocSDDB", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
862 fHistzlocSDDB->Sumw2();
863 fHistzlocSDDB->SetMinimum(0);
864 fOutput->Add(fHistzlocSDDB);
f8777463 865
866
3f18d0a6 867 fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415);
868 fHistPhiTPCInAcc->Sumw2();
869 fHistPhiTPCInAcc->SetMinimum(0);
870 fOutput->Add(fHistPhiTPCInAcc);
871
547640ff 872 fHistEtaTPCInAcc = new TH1F("fHistEtaTPCInAcc","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
873 fHistEtaTPCInAcc->Sumw2();
874 fHistEtaTPCInAcc->SetMinimum(0);
875 fOutput->Add(fHistEtaTPCInAcc);
876
0b2e8130 877 fHistEtaTPCInAccA = new TH1F("fHistEtaTPCInAccA","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
878 fHistEtaTPCInAccA->Sumw2();
879 fHistEtaTPCInAccA->SetMinimum(0);
880 fOutput->Add(fHistEtaTPCInAccA);
881
882 fHistEtaTPCInAccB = new TH1F("fHistEtaTPCInAccB","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
883 fHistEtaTPCInAccB->Sumw2();
884 fHistEtaTPCInAccB->SetMinimum(0);
885 fOutput->Add(fHistEtaTPCInAccB);
886
887 fHistNclsTPCInAccA = new TH1F("fHistNclsTPCInAccA","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
888 fHistNclsTPCInAccA->Sumw2();
889 fHistNclsTPCInAccA->SetMinimum(0);
890 fOutput->Add(fHistNclsTPCInAccA);
891
892 fHistNclsTPCInAccB = new TH1F("fHistNclsTPCInAccB","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
893 fHistNclsTPCInAccB->Sumw2();
894 fHistNclsTPCInAccB->SetMinimum(0);
895 fOutput->Add(fHistNclsTPCInAccB);
896
897 fHistChi2PerClsTPCInAccA = new TH1F("fHistChi2PerClsTPCInAccA","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
898 fHistChi2PerClsTPCInAccA->Sumw2();
899 fHistChi2PerClsTPCInAccA->SetMinimum(0);
900 fOutput->Add(fHistChi2PerClsTPCInAccA);
901
902 fHistChi2PerClsTPCInAccB = new TH1F("fHistChi2PerClsTPCInAccB","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
903 fHistChi2PerClsTPCInAccB->Sumw2();
904 fHistChi2PerClsTPCInAccB->SetMinimum(0);
905 fOutput->Add(fHistChi2PerClsTPCInAccB);
906
907 fHistChi2PerClsITSInAccA = new TH1F("fHistChi2PerClsITSInAccA","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
908 fHistChi2PerClsITSInAccA->Sumw2();
909 fHistChi2PerClsITSInAccA->SetMinimum(0);
910 fOutput->Add(fHistChi2PerClsITSInAccA);
911
912 fHistChi2PerClsITSInAccB = new TH1F("fHistChi2PerClsITSInAccB","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
913 fHistChi2PerClsITSInAccB->Sumw2();
914 fHistChi2PerClsITSInAccB->SetMinimum(0);
915 fOutput->Add(fHistChi2PerClsITSInAccB);
916
3f18d0a6 917 fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415);
918 fHistPhiITSMIokbadoutinz6InAcc->Sumw2();
919 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
920 fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc);
8d63376d 921
3f18d0a6 922 fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 923 fHistPtTPC->Sumw2();
924 fHistPtTPC->SetMinimum(0);
925 fOutput->Add(fHistPtTPC);
926
3f18d0a6 927 fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 928 fHistPtITSMI6->Sumw2();
929 fHistPtITSMI6->SetMinimum(0);
930 fOutput->Add(fHistPtITSMI6);
931
3f18d0a6 932 fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 933 fHistPtITSMI5->Sumw2();
934 fHistPtITSMI5->SetMinimum(0);
935 fOutput->Add(fHistPtITSMI5);
936
3f18d0a6 937 fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 938 fHistPtITSMI4->Sumw2();
939 fHistPtITSMI4->SetMinimum(0);
940 fOutput->Add(fHistPtITSMI4);
941
3f18d0a6 942 fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 943 fHistPtITSMI3->Sumw2();
944 fHistPtITSMI3->SetMinimum(0);
945 fOutput->Add(fHistPtITSMI3);
946
3f18d0a6 947 fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 948 fHistPtITSMI2->Sumw2();
949 fHistPtITSMI2->SetMinimum(0);
950 fOutput->Add(fHistPtITSMI2);
951
3f18d0a6 952 fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
8d63376d 953 fHistPtITSMISPD->Sumw2();
954 fHistPtITSMISPD->SetMinimum(0);
955 fOutput->Add(fHistPtITSMISPD);
3f18d0a6 956
7b4d74b2 957 fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
958 fHistPtITSMIoneSPD->Sumw2();
959 fHistPtITSMIoneSPD->SetMinimum(0);
960 fOutput->Add(fHistPtITSMIoneSPD);
961
3f18d0a6 962 fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
963 fHistPtTPCInAcc->Sumw2();
964 fHistPtTPCInAcc->SetMinimum(0);
965 fOutput->Add(fHistPtTPCInAcc);
966
dbf573fb 967 fHistPtTPCInAccMCtwoSPD = new TH1F("fHistPtTPCInAccMCtwoSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
968 fHistPtTPCInAccMCtwoSPD->Sumw2();
969 fHistPtTPCInAccMCtwoSPD->SetMinimum(0);
970 fOutput->Add(fHistPtTPCInAccMCtwoSPD);
971
972 fHistPtTPCInAccMConeSPD = new TH1F("fHistPtTPCInAccMConeSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
973 fHistPtTPCInAccMConeSPD->Sumw2();
974 fHistPtTPCInAccMConeSPD->SetMinimum(0);
975 fOutput->Add(fHistPtTPCInAccMConeSPD);
976
f8777463 977 fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500);
978 fOutput->Add(fHistdEdxVSPtTPCInAcc);
979
980 fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500);
981 fOutput->Add(fHistdEdxVSPtITSTPCsel);
982
0b2e8130 983 fHistTPCclsVSPtTPCInAcc = new TH2F("fHistTPCclsVSPtTPCInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
984 fOutput->Add(fHistTPCclsVSPtTPCInAcc);
985 fHistTPCclsVSPtITSMISPDInAcc = new TH2F("fHistTPCclsVSPtITSMISPDInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
986 fOutput->Add(fHistTPCclsVSPtITSMISPDInAcc);
987
f8777463 988 fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5);
989 fHistPtVSphiTPCInAcc->SetMinimum(0);
990 fOutput->Add(fHistPtVSphiTPCInAcc);
991
992 fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
993 fHistPtTPCInAccNoTRDout->Sumw2();
994 fHistPtTPCInAccNoTRDout->SetMinimum(0);
995 fOutput->Add(fHistPtTPCInAccNoTRDout);
996
997 fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
998 fHistPtTPCInAccNoTOFout->Sumw2();
999 fHistPtTPCInAccNoTOFout->SetMinimum(0);
1000 fOutput->Add(fHistPtTPCInAccNoTOFout);
1001
1002 fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1003 fHistPtTPCInAccWithPtTPCAtVtx->Sumw2();
1004 fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0);
1005 fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx);
1006
1007 fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1008 fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2();
1009 fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0);
1010 fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall);
1011
dbf573fb 1012 fHistDeltaPtTPC = new TH2F("fHistDeltaPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; p_{t} TPC at vtx - p_{t} at inner wall [GeV/c]",100,0,1,50,-0.2,0.2);
f8777463 1013 fHistDeltaPtTPC->SetMinimum(0);
1014 fOutput->Add(fHistDeltaPtTPC);
1015
3f18d0a6 1016 fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1017 fHistPtITSMI6InAcc->Sumw2();
1018 fHistPtITSMI6InAcc->SetMinimum(0);
1019 fOutput->Add(fHistPtITSMI6InAcc);
1020
1021 fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1022 fHistPtITSMI5InAcc->Sumw2();
1023 fHistPtITSMI5InAcc->SetMinimum(0);
1024 fOutput->Add(fHistPtITSMI5InAcc);
1025
1026 fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1027 fHistPtITSMI4InAcc->Sumw2();
1028 fHistPtITSMI4InAcc->SetMinimum(0);
1029 fOutput->Add(fHistPtITSMI4InAcc);
8d63376d 1030
3f18d0a6 1031 fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1032 fHistPtITSMI3InAcc->Sumw2();
1033 fHistPtITSMI3InAcc->SetMinimum(0);
1034 fOutput->Add(fHistPtITSMI3InAcc);
1035
1036 fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1037 fHistPtITSMI2InAcc->Sumw2();
1038 fHistPtITSMI2InAcc->SetMinimum(0);
1039 fOutput->Add(fHistPtITSMI2InAcc);
1040
1041 fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1042 fHistPtITSMISPDInAcc->Sumw2();
1043 fHistPtITSMISPDInAcc->SetMinimum(0);
1044 fOutput->Add(fHistPtITSMISPDInAcc);
1045
7b4d74b2 1046 fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1047 fHistPtITSMIoneSPDInAcc->Sumw2();
1048 fHistPtITSMIoneSPDInAcc->SetMinimum(0);
1049 fOutput->Add(fHistPtITSMIoneSPDInAcc);
f8777463 1050
0b2e8130 1051 fHistPtITSMIoneSPDInAccShared = new TH1F("fHistPtITSMIoneSPDInAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1052 fHistPtITSMIoneSPDInAccShared->Sumw2();
1053 fHistPtITSMIoneSPDInAccShared->SetMinimum(0);
1054 fOutput->Add(fHistPtITSMIoneSPDInAccShared);
1055
1056 fHistPtITSMIoneSPDInAccSharedSPD = new TH1F("fHistPtITSMIoneSPDInAccSharedSPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1057 fHistPtITSMIoneSPDInAccSharedSPD->Sumw2();
1058 fHistPtITSMIoneSPDInAccSharedSPD->SetMinimum(0);
1059 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPD);
1060
1061 fHistPtITSMISPD1InAccShared = new TH1F("fHistPtITSMISPD1InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1062 fHistPtITSMISPD1InAccShared->Sumw2();
1063 fHistPtITSMISPD1InAccShared->SetMinimum(0);
1064 fOutput->Add(fHistPtITSMISPD1InAccShared);
1065
1066 fHistPtITSMISPD2InAccShared = new TH1F("fHistPtITSMISPD2InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1067 fHistPtITSMISPD2InAccShared->Sumw2();
1068 fHistPtITSMISPD2InAccShared->SetMinimum(0);
1069 fOutput->Add(fHistPtITSMISPD2InAccShared);
1070
1071 fHistPtITSMIoneSPDInAccSharedFake = new TH1F("fHistPtITSMIoneSPDInAccSharedFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1072 fHistPtITSMIoneSPDInAccSharedFake->Sumw2();
1073 fHistPtITSMIoneSPDInAccSharedFake->SetMinimum(0);
1074 fOutput->Add(fHistPtITSMIoneSPDInAccSharedFake);
1075
1076 fHistPtITSMIoneSPDInAccSharedSPDFake = new TH1F("fHistPtITSMIoneSPDInAccSharedSPDFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1077 fHistPtITSMIoneSPDInAccSharedSPDFake->Sumw2();
1078 fHistPtITSMIoneSPDInAccSharedSPDFake->SetMinimum(0);
1079 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPDFake);
1080
547640ff 1081 fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
1082 fHistPhiITSMI6InAcc->Sumw2();
1083 fHistPhiITSMI6InAcc->SetMinimum(0);
1084 fOutput->Add(fHistPhiITSMI6InAcc);
1085
1086 fHistPhiITSMI5InAcc = new TH1F("fHistPhiITSMI5InAcc","phi distribution of ITSMI5 tracks; #phi; N tracks",100,0,2*3.1415);
1087 fHistPhiITSMI5InAcc->Sumw2();
1088 fHistPhiITSMI5InAcc->SetMinimum(0);
1089 fOutput->Add(fHistPhiITSMI5InAcc);
1090
1091 fHistPhiITSMI4InAcc = new TH1F("fHistPhiITSMI4InAcc","phi distribution of ITSMI4 tracks; #phi; N tracks",100,0,2*3.1415);
1092 fHistPhiITSMI4InAcc->Sumw2();
1093 fHistPhiITSMI4InAcc->SetMinimum(0);
1094 fOutput->Add(fHistPhiITSMI4InAcc);
1095
1096 fHistPhiITSMI3InAcc = new TH1F("fHistPhiITSMI3InAcc","phi distribution of ITSMI3 tracks; #phi; N tracks",100,0,2*3.1415);
1097 fHistPhiITSMI3InAcc->Sumw2();
1098 fHistPhiITSMI3InAcc->SetMinimum(0);
1099 fOutput->Add(fHistPhiITSMI3InAcc);
1100
1101 fHistPhiITSMI2InAcc = new TH1F("fHistPhiITSMI2InAcc","phi distribution of ITSMI2 tracks; #phi; N tracks",100,0,2*3.1415);
1102 fHistPhiITSMI2InAcc->Sumw2();
1103 fHistPhiITSMI2InAcc->SetMinimum(0);
1104 fOutput->Add(fHistPhiITSMI2InAcc);
1105
1106 fHistPhiITSMISPDInAcc = new TH1F("fHistPhiITSMISPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1107 fHistPhiITSMISPDInAcc->Sumw2();
1108 fHistPhiITSMISPDInAcc->SetMinimum(0);
1109 fOutput->Add(fHistPhiITSMISPDInAcc);
1110
1111 fHistPhiITSMIoneSPDInAcc = new TH1F("fHistPhiITSMIoneSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1112 fHistPhiITSMIoneSPDInAcc->Sumw2();
1113 fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
1114 fOutput->Add(fHistPhiITSMIoneSPDInAcc);
1115
1116 fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
1117 fHistEtaITSMI6InAcc->Sumw2();
1118 fHistEtaITSMI6InAcc->SetMinimum(0);
1119 fOutput->Add(fHistEtaITSMI6InAcc);
1120
1121 fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
1122 fHistEtaITSMI5InAcc->Sumw2();
1123 fHistEtaITSMI5InAcc->SetMinimum(0);
1124 fOutput->Add(fHistEtaITSMI5InAcc);
1125
1126 fHistEtaITSMI4InAcc = new TH1F("fHistEtaITSMI4InAcc","eta distribution of ITSMI4 tracks; #eta; N tracks",100,-1.5,+1.5);
1127 fHistEtaITSMI4InAcc->Sumw2();
1128 fHistEtaITSMI4InAcc->SetMinimum(0);
1129 fOutput->Add(fHistEtaITSMI4InAcc);
1130
1131 fHistEtaITSMI3InAcc = new TH1F("fHistEtaITSMI3InAcc","eta distribution of ITSMI3 tracks; #eta; N tracks",100,-1.5,+1.5);
1132 fHistEtaITSMI3InAcc->Sumw2();
1133 fHistEtaITSMI3InAcc->SetMinimum(0);
1134 fOutput->Add(fHistEtaITSMI3InAcc);
1135
1136 fHistEtaITSMI2InAcc = new TH1F("fHistEtaITSMI2InAcc","eta distribution of ITSMI2 tracks; #eta; N tracks",100,-1.5,+1.5);
1137 fHistEtaITSMI2InAcc->Sumw2();
1138 fHistEtaITSMI2InAcc->SetMinimum(0);
1139 fOutput->Add(fHistEtaITSMI2InAcc);
1140
1141 fHistEtaITSMISPDInAcc = new TH1F("fHistEtaITSMISPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1142 fHistEtaITSMISPDInAcc->Sumw2();
1143 fHistEtaITSMISPDInAcc->SetMinimum(0);
1144 fOutput->Add(fHistEtaITSMISPDInAcc);
1145
1146 fHistEtaITSMIoneSPDInAcc = new TH1F("fHistEtaITSMIoneSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1147 fHistEtaITSMIoneSPDInAcc->Sumw2();
1148 fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
1149 fOutput->Add(fHistEtaITSMIoneSPDInAcc);
1150
1151
0faeb7ba 1152 fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1153 fHistPtITSMI6InAccFake->Sumw2();
1154 fHistPtITSMI6InAccFake->SetMinimum(0);
1155 fOutput->Add(fHistPtITSMI6InAccFake);
1156
1157 fHistPtITSMI5InAccFake = new TH1F("fHistPtITSMI5InAccFake","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1158 fHistPtITSMI5InAccFake->Sumw2();
1159 fHistPtITSMI5InAccFake->SetMinimum(0);
1160 fOutput->Add(fHistPtITSMI5InAccFake);
1161
1162 fHistPtITSMI4InAccFake = new TH1F("fHistPtITSMI4InAccFake","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1163 fHistPtITSMI4InAccFake->Sumw2();
1164 fHistPtITSMI4InAccFake->SetMinimum(0);
1165 fOutput->Add(fHistPtITSMI4InAccFake);
1166
1167 fHistPtITSMI3InAccFake = new TH1F("fHistPtITSMI3InAccFake","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1168 fHistPtITSMI3InAccFake->Sumw2();
1169 fHistPtITSMI3InAccFake->SetMinimum(0);
1170 fOutput->Add(fHistPtITSMI3InAccFake);
1171
1172 fHistPtITSMI2InAccFake = new TH1F("fHistPtITSMI2InAccFake","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1173 fHistPtITSMI2InAccFake->Sumw2();
1174 fHistPtITSMI2InAccFake->SetMinimum(0);
1175 fOutput->Add(fHistPtITSMI2InAccFake);
1176
1177 fHistPtITSMISPDInAccFake = new TH1F("fHistPtITSMISPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1178 fHistPtITSMISPDInAccFake->Sumw2();
1179 fHistPtITSMISPDInAccFake->SetMinimum(0);
1180 fOutput->Add(fHistPtITSMISPDInAccFake);
1181
1182 fHistPtITSMIoneSPDInAccFake = new TH1F("fHistPtITSMIoneSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1183 fHistPtITSMIoneSPDInAccFake->Sumw2();
1184 fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
1185 fOutput->Add(fHistPtITSMIoneSPDInAccFake);
1186
6c6fab7b 1187 fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1188 fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
1189 fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
1190 fOutput->Add(fHistPtITSMIoneSPDthreeSDDSSDInAcc);
1191
f8777463 1192 fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1193 fHistPtITSTPCsel->Sumw2();
1194 fHistPtITSTPCsel->SetMinimum(0);
1195 fOutput->Add(fHistPtITSTPCsel);
1196
1197 fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1198 fHistPtITSTPCselP->Sumw2();
1199 fHistPtITSTPCselP->SetMinimum(0);
1200 fOutput->Add(fHistPtITSTPCselP);
1201
1202 fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1203 fHistPtITSTPCselS->Sumw2();
1204 fHistPtITSTPCselS->SetMinimum(0);
1205 fOutput->Add(fHistPtITSTPCselS);
1206
af874c53 1207 fHistPtITSTPCselFake = new TH1F("fHistPtITSTPCselFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1208 fHistPtITSTPCselFake->Sumw2();
1209 fHistPtITSTPCselFake->SetMinimum(0);
1210 fOutput->Add(fHistPtITSTPCselFake);
1211
f8777463 1212 fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1213 fHistPtITSTPCselSfromStrange->Sumw2();
1214 fHistPtITSTPCselSfromStrange->SetMinimum(0);
1215 fOutput->Add(fHistPtITSTPCselSfromStrange);
1216
1217 fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1218 fHistPtITSTPCselPfromStrange->Sumw2();
1219 fHistPtITSTPCselPfromStrange->SetMinimum(0);
1220 fOutput->Add(fHistPtITSTPCselPfromStrange);
1221
1222 fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1223 fHistPtITSTPCselSfromMat->Sumw2();
1224 fHistPtITSTPCselSfromMat->SetMinimum(0);
1225 fOutput->Add(fHistPtITSTPCselSfromMat);
1226
1227 fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1228 fHistPtTPCInAccP->Sumw2();
1229 fHistPtTPCInAccP->SetMinimum(0);
1230 fOutput->Add(fHistPtTPCInAccP);
1231
1232 fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1233 fHistPtTPCInAccPfromStrange->Sumw2();
1234 fHistPtTPCInAccPfromStrange->SetMinimum(0);
1235 fOutput->Add(fHistPtTPCInAccPfromStrange);
1236
1237 fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1238 fHistPtITSMI6InAccP->Sumw2();
1239 fHistPtITSMI6InAccP->SetMinimum(0);
1240 fOutput->Add(fHistPtITSMI6InAccP);
1241
1242 fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1243 fHistPtITSMI5InAccP->Sumw2();
1244 fHistPtITSMI5InAccP->SetMinimum(0);
1245 fOutput->Add(fHistPtITSMI5InAccP);
1246
1247 fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1248 fHistPtITSMI4InAccP->Sumw2();
1249 fHistPtITSMI4InAccP->SetMinimum(0);
1250 fOutput->Add(fHistPtITSMI4InAccP);
1251
1252 fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1253 fHistPtITSMI3InAccP->Sumw2();
1254 fHistPtITSMI3InAccP->SetMinimum(0);
1255 fOutput->Add(fHistPtITSMI3InAccP);
1256
1257 fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1258 fHistPtITSMI2InAccP->Sumw2();
1259 fHistPtITSMI2InAccP->SetMinimum(0);
1260 fOutput->Add(fHistPtITSMI2InAccP);
1261
1262 fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1263 fHistPtITSMISPDInAccP->Sumw2();
1264 fHistPtITSMISPDInAccP->SetMinimum(0);
1265 fOutput->Add(fHistPtITSMISPDInAccP);
1266
1267 fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1268 fHistPtITSMIoneSPDInAccP->Sumw2();
1269 fHistPtITSMIoneSPDInAccP->SetMinimum(0);
1270 fOutput->Add(fHistPtITSMIoneSPDInAccP);
1271
1272 fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1273 fHistPtTPCInAccS->Sumw2();
1274 fHistPtTPCInAccS->SetMinimum(0);
1275 fOutput->Add(fHistPtTPCInAccS);
1276
1277 fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1278 fHistPtTPCInAccSfromStrange->Sumw2();
1279 fHistPtTPCInAccSfromStrange->SetMinimum(0);
1280 fOutput->Add(fHistPtTPCInAccSfromStrange);
1281
1282 fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1283 fHistPtTPCInAccSfromMat->Sumw2();
1284 fHistPtTPCInAccSfromMat->SetMinimum(0);
1285 fOutput->Add(fHistPtTPCInAccSfromMat);
1286
1287 fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1288 fHistPtITSMI6InAccS->Sumw2();
1289 fHistPtITSMI6InAccS->SetMinimum(0);
1290 fOutput->Add(fHistPtITSMI6InAccS);
1291
1292 fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1293 fHistPtITSMI5InAccS->Sumw2();
1294 fHistPtITSMI5InAccS->SetMinimum(0);
1295 fOutput->Add(fHistPtITSMI5InAccS);
1296
1297 fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1298 fHistPtITSMI4InAccS->Sumw2();
1299 fHistPtITSMI4InAccS->SetMinimum(0);
1300 fOutput->Add(fHistPtITSMI4InAccS);
1301
1302 fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1303 fHistPtITSMI3InAccS->Sumw2();
1304 fHistPtITSMI3InAccS->SetMinimum(0);
1305 fOutput->Add(fHistPtITSMI3InAccS);
1306
1307 fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1308 fHistPtITSMI2InAccS->Sumw2();
1309 fHistPtITSMI2InAccS->SetMinimum(0);
1310 fOutput->Add(fHistPtITSMI2InAccS);
1311
1312 fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1313 fHistPtITSMISPDInAccS->Sumw2();
1314 fHistPtITSMISPDInAccS->SetMinimum(0);
1315 fOutput->Add(fHistPtITSMISPDInAccS);
1316
1317 fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1318 fHistPtITSMIoneSPDInAccS->Sumw2();
1319 fHistPtITSMIoneSPDInAccS->SetMinimum(0);
1320 fOutput->Add(fHistPtITSMIoneSPDInAccS);
7b4d74b2 1321
3f18d0a6 1322 fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1323 fHistPtITSMIokbadoutinz6->Sumw2();
1324 fHistPtITSMIokbadoutinz6->SetMinimum(0);
1325 fOutput->Add(fHistPtITSMIokbadoutinz6);
8d63376d 1326
c2893e82 1327 fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1328 fHistPtITSMIokbadoutinz4InAcc->Sumw2();
1329 fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0);
1330 fOutput->Add(fHistPtITSMIokbadoutinz4InAcc);
1331
1332 fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1333 fHistPtITSMIokbadoutinz5InAcc->Sumw2();
1334 fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0);
1335 fOutput->Add(fHistPtITSMIokbadoutinz5InAcc);
1336
3f18d0a6 1337 fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1338 fHistPtITSMIokbadoutinz6InAcc->Sumw2();
1339 fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0);
1340 fOutput->Add(fHistPtITSMIokbadoutinz6InAcc);
8d63376d 1341
f8777463 1342 fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10);
1343 fHistRProdVtxInAccP->Sumw2();
1344 fHistRProdVtxInAccP->SetMinimum(0);
1345 fOutput->Add(fHistRProdVtxInAccP);
1346
1347 fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10);
1348 fHistRProdVtxInAccS->Sumw2();
1349 fHistRProdVtxInAccS->SetMinimum(0);
1350 fOutput->Add(fHistRProdVtxInAccS);
1351
0b2e8130 1352 fHistd0rphiTPCInAccA = new TH1F("fHistd0rphiTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1353 fHistd0rphiTPCInAccA->Sumw2();
1354 fHistd0rphiTPCInAccA->SetMinimum(0);
1355 fOutput->Add(fHistd0rphiTPCInAccA);
1356
1357 fHistd0rphiTPCInAccB = new TH1F("fHistd0rphiTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1358 fHistd0rphiTPCInAccB->Sumw2();
1359 fHistd0rphiTPCInAccB->SetMinimum(0);
1360 fOutput->Add(fHistd0rphiTPCInAccB);
1361
1362 fHistd0zTPCInAccA = new TH1F("fHistd0zTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1363 fHistd0zTPCInAccA->Sumw2();
1364 fHistd0zTPCInAccA->SetMinimum(0);
1365 fOutput->Add(fHistd0zTPCInAccA);
1366
1367 fHistd0zTPCInAccB = new TH1F("fHistd0zTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1368 fHistd0zTPCInAccB->Sumw2();
1369 fHistd0zTPCInAccB->SetMinimum(0);
1370 fOutput->Add(fHistd0zTPCInAccB);
1371
f8777463 1372 fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1373 fHistd0rphiTPCInAccP150200->Sumw2();
1374 fHistd0rphiTPCInAccP150200->SetMinimum(0);
1375 fOutput->Add(fHistd0rphiTPCInAccP150200);
1376
1377 fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1378 fHistd0rphiTPCInAccP500700->Sumw2();
1379 fHistd0rphiTPCInAccP500700->SetMinimum(0);
1380 fOutput->Add(fHistd0rphiTPCInAccP500700);
1381
1382 fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1383 fHistd0rphiTPCInAccP10001500->Sumw2();
1384 fHistd0rphiTPCInAccP10001500->SetMinimum(0);
1385 fOutput->Add(fHistd0rphiTPCInAccP10001500);
1386
1387 fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1388 fHistd0rphiTPCInAccS150200->Sumw2();
1389 fHistd0rphiTPCInAccS150200->SetMinimum(0);
1390 fOutput->Add(fHistd0rphiTPCInAccS150200);
1391
1392 fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1393 fHistd0rphiTPCInAccS500700->Sumw2();
1394 fHistd0rphiTPCInAccS500700->SetMinimum(0);
1395 fOutput->Add(fHistd0rphiTPCInAccS500700);
1396
1397 fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1398 fHistd0rphiTPCInAccS10001500->Sumw2();
1399 fHistd0rphiTPCInAccS10001500->SetMinimum(0);
1400 fOutput->Add(fHistd0rphiTPCInAccS10001500);
1401
1402 fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1403 fHistd0rphiITSMISPDInAccP150200->Sumw2();
1404 fHistd0rphiITSMISPDInAccP150200->SetMinimum(0);
1405 fOutput->Add(fHistd0rphiITSMISPDInAccP150200);
1406
1407 fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1408 fHistd0rphiITSMISPDInAccP500700->Sumw2();
1409 fHistd0rphiITSMISPDInAccP500700->SetMinimum(0);
1410 fOutput->Add(fHistd0rphiITSMISPDInAccP500700);
1411
1412 fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1413 fHistd0rphiITSMISPDInAccP10001500->Sumw2();
1414 fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0);
1415 fOutput->Add(fHistd0rphiITSMISPDInAccP10001500);
1416
1417 fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1418 fHistd0rphiITSMISPDInAccS150200->Sumw2();
1419 fHistd0rphiITSMISPDInAccS150200->SetMinimum(0);
1420 fOutput->Add(fHistd0rphiITSMISPDInAccS150200);
1421
1422 fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1423 fHistd0rphiITSMISPDInAccS500700->Sumw2();
1424 fHistd0rphiITSMISPDInAccS500700->SetMinimum(0);
1425 fOutput->Add(fHistd0rphiITSMISPDInAccS500700);
1426
1427 fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1428 fHistd0rphiITSMISPDInAccS10001500->Sumw2();
1429 fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0);
1430 fOutput->Add(fHistd0rphiITSMISPDInAccS10001500);
1431
1432 fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1433 fHistd0rphiITSMIoneSPDInAccP150200->Sumw2();
1434 fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0);
1435 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200);
1436
dbf573fb 1437 fHistd0rphiITSMIoneSPDInAccP350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccP350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1438 fHistd0rphiITSMIoneSPDInAccP350450->Sumw2();
1439 fHistd0rphiITSMIoneSPDInAccP350450->SetMinimum(0);
1440 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP350450);
1441
f8777463 1442 fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1443 fHistd0rphiITSMIoneSPDInAccP500700->Sumw2();
1444 fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0);
1445 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700);
1446
1447 fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1448 fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2();
1449 fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0);
1450 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500);
1451
dbf573fb 1452 fHistd0rphiITSMIoneSPDInAccP25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1453 fHistd0rphiITSMIoneSPDInAccP25004000->Sumw2();
1454 fHistd0rphiITSMIoneSPDInAccP25004000->SetMinimum(0);
1455 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP25004000);
1456
1457 fHistd0rphiITSMIoneSPDInAccP40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1458 fHistd0rphiITSMIoneSPDInAccP40008000->Sumw2();
1459 fHistd0rphiITSMIoneSPDInAccP40008000->SetMinimum(0);
1460 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP40008000);
1461
0b2e8130 1462 fHistd0rphiITSMIoneSPDInAccA = new TH1F("fHistd0rphiITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1463 fHistd0rphiITSMIoneSPDInAccA->Sumw2();
1464 fHistd0rphiITSMIoneSPDInAccA->SetMinimum(0);
1465 fOutput->Add(fHistd0rphiITSMIoneSPDInAccA);
1466
1467 fHistd0rphiITSMIoneSPDInAccB = new TH1F("fHistd0rphiITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1468 fHistd0rphiITSMIoneSPDInAccB->Sumw2();
1469 fHistd0rphiITSMIoneSPDInAccB->SetMinimum(0);
1470 fOutput->Add(fHistd0rphiITSMIoneSPDInAccB);
1471
1472 fHistd0zITSMIoneSPDInAccA = new TH1F("fHistd0zITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1473 fHistd0zITSMIoneSPDInAccA->Sumw2();
1474 fHistd0zITSMIoneSPDInAccA->SetMinimum(0);
1475 fOutput->Add(fHistd0zITSMIoneSPDInAccA);
1476
1477 fHistd0zITSMIoneSPDInAccB = new TH1F("fHistd0zITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1478 fHistd0zITSMIoneSPDInAccB->Sumw2();
1479 fHistd0zITSMIoneSPDInAccB->SetMinimum(0);
1480 fOutput->Add(fHistd0zITSMIoneSPDInAccB);
1481
f8777463 1482 fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1483 fHistd0zITSMIoneSPDInAccP150200->Sumw2();
1484 fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0);
1485 fOutput->Add(fHistd0zITSMIoneSPDInAccP150200);
1486
1487 fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1488 fHistd0zITSMIoneSPDInAccP500700->Sumw2();
1489 fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0);
1490 fOutput->Add(fHistd0zITSMIoneSPDInAccP500700);
1491
1492 fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1493 fHistd0zITSMIoneSPDInAccP10001500->Sumw2();
1494 fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0);
1495 fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500);
1496
9a3cd95a 1497 fHistd0zVSetaTPCInAccP10001500 = new TH2F("fHistd0zVSetaTPCInAccP10001500","Long. imp. par. to VertexSPD for TPC tracks; d_{0} z [cm]; eta",100,-4,4,10,-1,1);
1498 fOutput->Add(fHistd0zVSetaTPCInAccP10001500);
1499
f8777463 1500 fHistd0rphiVSphiITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; phi",30,-0.3,0.3,40,0,2*3.1415);
1501 fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500);
1502
1503 fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1);
1504 fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500);
1505
1506 fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1507 fHistd0rphiITSMIoneSPDInAccS150200->Sumw2();
1508 fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0);
1509 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200);
1510
dbf573fb 1511 fHistd0rphiITSMIoneSPDInAccS350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1512 fHistd0rphiITSMIoneSPDInAccS350450->Sumw2();
1513 fHistd0rphiITSMIoneSPDInAccS350450->SetMinimum(0);
1514 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450);
1515
f8777463 1516 fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1517 fHistd0rphiITSMIoneSPDInAccS500700->Sumw2();
1518 fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0);
1519 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700);
1520
1521 fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1522 fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2();
1523 fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0);
1524 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22);
1525
1526 fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1527 fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2();
1528 fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0);
1529 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211);
1530
1531 fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1532 fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2();
1533 fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0);
1534 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310);
1535
1536 fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1537 fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2();
1538 fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0);
1539 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321);
1540
dbf573fb 1541 fHistd0rphiITSMIoneSPDInAccS500700from3122 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from3122","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1542 fHistd0rphiITSMIoneSPDInAccS500700from3122->Sumw2();
1543 fHistd0rphiITSMIoneSPDInAccS500700from3122->SetMinimum(0);
1544 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from3122);
1545
f8777463 1546 fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1547 fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2();
1548 fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0);
1549 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500);
dbf573fb 1550
1551 fHistd0rphiITSMIoneSPDInAccS25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1552 fHistd0rphiITSMIoneSPDInAccS25004000->Sumw2();
1553 fHistd0rphiITSMIoneSPDInAccS25004000->SetMinimum(0);
1554 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000);
1555
1556 fHistd0rphiITSMIoneSPDInAccS40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1557 fHistd0rphiITSMIoneSPDInAccS40008000->Sumw2();
1558 fHistd0rphiITSMIoneSPDInAccS40008000->SetMinimum(0);
1559 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000);
1560
1561 fHistd0rphiITSMIoneSPDInAccS150200fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1562 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Sumw2();
1563 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->SetMinimum(0);
1564 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromStrange);
1565
1566 fHistd0rphiITSMIoneSPDInAccS150200fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1567 fHistd0rphiITSMIoneSPDInAccS150200fromMat->Sumw2();
1568 fHistd0rphiITSMIoneSPDInAccS150200fromMat->SetMinimum(0);
1569 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromMat);
1570
1571 fHistd0rphiITSMIoneSPDInAccS350450fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1572 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Sumw2();
1573 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->SetMinimum(0);
1574 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromStrange);
1575
1576 fHistd0rphiITSMIoneSPDInAccS350450fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1577 fHistd0rphiITSMIoneSPDInAccS350450fromMat->Sumw2();
1578 fHistd0rphiITSMIoneSPDInAccS350450fromMat->SetMinimum(0);
1579 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromMat);
1580
1581 fHistd0rphiITSMIoneSPDInAccS500700fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1582 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Sumw2();
1583 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->SetMinimum(0);
1584 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromStrange);
1585
1586 fHistd0rphiITSMIoneSPDInAccS500700fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1587 fHistd0rphiITSMIoneSPDInAccS500700fromMat->Sumw2();
1588 fHistd0rphiITSMIoneSPDInAccS500700fromMat->SetMinimum(0);
1589 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromMat);
1590
1591 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1592 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Sumw2();
1593 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->SetMinimum(0);
1594 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromStrange);
1595
1596 fHistd0rphiITSMIoneSPDInAccS10001500fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1597 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Sumw2();
1598 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->SetMinimum(0);
1599 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromMat);
1600
1601 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1602 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Sumw2();
1603 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->SetMinimum(0);
1604 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromStrange);
1605
1606 fHistd0rphiITSMIoneSPDInAccS25004000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1607 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Sumw2();
1608 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->SetMinimum(0);
1609 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromMat);
1610
1611 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1612 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Sumw2();
1613 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->SetMinimum(0);
1614 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromStrange);
1615
1616 fHistd0rphiITSMIoneSPDInAccS40008000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1617 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Sumw2();
1618 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->SetMinimum(0);
1619 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromMat);
1620
f8777463 1621
1622 fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1623 fHistd0zITSMIoneSPDInAccS150200->Sumw2();
1624 fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0);
1625 fOutput->Add(fHistd0zITSMIoneSPDInAccS150200);
1626
1627 fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1628 fHistd0zITSMIoneSPDInAccS500700->Sumw2();
1629 fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0);
1630 fOutput->Add(fHistd0zITSMIoneSPDInAccS500700);
1631
1632 fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1633 fHistd0zITSMIoneSPDInAccS10001500->Sumw2();
1634 fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0);
1635 fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500);
1636
af874c53 1637 fHistITSRedChi2NonFakePt02 = new TH1F("fHistITSRedChi2NonFakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1638 fOutput->Add(fHistITSRedChi2NonFakePt02);
1639 fHistITSRedChi2FakePt02 = new TH1F("fHistITSRedChi2FakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1640 fOutput->Add(fHistITSRedChi2FakePt02);
1641 fHistITSRedChi2NonFakePt05 = new TH1F("fHistITSRedChi2NonFakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1642 fOutput->Add(fHistITSRedChi2NonFakePt05);
1643 fHistITSRedChi2FakePt05 = new TH1F("fHistITSRedChi2FakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1644 fOutput->Add(fHistITSRedChi2FakePt05);
1645 fHistITSRedChi2NonFakePt1 = new TH1F("fHistITSRedChi2NonFakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1646 fOutput->Add(fHistITSRedChi2NonFakePt1);
1647 fHistITSRedChi2FakePt1 = new TH1F("fHistITSRedChi2FakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1648 fOutput->Add(fHistITSRedChi2FakePt1);
1649
f8777463 1650
8d63376d 1651 // ntuples
1652 //
dbf573fb 1653 fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:pdgMCMoth:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel");
8d63376d 1654 fOutput->Add(fNtupleESDTracks);
1655
c2893e82 1656 fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt");
8d63376d 1657 fOutput->Add(fNtupleITSAlignExtra);
1658
c2893e82 1659 fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt");
8d63376d 1660 fOutput->Add(fNtupleITSAlignSPDTracklets);
1661
1662 return;
1663}
1664
1665//________________________________________________________________________
d98a315a 1666void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
8d63376d 1667{
1668 // Main loop
1669 // Called for each event
c0d39d2a 1670
d98a315a 1671 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1672
1673 if (!fESD) {
1674 Printf("ERROR: fESD not available");
1675 return;
1676 }
1677
0b2e8130 1678 //if(fESD->GetEventNumberInFile()<7) return;
1679
5ac4a99f 1680 // only events in the requested multiplicity range
1681 if(!IsSelectedCentrality()) return;
f8777463 1682
1683 fHistNEvents->Fill(-1);
1684
c0d39d2a 1685
f8777463 1686 Bool_t isSelected = kTRUE;
1687 if(fUsePhysSel) {
1688 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1689 }
1690 if(!isSelected) return;
1691
d98a315a 1692
2308c814 1693 //if(fESD->GetEventType()!=7) return;
8d63376d 1694
8d63376d 1695 // *********** MC info ***************
1696 TArrayF mcVertex(3);
1697 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
1698 Float_t dNchdy=-999.;
1699
1700 TParticle *part=0;
1701 AliESDVertex *vertexMC=0;
1702 AliStack *stack=0;
1703 if (fReadMC) {
1704 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1705 if (!eventHandler) {
1706 Printf("ERROR: Could not retrieve MC event handler");
1707 return;
1708 }
1709
1710 AliMCEvent* mcEvent = eventHandler->MCEvent();
1711 if (!mcEvent) {
1712 Printf("ERROR: Could not retrieve MC event");
1713 return;
1714 }
1715
1716 stack = mcEvent->Stack();
1717 if (!stack) {
1718 AliDebug(AliLog::kError, "Stack not available");
1719 return;
1720 }
1721
1722 AliHeader* header = mcEvent->Header();
1723 if (!header) {
1724 AliDebug(AliLog::kError, "Header not available");
1725 return;
1726 }
1727 AliGenEventHeader* genHeader = header->GenEventHeader();
1728 genHeader->PrimaryVertex(mcVertex);
d1d5a660 1729 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
8d63376d 1730
1731 Int_t ngenpart = (Int_t)stack->GetNtrack();
d1d5a660 1732 //printf("# generated particles = %d\n",ngenpart);
8d63376d 1733 dNchdy=0;
1734 for(Int_t ip=0; ip<ngenpart; ip++) {
1735 part = (TParticle*)stack->Particle(ip);
1736 // keep only electrons, muons, pions, kaons and protons
1737 Int_t apdg = TMath::Abs(part->GetPdgCode());
1738 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
1739 // reject secondaries
af874c53 1740 //if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))<.01) printf("%f\n",TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1])));
8d63376d 1741 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
1742 // reject incoming protons
1743 Double_t energy = part->Energy();
1744 if(energy>900.) continue;
1745 Double_t pz = part->Pz();
1746 Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
1747 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
1748 }
d1d5a660 1749 //printf("# primary particles = %7.1f\n",dNchdy);
8d63376d 1750 }
1751 // *********** MC info ***************
1752 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
1753 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
1754
8d63376d 1755
f8777463 1756
1757 //------- event selection --------
1758 Int_t mincontrSPDvtx=1;
0b2e8130 1759 Double_t maxzSPDvtx=5.;
ebcbf764 1760 Double_t maxrSPDvtx=0.5;
dbf573fb 1761 Bool_t useTRKvtx=kTRUE;
1762 Bool_t useSPDvtxifNotTRK=kTRUE;
1763 Int_t mincontrTRKvtx=1;
1764 //Double_t maxzTRKvtx=20.;
1765 //Double_t maxrTRKvtx=1.;
f8777463 1766 //------- TPC track selection --------
0b2e8130 1767 Int_t minclsTPC=70;
f8777463 1768 Double_t maxchi2perTPCcl=4.;
1769 Double_t minEtaInAcc=-0.8; // -0.8
1770 Double_t maxEtaInAcc=0.8; // 0.8
9a3cd95a 1771 Double_t maxdcaxy=2.4;//2.4;
1772 Double_t maxdcaz=3.2;//3.2;
f8777463 1773 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
1774 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
1775 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
1776 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
1777 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
1778 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
1779 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
1780 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
1781 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1782 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1783 SetESDtrackCutsTPC(esdtrackCutsTPC);
1784 //------- ITS+TPC track selection --------
1785 Double_t maxdcaxyITSTPC=0.2;
1786 Double_t maxdcazITSTPC=1.e6;
1787 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
1788 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1789 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
1790 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
1791 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
1792 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
1793 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1794 AliESDtrackCuts::kAny);
1795 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
1796 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
1797 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1798 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1799 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
1800 //---------------------------------------
1801
1802
8d63376d 1803 //
2308c814 1804
1805 /*
8d63376d 1806 // ********** Trigger *****************
1807 ULong64_t triggerMask;
1808 ULong64_t spdFO = (1 << 14);
1809 ULong64_t v0left = (1 << 11);
1810 ULong64_t v0right = (1 << 12);
1811
1812 triggerMask=fESD->GetTriggerMask();
1813 // MB1: SPDFO || V0L || V0R
1814 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
1815 //MB2: GFO && V0R
1816 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
1817 // ************ Trigger ******************
1818 if(!eventTriggered) return;
2308c814 1819 */
8d63376d 1820
f8777463 1821
1822 fHistNEvents->Fill(0);
1823
8d63376d 1824 // SPD vertex
1825 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
f8777463 1826 // Select good SPD vertices
1827 TString spdvtitle=spdv->GetTitle();
1828 //if(!spdvtitle.Contains("3D")) return;
1829 if(spdv->GetNContributors()<mincontrSPDvtx ||
1830 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
1831 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
1832 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
1833 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
1834 return;
1835 }
d1d5a660 1836 //spdv->Print();
dbf573fb 1837
9f024d7a 1838 if(fRejPileupSPD) if(fESD->IsPileupFromSPD()) return;
1839
f8777463 1840 //
1841 // Tracks vertex
1842 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
d1d5a660 1843 //vertexESD->Print();
f8777463 1844
1845 if(spdvtitle.Contains("3D")) {
1846 fHistNEvents->Fill(1);
1847 fHistNEvents->Fill(3);
1848 } else {
1849 fHistNEvents->Fill(2);
1850 fHistNEvents->Fill(3);
1851 }
1852 if(vertexESD) {
1853 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
1854 }
1855
8d63376d 1856 Int_t ntracks = fESD->GetNumberOfTracks();
abe2795e 1857 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
8d63376d 1858
1859 fHistNtracks->Fill(ntracks);
1860 // Post the data already here
d98a315a 1861 PostData(1, fOutput);
8d63376d 1862
0b2e8130 1863 FillNClustersModuleMap();
1864
8d63376d 1865 Int_t idet,status; Float_t xloc,zloc;
3f18d0a6 1866 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
1867 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
1868
8d63376d 1869 // loop on tracks
1870 for(Int_t itr=0; itr<ntracks; itr++) {
1871 AliESDtrack *track = fESD->GetTrack(itr);
af874c53 1872 //if(track->Charge()>0) continue;
2308c814 1873 // remove kink daughters
8d63376d 1874 if(track->GetKinkIndex(0)>0) continue;
1875
3f18d0a6 1876 // remove tracks not reco in ITS or TPC
1877 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
1878 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
8d63376d 1879
f8777463 1880 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
1881 Double_t rProdVtx=0,zProdVtx=0;
1882 Int_t pdgTrk=0,pdgMoth=0;
dbf573fb 1883 Int_t nClsMCSPD=0;
f8777463 1884
1885 Int_t trkLabel = TMath::Abs(track->GetLabel());
0faeb7ba 1886 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
0b2e8130 1887 Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
1888 for(Int_t i=0;i<6;i++) {
1889 if(track->HasSharedPointOnITSLayer(i)) {
1890 hasShared=kTRUE;
1891 if(i<2) hasSharedSPD=kTRUE;
1892 }
1893 }
1894
f8777463 1895 // check if it is primary
1896 if(fReadMC && stack) {
1897 isPrimary = stack->IsPhysicalPrimary(trkLabel);
1898 part = (TParticle*)stack->Particle(trkLabel);
1899 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
1900 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
1901 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
1902 pdgTrk = TMath::Abs(part->GetPdgCode());
1903 if(part->GetFirstMother()>=0) {
1904 TParticle* mm=stack->Particle(part->GetFirstMother());
1905 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
1906 }
dbf573fb 1907 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
f8777463 1908 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
dbf573fb 1909 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
f8777463 1910 }
1911
1912 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
8d63376d 1913 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
f8777463 1914 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
1915 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
8d63376d 1916
0b2e8130 1917
1918
f8777463 1919 // remove tracks with kTPCin and not kTPCrefit
1920 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
8d63376d 1921
f8777463 1922 AliESDtrack *trackTPC = 0;
1923 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
1924 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
1925
2308c814 1926
2308c814 1927 Int_t nclsITS = track->GetNcls(0);
6c6fab7b 1928 Int_t nclsSDDSSD = 0;
3f18d0a6 1929 Int_t nclsokbadoutinzITS = 0;
2308c814 1930 Bool_t outInZ=kFALSE;
f8777463 1931 Bool_t skipTrack=kFALSE;
0b2e8130 1932 Bool_t fillA=kFALSE;
1933 Bool_t fillB=kFALSE;
8d63376d 1934
1935 for(Int_t layer=0; layer<6; layer++) {
6c6fab7b 1936 if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
dbf573fb 1937 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
1938 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
8d63376d 1939 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
f8777463 1940 if(status<0) continue;
2308c814 1941 if(layer>=2) idet+=240; // add n SPD modules
f8777463 1942 if(layer>=4) idet+=260; // add n SDD modules
2308c814 1943 if(status==4) outInZ=kTRUE;
dbf573fb 1944
1945 if(layer==1 && tpcrefit && itsrefit) {
1946 Double_t xyz[3];
1947 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
1948 if(status==1) {
1949 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
1950 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
1951 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
1952 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
1953 }
1954 if(status==2 || status==5) {
1955 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
1956 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
1957 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
1958 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
1959 }
1960 }
1961 // kill SDD clusters in MC
1962 if(fReadMC && (layer==2 || layer==3)) {
1963 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
1964 Double_t conv=3.34/5.43;
1965 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
1966 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
1967 }
f8777463 1968 if(tpcrefit) {
dbf573fb 1969 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
0b2e8130 1970 if(track->Pt()>0.7 && track->Pt()<2.0) {
1971 if(status==1) {
1972 fHistClusterMapITSMIok->Fill(layer);
1973 if(fillA) fHistClusterMapITSMIokA->Fill(layer);
1974 if(fillB) fHistClusterMapITSMIokB->Fill(layer);
1975 }
1976 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
1977 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
1978 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
1979 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
1980 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
1981 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
1982 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
1983 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
1984
1985 if((idet>=0 && idet<=11) || (idet>=36 && idet<=47)) fillA=kTRUE;
1986 if((idet>=28 && idet<=35) || (idet>=62 && idet<=71)) fillB=kTRUE;
1987
1988 }
3f18d0a6 1989 if(status==1 || status==2 || status==4) {
1990 fHistClusterMapITSMIokoutinzbad->Fill(layer);
1991 nclsokbadoutinzITS++;
1992 }
dbf573fb 1993 /*if(idet>=80 && idet<120) {
1994 Double_t xyz[3];
1995 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
1996 printf("det %d status %d phi %f z %f zloc %f xloc %f\n",idet,status,TMath::ATan2(xyz[1],xyz[0]),xyz[2],zloc,xloc);
1997 }*/
1998 if((layer==2 || layer==3) && status!=2 && status!=4) {
1999 //Float_t xlocCls;
2000 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
f8777463 2001 fHistxlocSDDall->Fill(xloc);
2002 fHistzlocSDDall->Fill(zloc);
dbf573fb 2003 if(status==1 /*nClsInMod>0*/) {
f8777463 2004 fHistxlocSDDok->Fill(xloc);
2005 fHistxlocVSmodSDDok->Fill(idet,xloc);
2006 fHistzlocSDDok->Fill(zloc);
0b2e8130 2007 if(fillA) fHistxlocSDDA->Fill(xloc);
2008 if(fillA) fHistzlocSDDA->Fill(zloc);
2009 if(fillB) fHistxlocSDDB->Fill(xloc);
2010 if(fillB) fHistzlocSDDB->Fill(zloc);
2011
dbf573fb 2012 }
f8777463 2013 }
8d63376d 2014 } else {
0b2e8130 2015 if(track->Phi()>1.5 && track->Phi()<1.7) { // ADDED
8d63376d 2016 if(status==1) fHistClusterMapITSSAok->Fill(layer);
2017 if(status==2) fHistClusterMapITSSAbad->Fill(layer);
2018 if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
2019 if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
2020 if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
2021 if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
2308c814 2022 if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
2023 if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
dbf573fb 2024 if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
2308c814 2025 if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
2026 if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
2027 if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
2028 if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
2029 if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
0b2e8130 2030 } // ADDED
2308c814 2031 }
2032 if(TESTBIT(track->GetITSClusterMap(),layer)) {
f8777463 2033 if(tpcrefit) {
2308c814 2034 fHistClusterMapITSMI->Fill(layer);
2035 } else {
2036 fHistClusterMapITSSA->Fill(layer);
2037 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
2038 }
8d63376d 2039 }
dbf573fb 2040 /*
2041 // SKIP SDD MODULES LOW EFF
2042 if(
2043 idet==246 ||
2044 idet==247 ||
2045 idet==256 ||
2046 idet==261 ||
2047 idet==267 ||
2048 idet==333 ||
2049 idet==343 ||
2050 idet==346 ||
2051 idet==349 ||
2052 idet==376 ||
2053 idet==390 ||
2054 idet==392 ||
2055 idet==409 ||
2056 idet==411 ||
2057 idet==464 ||
2058 idet==468 ||
2059 idet==474 ||
2060 idet==469
2061 )
2062 skipTrack=kTRUE;
2063 */
2064 /*
2065 if(
2066 idet==245
2067 || idet==248
2068 || idet==253
2069 || idet==264
2070 || idet==276
2071 || idet==286
2072 || idet==287
2073 || idet==292
2074 || idet==295
2075 || idet==302
2076 || idet==305
2077 || idet==307
2078 || idet==315
2079 || idet==320
2080 || idet==330
2081 || idet==331
2082 || idet==341
2083 || idet==357
2084 || idet==368
2085 || idet==376
2086 || idet==377
2087 || idet==378
2088 || idet==379
2089 || idet==380
2090 || idet==381
2091 || idet==382
2092 || idet==383
2093 || idet==422
2094 || idet==444
2095 || idet==445
2096 || idet==450
2097 || idet==451
2098 || idet==452
2099 || idet==453
2100 || idet==455
2101 || idet==459
2102 || idet==469
2103 || idet==485
2104 || idet==493
2105 || idet==494
2106 || idet==495
2107 || idet==496
2108 || idet==497
2109 || idet==498
2110 || idet==499
2111 ) skipTrack=kTRUE;
2112 // SKIP SDD MODULES LOW EFF
2113 */
8d63376d 2114 }
c0d39d2a 2115 if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
8d63376d 2116
3f18d0a6 2117 // TPC track findable in ITS
f8777463 2118 if(tpcrefit && trackTPC) {
2119 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
2120 itsfindable=kTRUE;
2121 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
2122 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
2123 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
2124 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
2125 fHistPtTPC->Fill(track->Pt());
dbf573fb 2126 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
2127 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
2128 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
0b2e8130 2129 itsfindableAcc=kTRUE;
f8777463 2130 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
2131 fHistPtTPCInAcc->Fill(track->Pt());
0b2e8130 2132 fHistTPCclsVSPtTPCInAcc->Fill(trackTPC->Pt(),trackTPC->GetNcls(1));
f8777463 2133 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
2134 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
2135 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
2136 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
2137 Double_t pTPCinnerwall[3];
2138 track->GetInnerPxPyPz(pTPCinnerwall);
2139 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
2140 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
dbf573fb 2141 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
547640ff 2142 if(track->Pt()>1) {
2143 fHistPhiTPCInAcc->Fill(track->Phi());
2144 fHistEtaTPCInAcc->Fill(track->Eta());
2145 }
f8777463 2146 if(isPrimary) {
2147 fHistPtTPCInAccP->Fill(track->Pt());
2148 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
2149 } else {
2150 fHistPtTPCInAccS->Fill(track->Pt());
2151 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
2152 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
2153 }
dbf573fb 2154 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
2155 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
0b2e8130 2156
2157 if(fillA) {
2158 fHistEtaTPCInAccA->Fill(trackTPC->Eta());
2159 fHistNclsTPCInAccA->Fill(track->GetTPCNclsIter1());
2160 fHistChi2PerClsTPCInAccA->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2161 }
2162 if(fillB) {
2163 fHistEtaTPCInAccB->Fill(trackTPC->Eta());
2164 fHistNclsTPCInAccB->Fill(track->GetTPCNclsIter1());
2165 fHistChi2PerClsTPCInAccB->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2166 }
f8777463 2167 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
2168 }
3f18d0a6 2169 }
2308c814 2170 }
8d63376d 2171
dbf573fb 2172
2173 if(useTRKvtx) {
2174 // we need the vertex to compute the impact parameters
c0d39d2a 2175 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
dbf573fb 2176 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
2177 if(useSPDvtxifNotTRK) {
2178 vertexESD = fESD->GetPrimaryVertexSPD();
2179 } else {
c0d39d2a 2180 delete trackTPC; trackTPC=0; continue;
dbf573fb 2181 }
2182 }
2183 }
2184
0b2e8130 2185 //if(hasSharedSPD) continue;
d1d5a660 2186 //if(track->GetITSFakeFlag()) continue;
0b2e8130 2187
f8777463 2188 // track prolonged in ITS with different conditions
2189 if(itsrefit) {
2190 if(itsfindable) {
2191 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
2192 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
2193 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
2194 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
2195 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
0b2e8130 2196 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
f8777463 2197 fHistPtITSMISPD->Fill(track->Pt());
0b2e8130 2198 fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
2199 }
f8777463 2200 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
2201 fHistPtITSMIoneSPD->Fill(track->Pt());
2202 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
2203 }
2204 if(itsfindableAcc) {
2205 if(nclsITS==6) {
2206 fHistPtITSMI6InAcc->Fill(track->Pt());
547640ff 2207 if(track->Pt()>1) {
2208 fHistPhiITSMI6InAcc->Fill(track->Phi());
2209 fHistEtaITSMI6InAcc->Fill(track->Eta());
2210 }
0faeb7ba 2211 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
f8777463 2212 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
2213 }
2214 if(nclsITS==5) {
2215 fHistPtITSMI5InAcc->Fill(track->Pt());
547640ff 2216 if(track->Pt()>1) {
2217 fHistPhiITSMI5InAcc->Fill(track->Phi());
2218 fHistEtaITSMI5InAcc->Fill(track->Eta());
2219 }
0faeb7ba 2220 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
f8777463 2221 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
2222 }
2223 if(nclsITS==4) {
2224 fHistPtITSMI4InAcc->Fill(track->Pt());
547640ff 2225 if(track->Pt()>1) {
2226 fHistPhiITSMI4InAcc->Fill(track->Phi());
2227 fHistEtaITSMI4InAcc->Fill(track->Eta());
2228 }
0faeb7ba 2229 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
f8777463 2230 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
2231 }
2232 if(nclsITS==3) {
2233 fHistPtITSMI3InAcc->Fill(track->Pt());
547640ff 2234 if(track->Pt()>1) {
2235 fHistPhiITSMI3InAcc->Fill(track->Phi());
2236 fHistEtaITSMI3InAcc->Fill(track->Eta());
2237 }
0faeb7ba 2238 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
f8777463 2239 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
2240 }
2241 if(nclsITS==2) {
2242 fHistPtITSMI2InAcc->Fill(track->Pt());
547640ff 2243 if(track->Pt()>1) {
2244 fHistPhiITSMI2InAcc->Fill(track->Phi());
2245 fHistEtaITSMI2InAcc->Fill(track->Eta());
2246 }
0faeb7ba 2247 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
f8777463 2248 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
2249 }
2250 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2251 fHistPtITSMISPDInAcc->Fill(track->Pt());
547640ff 2252 if(track->Pt()>1) {
2253 fHistPhiITSMISPDInAcc->Fill(track->Phi());
2254 fHistEtaITSMISPDInAcc->Fill(track->Eta());
2255 }
0faeb7ba 2256 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
f8777463 2257 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
2258 }
2259 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
2260 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
547640ff 2261 if(track->Pt()>1) {
2262 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
2263 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
2264 }
0b2e8130 2265 if(track->HasSharedPointOnITSLayer(0) ||
2266 track->HasSharedPointOnITSLayer(1) ||
2267 track->HasSharedPointOnITSLayer(2) ||
2268 track->HasSharedPointOnITSLayer(3) ||
2269 track->HasSharedPointOnITSLayer(4) ||
2270 track->HasSharedPointOnITSLayer(5)) {
2271 fHistPtITSMIoneSPDInAccShared->Fill(track->Pt());
2272 if(isFake) fHistPtITSMIoneSPDInAccSharedFake->Fill(track->Pt());
2273 }
2274 if(track->HasSharedPointOnITSLayer(0) || track->HasSharedPointOnITSLayer(1)) {
2275 fHistPtITSMIoneSPDInAccSharedSPD->Fill(track->Pt());
2276 if(isFake) fHistPtITSMIoneSPDInAccSharedSPDFake->Fill(track->Pt());
2277 }
2278 if(track->HasSharedPointOnITSLayer(0)) fHistPtITSMISPD1InAccShared->Fill(track->Pt());
2279 if(track->HasSharedPointOnITSLayer(1)) fHistPtITSMISPD2InAccShared->Fill(track->Pt());
2280
af874c53 2281 Float_t chi2redITS = track->GetITSchi2()/track->GetNcls(0);
0b2e8130 2282 if(fillA) fHistChi2PerClsITSInAccA->Fill(chi2redITS);
2283 if(fillB) fHistChi2PerClsITSInAccB->Fill(chi2redITS);
2284
af874c53 2285 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
2286 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2287 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2288 if(isFake) {
2289 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2290 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2291 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2292 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2293 }
6c6fab7b 2294 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2295
f8777463 2296 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2297 }
2298 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2299 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2300 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
547640ff 2301 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
f8777463 2302 }
2303 }
8d63376d 2304
f8777463 2305 if(tpcrefit) {
2308c814 2306 fHistNclsITSMI->Fill(nclsITS);
2307 } else {
2308 fHistNclsITSSA->Fill(nclsITS);
2309 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2310 }
2311
f8777463 2312
c0d39d2a 2313 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2314 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2315 { delete trackTPC; trackTPC=0; continue; }
8d63376d 2316
f8777463 2317 // impact parameter to VertexTracks
2318 Float_t d0z0[2],covd0z0[3];
2319 Double_t d0z0TPC[2],covd0z0TPC[3];
dbf573fb 2320 if(useTRKvtx) {
c0d39d2a 2321 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
dbf573fb 2322 } else {
2323 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
c0d39d2a 2324 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
dbf573fb 2325 }
f8777463 2326 track->GetImpactParameters(d0z0,covd0z0);
2327 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
c0d39d2a 2328 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2329
f8777463 2330
2331 // track that passes final ITS+TPC cuts
2332 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2333 fHistPtITSTPCsel->Fill(track->Pt());
af874c53 2334 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
f8777463 2335 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2336 if(isPrimary) {
2337 fHistPtITSTPCselP->Fill(track->Pt());
2338 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2339 } else {
2340 fHistPtITSTPCselS->Fill(track->Pt());
2341 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2342 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2343 }
2344 }
2345
2346
2347 // fill d0 histos
dbf573fb 2348 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
0b2e8130 2349 if(fillA && itsfindableAcc) {
2350 fHistd0rphiTPCInAccA->Fill(d0z0TPC[0]);
2351 fHistd0zTPCInAccA->Fill(d0z0TPC[1]);
2352 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2353 fHistd0rphiITSMIoneSPDInAccA->Fill(d0z0[0]);
2354 fHistd0zITSMIoneSPDInAccA->Fill(d0z0[1]);
2355 }
2356 }
2357 if(fillB && itsfindableAcc) {
2358 fHistd0rphiTPCInAccB->Fill(d0z0TPC[0]);
2359 fHistd0zTPCInAccB->Fill(d0z0TPC[1]);
2360 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2361 fHistd0rphiITSMIoneSPDInAccB->Fill(d0z0[0]);
2362 fHistd0zITSMIoneSPDInAccB->Fill(d0z0[1]);
2363 }
2364 }
f8777463 2365 if(track->Pt()>0.150 && track->Pt()<0.200) {
2366 if(isPrimary) {
2367 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2368 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2369 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2370 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
dbf573fb 2371 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
f8777463 2372 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2373 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2374 }
2375 } else {
2376 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2377 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2378 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2379 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
dbf573fb 2380 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2381 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2382 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2383 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2384 }
f8777463 2385 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2386 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2387 }
2388 }
2389 }
dbf573fb 2390 if(track->Pt()>0.350 && track->Pt()<0.450) {
2391 if(isPrimary) {
2392 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2393 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2394 }
2395 } else {
2396 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2397 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2398 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2399 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2400 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2401 }
2402 }
2403 }
2404 }
f8777463 2405 if(track->Pt()>0.500 && track->Pt()<0.700) {
2406 if(isPrimary) {
2407 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2408 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2409 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2410 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2411 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2412 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2413 }
2414 } else {
2415 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2416 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2417 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2418 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2419 fHistPDGTrk->Fill(pdgTrk);
2420 fHistPDGMoth->Fill(pdgMoth);
2421 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
dbf573fb 2422 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2423 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2424 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2425 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2426 }
f8777463 2427 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2428 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2429 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
dbf573fb 2430 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
f8777463 2431 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2432 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
dbf573fb 2433 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
f8777463 2434 }
2435 }
2436 }
2437 if(track->Pt()>1.000 && track->Pt()<1.500) {
2438 if(isPrimary) {
2439 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
9a3cd95a 2440 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2441
f8777463 2442 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2443 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2444 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2445 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2446 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2447 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2448 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2449 }
2450 } else {
2451 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2452 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2453 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2454 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
dbf573fb 2455 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2456 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2457 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2458 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2459 }
f8777463 2460 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2461 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2462 }
2463 }
2464 }
dbf573fb 2465 if(track->Pt()>2.500 && track->Pt()<4.000) {
2466 if(isPrimary) {
2467 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2468 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2469 }
2470 } else {
2471 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2472 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2473 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2474 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2475 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2476 }
2477 }
2478 }
2479 }
2480 if(track->Pt()>4.000 && track->Pt()<8.000) {
2481 if(isPrimary) {
2482 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2483 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2484 }
2485 } else {
2486 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2487 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2488 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2489 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2490 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2491 }
2492 }
2493 }
2494 }
2495
8d63376d 2496 }
2497
c0d39d2a 2498 if(trackTPC) { delete trackTPC; trackTPC=0; }
2308c814 2499
f8777463 2500 // encode ITS cluster map, including MC info
2501 Int_t iITSflag=MakeITSflag(track);
8d63376d 2502
2503 // if MC info is available: get particle properties
2504 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2505 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2506 if(fReadMC) {
2507 part = (TParticle*)stack->Particle(trkLabel);
2508 ptMC=part->Pt();
2509 pdgMC=part->GetPdgCode();
2510 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2511 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2512 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
8d63376d 2513 }
2514
ab846928 2515 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2516 if(!itsrefit) sigmad0MCv *= -1.;
f8777463 2517 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2518 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
ab846928 2519
8d63376d 2520 // fill ntuple with track properties
2308c814 2521 if(fFillNtuples && SelectPt(track->Pt())) {
dbf573fb 2522 Float_t fillArray[22]={track->Pt(),track->Eta(),track->Phi(),d0z0[0],d0z0[1],TMath::Sqrt(covd0z0[0]),TMath::Sqrt(covd0z0[2]),ptMC,pdgMC,pdgMoth,d0MC,d0z0MCv[0],d0z0MCv[1],sigmad0MCv,TMath::Sqrt(covd0z0MCv[2]),(Float_t)iITSflag,isPrimaryFl,isTPCSelFl};
8d63376d 2523 fNtupleESDTracks->Fill(fillArray);
2524 }
2525
2526 //---------------------------------------------
2527 // AliTrackPoints: alignment checks
2528 //
2308c814 2529 if(!fFillNtuples) continue;
ab846928 2530
8d63376d 2531 const AliTrackPointArray *array = track->GetTrackPointArray();
2308c814 2532 if(!array) continue;
8d63376d 2533 AliTrackPoint point;
2534 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2535 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2536 Bool_t extra=kFALSE;
2537 Int_t layerId,layerExtra=-1;
2538 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2539 array->GetPoint(point,ipt);
2540 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2541
2542 if(r>3 && r<6) {
2543 layerId = 0;
2544 } else if(r>6 && r<8) {
2545 layerId = 1;
2546 } else if(r>8 && r<18) {
2547 layerId = 2;
3f18d0a6 2548 } else if(r>18 && r<30) {
8d63376d 2549 layerId = 3;
3f18d0a6 2550 } else if(r>30 && r<40) {
8d63376d 2551 layerId = 4;
3f18d0a6 2552 } else if(r>40 && r<50) {
8d63376d 2553 layerId = 5;
2554 } else {
2555 layerId=100;
2556 }
2557
2558 // only ITS points
2559 if(layerId>5) continue;
2560
2561 if(!point.IsExtra()) {
2562 pointOnLayer[layerId]++;
2563 indexAssociated[layerId]=ipt;
2564 } else {
2565 // this is an extra cluster
2566 extra=kTRUE;
2567 layerExtra=layerId;
2568 indexExtra=ipt;
2569 }
2570 } // end loop on AliTrackPoints
2571
2572 TString vtitle = spdv->GetTitle();
2573 if(!vtitle.Contains("3D")) continue;
2574
2575 // SPD tracklet
2576 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2577 AliTrackPoint pointSPD1,pointSPD2;
2578 array->GetPoint(pointSPD1,indexAssociated[0]);
2579 array->GetPoint(pointSPD2,indexAssociated[1]);
2580 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2581 Float_t lambda=TMath::ATan((pointSPD2.GetZ()-pointSPD1.GetZ())/TMath::Sqrt((pointSPD2.GetX()-pointSPD1.GetX())*(pointSPD2.GetX()-pointSPD1.GetX())+(pointSPD2.GetY()-pointSPD1.GetY())*(pointSPD2.GetY()-pointSPD1.GetY())));
2582 Float_t theta=0.5*TMath::Pi()-lambda;
2583 TParticle particle(211,0,0,0,0,0,TMath::Cos(phi),TMath::Sin(phi),TMath::Tan(lambda),10.,pointSPD1.GetX(),pointSPD1.GetY(),pointSPD1.GetZ(),0);
2584 AliESDtrack tracklet(&particle);
2585 Float_t dz[2];
2586 // distance to primary SPD (only if 3D and high multiplicity)
2587 if(spdv->GetNContributors()>10) {
3f18d0a6 2588 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2589 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
c2893e82 2590 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
8d63376d 2591 }
2592 }
2593
2594 // distance to extra
3f18d0a6 2595 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
8d63376d 2596 AliTrackPoint pointExtra,pointAssociated;
2597 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2598 array->GetPoint(pointExtra,indexExtra);
2599 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2600 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2601 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2602 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2603 Float_t dzExtra[2];
2604 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2605 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2606 Float_t xlocExtra=-100.,zlocExtra=-100.;
c2893e82 2607 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
8d63376d 2608 }
2609
f8777463 2610 if(trackTPC) { delete trackTPC; trackTPC=0; }
8d63376d 2611 } // end loop on tracks
2612
2613 if(vertexMC) { delete vertexMC; vertexMC=0; }
2614
f8777463 2615 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2616 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2617
0b2e8130 2618 PostData(1, fOutput);
2619
8d63376d 2620 return;
2621}
2622
2623//________________________________________________________________________
2624void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2625{
2626 // Draw result to the screen
2627 // Called once at the end of the query
2efff183 2628 fOutput = dynamic_cast<TList*> (GetOutputData(1));
8d63376d 2629 if (!fOutput) {
2630 Printf("ERROR: fOutput not available");
2631 return;
2632 }
f8777463 2633 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2634 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2635 if(fHistNEvents && fHistNEventsFrac) {
2636 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2637 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2638 }
2639 }
8d63376d 2640
2641 return;
2642}
2643//---------------------------------------------------------------------------
dbf573fb 2644Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
8d63376d 2645{
2646 //
2647 // Return number of ITS clusters produced by MC particle with given label
2648 //
2308c814 2649
8d63376d 2650 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2651 if(!esdHRP) return -1;
2652 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2653 if(!cTree) return -1;
dbf573fb 2654 TClonesArray *clusters=0;
8d63376d 2655 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2656 if(!clusters) return -1;
2657
2658 AliITSRecPoint *c=0;
2659 Int_t i,n,icl,lay,ilab;
2660 Int_t ncls[6]={0,0,0,0,0,0};
2661 Int_t nclstot=0;
2662
dbf573fb 2663 for(i=0; i<nModules; i++) {
8d63376d 2664 cTree->GetEvent(i);
2665 n=clusters->GetEntriesFast();
2666 for (icl=0; icl<n; icl++) {
2667 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2668 lay=c->GetLayer();
dbf573fb 2669 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
8d63376d 2670 for(ilab=0;ilab<3;ilab++) {
2671 if(c->GetLabel(ilab)==label) ncls[lay]++;
2672 }
2673 }
2674 }
dbf573fb 2675 for(i=0;i<6;i++) {
2676 //printf("%d\n",ncls[i]);
2677 if(ncls[i]) nclstot++;
2678 }
8d63376d 2679
2680 return nclstot;
2681}
2682//---------------------------------------------------------------------------
f8777463 2683Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2684{
2685 //
2686 // Return number of ITS clusters produced by MC particle with given label
2687 //
2688
2689 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2690 if(!esdHRP) return -1;
2691 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2692 if(!cTree) return -1;
2693 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2694 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2695 if(!clusters) return -1;
2696
2697 AliITSRecPoint *c=0;
2698 Int_t n,icl;
2699
2700 cTree->GetEvent(idet);
2701 n=clusters->GetEntriesFast();
2702
2703 if(n==1) {
2704 for (icl=0; icl<n; icl++) {
2705 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2706 xloc = c->GetDetLocalX();
2707 }
2708 }
2709 return n;
2710}
2711//---------------------------------------------------------------------------
0b2e8130 2712void AliAnalysisTaskITSTrackingCheck::FillNClustersModuleMap()
2713{
2714 //
2715 // Number of clusters per module
2716 //
2717
2718 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2719 if(!esdHRP) return;
2720 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2721 if(!cTree) return;
2722 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2723 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2724
2725 for(Int_t idet=0;idet<2198;idet++) {
2726 cTree->GetEvent(idet);
2727 if(!clusters) continue;
2728 fHistNClustersMapModule->SetBinContent(idet,clusters->GetEntriesFast());
2729 }
2730
2731 return;
2732}
2733//---------------------------------------------------------------------------
8d63376d 2734Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
2735 AliESDVertex *vert,
2736 Double_t bzT) const
2737{
2738 //
2739 // Return the MC value of the impact parameter
2740 //
2741
2742 Double_t vx=part->Vx()-vert->GetX();
2743 Double_t vy=part->Vy()-vert->GetY();
2744
2745 Double_t pt=part->Pt();
2746 Double_t px=part->Px();
2747 Double_t py=part->Py();
2748 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
2749 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
2750
2751 if(px<0.000001) px=0.000001;
f8777463 2752 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
8d63376d 2753 Double_t center[3],d0;
2754 center[0]=vx-(1./charge)*rAnd*(py/pt);
2755 center[1]=vy+(1./charge)*rAnd*(px/pt);
2756 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
2757 d0 = -center[2]+rAnd;
2758
2759 return d0;
2760}
2761//---------------------------------------------------------------------------
2762Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
2763{
2764 //
2765 // Keep only tracks in given pt bins
2766 //
f8777463 2767 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
2768 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
8d63376d 2769
f8777463 2770 for(Int_t i=0; i<11; i++) {
ab846928 2771 if(pt>ptlower[i] && pt<ptupper[i]) {
8d63376d 2772 fCountsPerPtBin[i]++;
2773 return kTRUE;
2774 }
2775 }
2776 return kFALSE;
2308c814 2777 //return kTRUE;
8d63376d 2778}
f8777463 2779//---------------------------------------------------------------------------
2780Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
2781 //
2782 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
2783 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
2784 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
2785 //
2786 Int_t iITSflag=0;
2787 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
2788 if(track->HasPointOnITSLayer(1)) iITSflag+=2;
2789 if(track->HasPointOnITSLayer(2)) iITSflag+=10;
2790 if(track->HasPointOnITSLayer(3)) iITSflag+=20;
2791 if(track->HasPointOnITSLayer(4)) iITSflag+=100;
2792 if(track->HasPointOnITSLayer(5)) iITSflag+=200;
2793
dbf573fb 2794 if(iITSflag==333 && track->GetNcls(0)<6)
f8777463 2795 printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel());
2796
2797 // number of associated ITS clusters
2798 iITSflag += 1000*track->GetNcls(0);
2799
2800 // number of associated TPC clusters
2801 iITSflag += 100000*track->GetNcls(1);
2802
2803 // if MC info and is available
2804 // write the number of ITS clusters produced by this track
2805 Int_t nITSclsMC=0;
2806 if(fReadMC && fReadRPLabels) {
2807 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
2808 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
2809 // flag fake tracks
2810 if(track->GetLabel()<0) iITSflag *= -1;
2811 }
8d63376d 2812
f8777463 2813 return iITSflag;
2814}
5ac4a99f 2815//---------------------------------------------------------------------------
2816Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
2817{
2818 //
2819 // check if events is in the required multiplicity range
2820 //
2821
2822 const AliMultiplicity *alimult = fESD->GetMultiplicity();
2823 Int_t ntrklets=1;
2da5db49 2824 Int_t nclsSPDouter=0;
5ac4a99f 2825 if(alimult) {
2826 ntrklets = alimult->GetNumberOfTracklets();
2da5db49 2827 nclsSPDouter = alimult->GetNumberOfITSClusters(1);
5ac4a99f 2828 }
2829
2da5db49 2830 if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE;
2831
5ac4a99f 2832
2833 return kTRUE;
2834}
8d63376d 2835
2836
2837