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