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