1 /**************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 /////////////////////////////////////////////////////////////
18 // AliAnalysisTask to extract from ESD tracks the information
19 // on ITS tracking efficiency and resolutions.
21 // Author: A.Dainese, andrea.dainese@pd.infn.it
22 /////////////////////////////////////////////////////////////
29 #include <TClonesArray.h>
30 #include <TObjArray.h>
34 #include <TParticle.h>
36 #include "AliAnalysisTask.h"
37 #include "AliAnalysisManager.h"
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"
48 #include "AliESDtrackCuts.h"
49 #include "AliTrackPointArray.h"
50 #include "../ITS/AliITSRecPoint.h"
52 #include "AliInputEventHandler.h"
53 #include "AliMCEventHandler.h"
54 #include "AliMCEvent.h"
58 #include "AliGenEventHeader.h"
59 #include "AliAnalysisTaskITSTrackingCheck.h"
62 ClassImp(AliAnalysisTaskITSTrackingCheck)
63 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck() :
66 fReadRPLabels(kFALSE),
68 fUseITSSAforNtuples(kFALSE),
70 fRejPileupSPD(kFALSE),
80 fHistNclsITSSAInAcc(0),
81 fHistClusterMapITSMI(0),
82 fHistClusterMapITSMIokA(0),
83 fHistClusterMapITSMIokB(0),
84 fHistClusterMapITSMIok(0),
85 fHistClusterMapITSMIbad(0),
86 fHistClusterMapITSMIskipped(0),
87 fHistClusterMapITSMIoutinz(0),
88 fHistClusterMapITSMInorefit(0),
89 fHistClusterMapITSMInocls(0),
90 fHistClusterMapITSMIokoutinzbad(0),
91 fHistClusterMapITSSA(0),
92 fHistClusterMapITSSAok(0),
93 fHistClusterMapITSSAbad(0),
94 fHistClusterMapITSSAskipped(0),
95 fHistClusterMapITSSAoutinz(0),
96 fHistClusterMapITSSAnorefit(0),
97 fHistClusterMapITSSAnocls(0),
98 fHistClusterMapITSSAokoutinzbad(0),
99 fHistClusterMapITSSAInAcc(0),
100 fHistClusterMapITSSAokInAcc(0),
101 fHistClusterMapITSSAbadInAcc(0),
102 fHistClusterMapITSSAskippedInAcc(0),
103 fHistClusterMapITSSAoutinzInAcc(0),
104 fHistClusterMapITSSAnorefitInAcc(0),
105 fHistClusterMapITSSAnoclsInAcc(0),
106 fHistClusterMapITSSAokoutinzbadInAcc(0),
107 fHistClusterMapModuleITSSAokInAcc(0),
108 fHistClusterMapModuleITSSAbadInAcc(0),
109 fHistClusterMapModuleITSSAnoclsInAcc(0),
110 fHistClusterMapModuleITSMIokInAcc(0),
111 fHistClusterMapModuleITSMIbadInAcc(0),
112 fHistClusterMapModuleITSMInoclsInAcc(0),
113 fHistNClustersMapModule(0),
114 fHistZatSPDouter0ok(0),
115 fHistZatSPDouter1ok(0),
116 fHistZatSPDouter2ok(0),
117 fHistZatSPDouter3ok(0),
118 fHistZatSPDouter0notok(0),
119 fHistZatSPDouter1notok(0),
120 fHistZatSPDouter2notok(0),
121 fHistZatSPDouter3notok(0),
124 fHistxlocVSmodSDDok(0),
133 fHistEtaTPCInAccA(0),
134 fHistEtaTPCInAccB(0),
135 fHistNclsTPCInAccA(0),
136 fHistNclsTPCInAccB(0),
137 fHistChi2PerClsTPCInAccA(0),
138 fHistChi2PerClsTPCInAccB(0),
139 fHistChi2PerClsITSInAccA(0),
140 fHistChi2PerClsITSInAccB(0),
143 fHistPtTPCInAccMCtwoSPD(0),
144 fHistPtTPCInAccMConeSPD(0),
145 fHistdEdxVSPtTPCInAcc(0),
146 fHistdEdxVSPtITSTPCsel(0),
147 fHistTPCclsVSPtTPCInAcc(0),
148 fHistTPCclsVSPtITSMISPDInAcc(0),
149 fHistPtVSphiTPCInAcc(0),
150 fHistPtTPCInAccNoTRDout(0),
151 fHistPtTPCInAccNoTOFout(0),
152 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
153 fHistPtTPCInAccWithPtTPCAtVtx(0),
157 fHistPtTPCInAccPfromStrange(0),
158 fHistPtTPCInAccSfromStrange(0),
159 fHistPtTPCInAccSfromMat(0),
166 fHistPtITSMIoneSPD(0),
167 fHistPtITSMI2InAcc(0),
168 fHistPtITSMI3InAcc(0),
169 fHistPtITSMI4InAcc(0),
170 fHistPtITSMI5InAcc(0),
171 fHistPtITSMI6InAcc(0),
172 fHistPtITSMISPDInAcc(0),
173 fHistPtITSMIoneSPDInAcc(0),
174 fHistPtITSMIoneSPDInAccShared(0),
175 fHistPtITSMIoneSPDInAccSharedSPD(0),
176 fHistPtITSMISPD1InAccShared(0),
177 fHistPtITSMISPD2InAccShared(0),
178 fHistPtITSMIoneSPDInAccSharedFake(0),
179 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
180 fHistPhiITSMI2InAcc(0),
181 fHistPhiITSMI3InAcc(0),
182 fHistPhiITSMI4InAcc(0),
183 fHistPhiITSMI5InAcc(0),
184 fHistPhiITSMI6InAcc(0),
185 fHistPhiITSMISPDInAcc(0),
186 fHistPhiITSMIoneSPDInAcc(0),
187 fHistEtaITSMI2InAcc(0),
188 fHistEtaITSMI3InAcc(0),
189 fHistEtaITSMI4InAcc(0),
190 fHistEtaITSMI5InAcc(0),
191 fHistEtaITSMI6InAcc(0),
192 fHistEtaITSMISPDInAcc(0),
193 fHistEtaITSMIoneSPDInAcc(0),
194 fHistPtITSMI2InAccFake(0),
195 fHistPtITSMI3InAccFake(0),
196 fHistPtITSMI4InAccFake(0),
197 fHistPtITSMI5InAccFake(0),
198 fHistPtITSMI6InAccFake(0),
199 fHistPtITSMISPDInAccFake(0),
200 fHistPtITSMIoneSPDInAccFake(0),
201 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
203 fHistPtITSTPCselP(0),
204 fHistPtITSTPCselS(0),
205 fHistPtITSTPCselFake(0),
206 fHistPtITSTPCselPfromStrange(0),
207 fHistPtITSTPCselSfromStrange(0),
208 fHistPtITSTPCselSfromMat(0),
209 fHistPtITSMI2InAccP(0),
210 fHistPtITSMI3InAccP(0),
211 fHistPtITSMI4InAccP(0),
212 fHistPtITSMI5InAccP(0),
213 fHistPtITSMI6InAccP(0),
214 fHistPtITSMISPDInAccP(0),
215 fHistPtITSMIoneSPDInAccP(0),
216 fHistPtITSMI2InAccS(0),
217 fHistPtITSMI3InAccS(0),
218 fHistPtITSMI4InAccS(0),
219 fHistPtITSMI5InAccS(0),
220 fHistPtITSMI6InAccS(0),
221 fHistPtITSMISPDInAccS(0),
222 fHistPtITSMIoneSPDInAccS(0),
223 fHistPtITSMIokbadoutinz6(0),
224 fHistPtITSMIokbadoutinz4InAcc(0),
225 fHistPtITSMIokbadoutinz5InAcc(0),
226 fHistPtITSMIokbadoutinz6InAcc(0),
227 fHistPhiITSMIokbadoutinz6InAcc(0),
228 fHistRProdVtxInAccP(0),
229 fHistRProdVtxInAccS(0),
230 fHistd0rphiTPCInAccA(0),
231 fHistd0rphiTPCInAccB(0),
232 fHistd0zTPCInAccA(0),
233 fHistd0zTPCInAccB(0),
234 fHistd0rphiTPCInAccP150200(0),
235 fHistd0rphiTPCInAccP500700(0),
236 fHistd0rphiTPCInAccP10001500(0),
237 fHistd0rphiTPCInAccS150200(0),
238 fHistd0rphiTPCInAccS500700(0),
239 fHistd0rphiTPCInAccS10001500(0),
240 fHistd0rphiITSMISPDInAccP150200(0),
241 fHistd0rphiITSMISPDInAccP500700(0),
242 fHistd0rphiITSMISPDInAccP10001500(0),
243 fHistd0rphiITSMISPDInAccS150200(0),
244 fHistd0rphiITSMISPDInAccS500700(0),
245 fHistd0rphiITSMISPDInAccS10001500(0),
246 fHistd0rphiITSMIoneSPDInAccP150200(0),
247 fHistd0rphiITSMIoneSPDInAccP350450(0),
248 fHistd0rphiITSMIoneSPDInAccP500700(0),
249 fHistd0rphiITSMIoneSPDInAccP10001500(0),
250 fHistd0rphiITSMIoneSPDInAccP25004000(0),
251 fHistd0rphiITSMIoneSPDInAccP40008000(0),
252 fHistd0rphiITSMIoneSPDInAccA(0),
253 fHistd0rphiITSMIoneSPDInAccB(0),
254 fHistd0zITSMIoneSPDInAccA(0),
255 fHistd0zITSMIoneSPDInAccB(0),
256 fHistd0zITSMIoneSPDInAccP150200(0),
257 fHistd0zITSMIoneSPDInAccP500700(0),
258 fHistd0zITSMIoneSPDInAccP10001500(0),
259 fHistd0zVSetaTPCInAccP10001500(0),
260 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
261 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
262 fHistd0rphiITSMIoneSPDInAccS150200(0),
263 fHistd0rphiITSMIoneSPDInAccS350450(0),
264 fHistd0rphiITSMIoneSPDInAccS500700(0),
265 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
266 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
267 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
268 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
269 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
270 fHistd0rphiITSMIoneSPDInAccS10001500(0),
271 fHistd0rphiITSMIoneSPDInAccS25004000(0),
272 fHistd0rphiITSMIoneSPDInAccS40008000(0),
273 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
274 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
275 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
276 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
277 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
278 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
279 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
280 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
281 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
282 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
283 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
284 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
285 fHistd0zITSMIoneSPDInAccS150200(0),
286 fHistd0zITSMIoneSPDInAccS500700(0),
287 fHistd0zITSMIoneSPDInAccS10001500(0),
289 fHistPDGMoth150200(0),
290 fHistPDGMoth500700(0),
291 fHistPDGMoth10001500(0),
293 fHistITSRedChi2NonFakePt02(0),
294 fHistITSRedChi2FakePt02(0),
295 fHistITSRedChi2NonFakePt05(0),
296 fHistITSRedChi2FakePt05(0),
297 fHistITSRedChi2NonFakePt1(0),
298 fHistITSRedChi2FakePt1(0),
300 fNtupleITSAlignExtra(0),
301 fNtupleITSAlignSPDTracklets(0),
303 fESDtrackCutsITSTPC(0)
306 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
310 //________________________________________________________________________
311 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) :
312 AliAnalysisTaskSE(name),
314 fReadRPLabels(kFALSE),
315 fFillNtuples(kFALSE),
316 fUseITSSAforNtuples(kFALSE),
318 fRejPileupSPD(kFALSE),
328 fHistNclsITSSAInAcc(0),
329 fHistClusterMapITSMI(0),
330 fHistClusterMapITSMIokA(0),
331 fHistClusterMapITSMIokB(0),
332 fHistClusterMapITSMIok(0),
333 fHistClusterMapITSMIbad(0),
334 fHistClusterMapITSMIskipped(0),
335 fHistClusterMapITSMIoutinz(0),
336 fHistClusterMapITSMInorefit(0),
337 fHistClusterMapITSMInocls(0),
338 fHistClusterMapITSMIokoutinzbad(0),
339 fHistClusterMapITSSA(0),
340 fHistClusterMapITSSAok(0),
341 fHistClusterMapITSSAbad(0),
342 fHistClusterMapITSSAskipped(0),
343 fHistClusterMapITSSAoutinz(0),
344 fHistClusterMapITSSAnorefit(0),
345 fHistClusterMapITSSAnocls(0),
346 fHistClusterMapITSSAokoutinzbad(0),
347 fHistClusterMapITSSAInAcc(0),
348 fHistClusterMapITSSAokInAcc(0),
349 fHistClusterMapITSSAbadInAcc(0),
350 fHistClusterMapITSSAskippedInAcc(0),
351 fHistClusterMapITSSAoutinzInAcc(0),
352 fHistClusterMapITSSAnorefitInAcc(0),
353 fHistClusterMapITSSAnoclsInAcc(0),
354 fHistClusterMapITSSAokoutinzbadInAcc(0),
355 fHistClusterMapModuleITSSAokInAcc(0),
356 fHistClusterMapModuleITSSAbadInAcc(0),
357 fHistClusterMapModuleITSSAnoclsInAcc(0),
358 fHistClusterMapModuleITSMIokInAcc(0),
359 fHistClusterMapModuleITSMIbadInAcc(0),
360 fHistClusterMapModuleITSMInoclsInAcc(0),
361 fHistNClustersMapModule(0),
362 fHistZatSPDouter0ok(0),
363 fHistZatSPDouter1ok(0),
364 fHistZatSPDouter2ok(0),
365 fHistZatSPDouter3ok(0),
366 fHistZatSPDouter0notok(0),
367 fHistZatSPDouter1notok(0),
368 fHistZatSPDouter2notok(0),
369 fHistZatSPDouter3notok(0),
372 fHistxlocVSmodSDDok(0),
381 fHistEtaTPCInAccA(0),
382 fHistEtaTPCInAccB(0),
383 fHistNclsTPCInAccA(0),
384 fHistNclsTPCInAccB(0),
385 fHistChi2PerClsTPCInAccA(0),
386 fHistChi2PerClsTPCInAccB(0),
387 fHistChi2PerClsITSInAccA(0),
388 fHistChi2PerClsITSInAccB(0),
391 fHistPtTPCInAccMCtwoSPD(0),
392 fHistPtTPCInAccMConeSPD(0),
393 fHistdEdxVSPtTPCInAcc(0),
394 fHistdEdxVSPtITSTPCsel(0),
395 fHistTPCclsVSPtTPCInAcc(0),
396 fHistTPCclsVSPtITSMISPDInAcc(0),
397 fHistPtVSphiTPCInAcc(0),
398 fHistPtTPCInAccNoTRDout(0),
399 fHistPtTPCInAccNoTOFout(0),
400 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
401 fHistPtTPCInAccWithPtTPCAtVtx(0),
405 fHistPtTPCInAccPfromStrange(0),
406 fHistPtTPCInAccSfromStrange(0),
407 fHistPtTPCInAccSfromMat(0),
414 fHistPtITSMIoneSPD(0),
415 fHistPtITSMI2InAcc(0),
416 fHistPtITSMI3InAcc(0),
417 fHistPtITSMI4InAcc(0),
418 fHistPtITSMI5InAcc(0),
419 fHistPtITSMI6InAcc(0),
420 fHistPtITSMISPDInAcc(0),
421 fHistPtITSMIoneSPDInAcc(0),
422 fHistPtITSMIoneSPDInAccShared(0),
423 fHistPtITSMIoneSPDInAccSharedSPD(0),
424 fHistPtITSMISPD1InAccShared(0),
425 fHistPtITSMISPD2InAccShared(0),
426 fHistPtITSMIoneSPDInAccSharedFake(0),
427 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
428 fHistPhiITSMI2InAcc(0),
429 fHistPhiITSMI3InAcc(0),
430 fHistPhiITSMI4InAcc(0),
431 fHistPhiITSMI5InAcc(0),
432 fHistPhiITSMI6InAcc(0),
433 fHistPhiITSMISPDInAcc(0),
434 fHistPhiITSMIoneSPDInAcc(0),
435 fHistEtaITSMI2InAcc(0),
436 fHistEtaITSMI3InAcc(0),
437 fHistEtaITSMI4InAcc(0),
438 fHistEtaITSMI5InAcc(0),
439 fHistEtaITSMI6InAcc(0),
440 fHistEtaITSMISPDInAcc(0),
441 fHistEtaITSMIoneSPDInAcc(0),
442 fHistPtITSMI2InAccFake(0),
443 fHistPtITSMI3InAccFake(0),
444 fHistPtITSMI4InAccFake(0),
445 fHistPtITSMI5InAccFake(0),
446 fHistPtITSMI6InAccFake(0),
447 fHistPtITSMISPDInAccFake(0),
448 fHistPtITSMIoneSPDInAccFake(0),
449 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
451 fHistPtITSTPCselP(0),
452 fHistPtITSTPCselS(0),
453 fHistPtITSTPCselFake(0),
454 fHistPtITSTPCselPfromStrange(0),
455 fHistPtITSTPCselSfromStrange(0),
456 fHistPtITSTPCselSfromMat(0),
457 fHistPtITSMI2InAccP(0),
458 fHistPtITSMI3InAccP(0),
459 fHistPtITSMI4InAccP(0),
460 fHistPtITSMI5InAccP(0),
461 fHistPtITSMI6InAccP(0),
462 fHistPtITSMISPDInAccP(0),
463 fHistPtITSMIoneSPDInAccP(0),
464 fHistPtITSMI2InAccS(0),
465 fHistPtITSMI3InAccS(0),
466 fHistPtITSMI4InAccS(0),
467 fHistPtITSMI5InAccS(0),
468 fHistPtITSMI6InAccS(0),
469 fHistPtITSMISPDInAccS(0),
470 fHistPtITSMIoneSPDInAccS(0),
471 fHistPtITSMIokbadoutinz6(0),
472 fHistPtITSMIokbadoutinz4InAcc(0),
473 fHistPtITSMIokbadoutinz5InAcc(0),
474 fHistPtITSMIokbadoutinz6InAcc(0),
475 fHistPhiITSMIokbadoutinz6InAcc(0),
476 fHistRProdVtxInAccP(0),
477 fHistRProdVtxInAccS(0),
478 fHistd0rphiTPCInAccA(0),
479 fHistd0rphiTPCInAccB(0),
480 fHistd0zTPCInAccA(0),
481 fHistd0zTPCInAccB(0),
482 fHistd0rphiTPCInAccP150200(0),
483 fHistd0rphiTPCInAccP500700(0),
484 fHistd0rphiTPCInAccP10001500(0),
485 fHistd0rphiTPCInAccS150200(0),
486 fHistd0rphiTPCInAccS500700(0),
487 fHistd0rphiTPCInAccS10001500(0),
488 fHistd0rphiITSMISPDInAccP150200(0),
489 fHistd0rphiITSMISPDInAccP500700(0),
490 fHistd0rphiITSMISPDInAccP10001500(0),
491 fHistd0rphiITSMISPDInAccS150200(0),
492 fHistd0rphiITSMISPDInAccS500700(0),
493 fHistd0rphiITSMISPDInAccS10001500(0),
494 fHistd0rphiITSMIoneSPDInAccP150200(0),
495 fHistd0rphiITSMIoneSPDInAccP350450(0),
496 fHistd0rphiITSMIoneSPDInAccP500700(0),
497 fHistd0rphiITSMIoneSPDInAccP10001500(0),
498 fHistd0rphiITSMIoneSPDInAccP25004000(0),
499 fHistd0rphiITSMIoneSPDInAccP40008000(0),
500 fHistd0rphiITSMIoneSPDInAccA(0),
501 fHistd0rphiITSMIoneSPDInAccB(0),
502 fHistd0zITSMIoneSPDInAccA(0),
503 fHistd0zITSMIoneSPDInAccB(0),
504 fHistd0zITSMIoneSPDInAccP150200(0),
505 fHistd0zITSMIoneSPDInAccP500700(0),
506 fHistd0zITSMIoneSPDInAccP10001500(0),
507 fHistd0zVSetaTPCInAccP10001500(0),
508 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
509 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
510 fHistd0rphiITSMIoneSPDInAccS150200(0),
511 fHistd0rphiITSMIoneSPDInAccS350450(0),
512 fHistd0rphiITSMIoneSPDInAccS500700(0),
513 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
514 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
515 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
516 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
517 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
518 fHistd0rphiITSMIoneSPDInAccS10001500(0),
519 fHistd0rphiITSMIoneSPDInAccS25004000(0),
520 fHistd0rphiITSMIoneSPDInAccS40008000(0),
521 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
522 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
523 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
524 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
525 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
526 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
527 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
528 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
529 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
530 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
531 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
532 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
533 fHistd0zITSMIoneSPDInAccS150200(0),
534 fHistd0zITSMIoneSPDInAccS500700(0),
535 fHistd0zITSMIoneSPDInAccS10001500(0),
537 fHistPDGMoth150200(0),
538 fHistPDGMoth500700(0),
539 fHistPDGMoth10001500(0),
541 fHistITSRedChi2NonFakePt02(0),
542 fHistITSRedChi2FakePt02(0),
543 fHistITSRedChi2NonFakePt05(0),
544 fHistITSRedChi2FakePt05(0),
545 fHistITSRedChi2NonFakePt1(0),
546 fHistITSRedChi2FakePt1(0),
548 fNtupleITSAlignExtra(0),
549 fNtupleITSAlignSPDTracklets(0),
551 fESDtrackCutsITSTPC(0)
555 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
557 // Define input and output slots here
558 // Output slot #0 writes into a TList container
559 DefineOutput(1, TList::Class()); //My private output
561 //________________________________________________________________________
562 AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck()
566 // histograms are in the output list and deleted when the output
567 // list is deleted by the TSelector dtor
574 //________________________________________________________________________
575 void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
580 gStyle->SetHistLineWidth(2);
583 //Float_t xPtBins[35]={0,0.025,0.05,0.075,0.08,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.280,0.325,0.35,0.375,0.4,0.45,0.55,0.7,0.75,0.9,1.2,1.7,2.5,3.5,4.5,5,6,8,13,15,23,28,35};
584 Float_t xPtBins[35]={0,0.025,0.05,0.075,0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.5,0.6,0.7,0.8,1.0,1.5,2.,2.5,3,4,5,6,8,10,15,20,25,30};
586 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
588 // Several histograms are more conveniently managed in a TList
592 fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000);
593 fOutput->Add(fHistPDGMoth);
594 fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000);
595 fOutput->Add(fHistPDGMoth150200);
596 fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000);
597 fOutput->Add(fHistPDGMoth500700);
598 fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000);
599 fOutput->Add(fHistPDGMoth10001500);
600 fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000);
601 fOutput->Add(fHistPDGTrk);
603 fHistNEvents = new TH1F("fHistNEvents", "Events: -1 tot, 0 sel, 1 vSPD3D, 2 vSPDZ, 3 vSPD, 4 vTRK; Type; N Events",12, -1.5, 10.5);
604 fHistNEvents->SetMinimum(0);
605 fOutput->Add(fHistNEvents);
607 fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac");
608 fOutput->Add(fHistNEventsFrac);
610 fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5);
611 fHistNtracks->Sumw2();
612 fHistNtracks->SetMinimum(0);
613 fOutput->Add(fHistNtracks);
615 fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5);
616 fHistNclsITSMI->Sumw2();
617 fHistNclsITSMI->SetMinimum(0);
618 fOutput->Add(fHistNclsITSMI);
620 fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
621 fHistNclsITSSAInAcc->Sumw2();
622 fHistNclsITSSAInAcc->SetMinimum(0);
623 fOutput->Add(fHistNclsITSSAInAcc);
625 fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
626 fHistNclsITSSA->Sumw2();
627 fHistNclsITSSA->SetMinimum(0);
628 fOutput->Add(fHistNclsITSSA);
630 fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
631 fHistClusterMapITSMI->Sumw2();
632 fHistClusterMapITSMI->SetMinimum(0);
633 fOutput->Add(fHistClusterMapITSMI);
635 fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
636 fHistClusterMapITSSA->Sumw2();
637 fHistClusterMapITSSA->SetMinimum(0);
638 fOutput->Add(fHistClusterMapITSSA);
640 fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
641 fHistClusterMapITSSAInAcc->Sumw2();
642 fHistClusterMapITSSAInAcc->SetMinimum(0);
643 fOutput->Add(fHistClusterMapITSSAInAcc);
645 fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
646 fHistClusterMapITSMIok->Sumw2();
647 fHistClusterMapITSMIok->SetMinimum(0);
648 fOutput->Add(fHistClusterMapITSMIok);
650 fHistClusterMapITSMIokA = new TH1F("fHistClusterMapITSMIokA", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
651 fHistClusterMapITSMIokA->Sumw2();
652 fHistClusterMapITSMIokA->SetMinimum(0);
653 fOutput->Add(fHistClusterMapITSMIokA);
655 fHistClusterMapITSMIokB = new TH1F("fHistClusterMapITSMIokB", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
656 fHistClusterMapITSMIokB->Sumw2();
657 fHistClusterMapITSMIokB->SetMinimum(0);
658 fOutput->Add(fHistClusterMapITSMIokB);
661 fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
662 fHistClusterMapITSSAokInAcc->Sumw2();
663 fHistClusterMapITSSAokInAcc->SetMinimum(0);
664 fOutput->Add(fHistClusterMapITSSAokInAcc);
666 fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
667 fHistClusterMapModuleITSSAokInAcc->SetMinimum(0);
668 fOutput->Add(fHistClusterMapModuleITSSAokInAcc);
670 fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
671 fHistClusterMapModuleITSMIokInAcc->SetMinimum(0);
672 fOutput->Add(fHistClusterMapModuleITSMIokInAcc);
674 fHistNClustersMapModule = new TH1F("fHistNClustersMapModule", "N clusters; Module; N tracks",2198, -0.5, 2197.5);
675 fHistNClustersMapModule->SetMinimum(0);
676 fOutput->Add(fHistNClustersMapModule);
678 fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
679 fHistClusterMapITSSAok->Sumw2();
680 fHistClusterMapITSSAok->SetMinimum(0);
681 fOutput->Add(fHistClusterMapITSSAok);
683 fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
684 fHistClusterMapITSMIbad->Sumw2();
685 fHistClusterMapITSMIbad->SetMinimum(0);
686 fOutput->Add(fHistClusterMapITSMIbad);
688 fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
689 fHistClusterMapITSSAbadInAcc->Sumw2();
690 fHistClusterMapITSSAbadInAcc->SetMinimum(0);
691 fOutput->Add(fHistClusterMapITSSAbadInAcc);
693 fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
694 fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0);
695 fOutput->Add(fHistClusterMapModuleITSSAbadInAcc);
697 fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
698 fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
699 fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
701 fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
702 fHistClusterMapITSSAbad->Sumw2();
703 fHistClusterMapITSSAbad->SetMinimum(0);
704 fOutput->Add(fHistClusterMapITSSAbad);
706 fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
707 fHistClusterMapITSMIskipped->Sumw2();
708 fHistClusterMapITSMIskipped->SetMinimum(0);
709 fOutput->Add(fHistClusterMapITSMIskipped);
711 fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
712 fHistClusterMapITSSAskippedInAcc->Sumw2();
713 fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
714 fOutput->Add(fHistClusterMapITSSAskippedInAcc);
716 fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
717 fHistClusterMapITSSAskipped->Sumw2();
718 fHistClusterMapITSSAskipped->SetMinimum(0);
719 fOutput->Add(fHistClusterMapITSSAskipped);
721 fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
722 fHistClusterMapITSMIoutinz->Sumw2();
723 fHistClusterMapITSMIoutinz->SetMinimum(0);
724 fOutput->Add(fHistClusterMapITSMIoutinz);
726 fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
727 fHistClusterMapITSSAoutinzInAcc->Sumw2();
728 fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
729 fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
731 fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
732 fHistClusterMapITSSAoutinz->Sumw2();
733 fHistClusterMapITSSAoutinz->SetMinimum(0);
734 fOutput->Add(fHistClusterMapITSSAoutinz);
736 fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
737 fHistClusterMapITSSAokoutinzbad->Sumw2();
738 fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
739 fOutput->Add(fHistClusterMapITSSAokoutinzbad);
741 fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5);
742 fHistClusterMapITSMIokoutinzbad->Sumw2();
743 fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
744 fOutput->Add(fHistClusterMapITSMIokoutinzbad);
746 fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
747 fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
748 fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
749 fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
751 fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
752 fHistClusterMapITSMInorefit->Sumw2();
753 fHistClusterMapITSMInorefit->SetMinimum(0);
754 fOutput->Add(fHistClusterMapITSMInorefit);
756 fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
757 fHistClusterMapITSSAnorefitInAcc->Sumw2();
758 fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
759 fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
761 fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
762 fHistClusterMapITSSAnorefit->Sumw2();
763 fHistClusterMapITSSAnorefit->SetMinimum(0);
764 fOutput->Add(fHistClusterMapITSSAnorefit);
766 fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
767 fHistClusterMapITSMInocls->Sumw2();
768 fHistClusterMapITSMInocls->SetMinimum(0);
769 fOutput->Add(fHistClusterMapITSMInocls);
771 fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
772 fHistClusterMapITSSAnoclsInAcc->Sumw2();
773 fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
774 fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
776 fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
777 fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0);
778 fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc);
780 fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
781 fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
782 fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
784 fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
785 fHistClusterMapITSSAnocls->Sumw2();
786 fHistClusterMapITSSAnocls->SetMinimum(0);
787 fOutput->Add(fHistClusterMapITSSAnocls);
790 fHistZatSPDouter0ok = new TH1F("fHistZatSPDouter0ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
791 fHistZatSPDouter0ok->Sumw2();
792 fHistZatSPDouter0ok->SetMinimum(0);
793 fOutput->Add(fHistZatSPDouter0ok);
794 fHistZatSPDouter1ok = new TH1F("fHistZatSPDouter1ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
795 fHistZatSPDouter1ok->Sumw2();
796 fHistZatSPDouter1ok->SetMinimum(0);
797 fOutput->Add(fHistZatSPDouter1ok);
798 fHistZatSPDouter2ok = new TH1F("fHistZatSPDouter2ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
799 fHistZatSPDouter2ok->Sumw2();
800 fHistZatSPDouter2ok->SetMinimum(0);
801 fOutput->Add(fHistZatSPDouter2ok);
802 fHistZatSPDouter3ok = new TH1F("fHistZatSPDouter3ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
803 fHistZatSPDouter3ok->Sumw2();
804 fHistZatSPDouter3ok->SetMinimum(0);
805 fOutput->Add(fHistZatSPDouter3ok);
806 fHistZatSPDouter0notok = new TH1F("fHistZatSPDouter0notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
807 fHistZatSPDouter0notok->Sumw2();
808 fHistZatSPDouter0notok->SetMinimum(0);
809 fOutput->Add(fHistZatSPDouter0notok);
810 fHistZatSPDouter1notok = new TH1F("fHistZatSPDouter1notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
811 fHistZatSPDouter1notok->Sumw2();
812 fHistZatSPDouter1notok->SetMinimum(0);
813 fOutput->Add(fHistZatSPDouter1notok);
814 fHistZatSPDouter2notok = new TH1F("fHistZatSPDouter2notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
815 fHistZatSPDouter2notok->Sumw2();
816 fHistZatSPDouter2notok->SetMinimum(0);
817 fOutput->Add(fHistZatSPDouter2notok);
818 fHistZatSPDouter3notok = new TH1F("fHistZatSPDouter3notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
819 fHistZatSPDouter3notok->Sumw2();
820 fHistZatSPDouter3notok->SetMinimum(0);
821 fOutput->Add(fHistZatSPDouter3notok);
823 fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
824 fHistxlocSDDok->Sumw2();
825 fHistxlocSDDok->SetMinimum(0);
826 fOutput->Add(fHistxlocSDDok);
828 fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75);
829 fOutput->Add(fHistxlocVSmodSDDok);
831 fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
832 fHistzlocSDDok->Sumw2();
833 fHistzlocSDDok->SetMinimum(0);
834 fOutput->Add(fHistzlocSDDok);
836 fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
837 fHistxlocSDDall->Sumw2();
838 fHistxlocSDDall->SetMinimum(0);
839 fOutput->Add(fHistxlocSDDall);
841 fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
842 fHistzlocSDDall->Sumw2();
843 fHistzlocSDDall->SetMinimum(0);
844 fOutput->Add(fHistzlocSDDall);
846 fHistxlocSDDA = new TH1F("fHistxlocSDDA", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
847 fHistxlocSDDA->Sumw2();
848 fHistxlocSDDA->SetMinimum(0);
849 fOutput->Add(fHistxlocSDDA);
851 fHistzlocSDDA = new TH1F("fHistzlocSDDA", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
852 fHistzlocSDDA->Sumw2();
853 fHistzlocSDDA->SetMinimum(0);
854 fOutput->Add(fHistzlocSDDA);
856 fHistxlocSDDB = new TH1F("fHistxlocSDDB", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
857 fHistxlocSDDB->Sumw2();
858 fHistxlocSDDB->SetMinimum(0);
859 fOutput->Add(fHistxlocSDDB);
861 fHistzlocSDDB = new TH1F("fHistzlocSDDB", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
862 fHistzlocSDDB->Sumw2();
863 fHistzlocSDDB->SetMinimum(0);
864 fOutput->Add(fHistzlocSDDB);
867 fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415);
868 fHistPhiTPCInAcc->Sumw2();
869 fHistPhiTPCInAcc->SetMinimum(0);
870 fOutput->Add(fHistPhiTPCInAcc);
872 fHistEtaTPCInAcc = new TH1F("fHistEtaTPCInAcc","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
873 fHistEtaTPCInAcc->Sumw2();
874 fHistEtaTPCInAcc->SetMinimum(0);
875 fOutput->Add(fHistEtaTPCInAcc);
877 fHistEtaTPCInAccA = new TH1F("fHistEtaTPCInAccA","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
878 fHistEtaTPCInAccA->Sumw2();
879 fHistEtaTPCInAccA->SetMinimum(0);
880 fOutput->Add(fHistEtaTPCInAccA);
882 fHistEtaTPCInAccB = new TH1F("fHistEtaTPCInAccB","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
883 fHistEtaTPCInAccB->Sumw2();
884 fHistEtaTPCInAccB->SetMinimum(0);
885 fOutput->Add(fHistEtaTPCInAccB);
887 fHistNclsTPCInAccA = new TH1F("fHistNclsTPCInAccA","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
888 fHistNclsTPCInAccA->Sumw2();
889 fHistNclsTPCInAccA->SetMinimum(0);
890 fOutput->Add(fHistNclsTPCInAccA);
892 fHistNclsTPCInAccB = new TH1F("fHistNclsTPCInAccB","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
893 fHistNclsTPCInAccB->Sumw2();
894 fHistNclsTPCInAccB->SetMinimum(0);
895 fOutput->Add(fHistNclsTPCInAccB);
897 fHistChi2PerClsTPCInAccA = new TH1F("fHistChi2PerClsTPCInAccA","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
898 fHistChi2PerClsTPCInAccA->Sumw2();
899 fHistChi2PerClsTPCInAccA->SetMinimum(0);
900 fOutput->Add(fHistChi2PerClsTPCInAccA);
902 fHistChi2PerClsTPCInAccB = new TH1F("fHistChi2PerClsTPCInAccB","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
903 fHistChi2PerClsTPCInAccB->Sumw2();
904 fHistChi2PerClsTPCInAccB->SetMinimum(0);
905 fOutput->Add(fHistChi2PerClsTPCInAccB);
907 fHistChi2PerClsITSInAccA = new TH1F("fHistChi2PerClsITSInAccA","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
908 fHistChi2PerClsITSInAccA->Sumw2();
909 fHistChi2PerClsITSInAccA->SetMinimum(0);
910 fOutput->Add(fHistChi2PerClsITSInAccA);
912 fHistChi2PerClsITSInAccB = new TH1F("fHistChi2PerClsITSInAccB","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
913 fHistChi2PerClsITSInAccB->Sumw2();
914 fHistChi2PerClsITSInAccB->SetMinimum(0);
915 fOutput->Add(fHistChi2PerClsITSInAccB);
917 fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415);
918 fHistPhiITSMIokbadoutinz6InAcc->Sumw2();
919 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
920 fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc);
922 fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
924 fHistPtTPC->SetMinimum(0);
925 fOutput->Add(fHistPtTPC);
927 fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
928 fHistPtITSMI6->Sumw2();
929 fHistPtITSMI6->SetMinimum(0);
930 fOutput->Add(fHistPtITSMI6);
932 fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
933 fHistPtITSMI5->Sumw2();
934 fHistPtITSMI5->SetMinimum(0);
935 fOutput->Add(fHistPtITSMI5);
937 fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
938 fHistPtITSMI4->Sumw2();
939 fHistPtITSMI4->SetMinimum(0);
940 fOutput->Add(fHistPtITSMI4);
942 fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
943 fHistPtITSMI3->Sumw2();
944 fHistPtITSMI3->SetMinimum(0);
945 fOutput->Add(fHistPtITSMI3);
947 fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
948 fHistPtITSMI2->Sumw2();
949 fHistPtITSMI2->SetMinimum(0);
950 fOutput->Add(fHistPtITSMI2);
952 fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
953 fHistPtITSMISPD->Sumw2();
954 fHistPtITSMISPD->SetMinimum(0);
955 fOutput->Add(fHistPtITSMISPD);
957 fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
958 fHistPtITSMIoneSPD->Sumw2();
959 fHistPtITSMIoneSPD->SetMinimum(0);
960 fOutput->Add(fHistPtITSMIoneSPD);
962 fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
963 fHistPtTPCInAcc->Sumw2();
964 fHistPtTPCInAcc->SetMinimum(0);
965 fOutput->Add(fHistPtTPCInAcc);
967 fHistPtTPCInAccMCtwoSPD = new TH1F("fHistPtTPCInAccMCtwoSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
968 fHistPtTPCInAccMCtwoSPD->Sumw2();
969 fHistPtTPCInAccMCtwoSPD->SetMinimum(0);
970 fOutput->Add(fHistPtTPCInAccMCtwoSPD);
972 fHistPtTPCInAccMConeSPD = new TH1F("fHistPtTPCInAccMConeSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
973 fHistPtTPCInAccMConeSPD->Sumw2();
974 fHistPtTPCInAccMConeSPD->SetMinimum(0);
975 fOutput->Add(fHistPtTPCInAccMConeSPD);
977 fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500);
978 fOutput->Add(fHistdEdxVSPtTPCInAcc);
980 fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500);
981 fOutput->Add(fHistdEdxVSPtITSTPCsel);
983 fHistTPCclsVSPtTPCInAcc = new TH2F("fHistTPCclsVSPtTPCInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
984 fOutput->Add(fHistTPCclsVSPtTPCInAcc);
985 fHistTPCclsVSPtITSMISPDInAcc = new TH2F("fHistTPCclsVSPtITSMISPDInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
986 fOutput->Add(fHistTPCclsVSPtITSMISPDInAcc);
988 fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5);
989 fHistPtVSphiTPCInAcc->SetMinimum(0);
990 fOutput->Add(fHistPtVSphiTPCInAcc);
992 fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
993 fHistPtTPCInAccNoTRDout->Sumw2();
994 fHistPtTPCInAccNoTRDout->SetMinimum(0);
995 fOutput->Add(fHistPtTPCInAccNoTRDout);
997 fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
998 fHistPtTPCInAccNoTOFout->Sumw2();
999 fHistPtTPCInAccNoTOFout->SetMinimum(0);
1000 fOutput->Add(fHistPtTPCInAccNoTOFout);
1002 fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1003 fHistPtTPCInAccWithPtTPCAtVtx->Sumw2();
1004 fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0);
1005 fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx);
1007 fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1008 fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2();
1009 fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0);
1010 fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall);
1012 fHistDeltaPtTPC = new TH2F("fHistDeltaPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; p_{t} TPC at vtx - p_{t} at inner wall [GeV/c]",100,0,1,50,-0.2,0.2);
1013 fHistDeltaPtTPC->SetMinimum(0);
1014 fOutput->Add(fHistDeltaPtTPC);
1016 fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1017 fHistPtITSMI6InAcc->Sumw2();
1018 fHistPtITSMI6InAcc->SetMinimum(0);
1019 fOutput->Add(fHistPtITSMI6InAcc);
1021 fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1022 fHistPtITSMI5InAcc->Sumw2();
1023 fHistPtITSMI5InAcc->SetMinimum(0);
1024 fOutput->Add(fHistPtITSMI5InAcc);
1026 fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1027 fHistPtITSMI4InAcc->Sumw2();
1028 fHistPtITSMI4InAcc->SetMinimum(0);
1029 fOutput->Add(fHistPtITSMI4InAcc);
1031 fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1032 fHistPtITSMI3InAcc->Sumw2();
1033 fHistPtITSMI3InAcc->SetMinimum(0);
1034 fOutput->Add(fHistPtITSMI3InAcc);
1036 fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1037 fHistPtITSMI2InAcc->Sumw2();
1038 fHistPtITSMI2InAcc->SetMinimum(0);
1039 fOutput->Add(fHistPtITSMI2InAcc);
1041 fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1042 fHistPtITSMISPDInAcc->Sumw2();
1043 fHistPtITSMISPDInAcc->SetMinimum(0);
1044 fOutput->Add(fHistPtITSMISPDInAcc);
1046 fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1047 fHistPtITSMIoneSPDInAcc->Sumw2();
1048 fHistPtITSMIoneSPDInAcc->SetMinimum(0);
1049 fOutput->Add(fHistPtITSMIoneSPDInAcc);
1051 fHistPtITSMIoneSPDInAccShared = new TH1F("fHistPtITSMIoneSPDInAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1052 fHistPtITSMIoneSPDInAccShared->Sumw2();
1053 fHistPtITSMIoneSPDInAccShared->SetMinimum(0);
1054 fOutput->Add(fHistPtITSMIoneSPDInAccShared);
1056 fHistPtITSMIoneSPDInAccSharedSPD = new TH1F("fHistPtITSMIoneSPDInAccSharedSPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1057 fHistPtITSMIoneSPDInAccSharedSPD->Sumw2();
1058 fHistPtITSMIoneSPDInAccSharedSPD->SetMinimum(0);
1059 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPD);
1061 fHistPtITSMISPD1InAccShared = new TH1F("fHistPtITSMISPD1InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1062 fHistPtITSMISPD1InAccShared->Sumw2();
1063 fHistPtITSMISPD1InAccShared->SetMinimum(0);
1064 fOutput->Add(fHistPtITSMISPD1InAccShared);
1066 fHistPtITSMISPD2InAccShared = new TH1F("fHistPtITSMISPD2InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1067 fHistPtITSMISPD2InAccShared->Sumw2();
1068 fHistPtITSMISPD2InAccShared->SetMinimum(0);
1069 fOutput->Add(fHistPtITSMISPD2InAccShared);
1071 fHistPtITSMIoneSPDInAccSharedFake = new TH1F("fHistPtITSMIoneSPDInAccSharedFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1072 fHistPtITSMIoneSPDInAccSharedFake->Sumw2();
1073 fHistPtITSMIoneSPDInAccSharedFake->SetMinimum(0);
1074 fOutput->Add(fHistPtITSMIoneSPDInAccSharedFake);
1076 fHistPtITSMIoneSPDInAccSharedSPDFake = new TH1F("fHistPtITSMIoneSPDInAccSharedSPDFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1077 fHistPtITSMIoneSPDInAccSharedSPDFake->Sumw2();
1078 fHistPtITSMIoneSPDInAccSharedSPDFake->SetMinimum(0);
1079 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPDFake);
1081 fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
1082 fHistPhiITSMI6InAcc->Sumw2();
1083 fHistPhiITSMI6InAcc->SetMinimum(0);
1084 fOutput->Add(fHistPhiITSMI6InAcc);
1086 fHistPhiITSMI5InAcc = new TH1F("fHistPhiITSMI5InAcc","phi distribution of ITSMI5 tracks; #phi; N tracks",100,0,2*3.1415);
1087 fHistPhiITSMI5InAcc->Sumw2();
1088 fHistPhiITSMI5InAcc->SetMinimum(0);
1089 fOutput->Add(fHistPhiITSMI5InAcc);
1091 fHistPhiITSMI4InAcc = new TH1F("fHistPhiITSMI4InAcc","phi distribution of ITSMI4 tracks; #phi; N tracks",100,0,2*3.1415);
1092 fHistPhiITSMI4InAcc->Sumw2();
1093 fHistPhiITSMI4InAcc->SetMinimum(0);
1094 fOutput->Add(fHistPhiITSMI4InAcc);
1096 fHistPhiITSMI3InAcc = new TH1F("fHistPhiITSMI3InAcc","phi distribution of ITSMI3 tracks; #phi; N tracks",100,0,2*3.1415);
1097 fHistPhiITSMI3InAcc->Sumw2();
1098 fHistPhiITSMI3InAcc->SetMinimum(0);
1099 fOutput->Add(fHistPhiITSMI3InAcc);
1101 fHistPhiITSMI2InAcc = new TH1F("fHistPhiITSMI2InAcc","phi distribution of ITSMI2 tracks; #phi; N tracks",100,0,2*3.1415);
1102 fHistPhiITSMI2InAcc->Sumw2();
1103 fHistPhiITSMI2InAcc->SetMinimum(0);
1104 fOutput->Add(fHistPhiITSMI2InAcc);
1106 fHistPhiITSMISPDInAcc = new TH1F("fHistPhiITSMISPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1107 fHistPhiITSMISPDInAcc->Sumw2();
1108 fHistPhiITSMISPDInAcc->SetMinimum(0);
1109 fOutput->Add(fHistPhiITSMISPDInAcc);
1111 fHistPhiITSMIoneSPDInAcc = new TH1F("fHistPhiITSMIoneSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1112 fHistPhiITSMIoneSPDInAcc->Sumw2();
1113 fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
1114 fOutput->Add(fHistPhiITSMIoneSPDInAcc);
1116 fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
1117 fHistEtaITSMI6InAcc->Sumw2();
1118 fHistEtaITSMI6InAcc->SetMinimum(0);
1119 fOutput->Add(fHistEtaITSMI6InAcc);
1121 fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
1122 fHistEtaITSMI5InAcc->Sumw2();
1123 fHistEtaITSMI5InAcc->SetMinimum(0);
1124 fOutput->Add(fHistEtaITSMI5InAcc);
1126 fHistEtaITSMI4InAcc = new TH1F("fHistEtaITSMI4InAcc","eta distribution of ITSMI4 tracks; #eta; N tracks",100,-1.5,+1.5);
1127 fHistEtaITSMI4InAcc->Sumw2();
1128 fHistEtaITSMI4InAcc->SetMinimum(0);
1129 fOutput->Add(fHistEtaITSMI4InAcc);
1131 fHistEtaITSMI3InAcc = new TH1F("fHistEtaITSMI3InAcc","eta distribution of ITSMI3 tracks; #eta; N tracks",100,-1.5,+1.5);
1132 fHistEtaITSMI3InAcc->Sumw2();
1133 fHistEtaITSMI3InAcc->SetMinimum(0);
1134 fOutput->Add(fHistEtaITSMI3InAcc);
1136 fHistEtaITSMI2InAcc = new TH1F("fHistEtaITSMI2InAcc","eta distribution of ITSMI2 tracks; #eta; N tracks",100,-1.5,+1.5);
1137 fHistEtaITSMI2InAcc->Sumw2();
1138 fHistEtaITSMI2InAcc->SetMinimum(0);
1139 fOutput->Add(fHistEtaITSMI2InAcc);
1141 fHistEtaITSMISPDInAcc = new TH1F("fHistEtaITSMISPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1142 fHistEtaITSMISPDInAcc->Sumw2();
1143 fHistEtaITSMISPDInAcc->SetMinimum(0);
1144 fOutput->Add(fHistEtaITSMISPDInAcc);
1146 fHistEtaITSMIoneSPDInAcc = new TH1F("fHistEtaITSMIoneSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1147 fHistEtaITSMIoneSPDInAcc->Sumw2();
1148 fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
1149 fOutput->Add(fHistEtaITSMIoneSPDInAcc);
1152 fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1153 fHistPtITSMI6InAccFake->Sumw2();
1154 fHistPtITSMI6InAccFake->SetMinimum(0);
1155 fOutput->Add(fHistPtITSMI6InAccFake);
1157 fHistPtITSMI5InAccFake = new TH1F("fHistPtITSMI5InAccFake","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1158 fHistPtITSMI5InAccFake->Sumw2();
1159 fHistPtITSMI5InAccFake->SetMinimum(0);
1160 fOutput->Add(fHistPtITSMI5InAccFake);
1162 fHistPtITSMI4InAccFake = new TH1F("fHistPtITSMI4InAccFake","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1163 fHistPtITSMI4InAccFake->Sumw2();
1164 fHistPtITSMI4InAccFake->SetMinimum(0);
1165 fOutput->Add(fHistPtITSMI4InAccFake);
1167 fHistPtITSMI3InAccFake = new TH1F("fHistPtITSMI3InAccFake","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1168 fHistPtITSMI3InAccFake->Sumw2();
1169 fHistPtITSMI3InAccFake->SetMinimum(0);
1170 fOutput->Add(fHistPtITSMI3InAccFake);
1172 fHistPtITSMI2InAccFake = new TH1F("fHistPtITSMI2InAccFake","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1173 fHistPtITSMI2InAccFake->Sumw2();
1174 fHistPtITSMI2InAccFake->SetMinimum(0);
1175 fOutput->Add(fHistPtITSMI2InAccFake);
1177 fHistPtITSMISPDInAccFake = new TH1F("fHistPtITSMISPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1178 fHistPtITSMISPDInAccFake->Sumw2();
1179 fHistPtITSMISPDInAccFake->SetMinimum(0);
1180 fOutput->Add(fHistPtITSMISPDInAccFake);
1182 fHistPtITSMIoneSPDInAccFake = new TH1F("fHistPtITSMIoneSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1183 fHistPtITSMIoneSPDInAccFake->Sumw2();
1184 fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
1185 fOutput->Add(fHistPtITSMIoneSPDInAccFake);
1187 fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1188 fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
1189 fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
1190 fOutput->Add(fHistPtITSMIoneSPDthreeSDDSSDInAcc);
1192 fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1193 fHistPtITSTPCsel->Sumw2();
1194 fHistPtITSTPCsel->SetMinimum(0);
1195 fOutput->Add(fHistPtITSTPCsel);
1197 fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1198 fHistPtITSTPCselP->Sumw2();
1199 fHistPtITSTPCselP->SetMinimum(0);
1200 fOutput->Add(fHistPtITSTPCselP);
1202 fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1203 fHistPtITSTPCselS->Sumw2();
1204 fHistPtITSTPCselS->SetMinimum(0);
1205 fOutput->Add(fHistPtITSTPCselS);
1207 fHistPtITSTPCselFake = new TH1F("fHistPtITSTPCselFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1208 fHistPtITSTPCselFake->Sumw2();
1209 fHistPtITSTPCselFake->SetMinimum(0);
1210 fOutput->Add(fHistPtITSTPCselFake);
1212 fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1213 fHistPtITSTPCselSfromStrange->Sumw2();
1214 fHistPtITSTPCselSfromStrange->SetMinimum(0);
1215 fOutput->Add(fHistPtITSTPCselSfromStrange);
1217 fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1218 fHistPtITSTPCselPfromStrange->Sumw2();
1219 fHistPtITSTPCselPfromStrange->SetMinimum(0);
1220 fOutput->Add(fHistPtITSTPCselPfromStrange);
1222 fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1223 fHistPtITSTPCselSfromMat->Sumw2();
1224 fHistPtITSTPCselSfromMat->SetMinimum(0);
1225 fOutput->Add(fHistPtITSTPCselSfromMat);
1227 fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1228 fHistPtTPCInAccP->Sumw2();
1229 fHistPtTPCInAccP->SetMinimum(0);
1230 fOutput->Add(fHistPtTPCInAccP);
1232 fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1233 fHistPtTPCInAccPfromStrange->Sumw2();
1234 fHistPtTPCInAccPfromStrange->SetMinimum(0);
1235 fOutput->Add(fHistPtTPCInAccPfromStrange);
1237 fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1238 fHistPtITSMI6InAccP->Sumw2();
1239 fHistPtITSMI6InAccP->SetMinimum(0);
1240 fOutput->Add(fHistPtITSMI6InAccP);
1242 fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1243 fHistPtITSMI5InAccP->Sumw2();
1244 fHistPtITSMI5InAccP->SetMinimum(0);
1245 fOutput->Add(fHistPtITSMI5InAccP);
1247 fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1248 fHistPtITSMI4InAccP->Sumw2();
1249 fHistPtITSMI4InAccP->SetMinimum(0);
1250 fOutput->Add(fHistPtITSMI4InAccP);
1252 fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1253 fHistPtITSMI3InAccP->Sumw2();
1254 fHistPtITSMI3InAccP->SetMinimum(0);
1255 fOutput->Add(fHistPtITSMI3InAccP);
1257 fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1258 fHistPtITSMI2InAccP->Sumw2();
1259 fHistPtITSMI2InAccP->SetMinimum(0);
1260 fOutput->Add(fHistPtITSMI2InAccP);
1262 fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1263 fHistPtITSMISPDInAccP->Sumw2();
1264 fHistPtITSMISPDInAccP->SetMinimum(0);
1265 fOutput->Add(fHistPtITSMISPDInAccP);
1267 fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1268 fHistPtITSMIoneSPDInAccP->Sumw2();
1269 fHistPtITSMIoneSPDInAccP->SetMinimum(0);
1270 fOutput->Add(fHistPtITSMIoneSPDInAccP);
1272 fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1273 fHistPtTPCInAccS->Sumw2();
1274 fHistPtTPCInAccS->SetMinimum(0);
1275 fOutput->Add(fHistPtTPCInAccS);
1277 fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1278 fHistPtTPCInAccSfromStrange->Sumw2();
1279 fHistPtTPCInAccSfromStrange->SetMinimum(0);
1280 fOutput->Add(fHistPtTPCInAccSfromStrange);
1282 fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1283 fHistPtTPCInAccSfromMat->Sumw2();
1284 fHistPtTPCInAccSfromMat->SetMinimum(0);
1285 fOutput->Add(fHistPtTPCInAccSfromMat);
1287 fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1288 fHistPtITSMI6InAccS->Sumw2();
1289 fHistPtITSMI6InAccS->SetMinimum(0);
1290 fOutput->Add(fHistPtITSMI6InAccS);
1292 fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1293 fHistPtITSMI5InAccS->Sumw2();
1294 fHistPtITSMI5InAccS->SetMinimum(0);
1295 fOutput->Add(fHistPtITSMI5InAccS);
1297 fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1298 fHistPtITSMI4InAccS->Sumw2();
1299 fHistPtITSMI4InAccS->SetMinimum(0);
1300 fOutput->Add(fHistPtITSMI4InAccS);
1302 fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1303 fHistPtITSMI3InAccS->Sumw2();
1304 fHistPtITSMI3InAccS->SetMinimum(0);
1305 fOutput->Add(fHistPtITSMI3InAccS);
1307 fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1308 fHistPtITSMI2InAccS->Sumw2();
1309 fHistPtITSMI2InAccS->SetMinimum(0);
1310 fOutput->Add(fHistPtITSMI2InAccS);
1312 fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1313 fHistPtITSMISPDInAccS->Sumw2();
1314 fHistPtITSMISPDInAccS->SetMinimum(0);
1315 fOutput->Add(fHistPtITSMISPDInAccS);
1317 fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1318 fHistPtITSMIoneSPDInAccS->Sumw2();
1319 fHistPtITSMIoneSPDInAccS->SetMinimum(0);
1320 fOutput->Add(fHistPtITSMIoneSPDInAccS);
1322 fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1323 fHistPtITSMIokbadoutinz6->Sumw2();
1324 fHistPtITSMIokbadoutinz6->SetMinimum(0);
1325 fOutput->Add(fHistPtITSMIokbadoutinz6);
1327 fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1328 fHistPtITSMIokbadoutinz4InAcc->Sumw2();
1329 fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0);
1330 fOutput->Add(fHistPtITSMIokbadoutinz4InAcc);
1332 fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1333 fHistPtITSMIokbadoutinz5InAcc->Sumw2();
1334 fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0);
1335 fOutput->Add(fHistPtITSMIokbadoutinz5InAcc);
1337 fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1338 fHistPtITSMIokbadoutinz6InAcc->Sumw2();
1339 fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0);
1340 fOutput->Add(fHistPtITSMIokbadoutinz6InAcc);
1342 fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10);
1343 fHistRProdVtxInAccP->Sumw2();
1344 fHistRProdVtxInAccP->SetMinimum(0);
1345 fOutput->Add(fHistRProdVtxInAccP);
1347 fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10);
1348 fHistRProdVtxInAccS->Sumw2();
1349 fHistRProdVtxInAccS->SetMinimum(0);
1350 fOutput->Add(fHistRProdVtxInAccS);
1352 fHistd0rphiTPCInAccA = new TH1F("fHistd0rphiTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1353 fHistd0rphiTPCInAccA->Sumw2();
1354 fHistd0rphiTPCInAccA->SetMinimum(0);
1355 fOutput->Add(fHistd0rphiTPCInAccA);
1357 fHistd0rphiTPCInAccB = new TH1F("fHistd0rphiTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1358 fHistd0rphiTPCInAccB->Sumw2();
1359 fHistd0rphiTPCInAccB->SetMinimum(0);
1360 fOutput->Add(fHistd0rphiTPCInAccB);
1362 fHistd0zTPCInAccA = new TH1F("fHistd0zTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1363 fHistd0zTPCInAccA->Sumw2();
1364 fHistd0zTPCInAccA->SetMinimum(0);
1365 fOutput->Add(fHistd0zTPCInAccA);
1367 fHistd0zTPCInAccB = new TH1F("fHistd0zTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1368 fHistd0zTPCInAccB->Sumw2();
1369 fHistd0zTPCInAccB->SetMinimum(0);
1370 fOutput->Add(fHistd0zTPCInAccB);
1372 fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1373 fHistd0rphiTPCInAccP150200->Sumw2();
1374 fHistd0rphiTPCInAccP150200->SetMinimum(0);
1375 fOutput->Add(fHistd0rphiTPCInAccP150200);
1377 fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1378 fHistd0rphiTPCInAccP500700->Sumw2();
1379 fHistd0rphiTPCInAccP500700->SetMinimum(0);
1380 fOutput->Add(fHistd0rphiTPCInAccP500700);
1382 fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1383 fHistd0rphiTPCInAccP10001500->Sumw2();
1384 fHistd0rphiTPCInAccP10001500->SetMinimum(0);
1385 fOutput->Add(fHistd0rphiTPCInAccP10001500);
1387 fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1388 fHistd0rphiTPCInAccS150200->Sumw2();
1389 fHistd0rphiTPCInAccS150200->SetMinimum(0);
1390 fOutput->Add(fHistd0rphiTPCInAccS150200);
1392 fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1393 fHistd0rphiTPCInAccS500700->Sumw2();
1394 fHistd0rphiTPCInAccS500700->SetMinimum(0);
1395 fOutput->Add(fHistd0rphiTPCInAccS500700);
1397 fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1398 fHistd0rphiTPCInAccS10001500->Sumw2();
1399 fHistd0rphiTPCInAccS10001500->SetMinimum(0);
1400 fOutput->Add(fHistd0rphiTPCInAccS10001500);
1402 fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1403 fHistd0rphiITSMISPDInAccP150200->Sumw2();
1404 fHistd0rphiITSMISPDInAccP150200->SetMinimum(0);
1405 fOutput->Add(fHistd0rphiITSMISPDInAccP150200);
1407 fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1408 fHistd0rphiITSMISPDInAccP500700->Sumw2();
1409 fHistd0rphiITSMISPDInAccP500700->SetMinimum(0);
1410 fOutput->Add(fHistd0rphiITSMISPDInAccP500700);
1412 fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1413 fHistd0rphiITSMISPDInAccP10001500->Sumw2();
1414 fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0);
1415 fOutput->Add(fHistd0rphiITSMISPDInAccP10001500);
1417 fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1418 fHistd0rphiITSMISPDInAccS150200->Sumw2();
1419 fHistd0rphiITSMISPDInAccS150200->SetMinimum(0);
1420 fOutput->Add(fHistd0rphiITSMISPDInAccS150200);
1422 fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1423 fHistd0rphiITSMISPDInAccS500700->Sumw2();
1424 fHistd0rphiITSMISPDInAccS500700->SetMinimum(0);
1425 fOutput->Add(fHistd0rphiITSMISPDInAccS500700);
1427 fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1428 fHistd0rphiITSMISPDInAccS10001500->Sumw2();
1429 fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0);
1430 fOutput->Add(fHistd0rphiITSMISPDInAccS10001500);
1432 fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1433 fHistd0rphiITSMIoneSPDInAccP150200->Sumw2();
1434 fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0);
1435 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200);
1437 fHistd0rphiITSMIoneSPDInAccP350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccP350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1438 fHistd0rphiITSMIoneSPDInAccP350450->Sumw2();
1439 fHistd0rphiITSMIoneSPDInAccP350450->SetMinimum(0);
1440 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP350450);
1442 fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1443 fHistd0rphiITSMIoneSPDInAccP500700->Sumw2();
1444 fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0);
1445 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700);
1447 fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1448 fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2();
1449 fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0);
1450 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500);
1452 fHistd0rphiITSMIoneSPDInAccP25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1453 fHistd0rphiITSMIoneSPDInAccP25004000->Sumw2();
1454 fHistd0rphiITSMIoneSPDInAccP25004000->SetMinimum(0);
1455 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP25004000);
1457 fHistd0rphiITSMIoneSPDInAccP40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1458 fHistd0rphiITSMIoneSPDInAccP40008000->Sumw2();
1459 fHistd0rphiITSMIoneSPDInAccP40008000->SetMinimum(0);
1460 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP40008000);
1462 fHistd0rphiITSMIoneSPDInAccA = new TH1F("fHistd0rphiITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1463 fHistd0rphiITSMIoneSPDInAccA->Sumw2();
1464 fHistd0rphiITSMIoneSPDInAccA->SetMinimum(0);
1465 fOutput->Add(fHistd0rphiITSMIoneSPDInAccA);
1467 fHistd0rphiITSMIoneSPDInAccB = new TH1F("fHistd0rphiITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1468 fHistd0rphiITSMIoneSPDInAccB->Sumw2();
1469 fHistd0rphiITSMIoneSPDInAccB->SetMinimum(0);
1470 fOutput->Add(fHistd0rphiITSMIoneSPDInAccB);
1472 fHistd0zITSMIoneSPDInAccA = new TH1F("fHistd0zITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1473 fHistd0zITSMIoneSPDInAccA->Sumw2();
1474 fHistd0zITSMIoneSPDInAccA->SetMinimum(0);
1475 fOutput->Add(fHistd0zITSMIoneSPDInAccA);
1477 fHistd0zITSMIoneSPDInAccB = new TH1F("fHistd0zITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1478 fHistd0zITSMIoneSPDInAccB->Sumw2();
1479 fHistd0zITSMIoneSPDInAccB->SetMinimum(0);
1480 fOutput->Add(fHistd0zITSMIoneSPDInAccB);
1482 fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1483 fHistd0zITSMIoneSPDInAccP150200->Sumw2();
1484 fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0);
1485 fOutput->Add(fHistd0zITSMIoneSPDInAccP150200);
1487 fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1488 fHistd0zITSMIoneSPDInAccP500700->Sumw2();
1489 fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0);
1490 fOutput->Add(fHistd0zITSMIoneSPDInAccP500700);
1492 fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1493 fHistd0zITSMIoneSPDInAccP10001500->Sumw2();
1494 fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0);
1495 fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500);
1497 fHistd0zVSetaTPCInAccP10001500 = new TH2F("fHistd0zVSetaTPCInAccP10001500","Long. imp. par. to VertexSPD for TPC tracks; d_{0} z [cm]; eta",100,-4,4,10,-1,1);
1498 fOutput->Add(fHistd0zVSetaTPCInAccP10001500);
1500 fHistd0rphiVSphiITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; phi",30,-0.3,0.3,40,0,2*3.1415);
1501 fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500);
1503 fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1);
1504 fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500);
1506 fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1507 fHistd0rphiITSMIoneSPDInAccS150200->Sumw2();
1508 fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0);
1509 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200);
1511 fHistd0rphiITSMIoneSPDInAccS350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1512 fHistd0rphiITSMIoneSPDInAccS350450->Sumw2();
1513 fHistd0rphiITSMIoneSPDInAccS350450->SetMinimum(0);
1514 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450);
1516 fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1517 fHistd0rphiITSMIoneSPDInAccS500700->Sumw2();
1518 fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0);
1519 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700);
1521 fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1522 fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2();
1523 fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0);
1524 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22);
1526 fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1527 fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2();
1528 fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0);
1529 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211);
1531 fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1532 fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2();
1533 fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0);
1534 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310);
1536 fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1537 fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2();
1538 fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0);
1539 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321);
1541 fHistd0rphiITSMIoneSPDInAccS500700from3122 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from3122","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1542 fHistd0rphiITSMIoneSPDInAccS500700from3122->Sumw2();
1543 fHistd0rphiITSMIoneSPDInAccS500700from3122->SetMinimum(0);
1544 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from3122);
1546 fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1547 fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2();
1548 fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0);
1549 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500);
1551 fHistd0rphiITSMIoneSPDInAccS25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1552 fHistd0rphiITSMIoneSPDInAccS25004000->Sumw2();
1553 fHistd0rphiITSMIoneSPDInAccS25004000->SetMinimum(0);
1554 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000);
1556 fHistd0rphiITSMIoneSPDInAccS40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1557 fHistd0rphiITSMIoneSPDInAccS40008000->Sumw2();
1558 fHistd0rphiITSMIoneSPDInAccS40008000->SetMinimum(0);
1559 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000);
1561 fHistd0rphiITSMIoneSPDInAccS150200fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1562 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Sumw2();
1563 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->SetMinimum(0);
1564 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromStrange);
1566 fHistd0rphiITSMIoneSPDInAccS150200fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1567 fHistd0rphiITSMIoneSPDInAccS150200fromMat->Sumw2();
1568 fHistd0rphiITSMIoneSPDInAccS150200fromMat->SetMinimum(0);
1569 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromMat);
1571 fHistd0rphiITSMIoneSPDInAccS350450fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1572 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Sumw2();
1573 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->SetMinimum(0);
1574 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromStrange);
1576 fHistd0rphiITSMIoneSPDInAccS350450fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1577 fHistd0rphiITSMIoneSPDInAccS350450fromMat->Sumw2();
1578 fHistd0rphiITSMIoneSPDInAccS350450fromMat->SetMinimum(0);
1579 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromMat);
1581 fHistd0rphiITSMIoneSPDInAccS500700fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1582 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Sumw2();
1583 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->SetMinimum(0);
1584 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromStrange);
1586 fHistd0rphiITSMIoneSPDInAccS500700fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1587 fHistd0rphiITSMIoneSPDInAccS500700fromMat->Sumw2();
1588 fHistd0rphiITSMIoneSPDInAccS500700fromMat->SetMinimum(0);
1589 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromMat);
1591 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1592 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Sumw2();
1593 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->SetMinimum(0);
1594 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromStrange);
1596 fHistd0rphiITSMIoneSPDInAccS10001500fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1597 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Sumw2();
1598 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->SetMinimum(0);
1599 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromMat);
1601 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1602 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Sumw2();
1603 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->SetMinimum(0);
1604 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromStrange);
1606 fHistd0rphiITSMIoneSPDInAccS25004000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1607 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Sumw2();
1608 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->SetMinimum(0);
1609 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromMat);
1611 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1612 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Sumw2();
1613 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->SetMinimum(0);
1614 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromStrange);
1616 fHistd0rphiITSMIoneSPDInAccS40008000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1617 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Sumw2();
1618 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->SetMinimum(0);
1619 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromMat);
1622 fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1623 fHistd0zITSMIoneSPDInAccS150200->Sumw2();
1624 fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0);
1625 fOutput->Add(fHistd0zITSMIoneSPDInAccS150200);
1627 fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1628 fHistd0zITSMIoneSPDInAccS500700->Sumw2();
1629 fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0);
1630 fOutput->Add(fHistd0zITSMIoneSPDInAccS500700);
1632 fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1633 fHistd0zITSMIoneSPDInAccS10001500->Sumw2();
1634 fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0);
1635 fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500);
1637 fHistITSRedChi2NonFakePt02 = new TH1F("fHistITSRedChi2NonFakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1638 fOutput->Add(fHistITSRedChi2NonFakePt02);
1639 fHistITSRedChi2FakePt02 = new TH1F("fHistITSRedChi2FakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1640 fOutput->Add(fHistITSRedChi2FakePt02);
1641 fHistITSRedChi2NonFakePt05 = new TH1F("fHistITSRedChi2NonFakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1642 fOutput->Add(fHistITSRedChi2NonFakePt05);
1643 fHistITSRedChi2FakePt05 = new TH1F("fHistITSRedChi2FakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1644 fOutput->Add(fHistITSRedChi2FakePt05);
1645 fHistITSRedChi2NonFakePt1 = new TH1F("fHistITSRedChi2NonFakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1646 fOutput->Add(fHistITSRedChi2NonFakePt1);
1647 fHistITSRedChi2FakePt1 = new TH1F("fHistITSRedChi2FakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1648 fOutput->Add(fHistITSRedChi2FakePt1);
1653 fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:pdgMCMoth:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel");
1654 fOutput->Add(fNtupleESDTracks);
1656 fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt");
1657 fOutput->Add(fNtupleITSAlignExtra);
1659 fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt");
1660 fOutput->Add(fNtupleITSAlignSPDTracklets);
1665 //________________________________________________________________________
1666 void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
1669 // Called for each event
1671 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1674 Printf("ERROR: fESD not available");
1678 //if(fESD->GetEventNumberInFile()<7) return;
1680 // only events in the requested multiplicity range
1681 if(!IsSelectedCentrality()) return;
1683 fHistNEvents->Fill(-1);
1686 Bool_t isSelected = kTRUE;
1688 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1690 if(!isSelected) return;
1693 //if(fESD->GetEventType()!=7) return;
1695 // *********** MC info ***************
1696 TArrayF mcVertex(3);
1697 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
1698 Float_t dNchdy=-999.;
1701 AliESDVertex *vertexMC=0;
1704 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1705 if (!eventHandler) {
1706 Printf("ERROR: Could not retrieve MC event handler");
1710 AliMCEvent* mcEvent = eventHandler->MCEvent();
1712 Printf("ERROR: Could not retrieve MC event");
1716 stack = mcEvent->Stack();
1718 AliDebug(AliLog::kError, "Stack not available");
1722 AliHeader* header = mcEvent->Header();
1724 AliDebug(AliLog::kError, "Header not available");
1727 AliGenEventHeader* genHeader = header->GenEventHeader();
1728 genHeader->PrimaryVertex(mcVertex);
1729 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
1731 Int_t ngenpart = (Int_t)stack->GetNtrack();
1732 //printf("# generated particles = %d\n",ngenpart);
1734 for(Int_t ip=0; ip<ngenpart; ip++) {
1735 part = (TParticle*)stack->Particle(ip);
1736 // keep only electrons, muons, pions, kaons and protons
1737 Int_t apdg = TMath::Abs(part->GetPdgCode());
1738 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
1739 // reject secondaries
1740 //if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))<.01) printf("%f\n",TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1])));
1741 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
1742 // reject incoming protons
1743 Double_t energy = part->Energy();
1744 if(energy>900.) continue;
1745 Double_t pz = part->Pz();
1746 Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
1747 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
1749 //printf("# primary particles = %7.1f\n",dNchdy);
1751 // *********** MC info ***************
1752 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
1753 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
1757 //------- event selection --------
1758 Int_t mincontrSPDvtx=1;
1759 Double_t maxzSPDvtx=5.;
1760 Double_t maxrSPDvtx=0.5;
1761 Bool_t useTRKvtx=kTRUE;
1762 Bool_t useSPDvtxifNotTRK=kTRUE;
1763 Int_t mincontrTRKvtx=1;
1764 //Double_t maxzTRKvtx=20.;
1765 //Double_t maxrTRKvtx=1.;
1766 //------- TPC track selection --------
1768 Double_t maxchi2perTPCcl=4.;
1769 Double_t minEtaInAcc=-0.8; // -0.8
1770 Double_t maxEtaInAcc=0.8; // 0.8
1771 Double_t maxdcaxy=2.4;//2.4;
1772 Double_t maxdcaz=3.2;//3.2;
1773 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
1774 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
1775 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
1776 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
1777 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
1778 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
1779 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
1780 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
1781 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1782 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1783 SetESDtrackCutsTPC(esdtrackCutsTPC);
1784 //------- ITS+TPC track selection --------
1785 Double_t maxdcaxyITSTPC=0.2;
1786 Double_t maxdcazITSTPC=1.e6;
1787 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
1788 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1789 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
1790 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
1791 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
1792 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
1793 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1794 AliESDtrackCuts::kAny);
1795 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
1796 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
1797 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1798 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1799 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
1800 //---------------------------------------
1806 // ********** Trigger *****************
1807 ULong64_t triggerMask;
1808 ULong64_t spdFO = (1 << 14);
1809 ULong64_t v0left = (1 << 11);
1810 ULong64_t v0right = (1 << 12);
1812 triggerMask=fESD->GetTriggerMask();
1813 // MB1: SPDFO || V0L || V0R
1814 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
1816 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
1817 // ************ Trigger ******************
1818 if(!eventTriggered) return;
1822 fHistNEvents->Fill(0);
1825 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
1826 // Select good SPD vertices
1827 TString spdvtitle=spdv->GetTitle();
1828 //if(!spdvtitle.Contains("3D")) return;
1829 if(spdv->GetNContributors()<mincontrSPDvtx ||
1830 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
1831 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
1832 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
1833 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
1838 if(fRejPileupSPD) if(fESD->IsPileupFromSPD()) return;
1842 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
1843 //vertexESD->Print();
1845 if(spdvtitle.Contains("3D")) {
1846 fHistNEvents->Fill(1);
1847 fHistNEvents->Fill(3);
1849 fHistNEvents->Fill(2);
1850 fHistNEvents->Fill(3);
1853 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
1856 Int_t ntracks = fESD->GetNumberOfTracks();
1857 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
1859 fHistNtracks->Fill(ntracks);
1860 // Post the data already here
1861 PostData(1, fOutput);
1863 FillNClustersModuleMap();
1865 Int_t idet,status; Float_t xloc,zloc;
1866 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
1867 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
1870 for(Int_t itr=0; itr<ntracks; itr++) {
1871 AliESDtrack *track = fESD->GetTrack(itr);
1872 //if(track->Charge()>0) continue;
1873 // remove kink daughters
1874 if(track->GetKinkIndex(0)>0) continue;
1876 // remove tracks not reco in ITS or TPC
1877 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
1878 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
1880 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
1881 Double_t rProdVtx=0,zProdVtx=0;
1882 Int_t pdgTrk=0,pdgMoth=0;
1885 Int_t trkLabel = TMath::Abs(track->GetLabel());
1886 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
1887 Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
1888 for(Int_t i=0;i<6;i++) {
1889 if(track->HasSharedPointOnITSLayer(i)) {
1891 if(i<2) hasSharedSPD=kTRUE;
1895 // check if it is primary
1896 if(fReadMC && stack) {
1897 isPrimary = stack->IsPhysicalPrimary(trkLabel);
1898 part = (TParticle*)stack->Particle(trkLabel);
1899 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
1900 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
1901 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
1902 pdgTrk = TMath::Abs(part->GetPdgCode());
1903 if(part->GetFirstMother()>=0) {
1904 TParticle* mm=stack->Particle(part->GetFirstMother());
1905 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
1907 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
1908 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
1909 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
1912 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
1913 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
1914 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
1915 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
1919 // remove tracks with kTPCin and not kTPCrefit
1920 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
1922 AliESDtrack *trackTPC = 0;
1923 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
1924 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
1927 Int_t nclsITS = track->GetNcls(0);
1928 Int_t nclsSDDSSD = 0;
1929 Int_t nclsokbadoutinzITS = 0;
1930 Bool_t outInZ=kFALSE;
1931 Bool_t skipTrack=kFALSE;
1932 Bool_t fillA=kFALSE;
1933 Bool_t fillB=kFALSE;
1935 for(Int_t layer=0; layer<6; layer++) {
1936 if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
1937 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
1938 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
1939 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
1940 if(status<0) continue;
1941 if(layer>=2) idet+=240; // add n SPD modules
1942 if(layer>=4) idet+=260; // add n SDD modules
1943 if(status==4) outInZ=kTRUE;
1945 if(layer==1 && tpcrefit && itsrefit) {
1947 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
1949 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
1950 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
1951 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
1952 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
1954 if(status==2 || status==5) {
1955 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
1956 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
1957 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
1958 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
1961 // kill SDD clusters in MC
1962 if(fReadMC && (layer==2 || layer==3)) {
1963 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
1964 Double_t conv=3.34/5.43;
1965 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
1966 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
1969 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
1970 if(track->Pt()>0.7 && track->Pt()<2.0) {
1972 fHistClusterMapITSMIok->Fill(layer);
1973 if(fillA) fHistClusterMapITSMIokA->Fill(layer);
1974 if(fillB) fHistClusterMapITSMIokB->Fill(layer);
1976 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
1977 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
1978 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
1979 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
1980 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
1981 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
1982 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
1983 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
1985 if((idet>=0 && idet<=11) || (idet>=36 && idet<=47)) fillA=kTRUE;
1986 if((idet>=28 && idet<=35) || (idet>=62 && idet<=71)) fillB=kTRUE;
1989 if(status==1 || status==2 || status==4) {
1990 fHistClusterMapITSMIokoutinzbad->Fill(layer);
1991 nclsokbadoutinzITS++;
1993 /*if(idet>=80 && idet<120) {
1995 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
1996 printf("det %d status %d phi %f z %f zloc %f xloc %f\n",idet,status,TMath::ATan2(xyz[1],xyz[0]),xyz[2],zloc,xloc);
1998 if((layer==2 || layer==3) && status!=2 && status!=4) {
2000 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
2001 fHistxlocSDDall->Fill(xloc);
2002 fHistzlocSDDall->Fill(zloc);
2003 if(status==1 /*nClsInMod>0*/) {
2004 fHistxlocSDDok->Fill(xloc);
2005 fHistxlocVSmodSDDok->Fill(idet,xloc);
2006 fHistzlocSDDok->Fill(zloc);
2007 if(fillA) fHistxlocSDDA->Fill(xloc);
2008 if(fillA) fHistzlocSDDA->Fill(zloc);
2009 if(fillB) fHistxlocSDDB->Fill(xloc);
2010 if(fillB) fHistzlocSDDB->Fill(zloc);
2015 if(track->Phi()>1.5 && track->Phi()<1.7) { // ADDED
2016 if(status==1) fHistClusterMapITSSAok->Fill(layer);
2017 if(status==2) fHistClusterMapITSSAbad->Fill(layer);
2018 if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
2019 if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
2020 if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
2021 if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
2022 if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
2023 if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
2024 if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
2025 if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
2026 if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
2027 if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
2028 if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
2029 if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
2032 if(TESTBIT(track->GetITSClusterMap(),layer)) {
2034 fHistClusterMapITSMI->Fill(layer);
2036 fHistClusterMapITSSA->Fill(layer);
2037 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
2041 // SKIP SDD MODULES LOW EFF
2112 // SKIP SDD MODULES LOW EFF
2115 if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
2117 // TPC track findable in ITS
2118 if(tpcrefit && trackTPC) {
2119 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
2121 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
2122 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
2123 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
2124 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
2125 fHistPtTPC->Fill(track->Pt());
2126 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
2127 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
2128 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
2129 itsfindableAcc=kTRUE;
2130 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
2131 fHistPtTPCInAcc->Fill(track->Pt());
2132 fHistTPCclsVSPtTPCInAcc->Fill(trackTPC->Pt(),trackTPC->GetNcls(1));
2133 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
2134 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
2135 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
2136 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
2137 Double_t pTPCinnerwall[3];
2138 track->GetInnerPxPyPz(pTPCinnerwall);
2139 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
2140 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
2141 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
2143 fHistPhiTPCInAcc->Fill(track->Phi());
2144 fHistEtaTPCInAcc->Fill(track->Eta());
2147 fHistPtTPCInAccP->Fill(track->Pt());
2148 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
2150 fHistPtTPCInAccS->Fill(track->Pt());
2151 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
2152 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
2154 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
2155 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
2158 fHistEtaTPCInAccA->Fill(trackTPC->Eta());
2159 fHistNclsTPCInAccA->Fill(track->GetTPCNclsIter1());
2160 fHistChi2PerClsTPCInAccA->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2163 fHistEtaTPCInAccB->Fill(trackTPC->Eta());
2164 fHistNclsTPCInAccB->Fill(track->GetTPCNclsIter1());
2165 fHistChi2PerClsTPCInAccB->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2167 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
2174 // we need the vertex to compute the impact parameters
2175 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
2176 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
2177 if(useSPDvtxifNotTRK) {
2178 vertexESD = fESD->GetPrimaryVertexSPD();
2180 delete trackTPC; trackTPC=0; continue;
2185 //if(hasSharedSPD) continue;
2186 //if(track->GetITSFakeFlag()) continue;
2188 // track prolonged in ITS with different conditions
2191 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
2192 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
2193 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
2194 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
2195 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
2196 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2197 fHistPtITSMISPD->Fill(track->Pt());
2198 fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
2200 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
2201 fHistPtITSMIoneSPD->Fill(track->Pt());
2202 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
2204 if(itsfindableAcc) {
2206 fHistPtITSMI6InAcc->Fill(track->Pt());
2208 fHistPhiITSMI6InAcc->Fill(track->Phi());
2209 fHistEtaITSMI6InAcc->Fill(track->Eta());
2211 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
2212 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
2215 fHistPtITSMI5InAcc->Fill(track->Pt());
2217 fHistPhiITSMI5InAcc->Fill(track->Phi());
2218 fHistEtaITSMI5InAcc->Fill(track->Eta());
2220 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
2221 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
2224 fHistPtITSMI4InAcc->Fill(track->Pt());
2226 fHistPhiITSMI4InAcc->Fill(track->Phi());
2227 fHistEtaITSMI4InAcc->Fill(track->Eta());
2229 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
2230 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
2233 fHistPtITSMI3InAcc->Fill(track->Pt());
2235 fHistPhiITSMI3InAcc->Fill(track->Phi());
2236 fHistEtaITSMI3InAcc->Fill(track->Eta());
2238 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
2239 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
2242 fHistPtITSMI2InAcc->Fill(track->Pt());
2244 fHistPhiITSMI2InAcc->Fill(track->Phi());
2245 fHistEtaITSMI2InAcc->Fill(track->Eta());
2247 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
2248 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
2250 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2251 fHistPtITSMISPDInAcc->Fill(track->Pt());
2253 fHistPhiITSMISPDInAcc->Fill(track->Phi());
2254 fHistEtaITSMISPDInAcc->Fill(track->Eta());
2256 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
2257 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
2259 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
2260 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
2262 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
2263 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
2265 if(track->HasSharedPointOnITSLayer(0) ||
2266 track->HasSharedPointOnITSLayer(1) ||
2267 track->HasSharedPointOnITSLayer(2) ||
2268 track->HasSharedPointOnITSLayer(3) ||
2269 track->HasSharedPointOnITSLayer(4) ||
2270 track->HasSharedPointOnITSLayer(5)) {
2271 fHistPtITSMIoneSPDInAccShared->Fill(track->Pt());
2272 if(isFake) fHistPtITSMIoneSPDInAccSharedFake->Fill(track->Pt());
2274 if(track->HasSharedPointOnITSLayer(0) || track->HasSharedPointOnITSLayer(1)) {
2275 fHistPtITSMIoneSPDInAccSharedSPD->Fill(track->Pt());
2276 if(isFake) fHistPtITSMIoneSPDInAccSharedSPDFake->Fill(track->Pt());
2278 if(track->HasSharedPointOnITSLayer(0)) fHistPtITSMISPD1InAccShared->Fill(track->Pt());
2279 if(track->HasSharedPointOnITSLayer(1)) fHistPtITSMISPD2InAccShared->Fill(track->Pt());
2281 Float_t chi2redITS = track->GetITSchi2()/track->GetNcls(0);
2282 if(fillA) fHistChi2PerClsITSInAccA->Fill(chi2redITS);
2283 if(fillB) fHistChi2PerClsITSInAccB->Fill(chi2redITS);
2285 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
2286 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2287 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2289 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2290 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2291 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2292 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2294 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2296 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2298 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2299 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2300 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
2301 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
2306 fHistNclsITSMI->Fill(nclsITS);
2308 fHistNclsITSSA->Fill(nclsITS);
2309 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2313 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2314 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2315 { delete trackTPC; trackTPC=0; continue; }
2317 // impact parameter to VertexTracks
2318 Float_t d0z0[2],covd0z0[3];
2319 Double_t d0z0TPC[2],covd0z0TPC[3];
2321 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2323 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
2324 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2326 track->GetImpactParameters(d0z0,covd0z0);
2327 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
2328 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2331 // track that passes final ITS+TPC cuts
2332 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2333 fHistPtITSTPCsel->Fill(track->Pt());
2334 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
2335 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2337 fHistPtITSTPCselP->Fill(track->Pt());
2338 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2340 fHistPtITSTPCselS->Fill(track->Pt());
2341 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2342 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2348 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
2349 if(fillA && itsfindableAcc) {
2350 fHistd0rphiTPCInAccA->Fill(d0z0TPC[0]);
2351 fHistd0zTPCInAccA->Fill(d0z0TPC[1]);
2352 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2353 fHistd0rphiITSMIoneSPDInAccA->Fill(d0z0[0]);
2354 fHistd0zITSMIoneSPDInAccA->Fill(d0z0[1]);
2357 if(fillB && itsfindableAcc) {
2358 fHistd0rphiTPCInAccB->Fill(d0z0TPC[0]);
2359 fHistd0zTPCInAccB->Fill(d0z0TPC[1]);
2360 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2361 fHistd0rphiITSMIoneSPDInAccB->Fill(d0z0[0]);
2362 fHistd0zITSMIoneSPDInAccB->Fill(d0z0[1]);
2365 if(track->Pt()>0.150 && track->Pt()<0.200) {
2367 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2368 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2369 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2370 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2371 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
2372 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2373 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2376 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2377 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2378 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2379 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2380 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2381 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2382 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2383 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2385 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2386 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2390 if(track->Pt()>0.350 && track->Pt()<0.450) {
2392 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2393 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2396 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2397 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2398 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2399 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2400 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2405 if(track->Pt()>0.500 && track->Pt()<0.700) {
2407 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2408 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2409 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2410 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2411 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2412 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2415 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2416 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2417 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2418 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2419 fHistPDGTrk->Fill(pdgTrk);
2420 fHistPDGMoth->Fill(pdgMoth);
2421 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
2422 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2423 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2424 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2425 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2427 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2428 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2429 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
2430 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
2431 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2432 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
2433 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
2437 if(track->Pt()>1.000 && track->Pt()<1.500) {
2439 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
2440 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2442 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2443 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2444 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2445 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2446 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2447 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2448 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2451 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2452 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2453 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2454 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2455 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2456 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2457 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2458 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2460 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2461 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2465 if(track->Pt()>2.500 && track->Pt()<4.000) {
2467 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2468 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2471 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2472 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2473 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2474 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2475 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2480 if(track->Pt()>4.000 && track->Pt()<8.000) {
2482 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2483 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2486 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2487 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2488 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2489 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2490 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2498 if(trackTPC) { delete trackTPC; trackTPC=0; }
2500 // encode ITS cluster map, including MC info
2501 Int_t iITSflag=MakeITSflag(track);
2503 // if MC info is available: get particle properties
2504 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2505 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2507 part = (TParticle*)stack->Particle(trkLabel);
2509 pdgMC=part->GetPdgCode();
2510 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2511 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2512 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
2515 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2516 if(!itsrefit) sigmad0MCv *= -1.;
2517 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2518 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
2520 // fill ntuple with track properties
2521 if(fFillNtuples && SelectPt(track->Pt())) {
2522 Float_t fillArray[22]={track->Pt(),track->Eta(),track->Phi(),d0z0[0],d0z0[1],TMath::Sqrt(covd0z0[0]),TMath::Sqrt(covd0z0[2]),ptMC,pdgMC,pdgMoth,d0MC,d0z0MCv[0],d0z0MCv[1],sigmad0MCv,TMath::Sqrt(covd0z0MCv[2]),(Float_t)iITSflag,isPrimaryFl,isTPCSelFl};
2523 fNtupleESDTracks->Fill(fillArray);
2526 //---------------------------------------------
2527 // AliTrackPoints: alignment checks
2529 if(!fFillNtuples) continue;
2531 const AliTrackPointArray *array = track->GetTrackPointArray();
2532 if(!array) continue;
2533 AliTrackPoint point;
2534 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2535 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2536 Bool_t extra=kFALSE;
2537 Int_t layerId,layerExtra=-1;
2538 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2539 array->GetPoint(point,ipt);
2540 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2544 } else if(r>6 && r<8) {
2546 } else if(r>8 && r<18) {
2548 } else if(r>18 && r<30) {
2550 } else if(r>30 && r<40) {
2552 } else if(r>40 && r<50) {
2559 if(layerId>5) continue;
2561 if(!point.IsExtra()) {
2562 pointOnLayer[layerId]++;
2563 indexAssociated[layerId]=ipt;
2565 // this is an extra cluster
2570 } // end loop on AliTrackPoints
2572 TString vtitle = spdv->GetTitle();
2573 if(!vtitle.Contains("3D")) continue;
2576 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2577 AliTrackPoint pointSPD1,pointSPD2;
2578 array->GetPoint(pointSPD1,indexAssociated[0]);
2579 array->GetPoint(pointSPD2,indexAssociated[1]);
2580 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2581 Float_t lambda=TMath::ATan((pointSPD2.GetZ()-pointSPD1.GetZ())/TMath::Sqrt((pointSPD2.GetX()-pointSPD1.GetX())*(pointSPD2.GetX()-pointSPD1.GetX())+(pointSPD2.GetY()-pointSPD1.GetY())*(pointSPD2.GetY()-pointSPD1.GetY())));
2582 Float_t theta=0.5*TMath::Pi()-lambda;
2583 TParticle particle(211,0,0,0,0,0,TMath::Cos(phi),TMath::Sin(phi),TMath::Tan(lambda),10.,pointSPD1.GetX(),pointSPD1.GetY(),pointSPD1.GetZ(),0);
2584 AliESDtrack tracklet(&particle);
2586 // distance to primary SPD (only if 3D and high multiplicity)
2587 if(spdv->GetNContributors()>10) {
2588 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2589 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
2590 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
2594 // distance to extra
2595 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
2596 AliTrackPoint pointExtra,pointAssociated;
2597 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2598 array->GetPoint(pointExtra,indexExtra);
2599 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2600 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2601 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2602 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2604 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2605 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2606 Float_t xlocExtra=-100.,zlocExtra=-100.;
2607 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
2610 if(trackTPC) { delete trackTPC; trackTPC=0; }
2611 } // end loop on tracks
2613 if(vertexMC) { delete vertexMC; vertexMC=0; }
2615 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2616 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2618 PostData(1, fOutput);
2623 //________________________________________________________________________
2624 void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2626 // Draw result to the screen
2627 // Called once at the end of the query
2628 fOutput = dynamic_cast<TList*> (GetOutputData(1));
2630 Printf("ERROR: fOutput not available");
2633 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2634 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2635 if(fHistNEvents && fHistNEventsFrac) {
2636 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2637 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2643 //---------------------------------------------------------------------------
2644 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
2647 // Return number of ITS clusters produced by MC particle with given label
2650 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2651 if(!esdHRP) return -1;
2652 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2653 if(!cTree) return -1;
2654 TClonesArray *clusters=0;
2655 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2656 if(!clusters) return -1;
2658 AliITSRecPoint *c=0;
2659 Int_t i,n,icl,lay,ilab;
2660 Int_t ncls[6]={0,0,0,0,0,0};
2663 for(i=0; i<nModules; i++) {
2665 n=clusters->GetEntriesFast();
2666 for (icl=0; icl<n; icl++) {
2667 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2669 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
2670 for(ilab=0;ilab<3;ilab++) {
2671 if(c->GetLabel(ilab)==label) ncls[lay]++;
2676 //printf("%d\n",ncls[i]);
2677 if(ncls[i]) nclstot++;
2682 //---------------------------------------------------------------------------
2683 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2686 // Return number of ITS clusters produced by MC particle with given label
2689 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2690 if(!esdHRP) return -1;
2691 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2692 if(!cTree) return -1;
2693 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2694 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2695 if(!clusters) return -1;
2697 AliITSRecPoint *c=0;
2700 cTree->GetEvent(idet);
2701 n=clusters->GetEntriesFast();
2704 for (icl=0; icl<n; icl++) {
2705 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2706 xloc = c->GetDetLocalX();
2711 //---------------------------------------------------------------------------
2712 void AliAnalysisTaskITSTrackingCheck::FillNClustersModuleMap()
2715 // Number of clusters per module
2718 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2720 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2722 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2723 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2725 for(Int_t idet=0;idet<2198;idet++) {
2726 cTree->GetEvent(idet);
2727 if(!clusters) continue;
2728 fHistNClustersMapModule->SetBinContent(idet,clusters->GetEntriesFast());
2733 //---------------------------------------------------------------------------
2734 Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
2739 // Return the MC value of the impact parameter
2742 Double_t vx=part->Vx()-vert->GetX();
2743 Double_t vy=part->Vy()-vert->GetY();
2745 Double_t pt=part->Pt();
2746 Double_t px=part->Px();
2747 Double_t py=part->Py();
2748 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
2749 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
2751 if(px<0.000001) px=0.000001;
2752 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
2753 Double_t center[3],d0;
2754 center[0]=vx-(1./charge)*rAnd*(py/pt);
2755 center[1]=vy+(1./charge)*rAnd*(px/pt);
2756 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
2757 d0 = -center[2]+rAnd;
2761 //---------------------------------------------------------------------------
2762 Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
2765 // Keep only tracks in given pt bins
2767 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
2768 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
2770 for(Int_t i=0; i<11; i++) {
2771 if(pt>ptlower[i] && pt<ptupper[i]) {
2772 fCountsPerPtBin[i]++;
2779 //---------------------------------------------------------------------------
2780 Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
2782 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
2783 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
2784 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
2787 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
2788 if(track->HasPointOnITSLayer(1)) iITSflag+=2;
2789 if(track->HasPointOnITSLayer(2)) iITSflag+=10;
2790 if(track->HasPointOnITSLayer(3)) iITSflag+=20;
2791 if(track->HasPointOnITSLayer(4)) iITSflag+=100;
2792 if(track->HasPointOnITSLayer(5)) iITSflag+=200;
2794 if(iITSflag==333 && track->GetNcls(0)<6)
2795 printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel());
2797 // number of associated ITS clusters
2798 iITSflag += 1000*track->GetNcls(0);
2800 // number of associated TPC clusters
2801 iITSflag += 100000*track->GetNcls(1);
2803 // if MC info and is available
2804 // write the number of ITS clusters produced by this track
2806 if(fReadMC && fReadRPLabels) {
2807 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
2808 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
2810 if(track->GetLabel()<0) iITSflag *= -1;
2815 //---------------------------------------------------------------------------
2816 Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
2819 // check if events is in the required multiplicity range
2822 const AliMultiplicity *alimult = fESD->GetMultiplicity();
2824 Int_t nclsSPDouter=0;
2826 ntrklets = alimult->GetNumberOfTracklets();
2827 nclsSPDouter = alimult->GetNumberOfITSClusters(1);
2830 if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE;