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