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
569 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
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);
1662 PostData(1, fOutput);
1666 //________________________________________________________________________
1667 void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
1670 // Called for each event
1672 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1675 Printf("ERROR: fESD not available");
1679 //if(fESD->GetEventNumberInFile()<7) return;
1681 // only events in the requested multiplicity range
1682 if(!IsSelectedCentrality()) return;
1684 fHistNEvents->Fill(-1);
1687 Bool_t isSelected = kTRUE;
1689 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1691 if(!isSelected) return;
1694 //if(fESD->GetEventType()!=7) return;
1696 // *********** MC info ***************
1697 TArrayF mcVertex(3);
1698 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
1699 Float_t dNchdy=-999.;
1702 AliESDVertex *vertexMC=0;
1705 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1706 if (!eventHandler) {
1707 Printf("ERROR: Could not retrieve MC event handler");
1711 AliMCEvent* mcEvent = eventHandler->MCEvent();
1713 Printf("ERROR: Could not retrieve MC event");
1717 stack = mcEvent->Stack();
1719 AliDebug(AliLog::kError, "Stack not available");
1723 AliHeader* header = mcEvent->Header();
1725 AliDebug(AliLog::kError, "Header not available");
1728 AliGenEventHeader* genHeader = header->GenEventHeader();
1729 genHeader->PrimaryVertex(mcVertex);
1730 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
1732 Int_t ngenpart = (Int_t)stack->GetNtrack();
1733 //printf("# generated particles = %d\n",ngenpart);
1735 for(Int_t ip=0; ip<ngenpart; ip++) {
1736 part = (TParticle*)stack->Particle(ip);
1737 // keep only electrons, muons, pions, kaons and protons
1738 Int_t apdg = TMath::Abs(part->GetPdgCode());
1739 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
1740 // reject secondaries
1741 //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])));
1742 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
1743 // reject incoming protons
1744 Double_t energy = part->Energy();
1745 if(energy>900.) continue;
1746 Double_t pz = part->Pz();
1747 Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
1748 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
1750 //printf("# primary particles = %7.1f\n",dNchdy);
1752 // *********** MC info ***************
1753 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
1754 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
1758 //------- event selection --------
1759 Int_t mincontrSPDvtx=1;
1760 Double_t maxzSPDvtx=5.;
1761 Double_t maxrSPDvtx=0.5;
1762 Bool_t useTRKvtx=kTRUE;
1763 Bool_t useSPDvtxifNotTRK=kTRUE;
1764 Int_t mincontrTRKvtx=1;
1765 //Double_t maxzTRKvtx=20.;
1766 //Double_t maxrTRKvtx=1.;
1767 //------- TPC track selection --------
1769 Double_t maxchi2perTPCcl=4.;
1770 Double_t minEtaInAcc=-0.8; // -0.8
1771 Double_t maxEtaInAcc=0.8; // 0.8
1772 Double_t maxdcaxy=2.4;//2.4;
1773 Double_t maxdcaz=3.2;//3.2;
1774 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
1775 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
1776 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
1777 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
1778 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
1779 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
1780 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
1781 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
1782 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1783 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1784 SetESDtrackCutsTPC(esdtrackCutsTPC);
1785 //------- ITS+TPC track selection --------
1786 Double_t maxdcaxyITSTPC=0.2;
1787 Double_t maxdcazITSTPC=1.e6;
1788 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
1789 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1790 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
1791 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
1792 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
1793 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
1794 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1795 AliESDtrackCuts::kAny);
1796 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
1797 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
1798 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1799 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1800 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
1801 //---------------------------------------
1807 // ********** Trigger *****************
1808 ULong64_t triggerMask;
1809 ULong64_t spdFO = (1 << 14);
1810 ULong64_t v0left = (1 << 11);
1811 ULong64_t v0right = (1 << 12);
1813 triggerMask=fESD->GetTriggerMask();
1814 // MB1: SPDFO || V0L || V0R
1815 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
1817 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
1818 // ************ Trigger ******************
1819 if(!eventTriggered) return;
1823 fHistNEvents->Fill(0);
1826 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
1827 // Select good SPD vertices
1828 TString spdvtitle=spdv->GetTitle();
1829 //if(!spdvtitle.Contains("3D")) return;
1830 if(spdv->GetNContributors()<mincontrSPDvtx ||
1831 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
1832 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
1833 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
1834 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
1839 if(fRejPileupSPD) if(fESD->IsPileupFromSPD()) return;
1843 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
1844 //vertexESD->Print();
1846 if(spdvtitle.Contains("3D")) {
1847 fHistNEvents->Fill(1);
1848 fHistNEvents->Fill(3);
1850 fHistNEvents->Fill(2);
1851 fHistNEvents->Fill(3);
1854 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
1857 Int_t ntracks = fESD->GetNumberOfTracks();
1858 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
1860 fHistNtracks->Fill(ntracks);
1861 // Post the data already here
1862 PostData(1, fOutput);
1864 FillNClustersModuleMap();
1866 Int_t idet,status; Float_t xloc,zloc;
1867 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
1868 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
1871 for(Int_t itr=0; itr<ntracks; itr++) {
1872 AliESDtrack *track = fESD->GetTrack(itr);
1873 //if(track->Charge()>0) continue;
1874 // remove kink daughters
1875 if(track->GetKinkIndex(0)>0) continue;
1877 // remove tracks not reco in ITS or TPC
1878 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
1879 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
1881 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
1882 Double_t rProdVtx=0,zProdVtx=0;
1883 Int_t pdgTrk=0,pdgMoth=0;
1886 Int_t trkLabel = TMath::Abs(track->GetLabel());
1887 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
1888 Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
1889 for(Int_t i=0;i<6;i++) {
1890 if(track->HasSharedPointOnITSLayer(i)) {
1892 if(i<2) hasSharedSPD=kTRUE;
1896 // check if it is primary
1897 if(fReadMC && stack) {
1898 isPrimary = stack->IsPhysicalPrimary(trkLabel);
1899 part = (TParticle*)stack->Particle(trkLabel);
1900 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
1901 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
1902 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
1903 pdgTrk = TMath::Abs(part->GetPdgCode());
1904 if(part->GetFirstMother()>=0) {
1905 TParticle* mm=stack->Particle(part->GetFirstMother());
1906 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
1908 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
1909 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
1910 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
1913 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
1914 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
1915 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
1916 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
1920 // remove tracks with kTPCin and not kTPCrefit
1921 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
1923 AliESDtrack *trackTPC = 0;
1924 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
1925 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
1928 Int_t nclsITS = track->GetNcls(0);
1929 Int_t nclsSDDSSD = 0;
1930 Int_t nclsokbadoutinzITS = 0;
1931 Bool_t outInZ=kFALSE;
1932 Bool_t skipTrack=kFALSE;
1933 Bool_t fillA=kFALSE;
1934 Bool_t fillB=kFALSE;
1936 for(Int_t layer=0; layer<6; layer++) {
1937 if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
1938 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
1939 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
1940 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
1941 if(status<0) continue;
1942 if(layer>=2) idet+=240; // add n SPD modules
1943 if(layer>=4) idet+=260; // add n SDD modules
1944 if(status==4) outInZ=kTRUE;
1946 if(layer==1 && tpcrefit && itsrefit) {
1948 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
1950 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
1951 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
1952 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
1953 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
1955 if(status==2 || status==5) {
1956 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
1957 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
1958 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
1959 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
1962 // kill SDD clusters in MC
1963 if(fReadMC && (layer==2 || layer==3)) {
1964 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
1965 Double_t conv=3.34/5.43;
1966 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
1967 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
1970 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
1971 if(track->Pt()>0.7 && track->Pt()<2.0) {
1973 fHistClusterMapITSMIok->Fill(layer);
1974 if(fillA) fHistClusterMapITSMIokA->Fill(layer);
1975 if(fillB) fHistClusterMapITSMIokB->Fill(layer);
1977 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
1978 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
1979 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
1980 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
1981 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
1982 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
1983 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
1984 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
1986 if((idet>=0 && idet<=11) || (idet>=36 && idet<=47)) fillA=kTRUE;
1987 if((idet>=28 && idet<=35) || (idet>=62 && idet<=71)) fillB=kTRUE;
1990 if(status==1 || status==2 || status==4) {
1991 fHistClusterMapITSMIokoutinzbad->Fill(layer);
1992 nclsokbadoutinzITS++;
1994 /*if(idet>=80 && idet<120) {
1996 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
1997 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);
1999 if((layer==2 || layer==3) && status!=2 && status!=4) {
2001 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
2002 fHistxlocSDDall->Fill(xloc);
2003 fHistzlocSDDall->Fill(zloc);
2004 if(status==1 /*nClsInMod>0*/) {
2005 fHistxlocSDDok->Fill(xloc);
2006 fHistxlocVSmodSDDok->Fill(idet,xloc);
2007 fHistzlocSDDok->Fill(zloc);
2008 if(fillA) fHistxlocSDDA->Fill(xloc);
2009 if(fillA) fHistzlocSDDA->Fill(zloc);
2010 if(fillB) fHistxlocSDDB->Fill(xloc);
2011 if(fillB) fHistzlocSDDB->Fill(zloc);
2016 if(track->Phi()>1.5 && track->Phi()<1.7) { // ADDED
2017 if(status==1) fHistClusterMapITSSAok->Fill(layer);
2018 if(status==2) fHistClusterMapITSSAbad->Fill(layer);
2019 if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
2020 if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
2021 if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
2022 if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
2023 if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
2024 if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
2025 if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
2026 if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
2027 if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
2028 if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
2029 if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
2030 if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
2033 if(TESTBIT(track->GetITSClusterMap(),layer)) {
2035 fHistClusterMapITSMI->Fill(layer);
2037 fHistClusterMapITSSA->Fill(layer);
2038 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
2042 // SKIP SDD MODULES LOW EFF
2113 // SKIP SDD MODULES LOW EFF
2116 if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
2118 // TPC track findable in ITS
2119 if(tpcrefit && trackTPC) {
2120 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
2122 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
2123 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
2124 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
2125 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
2126 fHistPtTPC->Fill(track->Pt());
2127 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
2128 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
2129 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
2130 itsfindableAcc=kTRUE;
2131 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
2132 fHistPtTPCInAcc->Fill(track->Pt());
2133 fHistTPCclsVSPtTPCInAcc->Fill(trackTPC->Pt(),trackTPC->GetNcls(1));
2134 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
2135 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
2136 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
2137 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
2138 Double_t pTPCinnerwall[3];
2139 track->GetInnerPxPyPz(pTPCinnerwall);
2140 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
2141 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
2142 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
2144 fHistPhiTPCInAcc->Fill(track->Phi());
2145 fHistEtaTPCInAcc->Fill(track->Eta());
2148 fHistPtTPCInAccP->Fill(track->Pt());
2149 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
2151 fHistPtTPCInAccS->Fill(track->Pt());
2152 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
2153 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
2155 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
2156 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
2159 fHistEtaTPCInAccA->Fill(trackTPC->Eta());
2160 fHistNclsTPCInAccA->Fill(track->GetTPCNclsIter1());
2161 fHistChi2PerClsTPCInAccA->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2164 fHistEtaTPCInAccB->Fill(trackTPC->Eta());
2165 fHistNclsTPCInAccB->Fill(track->GetTPCNclsIter1());
2166 fHistChi2PerClsTPCInAccB->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2168 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
2175 // we need the vertex to compute the impact parameters
2176 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
2177 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
2178 if(useSPDvtxifNotTRK) {
2179 vertexESD = fESD->GetPrimaryVertexSPD();
2181 delete trackTPC; trackTPC=0; continue;
2186 //if(hasSharedSPD) continue;
2187 //if(track->GetITSFakeFlag()) continue;
2189 // track prolonged in ITS with different conditions
2192 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
2193 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
2194 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
2195 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
2196 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
2197 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2198 fHistPtITSMISPD->Fill(track->Pt());
2199 fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
2201 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
2202 fHistPtITSMIoneSPD->Fill(track->Pt());
2203 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
2205 if(itsfindableAcc) {
2207 fHistPtITSMI6InAcc->Fill(track->Pt());
2209 fHistPhiITSMI6InAcc->Fill(track->Phi());
2210 fHistEtaITSMI6InAcc->Fill(track->Eta());
2212 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
2213 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
2216 fHistPtITSMI5InAcc->Fill(track->Pt());
2218 fHistPhiITSMI5InAcc->Fill(track->Phi());
2219 fHistEtaITSMI5InAcc->Fill(track->Eta());
2221 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
2222 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
2225 fHistPtITSMI4InAcc->Fill(track->Pt());
2227 fHistPhiITSMI4InAcc->Fill(track->Phi());
2228 fHistEtaITSMI4InAcc->Fill(track->Eta());
2230 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
2231 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
2234 fHistPtITSMI3InAcc->Fill(track->Pt());
2236 fHistPhiITSMI3InAcc->Fill(track->Phi());
2237 fHistEtaITSMI3InAcc->Fill(track->Eta());
2239 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
2240 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
2243 fHistPtITSMI2InAcc->Fill(track->Pt());
2245 fHistPhiITSMI2InAcc->Fill(track->Phi());
2246 fHistEtaITSMI2InAcc->Fill(track->Eta());
2248 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
2249 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
2251 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2252 fHistPtITSMISPDInAcc->Fill(track->Pt());
2254 fHistPhiITSMISPDInAcc->Fill(track->Phi());
2255 fHistEtaITSMISPDInAcc->Fill(track->Eta());
2257 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
2258 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
2260 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
2261 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
2263 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
2264 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
2266 if(track->HasSharedPointOnITSLayer(0) ||
2267 track->HasSharedPointOnITSLayer(1) ||
2268 track->HasSharedPointOnITSLayer(2) ||
2269 track->HasSharedPointOnITSLayer(3) ||
2270 track->HasSharedPointOnITSLayer(4) ||
2271 track->HasSharedPointOnITSLayer(5)) {
2272 fHistPtITSMIoneSPDInAccShared->Fill(track->Pt());
2273 if(isFake) fHistPtITSMIoneSPDInAccSharedFake->Fill(track->Pt());
2275 if(track->HasSharedPointOnITSLayer(0) || track->HasSharedPointOnITSLayer(1)) {
2276 fHistPtITSMIoneSPDInAccSharedSPD->Fill(track->Pt());
2277 if(isFake) fHistPtITSMIoneSPDInAccSharedSPDFake->Fill(track->Pt());
2279 if(track->HasSharedPointOnITSLayer(0)) fHistPtITSMISPD1InAccShared->Fill(track->Pt());
2280 if(track->HasSharedPointOnITSLayer(1)) fHistPtITSMISPD2InAccShared->Fill(track->Pt());
2282 Float_t chi2redITS = track->GetITSchi2()/track->GetNcls(0);
2283 if(fillA) fHistChi2PerClsITSInAccA->Fill(chi2redITS);
2284 if(fillB) fHistChi2PerClsITSInAccB->Fill(chi2redITS);
2286 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
2287 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2288 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2290 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2291 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2292 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2293 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2295 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2297 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2299 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2300 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2301 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
2302 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
2307 fHistNclsITSMI->Fill(nclsITS);
2309 fHistNclsITSSA->Fill(nclsITS);
2310 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2314 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2315 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2316 { delete trackTPC; trackTPC=0; continue; }
2318 // impact parameter to VertexTracks
2319 Float_t d0z0[2]={0,0},covd0z0[3]={0,0,0};
2320 Double_t d0z0TPC[2]={0,0},covd0z0TPC[3]={0,0,0};
2322 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2324 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
2325 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2327 track->GetImpactParameters(d0z0,covd0z0);
2328 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
2329 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2332 // track that passes final ITS+TPC cuts
2333 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2334 fHistPtITSTPCsel->Fill(track->Pt());
2335 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
2336 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2338 fHistPtITSTPCselP->Fill(track->Pt());
2339 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2341 fHistPtITSTPCselS->Fill(track->Pt());
2342 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2343 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2349 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
2350 if(fillA && itsfindableAcc) {
2351 fHistd0rphiTPCInAccA->Fill(d0z0TPC[0]);
2352 fHistd0zTPCInAccA->Fill(d0z0TPC[1]);
2353 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2354 fHistd0rphiITSMIoneSPDInAccA->Fill(d0z0[0]);
2355 fHistd0zITSMIoneSPDInAccA->Fill(d0z0[1]);
2358 if(fillB && itsfindableAcc) {
2359 fHistd0rphiTPCInAccB->Fill(d0z0TPC[0]);
2360 fHistd0zTPCInAccB->Fill(d0z0TPC[1]);
2361 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2362 fHistd0rphiITSMIoneSPDInAccB->Fill(d0z0[0]);
2363 fHistd0zITSMIoneSPDInAccB->Fill(d0z0[1]);
2366 if(track->Pt()>0.150 && track->Pt()<0.200) {
2368 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2369 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2370 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2371 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2372 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
2373 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2374 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2377 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2378 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2379 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2380 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2381 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2382 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2383 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2384 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2386 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2387 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2391 if(track->Pt()>0.350 && track->Pt()<0.450) {
2393 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2394 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2397 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2398 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2399 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2400 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2401 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2406 if(track->Pt()>0.500 && track->Pt()<0.700) {
2408 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2409 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2410 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2411 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2412 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2413 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2416 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2417 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2418 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2419 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2420 fHistPDGTrk->Fill(pdgTrk);
2421 fHistPDGMoth->Fill(pdgMoth);
2422 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
2423 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2424 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2425 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2426 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2428 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2429 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2430 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
2431 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
2432 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2433 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
2434 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
2438 if(track->Pt()>1.000 && track->Pt()<1.500) {
2440 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
2441 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2443 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2444 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2445 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2446 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2447 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2448 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2449 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2452 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2453 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2454 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2455 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2456 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2457 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2458 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2459 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2461 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2462 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2466 if(track->Pt()>2.500 && track->Pt()<4.000) {
2468 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2469 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2472 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2473 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2474 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2475 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2476 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2481 if(track->Pt()>4.000 && track->Pt()<8.000) {
2483 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2484 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2487 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2488 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2489 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2490 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2491 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2499 if(trackTPC) { delete trackTPC; trackTPC=0; }
2501 // encode ITS cluster map, including MC info
2502 Int_t iITSflag=MakeITSflag(track);
2504 // if MC info is available: get particle properties
2505 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2506 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2508 part = (TParticle*)stack->Particle(trkLabel);
2510 pdgMC=part->GetPdgCode();
2511 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2512 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2513 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
2516 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2517 if(!itsrefit) sigmad0MCv *= -1.;
2518 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2519 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
2521 // fill ntuple with track properties
2522 if(fFillNtuples && SelectPt(track->Pt())) {
2523 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};
2524 fNtupleESDTracks->Fill(fillArray);
2527 //---------------------------------------------
2528 // AliTrackPoints: alignment checks
2530 if(!fFillNtuples) continue;
2532 const AliTrackPointArray *array = track->GetTrackPointArray();
2533 if(!array) continue;
2534 AliTrackPoint point;
2535 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2536 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2537 Bool_t extra=kFALSE;
2538 Int_t layerId,layerExtra=-1;
2539 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2540 array->GetPoint(point,ipt);
2541 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2545 } else if(r>6 && r<8) {
2547 } else if(r>8 && r<18) {
2549 } else if(r>18 && r<30) {
2551 } else if(r>30 && r<40) {
2553 } else if(r>40 && r<50) {
2560 if(layerId>5) continue;
2562 if(!point.IsExtra()) {
2563 pointOnLayer[layerId]++;
2564 indexAssociated[layerId]=ipt;
2566 // this is an extra cluster
2571 } // end loop on AliTrackPoints
2573 TString vtitle = spdv->GetTitle();
2574 if(!vtitle.Contains("3D")) continue;
2577 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2578 AliTrackPoint pointSPD1,pointSPD2;
2579 array->GetPoint(pointSPD1,indexAssociated[0]);
2580 array->GetPoint(pointSPD2,indexAssociated[1]);
2581 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2582 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())));
2583 Float_t theta=0.5*TMath::Pi()-lambda;
2584 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);
2585 AliESDtrack tracklet(&particle);
2587 // distance to primary SPD (only if 3D and high multiplicity)
2588 if(spdv->GetNContributors()>10) {
2589 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2590 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
2591 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
2595 // distance to extra
2596 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
2597 AliTrackPoint pointExtra,pointAssociated;
2598 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2599 array->GetPoint(pointExtra,indexExtra);
2600 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2601 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2602 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2603 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2605 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2606 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2607 Float_t xlocExtra=-100.,zlocExtra=-100.;
2608 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
2611 if(trackTPC) { delete trackTPC; trackTPC=0; }
2612 } // end loop on tracks
2614 if(vertexMC) { delete vertexMC; vertexMC=0; }
2616 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2617 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2619 PostData(1, fOutput);
2624 //________________________________________________________________________
2625 void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2627 // Draw result to the screen
2628 // Called once at the end of the query
2629 fOutput = dynamic_cast<TList*> (GetOutputData(1));
2631 Printf("ERROR: fOutput not available");
2634 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2635 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2636 if(fHistNEvents && fHistNEventsFrac) {
2637 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2638 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2644 //---------------------------------------------------------------------------
2645 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
2648 // Return number of ITS clusters produced by MC particle with given label
2651 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2652 if(!esdHRP) return -1;
2653 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2654 if(!cTree) return -1;
2655 TClonesArray *clusters=0;
2656 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2657 if(!clusters) return -1;
2659 AliITSRecPoint *c=0;
2660 Int_t i,n,icl,lay,ilab;
2661 Int_t ncls[6]={0,0,0,0,0,0};
2664 for(i=0; i<nModules; i++) {
2666 n=clusters->GetEntriesFast();
2667 for (icl=0; icl<n; icl++) {
2668 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2670 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
2671 for(ilab=0;ilab<3;ilab++) {
2672 if(c->GetLabel(ilab)==label) ncls[lay]++;
2677 //printf("%d\n",ncls[i]);
2678 if(ncls[i]) nclstot++;
2683 //---------------------------------------------------------------------------
2684 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2687 // Return number of ITS clusters produced by MC particle with given label
2690 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2691 if(!esdHRP) return -1;
2692 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2693 if(!cTree) return -1;
2694 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2695 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2696 if(!clusters) return -1;
2698 AliITSRecPoint *c=0;
2701 cTree->GetEvent(idet);
2702 n=clusters->GetEntriesFast();
2705 for (icl=0; icl<n; icl++) {
2706 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2707 xloc = c->GetDetLocalX();
2712 //---------------------------------------------------------------------------
2713 void AliAnalysisTaskITSTrackingCheck::FillNClustersModuleMap()
2716 // Number of clusters per module
2719 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2721 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2723 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2724 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2726 for(Int_t idet=0;idet<2198;idet++) {
2727 cTree->GetEvent(idet);
2728 if(!clusters) continue;
2729 fHistNClustersMapModule->SetBinContent(idet,clusters->GetEntriesFast());
2734 //---------------------------------------------------------------------------
2735 Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
2740 // Return the MC value of the impact parameter
2743 Double_t vx=part->Vx()-vert->GetX();
2744 Double_t vy=part->Vy()-vert->GetY();
2746 Double_t pt=part->Pt();
2747 Double_t px=part->Px();
2748 Double_t py=part->Py();
2749 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
2750 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
2752 if(px<0.000001) px=0.000001;
2753 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
2754 Double_t center[3],d0;
2755 center[0]=vx-(1./charge)*rAnd*(py/pt);
2756 center[1]=vy+(1./charge)*rAnd*(px/pt);
2757 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
2758 d0 = -center[2]+rAnd;
2762 //---------------------------------------------------------------------------
2763 Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
2766 // Keep only tracks in given pt bins
2768 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
2769 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
2771 for(Int_t i=0; i<11; i++) {
2772 if(pt>ptlower[i] && pt<ptupper[i]) {
2773 fCountsPerPtBin[i]++;
2780 //---------------------------------------------------------------------------
2781 Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
2783 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
2784 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
2785 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
2788 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
2789 if(track->HasPointOnITSLayer(1)) iITSflag+=2;
2790 if(track->HasPointOnITSLayer(2)) iITSflag+=10;
2791 if(track->HasPointOnITSLayer(3)) iITSflag+=20;
2792 if(track->HasPointOnITSLayer(4)) iITSflag+=100;
2793 if(track->HasPointOnITSLayer(5)) iITSflag+=200;
2795 if(iITSflag==333 && track->GetNcls(0)<6)
2796 printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel());
2798 // number of associated ITS clusters
2799 iITSflag += 1000*track->GetNcls(0);
2801 // number of associated TPC clusters
2802 iITSflag += 100000*track->GetNcls(1);
2804 // if MC info and is available
2805 // write the number of ITS clusters produced by this track
2807 if(fReadMC && fReadRPLabels) {
2808 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
2809 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
2811 if(track->GetLabel()<0) iITSflag *= -1;
2816 //---------------------------------------------------------------------------
2817 Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
2820 // check if events is in the required multiplicity range
2823 const AliMultiplicity *alimult = fESD->GetMultiplicity();
2825 Int_t nclsSPDouter=0;
2827 ntrklets = alimult->GetNumberOfTracklets();
2828 nclsSPDouter = alimult->GetNumberOfITSClusters(1);
2831 if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE;