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