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),
79 fHistNclsITSSAInAcc(0),
80 fHistClusterMapITSMI(0),
81 fHistClusterMapITSMIokA(0),
82 fHistClusterMapITSMIokB(0),
83 fHistClusterMapITSMIok(0),
84 fHistClusterMapITSMIbad(0),
85 fHistClusterMapITSMIskipped(0),
86 fHistClusterMapITSMIoutinz(0),
87 fHistClusterMapITSMInorefit(0),
88 fHistClusterMapITSMInocls(0),
89 fHistClusterMapITSMIokoutinzbad(0),
90 fHistClusterMapITSSA(0),
91 fHistClusterMapITSSAok(0),
92 fHistClusterMapITSSAbad(0),
93 fHistClusterMapITSSAskipped(0),
94 fHistClusterMapITSSAoutinz(0),
95 fHistClusterMapITSSAnorefit(0),
96 fHistClusterMapITSSAnocls(0),
97 fHistClusterMapITSSAokoutinzbad(0),
98 fHistClusterMapITSSAInAcc(0),
99 fHistClusterMapITSSAokInAcc(0),
100 fHistClusterMapITSSAbadInAcc(0),
101 fHistClusterMapITSSAskippedInAcc(0),
102 fHistClusterMapITSSAoutinzInAcc(0),
103 fHistClusterMapITSSAnorefitInAcc(0),
104 fHistClusterMapITSSAnoclsInAcc(0),
105 fHistClusterMapITSSAokoutinzbadInAcc(0),
106 fHistClusterMapModuleITSSAokInAcc(0),
107 fHistClusterMapModuleITSSAbadInAcc(0),
108 fHistClusterMapModuleITSSAnoclsInAcc(0),
109 fHistClusterMapModuleITSMIokInAcc(0),
110 fHistClusterMapModuleITSMIbadInAcc(0),
111 fHistClusterMapModuleITSMInoclsInAcc(0),
112 fHistNClustersMapModule(0),
113 fHistZatSPDouter0ok(0),
114 fHistZatSPDouter1ok(0),
115 fHistZatSPDouter2ok(0),
116 fHistZatSPDouter3ok(0),
117 fHistZatSPDouter0notok(0),
118 fHistZatSPDouter1notok(0),
119 fHistZatSPDouter2notok(0),
120 fHistZatSPDouter3notok(0),
123 fHistxlocVSmodSDDok(0),
132 fHistEtaTPCInAccA(0),
133 fHistEtaTPCInAccB(0),
134 fHistNclsTPCInAccA(0),
135 fHistNclsTPCInAccB(0),
136 fHistChi2PerClsTPCInAccA(0),
137 fHistChi2PerClsTPCInAccB(0),
138 fHistChi2PerClsITSInAccA(0),
139 fHistChi2PerClsITSInAccB(0),
142 fHistPtTPCInAccMCtwoSPD(0),
143 fHistPtTPCInAccMConeSPD(0),
144 fHistdEdxVSPtTPCInAcc(0),
145 fHistdEdxVSPtITSTPCsel(0),
146 fHistTPCclsVSPtTPCInAcc(0),
147 fHistTPCclsVSPtITSMISPDInAcc(0),
148 fHistPtVSphiTPCInAcc(0),
149 fHistPtTPCInAccNoTRDout(0),
150 fHistPtTPCInAccNoTOFout(0),
151 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
152 fHistPtTPCInAccWithPtTPCAtVtx(0),
156 fHistPtTPCInAccPfromStrange(0),
157 fHistPtTPCInAccSfromStrange(0),
158 fHistPtTPCInAccSfromMat(0),
165 fHistPtITSMIoneSPD(0),
166 fHistPtITSMI2InAcc(0),
167 fHistPtITSMI3InAcc(0),
168 fHistPtITSMI4InAcc(0),
169 fHistPtITSMI5InAcc(0),
170 fHistPtITSMI6InAcc(0),
171 fHistPtITSMISPDInAcc(0),
172 fHistPtITSMIoneSPDInAcc(0),
173 fHistPtITSMIoneSPDInAccShared(0),
174 fHistPtITSMIoneSPDInAccSharedSPD(0),
175 fHistPtITSMISPD1InAccShared(0),
176 fHistPtITSMISPD2InAccShared(0),
177 fHistPtITSMIoneSPDInAccSharedFake(0),
178 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
179 fHistPhiITSMI2InAcc(0),
180 fHistPhiITSMI3InAcc(0),
181 fHistPhiITSMI4InAcc(0),
182 fHistPhiITSMI5InAcc(0),
183 fHistPhiITSMI6InAcc(0),
184 fHistPhiITSMISPDInAcc(0),
185 fHistPhiITSMIoneSPDInAcc(0),
186 fHistEtaITSMI2InAcc(0),
187 fHistEtaITSMI3InAcc(0),
188 fHistEtaITSMI4InAcc(0),
189 fHistEtaITSMI5InAcc(0),
190 fHistEtaITSMI6InAcc(0),
191 fHistEtaITSMISPDInAcc(0),
192 fHistEtaITSMIoneSPDInAcc(0),
193 fHistPtITSMI2InAccFake(0),
194 fHistPtITSMI3InAccFake(0),
195 fHistPtITSMI4InAccFake(0),
196 fHistPtITSMI5InAccFake(0),
197 fHistPtITSMI6InAccFake(0),
198 fHistPtITSMISPDInAccFake(0),
199 fHistPtITSMIoneSPDInAccFake(0),
200 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
202 fHistPtITSTPCselP(0),
203 fHistPtITSTPCselS(0),
204 fHistPtITSTPCselFake(0),
205 fHistPtITSTPCselPfromStrange(0),
206 fHistPtITSTPCselSfromStrange(0),
207 fHistPtITSTPCselSfromMat(0),
208 fHistPtITSMI2InAccP(0),
209 fHistPtITSMI3InAccP(0),
210 fHistPtITSMI4InAccP(0),
211 fHistPtITSMI5InAccP(0),
212 fHistPtITSMI6InAccP(0),
213 fHistPtITSMISPDInAccP(0),
214 fHistPtITSMIoneSPDInAccP(0),
215 fHistPtITSMI2InAccS(0),
216 fHistPtITSMI3InAccS(0),
217 fHistPtITSMI4InAccS(0),
218 fHistPtITSMI5InAccS(0),
219 fHistPtITSMI6InAccS(0),
220 fHistPtITSMISPDInAccS(0),
221 fHistPtITSMIoneSPDInAccS(0),
222 fHistPtITSMIokbadoutinz6(0),
223 fHistPtITSMIokbadoutinz4InAcc(0),
224 fHistPtITSMIokbadoutinz5InAcc(0),
225 fHistPtITSMIokbadoutinz6InAcc(0),
226 fHistPhiITSMIokbadoutinz6InAcc(0),
227 fHistRProdVtxInAccP(0),
228 fHistRProdVtxInAccS(0),
229 fHistd0rphiTPCInAccA(0),
230 fHistd0rphiTPCInAccB(0),
231 fHistd0zTPCInAccA(0),
232 fHistd0zTPCInAccB(0),
233 fHistd0rphiTPCInAccP150200(0),
234 fHistd0rphiTPCInAccP500700(0),
235 fHistd0rphiTPCInAccP10001500(0),
236 fHistd0rphiTPCInAccS150200(0),
237 fHistd0rphiTPCInAccS500700(0),
238 fHistd0rphiTPCInAccS10001500(0),
239 fHistd0rphiITSMISPDInAccP150200(0),
240 fHistd0rphiITSMISPDInAccP500700(0),
241 fHistd0rphiITSMISPDInAccP10001500(0),
242 fHistd0rphiITSMISPDInAccS150200(0),
243 fHistd0rphiITSMISPDInAccS500700(0),
244 fHistd0rphiITSMISPDInAccS10001500(0),
245 fHistd0rphiITSMIoneSPDInAccP150200(0),
246 fHistd0rphiITSMIoneSPDInAccP350450(0),
247 fHistd0rphiITSMIoneSPDInAccP500700(0),
248 fHistd0rphiITSMIoneSPDInAccP10001500(0),
249 fHistd0rphiITSMIoneSPDInAccP25004000(0),
250 fHistd0rphiITSMIoneSPDInAccP40008000(0),
251 fHistd0rphiITSMIoneSPDInAccA(0),
252 fHistd0rphiITSMIoneSPDInAccB(0),
253 fHistd0zITSMIoneSPDInAccA(0),
254 fHistd0zITSMIoneSPDInAccB(0),
255 fHistd0zITSMIoneSPDInAccP150200(0),
256 fHistd0zITSMIoneSPDInAccP500700(0),
257 fHistd0zITSMIoneSPDInAccP10001500(0),
258 fHistd0zVSetaTPCInAccP10001500(0),
259 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
260 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
261 fHistd0rphiITSMIoneSPDInAccS150200(0),
262 fHistd0rphiITSMIoneSPDInAccS350450(0),
263 fHistd0rphiITSMIoneSPDInAccS500700(0),
264 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
265 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
266 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
267 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
268 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
269 fHistd0rphiITSMIoneSPDInAccS10001500(0),
270 fHistd0rphiITSMIoneSPDInAccS25004000(0),
271 fHistd0rphiITSMIoneSPDInAccS40008000(0),
272 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
273 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
274 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
275 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
276 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
277 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
278 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
279 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
280 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
281 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
282 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
283 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
284 fHistd0zITSMIoneSPDInAccS150200(0),
285 fHistd0zITSMIoneSPDInAccS500700(0),
286 fHistd0zITSMIoneSPDInAccS10001500(0),
288 fHistPDGMoth150200(0),
289 fHistPDGMoth500700(0),
290 fHistPDGMoth10001500(0),
292 fHistITSRedChi2NonFakePt02(0),
293 fHistITSRedChi2FakePt02(0),
294 fHistITSRedChi2NonFakePt05(0),
295 fHistITSRedChi2FakePt05(0),
296 fHistITSRedChi2NonFakePt1(0),
297 fHistITSRedChi2FakePt1(0),
299 fNtupleITSAlignExtra(0),
300 fNtupleITSAlignSPDTracklets(0),
302 fESDtrackCutsITSTPC(0)
305 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
309 //________________________________________________________________________
310 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) :
311 AliAnalysisTaskSE(name),
313 fReadRPLabels(kFALSE),
314 fFillNtuples(kFALSE),
315 fUseITSSAforNtuples(kFALSE),
326 fHistNclsITSSAInAcc(0),
327 fHistClusterMapITSMI(0),
328 fHistClusterMapITSMIokA(0),
329 fHistClusterMapITSMIokB(0),
330 fHistClusterMapITSMIok(0),
331 fHistClusterMapITSMIbad(0),
332 fHistClusterMapITSMIskipped(0),
333 fHistClusterMapITSMIoutinz(0),
334 fHistClusterMapITSMInorefit(0),
335 fHistClusterMapITSMInocls(0),
336 fHistClusterMapITSMIokoutinzbad(0),
337 fHistClusterMapITSSA(0),
338 fHistClusterMapITSSAok(0),
339 fHistClusterMapITSSAbad(0),
340 fHistClusterMapITSSAskipped(0),
341 fHistClusterMapITSSAoutinz(0),
342 fHistClusterMapITSSAnorefit(0),
343 fHistClusterMapITSSAnocls(0),
344 fHistClusterMapITSSAokoutinzbad(0),
345 fHistClusterMapITSSAInAcc(0),
346 fHistClusterMapITSSAokInAcc(0),
347 fHistClusterMapITSSAbadInAcc(0),
348 fHistClusterMapITSSAskippedInAcc(0),
349 fHistClusterMapITSSAoutinzInAcc(0),
350 fHistClusterMapITSSAnorefitInAcc(0),
351 fHistClusterMapITSSAnoclsInAcc(0),
352 fHistClusterMapITSSAokoutinzbadInAcc(0),
353 fHistClusterMapModuleITSSAokInAcc(0),
354 fHistClusterMapModuleITSSAbadInAcc(0),
355 fHistClusterMapModuleITSSAnoclsInAcc(0),
356 fHistClusterMapModuleITSMIokInAcc(0),
357 fHistClusterMapModuleITSMIbadInAcc(0),
358 fHistClusterMapModuleITSMInoclsInAcc(0),
359 fHistNClustersMapModule(0),
360 fHistZatSPDouter0ok(0),
361 fHistZatSPDouter1ok(0),
362 fHistZatSPDouter2ok(0),
363 fHistZatSPDouter3ok(0),
364 fHistZatSPDouter0notok(0),
365 fHistZatSPDouter1notok(0),
366 fHistZatSPDouter2notok(0),
367 fHistZatSPDouter3notok(0),
370 fHistxlocVSmodSDDok(0),
379 fHistEtaTPCInAccA(0),
380 fHistEtaTPCInAccB(0),
381 fHistNclsTPCInAccA(0),
382 fHistNclsTPCInAccB(0),
383 fHistChi2PerClsTPCInAccA(0),
384 fHistChi2PerClsTPCInAccB(0),
385 fHistChi2PerClsITSInAccA(0),
386 fHistChi2PerClsITSInAccB(0),
389 fHistPtTPCInAccMCtwoSPD(0),
390 fHistPtTPCInAccMConeSPD(0),
391 fHistdEdxVSPtTPCInAcc(0),
392 fHistdEdxVSPtITSTPCsel(0),
393 fHistTPCclsVSPtTPCInAcc(0),
394 fHistTPCclsVSPtITSMISPDInAcc(0),
395 fHistPtVSphiTPCInAcc(0),
396 fHistPtTPCInAccNoTRDout(0),
397 fHistPtTPCInAccNoTOFout(0),
398 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
399 fHistPtTPCInAccWithPtTPCAtVtx(0),
403 fHistPtTPCInAccPfromStrange(0),
404 fHistPtTPCInAccSfromStrange(0),
405 fHistPtTPCInAccSfromMat(0),
412 fHistPtITSMIoneSPD(0),
413 fHistPtITSMI2InAcc(0),
414 fHistPtITSMI3InAcc(0),
415 fHistPtITSMI4InAcc(0),
416 fHistPtITSMI5InAcc(0),
417 fHistPtITSMI6InAcc(0),
418 fHistPtITSMISPDInAcc(0),
419 fHistPtITSMIoneSPDInAcc(0),
420 fHistPtITSMIoneSPDInAccShared(0),
421 fHistPtITSMIoneSPDInAccSharedSPD(0),
422 fHistPtITSMISPD1InAccShared(0),
423 fHistPtITSMISPD2InAccShared(0),
424 fHistPtITSMIoneSPDInAccSharedFake(0),
425 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
426 fHistPhiITSMI2InAcc(0),
427 fHistPhiITSMI3InAcc(0),
428 fHistPhiITSMI4InAcc(0),
429 fHistPhiITSMI5InAcc(0),
430 fHistPhiITSMI6InAcc(0),
431 fHistPhiITSMISPDInAcc(0),
432 fHistPhiITSMIoneSPDInAcc(0),
433 fHistEtaITSMI2InAcc(0),
434 fHistEtaITSMI3InAcc(0),
435 fHistEtaITSMI4InAcc(0),
436 fHistEtaITSMI5InAcc(0),
437 fHistEtaITSMI6InAcc(0),
438 fHistEtaITSMISPDInAcc(0),
439 fHistEtaITSMIoneSPDInAcc(0),
440 fHistPtITSMI2InAccFake(0),
441 fHistPtITSMI3InAccFake(0),
442 fHistPtITSMI4InAccFake(0),
443 fHistPtITSMI5InAccFake(0),
444 fHistPtITSMI6InAccFake(0),
445 fHistPtITSMISPDInAccFake(0),
446 fHistPtITSMIoneSPDInAccFake(0),
447 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
449 fHistPtITSTPCselP(0),
450 fHistPtITSTPCselS(0),
451 fHistPtITSTPCselFake(0),
452 fHistPtITSTPCselPfromStrange(0),
453 fHistPtITSTPCselSfromStrange(0),
454 fHistPtITSTPCselSfromMat(0),
455 fHistPtITSMI2InAccP(0),
456 fHistPtITSMI3InAccP(0),
457 fHistPtITSMI4InAccP(0),
458 fHistPtITSMI5InAccP(0),
459 fHistPtITSMI6InAccP(0),
460 fHistPtITSMISPDInAccP(0),
461 fHistPtITSMIoneSPDInAccP(0),
462 fHistPtITSMI2InAccS(0),
463 fHistPtITSMI3InAccS(0),
464 fHistPtITSMI4InAccS(0),
465 fHistPtITSMI5InAccS(0),
466 fHistPtITSMI6InAccS(0),
467 fHistPtITSMISPDInAccS(0),
468 fHistPtITSMIoneSPDInAccS(0),
469 fHistPtITSMIokbadoutinz6(0),
470 fHistPtITSMIokbadoutinz4InAcc(0),
471 fHistPtITSMIokbadoutinz5InAcc(0),
472 fHistPtITSMIokbadoutinz6InAcc(0),
473 fHistPhiITSMIokbadoutinz6InAcc(0),
474 fHistRProdVtxInAccP(0),
475 fHistRProdVtxInAccS(0),
476 fHistd0rphiTPCInAccA(0),
477 fHistd0rphiTPCInAccB(0),
478 fHistd0zTPCInAccA(0),
479 fHistd0zTPCInAccB(0),
480 fHistd0rphiTPCInAccP150200(0),
481 fHistd0rphiTPCInAccP500700(0),
482 fHistd0rphiTPCInAccP10001500(0),
483 fHistd0rphiTPCInAccS150200(0),
484 fHistd0rphiTPCInAccS500700(0),
485 fHistd0rphiTPCInAccS10001500(0),
486 fHistd0rphiITSMISPDInAccP150200(0),
487 fHistd0rphiITSMISPDInAccP500700(0),
488 fHistd0rphiITSMISPDInAccP10001500(0),
489 fHistd0rphiITSMISPDInAccS150200(0),
490 fHistd0rphiITSMISPDInAccS500700(0),
491 fHistd0rphiITSMISPDInAccS10001500(0),
492 fHistd0rphiITSMIoneSPDInAccP150200(0),
493 fHistd0rphiITSMIoneSPDInAccP350450(0),
494 fHistd0rphiITSMIoneSPDInAccP500700(0),
495 fHistd0rphiITSMIoneSPDInAccP10001500(0),
496 fHistd0rphiITSMIoneSPDInAccP25004000(0),
497 fHistd0rphiITSMIoneSPDInAccP40008000(0),
498 fHistd0rphiITSMIoneSPDInAccA(0),
499 fHistd0rphiITSMIoneSPDInAccB(0),
500 fHistd0zITSMIoneSPDInAccA(0),
501 fHistd0zITSMIoneSPDInAccB(0),
502 fHistd0zITSMIoneSPDInAccP150200(0),
503 fHistd0zITSMIoneSPDInAccP500700(0),
504 fHistd0zITSMIoneSPDInAccP10001500(0),
505 fHistd0zVSetaTPCInAccP10001500(0),
506 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
507 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
508 fHistd0rphiITSMIoneSPDInAccS150200(0),
509 fHistd0rphiITSMIoneSPDInAccS350450(0),
510 fHistd0rphiITSMIoneSPDInAccS500700(0),
511 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
512 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
513 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
514 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
515 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
516 fHistd0rphiITSMIoneSPDInAccS10001500(0),
517 fHistd0rphiITSMIoneSPDInAccS25004000(0),
518 fHistd0rphiITSMIoneSPDInAccS40008000(0),
519 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
520 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
521 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
522 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
523 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
524 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
525 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
526 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
527 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
528 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
529 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
530 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
531 fHistd0zITSMIoneSPDInAccS150200(0),
532 fHistd0zITSMIoneSPDInAccS500700(0),
533 fHistd0zITSMIoneSPDInAccS10001500(0),
535 fHistPDGMoth150200(0),
536 fHistPDGMoth500700(0),
537 fHistPDGMoth10001500(0),
539 fHistITSRedChi2NonFakePt02(0),
540 fHistITSRedChi2FakePt02(0),
541 fHistITSRedChi2NonFakePt05(0),
542 fHistITSRedChi2FakePt05(0),
543 fHistITSRedChi2NonFakePt1(0),
544 fHistITSRedChi2FakePt1(0),
546 fNtupleITSAlignExtra(0),
547 fNtupleITSAlignSPDTracklets(0),
549 fESDtrackCutsITSTPC(0)
553 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
555 // Define input and output slots here
556 // Output slot #0 writes into a TList container
557 DefineOutput(1, TList::Class()); //My private output
559 //________________________________________________________________________
560 AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck()
564 // histograms are in the output list and deleted when the output
565 // list is deleted by the TSelector dtor
572 //________________________________________________________________________
573 void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
578 gStyle->SetHistLineWidth(2);
581 //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};
582 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};
584 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
586 // Several histograms are more conveniently managed in a TList
590 fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000);
591 fOutput->Add(fHistPDGMoth);
592 fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000);
593 fOutput->Add(fHistPDGMoth150200);
594 fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000);
595 fOutput->Add(fHistPDGMoth500700);
596 fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000);
597 fOutput->Add(fHistPDGMoth10001500);
598 fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000);
599 fOutput->Add(fHistPDGTrk);
601 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);
602 fHistNEvents->SetMinimum(0);
603 fOutput->Add(fHistNEvents);
605 fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac");
606 fOutput->Add(fHistNEventsFrac);
608 fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5);
609 fHistNtracks->Sumw2();
610 fHistNtracks->SetMinimum(0);
611 fOutput->Add(fHistNtracks);
613 fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5);
614 fHistNclsITSMI->Sumw2();
615 fHistNclsITSMI->SetMinimum(0);
616 fOutput->Add(fHistNclsITSMI);
618 fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
619 fHistNclsITSSAInAcc->Sumw2();
620 fHistNclsITSSAInAcc->SetMinimum(0);
621 fOutput->Add(fHistNclsITSSAInAcc);
623 fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
624 fHistNclsITSSA->Sumw2();
625 fHistNclsITSSA->SetMinimum(0);
626 fOutput->Add(fHistNclsITSSA);
628 fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
629 fHistClusterMapITSMI->Sumw2();
630 fHistClusterMapITSMI->SetMinimum(0);
631 fOutput->Add(fHistClusterMapITSMI);
633 fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
634 fHistClusterMapITSSA->Sumw2();
635 fHistClusterMapITSSA->SetMinimum(0);
636 fOutput->Add(fHistClusterMapITSSA);
638 fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
639 fHistClusterMapITSSAInAcc->Sumw2();
640 fHistClusterMapITSSAInAcc->SetMinimum(0);
641 fOutput->Add(fHistClusterMapITSSAInAcc);
643 fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
644 fHistClusterMapITSMIok->Sumw2();
645 fHistClusterMapITSMIok->SetMinimum(0);
646 fOutput->Add(fHistClusterMapITSMIok);
648 fHistClusterMapITSMIokA = new TH1F("fHistClusterMapITSMIokA", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
649 fHistClusterMapITSMIokA->Sumw2();
650 fHistClusterMapITSMIokA->SetMinimum(0);
651 fOutput->Add(fHistClusterMapITSMIokA);
653 fHistClusterMapITSMIokB = new TH1F("fHistClusterMapITSMIokB", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
654 fHistClusterMapITSMIokB->Sumw2();
655 fHistClusterMapITSMIokB->SetMinimum(0);
656 fOutput->Add(fHistClusterMapITSMIokB);
659 fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
660 fHistClusterMapITSSAokInAcc->Sumw2();
661 fHistClusterMapITSSAokInAcc->SetMinimum(0);
662 fOutput->Add(fHistClusterMapITSSAokInAcc);
664 fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
665 fHistClusterMapModuleITSSAokInAcc->SetMinimum(0);
666 fOutput->Add(fHistClusterMapModuleITSSAokInAcc);
668 fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
669 fHistClusterMapModuleITSMIokInAcc->SetMinimum(0);
670 fOutput->Add(fHistClusterMapModuleITSMIokInAcc);
672 fHistNClustersMapModule = new TH1F("fHistNClustersMapModule", "N clusters; Module; N tracks",2198, -0.5, 2197.5);
673 fHistNClustersMapModule->SetMinimum(0);
674 fOutput->Add(fHistNClustersMapModule);
676 fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
677 fHistClusterMapITSSAok->Sumw2();
678 fHistClusterMapITSSAok->SetMinimum(0);
679 fOutput->Add(fHistClusterMapITSSAok);
681 fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
682 fHistClusterMapITSMIbad->Sumw2();
683 fHistClusterMapITSMIbad->SetMinimum(0);
684 fOutput->Add(fHistClusterMapITSMIbad);
686 fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
687 fHistClusterMapITSSAbadInAcc->Sumw2();
688 fHistClusterMapITSSAbadInAcc->SetMinimum(0);
689 fOutput->Add(fHistClusterMapITSSAbadInAcc);
691 fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
692 fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0);
693 fOutput->Add(fHistClusterMapModuleITSSAbadInAcc);
695 fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
696 fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
697 fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
699 fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
700 fHistClusterMapITSSAbad->Sumw2();
701 fHistClusterMapITSSAbad->SetMinimum(0);
702 fOutput->Add(fHistClusterMapITSSAbad);
704 fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
705 fHistClusterMapITSMIskipped->Sumw2();
706 fHistClusterMapITSMIskipped->SetMinimum(0);
707 fOutput->Add(fHistClusterMapITSMIskipped);
709 fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
710 fHistClusterMapITSSAskippedInAcc->Sumw2();
711 fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
712 fOutput->Add(fHistClusterMapITSSAskippedInAcc);
714 fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
715 fHistClusterMapITSSAskipped->Sumw2();
716 fHistClusterMapITSSAskipped->SetMinimum(0);
717 fOutput->Add(fHistClusterMapITSSAskipped);
719 fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
720 fHistClusterMapITSMIoutinz->Sumw2();
721 fHistClusterMapITSMIoutinz->SetMinimum(0);
722 fOutput->Add(fHistClusterMapITSMIoutinz);
724 fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
725 fHistClusterMapITSSAoutinzInAcc->Sumw2();
726 fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
727 fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
729 fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
730 fHistClusterMapITSSAoutinz->Sumw2();
731 fHistClusterMapITSSAoutinz->SetMinimum(0);
732 fOutput->Add(fHistClusterMapITSSAoutinz);
734 fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
735 fHistClusterMapITSSAokoutinzbad->Sumw2();
736 fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
737 fOutput->Add(fHistClusterMapITSSAokoutinzbad);
739 fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5);
740 fHistClusterMapITSMIokoutinzbad->Sumw2();
741 fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
742 fOutput->Add(fHistClusterMapITSMIokoutinzbad);
744 fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
745 fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
746 fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
747 fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
749 fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
750 fHistClusterMapITSMInorefit->Sumw2();
751 fHistClusterMapITSMInorefit->SetMinimum(0);
752 fOutput->Add(fHistClusterMapITSMInorefit);
754 fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
755 fHistClusterMapITSSAnorefitInAcc->Sumw2();
756 fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
757 fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
759 fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
760 fHistClusterMapITSSAnorefit->Sumw2();
761 fHistClusterMapITSSAnorefit->SetMinimum(0);
762 fOutput->Add(fHistClusterMapITSSAnorefit);
764 fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
765 fHistClusterMapITSMInocls->Sumw2();
766 fHistClusterMapITSMInocls->SetMinimum(0);
767 fOutput->Add(fHistClusterMapITSMInocls);
769 fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
770 fHistClusterMapITSSAnoclsInAcc->Sumw2();
771 fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
772 fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
774 fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
775 fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0);
776 fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc);
778 fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
779 fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
780 fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
782 fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
783 fHistClusterMapITSSAnocls->Sumw2();
784 fHistClusterMapITSSAnocls->SetMinimum(0);
785 fOutput->Add(fHistClusterMapITSSAnocls);
788 fHistZatSPDouter0ok = new TH1F("fHistZatSPDouter0ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
789 fHistZatSPDouter0ok->Sumw2();
790 fHistZatSPDouter0ok->SetMinimum(0);
791 fOutput->Add(fHistZatSPDouter0ok);
792 fHistZatSPDouter1ok = new TH1F("fHistZatSPDouter1ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
793 fHistZatSPDouter1ok->Sumw2();
794 fHistZatSPDouter1ok->SetMinimum(0);
795 fOutput->Add(fHistZatSPDouter1ok);
796 fHistZatSPDouter2ok = new TH1F("fHistZatSPDouter2ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
797 fHistZatSPDouter2ok->Sumw2();
798 fHistZatSPDouter2ok->SetMinimum(0);
799 fOutput->Add(fHistZatSPDouter2ok);
800 fHistZatSPDouter3ok = new TH1F("fHistZatSPDouter3ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
801 fHistZatSPDouter3ok->Sumw2();
802 fHistZatSPDouter3ok->SetMinimum(0);
803 fOutput->Add(fHistZatSPDouter3ok);
804 fHistZatSPDouter0notok = new TH1F("fHistZatSPDouter0notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
805 fHistZatSPDouter0notok->Sumw2();
806 fHistZatSPDouter0notok->SetMinimum(0);
807 fOutput->Add(fHistZatSPDouter0notok);
808 fHistZatSPDouter1notok = new TH1F("fHistZatSPDouter1notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
809 fHistZatSPDouter1notok->Sumw2();
810 fHistZatSPDouter1notok->SetMinimum(0);
811 fOutput->Add(fHistZatSPDouter1notok);
812 fHistZatSPDouter2notok = new TH1F("fHistZatSPDouter2notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
813 fHistZatSPDouter2notok->Sumw2();
814 fHistZatSPDouter2notok->SetMinimum(0);
815 fOutput->Add(fHistZatSPDouter2notok);
816 fHistZatSPDouter3notok = new TH1F("fHistZatSPDouter3notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
817 fHistZatSPDouter3notok->Sumw2();
818 fHistZatSPDouter3notok->SetMinimum(0);
819 fOutput->Add(fHistZatSPDouter3notok);
821 fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
822 fHistxlocSDDok->Sumw2();
823 fHistxlocSDDok->SetMinimum(0);
824 fOutput->Add(fHistxlocSDDok);
826 fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75);
827 fOutput->Add(fHistxlocVSmodSDDok);
829 fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
830 fHistzlocSDDok->Sumw2();
831 fHistzlocSDDok->SetMinimum(0);
832 fOutput->Add(fHistzlocSDDok);
834 fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
835 fHistxlocSDDall->Sumw2();
836 fHistxlocSDDall->SetMinimum(0);
837 fOutput->Add(fHistxlocSDDall);
839 fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
840 fHistzlocSDDall->Sumw2();
841 fHistzlocSDDall->SetMinimum(0);
842 fOutput->Add(fHistzlocSDDall);
844 fHistxlocSDDA = new TH1F("fHistxlocSDDA", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
845 fHistxlocSDDA->Sumw2();
846 fHistxlocSDDA->SetMinimum(0);
847 fOutput->Add(fHistxlocSDDA);
849 fHistzlocSDDA = new TH1F("fHistzlocSDDA", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
850 fHistzlocSDDA->Sumw2();
851 fHistzlocSDDA->SetMinimum(0);
852 fOutput->Add(fHistzlocSDDA);
854 fHistxlocSDDB = new TH1F("fHistxlocSDDB", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
855 fHistxlocSDDB->Sumw2();
856 fHistxlocSDDB->SetMinimum(0);
857 fOutput->Add(fHistxlocSDDB);
859 fHistzlocSDDB = new TH1F("fHistzlocSDDB", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
860 fHistzlocSDDB->Sumw2();
861 fHistzlocSDDB->SetMinimum(0);
862 fOutput->Add(fHistzlocSDDB);
865 fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415);
866 fHistPhiTPCInAcc->Sumw2();
867 fHistPhiTPCInAcc->SetMinimum(0);
868 fOutput->Add(fHistPhiTPCInAcc);
870 fHistEtaTPCInAcc = new TH1F("fHistEtaTPCInAcc","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
871 fHistEtaTPCInAcc->Sumw2();
872 fHistEtaTPCInAcc->SetMinimum(0);
873 fOutput->Add(fHistEtaTPCInAcc);
875 fHistEtaTPCInAccA = new TH1F("fHistEtaTPCInAccA","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
876 fHistEtaTPCInAccA->Sumw2();
877 fHistEtaTPCInAccA->SetMinimum(0);
878 fOutput->Add(fHistEtaTPCInAccA);
880 fHistEtaTPCInAccB = new TH1F("fHistEtaTPCInAccB","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
881 fHistEtaTPCInAccB->Sumw2();
882 fHistEtaTPCInAccB->SetMinimum(0);
883 fOutput->Add(fHistEtaTPCInAccB);
885 fHistNclsTPCInAccA = new TH1F("fHistNclsTPCInAccA","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
886 fHistNclsTPCInAccA->Sumw2();
887 fHistNclsTPCInAccA->SetMinimum(0);
888 fOutput->Add(fHistNclsTPCInAccA);
890 fHistNclsTPCInAccB = new TH1F("fHistNclsTPCInAccB","Ncls distribution of TPC tracks; #eta; N tracks",80, -0.5,159.5);
891 fHistNclsTPCInAccB->Sumw2();
892 fHistNclsTPCInAccB->SetMinimum(0);
893 fOutput->Add(fHistNclsTPCInAccB);
895 fHistChi2PerClsTPCInAccA = new TH1F("fHistChi2PerClsTPCInAccA","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
896 fHistChi2PerClsTPCInAccA->Sumw2();
897 fHistChi2PerClsTPCInAccA->SetMinimum(0);
898 fOutput->Add(fHistChi2PerClsTPCInAccA);
900 fHistChi2PerClsTPCInAccB = new TH1F("fHistChi2PerClsTPCInAccB","Chi2PerCls distribution of TPC tracks; #eta; N tracks",100,0,20);
901 fHistChi2PerClsTPCInAccB->Sumw2();
902 fHistChi2PerClsTPCInAccB->SetMinimum(0);
903 fOutput->Add(fHistChi2PerClsTPCInAccB);
905 fHistChi2PerClsITSInAccA = new TH1F("fHistChi2PerClsITSInAccA","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
906 fHistChi2PerClsITSInAccA->Sumw2();
907 fHistChi2PerClsITSInAccA->SetMinimum(0);
908 fOutput->Add(fHistChi2PerClsITSInAccA);
910 fHistChi2PerClsITSInAccB = new TH1F("fHistChi2PerClsITSInAccB","Chi2PerCls distribution of ITS tracks; #eta; N tracks",100,0,20);
911 fHistChi2PerClsITSInAccB->Sumw2();
912 fHistChi2PerClsITSInAccB->SetMinimum(0);
913 fOutput->Add(fHistChi2PerClsITSInAccB);
915 fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415);
916 fHistPhiITSMIokbadoutinz6InAcc->Sumw2();
917 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
918 fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc);
920 fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
922 fHistPtTPC->SetMinimum(0);
923 fOutput->Add(fHistPtTPC);
925 fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
926 fHistPtITSMI6->Sumw2();
927 fHistPtITSMI6->SetMinimum(0);
928 fOutput->Add(fHistPtITSMI6);
930 fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
931 fHistPtITSMI5->Sumw2();
932 fHistPtITSMI5->SetMinimum(0);
933 fOutput->Add(fHistPtITSMI5);
935 fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
936 fHistPtITSMI4->Sumw2();
937 fHistPtITSMI4->SetMinimum(0);
938 fOutput->Add(fHistPtITSMI4);
940 fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
941 fHistPtITSMI3->Sumw2();
942 fHistPtITSMI3->SetMinimum(0);
943 fOutput->Add(fHistPtITSMI3);
945 fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
946 fHistPtITSMI2->Sumw2();
947 fHistPtITSMI2->SetMinimum(0);
948 fOutput->Add(fHistPtITSMI2);
950 fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
951 fHistPtITSMISPD->Sumw2();
952 fHistPtITSMISPD->SetMinimum(0);
953 fOutput->Add(fHistPtITSMISPD);
955 fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
956 fHistPtITSMIoneSPD->Sumw2();
957 fHistPtITSMIoneSPD->SetMinimum(0);
958 fOutput->Add(fHistPtITSMIoneSPD);
960 fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
961 fHistPtTPCInAcc->Sumw2();
962 fHistPtTPCInAcc->SetMinimum(0);
963 fOutput->Add(fHistPtTPCInAcc);
965 fHistPtTPCInAccMCtwoSPD = new TH1F("fHistPtTPCInAccMCtwoSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
966 fHistPtTPCInAccMCtwoSPD->Sumw2();
967 fHistPtTPCInAccMCtwoSPD->SetMinimum(0);
968 fOutput->Add(fHistPtTPCInAccMCtwoSPD);
970 fHistPtTPCInAccMConeSPD = new TH1F("fHistPtTPCInAccMConeSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
971 fHistPtTPCInAccMConeSPD->Sumw2();
972 fHistPtTPCInAccMConeSPD->SetMinimum(0);
973 fOutput->Add(fHistPtTPCInAccMConeSPD);
975 fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500);
976 fOutput->Add(fHistdEdxVSPtTPCInAcc);
978 fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500);
979 fOutput->Add(fHistdEdxVSPtITSTPCsel);
981 fHistTPCclsVSPtTPCInAcc = new TH2F("fHistTPCclsVSPtTPCInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
982 fOutput->Add(fHistTPCclsVSPtTPCInAcc);
983 fHistTPCclsVSPtITSMISPDInAcc = new TH2F("fHistTPCclsVSPtITSMISPDInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
984 fOutput->Add(fHistTPCclsVSPtITSMISPDInAcc);
986 fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5);
987 fHistPtVSphiTPCInAcc->SetMinimum(0);
988 fOutput->Add(fHistPtVSphiTPCInAcc);
990 fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
991 fHistPtTPCInAccNoTRDout->Sumw2();
992 fHistPtTPCInAccNoTRDout->SetMinimum(0);
993 fOutput->Add(fHistPtTPCInAccNoTRDout);
995 fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
996 fHistPtTPCInAccNoTOFout->Sumw2();
997 fHistPtTPCInAccNoTOFout->SetMinimum(0);
998 fOutput->Add(fHistPtTPCInAccNoTOFout);
1000 fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1001 fHistPtTPCInAccWithPtTPCAtVtx->Sumw2();
1002 fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0);
1003 fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx);
1005 fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1006 fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2();
1007 fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0);
1008 fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall);
1010 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);
1011 fHistDeltaPtTPC->SetMinimum(0);
1012 fOutput->Add(fHistDeltaPtTPC);
1014 fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1015 fHistPtITSMI6InAcc->Sumw2();
1016 fHistPtITSMI6InAcc->SetMinimum(0);
1017 fOutput->Add(fHistPtITSMI6InAcc);
1019 fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1020 fHistPtITSMI5InAcc->Sumw2();
1021 fHistPtITSMI5InAcc->SetMinimum(0);
1022 fOutput->Add(fHistPtITSMI5InAcc);
1024 fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1025 fHistPtITSMI4InAcc->Sumw2();
1026 fHistPtITSMI4InAcc->SetMinimum(0);
1027 fOutput->Add(fHistPtITSMI4InAcc);
1029 fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1030 fHistPtITSMI3InAcc->Sumw2();
1031 fHistPtITSMI3InAcc->SetMinimum(0);
1032 fOutput->Add(fHistPtITSMI3InAcc);
1034 fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1035 fHistPtITSMI2InAcc->Sumw2();
1036 fHistPtITSMI2InAcc->SetMinimum(0);
1037 fOutput->Add(fHistPtITSMI2InAcc);
1039 fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1040 fHistPtITSMISPDInAcc->Sumw2();
1041 fHistPtITSMISPDInAcc->SetMinimum(0);
1042 fOutput->Add(fHistPtITSMISPDInAcc);
1044 fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1045 fHistPtITSMIoneSPDInAcc->Sumw2();
1046 fHistPtITSMIoneSPDInAcc->SetMinimum(0);
1047 fOutput->Add(fHistPtITSMIoneSPDInAcc);
1049 fHistPtITSMIoneSPDInAccShared = new TH1F("fHistPtITSMIoneSPDInAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1050 fHistPtITSMIoneSPDInAccShared->Sumw2();
1051 fHistPtITSMIoneSPDInAccShared->SetMinimum(0);
1052 fOutput->Add(fHistPtITSMIoneSPDInAccShared);
1054 fHistPtITSMIoneSPDInAccSharedSPD = new TH1F("fHistPtITSMIoneSPDInAccSharedSPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1055 fHistPtITSMIoneSPDInAccSharedSPD->Sumw2();
1056 fHistPtITSMIoneSPDInAccSharedSPD->SetMinimum(0);
1057 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPD);
1059 fHistPtITSMISPD1InAccShared = new TH1F("fHistPtITSMISPD1InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1060 fHistPtITSMISPD1InAccShared->Sumw2();
1061 fHistPtITSMISPD1InAccShared->SetMinimum(0);
1062 fOutput->Add(fHistPtITSMISPD1InAccShared);
1064 fHistPtITSMISPD2InAccShared = new TH1F("fHistPtITSMISPD2InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1065 fHistPtITSMISPD2InAccShared->Sumw2();
1066 fHistPtITSMISPD2InAccShared->SetMinimum(0);
1067 fOutput->Add(fHistPtITSMISPD2InAccShared);
1069 fHistPtITSMIoneSPDInAccSharedFake = new TH1F("fHistPtITSMIoneSPDInAccSharedFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1070 fHistPtITSMIoneSPDInAccSharedFake->Sumw2();
1071 fHistPtITSMIoneSPDInAccSharedFake->SetMinimum(0);
1072 fOutput->Add(fHistPtITSMIoneSPDInAccSharedFake);
1074 fHistPtITSMIoneSPDInAccSharedSPDFake = new TH1F("fHistPtITSMIoneSPDInAccSharedSPDFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1075 fHistPtITSMIoneSPDInAccSharedSPDFake->Sumw2();
1076 fHistPtITSMIoneSPDInAccSharedSPDFake->SetMinimum(0);
1077 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPDFake);
1079 fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
1080 fHistPhiITSMI6InAcc->Sumw2();
1081 fHistPhiITSMI6InAcc->SetMinimum(0);
1082 fOutput->Add(fHistPhiITSMI6InAcc);
1084 fHistPhiITSMI5InAcc = new TH1F("fHistPhiITSMI5InAcc","phi distribution of ITSMI5 tracks; #phi; N tracks",100,0,2*3.1415);
1085 fHistPhiITSMI5InAcc->Sumw2();
1086 fHistPhiITSMI5InAcc->SetMinimum(0);
1087 fOutput->Add(fHistPhiITSMI5InAcc);
1089 fHistPhiITSMI4InAcc = new TH1F("fHistPhiITSMI4InAcc","phi distribution of ITSMI4 tracks; #phi; N tracks",100,0,2*3.1415);
1090 fHistPhiITSMI4InAcc->Sumw2();
1091 fHistPhiITSMI4InAcc->SetMinimum(0);
1092 fOutput->Add(fHistPhiITSMI4InAcc);
1094 fHistPhiITSMI3InAcc = new TH1F("fHistPhiITSMI3InAcc","phi distribution of ITSMI3 tracks; #phi; N tracks",100,0,2*3.1415);
1095 fHistPhiITSMI3InAcc->Sumw2();
1096 fHistPhiITSMI3InAcc->SetMinimum(0);
1097 fOutput->Add(fHistPhiITSMI3InAcc);
1099 fHistPhiITSMI2InAcc = new TH1F("fHistPhiITSMI2InAcc","phi distribution of ITSMI2 tracks; #phi; N tracks",100,0,2*3.1415);
1100 fHistPhiITSMI2InAcc->Sumw2();
1101 fHistPhiITSMI2InAcc->SetMinimum(0);
1102 fOutput->Add(fHistPhiITSMI2InAcc);
1104 fHistPhiITSMISPDInAcc = new TH1F("fHistPhiITSMISPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1105 fHistPhiITSMISPDInAcc->Sumw2();
1106 fHistPhiITSMISPDInAcc->SetMinimum(0);
1107 fOutput->Add(fHistPhiITSMISPDInAcc);
1109 fHistPhiITSMIoneSPDInAcc = new TH1F("fHistPhiITSMIoneSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1110 fHistPhiITSMIoneSPDInAcc->Sumw2();
1111 fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
1112 fOutput->Add(fHistPhiITSMIoneSPDInAcc);
1114 fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
1115 fHistEtaITSMI6InAcc->Sumw2();
1116 fHistEtaITSMI6InAcc->SetMinimum(0);
1117 fOutput->Add(fHistEtaITSMI6InAcc);
1119 fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
1120 fHistEtaITSMI5InAcc->Sumw2();
1121 fHistEtaITSMI5InAcc->SetMinimum(0);
1122 fOutput->Add(fHistEtaITSMI5InAcc);
1124 fHistEtaITSMI4InAcc = new TH1F("fHistEtaITSMI4InAcc","eta distribution of ITSMI4 tracks; #eta; N tracks",100,-1.5,+1.5);
1125 fHistEtaITSMI4InAcc->Sumw2();
1126 fHistEtaITSMI4InAcc->SetMinimum(0);
1127 fOutput->Add(fHistEtaITSMI4InAcc);
1129 fHistEtaITSMI3InAcc = new TH1F("fHistEtaITSMI3InAcc","eta distribution of ITSMI3 tracks; #eta; N tracks",100,-1.5,+1.5);
1130 fHistEtaITSMI3InAcc->Sumw2();
1131 fHistEtaITSMI3InAcc->SetMinimum(0);
1132 fOutput->Add(fHistEtaITSMI3InAcc);
1134 fHistEtaITSMI2InAcc = new TH1F("fHistEtaITSMI2InAcc","eta distribution of ITSMI2 tracks; #eta; N tracks",100,-1.5,+1.5);
1135 fHistEtaITSMI2InAcc->Sumw2();
1136 fHistEtaITSMI2InAcc->SetMinimum(0);
1137 fOutput->Add(fHistEtaITSMI2InAcc);
1139 fHistEtaITSMISPDInAcc = new TH1F("fHistEtaITSMISPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1140 fHistEtaITSMISPDInAcc->Sumw2();
1141 fHistEtaITSMISPDInAcc->SetMinimum(0);
1142 fOutput->Add(fHistEtaITSMISPDInAcc);
1144 fHistEtaITSMIoneSPDInAcc = new TH1F("fHistEtaITSMIoneSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1145 fHistEtaITSMIoneSPDInAcc->Sumw2();
1146 fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
1147 fOutput->Add(fHistEtaITSMIoneSPDInAcc);
1150 fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1151 fHistPtITSMI6InAccFake->Sumw2();
1152 fHistPtITSMI6InAccFake->SetMinimum(0);
1153 fOutput->Add(fHistPtITSMI6InAccFake);
1155 fHistPtITSMI5InAccFake = new TH1F("fHistPtITSMI5InAccFake","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1156 fHistPtITSMI5InAccFake->Sumw2();
1157 fHistPtITSMI5InAccFake->SetMinimum(0);
1158 fOutput->Add(fHistPtITSMI5InAccFake);
1160 fHistPtITSMI4InAccFake = new TH1F("fHistPtITSMI4InAccFake","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1161 fHistPtITSMI4InAccFake->Sumw2();
1162 fHistPtITSMI4InAccFake->SetMinimum(0);
1163 fOutput->Add(fHistPtITSMI4InAccFake);
1165 fHistPtITSMI3InAccFake = new TH1F("fHistPtITSMI3InAccFake","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1166 fHistPtITSMI3InAccFake->Sumw2();
1167 fHistPtITSMI3InAccFake->SetMinimum(0);
1168 fOutput->Add(fHistPtITSMI3InAccFake);
1170 fHistPtITSMI2InAccFake = new TH1F("fHistPtITSMI2InAccFake","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1171 fHistPtITSMI2InAccFake->Sumw2();
1172 fHistPtITSMI2InAccFake->SetMinimum(0);
1173 fOutput->Add(fHistPtITSMI2InAccFake);
1175 fHistPtITSMISPDInAccFake = new TH1F("fHistPtITSMISPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1176 fHistPtITSMISPDInAccFake->Sumw2();
1177 fHistPtITSMISPDInAccFake->SetMinimum(0);
1178 fOutput->Add(fHistPtITSMISPDInAccFake);
1180 fHistPtITSMIoneSPDInAccFake = new TH1F("fHistPtITSMIoneSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1181 fHistPtITSMIoneSPDInAccFake->Sumw2();
1182 fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
1183 fOutput->Add(fHistPtITSMIoneSPDInAccFake);
1185 fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1186 fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
1187 fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
1188 fOutput->Add(fHistPtITSMIoneSPDthreeSDDSSDInAcc);
1190 fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1191 fHistPtITSTPCsel->Sumw2();
1192 fHistPtITSTPCsel->SetMinimum(0);
1193 fOutput->Add(fHistPtITSTPCsel);
1195 fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1196 fHistPtITSTPCselP->Sumw2();
1197 fHistPtITSTPCselP->SetMinimum(0);
1198 fOutput->Add(fHistPtITSTPCselP);
1200 fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1201 fHistPtITSTPCselS->Sumw2();
1202 fHistPtITSTPCselS->SetMinimum(0);
1203 fOutput->Add(fHistPtITSTPCselS);
1205 fHistPtITSTPCselFake = new TH1F("fHistPtITSTPCselFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1206 fHistPtITSTPCselFake->Sumw2();
1207 fHistPtITSTPCselFake->SetMinimum(0);
1208 fOutput->Add(fHistPtITSTPCselFake);
1210 fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1211 fHistPtITSTPCselSfromStrange->Sumw2();
1212 fHistPtITSTPCselSfromStrange->SetMinimum(0);
1213 fOutput->Add(fHistPtITSTPCselSfromStrange);
1215 fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1216 fHistPtITSTPCselPfromStrange->Sumw2();
1217 fHistPtITSTPCselPfromStrange->SetMinimum(0);
1218 fOutput->Add(fHistPtITSTPCselPfromStrange);
1220 fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1221 fHistPtITSTPCselSfromMat->Sumw2();
1222 fHistPtITSTPCselSfromMat->SetMinimum(0);
1223 fOutput->Add(fHistPtITSTPCselSfromMat);
1225 fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1226 fHistPtTPCInAccP->Sumw2();
1227 fHistPtTPCInAccP->SetMinimum(0);
1228 fOutput->Add(fHistPtTPCInAccP);
1230 fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1231 fHistPtTPCInAccPfromStrange->Sumw2();
1232 fHistPtTPCInAccPfromStrange->SetMinimum(0);
1233 fOutput->Add(fHistPtTPCInAccPfromStrange);
1235 fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1236 fHistPtITSMI6InAccP->Sumw2();
1237 fHistPtITSMI6InAccP->SetMinimum(0);
1238 fOutput->Add(fHistPtITSMI6InAccP);
1240 fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1241 fHistPtITSMI5InAccP->Sumw2();
1242 fHistPtITSMI5InAccP->SetMinimum(0);
1243 fOutput->Add(fHistPtITSMI5InAccP);
1245 fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1246 fHistPtITSMI4InAccP->Sumw2();
1247 fHistPtITSMI4InAccP->SetMinimum(0);
1248 fOutput->Add(fHistPtITSMI4InAccP);
1250 fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1251 fHistPtITSMI3InAccP->Sumw2();
1252 fHistPtITSMI3InAccP->SetMinimum(0);
1253 fOutput->Add(fHistPtITSMI3InAccP);
1255 fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1256 fHistPtITSMI2InAccP->Sumw2();
1257 fHistPtITSMI2InAccP->SetMinimum(0);
1258 fOutput->Add(fHistPtITSMI2InAccP);
1260 fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1261 fHistPtITSMISPDInAccP->Sumw2();
1262 fHistPtITSMISPDInAccP->SetMinimum(0);
1263 fOutput->Add(fHistPtITSMISPDInAccP);
1265 fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1266 fHistPtITSMIoneSPDInAccP->Sumw2();
1267 fHistPtITSMIoneSPDInAccP->SetMinimum(0);
1268 fOutput->Add(fHistPtITSMIoneSPDInAccP);
1270 fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1271 fHistPtTPCInAccS->Sumw2();
1272 fHistPtTPCInAccS->SetMinimum(0);
1273 fOutput->Add(fHistPtTPCInAccS);
1275 fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1276 fHistPtTPCInAccSfromStrange->Sumw2();
1277 fHistPtTPCInAccSfromStrange->SetMinimum(0);
1278 fOutput->Add(fHistPtTPCInAccSfromStrange);
1280 fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1281 fHistPtTPCInAccSfromMat->Sumw2();
1282 fHistPtTPCInAccSfromMat->SetMinimum(0);
1283 fOutput->Add(fHistPtTPCInAccSfromMat);
1285 fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1286 fHistPtITSMI6InAccS->Sumw2();
1287 fHistPtITSMI6InAccS->SetMinimum(0);
1288 fOutput->Add(fHistPtITSMI6InAccS);
1290 fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1291 fHistPtITSMI5InAccS->Sumw2();
1292 fHistPtITSMI5InAccS->SetMinimum(0);
1293 fOutput->Add(fHistPtITSMI5InAccS);
1295 fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1296 fHistPtITSMI4InAccS->Sumw2();
1297 fHistPtITSMI4InAccS->SetMinimum(0);
1298 fOutput->Add(fHistPtITSMI4InAccS);
1300 fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1301 fHistPtITSMI3InAccS->Sumw2();
1302 fHistPtITSMI3InAccS->SetMinimum(0);
1303 fOutput->Add(fHistPtITSMI3InAccS);
1305 fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1306 fHistPtITSMI2InAccS->Sumw2();
1307 fHistPtITSMI2InAccS->SetMinimum(0);
1308 fOutput->Add(fHistPtITSMI2InAccS);
1310 fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1311 fHistPtITSMISPDInAccS->Sumw2();
1312 fHistPtITSMISPDInAccS->SetMinimum(0);
1313 fOutput->Add(fHistPtITSMISPDInAccS);
1315 fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1316 fHistPtITSMIoneSPDInAccS->Sumw2();
1317 fHistPtITSMIoneSPDInAccS->SetMinimum(0);
1318 fOutput->Add(fHistPtITSMIoneSPDInAccS);
1320 fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1321 fHistPtITSMIokbadoutinz6->Sumw2();
1322 fHistPtITSMIokbadoutinz6->SetMinimum(0);
1323 fOutput->Add(fHistPtITSMIokbadoutinz6);
1325 fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1326 fHistPtITSMIokbadoutinz4InAcc->Sumw2();
1327 fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0);
1328 fOutput->Add(fHistPtITSMIokbadoutinz4InAcc);
1330 fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1331 fHistPtITSMIokbadoutinz5InAcc->Sumw2();
1332 fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0);
1333 fOutput->Add(fHistPtITSMIokbadoutinz5InAcc);
1335 fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1336 fHistPtITSMIokbadoutinz6InAcc->Sumw2();
1337 fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0);
1338 fOutput->Add(fHistPtITSMIokbadoutinz6InAcc);
1340 fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10);
1341 fHistRProdVtxInAccP->Sumw2();
1342 fHistRProdVtxInAccP->SetMinimum(0);
1343 fOutput->Add(fHistRProdVtxInAccP);
1345 fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10);
1346 fHistRProdVtxInAccS->Sumw2();
1347 fHistRProdVtxInAccS->SetMinimum(0);
1348 fOutput->Add(fHistRProdVtxInAccS);
1350 fHistd0rphiTPCInAccA = new TH1F("fHistd0rphiTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1351 fHistd0rphiTPCInAccA->Sumw2();
1352 fHistd0rphiTPCInAccA->SetMinimum(0);
1353 fOutput->Add(fHistd0rphiTPCInAccA);
1355 fHistd0rphiTPCInAccB = new TH1F("fHistd0rphiTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} rphi [cm]; N tracks",300,-5,5);
1356 fHistd0rphiTPCInAccB->Sumw2();
1357 fHistd0rphiTPCInAccB->SetMinimum(0);
1358 fOutput->Add(fHistd0rphiTPCInAccB);
1360 fHistd0zTPCInAccA = new TH1F("fHistd0zTPCInAccA","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1361 fHistd0zTPCInAccA->Sumw2();
1362 fHistd0zTPCInAccA->SetMinimum(0);
1363 fOutput->Add(fHistd0zTPCInAccA);
1365 fHistd0zTPCInAccB = new TH1F("fHistd0zTPCInAccB","Transverse imp. par. to VertexTracks; d_{0} z [cm]; N tracks",300,-5,5);
1366 fHistd0zTPCInAccB->Sumw2();
1367 fHistd0zTPCInAccB->SetMinimum(0);
1368 fOutput->Add(fHistd0zTPCInAccB);
1370 fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1371 fHistd0rphiTPCInAccP150200->Sumw2();
1372 fHistd0rphiTPCInAccP150200->SetMinimum(0);
1373 fOutput->Add(fHistd0rphiTPCInAccP150200);
1375 fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1376 fHistd0rphiTPCInAccP500700->Sumw2();
1377 fHistd0rphiTPCInAccP500700->SetMinimum(0);
1378 fOutput->Add(fHistd0rphiTPCInAccP500700);
1380 fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1381 fHistd0rphiTPCInAccP10001500->Sumw2();
1382 fHistd0rphiTPCInAccP10001500->SetMinimum(0);
1383 fOutput->Add(fHistd0rphiTPCInAccP10001500);
1385 fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1386 fHistd0rphiTPCInAccS150200->Sumw2();
1387 fHistd0rphiTPCInAccS150200->SetMinimum(0);
1388 fOutput->Add(fHistd0rphiTPCInAccS150200);
1390 fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1391 fHistd0rphiTPCInAccS500700->Sumw2();
1392 fHistd0rphiTPCInAccS500700->SetMinimum(0);
1393 fOutput->Add(fHistd0rphiTPCInAccS500700);
1395 fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1396 fHistd0rphiTPCInAccS10001500->Sumw2();
1397 fHistd0rphiTPCInAccS10001500->SetMinimum(0);
1398 fOutput->Add(fHistd0rphiTPCInAccS10001500);
1400 fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1401 fHistd0rphiITSMISPDInAccP150200->Sumw2();
1402 fHistd0rphiITSMISPDInAccP150200->SetMinimum(0);
1403 fOutput->Add(fHistd0rphiITSMISPDInAccP150200);
1405 fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1406 fHistd0rphiITSMISPDInAccP500700->Sumw2();
1407 fHistd0rphiITSMISPDInAccP500700->SetMinimum(0);
1408 fOutput->Add(fHistd0rphiITSMISPDInAccP500700);
1410 fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1411 fHistd0rphiITSMISPDInAccP10001500->Sumw2();
1412 fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0);
1413 fOutput->Add(fHistd0rphiITSMISPDInAccP10001500);
1415 fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1416 fHistd0rphiITSMISPDInAccS150200->Sumw2();
1417 fHistd0rphiITSMISPDInAccS150200->SetMinimum(0);
1418 fOutput->Add(fHistd0rphiITSMISPDInAccS150200);
1420 fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1421 fHistd0rphiITSMISPDInAccS500700->Sumw2();
1422 fHistd0rphiITSMISPDInAccS500700->SetMinimum(0);
1423 fOutput->Add(fHistd0rphiITSMISPDInAccS500700);
1425 fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1426 fHistd0rphiITSMISPDInAccS10001500->Sumw2();
1427 fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0);
1428 fOutput->Add(fHistd0rphiITSMISPDInAccS10001500);
1430 fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1431 fHistd0rphiITSMIoneSPDInAccP150200->Sumw2();
1432 fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0);
1433 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200);
1435 fHistd0rphiITSMIoneSPDInAccP350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccP350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1436 fHistd0rphiITSMIoneSPDInAccP350450->Sumw2();
1437 fHistd0rphiITSMIoneSPDInAccP350450->SetMinimum(0);
1438 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP350450);
1440 fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1441 fHistd0rphiITSMIoneSPDInAccP500700->Sumw2();
1442 fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0);
1443 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700);
1445 fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1446 fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2();
1447 fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0);
1448 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500);
1450 fHistd0rphiITSMIoneSPDInAccP25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1451 fHistd0rphiITSMIoneSPDInAccP25004000->Sumw2();
1452 fHistd0rphiITSMIoneSPDInAccP25004000->SetMinimum(0);
1453 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP25004000);
1455 fHistd0rphiITSMIoneSPDInAccP40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1456 fHistd0rphiITSMIoneSPDInAccP40008000->Sumw2();
1457 fHistd0rphiITSMIoneSPDInAccP40008000->SetMinimum(0);
1458 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP40008000);
1460 fHistd0rphiITSMIoneSPDInAccA = new TH1F("fHistd0rphiITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1461 fHistd0rphiITSMIoneSPDInAccA->Sumw2();
1462 fHistd0rphiITSMIoneSPDInAccA->SetMinimum(0);
1463 fOutput->Add(fHistd0rphiITSMIoneSPDInAccA);
1465 fHistd0rphiITSMIoneSPDInAccB = new TH1F("fHistd0rphiITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1466 fHistd0rphiITSMIoneSPDInAccB->Sumw2();
1467 fHistd0rphiITSMIoneSPDInAccB->SetMinimum(0);
1468 fOutput->Add(fHistd0rphiITSMIoneSPDInAccB);
1470 fHistd0zITSMIoneSPDInAccA = new TH1F("fHistd0zITSMIoneSPDInAccA","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1471 fHistd0zITSMIoneSPDInAccA->Sumw2();
1472 fHistd0zITSMIoneSPDInAccA->SetMinimum(0);
1473 fOutput->Add(fHistd0zITSMIoneSPDInAccA);
1475 fHistd0zITSMIoneSPDInAccB = new TH1F("fHistd0zITSMIoneSPDInAccB","Transverse imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1476 fHistd0zITSMIoneSPDInAccB->Sumw2();
1477 fHistd0zITSMIoneSPDInAccB->SetMinimum(0);
1478 fOutput->Add(fHistd0zITSMIoneSPDInAccB);
1480 fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1481 fHistd0zITSMIoneSPDInAccP150200->Sumw2();
1482 fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0);
1483 fOutput->Add(fHistd0zITSMIoneSPDInAccP150200);
1485 fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1486 fHistd0zITSMIoneSPDInAccP500700->Sumw2();
1487 fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0);
1488 fOutput->Add(fHistd0zITSMIoneSPDInAccP500700);
1490 fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1491 fHistd0zITSMIoneSPDInAccP10001500->Sumw2();
1492 fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0);
1493 fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500);
1495 fHistd0zVSetaTPCInAccP10001500 = new TH2F("fHistd0zVSetaTPCInAccP10001500","Long. imp. par. to VertexSPD for TPC tracks; d_{0} z [cm]; eta",100,-4,4,10,-1,1);
1496 fOutput->Add(fHistd0zVSetaTPCInAccP10001500);
1498 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);
1499 fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500);
1501 fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1);
1502 fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500);
1504 fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1505 fHistd0rphiITSMIoneSPDInAccS150200->Sumw2();
1506 fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0);
1507 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200);
1509 fHistd0rphiITSMIoneSPDInAccS350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1510 fHistd0rphiITSMIoneSPDInAccS350450->Sumw2();
1511 fHistd0rphiITSMIoneSPDInAccS350450->SetMinimum(0);
1512 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450);
1514 fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1515 fHistd0rphiITSMIoneSPDInAccS500700->Sumw2();
1516 fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0);
1517 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700);
1519 fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1520 fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2();
1521 fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0);
1522 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22);
1524 fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1525 fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2();
1526 fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0);
1527 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211);
1529 fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1530 fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2();
1531 fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0);
1532 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310);
1534 fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1535 fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2();
1536 fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0);
1537 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321);
1539 fHistd0rphiITSMIoneSPDInAccS500700from3122 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from3122","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1540 fHistd0rphiITSMIoneSPDInAccS500700from3122->Sumw2();
1541 fHistd0rphiITSMIoneSPDInAccS500700from3122->SetMinimum(0);
1542 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from3122);
1544 fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1545 fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2();
1546 fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0);
1547 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500);
1549 fHistd0rphiITSMIoneSPDInAccS25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1550 fHistd0rphiITSMIoneSPDInAccS25004000->Sumw2();
1551 fHistd0rphiITSMIoneSPDInAccS25004000->SetMinimum(0);
1552 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000);
1554 fHistd0rphiITSMIoneSPDInAccS40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1555 fHistd0rphiITSMIoneSPDInAccS40008000->Sumw2();
1556 fHistd0rphiITSMIoneSPDInAccS40008000->SetMinimum(0);
1557 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000);
1559 fHistd0rphiITSMIoneSPDInAccS150200fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1560 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Sumw2();
1561 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->SetMinimum(0);
1562 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromStrange);
1564 fHistd0rphiITSMIoneSPDInAccS150200fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1565 fHistd0rphiITSMIoneSPDInAccS150200fromMat->Sumw2();
1566 fHistd0rphiITSMIoneSPDInAccS150200fromMat->SetMinimum(0);
1567 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromMat);
1569 fHistd0rphiITSMIoneSPDInAccS350450fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1570 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Sumw2();
1571 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->SetMinimum(0);
1572 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromStrange);
1574 fHistd0rphiITSMIoneSPDInAccS350450fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1575 fHistd0rphiITSMIoneSPDInAccS350450fromMat->Sumw2();
1576 fHistd0rphiITSMIoneSPDInAccS350450fromMat->SetMinimum(0);
1577 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromMat);
1579 fHistd0rphiITSMIoneSPDInAccS500700fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1580 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Sumw2();
1581 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->SetMinimum(0);
1582 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromStrange);
1584 fHistd0rphiITSMIoneSPDInAccS500700fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1585 fHistd0rphiITSMIoneSPDInAccS500700fromMat->Sumw2();
1586 fHistd0rphiITSMIoneSPDInAccS500700fromMat->SetMinimum(0);
1587 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromMat);
1589 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1590 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Sumw2();
1591 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->SetMinimum(0);
1592 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromStrange);
1594 fHistd0rphiITSMIoneSPDInAccS10001500fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1595 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Sumw2();
1596 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->SetMinimum(0);
1597 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromMat);
1599 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1600 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Sumw2();
1601 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->SetMinimum(0);
1602 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromStrange);
1604 fHistd0rphiITSMIoneSPDInAccS25004000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1605 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Sumw2();
1606 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->SetMinimum(0);
1607 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromMat);
1609 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1610 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Sumw2();
1611 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->SetMinimum(0);
1612 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromStrange);
1614 fHistd0rphiITSMIoneSPDInAccS40008000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1615 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Sumw2();
1616 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->SetMinimum(0);
1617 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromMat);
1620 fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1621 fHistd0zITSMIoneSPDInAccS150200->Sumw2();
1622 fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0);
1623 fOutput->Add(fHistd0zITSMIoneSPDInAccS150200);
1625 fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1626 fHistd0zITSMIoneSPDInAccS500700->Sumw2();
1627 fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0);
1628 fOutput->Add(fHistd0zITSMIoneSPDInAccS500700);
1630 fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1631 fHistd0zITSMIoneSPDInAccS10001500->Sumw2();
1632 fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0);
1633 fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500);
1635 fHistITSRedChi2NonFakePt02 = new TH1F("fHistITSRedChi2NonFakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1636 fOutput->Add(fHistITSRedChi2NonFakePt02);
1637 fHistITSRedChi2FakePt02 = new TH1F("fHistITSRedChi2FakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1638 fOutput->Add(fHistITSRedChi2FakePt02);
1639 fHistITSRedChi2NonFakePt05 = new TH1F("fHistITSRedChi2NonFakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1640 fOutput->Add(fHistITSRedChi2NonFakePt05);
1641 fHistITSRedChi2FakePt05 = new TH1F("fHistITSRedChi2FakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1642 fOutput->Add(fHistITSRedChi2FakePt05);
1643 fHistITSRedChi2NonFakePt1 = new TH1F("fHistITSRedChi2NonFakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1644 fOutput->Add(fHistITSRedChi2NonFakePt1);
1645 fHistITSRedChi2FakePt1 = new TH1F("fHistITSRedChi2FakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1646 fOutput->Add(fHistITSRedChi2FakePt1);
1651 fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:pdgMCMoth:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel");
1652 fOutput->Add(fNtupleESDTracks);
1654 fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt");
1655 fOutput->Add(fNtupleITSAlignExtra);
1657 fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt");
1658 fOutput->Add(fNtupleITSAlignSPDTracklets);
1663 //________________________________________________________________________
1664 void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
1667 // Called for each event
1669 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1672 Printf("ERROR: fESD not available");
1676 //if(fESD->GetEventNumberInFile()<7) return;
1678 // only events in the requested multiplicity range
1679 if(!IsSelectedCentrality()) return;
1681 fHistNEvents->Fill(-1);
1684 Bool_t isSelected = kTRUE;
1686 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1688 if(!isSelected) return;
1691 //if(fESD->GetEventType()!=7) return;
1693 // *********** MC info ***************
1694 TArrayF mcVertex(3);
1695 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
1696 Float_t dNchdy=-999.;
1699 AliESDVertex *vertexMC=0;
1702 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1703 if (!eventHandler) {
1704 Printf("ERROR: Could not retrieve MC event handler");
1708 AliMCEvent* mcEvent = eventHandler->MCEvent();
1710 Printf("ERROR: Could not retrieve MC event");
1714 stack = mcEvent->Stack();
1716 AliDebug(AliLog::kError, "Stack not available");
1720 AliHeader* header = mcEvent->Header();
1722 AliDebug(AliLog::kError, "Header not available");
1725 AliGenEventHeader* genHeader = header->GenEventHeader();
1726 genHeader->PrimaryVertex(mcVertex);
1727 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
1729 Int_t ngenpart = (Int_t)stack->GetNtrack();
1730 //printf("# generated particles = %d\n",ngenpart);
1732 for(Int_t ip=0; ip<ngenpart; ip++) {
1733 part = (TParticle*)stack->Particle(ip);
1734 // keep only electrons, muons, pions, kaons and protons
1735 Int_t apdg = TMath::Abs(part->GetPdgCode());
1736 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
1737 // reject secondaries
1738 //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])));
1739 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
1740 // reject incoming protons
1741 Double_t energy = part->Energy();
1742 if(energy>900.) continue;
1743 Double_t pz = part->Pz();
1744 Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
1745 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
1747 //printf("# primary particles = %7.1f\n",dNchdy);
1749 // *********** MC info ***************
1750 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
1751 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
1755 //------- event selection --------
1756 Int_t mincontrSPDvtx=1;
1757 Double_t maxzSPDvtx=5.;
1758 Double_t maxrSPDvtx=0.5;
1759 Bool_t useTRKvtx=kTRUE;
1760 Bool_t useSPDvtxifNotTRK=kTRUE;
1761 Int_t mincontrTRKvtx=1;
1762 //Double_t maxzTRKvtx=20.;
1763 //Double_t maxrTRKvtx=1.;
1764 //------- TPC track selection --------
1766 Double_t maxchi2perTPCcl=4.;
1767 Double_t minEtaInAcc=-0.8; // -0.8
1768 Double_t maxEtaInAcc=0.8; // 0.8
1769 Double_t maxdcaxy=2.4;//2.4;
1770 Double_t maxdcaz=3.2;//3.2;
1771 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
1772 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
1773 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
1774 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
1775 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
1776 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
1777 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
1778 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
1779 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1780 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1781 SetESDtrackCutsTPC(esdtrackCutsTPC);
1782 //------- ITS+TPC track selection --------
1783 Double_t maxdcaxyITSTPC=0.2;
1784 Double_t maxdcazITSTPC=1.e6;
1785 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
1786 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1787 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
1788 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
1789 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
1790 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
1791 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1792 AliESDtrackCuts::kAny);
1793 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
1794 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
1795 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1796 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1797 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
1798 //---------------------------------------
1804 // ********** Trigger *****************
1805 ULong64_t triggerMask;
1806 ULong64_t spdFO = (1 << 14);
1807 ULong64_t v0left = (1 << 11);
1808 ULong64_t v0right = (1 << 12);
1810 triggerMask=fESD->GetTriggerMask();
1811 // MB1: SPDFO || V0L || V0R
1812 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
1814 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
1815 // ************ Trigger ******************
1816 if(!eventTriggered) return;
1820 fHistNEvents->Fill(0);
1823 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
1824 // Select good SPD vertices
1825 TString spdvtitle=spdv->GetTitle();
1826 //if(!spdvtitle.Contains("3D")) return;
1827 if(spdv->GetNContributors()<mincontrSPDvtx ||
1828 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
1829 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
1830 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
1831 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
1838 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
1839 //vertexESD->Print();
1841 if(spdvtitle.Contains("3D")) {
1842 fHistNEvents->Fill(1);
1843 fHistNEvents->Fill(3);
1845 fHistNEvents->Fill(2);
1846 fHistNEvents->Fill(3);
1849 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
1852 Int_t ntracks = fESD->GetNumberOfTracks();
1853 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
1855 fHistNtracks->Fill(ntracks);
1856 // Post the data already here
1857 PostData(1, fOutput);
1859 FillNClustersModuleMap();
1861 Int_t idet,status; Float_t xloc,zloc;
1862 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
1863 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
1866 for(Int_t itr=0; itr<ntracks; itr++) {
1867 AliESDtrack *track = fESD->GetTrack(itr);
1868 //if(track->Charge()>0) continue;
1869 // remove kink daughters
1870 if(track->GetKinkIndex(0)>0) continue;
1872 // remove tracks not reco in ITS or TPC
1873 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
1874 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
1876 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
1877 Double_t rProdVtx=0,zProdVtx=0;
1878 Int_t pdgTrk=0,pdgMoth=0;
1881 Int_t trkLabel = TMath::Abs(track->GetLabel());
1882 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
1883 Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
1884 for(Int_t i=0;i<6;i++) {
1885 if(track->HasSharedPointOnITSLayer(i)) {
1887 if(i<2) hasSharedSPD=kTRUE;
1891 // check if it is primary
1892 if(fReadMC && stack) {
1893 isPrimary = stack->IsPhysicalPrimary(trkLabel);
1894 part = (TParticle*)stack->Particle(trkLabel);
1895 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
1896 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
1897 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
1898 pdgTrk = TMath::Abs(part->GetPdgCode());
1899 if(part->GetFirstMother()>=0) {
1900 TParticle* mm=stack->Particle(part->GetFirstMother());
1901 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
1903 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
1904 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
1905 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
1908 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
1909 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
1910 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
1911 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
1915 // remove tracks with kTPCin and not kTPCrefit
1916 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
1918 AliESDtrack *trackTPC = 0;
1919 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
1920 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
1923 Int_t nclsITS = track->GetNcls(0);
1924 Int_t nclsSDDSSD = 0;
1925 Int_t nclsokbadoutinzITS = 0;
1926 Bool_t outInZ=kFALSE;
1927 Bool_t skipTrack=kFALSE;
1928 Bool_t fillA=kFALSE;
1929 Bool_t fillB=kFALSE;
1931 for(Int_t layer=0; layer<6; layer++) {
1932 if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
1933 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
1934 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
1935 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
1936 if(status<0) continue;
1937 if(layer>=2) idet+=240; // add n SPD modules
1938 if(layer>=4) idet+=260; // add n SDD modules
1939 if(status==4) outInZ=kTRUE;
1941 if(layer==1 && tpcrefit && itsrefit) {
1943 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
1945 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
1946 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
1947 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
1948 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
1950 if(status==2 || status==5) {
1951 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
1952 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
1953 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
1954 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
1957 // kill SDD clusters in MC
1958 if(fReadMC && (layer==2 || layer==3)) {
1959 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
1960 Double_t conv=3.34/5.43;
1961 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
1962 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
1965 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
1966 if(track->Pt()>0.7 && track->Pt()<2.0) {
1968 fHistClusterMapITSMIok->Fill(layer);
1969 if(fillA) fHistClusterMapITSMIokA->Fill(layer);
1970 if(fillB) fHistClusterMapITSMIokB->Fill(layer);
1972 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
1973 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
1974 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
1975 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
1976 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
1977 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
1978 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
1979 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
1981 if((idet>=0 && idet<=11) || (idet>=36 && idet<=47)) fillA=kTRUE;
1982 if((idet>=28 && idet<=35) || (idet>=62 && idet<=71)) fillB=kTRUE;
1985 if(status==1 || status==2 || status==4) {
1986 fHistClusterMapITSMIokoutinzbad->Fill(layer);
1987 nclsokbadoutinzITS++;
1989 /*if(idet>=80 && idet<120) {
1991 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
1992 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);
1994 if((layer==2 || layer==3) && status!=2 && status!=4) {
1996 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
1997 fHistxlocSDDall->Fill(xloc);
1998 fHistzlocSDDall->Fill(zloc);
1999 if(status==1 /*nClsInMod>0*/) {
2000 fHistxlocSDDok->Fill(xloc);
2001 fHistxlocVSmodSDDok->Fill(idet,xloc);
2002 fHistzlocSDDok->Fill(zloc);
2003 if(fillA) fHistxlocSDDA->Fill(xloc);
2004 if(fillA) fHistzlocSDDA->Fill(zloc);
2005 if(fillB) fHistxlocSDDB->Fill(xloc);
2006 if(fillB) fHistzlocSDDB->Fill(zloc);
2011 if(track->Phi()>1.5 && track->Phi()<1.7) { // ADDED
2012 if(status==1) fHistClusterMapITSSAok->Fill(layer);
2013 if(status==2) fHistClusterMapITSSAbad->Fill(layer);
2014 if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
2015 if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
2016 if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
2017 if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
2018 if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
2019 if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
2020 if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
2021 if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
2022 if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
2023 if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
2024 if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
2025 if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
2028 if(TESTBIT(track->GetITSClusterMap(),layer)) {
2030 fHistClusterMapITSMI->Fill(layer);
2032 fHistClusterMapITSSA->Fill(layer);
2033 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
2037 // SKIP SDD MODULES LOW EFF
2108 // SKIP SDD MODULES LOW EFF
2111 if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
2113 // TPC track findable in ITS
2114 if(tpcrefit && trackTPC) {
2115 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
2117 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
2118 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
2119 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
2120 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
2121 fHistPtTPC->Fill(track->Pt());
2122 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
2123 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
2124 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
2125 itsfindableAcc=kTRUE;
2126 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
2127 fHistPtTPCInAcc->Fill(track->Pt());
2128 fHistTPCclsVSPtTPCInAcc->Fill(trackTPC->Pt(),trackTPC->GetNcls(1));
2129 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
2130 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
2131 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
2132 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
2133 Double_t pTPCinnerwall[3];
2134 track->GetInnerPxPyPz(pTPCinnerwall);
2135 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
2136 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
2137 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
2139 fHistPhiTPCInAcc->Fill(track->Phi());
2140 fHistEtaTPCInAcc->Fill(track->Eta());
2143 fHistPtTPCInAccP->Fill(track->Pt());
2144 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
2146 fHistPtTPCInAccS->Fill(track->Pt());
2147 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
2148 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
2150 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
2151 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
2154 fHistEtaTPCInAccA->Fill(trackTPC->Eta());
2155 fHistNclsTPCInAccA->Fill(track->GetTPCNclsIter1());
2156 fHistChi2PerClsTPCInAccA->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2159 fHistEtaTPCInAccB->Fill(trackTPC->Eta());
2160 fHistNclsTPCInAccB->Fill(track->GetTPCNclsIter1());
2161 fHistChi2PerClsTPCInAccB->Fill(track->GetTPCchi2Iter1()/track->GetTPCNclsIter1());
2163 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
2170 // we need the vertex to compute the impact parameters
2171 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
2172 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
2173 if(useSPDvtxifNotTRK) {
2174 vertexESD = fESD->GetPrimaryVertexSPD();
2176 delete trackTPC; trackTPC=0; continue;
2181 //if(hasSharedSPD) continue;
2182 //if(track->GetITSFakeFlag()) continue;
2184 // track prolonged in ITS with different conditions
2187 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
2188 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
2189 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
2190 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
2191 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
2192 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2193 fHistPtITSMISPD->Fill(track->Pt());
2194 fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
2196 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
2197 fHistPtITSMIoneSPD->Fill(track->Pt());
2198 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
2200 if(itsfindableAcc) {
2202 fHistPtITSMI6InAcc->Fill(track->Pt());
2204 fHistPhiITSMI6InAcc->Fill(track->Phi());
2205 fHistEtaITSMI6InAcc->Fill(track->Eta());
2207 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
2208 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
2211 fHistPtITSMI5InAcc->Fill(track->Pt());
2213 fHistPhiITSMI5InAcc->Fill(track->Phi());
2214 fHistEtaITSMI5InAcc->Fill(track->Eta());
2216 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
2217 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
2220 fHistPtITSMI4InAcc->Fill(track->Pt());
2222 fHistPhiITSMI4InAcc->Fill(track->Phi());
2223 fHistEtaITSMI4InAcc->Fill(track->Eta());
2225 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
2226 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
2229 fHistPtITSMI3InAcc->Fill(track->Pt());
2231 fHistPhiITSMI3InAcc->Fill(track->Phi());
2232 fHistEtaITSMI3InAcc->Fill(track->Eta());
2234 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
2235 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
2238 fHistPtITSMI2InAcc->Fill(track->Pt());
2240 fHistPhiITSMI2InAcc->Fill(track->Phi());
2241 fHistEtaITSMI2InAcc->Fill(track->Eta());
2243 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
2244 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
2246 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
2247 fHistPtITSMISPDInAcc->Fill(track->Pt());
2249 fHistPhiITSMISPDInAcc->Fill(track->Phi());
2250 fHistEtaITSMISPDInAcc->Fill(track->Eta());
2252 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
2253 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
2255 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
2256 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
2258 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
2259 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
2261 if(track->HasSharedPointOnITSLayer(0) ||
2262 track->HasSharedPointOnITSLayer(1) ||
2263 track->HasSharedPointOnITSLayer(2) ||
2264 track->HasSharedPointOnITSLayer(3) ||
2265 track->HasSharedPointOnITSLayer(4) ||
2266 track->HasSharedPointOnITSLayer(5)) {
2267 fHistPtITSMIoneSPDInAccShared->Fill(track->Pt());
2268 if(isFake) fHistPtITSMIoneSPDInAccSharedFake->Fill(track->Pt());
2270 if(track->HasSharedPointOnITSLayer(0) || track->HasSharedPointOnITSLayer(1)) {
2271 fHistPtITSMIoneSPDInAccSharedSPD->Fill(track->Pt());
2272 if(isFake) fHistPtITSMIoneSPDInAccSharedSPDFake->Fill(track->Pt());
2274 if(track->HasSharedPointOnITSLayer(0)) fHistPtITSMISPD1InAccShared->Fill(track->Pt());
2275 if(track->HasSharedPointOnITSLayer(1)) fHistPtITSMISPD2InAccShared->Fill(track->Pt());
2277 Float_t chi2redITS = track->GetITSchi2()/track->GetNcls(0);
2278 if(fillA) fHistChi2PerClsITSInAccA->Fill(chi2redITS);
2279 if(fillB) fHistChi2PerClsITSInAccB->Fill(chi2redITS);
2281 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
2282 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2283 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2285 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2286 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2287 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2288 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2290 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2292 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2294 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2295 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2296 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
2297 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
2302 fHistNclsITSMI->Fill(nclsITS);
2304 fHistNclsITSSA->Fill(nclsITS);
2305 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2309 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2310 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2311 { delete trackTPC; trackTPC=0; continue; }
2313 // impact parameter to VertexTracks
2314 Float_t d0z0[2],covd0z0[3];
2315 Double_t d0z0TPC[2],covd0z0TPC[3];
2317 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2319 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
2320 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2322 track->GetImpactParameters(d0z0,covd0z0);
2323 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
2324 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2327 // track that passes final ITS+TPC cuts
2328 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2329 fHistPtITSTPCsel->Fill(track->Pt());
2330 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
2331 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2333 fHistPtITSTPCselP->Fill(track->Pt());
2334 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2336 fHistPtITSTPCselS->Fill(track->Pt());
2337 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2338 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2344 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
2345 if(fillA && itsfindableAcc) {
2346 fHistd0rphiTPCInAccA->Fill(d0z0TPC[0]);
2347 fHistd0zTPCInAccA->Fill(d0z0TPC[1]);
2348 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2349 fHistd0rphiITSMIoneSPDInAccA->Fill(d0z0[0]);
2350 fHistd0zITSMIoneSPDInAccA->Fill(d0z0[1]);
2353 if(fillB && itsfindableAcc) {
2354 fHistd0rphiTPCInAccB->Fill(d0z0TPC[0]);
2355 fHistd0zTPCInAccB->Fill(d0z0TPC[1]);
2356 if(!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit) {
2357 fHistd0rphiITSMIoneSPDInAccB->Fill(d0z0[0]);
2358 fHistd0zITSMIoneSPDInAccB->Fill(d0z0[1]);
2361 if(track->Pt()>0.150 && track->Pt()<0.200) {
2363 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2364 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2365 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2366 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2367 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
2368 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2369 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2372 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2373 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2374 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2375 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2376 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2377 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2378 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2379 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2381 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2382 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2386 if(track->Pt()>0.350 && track->Pt()<0.450) {
2388 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2389 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2392 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2393 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2394 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2395 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2396 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2401 if(track->Pt()>0.500 && track->Pt()<0.700) {
2403 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2404 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2405 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2406 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2407 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2408 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2411 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2412 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2413 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2414 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2415 fHistPDGTrk->Fill(pdgTrk);
2416 fHistPDGMoth->Fill(pdgMoth);
2417 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
2418 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2419 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2420 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2421 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2423 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2424 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2425 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
2426 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
2427 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2428 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
2429 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
2433 if(track->Pt()>1.000 && track->Pt()<1.500) {
2435 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
2436 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2438 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2439 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2440 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2441 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2442 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2443 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2444 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2447 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2448 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2449 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2450 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2451 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2452 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2453 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2454 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2456 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2457 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2461 if(track->Pt()>2.500 && track->Pt()<4.000) {
2463 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2464 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2467 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2468 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2469 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2470 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2471 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2476 if(track->Pt()>4.000 && track->Pt()<8.000) {
2478 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2479 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2482 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2483 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2484 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2485 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2486 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2494 if(trackTPC) { delete trackTPC; trackTPC=0; }
2496 // encode ITS cluster map, including MC info
2497 Int_t iITSflag=MakeITSflag(track);
2499 // if MC info is available: get particle properties
2500 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2501 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2503 part = (TParticle*)stack->Particle(trkLabel);
2505 pdgMC=part->GetPdgCode();
2506 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2507 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2508 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
2511 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2512 if(!itsrefit) sigmad0MCv *= -1.;
2513 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2514 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
2516 // fill ntuple with track properties
2517 if(fFillNtuples && SelectPt(track->Pt())) {
2518 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};
2519 fNtupleESDTracks->Fill(fillArray);
2522 //---------------------------------------------
2523 // AliTrackPoints: alignment checks
2525 if(!fFillNtuples) continue;
2527 const AliTrackPointArray *array = track->GetTrackPointArray();
2528 if(!array) continue;
2529 AliTrackPoint point;
2530 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2531 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2532 Bool_t extra=kFALSE;
2533 Int_t layerId,layerExtra=-1;
2534 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2535 array->GetPoint(point,ipt);
2536 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2540 } else if(r>6 && r<8) {
2542 } else if(r>8 && r<18) {
2544 } else if(r>18 && r<30) {
2546 } else if(r>30 && r<40) {
2548 } else if(r>40 && r<50) {
2555 if(layerId>5) continue;
2557 if(!point.IsExtra()) {
2558 pointOnLayer[layerId]++;
2559 indexAssociated[layerId]=ipt;
2561 // this is an extra cluster
2566 } // end loop on AliTrackPoints
2568 TString vtitle = spdv->GetTitle();
2569 if(!vtitle.Contains("3D")) continue;
2572 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2573 AliTrackPoint pointSPD1,pointSPD2;
2574 array->GetPoint(pointSPD1,indexAssociated[0]);
2575 array->GetPoint(pointSPD2,indexAssociated[1]);
2576 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2577 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())));
2578 Float_t theta=0.5*TMath::Pi()-lambda;
2579 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);
2580 AliESDtrack tracklet(&particle);
2582 // distance to primary SPD (only if 3D and high multiplicity)
2583 if(spdv->GetNContributors()>10) {
2584 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2585 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
2586 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
2590 // distance to extra
2591 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
2592 AliTrackPoint pointExtra,pointAssociated;
2593 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2594 array->GetPoint(pointExtra,indexExtra);
2595 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2596 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2597 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2598 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2600 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2601 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2602 Float_t xlocExtra=-100.,zlocExtra=-100.;
2603 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
2606 if(trackTPC) { delete trackTPC; trackTPC=0; }
2607 } // end loop on tracks
2609 if(vertexMC) { delete vertexMC; vertexMC=0; }
2611 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2612 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2614 PostData(1, fOutput);
2619 //________________________________________________________________________
2620 void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2622 // Draw result to the screen
2623 // Called once at the end of the query
2624 fOutput = dynamic_cast<TList*> (GetOutputData(1));
2626 Printf("ERROR: fOutput not available");
2629 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2630 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2631 if(fHistNEvents && fHistNEventsFrac) {
2632 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2633 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2639 //---------------------------------------------------------------------------
2640 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
2643 // Return number of ITS clusters produced by MC particle with given label
2646 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2647 if(!esdHRP) return -1;
2648 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2649 if(!cTree) return -1;
2650 TClonesArray *clusters=0;
2651 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2652 if(!clusters) return -1;
2654 AliITSRecPoint *c=0;
2655 Int_t i,n,icl,lay,ilab;
2656 Int_t ncls[6]={0,0,0,0,0,0};
2659 for(i=0; i<nModules; i++) {
2661 n=clusters->GetEntriesFast();
2662 for (icl=0; icl<n; icl++) {
2663 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2665 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
2666 for(ilab=0;ilab<3;ilab++) {
2667 if(c->GetLabel(ilab)==label) ncls[lay]++;
2672 //printf("%d\n",ncls[i]);
2673 if(ncls[i]) nclstot++;
2678 //---------------------------------------------------------------------------
2679 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2682 // Return number of ITS clusters produced by MC particle with given label
2685 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2686 if(!esdHRP) return -1;
2687 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2688 if(!cTree) return -1;
2689 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2690 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2691 if(!clusters) return -1;
2693 AliITSRecPoint *c=0;
2696 cTree->GetEvent(idet);
2697 n=clusters->GetEntriesFast();
2700 for (icl=0; icl<n; icl++) {
2701 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2702 xloc = c->GetDetLocalX();
2707 //---------------------------------------------------------------------------
2708 void AliAnalysisTaskITSTrackingCheck::FillNClustersModuleMap()
2711 // Number of clusters per module
2714 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2716 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2718 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2719 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2721 for(Int_t idet=0;idet<2198;idet++) {
2722 cTree->GetEvent(idet);
2723 if(!clusters) continue;
2724 fHistNClustersMapModule->SetBinContent(idet,clusters->GetEntriesFast());
2729 //---------------------------------------------------------------------------
2730 Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
2735 // Return the MC value of the impact parameter
2738 Double_t vx=part->Vx()-vert->GetX();
2739 Double_t vy=part->Vy()-vert->GetY();
2741 Double_t pt=part->Pt();
2742 Double_t px=part->Px();
2743 Double_t py=part->Py();
2744 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
2745 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
2747 if(px<0.000001) px=0.000001;
2748 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
2749 Double_t center[3],d0;
2750 center[0]=vx-(1./charge)*rAnd*(py/pt);
2751 center[1]=vy+(1./charge)*rAnd*(px/pt);
2752 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
2753 d0 = -center[2]+rAnd;
2757 //---------------------------------------------------------------------------
2758 Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
2761 // Keep only tracks in given pt bins
2763 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
2764 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
2766 for(Int_t i=0; i<11; i++) {
2767 if(pt>ptlower[i] && pt<ptupper[i]) {
2768 fCountsPerPtBin[i]++;
2775 //---------------------------------------------------------------------------
2776 Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
2778 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
2779 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
2780 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
2783 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
2784 if(track->HasPointOnITSLayer(1)) iITSflag+=2;
2785 if(track->HasPointOnITSLayer(2)) iITSflag+=10;
2786 if(track->HasPointOnITSLayer(3)) iITSflag+=20;
2787 if(track->HasPointOnITSLayer(4)) iITSflag+=100;
2788 if(track->HasPointOnITSLayer(5)) iITSflag+=200;
2790 if(iITSflag==333 && track->GetNcls(0)<6)
2791 printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel());
2793 // number of associated ITS clusters
2794 iITSflag += 1000*track->GetNcls(0);
2796 // number of associated TPC clusters
2797 iITSflag += 100000*track->GetNcls(1);
2799 // if MC info and is available
2800 // write the number of ITS clusters produced by this track
2802 if(fReadMC && fReadRPLabels) {
2803 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
2804 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
2806 if(track->GetLabel()<0) iITSflag *= -1;
2811 //---------------------------------------------------------------------------
2812 Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
2815 // check if events is in the required multiplicity range
2818 const AliMultiplicity *alimult = fESD->GetMultiplicity();
2820 Int_t nclsSPDouter=0;
2822 ntrklets = alimult->GetNumberOfTracklets();
2823 nclsSPDouter = alimult->GetNumberOfITSClusters(1);
2826 if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE;