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 fHistClusterMapITSMIok(0),
82 fHistClusterMapITSMIbad(0),
83 fHistClusterMapITSMIskipped(0),
84 fHistClusterMapITSMIoutinz(0),
85 fHistClusterMapITSMInorefit(0),
86 fHistClusterMapITSMInocls(0),
87 fHistClusterMapITSMIokoutinzbad(0),
88 fHistClusterMapITSSA(0),
89 fHistClusterMapITSSAok(0),
90 fHistClusterMapITSSAbad(0),
91 fHistClusterMapITSSAskipped(0),
92 fHistClusterMapITSSAoutinz(0),
93 fHistClusterMapITSSAnorefit(0),
94 fHistClusterMapITSSAnocls(0),
95 fHistClusterMapITSSAokoutinzbad(0),
96 fHistClusterMapITSSAInAcc(0),
97 fHistClusterMapITSSAokInAcc(0),
98 fHistClusterMapITSSAbadInAcc(0),
99 fHistClusterMapITSSAskippedInAcc(0),
100 fHistClusterMapITSSAoutinzInAcc(0),
101 fHistClusterMapITSSAnorefitInAcc(0),
102 fHistClusterMapITSSAnoclsInAcc(0),
103 fHistClusterMapITSSAokoutinzbadInAcc(0),
104 fHistClusterMapModuleITSSAokInAcc(0),
105 fHistClusterMapModuleITSSAbadInAcc(0),
106 fHistClusterMapModuleITSSAnoclsInAcc(0),
107 fHistClusterMapModuleITSMIokInAcc(0),
108 fHistClusterMapModuleITSMIbadInAcc(0),
109 fHistClusterMapModuleITSMInoclsInAcc(0),
110 fHistZatSPDouter0ok(0),
111 fHistZatSPDouter1ok(0),
112 fHistZatSPDouter2ok(0),
113 fHistZatSPDouter3ok(0),
114 fHistZatSPDouter0notok(0),
115 fHistZatSPDouter1notok(0),
116 fHistZatSPDouter2notok(0),
117 fHistZatSPDouter3notok(0),
120 fHistxlocVSmodSDDok(0),
127 fHistPtTPCInAccMCtwoSPD(0),
128 fHistPtTPCInAccMConeSPD(0),
129 fHistdEdxVSPtTPCInAcc(0),
130 fHistdEdxVSPtITSTPCsel(0),
131 fHistPtVSphiTPCInAcc(0),
132 fHistPtTPCInAccNoTRDout(0),
133 fHistPtTPCInAccNoTOFout(0),
134 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
135 fHistPtTPCInAccWithPtTPCAtVtx(0),
139 fHistPtTPCInAccPfromStrange(0),
140 fHistPtTPCInAccSfromStrange(0),
141 fHistPtTPCInAccSfromMat(0),
148 fHistPtITSMIoneSPD(0),
149 fHistPtITSMI2InAcc(0),
150 fHistPtITSMI3InAcc(0),
151 fHistPtITSMI4InAcc(0),
152 fHistPtITSMI5InAcc(0),
153 fHistPtITSMI6InAcc(0),
154 fHistPtITSMISPDInAcc(0),
155 fHistPtITSMIoneSPDInAcc(0),
156 fHistPhiITSMI2InAcc(0),
157 fHistPhiITSMI3InAcc(0),
158 fHistPhiITSMI4InAcc(0),
159 fHistPhiITSMI5InAcc(0),
160 fHistPhiITSMI6InAcc(0),
161 fHistPhiITSMISPDInAcc(0),
162 fHistPhiITSMIoneSPDInAcc(0),
163 fHistEtaITSMI2InAcc(0),
164 fHistEtaITSMI3InAcc(0),
165 fHistEtaITSMI4InAcc(0),
166 fHistEtaITSMI5InAcc(0),
167 fHistEtaITSMI6InAcc(0),
168 fHistEtaITSMISPDInAcc(0),
169 fHistEtaITSMIoneSPDInAcc(0),
170 fHistPtITSMI2InAccFake(0),
171 fHistPtITSMI3InAccFake(0),
172 fHistPtITSMI4InAccFake(0),
173 fHistPtITSMI5InAccFake(0),
174 fHistPtITSMI6InAccFake(0),
175 fHistPtITSMISPDInAccFake(0),
176 fHistPtITSMIoneSPDInAccFake(0),
177 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
179 fHistPtITSTPCselP(0),
180 fHistPtITSTPCselS(0),
181 fHistPtITSTPCselFake(0),
182 fHistPtITSTPCselPfromStrange(0),
183 fHistPtITSTPCselSfromStrange(0),
184 fHistPtITSTPCselSfromMat(0),
185 fHistPtITSMI2InAccP(0),
186 fHistPtITSMI3InAccP(0),
187 fHistPtITSMI4InAccP(0),
188 fHistPtITSMI5InAccP(0),
189 fHistPtITSMI6InAccP(0),
190 fHistPtITSMISPDInAccP(0),
191 fHistPtITSMIoneSPDInAccP(0),
192 fHistPtITSMI2InAccS(0),
193 fHistPtITSMI3InAccS(0),
194 fHistPtITSMI4InAccS(0),
195 fHistPtITSMI5InAccS(0),
196 fHistPtITSMI6InAccS(0),
197 fHistPtITSMISPDInAccS(0),
198 fHistPtITSMIoneSPDInAccS(0),
199 fHistPtITSMIokbadoutinz6(0),
200 fHistPtITSMIokbadoutinz4InAcc(0),
201 fHistPtITSMIokbadoutinz5InAcc(0),
202 fHistPtITSMIokbadoutinz6InAcc(0),
203 fHistPhiITSMIokbadoutinz6InAcc(0),
204 fHistRProdVtxInAccP(0),
205 fHistRProdVtxInAccS(0),
206 fHistd0rphiTPCInAccP150200(0),
207 fHistd0rphiTPCInAccP500700(0),
208 fHistd0rphiTPCInAccP10001500(0),
209 fHistd0rphiTPCInAccS150200(0),
210 fHistd0rphiTPCInAccS500700(0),
211 fHistd0rphiTPCInAccS10001500(0),
212 fHistd0rphiITSMISPDInAccP150200(0),
213 fHistd0rphiITSMISPDInAccP500700(0),
214 fHistd0rphiITSMISPDInAccP10001500(0),
215 fHistd0rphiITSMISPDInAccS150200(0),
216 fHistd0rphiITSMISPDInAccS500700(0),
217 fHistd0rphiITSMISPDInAccS10001500(0),
218 fHistd0rphiITSMIoneSPDInAccP150200(0),
219 fHistd0rphiITSMIoneSPDInAccP350450(0),
220 fHistd0rphiITSMIoneSPDInAccP500700(0),
221 fHistd0rphiITSMIoneSPDInAccP10001500(0),
222 fHistd0rphiITSMIoneSPDInAccP25004000(0),
223 fHistd0rphiITSMIoneSPDInAccP40008000(0),
224 fHistd0zITSMIoneSPDInAccP150200(0),
225 fHistd0zITSMIoneSPDInAccP500700(0),
226 fHistd0zITSMIoneSPDInAccP10001500(0),
227 fHistd0zVSetaTPCInAccP10001500(0),
228 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
229 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
230 fHistd0rphiITSMIoneSPDInAccS150200(0),
231 fHistd0rphiITSMIoneSPDInAccS350450(0),
232 fHistd0rphiITSMIoneSPDInAccS500700(0),
233 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
234 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
235 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
236 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
237 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
238 fHistd0rphiITSMIoneSPDInAccS10001500(0),
239 fHistd0rphiITSMIoneSPDInAccS25004000(0),
240 fHistd0rphiITSMIoneSPDInAccS40008000(0),
241 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
242 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
243 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
244 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
245 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
246 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
247 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
248 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
249 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
250 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
251 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
252 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
253 fHistd0zITSMIoneSPDInAccS150200(0),
254 fHistd0zITSMIoneSPDInAccS500700(0),
255 fHistd0zITSMIoneSPDInAccS10001500(0),
257 fHistPDGMoth150200(0),
258 fHistPDGMoth500700(0),
259 fHistPDGMoth10001500(0),
261 fHistITSRedChi2NonFakePt02(0),
262 fHistITSRedChi2FakePt02(0),
263 fHistITSRedChi2NonFakePt05(0),
264 fHistITSRedChi2FakePt05(0),
265 fHistITSRedChi2NonFakePt1(0),
266 fHistITSRedChi2FakePt1(0),
268 fNtupleITSAlignExtra(0),
269 fNtupleITSAlignSPDTracklets(0),
271 fESDtrackCutsITSTPC(0)
276 //________________________________________________________________________
277 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) :
278 AliAnalysisTaskSE(name),
280 fReadRPLabels(kFALSE),
281 fFillNtuples(kFALSE),
282 fUseITSSAforNtuples(kFALSE),
293 fHistNclsITSSAInAcc(0),
294 fHistClusterMapITSMI(0),
295 fHistClusterMapITSMIok(0),
296 fHistClusterMapITSMIbad(0),
297 fHistClusterMapITSMIskipped(0),
298 fHistClusterMapITSMIoutinz(0),
299 fHistClusterMapITSMInorefit(0),
300 fHistClusterMapITSMInocls(0),
301 fHistClusterMapITSMIokoutinzbad(0),
302 fHistClusterMapITSSA(0),
303 fHistClusterMapITSSAok(0),
304 fHistClusterMapITSSAbad(0),
305 fHistClusterMapITSSAskipped(0),
306 fHistClusterMapITSSAoutinz(0),
307 fHistClusterMapITSSAnorefit(0),
308 fHistClusterMapITSSAnocls(0),
309 fHistClusterMapITSSAokoutinzbad(0),
310 fHistClusterMapITSSAInAcc(0),
311 fHistClusterMapITSSAokInAcc(0),
312 fHistClusterMapITSSAbadInAcc(0),
313 fHistClusterMapITSSAskippedInAcc(0),
314 fHistClusterMapITSSAoutinzInAcc(0),
315 fHistClusterMapITSSAnorefitInAcc(0),
316 fHistClusterMapITSSAnoclsInAcc(0),
317 fHistClusterMapITSSAokoutinzbadInAcc(0),
318 fHistClusterMapModuleITSSAokInAcc(0),
319 fHistClusterMapModuleITSSAbadInAcc(0),
320 fHistClusterMapModuleITSSAnoclsInAcc(0),
321 fHistClusterMapModuleITSMIokInAcc(0),
322 fHistClusterMapModuleITSMIbadInAcc(0),
323 fHistClusterMapModuleITSMInoclsInAcc(0),
324 fHistZatSPDouter0ok(0),
325 fHistZatSPDouter1ok(0),
326 fHistZatSPDouter2ok(0),
327 fHistZatSPDouter3ok(0),
328 fHistZatSPDouter0notok(0),
329 fHistZatSPDouter1notok(0),
330 fHistZatSPDouter2notok(0),
331 fHistZatSPDouter3notok(0),
334 fHistxlocVSmodSDDok(0),
341 fHistPtTPCInAccMCtwoSPD(0),
342 fHistPtTPCInAccMConeSPD(0),
343 fHistdEdxVSPtTPCInAcc(0),
344 fHistdEdxVSPtITSTPCsel(0),
345 fHistPtVSphiTPCInAcc(0),
346 fHistPtTPCInAccNoTRDout(0),
347 fHistPtTPCInAccNoTOFout(0),
348 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
349 fHistPtTPCInAccWithPtTPCAtVtx(0),
353 fHistPtTPCInAccPfromStrange(0),
354 fHistPtTPCInAccSfromStrange(0),
355 fHistPtTPCInAccSfromMat(0),
362 fHistPtITSMIoneSPD(0),
363 fHistPtITSMI2InAcc(0),
364 fHistPtITSMI3InAcc(0),
365 fHistPtITSMI4InAcc(0),
366 fHistPtITSMI5InAcc(0),
367 fHistPtITSMI6InAcc(0),
368 fHistPtITSMISPDInAcc(0),
369 fHistPtITSMIoneSPDInAcc(0),
370 fHistPhiITSMI2InAcc(0),
371 fHistPhiITSMI3InAcc(0),
372 fHistPhiITSMI4InAcc(0),
373 fHistPhiITSMI5InAcc(0),
374 fHistPhiITSMI6InAcc(0),
375 fHistPhiITSMISPDInAcc(0),
376 fHistPhiITSMIoneSPDInAcc(0),
377 fHistEtaITSMI2InAcc(0),
378 fHistEtaITSMI3InAcc(0),
379 fHistEtaITSMI4InAcc(0),
380 fHistEtaITSMI5InAcc(0),
381 fHistEtaITSMI6InAcc(0),
382 fHistEtaITSMISPDInAcc(0),
383 fHistEtaITSMIoneSPDInAcc(0),
384 fHistPtITSMI2InAccFake(0),
385 fHistPtITSMI3InAccFake(0),
386 fHistPtITSMI4InAccFake(0),
387 fHistPtITSMI5InAccFake(0),
388 fHistPtITSMI6InAccFake(0),
389 fHistPtITSMISPDInAccFake(0),
390 fHistPtITSMIoneSPDInAccFake(0),
391 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
393 fHistPtITSTPCselP(0),
394 fHistPtITSTPCselS(0),
395 fHistPtITSTPCselFake(0),
396 fHistPtITSTPCselPfromStrange(0),
397 fHistPtITSTPCselSfromStrange(0),
398 fHistPtITSTPCselSfromMat(0),
399 fHistPtITSMI2InAccP(0),
400 fHistPtITSMI3InAccP(0),
401 fHistPtITSMI4InAccP(0),
402 fHistPtITSMI5InAccP(0),
403 fHistPtITSMI6InAccP(0),
404 fHistPtITSMISPDInAccP(0),
405 fHistPtITSMIoneSPDInAccP(0),
406 fHistPtITSMI2InAccS(0),
407 fHistPtITSMI3InAccS(0),
408 fHistPtITSMI4InAccS(0),
409 fHistPtITSMI5InAccS(0),
410 fHistPtITSMI6InAccS(0),
411 fHistPtITSMISPDInAccS(0),
412 fHistPtITSMIoneSPDInAccS(0),
413 fHistPtITSMIokbadoutinz6(0),
414 fHistPtITSMIokbadoutinz4InAcc(0),
415 fHistPtITSMIokbadoutinz5InAcc(0),
416 fHistPtITSMIokbadoutinz6InAcc(0),
417 fHistPhiITSMIokbadoutinz6InAcc(0),
418 fHistRProdVtxInAccP(0),
419 fHistRProdVtxInAccS(0),
420 fHistd0rphiTPCInAccP150200(0),
421 fHistd0rphiTPCInAccP500700(0),
422 fHistd0rphiTPCInAccP10001500(0),
423 fHistd0rphiTPCInAccS150200(0),
424 fHistd0rphiTPCInAccS500700(0),
425 fHistd0rphiTPCInAccS10001500(0),
426 fHistd0rphiITSMISPDInAccP150200(0),
427 fHistd0rphiITSMISPDInAccP500700(0),
428 fHistd0rphiITSMISPDInAccP10001500(0),
429 fHistd0rphiITSMISPDInAccS150200(0),
430 fHistd0rphiITSMISPDInAccS500700(0),
431 fHistd0rphiITSMISPDInAccS10001500(0),
432 fHistd0rphiITSMIoneSPDInAccP150200(0),
433 fHistd0rphiITSMIoneSPDInAccP350450(0),
434 fHistd0rphiITSMIoneSPDInAccP500700(0),
435 fHistd0rphiITSMIoneSPDInAccP10001500(0),
436 fHistd0rphiITSMIoneSPDInAccP25004000(0),
437 fHistd0rphiITSMIoneSPDInAccP40008000(0),
438 fHistd0zITSMIoneSPDInAccP150200(0),
439 fHistd0zITSMIoneSPDInAccP500700(0),
440 fHistd0zITSMIoneSPDInAccP10001500(0),
441 fHistd0zVSetaTPCInAccP10001500(0),
442 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
443 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
444 fHistd0rphiITSMIoneSPDInAccS150200(0),
445 fHistd0rphiITSMIoneSPDInAccS350450(0),
446 fHistd0rphiITSMIoneSPDInAccS500700(0),
447 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
448 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
449 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
450 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
451 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
452 fHistd0rphiITSMIoneSPDInAccS10001500(0),
453 fHistd0rphiITSMIoneSPDInAccS25004000(0),
454 fHistd0rphiITSMIoneSPDInAccS40008000(0),
455 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
456 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
457 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
458 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
459 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
460 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
461 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
462 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
463 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
464 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
465 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
466 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
467 fHistd0zITSMIoneSPDInAccS150200(0),
468 fHistd0zITSMIoneSPDInAccS500700(0),
469 fHistd0zITSMIoneSPDInAccS10001500(0),
471 fHistPDGMoth150200(0),
472 fHistPDGMoth500700(0),
473 fHistPDGMoth10001500(0),
475 fHistITSRedChi2NonFakePt02(0),
476 fHistITSRedChi2FakePt02(0),
477 fHistITSRedChi2NonFakePt05(0),
478 fHistITSRedChi2FakePt05(0),
479 fHistITSRedChi2NonFakePt1(0),
480 fHistITSRedChi2FakePt1(0),
482 fNtupleITSAlignExtra(0),
483 fNtupleITSAlignSPDTracklets(0),
485 fESDtrackCutsITSTPC(0)
489 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
491 // Define input and output slots here
492 // Output slot #0 writes into a TList container
493 DefineOutput(1, TList::Class()); //My private output
495 //________________________________________________________________________
496 AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck()
500 // histograms are in the output list and deleted when the output
501 // list is deleted by the TSelector dtor
508 //________________________________________________________________________
509 void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
514 gStyle->SetHistLineWidth(2);
517 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};
518 //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};
520 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
522 // Several histograms are more conveniently managed in a TList
526 fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000);
527 fOutput->Add(fHistPDGMoth);
528 fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000);
529 fOutput->Add(fHistPDGMoth150200);
530 fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000);
531 fOutput->Add(fHistPDGMoth500700);
532 fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000);
533 fOutput->Add(fHistPDGMoth10001500);
534 fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000);
535 fOutput->Add(fHistPDGTrk);
537 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);
538 fHistNEvents->SetMinimum(0);
539 fOutput->Add(fHistNEvents);
541 fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac");
542 fOutput->Add(fHistNEventsFrac);
544 fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5);
545 fHistNtracks->Sumw2();
546 fHistNtracks->SetMinimum(0);
547 fOutput->Add(fHistNtracks);
549 fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5);
550 fHistNclsITSMI->Sumw2();
551 fHistNclsITSMI->SetMinimum(0);
552 fOutput->Add(fHistNclsITSMI);
554 fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
555 fHistNclsITSSAInAcc->Sumw2();
556 fHistNclsITSSAInAcc->SetMinimum(0);
557 fOutput->Add(fHistNclsITSSAInAcc);
559 fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
560 fHistNclsITSSA->Sumw2();
561 fHistNclsITSSA->SetMinimum(0);
562 fOutput->Add(fHistNclsITSSA);
564 fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
565 fHistClusterMapITSMI->Sumw2();
566 fHistClusterMapITSMI->SetMinimum(0);
567 fOutput->Add(fHistClusterMapITSMI);
569 fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
570 fHistClusterMapITSSA->Sumw2();
571 fHistClusterMapITSSA->SetMinimum(0);
572 fOutput->Add(fHistClusterMapITSSA);
574 fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
575 fHistClusterMapITSSAInAcc->Sumw2();
576 fHistClusterMapITSSAInAcc->SetMinimum(0);
577 fOutput->Add(fHistClusterMapITSSAInAcc);
579 fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
580 fHistClusterMapITSMIok->Sumw2();
581 fHistClusterMapITSMIok->SetMinimum(0);
582 fOutput->Add(fHistClusterMapITSMIok);
584 fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
585 fHistClusterMapITSSAokInAcc->Sumw2();
586 fHistClusterMapITSSAokInAcc->SetMinimum(0);
587 fOutput->Add(fHistClusterMapITSSAokInAcc);
589 fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
590 fHistClusterMapModuleITSSAokInAcc->SetMinimum(0);
591 fOutput->Add(fHistClusterMapModuleITSSAokInAcc);
593 fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
594 fHistClusterMapModuleITSMIokInAcc->SetMinimum(0);
595 fOutput->Add(fHistClusterMapModuleITSMIokInAcc);
597 fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
598 fHistClusterMapITSSAok->Sumw2();
599 fHistClusterMapITSSAok->SetMinimum(0);
600 fOutput->Add(fHistClusterMapITSSAok);
602 fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
603 fHistClusterMapITSMIbad->Sumw2();
604 fHistClusterMapITSMIbad->SetMinimum(0);
605 fOutput->Add(fHistClusterMapITSMIbad);
607 fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
608 fHistClusterMapITSSAbadInAcc->Sumw2();
609 fHistClusterMapITSSAbadInAcc->SetMinimum(0);
610 fOutput->Add(fHistClusterMapITSSAbadInAcc);
612 fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
613 fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0);
614 fOutput->Add(fHistClusterMapModuleITSSAbadInAcc);
616 fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
617 fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
618 fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
620 fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
621 fHistClusterMapITSSAbad->Sumw2();
622 fHistClusterMapITSSAbad->SetMinimum(0);
623 fOutput->Add(fHistClusterMapITSSAbad);
625 fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
626 fHistClusterMapITSMIskipped->Sumw2();
627 fHistClusterMapITSMIskipped->SetMinimum(0);
628 fOutput->Add(fHistClusterMapITSMIskipped);
630 fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
631 fHistClusterMapITSSAskippedInAcc->Sumw2();
632 fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
633 fOutput->Add(fHistClusterMapITSSAskippedInAcc);
635 fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
636 fHistClusterMapITSSAskipped->Sumw2();
637 fHistClusterMapITSSAskipped->SetMinimum(0);
638 fOutput->Add(fHistClusterMapITSSAskipped);
640 fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
641 fHistClusterMapITSMIoutinz->Sumw2();
642 fHistClusterMapITSMIoutinz->SetMinimum(0);
643 fOutput->Add(fHistClusterMapITSMIoutinz);
645 fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
646 fHistClusterMapITSSAoutinzInAcc->Sumw2();
647 fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
648 fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
650 fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
651 fHistClusterMapITSSAoutinz->Sumw2();
652 fHistClusterMapITSSAoutinz->SetMinimum(0);
653 fOutput->Add(fHistClusterMapITSSAoutinz);
655 fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
656 fHistClusterMapITSSAokoutinzbad->Sumw2();
657 fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
658 fOutput->Add(fHistClusterMapITSSAokoutinzbad);
660 fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5);
661 fHistClusterMapITSMIokoutinzbad->Sumw2();
662 fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
663 fOutput->Add(fHistClusterMapITSMIokoutinzbad);
665 fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
666 fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
667 fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
668 fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
670 fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
671 fHistClusterMapITSMInorefit->Sumw2();
672 fHistClusterMapITSMInorefit->SetMinimum(0);
673 fOutput->Add(fHistClusterMapITSMInorefit);
675 fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
676 fHistClusterMapITSSAnorefitInAcc->Sumw2();
677 fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
678 fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
680 fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
681 fHistClusterMapITSSAnorefit->Sumw2();
682 fHistClusterMapITSSAnorefit->SetMinimum(0);
683 fOutput->Add(fHistClusterMapITSSAnorefit);
685 fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
686 fHistClusterMapITSMInocls->Sumw2();
687 fHistClusterMapITSMInocls->SetMinimum(0);
688 fOutput->Add(fHistClusterMapITSMInocls);
690 fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
691 fHistClusterMapITSSAnoclsInAcc->Sumw2();
692 fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
693 fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
695 fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
696 fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0);
697 fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc);
699 fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
700 fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
701 fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
703 fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
704 fHistClusterMapITSSAnocls->Sumw2();
705 fHistClusterMapITSSAnocls->SetMinimum(0);
706 fOutput->Add(fHistClusterMapITSSAnocls);
709 fHistZatSPDouter0ok = new TH1F("fHistZatSPDouter0ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
710 fHistZatSPDouter0ok->Sumw2();
711 fHistZatSPDouter0ok->SetMinimum(0);
712 fOutput->Add(fHistZatSPDouter0ok);
713 fHistZatSPDouter1ok = new TH1F("fHistZatSPDouter1ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
714 fHistZatSPDouter1ok->Sumw2();
715 fHistZatSPDouter1ok->SetMinimum(0);
716 fOutput->Add(fHistZatSPDouter1ok);
717 fHistZatSPDouter2ok = new TH1F("fHistZatSPDouter2ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
718 fHistZatSPDouter2ok->Sumw2();
719 fHistZatSPDouter2ok->SetMinimum(0);
720 fOutput->Add(fHistZatSPDouter2ok);
721 fHistZatSPDouter3ok = new TH1F("fHistZatSPDouter3ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
722 fHistZatSPDouter3ok->Sumw2();
723 fHistZatSPDouter3ok->SetMinimum(0);
724 fOutput->Add(fHistZatSPDouter3ok);
725 fHistZatSPDouter0notok = new TH1F("fHistZatSPDouter0notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
726 fHistZatSPDouter0notok->Sumw2();
727 fHistZatSPDouter0notok->SetMinimum(0);
728 fOutput->Add(fHistZatSPDouter0notok);
729 fHistZatSPDouter1notok = new TH1F("fHistZatSPDouter1notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
730 fHistZatSPDouter1notok->Sumw2();
731 fHistZatSPDouter1notok->SetMinimum(0);
732 fOutput->Add(fHistZatSPDouter1notok);
733 fHistZatSPDouter2notok = new TH1F("fHistZatSPDouter2notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
734 fHistZatSPDouter2notok->Sumw2();
735 fHistZatSPDouter2notok->SetMinimum(0);
736 fOutput->Add(fHistZatSPDouter2notok);
737 fHistZatSPDouter3notok = new TH1F("fHistZatSPDouter3notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
738 fHistZatSPDouter3notok->Sumw2();
739 fHistZatSPDouter3notok->SetMinimum(0);
740 fOutput->Add(fHistZatSPDouter3notok);
742 fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
743 fHistxlocSDDok->Sumw2();
744 fHistxlocSDDok->SetMinimum(0);
745 fOutput->Add(fHistxlocSDDok);
747 fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75);
748 fOutput->Add(fHistxlocVSmodSDDok);
750 fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
751 fHistzlocSDDok->Sumw2();
752 fHistzlocSDDok->SetMinimum(0);
753 fOutput->Add(fHistzlocSDDok);
755 fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
756 fHistxlocSDDall->Sumw2();
757 fHistxlocSDDall->SetMinimum(0);
758 fOutput->Add(fHistxlocSDDall);
760 fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
761 fHistzlocSDDall->Sumw2();
762 fHistzlocSDDall->SetMinimum(0);
763 fOutput->Add(fHistzlocSDDall);
766 fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415);
767 fHistPhiTPCInAcc->Sumw2();
768 fHistPhiTPCInAcc->SetMinimum(0);
769 fOutput->Add(fHistPhiTPCInAcc);
771 fHistEtaTPCInAcc = new TH1F("fHistEtaTPCInAcc","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
772 fHistEtaTPCInAcc->Sumw2();
773 fHistEtaTPCInAcc->SetMinimum(0);
774 fOutput->Add(fHistEtaTPCInAcc);
776 fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415);
777 fHistPhiITSMIokbadoutinz6InAcc->Sumw2();
778 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
779 fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc);
781 fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
783 fHistPtTPC->SetMinimum(0);
784 fOutput->Add(fHistPtTPC);
786 fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
787 fHistPtITSMI6->Sumw2();
788 fHistPtITSMI6->SetMinimum(0);
789 fOutput->Add(fHistPtITSMI6);
791 fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
792 fHistPtITSMI5->Sumw2();
793 fHistPtITSMI5->SetMinimum(0);
794 fOutput->Add(fHistPtITSMI5);
796 fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
797 fHistPtITSMI4->Sumw2();
798 fHistPtITSMI4->SetMinimum(0);
799 fOutput->Add(fHistPtITSMI4);
801 fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
802 fHistPtITSMI3->Sumw2();
803 fHistPtITSMI3->SetMinimum(0);
804 fOutput->Add(fHistPtITSMI3);
806 fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
807 fHistPtITSMI2->Sumw2();
808 fHistPtITSMI2->SetMinimum(0);
809 fOutput->Add(fHistPtITSMI2);
811 fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
812 fHistPtITSMISPD->Sumw2();
813 fHistPtITSMISPD->SetMinimum(0);
814 fOutput->Add(fHistPtITSMISPD);
816 fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
817 fHistPtITSMIoneSPD->Sumw2();
818 fHistPtITSMIoneSPD->SetMinimum(0);
819 fOutput->Add(fHistPtITSMIoneSPD);
821 fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
822 fHistPtTPCInAcc->Sumw2();
823 fHistPtTPCInAcc->SetMinimum(0);
824 fOutput->Add(fHistPtTPCInAcc);
826 fHistPtTPCInAccMCtwoSPD = new TH1F("fHistPtTPCInAccMCtwoSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
827 fHistPtTPCInAccMCtwoSPD->Sumw2();
828 fHistPtTPCInAccMCtwoSPD->SetMinimum(0);
829 fOutput->Add(fHistPtTPCInAccMCtwoSPD);
831 fHistPtTPCInAccMConeSPD = new TH1F("fHistPtTPCInAccMConeSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
832 fHistPtTPCInAccMConeSPD->Sumw2();
833 fHistPtTPCInAccMConeSPD->SetMinimum(0);
834 fOutput->Add(fHistPtTPCInAccMConeSPD);
836 fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500);
837 fOutput->Add(fHistdEdxVSPtTPCInAcc);
839 fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500);
840 fOutput->Add(fHistdEdxVSPtITSTPCsel);
842 fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5);
843 fHistPtVSphiTPCInAcc->SetMinimum(0);
844 fOutput->Add(fHistPtVSphiTPCInAcc);
846 fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
847 fHistPtTPCInAccNoTRDout->Sumw2();
848 fHistPtTPCInAccNoTRDout->SetMinimum(0);
849 fOutput->Add(fHistPtTPCInAccNoTRDout);
851 fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
852 fHistPtTPCInAccNoTOFout->Sumw2();
853 fHistPtTPCInAccNoTOFout->SetMinimum(0);
854 fOutput->Add(fHistPtTPCInAccNoTOFout);
856 fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
857 fHistPtTPCInAccWithPtTPCAtVtx->Sumw2();
858 fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0);
859 fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx);
861 fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
862 fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2();
863 fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0);
864 fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall);
866 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);
867 fHistDeltaPtTPC->SetMinimum(0);
868 fOutput->Add(fHistDeltaPtTPC);
870 fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
871 fHistPtITSMI6InAcc->Sumw2();
872 fHistPtITSMI6InAcc->SetMinimum(0);
873 fOutput->Add(fHistPtITSMI6InAcc);
875 fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
876 fHistPtITSMI5InAcc->Sumw2();
877 fHistPtITSMI5InAcc->SetMinimum(0);
878 fOutput->Add(fHistPtITSMI5InAcc);
880 fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
881 fHistPtITSMI4InAcc->Sumw2();
882 fHistPtITSMI4InAcc->SetMinimum(0);
883 fOutput->Add(fHistPtITSMI4InAcc);
885 fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
886 fHistPtITSMI3InAcc->Sumw2();
887 fHistPtITSMI3InAcc->SetMinimum(0);
888 fOutput->Add(fHistPtITSMI3InAcc);
890 fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
891 fHistPtITSMI2InAcc->Sumw2();
892 fHistPtITSMI2InAcc->SetMinimum(0);
893 fOutput->Add(fHistPtITSMI2InAcc);
895 fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
896 fHistPtITSMISPDInAcc->Sumw2();
897 fHistPtITSMISPDInAcc->SetMinimum(0);
898 fOutput->Add(fHistPtITSMISPDInAcc);
900 fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
901 fHistPtITSMIoneSPDInAcc->Sumw2();
902 fHistPtITSMIoneSPDInAcc->SetMinimum(0);
903 fOutput->Add(fHistPtITSMIoneSPDInAcc);
905 fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
906 fHistPhiITSMI6InAcc->Sumw2();
907 fHistPhiITSMI6InAcc->SetMinimum(0);
908 fOutput->Add(fHistPhiITSMI6InAcc);
910 fHistPhiITSMI5InAcc = new TH1F("fHistPhiITSMI5InAcc","phi distribution of ITSMI5 tracks; #phi; N tracks",100,0,2*3.1415);
911 fHistPhiITSMI5InAcc->Sumw2();
912 fHistPhiITSMI5InAcc->SetMinimum(0);
913 fOutput->Add(fHistPhiITSMI5InAcc);
915 fHistPhiITSMI4InAcc = new TH1F("fHistPhiITSMI4InAcc","phi distribution of ITSMI4 tracks; #phi; N tracks",100,0,2*3.1415);
916 fHistPhiITSMI4InAcc->Sumw2();
917 fHistPhiITSMI4InAcc->SetMinimum(0);
918 fOutput->Add(fHistPhiITSMI4InAcc);
920 fHistPhiITSMI3InAcc = new TH1F("fHistPhiITSMI3InAcc","phi distribution of ITSMI3 tracks; #phi; N tracks",100,0,2*3.1415);
921 fHistPhiITSMI3InAcc->Sumw2();
922 fHistPhiITSMI3InAcc->SetMinimum(0);
923 fOutput->Add(fHistPhiITSMI3InAcc);
925 fHistPhiITSMI2InAcc = new TH1F("fHistPhiITSMI2InAcc","phi distribution of ITSMI2 tracks; #phi; N tracks",100,0,2*3.1415);
926 fHistPhiITSMI2InAcc->Sumw2();
927 fHistPhiITSMI2InAcc->SetMinimum(0);
928 fOutput->Add(fHistPhiITSMI2InAcc);
930 fHistPhiITSMISPDInAcc = new TH1F("fHistPhiITSMISPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
931 fHistPhiITSMISPDInAcc->Sumw2();
932 fHistPhiITSMISPDInAcc->SetMinimum(0);
933 fOutput->Add(fHistPhiITSMISPDInAcc);
935 fHistPhiITSMIoneSPDInAcc = new TH1F("fHistPhiITSMIoneSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
936 fHistPhiITSMIoneSPDInAcc->Sumw2();
937 fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
938 fOutput->Add(fHistPhiITSMIoneSPDInAcc);
940 fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
941 fHistEtaITSMI6InAcc->Sumw2();
942 fHistEtaITSMI6InAcc->SetMinimum(0);
943 fOutput->Add(fHistEtaITSMI6InAcc);
945 fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
946 fHistEtaITSMI5InAcc->Sumw2();
947 fHistEtaITSMI5InAcc->SetMinimum(0);
948 fOutput->Add(fHistEtaITSMI5InAcc);
950 fHistEtaITSMI4InAcc = new TH1F("fHistEtaITSMI4InAcc","eta distribution of ITSMI4 tracks; #eta; N tracks",100,-1.5,+1.5);
951 fHistEtaITSMI4InAcc->Sumw2();
952 fHistEtaITSMI4InAcc->SetMinimum(0);
953 fOutput->Add(fHistEtaITSMI4InAcc);
955 fHistEtaITSMI3InAcc = new TH1F("fHistEtaITSMI3InAcc","eta distribution of ITSMI3 tracks; #eta; N tracks",100,-1.5,+1.5);
956 fHistEtaITSMI3InAcc->Sumw2();
957 fHistEtaITSMI3InAcc->SetMinimum(0);
958 fOutput->Add(fHistEtaITSMI3InAcc);
960 fHistEtaITSMI2InAcc = new TH1F("fHistEtaITSMI2InAcc","eta distribution of ITSMI2 tracks; #eta; N tracks",100,-1.5,+1.5);
961 fHistEtaITSMI2InAcc->Sumw2();
962 fHistEtaITSMI2InAcc->SetMinimum(0);
963 fOutput->Add(fHistEtaITSMI2InAcc);
965 fHistEtaITSMISPDInAcc = new TH1F("fHistEtaITSMISPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
966 fHistEtaITSMISPDInAcc->Sumw2();
967 fHistEtaITSMISPDInAcc->SetMinimum(0);
968 fOutput->Add(fHistEtaITSMISPDInAcc);
970 fHistEtaITSMIoneSPDInAcc = new TH1F("fHistEtaITSMIoneSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
971 fHistEtaITSMIoneSPDInAcc->Sumw2();
972 fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
973 fOutput->Add(fHistEtaITSMIoneSPDInAcc);
976 fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
977 fHistPtITSMI6InAccFake->Sumw2();
978 fHistPtITSMI6InAccFake->SetMinimum(0);
979 fOutput->Add(fHistPtITSMI6InAccFake);
981 fHistPtITSMI5InAccFake = new TH1F("fHistPtITSMI5InAccFake","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
982 fHistPtITSMI5InAccFake->Sumw2();
983 fHistPtITSMI5InAccFake->SetMinimum(0);
984 fOutput->Add(fHistPtITSMI5InAccFake);
986 fHistPtITSMI4InAccFake = new TH1F("fHistPtITSMI4InAccFake","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
987 fHistPtITSMI4InAccFake->Sumw2();
988 fHistPtITSMI4InAccFake->SetMinimum(0);
989 fOutput->Add(fHistPtITSMI4InAccFake);
991 fHistPtITSMI3InAccFake = new TH1F("fHistPtITSMI3InAccFake","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
992 fHistPtITSMI3InAccFake->Sumw2();
993 fHistPtITSMI3InAccFake->SetMinimum(0);
994 fOutput->Add(fHistPtITSMI3InAccFake);
996 fHistPtITSMI2InAccFake = new TH1F("fHistPtITSMI2InAccFake","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
997 fHistPtITSMI2InAccFake->Sumw2();
998 fHistPtITSMI2InAccFake->SetMinimum(0);
999 fOutput->Add(fHistPtITSMI2InAccFake);
1001 fHistPtITSMISPDInAccFake = new TH1F("fHistPtITSMISPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1002 fHistPtITSMISPDInAccFake->Sumw2();
1003 fHistPtITSMISPDInAccFake->SetMinimum(0);
1004 fOutput->Add(fHistPtITSMISPDInAccFake);
1006 fHistPtITSMIoneSPDInAccFake = new TH1F("fHistPtITSMIoneSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1007 fHistPtITSMIoneSPDInAccFake->Sumw2();
1008 fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
1009 fOutput->Add(fHistPtITSMIoneSPDInAccFake);
1011 fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1012 fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
1013 fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
1014 fOutput->Add(fHistPtITSMIoneSPDthreeSDDSSDInAcc);
1016 fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1017 fHistPtITSTPCsel->Sumw2();
1018 fHistPtITSTPCsel->SetMinimum(0);
1019 fOutput->Add(fHistPtITSTPCsel);
1021 fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1022 fHistPtITSTPCselP->Sumw2();
1023 fHistPtITSTPCselP->SetMinimum(0);
1024 fOutput->Add(fHistPtITSTPCselP);
1026 fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1027 fHistPtITSTPCselS->Sumw2();
1028 fHistPtITSTPCselS->SetMinimum(0);
1029 fOutput->Add(fHistPtITSTPCselS);
1031 fHistPtITSTPCselFake = new TH1F("fHistPtITSTPCselFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1032 fHistPtITSTPCselFake->Sumw2();
1033 fHistPtITSTPCselFake->SetMinimum(0);
1034 fOutput->Add(fHistPtITSTPCselFake);
1036 fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1037 fHistPtITSTPCselSfromStrange->Sumw2();
1038 fHistPtITSTPCselSfromStrange->SetMinimum(0);
1039 fOutput->Add(fHistPtITSTPCselSfromStrange);
1041 fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1042 fHistPtITSTPCselPfromStrange->Sumw2();
1043 fHistPtITSTPCselPfromStrange->SetMinimum(0);
1044 fOutput->Add(fHistPtITSTPCselPfromStrange);
1046 fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1047 fHistPtITSTPCselSfromMat->Sumw2();
1048 fHistPtITSTPCselSfromMat->SetMinimum(0);
1049 fOutput->Add(fHistPtITSTPCselSfromMat);
1051 fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1052 fHistPtTPCInAccP->Sumw2();
1053 fHistPtTPCInAccP->SetMinimum(0);
1054 fOutput->Add(fHistPtTPCInAccP);
1056 fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1057 fHistPtTPCInAccPfromStrange->Sumw2();
1058 fHistPtTPCInAccPfromStrange->SetMinimum(0);
1059 fOutput->Add(fHistPtTPCInAccPfromStrange);
1061 fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1062 fHistPtITSMI6InAccP->Sumw2();
1063 fHistPtITSMI6InAccP->SetMinimum(0);
1064 fOutput->Add(fHistPtITSMI6InAccP);
1066 fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1067 fHistPtITSMI5InAccP->Sumw2();
1068 fHistPtITSMI5InAccP->SetMinimum(0);
1069 fOutput->Add(fHistPtITSMI5InAccP);
1071 fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1072 fHistPtITSMI4InAccP->Sumw2();
1073 fHistPtITSMI4InAccP->SetMinimum(0);
1074 fOutput->Add(fHistPtITSMI4InAccP);
1076 fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1077 fHistPtITSMI3InAccP->Sumw2();
1078 fHistPtITSMI3InAccP->SetMinimum(0);
1079 fOutput->Add(fHistPtITSMI3InAccP);
1081 fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1082 fHistPtITSMI2InAccP->Sumw2();
1083 fHistPtITSMI2InAccP->SetMinimum(0);
1084 fOutput->Add(fHistPtITSMI2InAccP);
1086 fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1087 fHistPtITSMISPDInAccP->Sumw2();
1088 fHistPtITSMISPDInAccP->SetMinimum(0);
1089 fOutput->Add(fHistPtITSMISPDInAccP);
1091 fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1092 fHistPtITSMIoneSPDInAccP->Sumw2();
1093 fHistPtITSMIoneSPDInAccP->SetMinimum(0);
1094 fOutput->Add(fHistPtITSMIoneSPDInAccP);
1096 fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1097 fHistPtTPCInAccS->Sumw2();
1098 fHistPtTPCInAccS->SetMinimum(0);
1099 fOutput->Add(fHistPtTPCInAccS);
1101 fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1102 fHistPtTPCInAccSfromStrange->Sumw2();
1103 fHistPtTPCInAccSfromStrange->SetMinimum(0);
1104 fOutput->Add(fHistPtTPCInAccSfromStrange);
1106 fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1107 fHistPtTPCInAccSfromMat->Sumw2();
1108 fHistPtTPCInAccSfromMat->SetMinimum(0);
1109 fOutput->Add(fHistPtTPCInAccSfromMat);
1111 fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1112 fHistPtITSMI6InAccS->Sumw2();
1113 fHistPtITSMI6InAccS->SetMinimum(0);
1114 fOutput->Add(fHistPtITSMI6InAccS);
1116 fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1117 fHistPtITSMI5InAccS->Sumw2();
1118 fHistPtITSMI5InAccS->SetMinimum(0);
1119 fOutput->Add(fHistPtITSMI5InAccS);
1121 fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1122 fHistPtITSMI4InAccS->Sumw2();
1123 fHistPtITSMI4InAccS->SetMinimum(0);
1124 fOutput->Add(fHistPtITSMI4InAccS);
1126 fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1127 fHistPtITSMI3InAccS->Sumw2();
1128 fHistPtITSMI3InAccS->SetMinimum(0);
1129 fOutput->Add(fHistPtITSMI3InAccS);
1131 fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1132 fHistPtITSMI2InAccS->Sumw2();
1133 fHistPtITSMI2InAccS->SetMinimum(0);
1134 fOutput->Add(fHistPtITSMI2InAccS);
1136 fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1137 fHistPtITSMISPDInAccS->Sumw2();
1138 fHistPtITSMISPDInAccS->SetMinimum(0);
1139 fOutput->Add(fHistPtITSMISPDInAccS);
1141 fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1142 fHistPtITSMIoneSPDInAccS->Sumw2();
1143 fHistPtITSMIoneSPDInAccS->SetMinimum(0);
1144 fOutput->Add(fHistPtITSMIoneSPDInAccS);
1146 fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1147 fHistPtITSMIokbadoutinz6->Sumw2();
1148 fHistPtITSMIokbadoutinz6->SetMinimum(0);
1149 fOutput->Add(fHistPtITSMIokbadoutinz6);
1151 fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1152 fHistPtITSMIokbadoutinz4InAcc->Sumw2();
1153 fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0);
1154 fOutput->Add(fHistPtITSMIokbadoutinz4InAcc);
1156 fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1157 fHistPtITSMIokbadoutinz5InAcc->Sumw2();
1158 fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0);
1159 fOutput->Add(fHistPtITSMIokbadoutinz5InAcc);
1161 fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1162 fHistPtITSMIokbadoutinz6InAcc->Sumw2();
1163 fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0);
1164 fOutput->Add(fHistPtITSMIokbadoutinz6InAcc);
1166 fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10);
1167 fHistRProdVtxInAccP->Sumw2();
1168 fHistRProdVtxInAccP->SetMinimum(0);
1169 fOutput->Add(fHistRProdVtxInAccP);
1171 fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10);
1172 fHistRProdVtxInAccS->Sumw2();
1173 fHistRProdVtxInAccS->SetMinimum(0);
1174 fOutput->Add(fHistRProdVtxInAccS);
1176 fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1177 fHistd0rphiTPCInAccP150200->Sumw2();
1178 fHistd0rphiTPCInAccP150200->SetMinimum(0);
1179 fOutput->Add(fHistd0rphiTPCInAccP150200);
1181 fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1182 fHistd0rphiTPCInAccP500700->Sumw2();
1183 fHistd0rphiTPCInAccP500700->SetMinimum(0);
1184 fOutput->Add(fHistd0rphiTPCInAccP500700);
1186 fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1187 fHistd0rphiTPCInAccP10001500->Sumw2();
1188 fHistd0rphiTPCInAccP10001500->SetMinimum(0);
1189 fOutput->Add(fHistd0rphiTPCInAccP10001500);
1191 fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1192 fHistd0rphiTPCInAccS150200->Sumw2();
1193 fHistd0rphiTPCInAccS150200->SetMinimum(0);
1194 fOutput->Add(fHistd0rphiTPCInAccS150200);
1196 fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1197 fHistd0rphiTPCInAccS500700->Sumw2();
1198 fHistd0rphiTPCInAccS500700->SetMinimum(0);
1199 fOutput->Add(fHistd0rphiTPCInAccS500700);
1201 fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1202 fHistd0rphiTPCInAccS10001500->Sumw2();
1203 fHistd0rphiTPCInAccS10001500->SetMinimum(0);
1204 fOutput->Add(fHistd0rphiTPCInAccS10001500);
1206 fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1207 fHistd0rphiITSMISPDInAccP150200->Sumw2();
1208 fHistd0rphiITSMISPDInAccP150200->SetMinimum(0);
1209 fOutput->Add(fHistd0rphiITSMISPDInAccP150200);
1211 fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1212 fHistd0rphiITSMISPDInAccP500700->Sumw2();
1213 fHistd0rphiITSMISPDInAccP500700->SetMinimum(0);
1214 fOutput->Add(fHistd0rphiITSMISPDInAccP500700);
1216 fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1217 fHistd0rphiITSMISPDInAccP10001500->Sumw2();
1218 fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0);
1219 fOutput->Add(fHistd0rphiITSMISPDInAccP10001500);
1221 fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1222 fHistd0rphiITSMISPDInAccS150200->Sumw2();
1223 fHistd0rphiITSMISPDInAccS150200->SetMinimum(0);
1224 fOutput->Add(fHistd0rphiITSMISPDInAccS150200);
1226 fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1227 fHistd0rphiITSMISPDInAccS500700->Sumw2();
1228 fHistd0rphiITSMISPDInAccS500700->SetMinimum(0);
1229 fOutput->Add(fHistd0rphiITSMISPDInAccS500700);
1231 fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1232 fHistd0rphiITSMISPDInAccS10001500->Sumw2();
1233 fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0);
1234 fOutput->Add(fHistd0rphiITSMISPDInAccS10001500);
1236 fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1237 fHistd0rphiITSMIoneSPDInAccP150200->Sumw2();
1238 fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0);
1239 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200);
1241 fHistd0rphiITSMIoneSPDInAccP350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccP350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1242 fHistd0rphiITSMIoneSPDInAccP350450->Sumw2();
1243 fHistd0rphiITSMIoneSPDInAccP350450->SetMinimum(0);
1244 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP350450);
1246 fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1247 fHistd0rphiITSMIoneSPDInAccP500700->Sumw2();
1248 fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0);
1249 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700);
1251 fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1252 fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2();
1253 fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0);
1254 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500);
1256 fHistd0rphiITSMIoneSPDInAccP25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1257 fHistd0rphiITSMIoneSPDInAccP25004000->Sumw2();
1258 fHistd0rphiITSMIoneSPDInAccP25004000->SetMinimum(0);
1259 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP25004000);
1261 fHistd0rphiITSMIoneSPDInAccP40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1262 fHistd0rphiITSMIoneSPDInAccP40008000->Sumw2();
1263 fHistd0rphiITSMIoneSPDInAccP40008000->SetMinimum(0);
1264 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP40008000);
1266 fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1267 fHistd0zITSMIoneSPDInAccP150200->Sumw2();
1268 fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0);
1269 fOutput->Add(fHistd0zITSMIoneSPDInAccP150200);
1271 fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1272 fHistd0zITSMIoneSPDInAccP500700->Sumw2();
1273 fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0);
1274 fOutput->Add(fHistd0zITSMIoneSPDInAccP500700);
1276 fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1277 fHistd0zITSMIoneSPDInAccP10001500->Sumw2();
1278 fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0);
1279 fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500);
1281 fHistd0zVSetaTPCInAccP10001500 = new TH2F("fHistd0zVSetaTPCInAccP10001500","Long. imp. par. to VertexSPD for TPC tracks; d_{0} z [cm]; eta",100,-4,4,10,-1,1);
1282 fOutput->Add(fHistd0zVSetaTPCInAccP10001500);
1284 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);
1285 fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500);
1287 fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1);
1288 fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500);
1290 fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1291 fHistd0rphiITSMIoneSPDInAccS150200->Sumw2();
1292 fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0);
1293 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200);
1295 fHistd0rphiITSMIoneSPDInAccS350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1296 fHistd0rphiITSMIoneSPDInAccS350450->Sumw2();
1297 fHistd0rphiITSMIoneSPDInAccS350450->SetMinimum(0);
1298 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450);
1300 fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1301 fHistd0rphiITSMIoneSPDInAccS500700->Sumw2();
1302 fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0);
1303 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700);
1305 fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1306 fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2();
1307 fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0);
1308 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22);
1310 fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1311 fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2();
1312 fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0);
1313 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211);
1315 fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1316 fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2();
1317 fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0);
1318 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310);
1320 fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1321 fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2();
1322 fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0);
1323 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321);
1325 fHistd0rphiITSMIoneSPDInAccS500700from3122 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from3122","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1326 fHistd0rphiITSMIoneSPDInAccS500700from3122->Sumw2();
1327 fHistd0rphiITSMIoneSPDInAccS500700from3122->SetMinimum(0);
1328 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from3122);
1330 fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1331 fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2();
1332 fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0);
1333 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500);
1335 fHistd0rphiITSMIoneSPDInAccS25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1336 fHistd0rphiITSMIoneSPDInAccS25004000->Sumw2();
1337 fHistd0rphiITSMIoneSPDInAccS25004000->SetMinimum(0);
1338 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000);
1340 fHistd0rphiITSMIoneSPDInAccS40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1341 fHistd0rphiITSMIoneSPDInAccS40008000->Sumw2();
1342 fHistd0rphiITSMIoneSPDInAccS40008000->SetMinimum(0);
1343 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000);
1345 fHistd0rphiITSMIoneSPDInAccS150200fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1346 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Sumw2();
1347 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->SetMinimum(0);
1348 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromStrange);
1350 fHistd0rphiITSMIoneSPDInAccS150200fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1351 fHistd0rphiITSMIoneSPDInAccS150200fromMat->Sumw2();
1352 fHistd0rphiITSMIoneSPDInAccS150200fromMat->SetMinimum(0);
1353 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromMat);
1355 fHistd0rphiITSMIoneSPDInAccS350450fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1356 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Sumw2();
1357 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->SetMinimum(0);
1358 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromStrange);
1360 fHistd0rphiITSMIoneSPDInAccS350450fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1361 fHistd0rphiITSMIoneSPDInAccS350450fromMat->Sumw2();
1362 fHistd0rphiITSMIoneSPDInAccS350450fromMat->SetMinimum(0);
1363 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromMat);
1365 fHistd0rphiITSMIoneSPDInAccS500700fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1366 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Sumw2();
1367 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->SetMinimum(0);
1368 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromStrange);
1370 fHistd0rphiITSMIoneSPDInAccS500700fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1371 fHistd0rphiITSMIoneSPDInAccS500700fromMat->Sumw2();
1372 fHistd0rphiITSMIoneSPDInAccS500700fromMat->SetMinimum(0);
1373 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromMat);
1375 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1376 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Sumw2();
1377 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->SetMinimum(0);
1378 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromStrange);
1380 fHistd0rphiITSMIoneSPDInAccS10001500fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1381 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Sumw2();
1382 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->SetMinimum(0);
1383 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromMat);
1385 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1386 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Sumw2();
1387 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->SetMinimum(0);
1388 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromStrange);
1390 fHistd0rphiITSMIoneSPDInAccS25004000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1391 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Sumw2();
1392 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->SetMinimum(0);
1393 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromMat);
1395 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1396 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Sumw2();
1397 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->SetMinimum(0);
1398 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromStrange);
1400 fHistd0rphiITSMIoneSPDInAccS40008000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1401 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Sumw2();
1402 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->SetMinimum(0);
1403 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromMat);
1406 fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1407 fHistd0zITSMIoneSPDInAccS150200->Sumw2();
1408 fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0);
1409 fOutput->Add(fHistd0zITSMIoneSPDInAccS150200);
1411 fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1412 fHistd0zITSMIoneSPDInAccS500700->Sumw2();
1413 fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0);
1414 fOutput->Add(fHistd0zITSMIoneSPDInAccS500700);
1416 fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1417 fHistd0zITSMIoneSPDInAccS10001500->Sumw2();
1418 fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0);
1419 fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500);
1421 fHistITSRedChi2NonFakePt02 = new TH1F("fHistITSRedChi2NonFakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1422 fOutput->Add(fHistITSRedChi2NonFakePt02);
1423 fHistITSRedChi2FakePt02 = new TH1F("fHistITSRedChi2FakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1424 fOutput->Add(fHistITSRedChi2FakePt02);
1425 fHistITSRedChi2NonFakePt05 = new TH1F("fHistITSRedChi2NonFakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1426 fOutput->Add(fHistITSRedChi2NonFakePt05);
1427 fHistITSRedChi2FakePt05 = new TH1F("fHistITSRedChi2FakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1428 fOutput->Add(fHistITSRedChi2FakePt05);
1429 fHistITSRedChi2NonFakePt1 = new TH1F("fHistITSRedChi2NonFakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1430 fOutput->Add(fHistITSRedChi2NonFakePt1);
1431 fHistITSRedChi2FakePt1 = new TH1F("fHistITSRedChi2FakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1432 fOutput->Add(fHistITSRedChi2FakePt1);
1437 fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:pdgMCMoth:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel");
1438 fOutput->Add(fNtupleESDTracks);
1440 fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt");
1441 fOutput->Add(fNtupleITSAlignExtra);
1443 fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt");
1444 fOutput->Add(fNtupleITSAlignSPDTracklets);
1449 //________________________________________________________________________
1450 void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
1453 // Called for each event
1455 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1458 Printf("ERROR: fESD not available");
1462 // only events in the requested multiplicity range
1463 if(!IsSelectedCentrality()) return;
1465 fHistNEvents->Fill(-1);
1468 Bool_t isSelected = kTRUE;
1470 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1472 if(!isSelected) return;
1475 //if(fESD->GetEventType()!=7) return;
1477 // *********** MC info ***************
1478 TArrayF mcVertex(3);
1479 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
1480 Float_t dNchdy=-999.;
1483 AliESDVertex *vertexMC=0;
1486 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1487 if (!eventHandler) {
1488 Printf("ERROR: Could not retrieve MC event handler");
1492 AliMCEvent* mcEvent = eventHandler->MCEvent();
1494 Printf("ERROR: Could not retrieve MC event");
1498 stack = mcEvent->Stack();
1500 AliDebug(AliLog::kError, "Stack not available");
1504 AliHeader* header = mcEvent->Header();
1506 AliDebug(AliLog::kError, "Header not available");
1509 AliGenEventHeader* genHeader = header->GenEventHeader();
1510 genHeader->PrimaryVertex(mcVertex);
1511 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
1513 Int_t ngenpart = (Int_t)stack->GetNtrack();
1514 //printf("# generated particles = %d\n",ngenpart);
1516 for(Int_t ip=0; ip<ngenpart; ip++) {
1517 part = (TParticle*)stack->Particle(ip);
1518 // keep only electrons, muons, pions, kaons and protons
1519 Int_t apdg = TMath::Abs(part->GetPdgCode());
1520 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
1521 // reject secondaries
1522 //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])));
1523 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
1524 // reject incoming protons
1525 Double_t energy = part->Energy();
1526 if(energy>900.) continue;
1527 Double_t pz = part->Pz();
1528 Double_t y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
1529 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
1531 //printf("# primary particles = %7.1f\n",dNchdy);
1533 // *********** MC info ***************
1534 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
1535 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
1539 //------- event selection --------
1540 Int_t mincontrSPDvtx=1;
1541 Double_t maxzSPDvtx=20.;
1542 Double_t maxrSPDvtx=0.5;
1543 Bool_t useTRKvtx=kTRUE;
1544 Bool_t useSPDvtxifNotTRK=kTRUE;
1545 Int_t mincontrTRKvtx=1;
1546 //Double_t maxzTRKvtx=20.;
1547 //Double_t maxrTRKvtx=1.;
1548 //------- TPC track selection --------
1550 Double_t maxchi2perTPCcl=4.;
1551 Double_t minEtaInAcc=-0.8; // -0.8
1552 Double_t maxEtaInAcc=0.8; // 0.8
1553 Double_t maxdcaxy=2.4;//2.4;
1554 Double_t maxdcaz=3.2;//3.2;
1555 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
1556 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
1557 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
1558 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
1559 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
1560 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
1561 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
1562 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
1563 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1564 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1565 SetESDtrackCutsTPC(esdtrackCutsTPC);
1566 //------- ITS+TPC track selection --------
1567 Double_t maxdcaxyITSTPC=0.2;
1568 Double_t maxdcazITSTPC=1.e6;
1569 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
1570 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1571 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
1572 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
1573 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
1574 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
1575 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1576 AliESDtrackCuts::kAny);
1577 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
1578 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
1579 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1580 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
1581 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
1582 //---------------------------------------
1588 // ********** Trigger *****************
1589 ULong64_t triggerMask;
1590 ULong64_t spdFO = (1 << 14);
1591 ULong64_t v0left = (1 << 11);
1592 ULong64_t v0right = (1 << 12);
1594 triggerMask=fESD->GetTriggerMask();
1595 // MB1: SPDFO || V0L || V0R
1596 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
1598 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
1599 // ************ Trigger ******************
1600 if(!eventTriggered) return;
1604 fHistNEvents->Fill(0);
1607 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
1608 // Select good SPD vertices
1609 TString spdvtitle=spdv->GetTitle();
1610 //if(!spdvtitle.Contains("3D")) return;
1611 if(spdv->GetNContributors()<mincontrSPDvtx ||
1612 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
1613 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
1614 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
1615 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
1622 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
1625 if(spdvtitle.Contains("3D")) {
1626 fHistNEvents->Fill(1);
1627 fHistNEvents->Fill(3);
1629 fHistNEvents->Fill(2);
1630 fHistNEvents->Fill(3);
1633 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
1636 Int_t ntracks = fESD->GetNumberOfTracks();
1637 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
1639 fHistNtracks->Fill(ntracks);
1640 // Post the data already here
1641 PostData(1, fOutput);
1643 Int_t idet,status; Float_t xloc,zloc;
1644 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
1645 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
1648 for(Int_t itr=0; itr<ntracks; itr++) {
1649 AliESDtrack *track = fESD->GetTrack(itr);
1650 //if(track->Charge()>0) continue;
1651 // remove kink daughters
1652 if(track->GetKinkIndex(0)>0) continue;
1654 // remove tracks not reco in ITS or TPC
1655 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
1656 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
1658 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
1659 Double_t rProdVtx=0,zProdVtx=0;
1660 Int_t pdgTrk=0,pdgMoth=0;
1663 Int_t trkLabel = TMath::Abs(track->GetLabel());
1664 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
1665 // check if it is primary
1666 if(fReadMC && stack) {
1667 isPrimary = stack->IsPhysicalPrimary(trkLabel);
1668 part = (TParticle*)stack->Particle(trkLabel);
1669 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
1670 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
1671 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
1672 pdgTrk = TMath::Abs(part->GetPdgCode());
1673 if(part->GetFirstMother()>=0) {
1674 TParticle* mm=stack->Particle(part->GetFirstMother());
1675 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
1677 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
1678 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
1679 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
1682 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
1683 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
1684 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
1685 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
1687 // remove tracks with kTPCin and not kTPCrefit
1688 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
1690 AliESDtrack *trackTPC = 0;
1691 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
1692 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
1695 Int_t nclsITS = track->GetNcls(0);
1696 Int_t nclsSDDSSD = 0;
1697 Int_t nclsokbadoutinzITS = 0;
1698 Bool_t outInZ=kFALSE;
1699 Bool_t skipTrack=kFALSE;
1701 for(Int_t layer=0; layer<6; layer++) {
1702 if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
1703 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
1704 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
1705 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
1706 if(status<0) continue;
1707 if(layer>=2) idet+=240; // add n SPD modules
1708 if(layer>=4) idet+=260; // add n SDD modules
1709 if(status==4) outInZ=kTRUE;
1711 if(layer==1 && tpcrefit && itsrefit) {
1713 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
1715 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
1716 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
1717 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
1718 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
1720 if(status==2 || status==5) {
1721 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
1722 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
1723 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
1724 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
1727 // kill SDD clusters in MC
1728 if(fReadMC && (layer==2 || layer==3)) {
1729 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
1730 Double_t conv=3.34/5.43;
1731 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
1732 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
1735 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
1736 if(status==1) fHistClusterMapITSMIok->Fill(layer);
1737 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
1738 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
1739 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
1740 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
1741 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
1742 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
1743 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
1744 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
1745 if(status==1 || status==2 || status==4) {
1746 fHistClusterMapITSMIokoutinzbad->Fill(layer);
1747 nclsokbadoutinzITS++;
1749 /*if(idet>=80 && idet<120) {
1751 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
1752 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);
1754 if((layer==2 || layer==3) && status!=2 && status!=4) {
1756 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
1757 fHistxlocSDDall->Fill(xloc);
1758 fHistzlocSDDall->Fill(zloc);
1759 if(status==1 /*nClsInMod>0*/) {
1760 fHistxlocSDDok->Fill(xloc);
1761 fHistxlocVSmodSDDok->Fill(idet,xloc);
1762 fHistzlocSDDok->Fill(zloc);
1766 if(status==1) fHistClusterMapITSSAok->Fill(layer);
1767 if(status==2) fHistClusterMapITSSAbad->Fill(layer);
1768 if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
1769 if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
1770 if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
1771 if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
1772 if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
1773 if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
1774 if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
1775 if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
1776 if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
1777 if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
1778 if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
1779 if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
1781 if(TESTBIT(track->GetITSClusterMap(),layer)) {
1783 fHistClusterMapITSMI->Fill(layer);
1785 fHistClusterMapITSSA->Fill(layer);
1786 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
1790 // SKIP SDD MODULES LOW EFF
1861 // SKIP SDD MODULES LOW EFF
1864 if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
1866 // TPC track findable in ITS
1867 if(tpcrefit && trackTPC) {
1868 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
1870 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
1871 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
1872 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
1873 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
1874 fHistPtTPC->Fill(track->Pt());
1875 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
1876 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
1877 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
1878 itsfindableAcc=kTRUE;
1879 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
1880 fHistPtTPCInAcc->Fill(track->Pt());
1881 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
1882 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
1883 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
1884 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
1885 Double_t pTPCinnerwall[3];
1886 track->GetInnerPxPyPz(pTPCinnerwall);
1887 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
1888 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
1889 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
1891 fHistPhiTPCInAcc->Fill(track->Phi());
1892 fHistEtaTPCInAcc->Fill(track->Eta());
1895 fHistPtTPCInAccP->Fill(track->Pt());
1896 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
1898 fHistPtTPCInAccS->Fill(track->Pt());
1899 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
1900 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
1902 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
1903 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
1904 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
1911 // we need the vertex to compute the impact parameters
1912 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
1913 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
1914 if(useSPDvtxifNotTRK) {
1915 vertexESD = fESD->GetPrimaryVertexSPD();
1917 delete trackTPC; trackTPC=0; continue;
1922 // track prolonged in ITS with different conditions
1925 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
1926 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
1927 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
1928 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
1929 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
1930 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))
1931 fHistPtITSMISPD->Fill(track->Pt());
1932 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
1933 fHistPtITSMIoneSPD->Fill(track->Pt());
1934 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
1936 if(itsfindableAcc) {
1938 fHistPtITSMI6InAcc->Fill(track->Pt());
1940 fHistPhiITSMI6InAcc->Fill(track->Phi());
1941 fHistEtaITSMI6InAcc->Fill(track->Eta());
1943 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
1944 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
1947 fHistPtITSMI5InAcc->Fill(track->Pt());
1949 fHistPhiITSMI5InAcc->Fill(track->Phi());
1950 fHistEtaITSMI5InAcc->Fill(track->Eta());
1952 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
1953 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
1956 fHistPtITSMI4InAcc->Fill(track->Pt());
1958 fHistPhiITSMI4InAcc->Fill(track->Phi());
1959 fHistEtaITSMI4InAcc->Fill(track->Eta());
1961 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
1962 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
1965 fHistPtITSMI3InAcc->Fill(track->Pt());
1967 fHistPhiITSMI3InAcc->Fill(track->Phi());
1968 fHistEtaITSMI3InAcc->Fill(track->Eta());
1970 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
1971 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
1974 fHistPtITSMI2InAcc->Fill(track->Pt());
1976 fHistPhiITSMI2InAcc->Fill(track->Phi());
1977 fHistEtaITSMI2InAcc->Fill(track->Eta());
1979 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
1980 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
1982 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
1983 fHistPtITSMISPDInAcc->Fill(track->Pt());
1985 fHistPhiITSMISPDInAcc->Fill(track->Phi());
1986 fHistEtaITSMISPDInAcc->Fill(track->Eta());
1988 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
1989 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
1991 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
1992 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
1994 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
1995 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
1997 Float_t chi2redITS = track->GetITSchi2()/track->GetNcls(0);
1998 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
1999 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2000 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2002 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2003 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2004 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2005 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2007 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2009 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2011 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2012 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2013 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
2014 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
2019 fHistNclsITSMI->Fill(nclsITS);
2021 fHistNclsITSSA->Fill(nclsITS);
2022 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2026 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2027 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2028 { delete trackTPC; trackTPC=0; continue; }
2030 // impact parameter to VertexTracks
2031 Float_t d0z0[2],covd0z0[3];
2032 Double_t d0z0TPC[2],covd0z0TPC[3];
2034 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2036 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
2037 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2039 track->GetImpactParameters(d0z0,covd0z0);
2040 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
2041 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2044 // track that passes final ITS+TPC cuts
2045 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2046 fHistPtITSTPCsel->Fill(track->Pt());
2047 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
2048 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2050 fHistPtITSTPCselP->Fill(track->Pt());
2051 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2053 fHistPtITSTPCselS->Fill(track->Pt());
2054 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2055 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2061 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
2062 if(track->Pt()>0.150 && track->Pt()<0.200) {
2064 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2065 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2066 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2067 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2068 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
2069 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2070 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2073 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2074 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2075 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2076 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2077 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2078 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2079 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2080 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2082 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2083 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2087 if(track->Pt()>0.350 && track->Pt()<0.450) {
2089 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2090 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2093 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2094 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2095 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2096 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2097 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2102 if(track->Pt()>0.500 && track->Pt()<0.700) {
2104 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2105 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2106 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2107 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2108 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2109 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2112 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2113 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2114 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2115 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2116 fHistPDGTrk->Fill(pdgTrk);
2117 fHistPDGMoth->Fill(pdgMoth);
2118 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
2119 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2120 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2121 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2122 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2124 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2125 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2126 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
2127 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
2128 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2129 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
2130 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
2134 if(track->Pt()>1.000 && track->Pt()<1.500) {
2136 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
2137 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2139 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2140 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2141 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2142 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2143 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2144 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2145 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2148 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2149 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
2150 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2151 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2152 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2153 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2154 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2155 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2157 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2158 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2162 if(track->Pt()>2.500 && track->Pt()<4.000) {
2164 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2165 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2168 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2169 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2170 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2171 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2172 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2177 if(track->Pt()>4.000 && track->Pt()<8.000) {
2179 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2180 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2183 if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
2184 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2185 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2186 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2187 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2195 if(trackTPC) { delete trackTPC; trackTPC=0; }
2197 // encode ITS cluster map, including MC info
2198 Int_t iITSflag=MakeITSflag(track);
2200 // if MC info is available: get particle properties
2201 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2202 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2204 part = (TParticle*)stack->Particle(trkLabel);
2206 pdgMC=part->GetPdgCode();
2207 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2208 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2209 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
2212 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2213 if(!itsrefit) sigmad0MCv *= -1.;
2214 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2215 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
2217 // fill ntuple with track properties
2218 if(fFillNtuples && SelectPt(track->Pt())) {
2219 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};
2220 fNtupleESDTracks->Fill(fillArray);
2223 //---------------------------------------------
2224 // AliTrackPoints: alignment checks
2226 if(!fFillNtuples) continue;
2228 const AliTrackPointArray *array = track->GetTrackPointArray();
2229 if(!array) continue;
2230 AliTrackPoint point;
2231 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2232 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2233 Bool_t extra=kFALSE;
2234 Int_t layerId,layerExtra=-1;
2235 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2236 array->GetPoint(point,ipt);
2237 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2241 } else if(r>6 && r<8) {
2243 } else if(r>8 && r<18) {
2245 } else if(r>18 && r<30) {
2247 } else if(r>30 && r<40) {
2249 } else if(r>40 && r<50) {
2256 if(layerId>5) continue;
2258 if(!point.IsExtra()) {
2259 pointOnLayer[layerId]++;
2260 indexAssociated[layerId]=ipt;
2262 // this is an extra cluster
2267 } // end loop on AliTrackPoints
2269 TString vtitle = spdv->GetTitle();
2270 if(!vtitle.Contains("3D")) continue;
2273 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2274 AliTrackPoint pointSPD1,pointSPD2;
2275 array->GetPoint(pointSPD1,indexAssociated[0]);
2276 array->GetPoint(pointSPD2,indexAssociated[1]);
2277 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2278 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())));
2279 Float_t theta=0.5*TMath::Pi()-lambda;
2280 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);
2281 AliESDtrack tracklet(&particle);
2283 // distance to primary SPD (only if 3D and high multiplicity)
2284 if(spdv->GetNContributors()>10) {
2285 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2286 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
2287 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
2291 // distance to extra
2292 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
2293 AliTrackPoint pointExtra,pointAssociated;
2294 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2295 array->GetPoint(pointExtra,indexExtra);
2296 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2297 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2298 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2299 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2301 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2302 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2303 Float_t xlocExtra=-100.,zlocExtra=-100.;
2304 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
2307 if(trackTPC) { delete trackTPC; trackTPC=0; }
2308 } // end loop on tracks
2310 if(vertexMC) { delete vertexMC; vertexMC=0; }
2312 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2313 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2318 //________________________________________________________________________
2319 void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2321 // Draw result to the screen
2322 // Called once at the end of the query
2323 fOutput = dynamic_cast<TList*> (GetOutputData(1));
2325 Printf("ERROR: fOutput not available");
2328 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2329 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2330 if(fHistNEvents && fHistNEventsFrac) {
2331 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2332 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2338 //---------------------------------------------------------------------------
2339 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
2342 // Return number of ITS clusters produced by MC particle with given label
2345 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2346 if(!esdHRP) return -1;
2347 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2348 if(!cTree) return -1;
2349 TClonesArray *clusters=0;
2350 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2351 if(!clusters) return -1;
2353 AliITSRecPoint *c=0;
2354 Int_t i,n,icl,lay,ilab;
2355 Int_t ncls[6]={0,0,0,0,0,0};
2358 for(i=0; i<nModules; i++) {
2360 n=clusters->GetEntriesFast();
2361 for (icl=0; icl<n; icl++) {
2362 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2364 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
2365 for(ilab=0;ilab<3;ilab++) {
2366 if(c->GetLabel(ilab)==label) ncls[lay]++;
2371 //printf("%d\n",ncls[i]);
2372 if(ncls[i]) nclstot++;
2377 //---------------------------------------------------------------------------
2378 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2381 // Return number of ITS clusters produced by MC particle with given label
2384 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2385 if(!esdHRP) return -1;
2386 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2387 if(!cTree) return -1;
2388 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2389 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2390 if(!clusters) return -1;
2392 AliITSRecPoint *c=0;
2395 cTree->GetEvent(idet);
2396 n=clusters->GetEntriesFast();
2399 for (icl=0; icl<n; icl++) {
2400 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2401 xloc = c->GetDetLocalX();
2406 //---------------------------------------------------------------------------
2407 Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
2412 // Return the MC value of the impact parameter
2415 Double_t vx=part->Vx()-vert->GetX();
2416 Double_t vy=part->Vy()-vert->GetY();
2418 Double_t pt=part->Pt();
2419 Double_t px=part->Px();
2420 Double_t py=part->Py();
2421 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
2422 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
2424 if(px<0.000001) px=0.000001;
2425 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
2426 Double_t center[3],d0;
2427 center[0]=vx-(1./charge)*rAnd*(py/pt);
2428 center[1]=vy+(1./charge)*rAnd*(px/pt);
2429 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
2430 d0 = -center[2]+rAnd;
2434 //---------------------------------------------------------------------------
2435 Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
2438 // Keep only tracks in given pt bins
2440 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
2441 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
2443 for(Int_t i=0; i<11; i++) {
2444 if(pt>ptlower[i] && pt<ptupper[i]) {
2445 fCountsPerPtBin[i]++;
2452 //---------------------------------------------------------------------------
2453 Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
2455 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
2456 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
2457 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
2460 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
2461 if(track->HasPointOnITSLayer(1)) iITSflag+=2;
2462 if(track->HasPointOnITSLayer(2)) iITSflag+=10;
2463 if(track->HasPointOnITSLayer(3)) iITSflag+=20;
2464 if(track->HasPointOnITSLayer(4)) iITSflag+=100;
2465 if(track->HasPointOnITSLayer(5)) iITSflag+=200;
2467 if(iITSflag==333 && track->GetNcls(0)<6)
2468 printf(" ERROR %d %d\n",track->GetNcls(0),track->GetLabel());
2470 // number of associated ITS clusters
2471 iITSflag += 1000*track->GetNcls(0);
2473 // number of associated TPC clusters
2474 iITSflag += 100000*track->GetNcls(1);
2476 // if MC info and is available
2477 // write the number of ITS clusters produced by this track
2479 if(fReadMC && fReadRPLabels) {
2480 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
2481 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
2483 if(track->GetLabel()<0) iITSflag *= -1;
2488 //---------------------------------------------------------------------------
2489 Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
2492 // check if events is in the required multiplicity range
2495 const AliMultiplicity *alimult = fESD->GetMultiplicity();
2498 ntrklets = alimult->GetNumberOfTracklets();
2501 if(ntrklets<fMinMult || ntrklets>fMaxMult) return kFALSE;