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 "AliTriggerConfiguration.h"
41 #include "AliCDBManager.h"
42 #include "AliCDBEntry.h"
43 #include "AliVertexerTracks.h"
44 #include "AliESDtrack.h"
45 #include "AliExternalTrackParam.h"
46 #include "AliESDVertex.h"
47 #include "AliESDEvent.h"
48 #include "AliESDfriend.h"
49 #include "AliESDInputHandler.h"
50 #include "AliESDInputHandlerRP.h"
51 #include "AliESDtrackCuts.h"
52 #include "AliTrackPointArray.h"
53 #include "../ITS/AliITSRecPoint.h"
55 #include "AliInputEventHandler.h"
56 #include "AliMCEventHandler.h"
57 #include "AliMCEvent.h"
61 #include "AliGenEventHeader.h"
62 #include "AliAnalysisTaskITSTrackingCheck.h"
65 ClassImp(AliAnalysisTaskITSTrackingCheck)
66 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck() :
70 fReadRPLabels(kFALSE),
72 fUseITSSAforNtuples(kFALSE),
74 fRequireSPDvtx(kTRUE),
75 fRejPileupSPD(kFALSE),
82 fUsePtBinsForBox(kFALSE),
90 fHistNclsITSSAInAcc(0),
91 fHistClusterMapITSMI(0),
92 fHistClusterMapITSMIok(0),
93 fHistClusterMapITSMIbad(0),
94 fHistClusterMapITSMIskipped(0),
95 fHistClusterMapITSMIoutinz(0),
96 fHistClusterMapITSMInorefit(0),
97 fHistClusterMapITSMInocls(0),
98 fHistClusterMapITSMIokoutinzbad(0),
99 fHistClusterMapITSSA(0),
100 fHistClusterMapITSSAok(0),
101 fHistClusterMapITSSAbad(0),
102 fHistClusterMapITSSAskipped(0),
103 fHistClusterMapITSSAoutinz(0),
104 fHistClusterMapITSSAnorefit(0),
105 fHistClusterMapITSSAnocls(0),
106 fHistClusterMapITSSAokoutinzbad(0),
107 fHistClusterMapITSSAInAcc(0),
108 fHistClusterMapITSSAokInAcc(0),
109 fHistClusterMapITSSAbadInAcc(0),
110 fHistClusterMapITSSAskippedInAcc(0),
111 fHistClusterMapITSSAoutinzInAcc(0),
112 fHistClusterMapITSSAnorefitInAcc(0),
113 fHistClusterMapITSSAnoclsInAcc(0),
114 fHistClusterMapITSSAokoutinzbadInAcc(0),
115 fHistClusterMapModuleITSSAokInAcc(0),
116 fHistClusterMapModuleITSSAbadInAcc(0),
117 fHistClusterMapModuleITSSAnoclsInAcc(0),
118 fHistClusterMapModuleITSMIokInAcc(0),
119 fHistClusterMapModuleITSMIbadInAcc(0),
120 fHistClusterMapModuleITSMInoclsInAcc(0),
121 fHistNClustersMapModule(0),
122 fHistZatSPDouter0ok(0),
123 fHistZatSPDouter1ok(0),
124 fHistZatSPDouter2ok(0),
125 fHistZatSPDouter3ok(0),
126 fHistZatSPDouter0notok(0),
127 fHistZatSPDouter1notok(0),
128 fHistZatSPDouter2notok(0),
129 fHistZatSPDouter3notok(0),
132 fHistxlocVSmodSDDok(0),
139 fHistPtTPCInAccTOFbc0(0),
140 fHistPtTPCInAccwSDD(0),
141 fHistPtTPCInAccTOFbc0wSDD(0),
142 fHistPtTPCInAccwoSDD(0),
143 fHistPtTPCInAccTOFbc0woSDD(0),
144 fHistPtTPCInAccMCtwoSPD(0),
145 fHistPtTPCInAccMConeSPD(0),
146 fHistdEdxVSPtTPCInAcc(0),
147 fHistdEdxVSPtITSTPCsel(0),
148 fHistTPCclsVSPtTPCInAcc(0),
149 fHistTPCclsVSPtITSMISPDInAcc(0),
150 fHistPtVSphiTPCInAcc(0),
151 fHistPtTPCInAccNoTRDout(0),
152 fHistPtTPCInAccNoTOFout(0),
153 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
154 fHistPtTPCInAccWithPtTPCAtVtx(0),
158 fHistPtTPCInAccPfromStrange(0),
159 fHistPtTPCInAccSfromStrange(0),
160 fHistPtTPCInAccSfromMat(0),
168 fHistPtITSMIoneSPD(0),
169 fHistPtITSMItwoSPD(0),
170 fHistPtITSMI2InAcc(0),
171 fHistPtITSMI3InAcc(0),
172 fHistPtITSMI4InAcc(0),
173 fHistPtITSMI5InAcc(0),
174 fHistPtITSMI6InAcc(0),
175 fHistPtITSMI7InAcc(0),
176 fHistPtITSMISPDInAcc(0),
177 fHistPtITSMIoneSPDInAcc(0),
178 fHistPtITSMItwoSPDInAcc(0),
179 fHistPtITSMI2InAccTOFbc0(0),
180 fHistPtITSMI3InAccTOFbc0(0),
181 fHistPtITSMI4InAccTOFbc0(0),
182 fHistPtITSMI5InAccTOFbc0(0),
183 fHistPtITSMI6InAccTOFbc0(0),
184 fHistPtITSMISPDInAccTOFbc0(0),
185 fHistPtITSMIoneSPDInAccTOFbc0(0),
186 fHistPtITSMI2InAccwSDD(0),
187 fHistPtITSMI3InAccwSDD(0),
188 fHistPtITSMI4InAccwSDD(0),
189 fHistPtITSMI5InAccwSDD(0),
190 fHistPtITSMI6InAccwSDD(0),
191 fHistPtITSMISPDInAccwSDD(0),
192 fHistPtITSMIoneSPDInAccwSDD(0),
193 fHistPtITSMI2InAccTOFbc0wSDD(0),
194 fHistPtITSMI3InAccTOFbc0wSDD(0),
195 fHistPtITSMI4InAccTOFbc0wSDD(0),
196 fHistPtITSMI5InAccTOFbc0wSDD(0),
197 fHistPtITSMI6InAccTOFbc0wSDD(0),
198 fHistPtITSMISPDInAccTOFbc0wSDD(0),
199 fHistPtITSMIoneSPDInAccTOFbc0wSDD(0),
200 fHistPtITSMI2InAccwoSDD(0),
201 fHistPtITSMI3InAccwoSDD(0),
202 fHistPtITSMI4InAccwoSDD(0),
203 fHistPtITSMI5InAccwoSDD(0),
204 fHistPtITSMI6InAccwoSDD(0),
205 fHistPtITSMISPDInAccwoSDD(0),
206 fHistPtITSMIoneSPDInAccwoSDD(0),
207 fHistPtITSMI2InAccTOFbc0woSDD(0),
208 fHistPtITSMI3InAccTOFbc0woSDD(0),
209 fHistPtITSMI4InAccTOFbc0woSDD(0),
210 fHistPtITSMI5InAccTOFbc0woSDD(0),
211 fHistPtITSMI6InAccTOFbc0woSDD(0),
212 fHistPtITSMISPDInAccTOFbc0woSDD(0),
213 fHistPtITSMIoneSPDInAccTOFbc0woSDD(0),
214 fHistPtITSMIoneSPDInAccShared(0),
215 fHistPtITSMIoneSPDInAccSharedSPD(0),
216 fHistPtITSMISPD1InAccShared(0),
217 fHistPtITSMISPD2InAccShared(0),
218 fHistPtITSMIoneSPDInAccSharedFake(0),
219 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
220 fHistPhiITSMI2InAcc(0),
221 fHistPhiITSMI3InAcc(0),
222 fHistPhiITSMI4InAcc(0),
223 fHistPhiITSMI5InAcc(0),
224 fHistPhiITSMI6InAcc(0),
225 fHistPhiITSMI7InAcc(0),
226 fHistPhiITSMISPDInAcc(0),
227 fHistPhiITSMIoneSPDInAcc(0),
228 fHistPhiITSMItwoSPDInAcc(0),
229 fHistEtaITSMI2InAcc(0),
230 fHistEtaITSMI3InAcc(0),
231 fHistEtaITSMI4InAcc(0),
232 fHistEtaITSMI5InAcc(0),
233 fHistEtaITSMI6InAcc(0),
234 fHistEtaITSMI7InAcc(0),
235 fHistEtaITSMISPDInAcc(0),
236 fHistEtaITSMIoneSPDInAcc(0),
237 fHistEtaITSMItwoSPDInAcc(0),
238 fHistPtITSMI2InAccFake(0),
239 fHistPtITSMI3InAccFake(0),
240 fHistPtITSMI4InAccFake(0),
241 fHistPtITSMI5InAccFake(0),
242 fHistPtITSMI6InAccFake(0),
243 fHistPtITSMI7InAccFake(0),
244 fHistPtITSMISPDInAccFake(0),
245 fHistPtITSMIoneSPDInAccFake(0),
246 fHistPtITSMItwoSPDInAccFake(0),
247 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
249 fHistPtITSTPCselTOFbc0(0),
250 fHistPtITSTPCselwSDD(0),
251 fHistPtITSTPCselTOFbc0wSDD(0),
252 fHistPtITSTPCselwoSDD(0),
253 fHistPtITSTPCselTOFbc0woSDD(0),
254 fHistPtITSTPCselP(0),
255 fHistPtITSTPCselS(0),
256 fHistPtITSTPCselFake(0),
257 fHistPtITSTPCselPfromStrange(0),
258 fHistPtITSTPCselSfromStrange(0),
259 fHistPtITSTPCselSfromMat(0),
260 fHistPtITSMI2InAccP(0),
261 fHistPtITSMI3InAccP(0),
262 fHistPtITSMI4InAccP(0),
263 fHistPtITSMI5InAccP(0),
264 fHistPtITSMI6InAccP(0),
265 fHistPtITSMI7InAccP(0),
266 fHistPtITSMISPDInAccP(0),
267 fHistPtITSMIoneSPDInAccP(0),
268 fHistPtITSMItwoSPDInAccP(0),
269 fHistPtITSMI2InAccS(0),
270 fHistPtITSMI3InAccS(0),
271 fHistPtITSMI4InAccS(0),
272 fHistPtITSMI5InAccS(0),
273 fHistPtITSMI6InAccS(0),
274 fHistPtITSMI7InAccS(0),
275 fHistPtITSMISPDInAccS(0),
276 fHistPtITSMIoneSPDInAccS(0),
277 fHistPtITSMItwoSPDInAccS(0),
278 fHistPtITSMIokbadoutinz6(0),
279 fHistPtITSMIokbadoutinz4InAcc(0),
280 fHistPtITSMIokbadoutinz5InAcc(0),
281 fHistPtITSMIokbadoutinz6InAcc(0),
282 fHistPhiITSMIokbadoutinz6InAcc(0),
283 fHistRProdVtxInAccP(0),
284 fHistRProdVtxInAccS(0),
285 fHistd0rphiTPCInAccP150200(0),
286 fHistd0rphiTPCInAccP500700(0),
287 fHistd0rphiTPCInAccP10001500(0),
288 fHistd0rphiTPCInAccS150200(0),
289 fHistd0rphiTPCInAccS500700(0),
290 fHistd0rphiTPCInAccS10001500(0),
291 fHistd0rphiITSMISPDInAccP150200(0),
292 fHistd0rphiITSMISPDInAccP500700(0),
293 fHistd0rphiITSMISPDInAccP10001500(0),
294 fHistd0rphiITSMISPDInAccS150200(0),
295 fHistd0rphiITSMISPDInAccS500700(0),
296 fHistd0rphiITSMISPDInAccS10001500(0),
297 fHistd0rphiITSMIoneSPDInAccP150200(0),
298 fHistd0rphiITSMIoneSPDInAccP350450(0),
299 fHistd0rphiITSMIoneSPDInAccP500700(0),
300 fHistd0rphiITSMIoneSPDInAccP10001500(0),
301 fHistd0rphiITSMIoneSPDInAccP25004000(0),
302 fHistd0rphiITSMIoneSPDInAccP40008000(0),
303 fHistd0zITSMIoneSPDInAccP150200(0),
304 fHistd0zITSMIoneSPDInAccP500700(0),
305 fHistd0zITSMIoneSPDInAccP10001500(0),
306 fHistd0zVSetaTPCInAccP10001500(0),
307 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
308 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
309 fHistd0rphiITSMIoneSPDInAccS150200(0),
310 fHistd0rphiITSMIoneSPDInAccS350450(0),
311 fHistd0rphiITSMIoneSPDInAccS500700(0),
312 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
313 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
314 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
315 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
316 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
317 fHistd0rphiITSMIoneSPDInAccS10001500(0),
318 fHistd0rphiITSMIoneSPDInAccS25004000(0),
319 fHistd0rphiITSMIoneSPDInAccS40008000(0),
320 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
321 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
322 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
323 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
324 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
325 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
326 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
327 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
328 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
329 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
330 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
331 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
332 fHistd0zITSMIoneSPDInAccS150200(0),
333 fHistd0zITSMIoneSPDInAccS500700(0),
334 fHistd0zITSMIoneSPDInAccS10001500(0),
336 fHistPDGMoth150200(0),
337 fHistPDGMoth500700(0),
338 fHistPDGMoth10001500(0),
340 fHistITSRedChi2NonFakePt02(0),
341 fHistITSRedChi2FakePt02(0),
342 fHistITSRedChi2NonFakePt05(0),
343 fHistITSRedChi2FakePt05(0),
344 fHistITSRedChi2NonFakePt1(0),
345 fHistITSRedChi2FakePt1(0),
347 fNtupleITSAlignExtra(0),
348 fNtupleITSAlignSPDTracklets(0),
350 fESDtrackCutsITSTPC(0)
353 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
357 //________________________________________________________________________
358 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) :
359 AliAnalysisTaskSE(name),
362 fReadRPLabels(kFALSE),
363 fFillNtuples(kFALSE),
364 fUseITSSAforNtuples(kFALSE),
366 fRequireSPDvtx(kTRUE),
367 fRejPileupSPD(kFALSE),
374 fUsePtBinsForBox(kFALSE),
382 fHistNclsITSSAInAcc(0),
383 fHistClusterMapITSMI(0),
384 fHistClusterMapITSMIok(0),
385 fHistClusterMapITSMIbad(0),
386 fHistClusterMapITSMIskipped(0),
387 fHistClusterMapITSMIoutinz(0),
388 fHistClusterMapITSMInorefit(0),
389 fHistClusterMapITSMInocls(0),
390 fHistClusterMapITSMIokoutinzbad(0),
391 fHistClusterMapITSSA(0),
392 fHistClusterMapITSSAok(0),
393 fHistClusterMapITSSAbad(0),
394 fHistClusterMapITSSAskipped(0),
395 fHistClusterMapITSSAoutinz(0),
396 fHistClusterMapITSSAnorefit(0),
397 fHistClusterMapITSSAnocls(0),
398 fHistClusterMapITSSAokoutinzbad(0),
399 fHistClusterMapITSSAInAcc(0),
400 fHistClusterMapITSSAokInAcc(0),
401 fHistClusterMapITSSAbadInAcc(0),
402 fHistClusterMapITSSAskippedInAcc(0),
403 fHistClusterMapITSSAoutinzInAcc(0),
404 fHistClusterMapITSSAnorefitInAcc(0),
405 fHistClusterMapITSSAnoclsInAcc(0),
406 fHistClusterMapITSSAokoutinzbadInAcc(0),
407 fHistClusterMapModuleITSSAokInAcc(0),
408 fHistClusterMapModuleITSSAbadInAcc(0),
409 fHistClusterMapModuleITSSAnoclsInAcc(0),
410 fHistClusterMapModuleITSMIokInAcc(0),
411 fHistClusterMapModuleITSMIbadInAcc(0),
412 fHistClusterMapModuleITSMInoclsInAcc(0),
413 fHistNClustersMapModule(0),
414 fHistZatSPDouter0ok(0),
415 fHistZatSPDouter1ok(0),
416 fHistZatSPDouter2ok(0),
417 fHistZatSPDouter3ok(0),
418 fHistZatSPDouter0notok(0),
419 fHistZatSPDouter1notok(0),
420 fHistZatSPDouter2notok(0),
421 fHistZatSPDouter3notok(0),
424 fHistxlocVSmodSDDok(0),
431 fHistPtTPCInAccTOFbc0(0),
432 fHistPtTPCInAccwSDD(0),
433 fHistPtTPCInAccTOFbc0wSDD(0),
434 fHistPtTPCInAccwoSDD(0),
435 fHistPtTPCInAccTOFbc0woSDD(0),
436 fHistPtTPCInAccMCtwoSPD(0),
437 fHistPtTPCInAccMConeSPD(0),
438 fHistdEdxVSPtTPCInAcc(0),
439 fHistdEdxVSPtITSTPCsel(0),
440 fHistTPCclsVSPtTPCInAcc(0),
441 fHistTPCclsVSPtITSMISPDInAcc(0),
442 fHistPtVSphiTPCInAcc(0),
443 fHistPtTPCInAccNoTRDout(0),
444 fHistPtTPCInAccNoTOFout(0),
445 fHistPtTPCInAccWithPtTPCAtInnerWall(0),
446 fHistPtTPCInAccWithPtTPCAtVtx(0),
450 fHistPtTPCInAccPfromStrange(0),
451 fHistPtTPCInAccSfromStrange(0),
452 fHistPtTPCInAccSfromMat(0),
460 fHistPtITSMIoneSPD(0),
461 fHistPtITSMItwoSPD(0),
462 fHistPtITSMI2InAcc(0),
463 fHistPtITSMI3InAcc(0),
464 fHistPtITSMI4InAcc(0),
465 fHistPtITSMI5InAcc(0),
466 fHistPtITSMI6InAcc(0),
467 fHistPtITSMI7InAcc(0),
468 fHistPtITSMISPDInAcc(0),
469 fHistPtITSMIoneSPDInAcc(0),
470 fHistPtITSMItwoSPDInAcc(0),
471 fHistPtITSMI2InAccTOFbc0(0),
472 fHistPtITSMI3InAccTOFbc0(0),
473 fHistPtITSMI4InAccTOFbc0(0),
474 fHistPtITSMI5InAccTOFbc0(0),
475 fHistPtITSMI6InAccTOFbc0(0),
476 fHistPtITSMISPDInAccTOFbc0(0),
477 fHistPtITSMIoneSPDInAccTOFbc0(0),
478 fHistPtITSMI2InAccwSDD(0),
479 fHistPtITSMI3InAccwSDD(0),
480 fHistPtITSMI4InAccwSDD(0),
481 fHistPtITSMI5InAccwSDD(0),
482 fHistPtITSMI6InAccwSDD(0),
483 fHistPtITSMISPDInAccwSDD(0),
484 fHistPtITSMIoneSPDInAccwSDD(0),
485 fHistPtITSMI2InAccTOFbc0wSDD(0),
486 fHistPtITSMI3InAccTOFbc0wSDD(0),
487 fHistPtITSMI4InAccTOFbc0wSDD(0),
488 fHistPtITSMI5InAccTOFbc0wSDD(0),
489 fHistPtITSMI6InAccTOFbc0wSDD(0),
490 fHistPtITSMISPDInAccTOFbc0wSDD(0),
491 fHistPtITSMIoneSPDInAccTOFbc0wSDD(0),
492 fHistPtITSMI2InAccwoSDD(0),
493 fHistPtITSMI3InAccwoSDD(0),
494 fHistPtITSMI4InAccwoSDD(0),
495 fHistPtITSMI5InAccwoSDD(0),
496 fHistPtITSMI6InAccwoSDD(0),
497 fHistPtITSMISPDInAccwoSDD(0),
498 fHistPtITSMIoneSPDInAccwoSDD(0),
499 fHistPtITSMI2InAccTOFbc0woSDD(0),
500 fHistPtITSMI3InAccTOFbc0woSDD(0),
501 fHistPtITSMI4InAccTOFbc0woSDD(0),
502 fHistPtITSMI5InAccTOFbc0woSDD(0),
503 fHistPtITSMI6InAccTOFbc0woSDD(0),
504 fHistPtITSMISPDInAccTOFbc0woSDD(0),
505 fHistPtITSMIoneSPDInAccTOFbc0woSDD(0),
506 fHistPtITSMIoneSPDInAccShared(0),
507 fHistPtITSMIoneSPDInAccSharedSPD(0),
508 fHistPtITSMISPD1InAccShared(0),
509 fHistPtITSMISPD2InAccShared(0),
510 fHistPtITSMIoneSPDInAccSharedFake(0),
511 fHistPtITSMIoneSPDInAccSharedSPDFake(0),
512 fHistPhiITSMI2InAcc(0),
513 fHistPhiITSMI3InAcc(0),
514 fHistPhiITSMI4InAcc(0),
515 fHistPhiITSMI5InAcc(0),
516 fHistPhiITSMI6InAcc(0),
517 fHistPhiITSMI7InAcc(0),
518 fHistPhiITSMISPDInAcc(0),
519 fHistPhiITSMIoneSPDInAcc(0),
520 fHistPhiITSMItwoSPDInAcc(0),
521 fHistEtaITSMI2InAcc(0),
522 fHistEtaITSMI3InAcc(0),
523 fHistEtaITSMI4InAcc(0),
524 fHistEtaITSMI5InAcc(0),
525 fHistEtaITSMI6InAcc(0),
526 fHistEtaITSMI7InAcc(0),
527 fHistEtaITSMISPDInAcc(0),
528 fHistEtaITSMIoneSPDInAcc(0),
529 fHistEtaITSMItwoSPDInAcc(0),
530 fHistPtITSMI2InAccFake(0),
531 fHistPtITSMI3InAccFake(0),
532 fHistPtITSMI4InAccFake(0),
533 fHistPtITSMI5InAccFake(0),
534 fHistPtITSMI6InAccFake(0),
535 fHistPtITSMI7InAccFake(0),
536 fHistPtITSMISPDInAccFake(0),
537 fHistPtITSMIoneSPDInAccFake(0),
538 fHistPtITSMItwoSPDInAccFake(0),
539 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
541 fHistPtITSTPCselTOFbc0(0),
542 fHistPtITSTPCselwSDD(0),
543 fHistPtITSTPCselTOFbc0wSDD(0),
544 fHistPtITSTPCselwoSDD(0),
545 fHistPtITSTPCselTOFbc0woSDD(0),
546 fHistPtITSTPCselP(0),
547 fHistPtITSTPCselS(0),
548 fHistPtITSTPCselFake(0),
549 fHistPtITSTPCselPfromStrange(0),
550 fHistPtITSTPCselSfromStrange(0),
551 fHistPtITSTPCselSfromMat(0),
552 fHistPtITSMI2InAccP(0),
553 fHistPtITSMI3InAccP(0),
554 fHistPtITSMI4InAccP(0),
555 fHistPtITSMI5InAccP(0),
556 fHistPtITSMI6InAccP(0),
557 fHistPtITSMI7InAccP(0),
558 fHistPtITSMISPDInAccP(0),
559 fHistPtITSMIoneSPDInAccP(0),
560 fHistPtITSMItwoSPDInAccP(0),
561 fHistPtITSMI2InAccS(0),
562 fHistPtITSMI3InAccS(0),
563 fHistPtITSMI4InAccS(0),
564 fHistPtITSMI5InAccS(0),
565 fHistPtITSMI6InAccS(0),
566 fHistPtITSMI7InAccS(0),
567 fHistPtITSMISPDInAccS(0),
568 fHistPtITSMIoneSPDInAccS(0),
569 fHistPtITSMItwoSPDInAccS(0),
570 fHistPtITSMIokbadoutinz6(0),
571 fHistPtITSMIokbadoutinz4InAcc(0),
572 fHistPtITSMIokbadoutinz5InAcc(0),
573 fHistPtITSMIokbadoutinz6InAcc(0),
574 fHistPhiITSMIokbadoutinz6InAcc(0),
575 fHistRProdVtxInAccP(0),
576 fHistRProdVtxInAccS(0),
577 fHistd0rphiTPCInAccP150200(0),
578 fHistd0rphiTPCInAccP500700(0),
579 fHistd0rphiTPCInAccP10001500(0),
580 fHistd0rphiTPCInAccS150200(0),
581 fHistd0rphiTPCInAccS500700(0),
582 fHistd0rphiTPCInAccS10001500(0),
583 fHistd0rphiITSMISPDInAccP150200(0),
584 fHistd0rphiITSMISPDInAccP500700(0),
585 fHistd0rphiITSMISPDInAccP10001500(0),
586 fHistd0rphiITSMISPDInAccS150200(0),
587 fHistd0rphiITSMISPDInAccS500700(0),
588 fHistd0rphiITSMISPDInAccS10001500(0),
589 fHistd0rphiITSMIoneSPDInAccP150200(0),
590 fHistd0rphiITSMIoneSPDInAccP350450(0),
591 fHistd0rphiITSMIoneSPDInAccP500700(0),
592 fHistd0rphiITSMIoneSPDInAccP10001500(0),
593 fHistd0rphiITSMIoneSPDInAccP25004000(0),
594 fHistd0rphiITSMIoneSPDInAccP40008000(0),
595 fHistd0zITSMIoneSPDInAccP150200(0),
596 fHistd0zITSMIoneSPDInAccP500700(0),
597 fHistd0zITSMIoneSPDInAccP10001500(0),
598 fHistd0zVSetaTPCInAccP10001500(0),
599 fHistd0rphiVSphiITSMIoneSPDInAccP10001500(0),
600 fHistd0rphiVSetaITSMIoneSPDInAccP10001500(0),
601 fHistd0rphiITSMIoneSPDInAccS150200(0),
602 fHistd0rphiITSMIoneSPDInAccS350450(0),
603 fHistd0rphiITSMIoneSPDInAccS500700(0),
604 fHistd0rphiITSMIoneSPDInAccS500700from22(0),
605 fHistd0rphiITSMIoneSPDInAccS500700from211(0),
606 fHistd0rphiITSMIoneSPDInAccS500700from310(0),
607 fHistd0rphiITSMIoneSPDInAccS500700from321(0),
608 fHistd0rphiITSMIoneSPDInAccS500700from3122(0),
609 fHistd0rphiITSMIoneSPDInAccS10001500(0),
610 fHistd0rphiITSMIoneSPDInAccS25004000(0),
611 fHistd0rphiITSMIoneSPDInAccS40008000(0),
612 fHistd0rphiITSMIoneSPDInAccS150200fromStrange(0),
613 fHistd0rphiITSMIoneSPDInAccS150200fromMat(0),
614 fHistd0rphiITSMIoneSPDInAccS350450fromStrange(0),
615 fHistd0rphiITSMIoneSPDInAccS350450fromMat(0),
616 fHistd0rphiITSMIoneSPDInAccS500700fromStrange(0),
617 fHistd0rphiITSMIoneSPDInAccS500700fromMat(0),
618 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange(0),
619 fHistd0rphiITSMIoneSPDInAccS10001500fromMat(0),
620 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange(0),
621 fHistd0rphiITSMIoneSPDInAccS25004000fromMat(0),
622 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange(0),
623 fHistd0rphiITSMIoneSPDInAccS40008000fromMat(0),
624 fHistd0zITSMIoneSPDInAccS150200(0),
625 fHistd0zITSMIoneSPDInAccS500700(0),
626 fHistd0zITSMIoneSPDInAccS10001500(0),
628 fHistPDGMoth150200(0),
629 fHistPDGMoth500700(0),
630 fHistPDGMoth10001500(0),
632 fHistITSRedChi2NonFakePt02(0),
633 fHistITSRedChi2FakePt02(0),
634 fHistITSRedChi2NonFakePt05(0),
635 fHistITSRedChi2FakePt05(0),
636 fHistITSRedChi2NonFakePt1(0),
637 fHistITSRedChi2FakePt1(0),
639 fNtupleITSAlignExtra(0),
640 fNtupleITSAlignSPDTracklets(0),
642 fESDtrackCutsITSTPC(0)
646 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
648 // Define input and output slots here
649 // Output slot #0 writes into a TList container
650 DefineOutput(1, TList::Class()); //My private output
652 //________________________________________________________________________
653 AliAnalysisTaskITSTrackingCheck::~AliAnalysisTaskITSTrackingCheck()
657 // histograms are in the output list and deleted when the output
658 // list is deleted by the TSelector dtor
660 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
665 //________________________________________________________________________
666 void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
671 gStyle->SetHistLineWidth(2);
674 Float_t xPtBinsDefault[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};
675 Float_t xPtBinsForBox[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};
677 for(Int_t ib=0; ib<=nPtBins; ib++) {
678 if(fUsePtBinsForBox) {
679 xPtBins[ib]=xPtBinsForBox[ib];
681 xPtBins[ib]=xPtBinsDefault[ib];
686 for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
688 // Several histograms are more conveniently managed in a TList
692 fHistPDGMoth = new TH1F("fHistPDGMoth","",4000,0,4000);
693 fOutput->Add(fHistPDGMoth);
694 fHistPDGMoth150200 = new TH1F("fHistPDGMoth150200","",4000,0,4000);
695 fOutput->Add(fHistPDGMoth150200);
696 fHistPDGMoth500700 = new TH1F("fHistPDGMoth500700","",4000,0,4000);
697 fOutput->Add(fHistPDGMoth500700);
698 fHistPDGMoth10001500 = new TH1F("fHistPDGMoth10001500","",4000,0,4000);
699 fOutput->Add(fHistPDGMoth10001500);
700 fHistPDGTrk = new TH1F("fHistPDGTrk","",4000,0,4000);
701 fOutput->Add(fHistPDGTrk);
703 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);
704 fHistNEvents->SetMinimum(0);
705 fOutput->Add(fHistNEvents);
707 fHistNEventsFrac = (TH1F*)fHistNEvents->Clone("fHistNEventsFrac");
708 fOutput->Add(fHistNEventsFrac);
710 fHistNtracks = new TH1F("fHistNtracks", "N ESD tracks; N tracks; Events",5000, -0.5, 4999.5);
711 fHistNtracks->Sumw2();
712 fHistNtracks->SetMinimum(0);
713 fOutput->Add(fHistNtracks);
715 fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",8, -0.5, 7.5);
716 fHistNclsITSMI->Sumw2();
717 fHistNclsITSMI->SetMinimum(0);
718 fOutput->Add(fHistNclsITSMI);
720 fHistNclsITSSAInAcc = new TH1F("fHistNclsITSSAInAcc", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
721 fHistNclsITSSAInAcc->Sumw2();
722 fHistNclsITSSAInAcc->SetMinimum(0);
723 fOutput->Add(fHistNclsITSSAInAcc);
725 fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",8, -0.5, 7.5);
726 fHistNclsITSSA->Sumw2();
727 fHistNclsITSSA->SetMinimum(0);
728 fOutput->Add(fHistNclsITSSA);
730 fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
731 fHistClusterMapITSMI->Sumw2();
732 fHistClusterMapITSMI->SetMinimum(0);
733 fOutput->Add(fHistClusterMapITSMI);
735 fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
736 fHistClusterMapITSSA->Sumw2();
737 fHistClusterMapITSSA->SetMinimum(0);
738 fOutput->Add(fHistClusterMapITSSA);
740 fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
741 fHistClusterMapITSSAInAcc->Sumw2();
742 fHistClusterMapITSSAInAcc->SetMinimum(0);
743 fOutput->Add(fHistClusterMapITSSAInAcc);
745 fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
746 fHistClusterMapITSMIok->Sumw2();
747 fHistClusterMapITSMIok->SetMinimum(0);
748 fOutput->Add(fHistClusterMapITSMIok);
752 fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
753 fHistClusterMapITSSAokInAcc->Sumw2();
754 fHistClusterMapITSSAokInAcc->SetMinimum(0);
755 fOutput->Add(fHistClusterMapITSSAokInAcc);
757 fHistClusterMapModuleITSSAokInAcc = new TH1F("fHistClusterMapModuleITSSAokInAcc", "N tracks with ok on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
758 fHistClusterMapModuleITSSAokInAcc->SetMinimum(0);
759 fOutput->Add(fHistClusterMapModuleITSSAokInAcc);
761 fHistClusterMapModuleITSMIokInAcc = new TH1F("fHistClusterMapModuleITSMIokInAcc", "N tracks with ok on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
762 fHistClusterMapModuleITSMIokInAcc->SetMinimum(0);
763 fOutput->Add(fHistClusterMapModuleITSMIokInAcc);
765 fHistNClustersMapModule = new TH1F("fHistNClustersMapModule", "N clusters; Module; N tracks",2198, -0.5, 2197.5);
766 fHistNClustersMapModule->SetMinimum(0);
767 fOutput->Add(fHistNClustersMapModule);
769 fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
770 fHistClusterMapITSSAok->Sumw2();
771 fHistClusterMapITSSAok->SetMinimum(0);
772 fOutput->Add(fHistClusterMapITSSAok);
774 fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
775 fHistClusterMapITSMIbad->Sumw2();
776 fHistClusterMapITSMIbad->SetMinimum(0);
777 fOutput->Add(fHistClusterMapITSMIbad);
779 fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
780 fHistClusterMapITSSAbadInAcc->Sumw2();
781 fHistClusterMapITSSAbadInAcc->SetMinimum(0);
782 fOutput->Add(fHistClusterMapITSSAbadInAcc);
784 fHistClusterMapModuleITSSAbadInAcc = new TH1F("fHistClusterMapModuleITSSAbadInAcc", "N tracks with bad on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
785 fHistClusterMapModuleITSSAbadInAcc->SetMinimum(0);
786 fOutput->Add(fHistClusterMapModuleITSSAbadInAcc);
788 fHistClusterMapModuleITSMIbadInAcc = new TH1F("fHistClusterMapModuleITSMIbadInAcc", "N tracks with bad on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
789 fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
790 fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
792 fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
793 fHistClusterMapITSSAbad->Sumw2();
794 fHistClusterMapITSSAbad->SetMinimum(0);
795 fOutput->Add(fHistClusterMapITSSAbad);
797 fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
798 fHistClusterMapITSMIskipped->Sumw2();
799 fHistClusterMapITSMIskipped->SetMinimum(0);
800 fOutput->Add(fHistClusterMapITSMIskipped);
802 fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
803 fHistClusterMapITSSAskippedInAcc->Sumw2();
804 fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
805 fOutput->Add(fHistClusterMapITSSAskippedInAcc);
807 fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
808 fHistClusterMapITSSAskipped->Sumw2();
809 fHistClusterMapITSSAskipped->SetMinimum(0);
810 fOutput->Add(fHistClusterMapITSSAskipped);
812 fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
813 fHistClusterMapITSMIoutinz->Sumw2();
814 fHistClusterMapITSMIoutinz->SetMinimum(0);
815 fOutput->Add(fHistClusterMapITSMIoutinz);
817 fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
818 fHistClusterMapITSSAoutinzInAcc->Sumw2();
819 fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
820 fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
822 fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
823 fHistClusterMapITSSAoutinz->Sumw2();
824 fHistClusterMapITSSAoutinz->SetMinimum(0);
825 fOutput->Add(fHistClusterMapITSSAoutinz);
827 fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",7, -0.5, 6.5);
828 fHistClusterMapITSSAokoutinzbad->Sumw2();
829 fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
830 fOutput->Add(fHistClusterMapITSSAokoutinzbad);
832 fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",7, -0.5, 6.5);
833 fHistClusterMapITSMIokoutinzbad->Sumw2();
834 fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
835 fOutput->Add(fHistClusterMapITSMIokoutinzbad);
837 fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",7, -0.5, 6.5);
838 fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
839 fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
840 fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
842 fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
843 fHistClusterMapITSMInorefit->Sumw2();
844 fHistClusterMapITSMInorefit->SetMinimum(0);
845 fOutput->Add(fHistClusterMapITSMInorefit);
847 fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
848 fHistClusterMapITSSAnorefitInAcc->Sumw2();
849 fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
850 fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
852 fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
853 fHistClusterMapITSSAnorefit->Sumw2();
854 fHistClusterMapITSSAnorefit->SetMinimum(0);
855 fOutput->Add(fHistClusterMapITSSAnorefit);
857 fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
858 fHistClusterMapITSMInocls->Sumw2();
859 fHistClusterMapITSMInocls->SetMinimum(0);
860 fOutput->Add(fHistClusterMapITSMInocls);
862 fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
863 fHistClusterMapITSSAnoclsInAcc->Sumw2();
864 fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
865 fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
867 fHistClusterMapModuleITSSAnoclsInAcc = new TH1F("fHistClusterMapModuleITSSAnoclsInAcc", "N tracks with nocls on Module (SA); Module; N tracks",2198, -0.5, 2197.5);
868 fHistClusterMapModuleITSSAnoclsInAcc->SetMinimum(0);
869 fOutput->Add(fHistClusterMapModuleITSSAnoclsInAcc);
871 fHistClusterMapModuleITSMInoclsInAcc = new TH1F("fHistClusterMapModuleITSMInoclsInAcc", "N tracks with nocls on Module (MI); Module; N tracks",2198, -0.5, 2197.5);
872 fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
873 fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
875 fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
876 fHistClusterMapITSSAnocls->Sumw2();
877 fHistClusterMapITSSAnocls->SetMinimum(0);
878 fOutput->Add(fHistClusterMapITSSAnocls);
881 fHistZatSPDouter0ok = new TH1F("fHistZatSPDouter0ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
882 fHistZatSPDouter0ok->Sumw2();
883 fHistZatSPDouter0ok->SetMinimum(0);
884 fOutput->Add(fHistZatSPDouter0ok);
885 fHistZatSPDouter1ok = new TH1F("fHistZatSPDouter1ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
886 fHistZatSPDouter1ok->Sumw2();
887 fHistZatSPDouter1ok->SetMinimum(0);
888 fOutput->Add(fHistZatSPDouter1ok);
889 fHistZatSPDouter2ok = new TH1F("fHistZatSPDouter2ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
890 fHistZatSPDouter2ok->Sumw2();
891 fHistZatSPDouter2ok->SetMinimum(0);
892 fOutput->Add(fHistZatSPDouter2ok);
893 fHistZatSPDouter3ok = new TH1F("fHistZatSPDouter3ok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
894 fHistZatSPDouter3ok->Sumw2();
895 fHistZatSPDouter3ok->SetMinimum(0);
896 fOutput->Add(fHistZatSPDouter3ok);
897 fHistZatSPDouter0notok = new TH1F("fHistZatSPDouter0notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
898 fHistZatSPDouter0notok->Sumw2();
899 fHistZatSPDouter0notok->SetMinimum(0);
900 fOutput->Add(fHistZatSPDouter0notok);
901 fHistZatSPDouter1notok = new TH1F("fHistZatSPDouter1notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
902 fHistZatSPDouter1notok->Sumw2();
903 fHistZatSPDouter1notok->SetMinimum(0);
904 fOutput->Add(fHistZatSPDouter1notok);
905 fHistZatSPDouter2notok = new TH1F("fHistZatSPDouter2notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
906 fHistZatSPDouter2notok->Sumw2();
907 fHistZatSPDouter2notok->SetMinimum(0);
908 fOutput->Add(fHistZatSPDouter2notok);
909 fHistZatSPDouter3notok = new TH1F("fHistZatSPDouter3notok", "Track z at SPDouter radius; z [cm]; N tracks",3200,-16,16);
910 fHistZatSPDouter3notok->Sumw2();
911 fHistZatSPDouter3notok->SetMinimum(0);
912 fOutput->Add(fHistZatSPDouter3notok);
914 fHistxlocSDDok = new TH1F("fHistxlocSDDok", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
915 fHistxlocSDDok->Sumw2();
916 fHistxlocSDDok->SetMinimum(0);
917 fOutput->Add(fHistxlocSDDok);
919 fHistxlocVSmodSDDok = new TH2F("fHistxlocVSmodSDDok", "SDD points; module; xloc [cm]",260,239.5,499.5,25, -3.75, 3.75);
920 fOutput->Add(fHistxlocVSmodSDDok);
922 fHistzlocSDDok = new TH1F("fHistzlocSDDok", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
923 fHistzlocSDDok->Sumw2();
924 fHistzlocSDDok->SetMinimum(0);
925 fOutput->Add(fHistzlocSDDok);
927 fHistxlocSDDall = new TH1F("fHistxlocSDDall", "SDD points; xloc [cm]; N tracks",75, -3.75, 3.75);
928 fHistxlocSDDall->Sumw2();
929 fHistxlocSDDall->SetMinimum(0);
930 fOutput->Add(fHistxlocSDDall);
932 fHistzlocSDDall = new TH1F("fHistzlocSDDall", "SDD points; zloc [cm]; N tracks",77, -3.85, 3.85);
933 fHistzlocSDDall->Sumw2();
934 fHistzlocSDDall->SetMinimum(0);
935 fOutput->Add(fHistzlocSDDall);
938 fHistPhiTPCInAcc = new TH1F("fHistPhiTPCInAcc","Azimuthal distribution of TPC tracks; #phi; N tracks",100, 0, 2.*3.1415);
939 fHistPhiTPCInAcc->Sumw2();
940 fHistPhiTPCInAcc->SetMinimum(0);
941 fOutput->Add(fHistPhiTPCInAcc);
943 fHistEtaTPCInAcc = new TH1F("fHistEtaTPCInAcc","Eta distribution of TPC tracks; #eta; N tracks",100, -1.5, +1.5);
944 fHistEtaTPCInAcc->Sumw2();
945 fHistEtaTPCInAcc->SetMinimum(0);
946 fOutput->Add(fHistEtaTPCInAcc);
949 fHistPhiITSMIokbadoutinz6InAcc = new TH1F("fHistPhiITSMIokbadoutinz6InAcc","Azimuthal distribution of ITSMI tracks with 6 layers OK; #phi; N tracks",100,0,2.*3.1415);
950 fHistPhiITSMIokbadoutinz6InAcc->Sumw2();
951 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
952 fOutput->Add(fHistPhiITSMIokbadoutinz6InAcc);
954 fHistPtTPC = new TH1F("fHistPtTPC","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
956 fHistPtTPC->SetMinimum(0);
957 fOutput->Add(fHistPtTPC);
959 fHistPtITSMI7 = new TH1F("fHistPtITSMI7","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
960 fHistPtITSMI7->Sumw2();
961 fHistPtITSMI7->SetMinimum(0);
962 fOutput->Add(fHistPtITSMI7);
964 fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
965 fHistPtITSMI6->Sumw2();
966 fHistPtITSMI6->SetMinimum(0);
967 fOutput->Add(fHistPtITSMI6);
969 fHistPtITSMI5 = new TH1F("fHistPtITSMI5","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
970 fHistPtITSMI5->Sumw2();
971 fHistPtITSMI5->SetMinimum(0);
972 fOutput->Add(fHistPtITSMI5);
974 fHistPtITSMI4 = new TH1F("fHistPtITSMI4","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
975 fHistPtITSMI4->Sumw2();
976 fHistPtITSMI4->SetMinimum(0);
977 fOutput->Add(fHistPtITSMI4);
979 fHistPtITSMI3 = new TH1F("fHistPtITSMI3","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
980 fHistPtITSMI3->Sumw2();
981 fHistPtITSMI3->SetMinimum(0);
982 fOutput->Add(fHistPtITSMI3);
984 fHistPtITSMI2 = new TH1F("fHistPtITSMI2","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
985 fHistPtITSMI2->Sumw2();
986 fHistPtITSMI2->SetMinimum(0);
987 fOutput->Add(fHistPtITSMI2);
989 fHistPtITSMISPD = new TH1F("fHistPtITSMISPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
990 fHistPtITSMISPD->Sumw2();
991 fHistPtITSMISPD->SetMinimum(0);
992 fOutput->Add(fHistPtITSMISPD);
994 fHistPtITSMIoneSPD = new TH1F("fHistPtITSMIoneSPD","pt distribution of ITSMIoneSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
995 fHistPtITSMIoneSPD->Sumw2();
996 fHistPtITSMIoneSPD->SetMinimum(0);
997 fOutput->Add(fHistPtITSMIoneSPD);
999 fHistPtITSMItwoSPD = new TH1F("fHistPtITSMItwoSPD","pt distribution of ITSMItwoSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1000 fHistPtITSMItwoSPD->Sumw2();
1001 fHistPtITSMItwoSPD->SetMinimum(0);
1002 fOutput->Add(fHistPtITSMItwoSPD);
1004 fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1005 fHistPtTPCInAcc->Sumw2();
1006 fHistPtTPCInAcc->SetMinimum(0);
1007 fOutput->Add(fHistPtTPCInAcc);
1009 fHistPtTPCInAccTOFbc0 = new TH1F("fHistPtTPCInAccTOFbc0","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1010 fHistPtTPCInAccTOFbc0->Sumw2();
1011 fHistPtTPCInAccTOFbc0->SetMinimum(0);
1012 fOutput->Add(fHistPtTPCInAccTOFbc0);
1014 fHistPtTPCInAccwSDD = new TH1F("fHistPtTPCInAccwSDD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1015 fHistPtTPCInAccwSDD->Sumw2();
1016 fHistPtTPCInAccwSDD->SetMinimum(0);
1017 fOutput->Add(fHistPtTPCInAccwSDD);
1019 fHistPtTPCInAccTOFbc0wSDD = new TH1F("fHistPtTPCInAccTOFbc0wSDD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1020 fHistPtTPCInAccTOFbc0wSDD->Sumw2();
1021 fHistPtTPCInAccTOFbc0wSDD->SetMinimum(0);
1022 fOutput->Add(fHistPtTPCInAccTOFbc0wSDD);
1024 fHistPtTPCInAccwoSDD = new TH1F("fHistPtTPCInAccwoSDD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1025 fHistPtTPCInAccwoSDD->Sumw2();
1026 fHistPtTPCInAccwoSDD->SetMinimum(0);
1027 fOutput->Add(fHistPtTPCInAccwoSDD);
1029 fHistPtTPCInAccTOFbc0woSDD = new TH1F("fHistPtTPCInAccTOFbc0woSDD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1030 fHistPtTPCInAccTOFbc0woSDD->Sumw2();
1031 fHistPtTPCInAccTOFbc0woSDD->SetMinimum(0);
1032 fOutput->Add(fHistPtTPCInAccTOFbc0woSDD);
1034 fHistPtTPCInAccMCtwoSPD = new TH1F("fHistPtTPCInAccMCtwoSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1035 fHistPtTPCInAccMCtwoSPD->Sumw2();
1036 fHistPtTPCInAccMCtwoSPD->SetMinimum(0);
1037 fOutput->Add(fHistPtTPCInAccMCtwoSPD);
1039 fHistPtTPCInAccMConeSPD = new TH1F("fHistPtTPCInAccMConeSPD","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1040 fHistPtTPCInAccMConeSPD->Sumw2();
1041 fHistPtTPCInAccMConeSPD->SetMinimum(0);
1042 fOutput->Add(fHistPtTPCInAccMConeSPD);
1044 fHistdEdxVSPtTPCInAcc = new TH2F("fHistdEdxVSPtTPCInAcc","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; TPC dE/dx",100,0,1,50,0,500);
1045 fOutput->Add(fHistdEdxVSPtTPCInAcc);
1047 fHistdEdxVSPtITSTPCsel = new TH2F("fHistdEdxVSPtITSTPCsel","dE/dx distribution of TPC tracks; p_{t} [GeV/c]; ITS dE/dx",100,0,1,50,0,500);
1048 fOutput->Add(fHistdEdxVSPtITSTPCsel);
1050 fHistTPCclsVSPtTPCInAcc = new TH2F("fHistTPCclsVSPtTPCInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
1051 fOutput->Add(fHistTPCclsVSPtTPCInAcc);
1052 fHistTPCclsVSPtITSMISPDInAcc = new TH2F("fHistTPCclsVSPtITSMISPDInAcc","TPC ncls; p_{t} [GeV/c]; nclsTPC",50,0,10,80,0,160);
1053 fOutput->Add(fHistTPCclsVSPtITSMISPDInAcc);
1055 fHistPtVSphiTPCInAcc = new TH2F("fHistPtVSphiTPCInAcc","pt distribution of TPC tracks; phi; p_{t} [GeV/c]",18,0,6.28,20,0,0.5);
1056 fHistPtVSphiTPCInAcc->SetMinimum(0);
1057 fOutput->Add(fHistPtVSphiTPCInAcc);
1059 fHistPtTPCInAccNoTRDout = new TH1F("fHistPtTPCInAccNoTRDout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1060 fHistPtTPCInAccNoTRDout->Sumw2();
1061 fHistPtTPCInAccNoTRDout->SetMinimum(0);
1062 fOutput->Add(fHistPtTPCInAccNoTRDout);
1064 fHistPtTPCInAccNoTOFout = new TH1F("fHistPtTPCInAccNoTOFout","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1065 fHistPtTPCInAccNoTOFout->Sumw2();
1066 fHistPtTPCInAccNoTOFout->SetMinimum(0);
1067 fOutput->Add(fHistPtTPCInAccNoTOFout);
1069 fHistPtTPCInAccWithPtTPCAtVtx = new TH1F("fHistPtTPCInAccWithPtTPCAtVtx","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1070 fHistPtTPCInAccWithPtTPCAtVtx->Sumw2();
1071 fHistPtTPCInAccWithPtTPCAtVtx->SetMinimum(0);
1072 fOutput->Add(fHistPtTPCInAccWithPtTPCAtVtx);
1074 fHistPtTPCInAccWithPtTPCAtInnerWall = new TH1F("fHistPtTPCInAccWithPtTPCAtInnerWall","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1075 fHistPtTPCInAccWithPtTPCAtInnerWall->Sumw2();
1076 fHistPtTPCInAccWithPtTPCAtInnerWall->SetMinimum(0);
1077 fOutput->Add(fHistPtTPCInAccWithPtTPCAtInnerWall);
1079 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);
1080 fHistDeltaPtTPC->SetMinimum(0);
1081 fOutput->Add(fHistDeltaPtTPC);
1083 fHistPtITSMI7InAcc = new TH1F("fHistPtITSMI7InAcc","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1084 fHistPtITSMI7InAcc->Sumw2();
1085 fHistPtITSMI7InAcc->SetMinimum(0);
1086 fOutput->Add(fHistPtITSMI7InAcc);
1088 fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1089 fHistPtITSMI6InAcc->Sumw2();
1090 fHistPtITSMI6InAcc->SetMinimum(0);
1091 fOutput->Add(fHistPtITSMI6InAcc);
1093 fHistPtITSMI5InAcc = new TH1F("fHistPtITSMI5InAcc","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1094 fHistPtITSMI5InAcc->Sumw2();
1095 fHistPtITSMI5InAcc->SetMinimum(0);
1096 fOutput->Add(fHistPtITSMI5InAcc);
1098 fHistPtITSMI4InAcc = new TH1F("fHistPtITSMI4InAcc","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1099 fHistPtITSMI4InAcc->Sumw2();
1100 fHistPtITSMI4InAcc->SetMinimum(0);
1101 fOutput->Add(fHistPtITSMI4InAcc);
1103 fHistPtITSMI3InAcc = new TH1F("fHistPtITSMI3InAcc","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1104 fHistPtITSMI3InAcc->Sumw2();
1105 fHistPtITSMI3InAcc->SetMinimum(0);
1106 fOutput->Add(fHistPtITSMI3InAcc);
1108 fHistPtITSMI2InAcc = new TH1F("fHistPtITSMI2InAcc","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1109 fHistPtITSMI2InAcc->Sumw2();
1110 fHistPtITSMI2InAcc->SetMinimum(0);
1111 fOutput->Add(fHistPtITSMI2InAcc);
1113 fHistPtITSMISPDInAcc = new TH1F("fHistPtITSMISPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1114 fHistPtITSMISPDInAcc->Sumw2();
1115 fHistPtITSMISPDInAcc->SetMinimum(0);
1116 fOutput->Add(fHistPtITSMISPDInAcc);
1118 fHistPtITSMIoneSPDInAcc = new TH1F("fHistPtITSMIoneSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1119 fHistPtITSMIoneSPDInAcc->Sumw2();
1120 fHistPtITSMIoneSPDInAcc->SetMinimum(0);
1121 fOutput->Add(fHistPtITSMIoneSPDInAcc);
1123 fHistPtITSMItwoSPDInAcc = new TH1F("fHistPtITSMItwoSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1124 fHistPtITSMItwoSPDInAcc->Sumw2();
1125 fHistPtITSMItwoSPDInAcc->SetMinimum(0);
1126 fOutput->Add(fHistPtITSMItwoSPDInAcc);
1128 fHistPtITSMI6InAccTOFbc0 = new TH1F("fHistPtITSMI6InAccTOFbc0","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1129 fHistPtITSMI6InAccTOFbc0->Sumw2();
1130 fHistPtITSMI6InAccTOFbc0->SetMinimum(0);
1131 fOutput->Add(fHistPtITSMI6InAccTOFbc0);
1133 fHistPtITSMI5InAccTOFbc0 = new TH1F("fHistPtITSMI5InAccTOFbc0","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1134 fHistPtITSMI5InAccTOFbc0->Sumw2();
1135 fHistPtITSMI5InAccTOFbc0->SetMinimum(0);
1136 fOutput->Add(fHistPtITSMI5InAccTOFbc0);
1138 fHistPtITSMI4InAccTOFbc0 = new TH1F("fHistPtITSMI4InAccTOFbc0","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1139 fHistPtITSMI4InAccTOFbc0->Sumw2();
1140 fHistPtITSMI4InAccTOFbc0->SetMinimum(0);
1141 fOutput->Add(fHistPtITSMI4InAccTOFbc0);
1143 fHistPtITSMI3InAccTOFbc0 = new TH1F("fHistPtITSMI3InAccTOFbc0","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1144 fHistPtITSMI3InAccTOFbc0->Sumw2();
1145 fHistPtITSMI3InAccTOFbc0->SetMinimum(0);
1146 fOutput->Add(fHistPtITSMI3InAccTOFbc0);
1148 fHistPtITSMI2InAccTOFbc0 = new TH1F("fHistPtITSMI2InAccTOFbc0","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1149 fHistPtITSMI2InAccTOFbc0->Sumw2();
1150 fHistPtITSMI2InAccTOFbc0->SetMinimum(0);
1151 fOutput->Add(fHistPtITSMI2InAccTOFbc0);
1153 fHistPtITSMISPDInAccTOFbc0 = new TH1F("fHistPtITSMISPDInAccTOFbc0","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1154 fHistPtITSMISPDInAccTOFbc0->Sumw2();
1155 fHistPtITSMISPDInAccTOFbc0->SetMinimum(0);
1156 fOutput->Add(fHistPtITSMISPDInAccTOFbc0);
1158 fHistPtITSMIoneSPDInAccTOFbc0 = new TH1F("fHistPtITSMIoneSPDInAccTOFbc0","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1159 fHistPtITSMIoneSPDInAccTOFbc0->Sumw2();
1160 fHistPtITSMIoneSPDInAccTOFbc0->SetMinimum(0);
1161 fOutput->Add(fHistPtITSMIoneSPDInAccTOFbc0);
1163 fHistPtITSMI6InAccwSDD = new TH1F("fHistPtITSMI6InAccwSDD","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1164 fHistPtITSMI6InAccwSDD->Sumw2();
1165 fHistPtITSMI6InAccwSDD->SetMinimum(0);
1166 fOutput->Add(fHistPtITSMI6InAccwSDD);
1168 fHistPtITSMI5InAccwSDD = new TH1F("fHistPtITSMI5InAccwSDD","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1169 fHistPtITSMI5InAccwSDD->Sumw2();
1170 fHistPtITSMI5InAccwSDD->SetMinimum(0);
1171 fOutput->Add(fHistPtITSMI5InAccwSDD);
1173 fHistPtITSMI4InAccwSDD = new TH1F("fHistPtITSMI4InAccwSDD","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1174 fHistPtITSMI4InAccwSDD->Sumw2();
1175 fHistPtITSMI4InAccwSDD->SetMinimum(0);
1176 fOutput->Add(fHistPtITSMI4InAccwSDD);
1178 fHistPtITSMI3InAccwSDD = new TH1F("fHistPtITSMI3InAccwSDD","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1179 fHistPtITSMI3InAccwSDD->Sumw2();
1180 fHistPtITSMI3InAccwSDD->SetMinimum(0);
1181 fOutput->Add(fHistPtITSMI3InAccwSDD);
1183 fHistPtITSMI2InAccwSDD = new TH1F("fHistPtITSMI2InAccwSDD","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1184 fHistPtITSMI2InAccwSDD->Sumw2();
1185 fHistPtITSMI2InAccwSDD->SetMinimum(0);
1186 fOutput->Add(fHistPtITSMI2InAccwSDD);
1188 fHistPtITSMISPDInAccwSDD = new TH1F("fHistPtITSMISPDInAccwSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1189 fHistPtITSMISPDInAccwSDD->Sumw2();
1190 fHistPtITSMISPDInAccwSDD->SetMinimum(0);
1191 fOutput->Add(fHistPtITSMISPDInAccwSDD);
1193 fHistPtITSMIoneSPDInAccwSDD = new TH1F("fHistPtITSMIoneSPDInAccwSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1194 fHistPtITSMIoneSPDInAccwSDD->Sumw2();
1195 fHistPtITSMIoneSPDInAccwSDD->SetMinimum(0);
1196 fOutput->Add(fHistPtITSMIoneSPDInAccwSDD);
1198 fHistPtITSMI6InAccTOFbc0wSDD = new TH1F("fHistPtITSMI6InAccTOFbc0wSDD","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1199 fHistPtITSMI6InAccTOFbc0wSDD->Sumw2();
1200 fHistPtITSMI6InAccTOFbc0wSDD->SetMinimum(0);
1201 fOutput->Add(fHistPtITSMI6InAccTOFbc0wSDD);
1203 fHistPtITSMI5InAccTOFbc0wSDD = new TH1F("fHistPtITSMI5InAccTOFbc0wSDD","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1204 fHistPtITSMI5InAccTOFbc0wSDD->Sumw2();
1205 fHistPtITSMI5InAccTOFbc0wSDD->SetMinimum(0);
1206 fOutput->Add(fHistPtITSMI5InAccTOFbc0wSDD);
1208 fHistPtITSMI4InAccTOFbc0wSDD = new TH1F("fHistPtITSMI4InAccTOFbc0wSDD","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1209 fHistPtITSMI4InAccTOFbc0wSDD->Sumw2();
1210 fHistPtITSMI4InAccTOFbc0wSDD->SetMinimum(0);
1211 fOutput->Add(fHistPtITSMI4InAccTOFbc0wSDD);
1213 fHistPtITSMI3InAccTOFbc0wSDD = new TH1F("fHistPtITSMI3InAccTOFbc0wSDD","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1214 fHistPtITSMI3InAccTOFbc0wSDD->Sumw2();
1215 fHistPtITSMI3InAccTOFbc0wSDD->SetMinimum(0);
1216 fOutput->Add(fHistPtITSMI3InAccTOFbc0wSDD);
1218 fHistPtITSMI2InAccTOFbc0wSDD = new TH1F("fHistPtITSMI2InAccTOFbc0wSDD","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1219 fHistPtITSMI2InAccTOFbc0wSDD->Sumw2();
1220 fHistPtITSMI2InAccTOFbc0wSDD->SetMinimum(0);
1221 fOutput->Add(fHistPtITSMI2InAccTOFbc0wSDD);
1223 fHistPtITSMISPDInAccTOFbc0wSDD = new TH1F("fHistPtITSMISPDInAccTOFbc0wSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1224 fHistPtITSMISPDInAccTOFbc0wSDD->Sumw2();
1225 fHistPtITSMISPDInAccTOFbc0wSDD->SetMinimum(0);
1226 fOutput->Add(fHistPtITSMISPDInAccTOFbc0wSDD);
1228 fHistPtITSMIoneSPDInAccTOFbc0wSDD = new TH1F("fHistPtITSMIoneSPDInAccTOFbc0wSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1229 fHistPtITSMIoneSPDInAccTOFbc0wSDD->Sumw2();
1230 fHistPtITSMIoneSPDInAccTOFbc0wSDD->SetMinimum(0);
1231 fOutput->Add(fHistPtITSMIoneSPDInAccTOFbc0wSDD);
1233 fHistPtITSMI6InAccwoSDD = new TH1F("fHistPtITSMI6InAccwoSDD","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1234 fHistPtITSMI6InAccwoSDD->Sumw2();
1235 fHistPtITSMI6InAccwoSDD->SetMinimum(0);
1236 fOutput->Add(fHistPtITSMI6InAccwoSDD);
1238 fHistPtITSMI5InAccwoSDD = new TH1F("fHistPtITSMI5InAccwoSDD","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1239 fHistPtITSMI5InAccwoSDD->Sumw2();
1240 fHistPtITSMI5InAccwoSDD->SetMinimum(0);
1241 fOutput->Add(fHistPtITSMI5InAccwoSDD);
1243 fHistPtITSMI4InAccwoSDD = new TH1F("fHistPtITSMI4InAccwoSDD","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1244 fHistPtITSMI4InAccwoSDD->Sumw2();
1245 fHistPtITSMI4InAccwoSDD->SetMinimum(0);
1246 fOutput->Add(fHistPtITSMI4InAccwoSDD);
1248 fHistPtITSMI3InAccwoSDD = new TH1F("fHistPtITSMI3InAccwoSDD","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1249 fHistPtITSMI3InAccwoSDD->Sumw2();
1250 fHistPtITSMI3InAccwoSDD->SetMinimum(0);
1251 fOutput->Add(fHistPtITSMI3InAccwoSDD);
1253 fHistPtITSMI2InAccwoSDD = new TH1F("fHistPtITSMI2InAccwoSDD","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1254 fHistPtITSMI2InAccwoSDD->Sumw2();
1255 fHistPtITSMI2InAccwoSDD->SetMinimum(0);
1256 fOutput->Add(fHistPtITSMI2InAccwoSDD);
1258 fHistPtITSMISPDInAccwoSDD = new TH1F("fHistPtITSMISPDInAccwoSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1259 fHistPtITSMISPDInAccwoSDD->Sumw2();
1260 fHistPtITSMISPDInAccwoSDD->SetMinimum(0);
1261 fOutput->Add(fHistPtITSMISPDInAccwoSDD);
1263 fHistPtITSMIoneSPDInAccwoSDD = new TH1F("fHistPtITSMIoneSPDInAccwoSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1264 fHistPtITSMIoneSPDInAccwoSDD->Sumw2();
1265 fHistPtITSMIoneSPDInAccwoSDD->SetMinimum(0);
1266 fOutput->Add(fHistPtITSMIoneSPDInAccwoSDD);
1268 fHistPtITSMI6InAccTOFbc0woSDD = new TH1F("fHistPtITSMI6InAccTOFbc0woSDD","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1269 fHistPtITSMI6InAccTOFbc0woSDD->Sumw2();
1270 fHistPtITSMI6InAccTOFbc0woSDD->SetMinimum(0);
1271 fOutput->Add(fHistPtITSMI6InAccTOFbc0woSDD);
1273 fHistPtITSMI5InAccTOFbc0woSDD = new TH1F("fHistPtITSMI5InAccTOFbc0woSDD","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1274 fHistPtITSMI5InAccTOFbc0woSDD->Sumw2();
1275 fHistPtITSMI5InAccTOFbc0woSDD->SetMinimum(0);
1276 fOutput->Add(fHistPtITSMI5InAccTOFbc0woSDD);
1278 fHistPtITSMI4InAccTOFbc0woSDD = new TH1F("fHistPtITSMI4InAccTOFbc0woSDD","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1279 fHistPtITSMI4InAccTOFbc0woSDD->Sumw2();
1280 fHistPtITSMI4InAccTOFbc0woSDD->SetMinimum(0);
1281 fOutput->Add(fHistPtITSMI4InAccTOFbc0woSDD);
1283 fHistPtITSMI3InAccTOFbc0woSDD = new TH1F("fHistPtITSMI3InAccTOFbc0woSDD","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1284 fHistPtITSMI3InAccTOFbc0woSDD->Sumw2();
1285 fHistPtITSMI3InAccTOFbc0woSDD->SetMinimum(0);
1286 fOutput->Add(fHistPtITSMI3InAccTOFbc0woSDD);
1288 fHistPtITSMI2InAccTOFbc0woSDD = new TH1F("fHistPtITSMI2InAccTOFbc0woSDD","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1289 fHistPtITSMI2InAccTOFbc0woSDD->Sumw2();
1290 fHistPtITSMI2InAccTOFbc0woSDD->SetMinimum(0);
1291 fOutput->Add(fHistPtITSMI2InAccTOFbc0woSDD);
1293 fHistPtITSMISPDInAccTOFbc0woSDD = new TH1F("fHistPtITSMISPDInAccTOFbc0woSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1294 fHistPtITSMISPDInAccTOFbc0woSDD->Sumw2();
1295 fHistPtITSMISPDInAccTOFbc0woSDD->SetMinimum(0);
1296 fOutput->Add(fHistPtITSMISPDInAccTOFbc0woSDD);
1298 fHistPtITSMIoneSPDInAccTOFbc0woSDD = new TH1F("fHistPtITSMIoneSPDInAccTOFbc0woSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1299 fHistPtITSMIoneSPDInAccTOFbc0woSDD->Sumw2();
1300 fHistPtITSMIoneSPDInAccTOFbc0woSDD->SetMinimum(0);
1301 fOutput->Add(fHistPtITSMIoneSPDInAccTOFbc0woSDD);
1303 fHistPtITSMIoneSPDInAccShared = new TH1F("fHistPtITSMIoneSPDInAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1304 fHistPtITSMIoneSPDInAccShared->Sumw2();
1305 fHistPtITSMIoneSPDInAccShared->SetMinimum(0);
1306 fOutput->Add(fHistPtITSMIoneSPDInAccShared);
1308 fHistPtITSMIoneSPDInAccSharedSPD = new TH1F("fHistPtITSMIoneSPDInAccSharedSPD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1309 fHistPtITSMIoneSPDInAccSharedSPD->Sumw2();
1310 fHistPtITSMIoneSPDInAccSharedSPD->SetMinimum(0);
1311 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPD);
1313 fHistPtITSMISPD1InAccShared = new TH1F("fHistPtITSMISPD1InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1314 fHistPtITSMISPD1InAccShared->Sumw2();
1315 fHistPtITSMISPD1InAccShared->SetMinimum(0);
1316 fOutput->Add(fHistPtITSMISPD1InAccShared);
1318 fHistPtITSMISPD2InAccShared = new TH1F("fHistPtITSMISPD2InAccShared","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1319 fHistPtITSMISPD2InAccShared->Sumw2();
1320 fHistPtITSMISPD2InAccShared->SetMinimum(0);
1321 fOutput->Add(fHistPtITSMISPD2InAccShared);
1323 fHistPtITSMIoneSPDInAccSharedFake = new TH1F("fHistPtITSMIoneSPDInAccSharedFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1324 fHistPtITSMIoneSPDInAccSharedFake->Sumw2();
1325 fHistPtITSMIoneSPDInAccSharedFake->SetMinimum(0);
1326 fOutput->Add(fHistPtITSMIoneSPDInAccSharedFake);
1328 fHistPtITSMIoneSPDInAccSharedSPDFake = new TH1F("fHistPtITSMIoneSPDInAccSharedSPDFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1329 fHistPtITSMIoneSPDInAccSharedSPDFake->Sumw2();
1330 fHistPtITSMIoneSPDInAccSharedSPDFake->SetMinimum(0);
1331 fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPDFake);
1333 fHistPhiITSMI7InAcc = new TH1F("fHistPhiITSMI7InAcc","phi distribution of ITSMI7 tracks; #phi; N tracks",100,0,2*3.1415);
1334 fHistPhiITSMI7InAcc->Sumw2();
1335 fHistPhiITSMI7InAcc->SetMinimum(0);
1336 fOutput->Add(fHistPhiITSMI7InAcc);
1338 fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
1339 fHistPhiITSMI6InAcc->Sumw2();
1340 fHistPhiITSMI6InAcc->SetMinimum(0);
1341 fOutput->Add(fHistPhiITSMI6InAcc);
1343 fHistPhiITSMI5InAcc = new TH1F("fHistPhiITSMI5InAcc","phi distribution of ITSMI5 tracks; #phi; N tracks",100,0,2*3.1415);
1344 fHistPhiITSMI5InAcc->Sumw2();
1345 fHistPhiITSMI5InAcc->SetMinimum(0);
1346 fOutput->Add(fHistPhiITSMI5InAcc);
1348 fHistPhiITSMI4InAcc = new TH1F("fHistPhiITSMI4InAcc","phi distribution of ITSMI4 tracks; #phi; N tracks",100,0,2*3.1415);
1349 fHistPhiITSMI4InAcc->Sumw2();
1350 fHistPhiITSMI4InAcc->SetMinimum(0);
1351 fOutput->Add(fHistPhiITSMI4InAcc);
1353 fHistPhiITSMI3InAcc = new TH1F("fHistPhiITSMI3InAcc","phi distribution of ITSMI3 tracks; #phi; N tracks",100,0,2*3.1415);
1354 fHistPhiITSMI3InAcc->Sumw2();
1355 fHistPhiITSMI3InAcc->SetMinimum(0);
1356 fOutput->Add(fHistPhiITSMI3InAcc);
1358 fHistPhiITSMI2InAcc = new TH1F("fHistPhiITSMI2InAcc","phi distribution of ITSMI2 tracks; #phi; N tracks",100,0,2*3.1415);
1359 fHistPhiITSMI2InAcc->Sumw2();
1360 fHistPhiITSMI2InAcc->SetMinimum(0);
1361 fOutput->Add(fHistPhiITSMI2InAcc);
1363 fHistPhiITSMISPDInAcc = new TH1F("fHistPhiITSMISPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1364 fHistPhiITSMISPDInAcc->Sumw2();
1365 fHistPhiITSMISPDInAcc->SetMinimum(0);
1366 fOutput->Add(fHistPhiITSMISPDInAcc);
1368 fHistPhiITSMIoneSPDInAcc = new TH1F("fHistPhiITSMIoneSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1369 fHistPhiITSMIoneSPDInAcc->Sumw2();
1370 fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
1371 fOutput->Add(fHistPhiITSMIoneSPDInAcc);
1373 fHistPhiITSMItwoSPDInAcc = new TH1F("fHistPhiITSMItwoSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
1374 fHistPhiITSMItwoSPDInAcc->Sumw2();
1375 fHistPhiITSMItwoSPDInAcc->SetMinimum(0);
1376 fOutput->Add(fHistPhiITSMItwoSPDInAcc);
1378 fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
1379 fHistEtaITSMI6InAcc->Sumw2();
1380 fHistEtaITSMI6InAcc->SetMinimum(0);
1381 fOutput->Add(fHistEtaITSMI6InAcc);
1383 fHistEtaITSMI7InAcc = new TH1F("fHistEtaITSMI7InAcc","eta distribution of ITSMI7 tracks; #eta; N tracks",100,-1.5,+1.5);
1384 fHistEtaITSMI7InAcc->Sumw2();
1385 fHistEtaITSMI7InAcc->SetMinimum(0);
1386 fOutput->Add(fHistEtaITSMI7InAcc);
1388 fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
1389 fHistEtaITSMI5InAcc->Sumw2();
1390 fHistEtaITSMI5InAcc->SetMinimum(0);
1391 fOutput->Add(fHistEtaITSMI5InAcc);
1393 fHistEtaITSMI4InAcc = new TH1F("fHistEtaITSMI4InAcc","eta distribution of ITSMI4 tracks; #eta; N tracks",100,-1.5,+1.5);
1394 fHistEtaITSMI4InAcc->Sumw2();
1395 fHistEtaITSMI4InAcc->SetMinimum(0);
1396 fOutput->Add(fHistEtaITSMI4InAcc);
1398 fHistEtaITSMI3InAcc = new TH1F("fHistEtaITSMI3InAcc","eta distribution of ITSMI3 tracks; #eta; N tracks",100,-1.5,+1.5);
1399 fHistEtaITSMI3InAcc->Sumw2();
1400 fHistEtaITSMI3InAcc->SetMinimum(0);
1401 fOutput->Add(fHistEtaITSMI3InAcc);
1403 fHistEtaITSMI2InAcc = new TH1F("fHistEtaITSMI2InAcc","eta distribution of ITSMI2 tracks; #eta; N tracks",100,-1.5,+1.5);
1404 fHistEtaITSMI2InAcc->Sumw2();
1405 fHistEtaITSMI2InAcc->SetMinimum(0);
1406 fOutput->Add(fHistEtaITSMI2InAcc);
1408 fHistEtaITSMISPDInAcc = new TH1F("fHistEtaITSMISPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1409 fHistEtaITSMISPDInAcc->Sumw2();
1410 fHistEtaITSMISPDInAcc->SetMinimum(0);
1411 fOutput->Add(fHistEtaITSMISPDInAcc);
1413 fHistEtaITSMIoneSPDInAcc = new TH1F("fHistEtaITSMIoneSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1414 fHistEtaITSMIoneSPDInAcc->Sumw2();
1415 fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
1416 fOutput->Add(fHistEtaITSMIoneSPDInAcc);
1418 fHistEtaITSMItwoSPDInAcc = new TH1F("fHistEtaITSMItwoSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
1419 fHistEtaITSMItwoSPDInAcc->Sumw2();
1420 fHistEtaITSMItwoSPDInAcc->SetMinimum(0);
1421 fOutput->Add(fHistEtaITSMItwoSPDInAcc);
1424 fHistPtITSMI7InAccFake = new TH1F("fHistPtITSMI7InAccFake","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1425 fHistPtITSMI7InAccFake->Sumw2();
1426 fHistPtITSMI7InAccFake->SetMinimum(0);
1427 fOutput->Add(fHistPtITSMI7InAccFake);
1429 fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1430 fHistPtITSMI6InAccFake->Sumw2();
1431 fHistPtITSMI6InAccFake->SetMinimum(0);
1432 fOutput->Add(fHistPtITSMI6InAccFake);
1434 fHistPtITSMI5InAccFake = new TH1F("fHistPtITSMI5InAccFake","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1435 fHistPtITSMI5InAccFake->Sumw2();
1436 fHistPtITSMI5InAccFake->SetMinimum(0);
1437 fOutput->Add(fHistPtITSMI5InAccFake);
1439 fHistPtITSMI4InAccFake = new TH1F("fHistPtITSMI4InAccFake","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1440 fHistPtITSMI4InAccFake->Sumw2();
1441 fHistPtITSMI4InAccFake->SetMinimum(0);
1442 fOutput->Add(fHistPtITSMI4InAccFake);
1444 fHistPtITSMI3InAccFake = new TH1F("fHistPtITSMI3InAccFake","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1445 fHistPtITSMI3InAccFake->Sumw2();
1446 fHistPtITSMI3InAccFake->SetMinimum(0);
1447 fOutput->Add(fHistPtITSMI3InAccFake);
1449 fHistPtITSMI2InAccFake = new TH1F("fHistPtITSMI2InAccFake","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1450 fHistPtITSMI2InAccFake->Sumw2();
1451 fHistPtITSMI2InAccFake->SetMinimum(0);
1452 fOutput->Add(fHistPtITSMI2InAccFake);
1454 fHistPtITSMISPDInAccFake = new TH1F("fHistPtITSMISPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1455 fHistPtITSMISPDInAccFake->Sumw2();
1456 fHistPtITSMISPDInAccFake->SetMinimum(0);
1457 fOutput->Add(fHistPtITSMISPDInAccFake);
1459 fHistPtITSMIoneSPDInAccFake = new TH1F("fHistPtITSMIoneSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1460 fHistPtITSMIoneSPDInAccFake->Sumw2();
1461 fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
1462 fOutput->Add(fHistPtITSMIoneSPDInAccFake);
1464 fHistPtITSMItwoSPDInAccFake = new TH1F("fHistPtITSMItwoSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1465 fHistPtITSMItwoSPDInAccFake->Sumw2();
1466 fHistPtITSMItwoSPDInAccFake->SetMinimum(0);
1467 fOutput->Add(fHistPtITSMItwoSPDInAccFake);
1469 fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1470 fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
1471 fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
1472 fOutput->Add(fHistPtITSMIoneSPDthreeSDDSSDInAcc);
1474 fHistPtITSTPCsel = new TH1F("fHistPtITSTPCsel","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1475 fHistPtITSTPCsel->Sumw2();
1476 fHistPtITSTPCsel->SetMinimum(0);
1477 fOutput->Add(fHistPtITSTPCsel);
1479 fHistPtITSTPCselTOFbc0 = new TH1F("fHistPtITSTPCselTOFbc0","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1480 fHistPtITSTPCselTOFbc0->Sumw2();
1481 fHistPtITSTPCselTOFbc0->SetMinimum(0);
1482 fOutput->Add(fHistPtITSTPCselTOFbc0);
1484 fHistPtITSTPCselwSDD = new TH1F("fHistPtITSTPCselwSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1485 fHistPtITSTPCselwSDD->Sumw2();
1486 fHistPtITSTPCselwSDD->SetMinimum(0);
1487 fOutput->Add(fHistPtITSTPCselwSDD);
1489 fHistPtITSTPCselTOFbc0wSDD = new TH1F("fHistPtITSTPCselTOFbc0wSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1490 fHistPtITSTPCselTOFbc0wSDD->Sumw2();
1491 fHistPtITSTPCselTOFbc0wSDD->SetMinimum(0);
1492 fOutput->Add(fHistPtITSTPCselTOFbc0wSDD);
1494 fHistPtITSTPCselwoSDD = new TH1F("fHistPtITSTPCselwoSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1495 fHistPtITSTPCselwoSDD->Sumw2();
1496 fHistPtITSTPCselwoSDD->SetMinimum(0);
1497 fOutput->Add(fHistPtITSTPCselwoSDD);
1499 fHistPtITSTPCselTOFbc0woSDD = new TH1F("fHistPtITSTPCselTOFbc0woSDD","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1500 fHistPtITSTPCselTOFbc0woSDD->Sumw2();
1501 fHistPtITSTPCselTOFbc0woSDD->SetMinimum(0);
1502 fOutput->Add(fHistPtITSTPCselTOFbc0woSDD);
1504 fHistPtITSTPCselP = new TH1F("fHistPtITSTPCselP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1505 fHistPtITSTPCselP->Sumw2();
1506 fHistPtITSTPCselP->SetMinimum(0);
1507 fOutput->Add(fHistPtITSTPCselP);
1509 fHistPtITSTPCselS = new TH1F("fHistPtITSTPCselS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1510 fHistPtITSTPCselS->Sumw2();
1511 fHistPtITSTPCselS->SetMinimum(0);
1512 fOutput->Add(fHistPtITSTPCselS);
1514 fHistPtITSTPCselFake = new TH1F("fHistPtITSTPCselFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1515 fHistPtITSTPCselFake->Sumw2();
1516 fHistPtITSTPCselFake->SetMinimum(0);
1517 fOutput->Add(fHistPtITSTPCselFake);
1519 fHistPtITSTPCselSfromStrange = new TH1F("fHistPtITSTPCselSfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1520 fHistPtITSTPCselSfromStrange->Sumw2();
1521 fHistPtITSTPCselSfromStrange->SetMinimum(0);
1522 fOutput->Add(fHistPtITSTPCselSfromStrange);
1524 fHistPtITSTPCselPfromStrange = new TH1F("fHistPtITSTPCselPfromStrange","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1525 fHistPtITSTPCselPfromStrange->Sumw2();
1526 fHistPtITSTPCselPfromStrange->SetMinimum(0);
1527 fOutput->Add(fHistPtITSTPCselPfromStrange);
1529 fHistPtITSTPCselSfromMat = new TH1F("fHistPtITSTPCselSfromMat","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1530 fHistPtITSTPCselSfromMat->Sumw2();
1531 fHistPtITSTPCselSfromMat->SetMinimum(0);
1532 fOutput->Add(fHistPtITSTPCselSfromMat);
1534 fHistPtTPCInAccP = new TH1F("fHistPtTPCInAccP","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1535 fHistPtTPCInAccP->Sumw2();
1536 fHistPtTPCInAccP->SetMinimum(0);
1537 fOutput->Add(fHistPtTPCInAccP);
1539 fHistPtTPCInAccPfromStrange = new TH1F("fHistPtTPCInAccPfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1540 fHistPtTPCInAccPfromStrange->Sumw2();
1541 fHistPtTPCInAccPfromStrange->SetMinimum(0);
1542 fOutput->Add(fHistPtTPCInAccPfromStrange);
1544 fHistPtITSMI7InAccP = new TH1F("fHistPtITSMI7InAccP","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1545 fHistPtITSMI7InAccP->Sumw2();
1546 fHistPtITSMI7InAccP->SetMinimum(0);
1547 fOutput->Add(fHistPtITSMI7InAccP);
1549 fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1550 fHistPtITSMI6InAccP->Sumw2();
1551 fHistPtITSMI6InAccP->SetMinimum(0);
1552 fOutput->Add(fHistPtITSMI6InAccP);
1554 fHistPtITSMI5InAccP = new TH1F("fHistPtITSMI5InAccP","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1555 fHistPtITSMI5InAccP->Sumw2();
1556 fHistPtITSMI5InAccP->SetMinimum(0);
1557 fOutput->Add(fHistPtITSMI5InAccP);
1559 fHistPtITSMI4InAccP = new TH1F("fHistPtITSMI4InAccP","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1560 fHistPtITSMI4InAccP->Sumw2();
1561 fHistPtITSMI4InAccP->SetMinimum(0);
1562 fOutput->Add(fHistPtITSMI4InAccP);
1564 fHistPtITSMI3InAccP = new TH1F("fHistPtITSMI3InAccP","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1565 fHistPtITSMI3InAccP->Sumw2();
1566 fHistPtITSMI3InAccP->SetMinimum(0);
1567 fOutput->Add(fHistPtITSMI3InAccP);
1569 fHistPtITSMI2InAccP = new TH1F("fHistPtITSMI2InAccP","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1570 fHistPtITSMI2InAccP->Sumw2();
1571 fHistPtITSMI2InAccP->SetMinimum(0);
1572 fOutput->Add(fHistPtITSMI2InAccP);
1574 fHistPtITSMISPDInAccP = new TH1F("fHistPtITSMISPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1575 fHistPtITSMISPDInAccP->Sumw2();
1576 fHistPtITSMISPDInAccP->SetMinimum(0);
1577 fOutput->Add(fHistPtITSMISPDInAccP);
1579 fHistPtITSMIoneSPDInAccP = new TH1F("fHistPtITSMIoneSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1580 fHistPtITSMIoneSPDInAccP->Sumw2();
1581 fHistPtITSMIoneSPDInAccP->SetMinimum(0);
1582 fOutput->Add(fHistPtITSMIoneSPDInAccP);
1584 fHistPtITSMItwoSPDInAccP = new TH1F("fHistPtITSMItwoSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1585 fHistPtITSMItwoSPDInAccP->Sumw2();
1586 fHistPtITSMItwoSPDInAccP->SetMinimum(0);
1587 fOutput->Add(fHistPtITSMItwoSPDInAccP);
1589 fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1590 fHistPtTPCInAccS->Sumw2();
1591 fHistPtTPCInAccS->SetMinimum(0);
1592 fOutput->Add(fHistPtTPCInAccS);
1594 fHistPtTPCInAccSfromStrange = new TH1F("fHistPtTPCInAccSfromStrange","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1595 fHistPtTPCInAccSfromStrange->Sumw2();
1596 fHistPtTPCInAccSfromStrange->SetMinimum(0);
1597 fOutput->Add(fHistPtTPCInAccSfromStrange);
1599 fHistPtTPCInAccSfromMat = new TH1F("fHistPtTPCInAccSfromMat","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1600 fHistPtTPCInAccSfromMat->Sumw2();
1601 fHistPtTPCInAccSfromMat->SetMinimum(0);
1602 fOutput->Add(fHistPtTPCInAccSfromMat);
1604 fHistPtITSMI7InAccS = new TH1F("fHistPtITSMI7InAccS","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1605 fHistPtITSMI7InAccS->Sumw2();
1606 fHistPtITSMI7InAccS->SetMinimum(0);
1607 fOutput->Add(fHistPtITSMI7InAccS);
1609 fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1610 fHistPtITSMI6InAccS->Sumw2();
1611 fHistPtITSMI6InAccS->SetMinimum(0);
1612 fOutput->Add(fHistPtITSMI6InAccS);
1614 fHistPtITSMI5InAccS = new TH1F("fHistPtITSMI5InAccS","pt distribution of ITSMI5 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1615 fHistPtITSMI5InAccS->Sumw2();
1616 fHistPtITSMI5InAccS->SetMinimum(0);
1617 fOutput->Add(fHistPtITSMI5InAccS);
1619 fHistPtITSMI4InAccS = new TH1F("fHistPtITSMI4InAccS","pt distribution of ITSMI4 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1620 fHistPtITSMI4InAccS->Sumw2();
1621 fHistPtITSMI4InAccS->SetMinimum(0);
1622 fOutput->Add(fHistPtITSMI4InAccS);
1624 fHistPtITSMI3InAccS = new TH1F("fHistPtITSMI3InAccS","pt distribution of ITSMI3 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1625 fHistPtITSMI3InAccS->Sumw2();
1626 fHistPtITSMI3InAccS->SetMinimum(0);
1627 fOutput->Add(fHistPtITSMI3InAccS);
1629 fHistPtITSMI2InAccS = new TH1F("fHistPtITSMI2InAccS","pt distribution of ITSMI2 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1630 fHistPtITSMI2InAccS->Sumw2();
1631 fHistPtITSMI2InAccS->SetMinimum(0);
1632 fOutput->Add(fHistPtITSMI2InAccS);
1634 fHistPtITSMISPDInAccS = new TH1F("fHistPtITSMISPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1635 fHistPtITSMISPDInAccS->Sumw2();
1636 fHistPtITSMISPDInAccS->SetMinimum(0);
1637 fOutput->Add(fHistPtITSMISPDInAccS);
1639 fHistPtITSMIoneSPDInAccS = new TH1F("fHistPtITSMIoneSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1640 fHistPtITSMIoneSPDInAccS->Sumw2();
1641 fHistPtITSMIoneSPDInAccS->SetMinimum(0);
1642 fOutput->Add(fHistPtITSMIoneSPDInAccS);
1644 fHistPtITSMItwoSPDInAccS = new TH1F("fHistPtITSMItwoSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1645 fHistPtITSMItwoSPDInAccS->Sumw2();
1646 fHistPtITSMItwoSPDInAccS->SetMinimum(0);
1647 fOutput->Add(fHistPtITSMItwoSPDInAccS);
1649 fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1650 fHistPtITSMIokbadoutinz6->Sumw2();
1651 fHistPtITSMIokbadoutinz6->SetMinimum(0);
1652 fOutput->Add(fHistPtITSMIokbadoutinz6);
1654 fHistPtITSMIokbadoutinz4InAcc = new TH1F("fHistPtITSMIokbadoutinz4InAcc","pt distribution of ITSMI tracks with 4 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1655 fHistPtITSMIokbadoutinz4InAcc->Sumw2();
1656 fHistPtITSMIokbadoutinz4InAcc->SetMinimum(0);
1657 fOutput->Add(fHistPtITSMIokbadoutinz4InAcc);
1659 fHistPtITSMIokbadoutinz5InAcc = new TH1F("fHistPtITSMIokbadoutinz5InAcc","pt distribution of ITSMI tracks with 5 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1660 fHistPtITSMIokbadoutinz5InAcc->Sumw2();
1661 fHistPtITSMIokbadoutinz5InAcc->SetMinimum(0);
1662 fOutput->Add(fHistPtITSMIokbadoutinz5InAcc);
1664 fHistPtITSMIokbadoutinz6InAcc = new TH1F("fHistPtITSMIokbadoutinz6InAcc","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
1665 fHistPtITSMIokbadoutinz6InAcc->Sumw2();
1666 fHistPtITSMIokbadoutinz6InAcc->SetMinimum(0);
1667 fOutput->Add(fHistPtITSMIokbadoutinz6InAcc);
1669 fHistRProdVtxInAccP = new TH1F("fHistRProdVtxInAccP","Radius of production vertex for primaries; r [cm]; N tracks",100,0,10);
1670 fHistRProdVtxInAccP->Sumw2();
1671 fHistRProdVtxInAccP->SetMinimum(0);
1672 fOutput->Add(fHistRProdVtxInAccP);
1674 fHistRProdVtxInAccS = new TH1F("fHistRProdVtxInAccS","Radius of production vertex for secondaries; r [cm]; N tracks",100,0,10);
1675 fHistRProdVtxInAccS->Sumw2();
1676 fHistRProdVtxInAccS->SetMinimum(0);
1677 fOutput->Add(fHistRProdVtxInAccS);
1680 fHistd0rphiTPCInAccP150200 = new TH1F("fHistd0rphiTPCInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1681 fHistd0rphiTPCInAccP150200->Sumw2();
1682 fHistd0rphiTPCInAccP150200->SetMinimum(0);
1683 fOutput->Add(fHistd0rphiTPCInAccP150200);
1685 fHistd0rphiTPCInAccP500700 = new TH1F("fHistd0rphiTPCInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1686 fHistd0rphiTPCInAccP500700->Sumw2();
1687 fHistd0rphiTPCInAccP500700->SetMinimum(0);
1688 fOutput->Add(fHistd0rphiTPCInAccP500700);
1690 fHistd0rphiTPCInAccP10001500 = new TH1F("fHistd0rphiTPCInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1691 fHistd0rphiTPCInAccP10001500->Sumw2();
1692 fHistd0rphiTPCInAccP10001500->SetMinimum(0);
1693 fOutput->Add(fHistd0rphiTPCInAccP10001500);
1695 fHistd0rphiTPCInAccS150200 = new TH1F("fHistd0rphiTPCInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1696 fHistd0rphiTPCInAccS150200->Sumw2();
1697 fHistd0rphiTPCInAccS150200->SetMinimum(0);
1698 fOutput->Add(fHistd0rphiTPCInAccS150200);
1700 fHistd0rphiTPCInAccS500700 = new TH1F("fHistd0rphiTPCInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1701 fHistd0rphiTPCInAccS500700->Sumw2();
1702 fHistd0rphiTPCInAccS500700->SetMinimum(0);
1703 fOutput->Add(fHistd0rphiTPCInAccS500700);
1705 fHistd0rphiTPCInAccS10001500 = new TH1F("fHistd0rphiTPCInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-5,5);
1706 fHistd0rphiTPCInAccS10001500->Sumw2();
1707 fHistd0rphiTPCInAccS10001500->SetMinimum(0);
1708 fOutput->Add(fHistd0rphiTPCInAccS10001500);
1710 fHistd0rphiITSMISPDInAccP150200 = new TH1F("fHistd0rphiITSMISPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1711 fHistd0rphiITSMISPDInAccP150200->Sumw2();
1712 fHistd0rphiITSMISPDInAccP150200->SetMinimum(0);
1713 fOutput->Add(fHistd0rphiITSMISPDInAccP150200);
1715 fHistd0rphiITSMISPDInAccP500700 = new TH1F("fHistd0rphiITSMISPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1716 fHistd0rphiITSMISPDInAccP500700->Sumw2();
1717 fHistd0rphiITSMISPDInAccP500700->SetMinimum(0);
1718 fOutput->Add(fHistd0rphiITSMISPDInAccP500700);
1720 fHistd0rphiITSMISPDInAccP10001500 = new TH1F("fHistd0rphiITSMISPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1721 fHistd0rphiITSMISPDInAccP10001500->Sumw2();
1722 fHistd0rphiITSMISPDInAccP10001500->SetMinimum(0);
1723 fOutput->Add(fHistd0rphiITSMISPDInAccP10001500);
1725 fHistd0rphiITSMISPDInAccS150200 = new TH1F("fHistd0rphiITSMISPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1726 fHistd0rphiITSMISPDInAccS150200->Sumw2();
1727 fHistd0rphiITSMISPDInAccS150200->SetMinimum(0);
1728 fOutput->Add(fHistd0rphiITSMISPDInAccS150200);
1730 fHistd0rphiITSMISPDInAccS500700 = new TH1F("fHistd0rphiITSMISPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1731 fHistd0rphiITSMISPDInAccS500700->Sumw2();
1732 fHistd0rphiITSMISPDInAccS500700->SetMinimum(0);
1733 fOutput->Add(fHistd0rphiITSMISPDInAccS500700);
1735 fHistd0rphiITSMISPDInAccS10001500 = new TH1F("fHistd0rphiITSMISPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1736 fHistd0rphiITSMISPDInAccS10001500->Sumw2();
1737 fHistd0rphiITSMISPDInAccS10001500->SetMinimum(0);
1738 fOutput->Add(fHistd0rphiITSMISPDInAccS10001500);
1740 fHistd0rphiITSMIoneSPDInAccP150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccP150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1741 fHistd0rphiITSMIoneSPDInAccP150200->Sumw2();
1742 fHistd0rphiITSMIoneSPDInAccP150200->SetMinimum(0);
1743 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP150200);
1745 fHistd0rphiITSMIoneSPDInAccP350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccP350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1746 fHistd0rphiITSMIoneSPDInAccP350450->Sumw2();
1747 fHistd0rphiITSMIoneSPDInAccP350450->SetMinimum(0);
1748 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP350450);
1750 fHistd0rphiITSMIoneSPDInAccP500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccP500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1751 fHistd0rphiITSMIoneSPDInAccP500700->Sumw2();
1752 fHistd0rphiITSMIoneSPDInAccP500700->SetMinimum(0);
1753 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP500700);
1755 fHistd0rphiITSMIoneSPDInAccP10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1756 fHistd0rphiITSMIoneSPDInAccP10001500->Sumw2();
1757 fHistd0rphiITSMIoneSPDInAccP10001500->SetMinimum(0);
1758 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP10001500);
1760 fHistd0rphiITSMIoneSPDInAccP25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1761 fHistd0rphiITSMIoneSPDInAccP25004000->Sumw2();
1762 fHistd0rphiITSMIoneSPDInAccP25004000->SetMinimum(0);
1763 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP25004000);
1765 fHistd0rphiITSMIoneSPDInAccP40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccP40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1766 fHistd0rphiITSMIoneSPDInAccP40008000->Sumw2();
1767 fHistd0rphiITSMIoneSPDInAccP40008000->SetMinimum(0);
1768 fOutput->Add(fHistd0rphiITSMIoneSPDInAccP40008000);
1770 fHistd0zITSMIoneSPDInAccP150200 = new TH1F("fHistd0zITSMIoneSPDInAccP150200","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1771 fHistd0zITSMIoneSPDInAccP150200->Sumw2();
1772 fHistd0zITSMIoneSPDInAccP150200->SetMinimum(0);
1773 fOutput->Add(fHistd0zITSMIoneSPDInAccP150200);
1775 fHistd0zITSMIoneSPDInAccP500700 = new TH1F("fHistd0zITSMIoneSPDInAccP500700","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1776 fHistd0zITSMIoneSPDInAccP500700->Sumw2();
1777 fHistd0zITSMIoneSPDInAccP500700->SetMinimum(0);
1778 fOutput->Add(fHistd0zITSMIoneSPDInAccP500700);
1780 fHistd0zITSMIoneSPDInAccP10001500 = new TH1F("fHistd0zITSMIoneSPDInAccP10001500","Longitudinal imp. par. to VertexTracks for primaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1781 fHistd0zITSMIoneSPDInAccP10001500->Sumw2();
1782 fHistd0zITSMIoneSPDInAccP10001500->SetMinimum(0);
1783 fOutput->Add(fHistd0zITSMIoneSPDInAccP10001500);
1785 fHistd0zVSetaTPCInAccP10001500 = new TH2F("fHistd0zVSetaTPCInAccP10001500","Long. imp. par. to VertexSPD for TPC tracks; d_{0} z [cm]; eta",100,-4,4,10,-1,1);
1786 fOutput->Add(fHistd0zVSetaTPCInAccP10001500);
1788 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);
1789 fOutput->Add(fHistd0rphiVSphiITSMIoneSPDInAccP10001500);
1791 fHistd0rphiVSetaITSMIoneSPDInAccP10001500 = new TH2F("fHistd0rphiVSetaITSMIoneSPDInAccP10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; eta",30,-0.3,0.3,10,-1,1);
1792 fOutput->Add(fHistd0rphiVSetaITSMIoneSPDInAccP10001500);
1794 fHistd0rphiITSMIoneSPDInAccS150200 = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1795 fHistd0rphiITSMIoneSPDInAccS150200->Sumw2();
1796 fHistd0rphiITSMIoneSPDInAccS150200->SetMinimum(0);
1797 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200);
1799 fHistd0rphiITSMIoneSPDInAccS350450 = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1800 fHistd0rphiITSMIoneSPDInAccS350450->Sumw2();
1801 fHistd0rphiITSMIoneSPDInAccS350450->SetMinimum(0);
1802 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450);
1804 fHistd0rphiITSMIoneSPDInAccS500700 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1805 fHistd0rphiITSMIoneSPDInAccS500700->Sumw2();
1806 fHistd0rphiITSMIoneSPDInAccS500700->SetMinimum(0);
1807 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700);
1809 fHistd0rphiITSMIoneSPDInAccS500700from22 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from22","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1810 fHistd0rphiITSMIoneSPDInAccS500700from22->Sumw2();
1811 fHistd0rphiITSMIoneSPDInAccS500700from22->SetMinimum(0);
1812 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from22);
1814 fHistd0rphiITSMIoneSPDInAccS500700from211 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from211","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1815 fHistd0rphiITSMIoneSPDInAccS500700from211->Sumw2();
1816 fHistd0rphiITSMIoneSPDInAccS500700from211->SetMinimum(0);
1817 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from211);
1819 fHistd0rphiITSMIoneSPDInAccS500700from310 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from310","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1820 fHistd0rphiITSMIoneSPDInAccS500700from310->Sumw2();
1821 fHistd0rphiITSMIoneSPDInAccS500700from310->SetMinimum(0);
1822 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from310);
1824 fHistd0rphiITSMIoneSPDInAccS500700from321 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from321","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1825 fHistd0rphiITSMIoneSPDInAccS500700from321->Sumw2();
1826 fHistd0rphiITSMIoneSPDInAccS500700from321->SetMinimum(0);
1827 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from321);
1829 fHistd0rphiITSMIoneSPDInAccS500700from3122 = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700from3122","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1830 fHistd0rphiITSMIoneSPDInAccS500700from3122->Sumw2();
1831 fHistd0rphiITSMIoneSPDInAccS500700from3122->SetMinimum(0);
1832 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700from3122);
1834 fHistd0rphiITSMIoneSPDInAccS10001500 = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1835 fHistd0rphiITSMIoneSPDInAccS10001500->Sumw2();
1836 fHistd0rphiITSMIoneSPDInAccS10001500->SetMinimum(0);
1837 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500);
1839 fHistd0rphiITSMIoneSPDInAccS25004000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1840 fHistd0rphiITSMIoneSPDInAccS25004000->Sumw2();
1841 fHistd0rphiITSMIoneSPDInAccS25004000->SetMinimum(0);
1842 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000);
1844 fHistd0rphiITSMIoneSPDInAccS40008000 = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1845 fHistd0rphiITSMIoneSPDInAccS40008000->Sumw2();
1846 fHistd0rphiITSMIoneSPDInAccS40008000->SetMinimum(0);
1847 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000);
1849 fHistd0rphiITSMIoneSPDInAccS150200fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1850 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Sumw2();
1851 fHistd0rphiITSMIoneSPDInAccS150200fromStrange->SetMinimum(0);
1852 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromStrange);
1854 fHistd0rphiITSMIoneSPDInAccS150200fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS150200fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1855 fHistd0rphiITSMIoneSPDInAccS150200fromMat->Sumw2();
1856 fHistd0rphiITSMIoneSPDInAccS150200fromMat->SetMinimum(0);
1857 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS150200fromMat);
1859 fHistd0rphiITSMIoneSPDInAccS350450fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1860 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Sumw2();
1861 fHistd0rphiITSMIoneSPDInAccS350450fromStrange->SetMinimum(0);
1862 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromStrange);
1864 fHistd0rphiITSMIoneSPDInAccS350450fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS350450fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1865 fHistd0rphiITSMIoneSPDInAccS350450fromMat->Sumw2();
1866 fHistd0rphiITSMIoneSPDInAccS350450fromMat->SetMinimum(0);
1867 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS350450fromMat);
1869 fHistd0rphiITSMIoneSPDInAccS500700fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1870 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Sumw2();
1871 fHistd0rphiITSMIoneSPDInAccS500700fromStrange->SetMinimum(0);
1872 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromStrange);
1874 fHistd0rphiITSMIoneSPDInAccS500700fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS500700fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1875 fHistd0rphiITSMIoneSPDInAccS500700fromMat->Sumw2();
1876 fHistd0rphiITSMIoneSPDInAccS500700fromMat->SetMinimum(0);
1877 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS500700fromMat);
1879 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1880 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Sumw2();
1881 fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->SetMinimum(0);
1882 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromStrange);
1884 fHistd0rphiITSMIoneSPDInAccS10001500fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS10001500fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1885 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Sumw2();
1886 fHistd0rphiITSMIoneSPDInAccS10001500fromMat->SetMinimum(0);
1887 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS10001500fromMat);
1889 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1890 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Sumw2();
1891 fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->SetMinimum(0);
1892 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromStrange);
1894 fHistd0rphiITSMIoneSPDInAccS25004000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS25004000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1895 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Sumw2();
1896 fHistd0rphiITSMIoneSPDInAccS25004000fromMat->SetMinimum(0);
1897 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS25004000fromMat);
1899 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromStrange","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1900 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Sumw2();
1901 fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->SetMinimum(0);
1902 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromStrange);
1904 fHistd0rphiITSMIoneSPDInAccS40008000fromMat = new TH1F("fHistd0rphiITSMIoneSPDInAccS40008000fromMat","Transverse imp. par. to VertexTracks for primaries; d_{0} rphi [cm]; N tracks",300,-1.5,1.5);
1905 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Sumw2();
1906 fHistd0rphiITSMIoneSPDInAccS40008000fromMat->SetMinimum(0);
1907 fOutput->Add(fHistd0rphiITSMIoneSPDInAccS40008000fromMat);
1910 fHistd0zITSMIoneSPDInAccS150200 = new TH1F("fHistd0zITSMIoneSPDInAccS150200","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1911 fHistd0zITSMIoneSPDInAccS150200->Sumw2();
1912 fHistd0zITSMIoneSPDInAccS150200->SetMinimum(0);
1913 fOutput->Add(fHistd0zITSMIoneSPDInAccS150200);
1915 fHistd0zITSMIoneSPDInAccS500700 = new TH1F("fHistd0zITSMIoneSPDInAccS500700","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1916 fHistd0zITSMIoneSPDInAccS500700->Sumw2();
1917 fHistd0zITSMIoneSPDInAccS500700->SetMinimum(0);
1918 fOutput->Add(fHistd0zITSMIoneSPDInAccS500700);
1920 fHistd0zITSMIoneSPDInAccS10001500 = new TH1F("fHistd0zITSMIoneSPDInAccS10001500","Longitudinal imp. par. to VertexTracks for secondaries; d_{0} z [cm]; N tracks",300,-1.5,1.5);
1921 fHistd0zITSMIoneSPDInAccS10001500->Sumw2();
1922 fHistd0zITSMIoneSPDInAccS10001500->SetMinimum(0);
1923 fOutput->Add(fHistd0zITSMIoneSPDInAccS10001500);
1925 fHistITSRedChi2NonFakePt02 = new TH1F("fHistITSRedChi2NonFakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1926 fOutput->Add(fHistITSRedChi2NonFakePt02);
1927 fHistITSRedChi2FakePt02 = new TH1F("fHistITSRedChi2FakePt02","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1928 fOutput->Add(fHistITSRedChi2FakePt02);
1929 fHistITSRedChi2NonFakePt05 = new TH1F("fHistITSRedChi2NonFakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1930 fOutput->Add(fHistITSRedChi2NonFakePt05);
1931 fHistITSRedChi2FakePt05 = new TH1F("fHistITSRedChi2FakePt05","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1932 fOutput->Add(fHistITSRedChi2FakePt05);
1933 fHistITSRedChi2NonFakePt1 = new TH1F("fHistITSRedChi2NonFakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1934 fOutput->Add(fHistITSRedChi2NonFakePt1);
1935 fHistITSRedChi2FakePt1 = new TH1F("fHistITSRedChi2FakePt1","ITS chi2/cluster; ITS #chi^{2}/nclusters; tracks",500,0,100);
1936 fOutput->Add(fHistITSRedChi2FakePt1);
1941 fNtupleESDTracks = new TNtuple("fNtupleESDTracks","tracks","pt:eta:phi:d0:z0:sigmad0:sigmaz0:ptMC:pdgMC:pdgMCMoth:d0MC:d0MCv:z0MCv:sigmad0MCv:sigmaz0MCv:ITSflag:isPrimary:isTPCSel");
1942 fOutput->Add(fNtupleESDTracks);
1944 fNtupleITSAlignExtra = new TNtuple("fNtupleITSAlignExtra","ITS alignment checks: extra clusters","layer:x:y:z:dxy:dz:xloc:zloc:npoints:pt");
1945 fOutput->Add(fNtupleITSAlignExtra);
1947 fNtupleITSAlignSPDTracklets = new TNtuple("fNtupleITSAlignSPDTracklets","ITS alignment checks: SPD tracklets wrt SPD vertex","phi:theta:z:dxy:dz:pt");
1948 fOutput->Add(fNtupleITSAlignSPDTracklets);
1950 PostData(1, fOutput);
1954 //________________________________________________________________________
1955 void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
1958 // Called for each event
1961 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
1964 Printf("ERROR: fESD not available");
1968 //if(fESD->GetEventNumberInFile()<7) return;
1970 // only events in the requested multiplicity range
1971 if(!IsSelectedCentrality()) return;
1973 fHistNEvents->Fill(-1);
1976 Bool_t isSelected = kTRUE;
1978 isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1980 if(!isSelected) return;
1982 TString firedTriggerClasses=fESD->GetFiredTriggerClasses();
1983 if(!firedTriggerClasses.Contains(fTriggerClass.Data())) return;
1986 Bool_t sddIsIn=kTRUE;
1990 AliCDBManager* man = AliCDBManager::Instance();
1991 if(fOCDBPath.Contains("OCDB")) { // when running in the QAtrain this is not called (OCBD is already set)
1992 man->SetDefaultStorage(fOCDBPath.Data());
1993 man->SetRun(fESD->GetRunNumber());
1996 AliFatal("CDB not set but needed by AliAnalysisTaskITSTrackingCheck");
1999 AliCDBEntry* eT=(AliCDBEntry*)man->Get("GRP/CTP/Config");
2001 fTrigConfig=(AliTriggerConfiguration*)eT->GetObject();
2003 if(!eT || !fTrigConfig) {
2004 AliError("Cannot retrieve CDB entry for GRP/CTP/Config");
2009 sddIsIn=fESD->IsDetectorInTriggerCluster("ITSSDD",fTrigConfig);
2013 //if(fESD->GetEventType()!=7) return;
2015 // *********** MC info ***************
2016 TArrayF mcVertex(3);
2017 mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
2018 Float_t dNchdy=-999.;
2021 AliESDVertex *vertexMC=0;
2024 AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
2025 if (!eventHandler) {
2026 Printf("ERROR: Could not retrieve MC event handler");
2030 AliMCEvent* mcEvent = eventHandler->MCEvent();
2032 Printf("ERROR: Could not retrieve MC event");
2036 stack = mcEvent->Stack();
2038 AliDebug(AliLog::kError, "Stack not available");
2042 AliHeader* header = mcEvent->Header();
2044 AliDebug(AliLog::kError, "Header not available");
2047 AliGenEventHeader* genHeader = header->GenEventHeader();
2048 genHeader->PrimaryVertex(mcVertex);
2049 //printf("MC vertex: %f %f %f\n",mcVertex[0],mcVertex[1],mcVertex[2]);
2051 Int_t ngenpart = (Int_t)stack->GetNtrack();
2052 //printf("# generated particles = %d\n",ngenpart);
2054 for(Int_t ip=0; ip<ngenpart; ip++) {
2055 part = (TParticle*)stack->Particle(ip);
2056 // keep only electrons, muons, pions, kaons and protons
2057 Int_t apdg = TMath::Abs(part->GetPdgCode());
2058 if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;
2059 // reject secondaries
2060 //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])));
2061 if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
2062 // reject incoming protons
2063 Double_t energy = part->Energy();
2064 if(energy>900.) continue;
2065 Double_t pz = part->Pz();
2067 if(energy-pz+1.e-13 > 0.) y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
2068 if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
2070 //printf("# primary particles = %7.1f\n",dNchdy);
2072 // *********** MC info ***************
2073 Double_t mcVtxPos[3]={mcVertex[0],mcVertex[1],mcVertex[2]},mcVtxSigma[3]={0,0,0};
2074 vertexMC = new AliESDVertex(mcVtxPos,mcVtxSigma);
2078 //------- event selection --------
2079 Int_t mincontrSPDvtx=1;
2080 Double_t maxzSPDvtx=5.;
2081 Double_t maxrSPDvtx=0.5;
2082 Bool_t useTRKvtx=kTRUE;
2083 Bool_t useSPDvtxifNotTRK=kTRUE;
2084 Int_t mincontrTRKvtx=1;
2085 //Double_t maxzTRKvtx=20.;
2086 //Double_t maxrTRKvtx=1.;
2087 //------- TPC track selection --------
2089 Double_t maxchi2perTPCcl=4.;
2090 Double_t minEtaInAcc=-0.8; // -0.8
2091 Double_t maxEtaInAcc=0.8; // 0.8
2092 Double_t maxdcaxy=2.4;//2.4;
2093 Double_t maxdcaz=3.2;//3.2;
2094 AliESDtrackCuts* esdtrackCutsTPC = new AliESDtrackCuts("esdtrackCutsTPC");
2095 esdtrackCutsTPC->SetMaxDCAToVertexXY(maxdcaxy);
2096 esdtrackCutsTPC->SetMaxDCAToVertexZ(maxdcaz);
2097 esdtrackCutsTPC->SetDCAToVertex2D(kTRUE);
2098 esdtrackCutsTPC->SetRequireSigmaToVertex(kFALSE);
2099 esdtrackCutsTPC->SetRequireTPCRefit(kFALSE);// cannot do it because status not copied in AliESDtrack::FillTPCOnlyTrack
2100 esdtrackCutsTPC->SetAcceptKinkDaughters(kFALSE);
2101 esdtrackCutsTPC->SetMinNClustersTPC(minclsTPC);
2102 esdtrackCutsTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
2103 esdtrackCutsTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
2104 SetESDtrackCutsTPC(esdtrackCutsTPC);
2105 //------- ITS+TPC track selection --------
2106 Double_t maxdcaxyITSTPC=0.2;
2107 Double_t maxdcazITSTPC=1.e6;
2108 AliESDtrackCuts* esdtrackCutsITSTPC = new AliESDtrackCuts("esdtrackCutsITSTPC");
2109 esdtrackCutsITSTPC->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
2110 esdtrackCutsITSTPC->SetMaxDCAToVertexZ(maxdcazITSTPC);
2111 esdtrackCutsITSTPC->SetDCAToVertex2D(kFALSE);
2112 esdtrackCutsITSTPC->SetRequireSigmaToVertex(kFALSE);
2113 esdtrackCutsITSTPC->SetRequireITSRefit(kTRUE);
2114 esdtrackCutsITSTPC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
2115 AliESDtrackCuts::kAny);
2116 esdtrackCutsITSTPC->SetAcceptKinkDaughters(kFALSE);
2117 esdtrackCutsITSTPC->SetMinNClustersTPC(minclsTPC);
2118 esdtrackCutsITSTPC->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
2119 esdtrackCutsITSTPC->SetEtaRange(minEtaInAcc,maxEtaInAcc);
2120 SetESDtrackCutsITSTPC(esdtrackCutsITSTPC);
2121 //---------------------------------------
2127 // ********** Trigger *****************
2128 ULong64_t triggerMask;
2129 ULong64_t spdFO = (1 << 14);
2130 ULong64_t v0left = (1 << 11);
2131 ULong64_t v0right = (1 << 12);
2133 triggerMask=fESD->GetTriggerMask();
2134 // MB1: SPDFO || V0L || V0R
2135 Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right)));
2137 //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
2138 // ************ Trigger ******************
2139 if(!eventTriggered) return;
2143 fHistNEvents->Fill(0);
2146 const AliESDVertex *spdv=fESD->GetPrimaryVertexSPD();
2147 // Select good SPD vertices
2148 TString spdvtitle=spdv->GetTitle();
2149 //if(!spdvtitle.Contains("3D")) return;
2150 if(fRequireSPDvtx) {
2151 if(spdv->GetNContributors()<mincontrSPDvtx ||
2152 TMath::Abs(spdv->GetZv())>maxzSPDvtx ||
2153 spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
2154 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2155 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2161 if(fRejPileupSPD) if(fESD->IsPileupFromSPD()) return;
2165 const AliESDVertex *vertexESD = fESD->GetPrimaryVertexTracks();
2166 //vertexESD->Print();
2168 if(spdvtitle.Contains("3D")) {
2169 fHistNEvents->Fill(1);
2170 fHistNEvents->Fill(3);
2172 fHistNEvents->Fill(2);
2173 fHistNEvents->Fill(3);
2176 if(vertexESD->GetStatus()) fHistNEvents->Fill(4);
2179 Int_t ntracks = fESD->GetNumberOfTracks();
2180 //printf("Tracks # = %d\n",fESD->GetNumberOfTracks());
2182 fHistNtracks->Fill(ntracks);
2183 // Post the data already here
2184 PostData(1, fOutput);
2186 FillNClustersModuleMap();
2188 Int_t idet,status; Float_t xloc,zloc;
2189 Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;
2190 Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;
2193 // loop on tracks to check if there are 7 ITS layers (upgrade)
2194 for(Int_t itr=0; itr<ntracks; itr++) {
2195 AliESDtrack *track = fESD->GetTrack(itr);
2196 if(track->HasPointOnITSLayer(6)) {
2203 for(Int_t itr=0; itr<ntracks; itr++) {
2204 AliESDtrack *track = fESD->GetTrack(itr);
2205 //if(track->Charge()>0) continue;
2206 // remove kink daughters
2207 if(track->GetKinkIndex(0)>0) continue;
2210 // remove tracks not reco in ITS or TPC
2211 if (!(track->GetStatus() & AliESDtrack::kITSin) &&
2212 !(track->GetStatus() & AliESDtrack::kTPCin)) continue;
2214 // check if tracks if flagged as from bc0 by TOF
2215 Bool_t isTOFbc0 = kFALSE;
2216 if(track->GetTOFBunchCrossing(fESD->GetMagneticField())/2==0) isTOFbc0=kTRUE;
2219 Bool_t isPrimary=kTRUE,isFromMat=kFALSE,isFromStrange=kFALSE;
2220 Double_t rProdVtx=0,zProdVtx=0;
2221 Int_t pdgTrk=0,pdgMoth=0;
2224 Int_t trkLabel = TMath::Abs(track->GetLabel());
2225 Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
2226 Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
2227 for(Int_t i=0;i<fNITSLayers;i++) {
2228 if(track->HasSharedPointOnITSLayer(i)) {
2230 if(i<(fNITSLayers-4)) hasSharedSPD=kTRUE;
2234 // check if it is primary
2235 if(fReadMC && stack) {
2236 isPrimary = stack->IsPhysicalPrimary(trkLabel);
2237 part = (TParticle*)stack->Particle(trkLabel);
2238 rProdVtx = TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]));
2239 zProdVtx = TMath::Abs(part->Vz()-mcVertex[2]);
2240 //if(rProdVtx<2.8) isPrimary=kTRUE; // this could be tried
2241 pdgTrk = TMath::Abs(part->GetPdgCode());
2242 if(part->GetFirstMother()>=0) {
2243 TParticle* mm=stack->Particle(part->GetFirstMother());
2244 if(mm) pdgMoth = TMath::Abs(mm->GetPdgCode());
2246 if(pdgMoth==310 || pdgMoth==321 || pdgMoth==3122 || pdgMoth==3312) isFromStrange=kTRUE;
2247 if(pdgMoth==211 || pdgMoth==22 || pdgMoth==2112 || pdgMoth==2212) isFromMat=kTRUE;
2248 nClsMCSPD = NumberOfITSClustersMC(trkLabel,240);
2251 Bool_t itsrefit=kFALSE,tpcrefit=kFALSE,itsfindable=kFALSE,itsfindableAcc=kFALSE;
2252 if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
2253 if ((track->GetStatus() & AliESDtrack::kTPCrefit)) tpcrefit=kTRUE;
2254 //if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcrefit=kTRUE;
2258 // remove tracks with kTPCin and not kTPCrefit
2259 if ((track->GetStatus() & AliESDtrack::kTPCin) && !tpcrefit) continue;
2261 AliESDtrack *trackTPC = 0;
2262 if(tpcrefit) trackTPC = AliESDtrackCuts::GetTPCOnlyTrack(fESD,itr);
2263 if(trackTPC) trackTPC->RelateToVertex(spdv,fESD->GetMagneticField(),100.); // relate it to the SPD vertex
2266 Int_t nclsITS = track->GetNcls(0);
2267 Int_t nclsSDDSSD = 0;
2268 Int_t nclsokbadoutinzITS = 0;
2269 Bool_t outInZ=kFALSE;
2271 for(Int_t layer=0; layer<fNITSLayers; layer++) {
2272 if(layer>=(fNITSLayers-4) && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
2273 if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
2274 if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
2275 track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
2276 if(status<0) continue;
2277 if(layer>=2) idet+=240; // add n SPD modules
2278 if(layer>=4) idet+=260; // add n SDD modules
2279 if(status==4) outInZ=kTRUE;
2281 if(layer==1 && tpcrefit && itsrefit) {
2283 track->GetXYZAt(rSPDouter,fESD->GetMagneticField(),xyz);
2285 if(idet%4==0) fHistZatSPDouter0ok->Fill(xyz[2]);
2286 if(idet%4==1) fHistZatSPDouter1ok->Fill(xyz[2]);
2287 if(idet%4==2) fHistZatSPDouter2ok->Fill(xyz[2]);
2288 if(idet%4==3) fHistZatSPDouter3ok->Fill(xyz[2]);
2290 if(status==2 || status==5) {
2291 if(idet%4==0) fHistZatSPDouter0notok->Fill(xyz[2]);
2292 if(idet%4==1) fHistZatSPDouter1notok->Fill(xyz[2]);
2293 if(idet%4==2) fHistZatSPDouter2notok->Fill(xyz[2]);
2294 if(idet%4==3) fHistZatSPDouter3notok->Fill(xyz[2]);
2297 // kill SDD clusters in MC
2298 if(fReadMC && (layer==2 || layer==3)) {
2299 Double_t qITS[4]; track->GetITSdEdxSamples(qITS);
2300 Double_t conv=3.34/5.43;
2301 if(layer==2 && status==1 && qITS[0]*conv < 30.) status=5;
2302 if(layer==3 && status==1 && qITS[1]*conv < 30.) status=5;
2305 if(trackTPC) if(!fESDtrackCutsTPC->AcceptTrack(trackTPC)) continue;
2306 if(track->Pt()>0.7 && track->Pt()<2.0) {
2308 fHistClusterMapITSMIok->Fill(layer);
2310 if(status==2) fHistClusterMapITSMIbad->Fill(layer);
2311 if(status==3) fHistClusterMapITSMIskipped->Fill(layer);
2312 if(status==4) fHistClusterMapITSMIoutinz->Fill(layer);
2313 if(status==5) fHistClusterMapITSMInocls->Fill(layer);
2314 if(status==6) fHistClusterMapITSMInorefit->Fill(layer);
2315 if(status==1 && !outInZ) fHistClusterMapModuleITSMIokInAcc->Fill(idet);
2316 if((status==2 || status==7) && !outInZ) fHistClusterMapModuleITSMIbadInAcc->Fill(idet);
2317 if(status==5 && !outInZ) fHistClusterMapModuleITSMInoclsInAcc->Fill(idet);
2321 if(status==1 || status==2 || status==4) {
2322 fHistClusterMapITSMIokoutinzbad->Fill(layer);
2323 nclsokbadoutinzITS++;
2325 /*if(idet>=80 && idet<120) {
2327 track->GetXYZAt(6.8,fESD->GetMagneticField(),xyz);
2328 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);
2330 if((layer==2 || layer==3) && status!=2 && status!=4) {
2332 //Int_t nClsInMod = NumberOfITSClusters(idet,xlocCls);
2333 fHistxlocSDDall->Fill(xloc);
2334 fHistzlocSDDall->Fill(zloc);
2335 if(status==1 /*nClsInMod>0*/) {
2336 fHistxlocSDDok->Fill(xloc);
2337 fHistxlocVSmodSDDok->Fill(idet,xloc);
2338 fHistzlocSDDok->Fill(zloc);
2343 if(TESTBIT(track->GetITSClusterMap(),layer)) {
2345 fHistClusterMapITSMI->Fill(layer);
2347 fHistClusterMapITSSA->Fill(layer);
2348 if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
2353 // TPC track findable in ITS
2354 if(tpcrefit && trackTPC) {
2355 if(fESDtrackCutsTPC->AcceptTrack(trackTPC)) {
2357 Double_t zAtSSDouter=100,zAtSDDouter=100,zAtSPDouter=100;
2358 track->GetZAt(rSSDouter,fESD->GetMagneticField(),zAtSSDouter);
2359 track->GetZAt(rSDDouter,fESD->GetMagneticField(),zAtSDDouter);
2360 track->GetZAt(rSPDouter,fESD->GetMagneticField(),zAtSPDouter);
2361 fHistPtTPC->Fill(track->Pt());
2362 if(TMath::Abs(zAtSSDouter)<1.*zSSDouter &&
2363 TMath::Abs(zAtSDDouter)<1.*zSDDouter &&
2364 TMath::Abs(zAtSPDouter)<1.*zSPDouter) {
2365 itsfindableAcc=kTRUE;
2366 fHistdEdxVSPtTPCInAcc->Fill(track->Pt(),track->GetTPCsignal());
2367 fHistPtTPCInAcc->Fill(track->Pt());
2368 if(fCheckSDDIsIn && sddIsIn) fHistPtTPCInAccwSDD->Fill(track->Pt());
2369 if(fCheckSDDIsIn && !sddIsIn) fHistPtTPCInAccwoSDD->Fill(track->Pt());
2371 fHistPtTPCInAccTOFbc0->Fill(track->Pt());
2372 if(fCheckSDDIsIn && sddIsIn) fHistPtTPCInAccTOFbc0wSDD->Fill(track->Pt());
2373 if(fCheckSDDIsIn && !sddIsIn) fHistPtTPCInAccTOFbc0woSDD->Fill(track->Pt());
2375 fHistTPCclsVSPtTPCInAcc->Fill(trackTPC->Pt(),trackTPC->GetNcls(1));
2376 fHistPtVSphiTPCInAcc->Fill(track->Phi(),track->Pt());
2377 if(!(track->GetStatus()&AliESDtrack::kTRDout)) fHistPtTPCInAccNoTRDout->Fill(track->Pt());
2378 if(!(track->GetStatus()&AliESDtrack::kTOFout)) fHistPtTPCInAccNoTOFout->Fill(track->Pt());
2379 fHistPtTPCInAccWithPtTPCAtVtx->Fill(trackTPC->Pt());
2380 Double_t pTPCinnerwall[3];
2381 track->GetInnerPxPyPz(pTPCinnerwall);
2382 Double_t ptTPCinnerwall=TMath::Sqrt(pTPCinnerwall[0]*pTPCinnerwall[0]+pTPCinnerwall[1]*pTPCinnerwall[1]);
2383 fHistPtTPCInAccWithPtTPCAtInnerWall->Fill(ptTPCinnerwall);
2384 if(track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kTOFout)) fHistDeltaPtTPC->Fill(trackTPC->P(),track->P()-trackTPC->P());
2386 fHistPhiTPCInAcc->Fill(track->Phi());
2387 fHistEtaTPCInAcc->Fill(track->Eta());
2390 fHistPtTPCInAccP->Fill(track->Pt());
2391 if(pdgTrk==321) fHistPtTPCInAccPfromStrange->Fill(track->Pt());
2393 fHistPtTPCInAccS->Fill(track->Pt());
2394 if(isFromMat) fHistPtTPCInAccSfromMat->Fill(track->Pt());
2395 if(isFromStrange) fHistPtTPCInAccSfromStrange->Fill(track->Pt());
2397 if(nClsMCSPD==2) fHistPtTPCInAccMCtwoSPD->Fill(track->Pt());
2398 if(nClsMCSPD>=1) fHistPtTPCInAccMConeSPD->Fill(track->Pt());
2400 //if(isPrimary) {fHistRProdVtxInAccP->Fill(rProdVtx);} else {fHistRProdVtxInAccS->Fill(rProdVtx);}
2407 // we need the vertex to compute the impact parameters
2408 if(!vertexESD) {delete trackTPC; trackTPC=0; continue;}
2409 if(!(vertexESD->GetStatus()) || vertexESD->GetNContributors()<mincontrTRKvtx) {
2410 if(useSPDvtxifNotTRK) {
2411 vertexESD = fESD->GetPrimaryVertexSPD();
2413 delete trackTPC; trackTPC=0; continue;
2418 //if(hasSharedSPD) continue;
2419 //if(track->GetITSFakeFlag()) continue;
2421 // track prolonged in ITS with different conditions
2424 if(nclsITS==7) fHistPtITSMI7->Fill(track->Pt());
2425 if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
2426 if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
2427 if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
2428 if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
2429 if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
2430 if(ConditionSPD(track)) {
2431 fHistPtITSMISPD->Fill(track->Pt());
2432 fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
2434 if(ConditionSPDone(track)) {
2435 fHistPtITSMIoneSPD->Fill(track->Pt());
2437 if(ConditionSPDtwo(track)) {
2438 fHistPtITSMItwoSPD->Fill(track->Pt());
2440 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
2442 if(itsfindableAcc) {
2444 fHistPtITSMI7InAcc->Fill(track->Pt());
2446 fHistPhiITSMI7InAcc->Fill(track->Phi());
2447 fHistEtaITSMI7InAcc->Fill(track->Eta());
2449 if(isFake) fHistPtITSMI7InAccFake->Fill(track->Pt());
2450 if(isPrimary) {fHistPtITSMI7InAccP->Fill(track->Pt());} else {fHistPtITSMI7InAccS->Fill(track->Pt());}
2453 fHistPtITSMI6InAcc->Fill(track->Pt());
2454 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI6InAccwSDD->Fill(track->Pt());
2455 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI6InAccwoSDD->Fill(track->Pt());
2457 fHistPtITSMI6InAccTOFbc0->Fill(track->Pt());
2458 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI6InAccTOFbc0wSDD->Fill(track->Pt());
2459 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI6InAccTOFbc0woSDD->Fill(track->Pt());
2462 fHistPhiITSMI6InAcc->Fill(track->Phi());
2463 fHistEtaITSMI6InAcc->Fill(track->Eta());
2465 if(isFake) fHistPtITSMI6InAccFake->Fill(track->Pt());
2466 if(isPrimary) {fHistPtITSMI6InAccP->Fill(track->Pt());} else {fHistPtITSMI6InAccS->Fill(track->Pt());}
2469 fHistPtITSMI5InAcc->Fill(track->Pt());
2470 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI5InAccwSDD->Fill(track->Pt());
2471 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI5InAccwoSDD->Fill(track->Pt());
2473 fHistPtITSMI5InAccTOFbc0->Fill(track->Pt());
2474 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI5InAccTOFbc0wSDD->Fill(track->Pt());
2475 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI5InAccTOFbc0woSDD->Fill(track->Pt());
2478 fHistPhiITSMI5InAcc->Fill(track->Phi());
2479 fHistEtaITSMI5InAcc->Fill(track->Eta());
2481 if(isFake) fHistPtITSMI5InAccFake->Fill(track->Pt());
2482 if(isPrimary) {fHistPtITSMI5InAccP->Fill(track->Pt());} else {fHistPtITSMI5InAccS->Fill(track->Pt());}
2485 fHistPtITSMI4InAcc->Fill(track->Pt());
2486 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI4InAccwSDD->Fill(track->Pt());
2487 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI4InAccwoSDD->Fill(track->Pt());
2489 fHistPtITSMI4InAccTOFbc0->Fill(track->Pt());
2490 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI4InAccTOFbc0wSDD->Fill(track->Pt());
2491 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI4InAccTOFbc0woSDD->Fill(track->Pt());
2494 fHistPhiITSMI4InAcc->Fill(track->Phi());
2495 fHistEtaITSMI4InAcc->Fill(track->Eta());
2497 if(isFake) fHistPtITSMI4InAccFake->Fill(track->Pt());
2498 if(isPrimary) {fHistPtITSMI4InAccP->Fill(track->Pt());} else {fHistPtITSMI4InAccS->Fill(track->Pt());}
2501 fHistPtITSMI3InAcc->Fill(track->Pt());
2502 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI3InAccwSDD->Fill(track->Pt());
2503 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI3InAccwoSDD->Fill(track->Pt());
2505 fHistPtITSMI3InAccTOFbc0->Fill(track->Pt());
2506 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI3InAccTOFbc0wSDD->Fill(track->Pt());
2507 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI3InAccTOFbc0woSDD->Fill(track->Pt());
2510 fHistPhiITSMI3InAcc->Fill(track->Phi());
2511 fHistEtaITSMI3InAcc->Fill(track->Eta());
2513 if(isFake) fHistPtITSMI3InAccFake->Fill(track->Pt());
2514 if(isPrimary) {fHistPtITSMI3InAccP->Fill(track->Pt());} else {fHistPtITSMI3InAccS->Fill(track->Pt());}
2517 fHistPtITSMI2InAcc->Fill(track->Pt());
2518 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI2InAccwSDD->Fill(track->Pt());
2519 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI2InAccwoSDD->Fill(track->Pt());
2521 fHistPtITSMI2InAccTOFbc0->Fill(track->Pt());
2522 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI2InAccTOFbc0wSDD->Fill(track->Pt());
2523 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMI2InAccTOFbc0woSDD->Fill(track->Pt());
2526 fHistPhiITSMI2InAcc->Fill(track->Phi());
2527 fHistEtaITSMI2InAcc->Fill(track->Eta());
2529 if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
2530 if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}
2532 if(ConditionSPD(track)) {
2533 fHistPtITSMISPDInAcc->Fill(track->Pt());
2534 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMISPDInAccwSDD->Fill(track->Pt());
2535 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMISPDInAccwoSDD->Fill(track->Pt());
2537 fHistPtITSMISPDInAccTOFbc0->Fill(track->Pt());
2538 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMISPDInAccTOFbc0wSDD->Fill(track->Pt());
2539 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMISPDInAccTOFbc0woSDD->Fill(track->Pt());
2542 fHistPhiITSMISPDInAcc->Fill(track->Phi());
2543 fHistEtaITSMISPDInAcc->Fill(track->Eta());
2545 if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
2546 if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}
2548 if(ConditionSPDtwo(track)) {
2549 fHistPtITSMItwoSPDInAcc->Fill(track->Pt());
2551 fHistPhiITSMItwoSPDInAcc->Fill(track->Phi());
2552 fHistEtaITSMItwoSPDInAcc->Fill(track->Eta());
2554 if(isFake) fHistPtITSMItwoSPDInAccFake->Fill(track->Pt());
2555 if(isPrimary) {fHistPtITSMItwoSPDInAccP->Fill(track->Pt());} else {fHistPtITSMItwoSPDInAccS->Fill(track->Pt());}
2557 if(ConditionSPDone(track)) {
2558 fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
2559 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMIoneSPDInAccwSDD->Fill(track->Pt());
2560 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMIoneSPDInAccwoSDD->Fill(track->Pt());
2562 fHistPtITSMIoneSPDInAccTOFbc0->Fill(track->Pt());
2563 if(fCheckSDDIsIn && sddIsIn) fHistPtITSMIoneSPDInAccTOFbc0wSDD->Fill(track->Pt());
2564 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMIoneSPDInAccTOFbc0woSDD->Fill(track->Pt());
2567 fHistPhiITSMIoneSPDInAcc->Fill(track->Phi());
2568 fHistEtaITSMIoneSPDInAcc->Fill(track->Eta());
2570 if(track->HasSharedPointOnITSLayer(0) ||
2571 track->HasSharedPointOnITSLayer(1) ||
2572 track->HasSharedPointOnITSLayer(2) ||
2573 track->HasSharedPointOnITSLayer(3) ||
2574 track->HasSharedPointOnITSLayer(4) ||
2575 track->HasSharedPointOnITSLayer(5)) {
2576 fHistPtITSMIoneSPDInAccShared->Fill(track->Pt());
2577 if(isFake) fHistPtITSMIoneSPDInAccSharedFake->Fill(track->Pt());
2579 if(track->HasSharedPointOnITSLayer(0) || track->HasSharedPointOnITSLayer(1)) {
2580 fHistPtITSMIoneSPDInAccSharedSPD->Fill(track->Pt());
2581 if(isFake) fHistPtITSMIoneSPDInAccSharedSPDFake->Fill(track->Pt());
2583 if(track->HasSharedPointOnITSLayer(0)) fHistPtITSMISPD1InAccShared->Fill(track->Pt());
2584 if(track->HasSharedPointOnITSLayer(1)) fHistPtITSMISPD2InAccShared->Fill(track->Pt());
2587 Float_t chi2redITS = 0.;
2588 if(track->GetNcls(0)>0) chi2redITS = track->GetITSchi2()/(Float_t)track->GetNcls(0);
2590 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2NonFakePt02->Fill(chi2redITS);
2591 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2NonFakePt05->Fill(chi2redITS);
2592 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2NonFakePt1->Fill(chi2redITS);
2594 fHistPtITSMIoneSPDInAccFake->Fill(track->Pt());
2595 if(track->Pt()>0.18 && track->Pt()<0.25) fHistITSRedChi2FakePt02->Fill(chi2redITS);
2596 if(track->Pt()>0.4 && track->Pt()<0.6) fHistITSRedChi2FakePt05->Fill(chi2redITS);
2597 if(track->Pt()>0.9 && track->Pt()<1.5) fHistITSRedChi2FakePt1->Fill(chi2redITS);
2599 if(nclsSDDSSD>=3) fHistPtITSMIoneSPDthreeSDDSSDInAcc->Fill(track->Pt());
2601 if(isPrimary) {fHistPtITSMIoneSPDInAccP->Fill(track->Pt());} else {fHistPtITSMIoneSPDInAccS->Fill(track->Pt());}
2603 if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6InAcc->Fill(track->Pt());
2604 if(nclsokbadoutinzITS==5) fHistPtITSMIokbadoutinz5InAcc->Fill(track->Pt());
2605 if(nclsokbadoutinzITS==4) fHistPtITSMIokbadoutinz4InAcc->Fill(track->Pt());
2606 if(nclsokbadoutinzITS==6 && track->Pt()>1) fHistPhiITSMIokbadoutinz6InAcc->Fill(track->Phi());
2611 fHistNclsITSMI->Fill(nclsITS);
2613 fHistNclsITSSA->Fill(nclsITS);
2614 if(!outInZ) fHistNclsITSSAInAcc->Fill(nclsITS);
2618 if((tpcrefit && fUseITSSAforNtuples) || // only ITS-SA for ntuples
2619 (!tpcrefit && !fUseITSSAforNtuples)) // only ITS-TPC for ntuples
2620 { delete trackTPC; trackTPC=0; continue; }
2622 // impact parameter to VertexTracks
2623 Float_t d0z0[2]={0,0},covd0z0[3]={0,0,0};
2624 Double_t d0z0TPC[2]={0,0},covd0z0TPC[3]={0,0,0};
2626 if(!track->RelateToVertex(vertexESD,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2628 //if(!track->RelateToVertex(vertexMC,fESD->GetMagneticField(),kVeryBig)) continue;
2629 if(!track->RelateToVertex(spdv,fESD->GetMagneticField(),kVeryBig)) { delete trackTPC; trackTPC=0; continue; }
2631 track->GetImpactParameters(d0z0,covd0z0);
2632 if(trackTPC) trackTPC->PropagateToDCA(spdv,fESD->GetMagneticField(),kVeryBig,d0z0TPC,covd0z0TPC);
2633 if(covd0z0[0]<0. || covd0z0[2]<0. || covd0z0TPC[0]<0. || covd0z0TPC[2]<0.) { delete trackTPC; trackTPC=0; continue; }
2636 // track that passes final ITS+TPC cuts
2637 if(itsfindableAcc && fESDtrackCutsITSTPC->AcceptTrack(track)) {
2638 fHistPtITSTPCsel->Fill(track->Pt());
2639 if(fCheckSDDIsIn && sddIsIn) fHistPtITSTPCselwSDD->Fill(track->Pt());
2640 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSTPCselwoSDD->Fill(track->Pt());
2642 fHistPtITSTPCselTOFbc0->Fill(track->Pt());
2643 if(fCheckSDDIsIn && sddIsIn) fHistPtITSTPCselTOFbc0wSDD->Fill(track->Pt());
2644 if(fCheckSDDIsIn && !sddIsIn) fHistPtITSTPCselTOFbc0woSDD->Fill(track->Pt());
2646 if(isFake) fHistPtITSTPCselFake->Fill(track->Pt());
2647 fHistdEdxVSPtITSTPCsel->Fill(track->Pt(),track->GetITSsignal());
2649 fHistPtITSTPCselP->Fill(track->Pt());
2650 if(pdgTrk==321) fHistPtITSTPCselPfromStrange->Fill(track->Pt());
2652 fHistPtITSTPCselS->Fill(track->Pt());
2653 if(isFromMat) fHistPtITSTPCselSfromMat->Fill(track->Pt());
2654 if(isFromStrange) fHistPtITSTPCselSfromStrange->Fill(track->Pt());
2660 if(((!fUseITSSAforNtuples&&itsfindableAcc) || fUseITSSAforNtuples) /*&& track->Charge()>0*/) {
2661 if(track->Pt()>0.150 && track->Pt()<0.200) {
2663 fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
2664 if(ConditionSPD(track) && itsrefit)
2665 fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
2666 if((ConditionSPDone(track)) && itsrefit) {
2667 //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
2668 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
2669 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
2672 fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
2673 if(ConditionSPD(track) && itsrefit)
2674 fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
2675 if((ConditionSPDone(track)) && itsrefit) {
2676 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2677 fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
2678 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
2679 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS150200fromMat->Fill(d0z0[0]);
2681 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS150200->Fill(d0z0[1]);
2682 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth150200->Fill(pdgMoth);
2686 if(track->Pt()>0.350 && track->Pt()<0.450) {
2688 if((ConditionSPDone(track)) && itsrefit) {
2689 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
2692 if((ConditionSPDone(track)) && itsrefit) {
2693 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2694 fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
2695 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
2696 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS350450fromMat->Fill(d0z0[0]);
2701 if(track->Pt()>0.500 && track->Pt()<0.700) {
2703 fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
2704 if(ConditionSPD(track) && itsrefit)
2705 fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
2706 if((ConditionSPDone(track)) && itsrefit) {
2707 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
2708 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
2711 fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
2712 if(ConditionSPD(track) && itsrefit)
2713 fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
2714 if((ConditionSPDone(track)) && itsrefit) {
2715 fHistPDGTrk->Fill(pdgTrk);
2716 fHistPDGMoth->Fill(pdgMoth);
2717 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
2718 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2719 fHistd0rphiITSMIoneSPDInAccS500700->Fill(d0z0[0]);
2720 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS500700fromStrange->Fill(d0z0[0]);
2721 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS500700fromMat->Fill(d0z0[0]);
2723 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS500700->Fill(d0z0[1]);
2724 if(pdgMoth==310) fHistd0rphiITSMIoneSPDInAccS500700from310->Fill(d0z0[0]);
2725 if(pdgMoth==321) fHistd0rphiITSMIoneSPDInAccS500700from321->Fill(d0z0[0]);
2726 if(pdgMoth==3122) fHistd0rphiITSMIoneSPDInAccS500700from3122->Fill(d0z0[0]);
2727 if(pdgMoth==211) fHistd0rphiITSMIoneSPDInAccS500700from211->Fill(d0z0[0]);
2728 if(pdgMoth==22) fHistd0rphiITSMIoneSPDInAccS500700from22->Fill(d0z0[0]);
2729 if(pdgMoth==211 && TMath::Abs(d0z0[0])>0.5) fHistRProdVtxInAccS->Fill(rProdVtx);
2733 if(track->Pt()>1.000 && track->Pt()<1.500) {
2735 fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
2736 fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
2738 if(ConditionSPD(track) && itsrefit)
2739 fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
2740 if((ConditionSPDone(track)) && itsrefit) {
2741 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
2742 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
2743 fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
2744 fHistd0rphiVSetaITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Eta());
2747 fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
2748 if(ConditionSPD(track) && itsrefit)
2749 fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
2750 if((ConditionSPDone(track)) && itsrefit) {
2751 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2752 fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
2753 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
2754 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS10001500fromMat->Fill(d0z0[0]);
2756 if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccS10001500->Fill(d0z0[1]);
2757 if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth10001500->Fill(pdgMoth);
2761 if(track->Pt()>2.500 && track->Pt()<4.000) {
2763 if((ConditionSPDone(track)) && itsrefit) {
2764 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
2767 if((ConditionSPDone(track)) && itsrefit) {
2768 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2769 fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
2770 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
2771 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS25004000fromMat->Fill(d0z0[0]);
2776 if(track->Pt()>4.000 && track->Pt()<8.000) {
2778 if((ConditionSPDone(track)) && itsrefit) {
2779 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
2782 if((ConditionSPDone(track)) && itsrefit) {
2783 if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
2784 fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
2785 if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
2786 if(isFromMat) fHistd0rphiITSMIoneSPDInAccS40008000fromMat->Fill(d0z0[0]);
2794 if(trackTPC) { delete trackTPC; trackTPC=0; }
2796 // encode ITS cluster map, including MC info
2797 Int_t iITSflag=MakeITSflag(track);
2799 // if MC info is available: get particle properties
2800 Float_t ptMC=-999.,pdgMC=-999.,d0MC=-999.;
2801 Double_t d0z0MCv[2]={-999.,-999.},covd0z0MCv[3]={1.,1.,1.};
2803 part = (TParticle*)stack->Particle(trkLabel);
2805 pdgMC=part->GetPdgCode();
2806 d0MC=ParticleImpParMC(part,vertexMC,0.1*fESD->GetMagneticField());
2807 track->PropagateToDCA(vertexMC,fESD->GetMagneticField(),100.,d0z0MCv,covd0z0MCv);
2808 if(covd0z0MCv[0]<0. || covd0z0MCv[2]<0.) continue;
2811 Double_t sigmad0MCv=TMath::Sqrt(covd0z0MCv[0]);
2812 if(!itsrefit) sigmad0MCv *= -1.;
2813 Float_t isPrimaryFl = (isPrimary ? 1. : 0.);
2814 Float_t isTPCSelFl = (itsfindableAcc ? 1. : 0.);
2816 // fill ntuple with track properties
2817 if(fFillNtuples && SelectPt(track->Pt())) {
2818 Float_t fillArray[22]={static_cast<Float_t>(track->Pt()),static_cast<Float_t>(track->Eta()),static_cast<Float_t>(track->Phi()),static_cast<Float_t>(d0z0[0]),static_cast<Float_t>(d0z0[1]),static_cast<Float_t>(TMath::Sqrt(covd0z0[0])),static_cast<Float_t>(TMath::Sqrt(covd0z0[2])),ptMC,static_cast<Float_t>(pdgMC),static_cast<Float_t>(pdgMoth),static_cast<Float_t>(d0MC),static_cast<Float_t>(d0z0MCv[0]),static_cast<Float_t>(d0z0MCv[1]),static_cast<Float_t>(sigmad0MCv),static_cast<Float_t>(TMath::Sqrt(covd0z0MCv[2])),static_cast<Float_t>(iITSflag),static_cast<Float_t>(isPrimaryFl),static_cast<Float_t>(isTPCSelFl)};
2819 fNtupleESDTracks->Fill(fillArray);
2822 //---------------------------------------------
2823 // AliTrackPoints: alignment checks
2825 if(!fFillNtuples) continue;
2827 const AliTrackPointArray *array = track->GetTrackPointArray();
2828 if(!array) continue;
2829 AliTrackPoint point;
2830 Int_t pointOnLayer[6]={0,0,0,0,0,0};
2831 Int_t indexAssociated[6]={-1,-1,-1,-1,-1,-1},indexExtra=-1;
2832 Bool_t extra=kFALSE;
2833 Int_t layerId,layerExtra=-1;
2834 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
2835 array->GetPoint(point,ipt);
2836 Float_t r = TMath::Sqrt(point.GetX()*point.GetX()+point.GetY()*point.GetY());
2840 } else if(r>6 && r<8) {
2842 } else if(r>8 && r<18) {
2844 } else if(r>18 && r<30) {
2846 } else if(r>30 && r<40) {
2848 } else if(r>40 && r<50) {
2855 if(layerId>5) continue;
2857 if(!point.IsExtra()) {
2858 pointOnLayer[layerId]++;
2859 indexAssociated[layerId]=ipt;
2861 // this is an extra cluster
2866 } // end loop on AliTrackPoints
2868 TString vtitle = spdv->GetTitle();
2869 if(!vtitle.Contains("3D")) continue;
2872 if(indexAssociated[0]>=0 && indexAssociated[1]>=0) {
2873 AliTrackPoint pointSPD1,pointSPD2;
2874 array->GetPoint(pointSPD1,indexAssociated[0]);
2875 array->GetPoint(pointSPD2,indexAssociated[1]);
2876 Float_t phi=TMath::ATan2(pointSPD2.GetY()-pointSPD1.GetY(),pointSPD2.GetX()-pointSPD1.GetX());
2877 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())));
2878 Float_t theta=0.5*TMath::Pi()-lambda;
2879 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);
2880 AliESDtrack tracklet(&particle);
2882 // distance to primary SPD (only if 3D and high multiplicity)
2883 if(spdv->GetNContributors()>10) {
2884 tracklet.GetDZ(spdv->GetXv(),spdv->GetYv(),spdv->GetZv(),0,dz);
2885 //tracklet.GetDZ(-0.07,0.25,spdv->GetZv(),0,dz);
2886 fNtupleITSAlignSPDTracklets->Fill(phi,theta,0.5*(pointSPD1.GetZ()+pointSPD2.GetZ()),dz[0],dz[1],track->Pt());
2890 // distance to extra
2891 if(extra && spdv->GetNContributors()>4 && indexAssociated[layerExtra]>-1) {
2892 AliTrackPoint pointExtra,pointAssociated;
2893 array->GetPoint(pointAssociated,indexAssociated[layerExtra]);
2894 array->GetPoint(pointExtra,indexExtra);
2895 Float_t phiExtra = TMath::ATan2(pointExtra.GetY()-spdv->GetYv(),pointExtra.GetX()-spdv->GetXv());
2896 Float_t phiAssociated = TMath::ATan2(pointAssociated.GetY()-spdv->GetYv(),pointAssociated.GetX()-spdv->GetXv());
2897 Float_t rExtra = TMath::Sqrt((pointExtra.GetX()-spdv->GetXv())*(pointExtra.GetX()-spdv->GetXv())+(pointExtra.GetY()-spdv->GetYv())*(pointExtra.GetY()-spdv->GetYv()));
2898 Float_t rAssociated = TMath::Sqrt((pointAssociated.GetX()-spdv->GetXv())*(pointAssociated.GetX()-spdv->GetXv())+(pointAssociated.GetY()-spdv->GetYv())*(pointAssociated.GetY()-spdv->GetYv()));
2900 dzExtra[0] = (phiExtra-phiAssociated)*0.5*(rExtra+rAssociated);
2901 dzExtra[1] = pointExtra.GetZ()-pointAssociated.GetZ()-(rExtra-rAssociated)*(pointAssociated.GetZ()-spdv->GetZv())/rAssociated;
2902 Float_t xlocExtra=-100.,zlocExtra=-100.;
2903 fNtupleITSAlignExtra->Fill(layerExtra,pointExtra.GetX(),pointExtra.GetY(),pointExtra.GetZ(),dzExtra[0],dzExtra[1],xlocExtra,zlocExtra,nclsITS,track->Pt());
2906 if(trackTPC) { delete trackTPC; trackTPC=0; }
2907 } // end loop on tracks
2909 if(vertexMC) { delete vertexMC; vertexMC=0; }
2911 delete esdtrackCutsTPC; esdtrackCutsTPC=0;
2912 delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
2914 PostData(1, fOutput);
2919 //________________________________________________________________________
2920 void AliAnalysisTaskITSTrackingCheck::Terminate(Option_t *)
2922 // Draw result to the screen
2923 // Called once at the end of the query
2924 fOutput = dynamic_cast<TList*> (GetOutputData(1));
2926 Printf("ERROR: fOutput not available");
2929 fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
2930 fHistNEventsFrac = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEventsFrac"));
2931 if(fHistNEvents && fHistNEventsFrac) {
2932 for(Int_t ibin=2; ibin<=fHistNEvents->GetNbinsX(); ibin++) {
2933 if(fHistNEvents->GetBinContent(2)) fHistNEventsFrac->SetBinContent(ibin,fHistNEvents->GetBinContent(ibin)/fHistNEvents->GetBinContent(2));
2939 //---------------------------------------------------------------------------
2940 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t nModules) const
2943 // Return number of ITS clusters produced by MC particle with given label
2946 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2947 if(!esdHRP) return -1;
2948 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2949 if(!cTree) return -1;
2950 TClonesArray *clusters=0;
2951 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2952 if(!clusters) return -1;
2954 AliITSRecPoint *c=0;
2955 Int_t i,n,icl,lay,ilab;
2956 Int_t ncls[7]={0,0,0,0,0,0,0};
2959 for(i=0; i<nModules; i++) {
2961 n=clusters->GetEntriesFast();
2962 for (icl=0; icl<n; icl++) {
2963 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
2965 //printf("mod %d lay %d xloc %f zloc %f\n",i,lay,c->GetDetLocalX(),c->GetDetLocalZ());
2966 for(ilab=0;ilab<3;ilab++) {
2967 if(c->GetLabel(ilab)==label) ncls[lay]++;
2971 for(i=0;i<fNITSLayers;i++) {
2972 //printf("%d\n",ncls[i]);
2973 if(ncls[i]) nclstot++;
2978 //---------------------------------------------------------------------------
2979 Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClusters(Int_t idet,Float_t &xloc) const
2982 // Return number of ITS clusters produced by MC particle with given label
2985 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2986 if(!esdHRP) return -1;
2987 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
2988 if(!cTree) return -1;
2989 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
2990 cTree->SetBranchAddress("ITSRecPoints",&clusters);
2991 if(!clusters) return -1;
2993 AliITSRecPoint *c=0;
2996 cTree->GetEvent(idet);
2997 n=clusters->GetEntriesFast();
3000 for (icl=0; icl<n; icl++) {
3001 c=(AliITSRecPoint*)clusters->UncheckedAt(icl);
3002 xloc = c->GetDetLocalX();
3007 //---------------------------------------------------------------------------
3008 void AliAnalysisTaskITSTrackingCheck::FillNClustersModuleMap()
3011 // Number of clusters per module
3014 AliESDInputHandlerRP *esdHRP = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
3016 TTree *cTree = (TTree*)esdHRP->GetTreeR("ITS");
3018 TClonesArray *clusters=0; // new TClonesArray("AliITSRecPoint",10000);
3019 cTree->SetBranchAddress("ITSRecPoints",&clusters);
3021 for(Int_t idet=0;idet<2198;idet++) {
3022 cTree->GetEvent(idet);
3023 if(!clusters) continue;
3024 fHistNClustersMapModule->SetBinContent(idet,clusters->GetEntriesFast());
3029 //---------------------------------------------------------------------------
3030 Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
3035 // Return the MC value of the impact parameter
3038 bzT = TMath::Abs(bzT);
3041 Double_t vx=part->Vx()-vert->GetX();
3042 Double_t vy=part->Vy()-vert->GetY();
3044 Double_t pt=part->Pt();
3045 Double_t px=part->Px();
3046 Double_t py=part->Py();
3047 Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
3048 if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
3051 if(TMath::Abs(px)<0.000001) px=0.000001;
3052 Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
3053 Double_t center[3],d0;
3054 center[0]=vx-(1./charge)*rAnd*(py/pt);
3055 center[1]=vy+(1./charge)*rAnd*(px/pt);
3056 center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
3057 d0 = -center[2]+rAnd;
3059 //if(pt>29) printf("%f %f %f %d %f %f %f %f %f\n",px,py,pt,part->GetPdgCode(),center[0],center[1],center[2],rAnd,d0);
3063 //---------------------------------------------------------------------------
3064 Bool_t AliAnalysisTaskITSTrackingCheck::SelectPt(Double_t pt)
3067 // Keep only tracks in given pt bins
3069 Double_t ptlower[11]={0.15,0.29,0.49,0.75,0.9,1.9,3.5,6.5, 9.,19.,27.};
3070 Double_t ptupper[11]={0.16,0.31,0.51,0.85,1.1,2.1,4.5,7.5,11.,21.,33.};
3072 for(Int_t i=0; i<11; i++) {
3073 if(pt>ptlower[i] && pt<ptupper[i]) {
3074 fCountsPerPtBin[i]++;
3081 //---------------------------------------------------------------------------
3082 Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
3084 // ITSflag takes the value 0 if the track has no cluster assigned in the SPDs,
3085 // 1 (2) if one cluster is assigned in SPD1(2), 3 if two clusters are present.
3086 // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
3089 if(track->HasPointOnITSLayer(0)) iITSflag+=1;
3090 if(track->HasPointOnITSLayer(fNITSLayers-5)) iITSflag+=2;
3091 if(track->HasPointOnITSLayer(fNITSLayers-4)) iITSflag+=10;
3092 if(track->HasPointOnITSLayer(fNITSLayers-3)) iITSflag+=20;
3093 if(track->HasPointOnITSLayer(fNITSLayers-2)) iITSflag+=100;
3094 if(track->HasPointOnITSLayer(fNITSLayers-1)) iITSflag+=200;
3096 // number of associated ITS clusters
3097 iITSflag += 1000*track->GetNcls(0);
3099 // number of associated TPC clusters
3100 iITSflag += 100000*track->GetNcls(1);
3102 // if MC info and is available
3103 // write the number of ITS clusters produced by this track
3105 if(fReadMC && fReadRPLabels) {
3106 nITSclsMC = NumberOfITSClustersMC(TMath::Abs(track->GetLabel()));
3107 if(nITSclsMC>=0) iITSflag += 10000*nITSclsMC;
3109 if(track->GetLabel()<0) iITSflag *= -1;
3114 //---------------------------------------------------------------------------
3115 Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
3118 // check if events is in the required multiplicity range
3121 const AliMultiplicity *alimult = fESD->GetMultiplicity();
3123 Int_t nclsSPDouter=0;
3125 ntrklets = alimult->GetNumberOfTracklets();
3126 nclsSPDouter = alimult->GetNumberOfITSClusters(1);
3129 if(nclsSPDouter<fMinMult || nclsSPDouter>fMaxMult) return kFALSE;
3134 //---------------------------------------------------------------------------
3135 Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPD(AliESDtrack *track) const
3138 // check if track has points in all inner barrel layers
3142 if(NPointsInnerBarrel(track)==(fNITSLayers-4)) return kTRUE;
3145 //---------------------------------------------------------------------------
3146 Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPDone(AliESDtrack *track) const
3149 // check if track has points in at least one inner barrel layer
3153 if(NPointsInnerBarrel(track)>=1) return kTRUE;
3156 //---------------------------------------------------------------------------
3157 Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPDtwo(AliESDtrack *track) const
3160 // check if track has points in at least two inner barrel layers
3164 if(NPointsInnerBarrel(track)>=2) return kTRUE;
3167 //---------------------------------------------------------------------------
3168 Int_t AliAnalysisTaskITSTrackingCheck::NPointsInnerBarrel(AliESDtrack *track) const
3171 // N of points in inner barrel layers
3175 for(Int_t i=0; i<(fNITSLayers-4); i++) {
3176 if(track->HasPointOnITSLayer(i)) n++;