]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliCentralitySelectionTask.cxx
Added V0A23 (V0 rings 2-3), V0C01 (V0 rings 0-1) and V0S = V0A23+V0C01
[u/mrichter/AliRoot.git] / ANALYSIS / AliCentralitySelectionTask.cxx
CommitLineData
01974bd1 1/**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16//*****************************************************
17// Class AliCentralitySelectionTask
18// Class to analyze determine centrality
19// author: Alberica Toia
20//*****************************************************
21
22#include "AliCentralitySelectionTask.h"
23
24#include <TTree.h>
25#include <TList.h>
26#include <TH1F.h>
27#include <TH2F.h>
28#include <TF1.h>
29#include <TProfile.h>
30#include <TFile.h>
31#include <TObjString.h>
32#include <TString.h>
33#include <TCanvas.h>
34#include <TROOT.h>
35#include <TDirectory.h>
36#include <TSystem.h>
37#include <iostream>
38
39#include "AliAnalysisManager.h"
40#include "AliHeader.h"
41#include "AliVEvent.h"
42#include "AliESD.h"
43#include "AliESDEvent.h"
44#include "AliESDHeader.h"
45#include "AliESDInputHandler.h"
46#include "AliESDZDC.h"
47#include "AliESDFMD.h"
48#include "AliESDTZERO.h"
49#include "AliESDVZERO.h"
50#include "AliESDtrackCuts.h"
51#include "AliESDVertex.h"
52#include "AliCentrality.h"
53#include "AliOADBCentrality.h"
54#include "AliOADBContainer.h"
55#include "AliMultiplicity.h"
56#include "AliAODHandler.h"
57#include "AliAODHeader.h"
58#include "AliAODEvent.h"
59#include "AliAODVertex.h"
60#include "AliAODVZERO.h"
61#include "AliAODTracklets.h"
62#include "AliAODMCHeader.h"
63#include "AliMCEventHandler.h"
64#include "AliMCEvent.h"
65#include "AliAODMCParticle.h"
66#include "AliMCParticle.h"
67#include "AliStack.h"
68#include "AliAnalysisTaskSE.h"
69#include "AliGenEventHeader.h"
70#include "AliGenHijingEventHeader.h"
8432b617 71#include "AliGenDPMjetEventHeader.h"
72#include "AliGenCocktailEventHeader.h"
01974bd1 73#include "AliPhysicsSelectionTask.h"
74#include "AliPhysicsSelection.h"
75#include "AliBackgroundSelection.h"
76#include "AliESDUtils.h"
77
78ClassImp(AliCentralitySelectionTask)
79
80
81//________________________________________________________________________
82AliCentralitySelectionTask::AliCentralitySelectionTask():
83AliAnalysisTaskSE(),
84 fAnalysisInput("ESD"),
85 fIsMCInput(kFALSE),
86 fCurrentRun(-1),
87 fUseScaling(0),
88 fUseCleaning(0),
89 fFillHistos(0),
90 fV0MScaleFactor(0),
91 fSPDScaleFactor(0),
92 fTPCScaleFactor(0),
93 fV0MScaleFactorMC(0),
94 fV0MSPDOutlierPar0(0),
95 fV0MSPDOutlierPar1(0),
96 fV0MTPCOutlierPar0(0),
97 fV0MTPCOutlierPar1(0),
98 fV0MSPDSigmaOutlierPar0(0),
99 fV0MSPDSigmaOutlierPar1(0),
100 fV0MSPDSigmaOutlierPar2(0),
101 fV0MTPCSigmaOutlierPar0(0),
102 fV0MTPCSigmaOutlierPar1(0),
103 fV0MTPCSigmaOutlierPar2(0),
104 fV0MZDCOutlierPar0(0),
105 fV0MZDCOutlierPar1(0),
106 fV0MZDCEcalOutlierPar0(0),
107 fV0MZDCEcalOutlierPar1(0),
108 fTrackCuts(0),
2d27827d 109 fEsdTrackCuts(0),
110 fEsdTrackCutsExtra1(0),
111 fEsdTrackCutsExtra2(0),
01974bd1 112 fZVCut(10),
113 fOutliersCut(5),
114 fQuality(999),
115 fIsSelected(0),
116 fMSL(0),
117 fMSH(0),
118 fMUL(0),
119 fMLL(0),
120 fEJE(0),
121 fEGA(0),
122 fPHS(0),
123 fMB(0),
124 fCVHN(0),
125 fCVLN(0),
126 fCVHNbit(0),
127 fCVLNbit(0),
128 fCCENT(0),
129 fCSEMI(0),
130 fCCENTbit(0),
131 fCSEMIbit(0),
132 fCentV0M(0),
133 fCentV0A(0),
9113c527 134 fCentV0A0(0),
2d12adde 135 fCentV0A123(0),
01974bd1 136 fCentV0C(0),
26f02c2c 137 fCentV0A23(0),
138 fCentV0C01(0),
139 fCentV0S(0),
f9a774f9 140 fCentV0MEq(0),
141 fCentV0AEq(0),
142 fCentV0CEq(0),
01974bd1 143 fCentFMD(0),
144 fCentTRK(0),
145 fCentTKL(0),
146 fCentCL0(0),
147 fCentCL1(0),
148 fCentCND(0),
99029fba 149 fCentZNA(0),
f9a774f9 150 fCentZNC(0),
3a19f64f 151 fCentZPA(0),
152 fCentZPC(0),
39a3e400 153 fCentNPA(0),
01974bd1 154 fCentV0MvsFMD(0),
155 fCentTKLvsV0M(0),
156 fCentZEMvsZDC(0),
39a3e400 157 fCentV0Mtrue(0),
158 fCentV0Atrue(0),
159 fCentV0Ctrue(0),
f9a774f9 160 fCentV0MEqtrue(0),
161 fCentV0AEqtrue(0),
162 fCentV0CEqtrue(0),
39a3e400 163 fCentFMDtrue(0),
164 fCentTRKtrue(0),
165 fCentTKLtrue(0),
166 fCentCL0true(0),
167 fCentCL1true(0),
168 fCentCNDtrue(0),
169 fCentZNAtrue(0),
f9a774f9 170 fCentZNCtrue(0),
3a19f64f 171 fCentZPAtrue(0),
172 fCentZPCtrue(0),
01974bd1 173 fHtempV0M(0),
174 fHtempV0A(0),
9113c527 175 fHtempV0A0(0),
2d12adde 176 fHtempV0A123(0),
01974bd1 177 fHtempV0C(0),
26f02c2c 178 fHtempV0A23(0),
179 fHtempV0C01(0),
180 fHtempV0S(0),
f9a774f9 181 fHtempV0MEq(0),
182 fHtempV0AEq(0),
183 fHtempV0CEq(0),
01974bd1 184 fHtempFMD(0),
185 fHtempTRK(0),
186 fHtempTKL(0),
187 fHtempCL0(0),
188 fHtempCL1(0),
189 fHtempCND(0),
99029fba 190 fHtempZNA(0),
f9a774f9 191 fHtempZNC(0),
3a19f64f 192 fHtempZPA(0),
193 fHtempZPC(0),
01974bd1 194 fHtempV0MvsFMD(0),
195 fHtempTKLvsV0M(0),
196 fHtempZEMvsZDC(0),
39a3e400 197 fHtempNPA(0),
198 fHtempV0Mtrue(0),
199 fHtempV0Atrue(0),
200 fHtempV0Ctrue(0),
f9a774f9 201 fHtempV0MEqtrue(0),
202 fHtempV0AEqtrue(0),
203 fHtempV0CEqtrue(0),
39a3e400 204 fHtempFMDtrue(0),
205 fHtempTRKtrue(0),
206 fHtempTKLtrue(0),
207 fHtempCL0true(0),
208 fHtempCL1true(0),
209 fHtempCNDtrue(0),
210 fHtempZNAtrue(0),
f9a774f9 211 fHtempZNCtrue(0),
3a19f64f 212 fHtempZPAtrue(0),
213 fHtempZPCtrue(0),
01974bd1 214 fOutputList(0),
39a3e400 215 fHOutCentV0M(0),
216 fHOutCentV0A(0),
9113c527 217 fHOutCentV0A0(0),
2d12adde 218 fHOutCentV0A123(0),
39a3e400 219 fHOutCentV0C(0),
26f02c2c 220 fHOutCentV0A23(0),
221 fHOutCentV0C01(0),
222 fHOutCentV0S(0),
f9a774f9 223 fHOutCentV0MEq(0),
224 fHOutCentV0AEq(0),
225 fHOutCentV0CEq(0),
01974bd1 226 fHOutCentV0MCVHN(0),
227 fHOutCentV0MCVLN(0),
228 fHOutCentV0MCVHNinMB(0),
229 fHOutCentV0MCVLNinMB(0),
230 fHOutCentV0MCCENT(0),
231 fHOutCentV0MCSEMI(0),
232 fHOutCentV0MCCENTinMB(0),
233 fHOutCentV0MCSEMIinMB(0),
234 fHOutCentV0MMSL(0),
235 fHOutCentV0MMSH(0),
236 fHOutCentV0MMUL(0),
237 fHOutCentV0MMLL(0),
238 fHOutCentV0MEJE(0),
239 fHOutCentV0MEGA(0),
240 fHOutCentV0MPHS(0),
241 fHOutCentV0MMSLinMB(0),
242 fHOutCentV0MMSHinMB(0),
243 fHOutCentV0MMULinMB(0),
244 fHOutCentV0MMLLinMB(0),
245 fHOutCentV0MEJEinMB(0),
246 fHOutCentV0MEGAinMB(0),
247 fHOutCentV0MPHSinMB(0),
39a3e400 248 fHOutCentFMD(0),
249 fHOutCentTRK(0),
250 fHOutCentTKL(0),
251 fHOutCentCL0(0),
252 fHOutCentCL1(0),
253 fHOutCentCND(0),
254 fHOutCentNPA(0),
255 fHOutCentZNA(0),
f9a774f9 256 fHOutCentZNC(0),
3a19f64f 257 fHOutCentZPA(0),
258 fHOutCentZPC(0),
01974bd1 259 fHOutCentV0MvsFMD(0),
260 fHOutCentTKLvsV0M(0),
261 fHOutCentZEMvsZDC(0),
262 fHOutCentV0MvsCentCL1(0),
263 fHOutCentV0MvsCentTRK(0),
264 fHOutCentTRKvsCentCL1(0),
265 fHOutCentV0MvsCentZDC(0),
266 fHOutCentV0AvsCentV0C(0),
267 fHOutCentV0AvsCentTRK(0),
268 fHOutCentV0AvsCentCND(0),
269 fHOutCentV0AvsCentCL1(0),
270 fHOutCentV0CvsCentTRK(0),
271 fHOutCentV0CvsCentCND(0),
272 fHOutCentV0CvsCentCL1(0),
8432b617 273 fHOutCentNPAvsCentV0A(0),
274 fHOutCentNPAvsCentV0C(0),
275 fHOutCentNPAvsCentTRK(0),
276 fHOutCentNPAvsCentCND(0),
277 fHOutCentNPAvsCentCL1(0),
99029fba 278 fHOutCentZNAvsCentV0A(0),
279 fHOutCentZNAvsCentV0C(0),
280 fHOutCentZNAvsCentTRK(0),
281 fHOutCentZNAvsCentCND(0),
282 fHOutCentZNAvsCentCL1(0),
bfbc1975 283 fHOutCentZNAvsCentZPA(0),
01974bd1 284 fHOutMultV0AC(0),
285 fHOutMultV0M(0),
286 fHOutMultV0A(0),
9113c527 287 fHOutMultV0A0(0),
2d12adde 288 fHOutMultV0A123(0),
01974bd1 289 fHOutMultV0C(0),
26f02c2c 290 fHOutMultV0A23(0),
291 fHOutMultV0C01(0),
292 fHOutMultV0S(0),
f9a774f9 293 fHOutMultV0MEq(0),
294 fHOutMultV0AEq(0),
295 fHOutMultV0CEq(0),
e1d58f75 296 fHOutMultV0Mnc(0),
297 fHOutMultV0Anc(0),
298 fHOutMultV0Cnc(0),
01974bd1 299 fHOutMultV0O(0),
300 fHOutMultV0Cells(0),
301 fHOutMultFMD(0),
302 fHOutMultTRK(0),
303 fHOutMultTKL(0),
304 fHOutMultCL0(0),
305 fHOutMultCL1(0),
306 fHOutMultCND(0),
8432b617 307 fHOutMultNPA(0),
99029fba 308 fHOutMultZNA(0),
f9a774f9 309 fHOutMultZNC(0),
3a19f64f 310 fHOutMultZPA(0),
311 fHOutMultZPC(0),
01974bd1 312 fHOutMultV0MvsZDN(0),
313 fHOutMultZEMvsZDN(0),
314 fHOutMultV0MvsZDC(0),
315 fHOutMultZEMvsZDC(0),
316 fHOutMultZEMvsZDCw(0),
317 fHOutMultV0MvsCL1(0),
318 fHOutMultV0MvsTRK(0),
319 fHOutMultTRKvsCL1(0),
320 fHOutMultV0MvsV0O(0),
321 fHOutMultV0OvsCL1(0),
322 fHOutMultV0OvsTRK(0),
323 fHOutMultCL1vsTKL(0),
bfbc1975 324 fHOutMultZNAvsZPA(0),
01974bd1 325 fHOutCentV0Mqual1(0),
326 fHOutCentTRKqual1(0),
327 fHOutCentCL1qual1(0),
328 fHOutMultV0MvsCL1qual1(0),
329 fHOutMultV0MvsTRKqual1(0),
330 fHOutMultTRKvsCL1qual1(0),
331 fHOutCentV0Mqual2(0),
332 fHOutCentTRKqual2(0),
333 fHOutCentCL1qual2(0),
334 fHOutMultV0MvsCL1qual2(0),
335 fHOutMultV0MvsTRKqual2(0),
336 fHOutMultTRKvsCL1qual2(0),
337 fHOutQuality(0),
338 fHOutVertex(0),
339 fHOutVertexT0(0)
340{
341 // Default constructor
342 AliInfo("Centrality Selection enabled.");
343
344 fUseScaling=kTRUE;
345 fUseCleaning=kTRUE;
346 fFillHistos=kFALSE;
347 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
348 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
349}
350
351//________________________________________________________________________
352AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
353 AliAnalysisTaskSE(name),
354 fAnalysisInput("ESD"),
355 fIsMCInput(kFALSE),
356 fCurrentRun(-1),
357 fUseScaling(0),
358 fUseCleaning(0),
359 fFillHistos(0),
360 fV0MScaleFactor(0),
361 fSPDScaleFactor(0),
362 fTPCScaleFactor(0),
363 fV0MScaleFactorMC(0),
364 fV0MSPDOutlierPar0(0),
365 fV0MSPDOutlierPar1(0),
366 fV0MTPCOutlierPar0(0),
367 fV0MTPCOutlierPar1(0),
368 fV0MSPDSigmaOutlierPar0(0),
369 fV0MSPDSigmaOutlierPar1(0),
370 fV0MSPDSigmaOutlierPar2(0),
371 fV0MTPCSigmaOutlierPar0(0),
372 fV0MTPCSigmaOutlierPar1(0),
373 fV0MTPCSigmaOutlierPar2(0),
374 fV0MZDCOutlierPar0(0),
375 fV0MZDCOutlierPar1(0),
376 fV0MZDCEcalOutlierPar0(0),
377 fV0MZDCEcalOutlierPar1(0),
378 fTrackCuts(0),
2d27827d 379 fEsdTrackCuts(0),
380 fEsdTrackCutsExtra1(0),
381 fEsdTrackCutsExtra2(0),
01974bd1 382 fZVCut(10),
383 fOutliersCut(5),
384 fQuality(999),
385 fIsSelected(0),
386 fMSL(0),
387 fMSH(0),
388 fMUL(0),
389 fMLL(0),
390 fEJE(0),
391 fEGA(0),
392 fPHS(0),
393 fMB(0),
394 fCVHN(0),
395 fCVLN(0),
396 fCVHNbit(0),
397 fCVLNbit(0),
398 fCCENT(0),
399 fCSEMI(0),
400 fCCENTbit(0),
401 fCSEMIbit(0),
402 fCentV0M(0),
403 fCentV0A(0),
9113c527 404 fCentV0A0(0),
2d12adde 405 fCentV0A123(0),
01974bd1 406 fCentV0C(0),
26f02c2c 407 fCentV0A23(0),
408 fCentV0C01(0),
409 fCentV0S(0),
f9a774f9 410 fCentV0MEq(0),
411 fCentV0AEq(0),
412 fCentV0CEq(0),
01974bd1 413 fCentFMD(0),
414 fCentTRK(0),
415 fCentTKL(0),
416 fCentCL0(0),
417 fCentCL1(0),
418 fCentCND(0),
99029fba 419 fCentZNA(0),
f9a774f9 420 fCentZNC(0),
3a19f64f 421 fCentZPA(0),
422 fCentZPC(0),
39a3e400 423 fCentNPA(0),
01974bd1 424 fCentV0MvsFMD(0),
425 fCentTKLvsV0M(0),
426 fCentZEMvsZDC(0),
39a3e400 427 fCentV0Mtrue(0),
428 fCentV0Atrue(0),
429 fCentV0Ctrue(0),
f9a774f9 430 fCentV0MEqtrue(0),
431 fCentV0AEqtrue(0),
432 fCentV0CEqtrue(0),
39a3e400 433 fCentFMDtrue(0),
434 fCentTRKtrue(0),
435 fCentTKLtrue(0),
436 fCentCL0true(0),
437 fCentCL1true(0),
438 fCentCNDtrue(0),
439 fCentZNAtrue(0),
f9a774f9 440 fCentZNCtrue(0),
3a19f64f 441 fCentZPAtrue(0),
442 fCentZPCtrue(0),
01974bd1 443 fHtempV0M(0),
444 fHtempV0A(0),
9113c527 445 fHtempV0A0(0),
2d12adde 446 fHtempV0A123(0),
01974bd1 447 fHtempV0C(0),
26f02c2c 448 fHtempV0A23(0),
449 fHtempV0C01(0),
450 fHtempV0S(0),
f9a774f9 451 fHtempV0MEq(0),
452 fHtempV0AEq(0),
453 fHtempV0CEq(0),
01974bd1 454 fHtempFMD(0),
455 fHtempTRK(0),
456 fHtempTKL(0),
457 fHtempCL0(0),
458 fHtempCL1(0),
459 fHtempCND(0),
99029fba 460 fHtempZNA(0),
f9a774f9 461 fHtempZNC(0),
3a19f64f 462 fHtempZPA(0),
463 fHtempZPC(0),
01974bd1 464 fHtempV0MvsFMD(0),
465 fHtempTKLvsV0M(0),
466 fHtempZEMvsZDC(0),
39a3e400 467 fHtempNPA(0),
468 fHtempV0Mtrue(0),
469 fHtempV0Atrue(0),
470 fHtempV0Ctrue(0),
f9a774f9 471 fHtempV0MEqtrue(0),
472 fHtempV0AEqtrue(0),
473 fHtempV0CEqtrue(0),
39a3e400 474 fHtempFMDtrue(0),
475 fHtempTRKtrue(0),
476 fHtempTKLtrue(0),
477 fHtempCL0true(0),
478 fHtempCL1true(0),
479 fHtempCNDtrue(0),
480 fHtempZNAtrue(0),
f9a774f9 481 fHtempZNCtrue(0),
3a19f64f 482 fHtempZPAtrue(0),
483 fHtempZPCtrue(0),
01974bd1 484 fOutputList(0),
39a3e400 485 fHOutCentV0M(0),
486 fHOutCentV0A(0),
9113c527 487 fHOutCentV0A0(0),
2d12adde 488 fHOutCentV0A123(0),
39a3e400 489 fHOutCentV0C(0),
26f02c2c 490 fHOutCentV0A23(0),
491 fHOutCentV0C01(0),
492 fHOutCentV0S(0),
f9a774f9 493 fHOutCentV0MEq(0),
494 fHOutCentV0AEq(0),
495 fHOutCentV0CEq(0),
01974bd1 496 fHOutCentV0MCVHN(0),
497 fHOutCentV0MCVLN(0),
498 fHOutCentV0MCVHNinMB(0),
499 fHOutCentV0MCVLNinMB(0),
500 fHOutCentV0MCCENT(0),
501 fHOutCentV0MCSEMI(0),
502 fHOutCentV0MCCENTinMB(0),
503 fHOutCentV0MCSEMIinMB(0),
504 fHOutCentV0MMSL(0),
505 fHOutCentV0MMSH(0),
506 fHOutCentV0MMUL(0),
507 fHOutCentV0MMLL(0),
508 fHOutCentV0MEJE(0),
509 fHOutCentV0MEGA(0),
510 fHOutCentV0MPHS(0),
511 fHOutCentV0MMSLinMB(0),
512 fHOutCentV0MMSHinMB(0),
513 fHOutCentV0MMULinMB(0),
514 fHOutCentV0MMLLinMB(0),
515 fHOutCentV0MEJEinMB(0),
516 fHOutCentV0MEGAinMB(0),
517 fHOutCentV0MPHSinMB(0),
39a3e400 518 fHOutCentFMD(0),
519 fHOutCentTRK(0),
520 fHOutCentTKL(0),
521 fHOutCentCL0(0),
522 fHOutCentCL1(0),
523 fHOutCentCND(0),
524 fHOutCentNPA(0),
525 fHOutCentZNA(0),
f9a774f9 526 fHOutCentZNC(0),
3a19f64f 527 fHOutCentZPA(0),
528 fHOutCentZPC(0),
01974bd1 529 fHOutCentV0MvsFMD(0),
530 fHOutCentTKLvsV0M(0),
531 fHOutCentZEMvsZDC(0),
532 fHOutCentV0MvsCentCL1(0),
533 fHOutCentV0MvsCentTRK(0),
534 fHOutCentTRKvsCentCL1(0),
535 fHOutCentV0MvsCentZDC(0),
536 fHOutCentV0AvsCentV0C(0),
537 fHOutCentV0AvsCentTRK(0),
538 fHOutCentV0AvsCentCND(0),
539 fHOutCentV0AvsCentCL1(0),
540 fHOutCentV0CvsCentTRK(0),
541 fHOutCentV0CvsCentCND(0),
542 fHOutCentV0CvsCentCL1(0),
8432b617 543 fHOutCentNPAvsCentV0A(0),
544 fHOutCentNPAvsCentV0C(0),
545 fHOutCentNPAvsCentTRK(0),
546 fHOutCentNPAvsCentCND(0),
547 fHOutCentNPAvsCentCL1(0),
99029fba 548 fHOutCentZNAvsCentV0A(0),
549 fHOutCentZNAvsCentV0C(0),
550 fHOutCentZNAvsCentTRK(0),
551 fHOutCentZNAvsCentCND(0),
552 fHOutCentZNAvsCentCL1(0),
bfbc1975 553 fHOutCentZNAvsCentZPA(0),
01974bd1 554 fHOutMultV0AC(0),
555 fHOutMultV0M(0),
556 fHOutMultV0A(0),
9113c527 557 fHOutMultV0A0(0),
2d12adde 558 fHOutMultV0A123(0),
01974bd1 559 fHOutMultV0C(0),
26f02c2c 560 fHOutMultV0A23(0),
561 fHOutMultV0C01(0),
562 fHOutMultV0S(0),
f9a774f9 563 fHOutMultV0MEq(0),
564 fHOutMultV0AEq(0),
565 fHOutMultV0CEq(0),
e1d58f75 566 fHOutMultV0Mnc(0),
567 fHOutMultV0Anc(0),
568 fHOutMultV0Cnc(0),
01974bd1 569 fHOutMultV0O(0),
570 fHOutMultV0Cells(0),
571 fHOutMultFMD(0),
572 fHOutMultTRK(0),
573 fHOutMultTKL(0),
574 fHOutMultCL0(0),
575 fHOutMultCL1(0),
576 fHOutMultCND(0),
8432b617 577 fHOutMultNPA(0),
99029fba 578 fHOutMultZNA(0),
f9a774f9 579 fHOutMultZNC(0),
3a19f64f 580 fHOutMultZPA(0),
581 fHOutMultZPC(0),
01974bd1 582 fHOutMultV0MvsZDN(0),
583 fHOutMultZEMvsZDN(0),
584 fHOutMultV0MvsZDC(0),
585 fHOutMultZEMvsZDC(0),
586 fHOutMultZEMvsZDCw(0),
587 fHOutMultV0MvsCL1(0),
588 fHOutMultV0MvsTRK(0),
589 fHOutMultTRKvsCL1(0),
590 fHOutMultV0MvsV0O(0),
591 fHOutMultV0OvsCL1(0),
592 fHOutMultV0OvsTRK(0),
593 fHOutMultCL1vsTKL(0),
bfbc1975 594 fHOutMultZNAvsZPA(0),
01974bd1 595 fHOutCentV0Mqual1(0),
596 fHOutCentTRKqual1(0),
597 fHOutCentCL1qual1(0),
598 fHOutMultV0MvsCL1qual1(0),
599 fHOutMultV0MvsTRKqual1(0),
600 fHOutMultTRKvsCL1qual1(0),
601 fHOutCentV0Mqual2(0),
602 fHOutCentTRKqual2(0),
603 fHOutCentCL1qual2(0),
604 fHOutMultV0MvsCL1qual2(0),
605 fHOutMultV0MvsTRKqual2(0),
606 fHOutMultTRKvsCL1qual2(0),
607 fHOutQuality(0),
608 fHOutVertex(0),
609 fHOutVertexT0(0)
610{
611 // Default constructor
612 AliInfo("Centrality Selection enabled.");
613 //DefineOutput(1, TList::Class());
614 fUseScaling=kTRUE;
615 fUseCleaning=kTRUE;
616 fFillHistos=kFALSE;
617 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
618 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
619}
620
621//________________________________________________________________________
622AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c)
623{
624 // Assignment operator
625 if (this!=&c) {
626 AliAnalysisTaskSE::operator=(c);
627 }
628 return *this;
629}
630
631//________________________________________________________________________
632AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana):
633 AliAnalysisTaskSE(ana),
634 fAnalysisInput(ana.fAnalysisInput),
635 fIsMCInput(ana.fIsMCInput),
636 fCurrentRun(ana.fCurrentRun),
637 fUseScaling(ana.fUseScaling),
638 fUseCleaning(ana.fUseCleaning),
639 fFillHistos(ana.fFillHistos),
640 fV0MScaleFactor(ana.fV0MScaleFactor),
641 fSPDScaleFactor(ana.fSPDScaleFactor),
642 fTPCScaleFactor(ana.fTPCScaleFactor),
643 fV0MScaleFactorMC(ana.fV0MScaleFactorMC),
644 fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0),
645 fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1),
646 fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0),
647 fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1),
648 fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0),
649 fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1),
650 fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2),
651 fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0),
652 fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1),
653 fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2),
654 fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0),
655 fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1),
656 fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0),
657 fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1),
658 fTrackCuts(ana.fTrackCuts),
2d27827d 659 fEsdTrackCuts(ana.fEsdTrackCuts),
660 fEsdTrackCutsExtra1(ana.fEsdTrackCutsExtra1),
661 fEsdTrackCutsExtra2(ana.fEsdTrackCutsExtra2),
01974bd1 662 fZVCut(ana.fZVCut),
663 fOutliersCut(ana.fOutliersCut),
664 fQuality(ana.fQuality),
665 fIsSelected(ana.fIsSelected),
666 fMSL(ana.fMSL),
667 fMSH(ana.fMSH),
668 fMUL(ana.fMUL),
669 fMLL(ana.fMLL),
670 fEJE(ana.fEJE),
671 fEGA(ana.fEGA),
672 fPHS(ana.fPHS),
673 fMB(ana.fMB),
674 fCVHN(ana.fCVHN),
675 fCVLN(ana.fCVLN),
676 fCVHNbit(ana.fCVHNbit),
677 fCVLNbit(ana.fCVLNbit),
678 fCCENT(ana.fCCENT),
679 fCSEMI(ana.fCSEMI),
680 fCCENTbit(ana.fCCENTbit),
681 fCSEMIbit(ana.fCSEMIbit),
682 fCentV0M(ana.fCentV0M),
683 fCentV0A(ana.fCentV0A),
9113c527 684 fCentV0A0(ana.fCentV0A0),
2d12adde 685 fCentV0A123(ana.fCentV0A123),
01974bd1 686 fCentV0C(ana.fCentV0C),
26f02c2c 687 fCentV0A23(ana.fCentV0A23),
688 fCentV0C01(ana.fCentV0C01),
689 fCentV0S(ana.fCentV0S),
f9a774f9 690 fCentV0MEq(ana.fCentV0MEq),
691 fCentV0AEq(ana.fCentV0AEq),
692 fCentV0CEq(ana.fCentV0CEq),
01974bd1 693 fCentFMD(ana.fCentFMD),
694 fCentTRK(ana.fCentTRK),
695 fCentTKL(ana.fCentTKL),
696 fCentCL0(ana.fCentCL0),
697 fCentCL1(ana.fCentCL1),
698 fCentCND(ana.fCentCND),
99029fba 699 fCentZNA(ana.fCentZNA),
f9a774f9 700 fCentZNC(ana.fCentZNC),
3a19f64f 701 fCentZPA(ana.fCentZPA),
702 fCentZPC(ana.fCentZPC),
39a3e400 703 fCentNPA(ana.fCentNPA),
01974bd1 704 fCentV0MvsFMD(ana.fCentV0MvsFMD),
705 fCentTKLvsV0M(ana.fCentTKLvsV0M),
706 fCentZEMvsZDC(ana.fCentZEMvsZDC),
39a3e400 707 fCentV0Mtrue(ana.fCentV0Mtrue),
708 fCentV0Atrue(ana.fCentV0Atrue),
709 fCentV0Ctrue(ana.fCentV0Ctrue),
f9a774f9 710 fCentV0MEqtrue(ana.fCentV0MEqtrue),
711 fCentV0AEqtrue(ana.fCentV0AEqtrue),
712 fCentV0CEqtrue(ana.fCentV0CEqtrue),
39a3e400 713 fCentFMDtrue(ana.fCentFMDtrue),
714 fCentTRKtrue(ana.fCentTRKtrue),
715 fCentTKLtrue(ana.fCentTKLtrue),
716 fCentCL0true(ana.fCentCL0true),
717 fCentCL1true(ana.fCentCL1true),
718 fCentCNDtrue(ana.fCentCNDtrue),
719 fCentZNAtrue(ana.fCentZNAtrue),
f9a774f9 720 fCentZNCtrue(ana.fCentZNCtrue),
3a19f64f 721 fCentZPAtrue(ana.fCentZPAtrue),
722 fCentZPCtrue(ana.fCentZPCtrue),
01974bd1 723 fHtempV0M(ana.fHtempV0M),
724 fHtempV0A(ana.fHtempV0A),
9113c527 725 fHtempV0A0(ana.fHtempV0A0),
2d12adde 726 fHtempV0A123(ana.fHtempV0A123),
01974bd1 727 fHtempV0C(ana.fHtempV0C),
26f02c2c 728 fHtempV0A23(ana.fHtempV0A23),
729 fHtempV0C01(ana.fHtempV0C01),
730 fHtempV0S(ana.fHtempV0S),
f9a774f9 731 fHtempV0MEq(ana.fHtempV0MEq),
732 fHtempV0AEq(ana.fHtempV0AEq),
733 fHtempV0CEq(ana.fHtempV0CEq),
01974bd1 734 fHtempFMD(ana.fHtempFMD),
735 fHtempTRK(ana.fHtempTRK),
736 fHtempTKL(ana.fHtempTKL),
737 fHtempCL0(ana.fHtempCL0),
738 fHtempCL1(ana.fHtempCL1),
739 fHtempCND(ana.fHtempCND),
99029fba 740 fHtempZNA(ana.fHtempZNA),
f9a774f9 741 fHtempZNC(ana.fHtempZNC),
3a19f64f 742 fHtempZPA(ana.fHtempZPA),
743 fHtempZPC(ana.fHtempZPC),
01974bd1 744 fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
745 fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
746 fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
39a3e400 747 fHtempNPA(ana.fHtempNPA),
748 fHtempV0Mtrue(ana.fHtempV0Mtrue),
749 fHtempV0Atrue(ana.fHtempV0Atrue),
750 fHtempV0Ctrue(ana.fHtempV0Ctrue),
f9a774f9 751 fHtempV0MEqtrue(ana.fHtempV0MEqtrue),
752 fHtempV0AEqtrue(ana.fHtempV0AEqtrue),
753 fHtempV0CEqtrue(ana.fHtempV0CEqtrue),
39a3e400 754 fHtempFMDtrue(ana.fHtempFMDtrue),
755 fHtempTRKtrue(ana.fHtempTRKtrue),
756 fHtempTKLtrue(ana.fHtempTKLtrue),
757 fHtempCL0true(ana.fHtempCL0true),
758 fHtempCL1true(ana.fHtempCL1true),
759 fHtempCNDtrue(ana.fHtempCNDtrue),
760 fHtempZNAtrue(ana.fHtempZNAtrue),
f9a774f9 761 fHtempZNCtrue(ana.fHtempZNCtrue),
3a19f64f 762 fHtempZPAtrue(ana.fHtempZPAtrue),
763 fHtempZPCtrue(ana.fHtempZPCtrue),
01974bd1 764 fOutputList(ana.fOutputList),
39a3e400 765 fHOutCentV0M(ana.fHOutCentV0M),
766 fHOutCentV0A(ana.fHOutCentV0A),
9113c527 767 fHOutCentV0A0(ana.fHOutCentV0A0),
2d12adde 768 fHOutCentV0A123(ana.fHOutCentV0A123),
39a3e400 769 fHOutCentV0C(ana.fHOutCentV0C),
26f02c2c 770 fHOutCentV0A23(ana.fHOutCentV0A23),
771 fHOutCentV0C01(ana.fHOutCentV0C01),
772 fHOutCentV0S(ana.fHOutCentV0S),
f9a774f9 773 fHOutCentV0MEq(ana.fHOutCentV0MEq),
774 fHOutCentV0AEq(ana.fHOutCentV0AEq),
775 fHOutCentV0CEq(ana.fHOutCentV0CEq),
01974bd1 776 fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
777 fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
778 fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
779 fHOutCentV0MCVLNinMB(ana.fHOutCentV0MCVLNinMB),
780 fHOutCentV0MCCENT(ana.fHOutCentV0MCCENT),
781 fHOutCentV0MCSEMI(ana.fHOutCentV0MCSEMI),
782 fHOutCentV0MCCENTinMB(ana.fHOutCentV0MCCENTinMB),
783 fHOutCentV0MCSEMIinMB(ana.fHOutCentV0MCSEMIinMB),
784 fHOutCentV0MMSL(ana.fHOutCentV0MMSL),
785 fHOutCentV0MMSH(ana.fHOutCentV0MMSH),
786 fHOutCentV0MMUL(ana.fHOutCentV0MMUL),
787 fHOutCentV0MMLL(ana.fHOutCentV0MMLL),
788 fHOutCentV0MEJE(ana.fHOutCentV0MEJE),
789 fHOutCentV0MEGA(ana.fHOutCentV0MEGA),
790 fHOutCentV0MPHS(ana.fHOutCentV0MPHS),
791 fHOutCentV0MMSLinMB(ana.fHOutCentV0MMSLinMB),
792 fHOutCentV0MMSHinMB(ana.fHOutCentV0MMSHinMB),
793 fHOutCentV0MMULinMB(ana.fHOutCentV0MMULinMB),
794 fHOutCentV0MMLLinMB(ana.fHOutCentV0MMLLinMB),
795 fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
796 fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
797 fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
39a3e400 798 fHOutCentFMD(ana.fHOutCentFMD),
799 fHOutCentTRK(ana.fHOutCentTRK),
800 fHOutCentTKL(ana.fHOutCentTKL),
801 fHOutCentCL0(ana.fHOutCentCL0),
802 fHOutCentCL1(ana.fHOutCentCL1),
803 fHOutCentCND(ana.fHOutCentCND),
804 fHOutCentNPA(ana.fHOutCentNPA),
805 fHOutCentZNA(ana.fHOutCentZNA),
f9a774f9 806 fHOutCentZNC(ana.fHOutCentZNC),
3a19f64f 807 fHOutCentZPA(ana.fHOutCentZPA),
808 fHOutCentZPC(ana.fHOutCentZPC),
01974bd1 809 fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
810 fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
811 fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
812 fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1),
813 fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK),
814 fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1),
815 fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC),
816 fHOutCentV0AvsCentV0C(ana.fHOutCentV0AvsCentV0C),
817 fHOutCentV0AvsCentTRK(ana.fHOutCentV0AvsCentTRK),
818 fHOutCentV0AvsCentCND(ana.fHOutCentV0AvsCentCND),
819 fHOutCentV0AvsCentCL1(ana.fHOutCentV0AvsCentCL1),
820 fHOutCentV0CvsCentTRK(ana.fHOutCentV0CvsCentTRK),
821 fHOutCentV0CvsCentCND(ana.fHOutCentV0CvsCentCND),
822 fHOutCentV0CvsCentCL1(ana.fHOutCentV0CvsCentCL1),
8432b617 823 fHOutCentNPAvsCentV0A(ana.fHOutCentNPAvsCentV0A),
824 fHOutCentNPAvsCentV0C(ana.fHOutCentNPAvsCentV0C),
825 fHOutCentNPAvsCentTRK(ana.fHOutCentNPAvsCentTRK),
826 fHOutCentNPAvsCentCND(ana.fHOutCentNPAvsCentCND),
827 fHOutCentNPAvsCentCL1(ana.fHOutCentNPAvsCentCL1),
99029fba 828 fHOutCentZNAvsCentV0A(ana.fHOutCentZNAvsCentV0A),
829 fHOutCentZNAvsCentV0C(ana.fHOutCentZNAvsCentV0C),
830 fHOutCentZNAvsCentTRK(ana.fHOutCentZNAvsCentTRK),
831 fHOutCentZNAvsCentCND(ana.fHOutCentZNAvsCentCND),
832 fHOutCentZNAvsCentCL1(ana.fHOutCentZNAvsCentCL1),
bfbc1975 833 fHOutCentZNAvsCentZPA(ana.fHOutCentZNAvsCentZPA),
01974bd1 834 fHOutMultV0AC(ana.fHOutMultV0AC),
835 fHOutMultV0M(ana.fHOutMultV0M),
836 fHOutMultV0A(ana.fHOutMultV0A),
9113c527 837 fHOutMultV0A0(ana.fHOutMultV0A0),
2d12adde 838 fHOutMultV0A123(ana.fHOutMultV0A123),
01974bd1 839 fHOutMultV0C(ana.fHOutMultV0C),
26f02c2c 840 fHOutMultV0A23(ana.fHOutMultV0A23),
841 fHOutMultV0C01(ana.fHOutMultV0C01),
842 fHOutMultV0S(ana.fHOutMultV0S),
f9a774f9 843 fHOutMultV0MEq(ana.fHOutMultV0MEq),
844 fHOutMultV0AEq(ana.fHOutMultV0AEq),
845 fHOutMultV0CEq(ana.fHOutMultV0CEq),
e1d58f75 846 fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
847 fHOutMultV0Anc(ana.fHOutMultV0Anc),
848 fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
01974bd1 849 fHOutMultV0O(ana.fHOutMultV0O),
850 fHOutMultV0Cells(ana.fHOutMultV0Cells),
851 fHOutMultFMD(ana.fHOutMultFMD),
852 fHOutMultTRK(ana.fHOutMultTRK),
853 fHOutMultTKL(ana.fHOutMultTKL),
854 fHOutMultCL0(ana.fHOutMultCL0),
855 fHOutMultCL1(ana.fHOutMultCL1),
856 fHOutMultCND(ana.fHOutMultCND),
8432b617 857 fHOutMultNPA(ana.fHOutMultNPA),
99029fba 858 fHOutMultZNA(ana.fHOutMultZNA),
f9a774f9 859 fHOutMultZNC(ana.fHOutMultZNC),
3a19f64f 860 fHOutMultZPA(ana.fHOutMultZPA),
861 fHOutMultZPC(ana.fHOutMultZPC),
01974bd1 862 fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
863 fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
864 fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
865 fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
866 fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw),
867 fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
868 fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
869 fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1),
870 fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O),
871 fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
872 fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
873 fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
bfbc1975 874 fHOutMultZNAvsZPA(ana.fHOutMultZNAvsZPA),
01974bd1 875 fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
876 fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
877 fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
878 fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1),
879 fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1),
880 fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1),
881 fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2),
882 fHOutCentTRKqual2(ana.fHOutCentTRKqual2),
883 fHOutCentCL1qual2(ana.fHOutCentCL1qual2),
884 fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2),
885 fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2),
886 fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2),
887 fHOutQuality(ana.fHOutQuality),
888 fHOutVertex(ana.fHOutVertex),
889 fHOutVertexT0(ana.fHOutVertexT0)
890{
891 // Copy Constructor
892
893}
894
895//________________________________________________________________________
896AliCentralitySelectionTask::~AliCentralitySelectionTask()
897{
898 // Destructor
899 if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
900 if (fTrackCuts) delete fTrackCuts;
2d27827d 901 if (fEsdTrackCuts) delete fEsdTrackCuts;
902 if (fEsdTrackCutsExtra1) delete fEsdTrackCutsExtra1;
903 if (fEsdTrackCutsExtra2) delete fEsdTrackCutsExtra2;
01974bd1 904}
905
906//________________________________________________________________________
907void AliCentralitySelectionTask::UserCreateOutputObjects()
908{
909 // Create the output containers
910 if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
911 AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
912
913 if (fFillHistos) {
914 fOutputList = new TList();
915 fOutputList->SetOwner();
916 fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
917 fHOutCentV0A = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
9113c527 918 fHOutCentV0A0 = new TH1F("fHOutCentV0A0","fHOutCentV0A0; Centrality V0A-0",505,0,101);
2d12adde 919 fHOutCentV0A123 = new TH1F("fHOutCentV0A123","fHOutCentV0A123; Centrality V0A-123",505,0,101);
01974bd1 920 fHOutCentV0C = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
26f02c2c 921 fHOutCentV0A23 = new TH1F("fHOutCentV0A23","fHOutCentV0A23; Centrality V0A-23",505,0,101);
922 fHOutCentV0C01 = new TH1F("fHOutCentV0C01","fHOutCentV0C01; Centrality V0C-01",505,0,101);
923 fHOutCentV0S = new TH1F("fHOutCentV0S","fHOutCentV0S; Centrality V0A-23 & V0C-01",505,0,101);
1a9bd911 924 fHOutCentV0MEq = new TH1F("fHOutCentV0MEq","fHOutCentV0MEq; Centrality V0 equalized",505,0,101);
925 fHOutCentV0AEq = new TH1F("fHOutCentV0AEq","fHOutCentV0AEq; Centrality V0A equalized",505,0,101);
926 fHOutCentV0CEq = new TH1F("fHOutCentV0CEq","fHOutCentV0CEq; Centrality V0C equalized",505,0,101);
01974bd1 927 fHOutCentV0MCVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
928 fHOutCentV0MCVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
929 fHOutCentV0MCVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
930 fHOutCentV0MCVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
931 fHOutCentV0MCCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
932 fHOutCentV0MCSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
933 fHOutCentV0MCCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
934 fHOutCentV0MCSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
935 fHOutCentV0MMSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101);
936 fHOutCentV0MMSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101);
937 fHOutCentV0MMUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101);
938 fHOutCentV0MMLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101);
939 fHOutCentV0MEJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101);
940 fHOutCentV0MEGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101);
941 fHOutCentV0MPHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101);
942 fHOutCentV0MMSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101);
943 fHOutCentV0MMSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101);
944 fHOutCentV0MMULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101);
945 fHOutCentV0MMLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101);
946 fHOutCentV0MEJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101);
947 fHOutCentV0MEGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101);
948 fHOutCentV0MPHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101);
949 fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101);
950 fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101);
951 fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101);
952 fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101);
953 fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101);
954 fHOutCentCND = new TH1F("fHOutCentCND","fHOutCentCND; Centrality candle",505,0,101);
99029fba 955 fHOutCentNPA = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality Npart",505,0,101);
956 fHOutCentZNA = new TH1F("fHOutCentZNA","fHOutCentZNA; Centrality ZNA",505,0,101);
1a9bd911 957 fHOutCentZNC = new TH1F("fHOutCentZNC","fHOutCentZNC; Centrality ZNC",505,0,101);
3a19f64f 958 fHOutCentZPA = new TH1F("fHOutCentZPA","fHOutCentZPA; Centrality ZPA",505,0,101);
959 fHOutCentZPC = new TH1F("fHOutCentZPC","fHOutCentZPC; Centrality ZPC",505,0,101);
01974bd1 960 fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
961 fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
962 fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
963 fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101);
964 fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101);
965 fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101);
966 fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101);
967 fHOutCentV0AvsCentV0C= new TH2F("fHOutCentV0AvsCentV0C","fHOutCentV0AvsCentV0C; Cent V0A; Cent V0C;", 505,0,101,505,0,101);
968 fHOutCentV0AvsCentTRK= new TH2F("fHOutCentV0AvsCentTRK","fHOutCentV0AvsCentTRK; Cent V0A; Cent TRK;", 505,0,101,505,0,101);
969 fHOutCentV0AvsCentCND= new TH2F("fHOutCentV0AvsCentCND","fHOutCentV0AvsCentCND; Cent V0A; Cent CND;", 505,0,101,505,0,101);
970 fHOutCentV0AvsCentCL1= new TH2F("fHOutCentV0AvsCentCL1","fHOutCentV0AvsCentCL1; Cent V0A; Cent CL1;", 505,0,101,505,0,101);
971 fHOutCentV0CvsCentTRK= new TH2F("fHOutCentV0CvsCentTRK","fHOutCentV0CvsCentTRK; Cent V0C; Cent TRK;", 505,0,101,505,0,101);
972 fHOutCentV0CvsCentCND= new TH2F("fHOutCentV0CvsCentCND","fHOutCentV0CvsCentCND; Cent V0C; Cent CND;", 505,0,101,505,0,101);
973 fHOutCentV0CvsCentCL1= new TH2F("fHOutCentV0CvsCentCL1","fHOutCentV0CvsCentCL1; Cent V0C; Cent CL1;", 505,0,101,505,0,101);
8432b617 974 fHOutCentNPAvsCentV0A= new TH2F("fHOutCentNPAvsCentV0A","fHOutCentNPAvsCentV0A; Cent NPA; Cent V0A;", 505,0,101,505,0,101);
975 fHOutCentNPAvsCentV0C= new TH2F("fHOutCentNPAvsCentV0C","fHOutCentNPAvsCentV0C; Cent NPA; Cent V0C;", 505,0,101,505,0,101);
976 fHOutCentNPAvsCentTRK= new TH2F("fHOutCentNPAvsCentTRK","fHOutCentNPAvsCentTRK; Cent NPA; Cent TRK;", 505,0,101,505,0,101);
977 fHOutCentNPAvsCentCND= new TH2F("fHOutCentNPAvsCentCND","fHOutCentNPAvsCentCND; Cent NPA; Cent CND;", 505,0,101,505,0,101);
978 fHOutCentNPAvsCentCL1= new TH2F("fHOutCentNPAvsCentCL1","fHOutCentNPAvsCentCL1; Cent NPA; Cent CL1;", 505,0,101,505,0,101);
99029fba 979 fHOutCentZNAvsCentV0A= new TH2F("fHOutCentZNAvsCentV0A","fHOutCentZNAvsCentV0A; Cent ZNA; Cent V0A;", 505,0,101,505,0,101);
980 fHOutCentZNAvsCentV0C= new TH2F("fHOutCentZNAvsCentV0C","fHOutCentZNAvsCentV0C; Cent ZNA; Cent V0C;", 505,0,101,505,0,101);
981 fHOutCentZNAvsCentTRK= new TH2F("fHOutCentZNAvsCentTRK","fHOutCentZNAvsCentTRK; Cent ZNA; Cent TRK;", 505,0,101,505,0,101);
982 fHOutCentZNAvsCentCND= new TH2F("fHOutCentZNAvsCentCND","fHOutCentZNAvsCentCND; Cent ZNA; Cent CND;", 505,0,101,505,0,101);
983 fHOutCentZNAvsCentCL1= new TH2F("fHOutCentZNAvsCentCL1","fHOutCentZNAvsCentCL1; Cent ZNA; Cent CL1;", 505,0,101,505,0,101);
bfbc1975 984 fHOutCentZNAvsCentZPA= new TH2F("fHOutCentZNAvsCentZPA","fHOutCentZNAvsCentZPA; Cent ZNA; Cent ZPA;", 505,0,101,505,0,101);
01974bd1 985
986 fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
987 fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
988 fHOutMultV0A = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
9113c527 989 fHOutMultV0A0 = new TH1F("fHOutMultV0A0","fHOutMultV0A0; Multiplicity V0A-0",25000,0,25000);
2d12adde 990 fHOutMultV0A123 = new TH1F("fHOutMultV0A123","fHOutMultV0A123; Multiplicity V0A-123",25000,0,25000);
01974bd1 991 fHOutMultV0C = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
26f02c2c 992 fHOutMultV0A23 = new TH1F("fHOutMultV0A23","fHOutMultV0A23; Multiplicity V0A-23",25000,0,25000);
993 fHOutMultV0C01 = new TH1F("fHOutMultV0C01","fHOutMultV0C01; Multiplicity V0C-01",25000,0,25000);
994 fHOutMultV0S = new TH1F("fHOutMultV0S","fHOutMultV0S; Multiplicity V0A-23 & V0C-01",25000,0,25000);
7c928baf 995 fHOutMultV0MEq = new TH1F("fHOutMultV0MEq","fHOutMultV0MEq; Multiplicity V0",25000,0,25000);
996 fHOutMultV0AEq = new TH1F("fHOutMultV0AEq","fHOutMultV0AEq; Multiplicity V0",25000,0,25000);
997 fHOutMultV0CEq = new TH1F("fHOutMultV0CEq","fHOutMultV0CEq; Multiplicity V0",25000,0,25000);
e1d58f75 998 fHOutMultV0Mnc= new TH1F("fHOutMultV0Mnc","fHOutMultV0Mnc; Multiplicity V0",25000,0,25000);
999 fHOutMultV0Anc= new TH1F("fHOutMultV0Anc","fHOutMultV0Anc; Multiplicity V0",25000,0,25000);
1000 fHOutMultV0Cnc= new TH1F("fHOutMultV0Cnc","fHOutMultV0Cnc; Multiplicity V0",25000,0,25000);
01974bd1 1001 fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000);
1002 fHOutMultV0Cells = new TH2F("fHOutMultV0Cells","fHOutMultV0Cells",33,-0.5,32.5,33,-0.5,32.5);
1003 fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
1004 fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
1005 fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
1006 fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
1007 fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
1008 fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
8432b617 1009 fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
3a19f64f 1010 fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",2000,0,2000);
1011 fHOutMultZNC = new TH1F("fHOutMultZNC","fHOutMultZNC; ZNC Energy",2000,0,2000);
1012 fHOutMultZPA = new TH1F("fHOutMultZPA","fHOutMultZPA; ZPA Energy",2000,0,2000);
1013 fHOutMultZPC = new TH1F("fHOutMultZPC","fHOutMultZPC; ZPC Energy",2000,0,2000);
01974bd1 1014
3a19f64f 1015 fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,1200,500,0,2000);
01974bd1 1016 fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
1017 fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
1018 fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
1019 fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000);
1020 fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
1021 fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
1022 fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1023 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000);
1024 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000);
1025 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000);
1026 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000);
1027 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
1028 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
1029 fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
bfbc1975 1030 fHOutMultZNAvsZPA = new TH2F ("fHOutMultZNAvsZPA","fHOutMultZNAvsZPA; Energy ZNA; Energy ZPA",500,0,2000,500,0,2000);
01974bd1 1031
1032 fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
1033 fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
1034 fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101);
1035 fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
1036 fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
1037 fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1038
1039 fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101);
1040 fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101);
1041 fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101);
1042 fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
1043 fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
1044 fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1045
1046 fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5);
1047 fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20);
1048 fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20);
1049
377e5a61 1050 fOutputList->Add(fHOutCentV0M);
1051 fOutputList->Add(fHOutCentV0A);
9113c527 1052 fOutputList->Add(fHOutCentV0A0);
2d12adde 1053 fOutputList->Add(fHOutCentV0A123);
377e5a61 1054 fOutputList->Add(fHOutCentV0C);
26f02c2c 1055 fOutputList->Add(fHOutCentV0A23);
1056 fOutputList->Add(fHOutCentV0C01);
1057 fOutputList->Add(fHOutCentV0S);
1a9bd911 1058 fOutputList->Add(fHOutCentV0MEq);
1059 fOutputList->Add(fHOutCentV0AEq);
1060 fOutputList->Add(fHOutCentV0CEq);
377e5a61 1061 fOutputList->Add(fHOutCentV0MCVHN);
1062 fOutputList->Add(fHOutCentV0MCVLN);
1063 fOutputList->Add(fHOutCentV0MCVHNinMB);
1064 fOutputList->Add(fHOutCentV0MCVLNinMB);
1065 fOutputList->Add(fHOutCentV0MCCENT);
1066 fOutputList->Add(fHOutCentV0MCSEMI);
1067 fOutputList->Add(fHOutCentV0MCCENTinMB);
1068 fOutputList->Add(fHOutCentV0MCSEMIinMB);
1069 fOutputList->Add(fHOutCentV0MMSL);
1070 fOutputList->Add(fHOutCentV0MMSH);
1071 fOutputList->Add(fHOutCentV0MMUL);
1072 fOutputList->Add(fHOutCentV0MMLL);
1073 fOutputList->Add(fHOutCentV0MEJE);
1074 fOutputList->Add(fHOutCentV0MEGA);
1075 fOutputList->Add(fHOutCentV0MPHS);
1076 fOutputList->Add(fHOutCentV0MMSLinMB);
1077 fOutputList->Add(fHOutCentV0MMSHinMB);
1078 fOutputList->Add(fHOutCentV0MMULinMB);
1079 fOutputList->Add(fHOutCentV0MMLLinMB);
1080 fOutputList->Add(fHOutCentV0MEJEinMB);
1081 fOutputList->Add(fHOutCentV0MEGAinMB);
1082 fOutputList->Add(fHOutCentV0MPHSinMB);
1083 fOutputList->Add(fHOutCentFMD);
1084 fOutputList->Add(fHOutCentTRK);
1085 fOutputList->Add(fHOutCentTKL);
1086 fOutputList->Add(fHOutCentCL0);
1087 fOutputList->Add(fHOutCentCL1);
1088 fOutputList->Add(fHOutCentCND);
1089 fOutputList->Add(fHOutCentNPA);
1090 fOutputList->Add(fHOutCentZNA);
1a9bd911 1091 fOutputList->Add(fHOutCentZNC);
3a19f64f 1092 fOutputList->Add(fHOutCentZPA);
1093 fOutputList->Add(fHOutCentZPC);
377e5a61 1094 fOutputList->Add(fHOutCentV0MvsFMD);
1095 fOutputList->Add(fHOutCentTKLvsV0M);
1096 fOutputList->Add(fHOutCentZEMvsZDC);
1097 fOutputList->Add(fHOutCentV0MvsCentCL1);
1098 fOutputList->Add(fHOutCentV0MvsCentTRK);
1099 fOutputList->Add(fHOutCentTRKvsCentCL1);
1100 fOutputList->Add(fHOutCentV0MvsCentZDC);
1101 fOutputList->Add(fHOutCentV0AvsCentV0C);
1102 fOutputList->Add(fHOutCentV0AvsCentTRK);
1103 fOutputList->Add(fHOutCentV0AvsCentCND);
1104 fOutputList->Add(fHOutCentV0AvsCentCL1);
1105 fOutputList->Add(fHOutCentV0CvsCentTRK);
1106 fOutputList->Add(fHOutCentV0CvsCentCND);
1107 fOutputList->Add(fHOutCentV0CvsCentCL1);
1108 fOutputList->Add(fHOutCentNPAvsCentV0A);
1109 fOutputList->Add(fHOutCentNPAvsCentV0C);
1110 fOutputList->Add(fHOutCentNPAvsCentTRK);
1111 fOutputList->Add(fHOutCentNPAvsCentCND);
1112 fOutputList->Add(fHOutCentNPAvsCentCL1);
1113 fOutputList->Add(fHOutCentZNAvsCentV0A);
1114 fOutputList->Add(fHOutCentZNAvsCentV0C);
1115 fOutputList->Add(fHOutCentZNAvsCentTRK);
1116 fOutputList->Add(fHOutCentZNAvsCentCND);
1117 fOutputList->Add(fHOutCentZNAvsCentCL1);
bfbc1975 1118 fOutputList->Add(fHOutCentZNAvsCentZPA);
377e5a61 1119
1120 fOutputList->Add(fHOutMultV0AC);
1121 fOutputList->Add(fHOutMultV0M);
1122 fOutputList->Add(fHOutMultV0A);
9113c527 1123 fOutputList->Add(fHOutMultV0A0);
2d12adde 1124 fOutputList->Add(fHOutMultV0A123);
377e5a61 1125 fOutputList->Add(fHOutMultV0C);
26f02c2c 1126 fOutputList->Add(fHOutMultV0A23);
1127 fOutputList->Add(fHOutMultV0C01);
1128 fOutputList->Add(fHOutMultV0S);
7c928baf 1129 fOutputList->Add(fHOutMultV0MEq);
1130 fOutputList->Add(fHOutMultV0AEq);
1131 fOutputList->Add(fHOutMultV0CEq);
377e5a61 1132 fOutputList->Add(fHOutMultV0Mnc);
1133 fOutputList->Add(fHOutMultV0Anc);
1134 fOutputList->Add(fHOutMultV0Cnc);
1135 fOutputList->Add(fHOutMultV0O);
1136 fOutputList->Add(fHOutMultV0Cells) ;
1137 fOutputList->Add(fHOutMultFMD);
1138 fOutputList->Add(fHOutMultTRK);
1139 fOutputList->Add(fHOutMultTKL);
1140 fOutputList->Add(fHOutMultCL0);
1141 fOutputList->Add(fHOutMultCL1);
1142 fOutputList->Add(fHOutMultCND);
1143 fOutputList->Add(fHOutMultNPA);
1144 fOutputList->Add(fHOutMultZNA);
7c928baf 1145 fOutputList->Add(fHOutMultZNC);
3a19f64f 1146 fOutputList->Add(fHOutMultZPA);
1147 fOutputList->Add(fHOutMultZPC);
377e5a61 1148 fOutputList->Add(fHOutMultV0MvsZDN);
1149 fOutputList->Add(fHOutMultZEMvsZDN);
1150 fOutputList->Add(fHOutMultV0MvsZDC);
1151 fOutputList->Add(fHOutMultZEMvsZDC);
1152 fOutputList->Add(fHOutMultZEMvsZDCw);
1153 fOutputList->Add(fHOutMultV0MvsCL1);
1154 fOutputList->Add(fHOutMultV0MvsTRK);
1155 fOutputList->Add(fHOutMultTRKvsCL1);
1156 fOutputList->Add(fHOutMultV0MvsV0O);
1157 fOutputList->Add(fHOutMultV0OvsCL1);
1158 fOutputList->Add(fHOutMultV0OvsTRK);
1159 fOutputList->Add(fHOutMultCL1vsTKL);
bfbc1975 1160 fOutputList->Add(fHOutMultZNAvsZPA);
377e5a61 1161 fOutputList->Add(fHOutCentV0Mqual1);
1162 fOutputList->Add(fHOutCentTRKqual1);
1163 fOutputList->Add(fHOutCentCL1qual1);
1164 fOutputList->Add(fHOutMultV0MvsCL1qual1);
1165 fOutputList->Add(fHOutMultV0MvsTRKqual1);
1166 fOutputList->Add(fHOutMultTRKvsCL1qual1);
1167 fOutputList->Add(fHOutCentV0Mqual2);
1168 fOutputList->Add(fHOutCentTRKqual2);
1169 fOutputList->Add(fHOutCentCL1qual2);
1170 fOutputList->Add(fHOutMultV0MvsCL1qual2);
1171 fOutputList->Add(fHOutMultV0MvsTRKqual2);
1172 fOutputList->Add(fHOutMultTRKvsCL1qual2);
1173 fOutputList->Add(fHOutQuality);
1174 fOutputList->Add(fHOutVertex);
1175 fOutputList->Add(fHOutVertexT0);
01974bd1 1176
1177 PostData(1, fOutputList);
1178 }
1179
1180 fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
2d27827d 1181 fEsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
1182 fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kOff);
1183 // Add SPD requirement
1184 fEsdTrackCutsExtra1 = new AliESDtrackCuts("SPD", "Require 1 cluster in SPD");
1185 fEsdTrackCutsExtra1->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1186 // Add SDD requirement
1187 fEsdTrackCutsExtra2 = new AliESDtrackCuts("SDD", "Require 1 cluster in first layer SDD");
1188 fEsdTrackCutsExtra2->SetClusterRequirementITS(AliESDtrackCuts::kSDD,AliESDtrackCuts::kFirst);
01974bd1 1189}
1190
1191//________________________________________________________________________
1192void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
1193{
1194 // Execute analysis for current event:
1195 if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
1196
c932ac15 1197 Int_t runType = 0; // 0:PbPb, 1:pPb or Pbp
1198
01974bd1 1199 Float_t zncEnergy = 0.; // ZNC Energy
1200 Float_t zpcEnergy = 0.; // ZPC Energy
1201 Float_t znaEnergy = 0.; // ZNA Energy
1202 Float_t zpaEnergy = 0.; // ZPA Energy
1203 Float_t zem1Energy = 0.; // ZEM1 Energy
1204 Float_t zem2Energy = 0.; // ZEM2 Energy
1205 Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2)
99029fba 1206 Double_t znaTower = 0.; // common PMT of ZNA
3a19f64f 1207 Double_t zncTower = 0.; // common PMT of ZNC
1208 Double_t zpaTower = 0.; // common PMT of ZPA
1209 Double_t zpcTower = 0.; // common PMT of ZPC
99029fba 1210 Bool_t znaFired = kFALSE;
f9a774f9 1211 Bool_t zncFired = kFALSE;
3a19f64f 1212 Bool_t zpaFired = kFALSE;
1213 Bool_t zpcFired = kFALSE;
01974bd1 1214
1215 Int_t nTracks = 0; // no. tracks
1216 Int_t nTracklets = 0; // no. tracklets
1217 Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers
377e5a61 1218 Int_t nChips[2] = {0,0}; // no. chips on 2 SPD layers
01974bd1 1219 Float_t spdCorr =0; // corrected spd2 multiplicity
1220 Int_t multCND = 0; // no. tracks (candle condition)
1221
97570bc1 1222 Float_t multV0A0 = 0; // multiplicity from V0 reco side A (ring 0)
2d12adde 1223 Float_t multV0A123 = 0; // multiplicity from V0 reco side A (ring 1-2-3)
01974bd1 1224 Float_t multV0A = 0; // multiplicity from V0 reco side A
1225 Float_t multV0C = 0; // multiplicity from V0 reco side C
26f02c2c 1226 Float_t multV0A23 = 0; // multiplicity from V0 reco side A (ring 2-3)
1227 Float_t multV0C01 = 0; // multiplicity from V0 reco side C (ring 0-1)
f9a774f9 1228 Float_t multV0AEq = 0; // multiplicity from V0 reco side A
1229 Float_t multV0CEq = 0; // multiplicity from V0 reco side C
97570bc1 1230 Float_t multV0A0Corr = 0; // multiplicity from V0 reco side A (ring 0)
1231 Float_t multV0A123Corr = 0; // multiplicity from V0 reco side A (ring 1-2-3)
26f02c2c 1232 Float_t multV0A23Corr = 0; // multiplicity from V0 reco side A (ring 2-3)
1233 Float_t multV0C01Corr = 0; // multiplicity from V0 reco side C (ring 0-1)
1234 Float_t multV0SCorr = 0; // multiplicity from V0 reco side A (ring 2-3) & side C (ring 0-1)
97570bc1 1235 Float_t multV0ACorr = 0; // multiplicity from V0 reco side A
1236 Float_t multV0CCorr = 0; // multiplicity from V0 reco side C
01974bd1 1237 Short_t multV0AOnline = 0; // multiplicity from V0 reco side A
1238 Short_t multV0COnline = 0; // multiplicity from V0 reco side C
8432b617 1239 Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC)
26f02c2c 1240
01974bd1 1241 Int_t nV0A = 0;
1242 Int_t nV0C = 0;
1243
1244 Float_t multFMDA = 0; // multiplicity from FMD on detector A
1245 Float_t multFMDC = 0; // multiplicity from FMD on detector C
1246
1247 Float_t zvtx =0; // z-vertex SPD
1248 Int_t zvtxNcont =0; // contributors to z-vertex SPD
1249
1250 Float_t zvtxT0 =0; // z-vertex T0
1251
8432b617 1252 Int_t Npart =0; // N. of participants (true MC)
01974bd1 1253
1254 AliCentrality *esdCent = 0;
1255
377e5a61 1256 AliVEvent *event = InputEvent();
1257 AliESDEvent *esd = dynamic_cast<AliESDEvent*>(event);
1258 AliAODEvent *aod = dynamic_cast<AliAODEvent*>(event);
01974bd1 1259 if(fAnalysisInput.CompareTo("ESD")==0){
01974bd1 1260 if (!esd) {
1261 AliError("No ESD Event");
1262 return;
1263 }
377e5a61 1264 } else if(fAnalysisInput.CompareTo("AOD")==0){
1265 if (!aod) {
1266 AliError("No AOD Event");
01974bd1 1267 return;
1268 }
377e5a61 1269 }
1270 LoadBranches();
1271
1272 if (SetupRun(event)<0) {
1273 AliError("Centrality File not available for this run");
1274 return;
1275 }
1276
1277 if (esd) {
c932ac15 1278 if (strcmp(esd->GetESDRun()->GetBeamType(), "A-A") == 0) runType=0;
e786baa0 1279 else runType=1;
1280 if (strcmp(esd->GetESDRun()->GetBeamType(), "p-p") == 0) runType=2;
377e5a61 1281 } else {
1282 Int_t runNumber = event->GetRunNumber();
1283 if ((runNumber >= 136851 && runNumber <= 139517) || // LHC10h
1284 (runNumber >= 166529 && runNumber <= 170593)) // LHC11h
1285 runType=0;
3ea81187 1286 else if ((runNumber >= 188355 && runNumber <= 188366) || // LHC12h
1287 (runNumber >= 195344 && runNumber <= 197692)) // LHC13h
1288 runType=1;
1289 else runType=2;
377e5a61 1290 }
c932ac15 1291
377e5a61 1292 esdCent = event->GetCentrality();
01974bd1 1293
377e5a61 1294 // ***** Vertex Info
1295 if (esd) {
e1d58f75 1296 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
1297 zvtx = vtxESD->GetZ();
1298 zvtxNcont = vtxESD->GetNContributors();
377e5a61 1299 } else {
1300 const AliAODVertex* spdVtx = aod->GetPrimaryVertexSPD();
1301 zvtx = spdVtx->GetZ();
1302 zvtxNcont = spdVtx->GetNContributors();
1303 }
e1d58f75 1304
01974bd1 1305 // ***** V0 info
377e5a61 1306 AliVVZERO* esdV0 = event->GetVZEROData();
1307 if (!esdV0) {
1308 AliError("AliVVZERO not available");
1309 return;
1310 }
e1d58f75 1311
377e5a61 1312 multV0A=esdV0->GetMTotV0A();
1313 multV0C=esdV0->GetMTotV0C();
e1d58f75 1314
2d12adde 1315 // excluding innermost V0A ring
9113c527 1316 for (int i=32; i<40; i++)
1317 multV0A0 += esdV0->GetMultiplicity(i);
2d12adde
AM
1318 for (int i=40; i<64; i++)
1319 multV0A123 += esdV0->GetMultiplicity(i);
1320
26f02c2c 1321 for (int i=48; i<64; i++)
1322 multV0A23 += esdV0->GetMultiplicity(i);
1323 for (int i=0; i<16; i++)
1324 multV0C01 += esdV0->GetMultiplicity(i);
1325
1326
97570bc1 1327 multV0A0Corr = AliESDUtils::GetCorrV0A0(multV0A0,zvtx);
1328 multV0A123Corr = AliESDUtils::GetCorrV0A(multV0A123,zvtx);
1329 multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);
1330 multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);
26f02c2c 1331 multV0A23Corr = AliESDUtils::GetCorrV0A(multV0A23,zvtx);
1332 multV0C01Corr = AliESDUtils::GetCorrV0C(multV0C01,zvtx);
1333 multV0SCorr = multV0A23Corr + multV0C01Corr;
3a19f64f 1334 v0Corr = multV0A+multV0C; // Todo: C.L. not clear why here we do not use the sum of the corrected values?
26f02c2c 1335
377e5a61 1336 multV0AOnline=esdV0->GetTriggerChargeA();
1337 multV0COnline=esdV0->GetTriggerChargeC();
1338
1339 // Count V0 flags
1340 for(Int_t i = 0; i < 32; ++i) {
1341 if (esdV0->GetBBFlag(i)) nV0C++;
1342 if (esdV0->GetBBFlag(i+32)) nV0A++;
1343 }
01974bd1 1344
f9a774f9 1345 // Equalized signals
1346 multV0AEq=0.;
1347 multV0CEq=0.;
f5cff976 1348 if (esd) { // only for ESD?
5666ecb7 1349 for(Int_t iCh = 32; iCh < 64; ++iCh) {
f5cff976 1350 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1351 multV0AEq += mult;
1352 }
5666ecb7 1353 for(Int_t iCh = 0; iCh < 32; ++iCh) {
f5cff976 1354 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1355 multV0CEq += mult;
1356 }
f9a774f9 1357 }
5666ecb7 1358 else {
1359 for(Int_t iCh = 32; iCh < 64; ++iCh) {
1360 Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
1361 multV0AEq += mult;
1362 }
1363 for(Int_t iCh = 0; iCh < 32; ++iCh) {
1364 Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
1365 multV0CEq += mult;
1366 }
1367 }
377e5a61 1368 Bool_t kT0BB = kFALSE;
1369 if (esd) {
01974bd1 1370 // ***** T0 info
1371 const AliESDTZERO* esdT0 = esd->GetESDTZERO();
1372 if (!esdT0)
1373 {
1374 AliError("AliESDTZERO not available");
1375 return;
1376 }
1377 Int_t trig=esdT0->GetT0Trig();
01974bd1 1378 if(trig&1) kT0BB=kTRUE;
1379 zvtxT0=esdT0->GetT0zVertex();
377e5a61 1380 } else {
1381 const AliAODTZERO* esdT0 = aod->GetTZEROData();
1382 if (!esdT0)
1383 {
1384 AliError("AliAODTZERO not available");
1385 return;
1386 }
3a19f64f 1387 Int_t trig=1;//esdT0->GetT0Trig(); //* Todo: C.L. This info is not in AOD? */
377e5a61 1388 if(trig&1) kT0BB=kTRUE;
1389 zvtxT0=esdT0->GetT0zVertex();
1390 }
01974bd1 1391
377e5a61 1392 // ***** Trigger info
1393 fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1));
1394 TString trigStr;
1395 if (esd)
1396 trigStr = esd->GetFiredTriggerClasses();
1397 else
1398 trigStr = aod->GetFiredTriggerClasses();
01974bd1 1399
377e5a61 1400 fMB=kFALSE;
1401 fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE;
1402 fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE;
1403 fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE;
1404
1405 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI")) && (fIsSelected))
1406 fMB=kTRUE;
1407 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected))
1408 fCVHN=kTRUE;
1409 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected))
1410 fCVLN=kTRUE;
1411 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected))
1412 fCCENT=kTRUE;
1413 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected))
1414 fCSEMI=kTRUE;
01974bd1 1415
377e5a61 1416 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected))
1417 fMSL=kTRUE;
1418 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected))
1419 fMSH=kTRUE;
1420 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected))
1421 fMUL=kTRUE;
1422 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected))
1423 fMLL=kTRUE;
1424 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected))
1425 fEJE=kTRUE;
1426 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected))
1427 fEGA=kTRUE;
1428 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected))
1429 fPHS=kTRUE;
1430
1431 fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE;
1432 if (esdV0->GetTriggerBits() & (1<<8))
1433 fCVHNbit=kTRUE;
1434 if (esdV0->GetTriggerBits() & (1<<6))
1435 fCVLNbit=kTRUE;
01974bd1 1436
377e5a61 1437 if (kT0BB && fCVHNbit)
1438 fCCENTbit=kTRUE;
1439 if (kT0BB && fCVLNbit)
1440 fCSEMIbit=kTRUE;
01974bd1 1441
377e5a61 1442 if (esd) {
01974bd1 1443 // ***** CB info (tracklets, clusters, chips)
1444 //nTracks = event->GetNumberOfTracks();
1445 nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
377e5a61 1446 } else {
1447 AliAODHeader *h = aod->GetHeader();
1448 nTracks = h!=0 ? (Short_t)h->GetTPConlyRefMultiplicity():-1;
1449 }
2d27827d 1450
377e5a61 1451 if (esd) {
01974bd1 1452 Short_t nTrTPCcandle = 0;
1453 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
2d27827d 1454
01974bd1 1455 AliESDtrack* track = esd->GetTrack(iTracks);
1456 if (!track) continue;
2d27827d 1457
1458 if (! fEsdTrackCuts->IsSelected(track) )continue;
1459
1460 if (fEsdTrackCutsExtra1 && fEsdTrackCutsExtra2 &&
1461 !fEsdTrackCutsExtra1->IsSelected(track) &&
1462 !fEsdTrackCutsExtra2->IsSelected(track)) continue;
1463
1464 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
01974bd1 1465 }
1466 multCND = nTrTPCcandle;
377e5a61 1467 } else {
1468 Short_t nTrTPCcandle = 0;
1469 for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
1470
1471 AliAODTrack* track = aod->GetTrack(iTracks);
1472
1473 if (!track) continue;
1474 if (!track->TestFilterBit(1<<5) &&
1475 !track->TestFilterBit(1<<6)) continue;
1476
1477 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1478 }
1479 multCND = nTrTPCcandle;
1480 }
01974bd1 1481
377e5a61 1482 if (esd) {
01974bd1 1483 const AliMultiplicity *mult = esd->GetMultiplicity();
1484 nTracklets = mult->GetNumberOfTracklets();
1485
1486 for(Int_t ilay=0; ilay<6; ilay++){
1487 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1488 }
1489
1490 for(Int_t ilay=0; ilay<2; ilay++){
1491 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1492 }
377e5a61 1493 } else {
1494 AliAODTracklets *mult = aod->GetTracklets();
1495 nTracklets = mult->GetNumberOfTracklets();
1496 AliAODHeader *h = aod->GetHeader();
1497 for(Int_t ilay=0; ilay<6; ilay++){
1498 nClusters[ilay] = h->GetNumberOfITSClusters(ilay);
1499 }
1500 }
1501 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1502
1503 if (esd) {
01974bd1 1504 // ***** FMD info
1505 AliESDFMD *fmd = esd->GetFMDData();
1506 Float_t totalMultA = 0;
1507 Float_t totalMultC = 0;
1508 const Float_t fFMDLowCut = 0.4;
1509
1510 for(UShort_t det=1;det<=3;det++) {
1511 Int_t nRings = (det==1 ? 1 : 2);
1512 for (UShort_t ir = 0; ir < nRings; ir++) {
1513 Char_t ring = (ir == 0 ? 'I' : 'O');
1514 UShort_t nsec = (ir == 0 ? 20 : 40);
1515 UShort_t nstr = (ir == 0 ? 512 : 256);
1516 for(UShort_t sec =0; sec < nsec; sec++) {
1517 for(UShort_t strip = 0; strip < nstr; strip++) {
1518
1519 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1520 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1521
1522 Float_t nParticles=0;
1523
1524 if(fmdMult > fFMDLowCut) {
1525 nParticles = 1.;
1526 }
1527
1528 if (det<3) totalMultA = totalMultA + nParticles;
1529 else totalMultC = totalMultC + nParticles;
1530
1531 }
1532 }
1533 }
1534 }
1535 multFMDA = totalMultA;
1536 multFMDC = totalMultC;
377e5a61 1537 }
1538
1539 if (esd) {
01974bd1 1540 // ***** ZDC info
1541 AliESDZDC *esdZDC = esd->GetESDZDC();
1542 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1543 if (zdcEnergyCal) {
1544 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1545 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1546 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1547 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1548 } else {
1549 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1550 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1551 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1552 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1553 }
1554 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1555 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
99029fba 1556
f9a774f9 1557 for (Int_t j = 0; j < 4; ++j)
1558 if (esdZDC->GetZDCTDCData(12,j) != 0)
99029fba 1559 znaFired = kTRUE;
f9a774f9 1560
1561 for (Int_t j = 0; j < 4; ++j)
1562 if (esdZDC->GetZDCTDCData(10,j) != 0)
1563 zncFired = kTRUE;
1564
3a19f64f 1565 for (Int_t j = 0; j < 4; ++j)
1566 if (esdZDC->GetZDCTDCData(13,j) != 0)
1567 zpaFired = kTRUE;
1568
1569 for (Int_t j = 0; j < 4; ++j)
1570 if (esdZDC->GetZDCTDCData(11,j) != 0)
1571 zpcFired = kTRUE;
1572
bfbc1975 1573 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1574 const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
1575 const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy();
1576 const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
1577 if (znaFired) znaTower = ZNAtower[0];
1578 if (zncFired) zncTower = ZNCtower[0];
1579 if (zpaFired) zpaTower = ZPAtower[0];
1580 if (zpcFired) zpcTower = ZPCtower[0];
1581
377e5a61 1582 } else {
1583 AliAODHeader *h = aod->GetHeader();
3a19f64f 1584 zncEnergy = (Float_t) (h->GetZDCN1Energy());
1585 zpcEnergy = (Float_t) (h->GetZDCP1Energy());
1586 znaEnergy = (Float_t) (h->GetZDCN2Energy());
1587 zpaEnergy = (Float_t) (h->GetZDCP2Energy());
377e5a61 1588 zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
1589 zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
1590
1591 AliAODZDC *aodZDC = aod->GetZDCData();
1592 const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy();
3a19f64f 1593 const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
1594 const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy();
1595 const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
377e5a61 1596 znaTower = ZNAtower[0];
666dc076 1597 zncTower = ZNCtower[0];
3a19f64f 1598 zpaTower = ZPAtower[0];
1599 zpcTower = ZPCtower[0];
377e5a61 1600
1601 znaFired = kFALSE; // trick because info is not stored in AOD
666dc076 1602 zncFired = kFALSE; // trick because info is not stored in AOD
3a19f64f 1603 zpaFired = kFALSE; // trick because info is not stored in AOD
1604 zpcFired = kFALSE; // trick because info is not stored in AOD
1605 if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
1606 if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
1607 if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
1608 if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
377e5a61 1609 }
1610
1611 if (esd) {
99029fba 1612 // ***** MC info
1613 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1614 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
3a19f64f 1615 AliStack* stack=0;
99029fba 1616 AliMCEvent* mcEvent=0;
3a19f64f 1617 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
99029fba 1618 AliGenHijingEventHeader* hHijing=0;
9b389d09 1619 AliGenDPMjetEventHeader* dpmHeader=0;
1620
99029fba 1621 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
74b0bf85 1622 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1623 hHijing = (AliGenHijingEventHeader*)mcGenH;
99029fba 1624 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1625 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
3a19f64f 1626 //headers->Print();
99029fba 1627 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
74b0bf85 1628 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
3ef9b178 1629 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
99029fba 1630 }
9b389d09 1631 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1632 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
99029fba 1633 }
74b0bf85 1634 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1635 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
8432b617 1636 }
01974bd1 1637 }
1638
1639 // ***** Scaling for MC
1640 if (fIsMCInput) {
1641 fUseScaling=kFALSE;
97570bc1 1642 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1643 multV0A0 = multV0A0 * fV0MScaleFactorMC;
bfd47aba 1644 multV0A = multV0A * fV0MScaleFactorMC;
1645 multV0C = multV0C * fV0MScaleFactorMC;
01974bd1 1646 }
1647 // ***** Scaling for Data
1648 if (fUseScaling) {
1649 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1650 spdCorr = spdCorr / fSPDScaleFactor;
1651 nTracks = Int_t(nTracks / fTPCScaleFactor);
1652 }
1653
1654 // ***** Centrality Selection
1655 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
e1d58f75 1656 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
97570bc1 1657 if(fHtempV0A0) fCentV0A0 = fHtempV0A0->GetBinContent(fHtempV0A0->FindBin((multV0A0Corr)));
1658 if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123Corr)));
e1d58f75 1659 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
26f02c2c 1660 if(fHtempV0A23) fCentV0A23 = fHtempV0A23->GetBinContent(fHtempV0A23->FindBin((multV0A23Corr)));
1661 if(fHtempV0C01) fCentV0C01 = fHtempV0C01->GetBinContent(fHtempV0C01->FindBin((multV0C01Corr)));
1662 if(fHtempV0S) fCentV0S = fHtempV0S->GetBinContent(fHtempV0S->FindBin((multV0SCorr)));
f9a774f9 1663 if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
1664 if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
1665 if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
01974bd1 1666 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1667 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1668 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1669 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1670 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1671 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
99029fba 1672 if(fHtempZNA) {
1673 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1674 else fCentZNA = 101;
1675 }
f9a774f9 1676 if(fHtempZNC) {
1677 if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
1678 else fCentZNC = 101;
1679 }
3a19f64f 1680 if(fHtempZPA) {
1681 if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
1682 else fCentZPA = 101;
1683 }
1684 if(fHtempZPC) {
1685 if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
1686 else fCentZPC = 101;
1687 }
1688
1689
01974bd1 1690 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1691 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1692 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1693
39a3e400 1694 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1695 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1696 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1697 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
f9a774f9 1698 if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
1699 if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
1700 if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
39a3e400 1701 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1702 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1703 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1704 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1705 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1706 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1707 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
f9a774f9 1708 if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
39a3e400 1709
1710
01974bd1 1711 // ***** Cleaning
1712 if (fUseCleaning) {
1713 fQuality=0;
1714
1715 // ***** vertex
1716 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1717
1718 // ***** outliers, skip in case of MC input
1719 if (!fIsMCInput) {
1720 // **** V0 vs SPD
1721 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1722 // ***** V0 vs TPC
1723 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1724 // ***** V0 vs ZDC
1725 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1726 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1727 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1728 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1729 }
1730 } else {
1731 fQuality = 0;
1732 }
1733
1734
1735 if (esdCent) {
377e5a61 1736 if (aod&&(fDebug>1)) {
1737 Double_t v0m = esdCent->GetCentralityPercentile("V0M");
1738 Double_t cl1 = esdCent->GetCentralityPercentile("CL1");
1739 Double_t trk = esdCent->GetCentralityPercentile("TRK");
1740 Double_t cnd = esdCent->GetCentralityPercentile("CND");
1741 Double_t zna = esdCent->GetCentralityPercentile("ZNA");
3a19f64f 1742 printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n",
377e5a61 1743 v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK,
3a19f64f 1744 fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
377e5a61 1745 }
01974bd1 1746 esdCent->SetQuality(fQuality);
1747 esdCent->SetCentralityV0M(fCentV0M);
1748 esdCent->SetCentralityV0A(fCentV0A);
667b97c4 1749 esdCent->SetCentralityV0A0(fCentV0A0);
2d12adde 1750 esdCent->SetCentralityV0A123(fCentV0A123);
01974bd1 1751 esdCent->SetCentralityV0C(fCentV0C);
26f02c2c 1752 esdCent->SetCentralityV0A23(fCentV0A23);
1753 esdCent->SetCentralityV0C01(fCentV0C01);
1754 esdCent->SetCentralityV0S(fCentV0S);
f9a774f9 1755 esdCent->SetCentralityV0MEq(fCentV0MEq);
1756 esdCent->SetCentralityV0AEq(fCentV0AEq);
1757 esdCent->SetCentralityV0CEq(fCentV0CEq);
01974bd1 1758 esdCent->SetCentralityFMD(fCentFMD);
1759 esdCent->SetCentralityTRK(fCentTRK);
1760 esdCent->SetCentralityTKL(fCentTKL);
1761 esdCent->SetCentralityCL0(fCentCL0);
1762 esdCent->SetCentralityCL1(fCentCL1);
1763 esdCent->SetCentralityCND(fCentCND);
8432b617 1764 esdCent->SetCentralityNPA(fCentNPA);
99029fba 1765 esdCent->SetCentralityZNA(fCentZNA);
f9a774f9 1766 esdCent->SetCentralityZNC(fCentZNC);
3a19f64f 1767 esdCent->SetCentralityZPA(fCentZPA);
1768 esdCent->SetCentralityZPC(fCentZPC);
01974bd1 1769 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1770 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1771 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1772 }
1773
1774 // filling QA histograms
1775 if (fFillHistos) {
39a3e400 1776
1777 if (fIsMCInput) { // fill histo with true centrality for simulations
1778 fCentV0M = fCentV0Mtrue;
1779 fCentV0A = fCentV0Atrue;
1780 fCentV0C = fCentV0Ctrue;
f9a774f9 1781 fCentV0MEq = fCentV0MEqtrue;
1782 fCentV0AEq = fCentV0AEqtrue;
1783 fCentV0CEq = fCentV0CEqtrue;
39a3e400 1784 fCentFMD = fCentFMDtrue;
1785 fCentTRK = fCentTRKtrue;
1786 fCentTKL = fCentTKLtrue;
1787 fCentCL0 = fCentCL0true;
1788 fCentCL1 = fCentCL1true;
1789 fCentCND = fCentCNDtrue;
1790 fCentZNA = fCentZNAtrue;
f9a774f9 1791 fCentZNC = fCentZNCtrue;
3a19f64f 1792 fCentZPA = fCentZPAtrue;
1793 fCentZPC = fCentZPCtrue;
39a3e400 1794 }
1795
1796
01974bd1 1797 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1798
1799 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1800 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1801 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1802 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1803 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1804 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1805 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1806 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1807 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1808 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1809 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1810
c932ac15 1811 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
e786baa0 1812 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) ||
1813 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
9113c527 1814
01974bd1 1815 fHOutQuality->Fill(fQuality);
1816 fHOutVertex->Fill(zvtx);
1817 fHOutVertexT0->Fill(zvtxT0);
1818
1819 if (fQuality==0) {
1820 fHOutCentV0M->Fill(fCentV0M);
1821 fHOutCentV0A->Fill(fCentV0A);
9113c527 1822 fHOutCentV0A0->Fill(fCentV0A0);
2d12adde 1823 fHOutCentV0A123->Fill(fCentV0A123);
01974bd1 1824 fHOutCentV0C->Fill(fCentV0C);
26f02c2c 1825 fHOutCentV0A23->Fill(fCentV0A23);
1826 fHOutCentV0C01->Fill(fCentV0C01);
1827 fHOutCentV0S->Fill(fCentV0S);
f9a774f9 1828 fHOutCentV0MEq->Fill(fCentV0MEq);
1829 fHOutCentV0AEq->Fill(fCentV0AEq);
1830 fHOutCentV0CEq->Fill(fCentV0CEq);
01974bd1 1831
1832 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1833 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1834 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1835 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1836 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1837 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1838 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1839 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1840 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1841 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1842 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1843
1844 fHOutCentFMD->Fill(fCentFMD);
1845 fHOutCentTRK->Fill(fCentTRK);
1846 fHOutCentTKL->Fill(fCentTKL);
1847 fHOutCentCL0->Fill(fCentCL0);
1848 fHOutCentCL1->Fill(fCentCL1);
1849 fHOutCentCND->Fill(fCentCND);
8432b617 1850 fHOutCentNPA->Fill(fCentNPA);
99029fba 1851 fHOutCentZNA->Fill(fCentZNA);
f9a774f9 1852 fHOutCentZNC->Fill(fCentZNC);
3a19f64f 1853 fHOutCentZPA->Fill(fCentZPA);
1854 fHOutCentZPC->Fill(fCentZPC);
01974bd1 1855 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1856 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1857 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1858 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1859 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1860 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1861 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1862 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1863 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1864 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1865 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1866 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1867 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1868 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
8432b617 1869 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1870 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1871 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1872 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1873 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
99029fba 1874 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1875 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1876 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1877 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1878 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
bfbc1975 1879 fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
01974bd1 1880
1881 fHOutMultV0AC->Fill(multV0A,multV0C);
e1d58f75 1882 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1883 fHOutMultV0A->Fill(multV0ACorr);
97570bc1 1884 fHOutMultV0A0->Fill(multV0A0Corr);
1885 fHOutMultV0A123->Fill(multV0A123Corr);
e1d58f75 1886 fHOutMultV0C->Fill(multV0CCorr);
26f02c2c 1887 fHOutMultV0A23->Fill(multV0A23Corr);
1888 fHOutMultV0C01->Fill(multV0C01Corr);
1889 fHOutMultV0S->Fill(multV0SCorr);
f9a774f9 1890 fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
1891 fHOutMultV0AEq->Fill(multV0AEq);
1892 fHOutMultV0CEq->Fill(multV0CEq);
e1d58f75 1893 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1894 fHOutMultV0Anc->Fill(multV0A);
1895 fHOutMultV0Cnc->Fill(multV0C);
01974bd1 1896 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1897 fHOutMultV0Cells->Fill(nV0A,nV0C);
1898 fHOutMultFMD->Fill(multFMDA+multFMDC);
1899 fHOutMultTRK->Fill(nTracks);
1900 fHOutMultTKL->Fill(nTracklets);
1901 fHOutMultCL0->Fill(nClusters[0]);
1902 fHOutMultCL1->Fill(spdCorr);
1903 fHOutMultCND->Fill(multCND);
8432b617 1904 fHOutMultNPA->Fill(Npart);
f9a774f9 1905 if(znaFired)fHOutMultZNA->Fill(znaTower);
1906 if(zncFired)fHOutMultZNC->Fill(zncTower);
3a19f64f 1907 if(zpaFired)fHOutMultZPA->Fill(zpaTower);
1908 if(zpcFired)fHOutMultZPC->Fill(zpcTower);
bfbc1975 1909 fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
01974bd1 1910
3a19f64f 1911 //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1912 fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
01974bd1 1913 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1914 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1915 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1916 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1917 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1918 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1919 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1920 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1921 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1922 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1923 } else if (fQuality%2 == 0) {
1924 fHOutCentV0Mqual1->Fill(fCentV0M);
1925 fHOutCentTRKqual1->Fill(fCentTRK);
1926 fHOutCentCL1qual1->Fill(fCentCL1);
1927 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1928 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1929 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1930 } else {
1931 fHOutCentV0Mqual2->Fill(fCentV0M);
1932 fHOutCentTRKqual2->Fill(fCentTRK);
1933 fHOutCentCL1qual2->Fill(fCentCL1);
1934 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1935 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1936 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1937 }
1938 }
1939 PostData(1, fOutputList);
1940 }
1941}
1942//________________________________________________________________________
1943void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1944{
1945 // Terminate analysis
1946}
1947//________________________________________________________________________
377e5a61 1948Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
01974bd1 1949{
1950 // Setup files for run
1951
1952 if (!esd)
1953 return -1;
1954
1955 // check if something to be done
1956 if (fCurrentRun == esd->GetRunNumber())
1957 return 0;
1958 else
1959 fCurrentRun = esd->GetRunNumber();
1960
1961 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1962 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1963
1964 AliOADBContainer *con = new AliOADBContainer("OADB");
1965 con->InitFromFile(fileName,"Centrality");
1966
1967 AliOADBCentrality* centOADB = 0;
1968 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1969 if (!centOADB) {
1970 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1971 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1972 }
1973
39a3e400 1974 Bool_t isHijing=kFALSE;
1975 Bool_t isDpmjet=kFALSE;
1976 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1977 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1978 AliMCEvent* mcEvent=0;
1979 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1980 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1981 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1982 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1983 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1984 }
1985
1986
01974bd1 1987 // modes
1988 fUseScaling = centOADB->UseScaling();
1989 fUseCleaning = centOADB->UseCleaning();
1990
1991 // cuts
1992 fZVCut = centOADB->ZVCut();
1993 fOutliersCut = centOADB->OutliersCut();
1994
1995 // centrality histos
1996 fHtempV0M = centOADB->V0hist();
1997 fHtempV0A = centOADB->V0Ahist();
9113c527 1998 fHtempV0A0 = centOADB->V0A0hist();
2d12adde 1999 fHtempV0A123 = centOADB->V0A123hist();
01974bd1 2000 fHtempV0C = centOADB->V0Chist();
26f02c2c 2001 fHtempV0A23 = centOADB->V0A23hist();
2002 fHtempV0C01 = centOADB->V0C01hist();
2003 fHtempV0S = centOADB->V0Shist();
f9a774f9 2004 fHtempV0MEq = centOADB->V0Eqhist();
2005 fHtempV0AEq = centOADB->V0AEqhist();
2006 fHtempV0CEq = centOADB->V0CEqhist();
01974bd1 2007 fHtempTRK = centOADB->TPChist();
2008 fHtempCL1 = centOADB->SPDhist();
2009 fHtempCND = centOADB->CNDhist();
39a3e400 2010 fHtempFMD = centOADB->FMDhist();
99029fba 2011 fHtempZNA = centOADB->ZNAhist();
f9a774f9 2012 fHtempZNC = centOADB->ZNChist();
3a19f64f 2013 fHtempZPA = centOADB->ZPAhist();
2014 fHtempZPC = centOADB->ZPChist();
01974bd1 2015 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
39a3e400 2016
f9a774f9 2017 if (isHijing) {
2018 fHtempNPA = centOADB->NPAhist();
2019 fHtempV0Mtrue = centOADB->V0histtrue();
2020 fHtempV0Atrue = centOADB->V0Ahisttrue();
2021 fHtempV0Ctrue = centOADB->V0Chisttrue();
2022 fHtempV0MEqtrue = centOADB->V0Eqhisttrue();
2023 fHtempV0AEqtrue = centOADB->V0AEqhisttrue();
2024 fHtempV0CEqtrue = centOADB->V0CEqhisttrue();
2025 fHtempTRKtrue = centOADB->TPChisttrue();
2026 fHtempCL1true = centOADB->SPDhisttrue();
2027 fHtempCNDtrue = centOADB->CNDhisttrue();
2028 fHtempFMDtrue = centOADB->FMDhisttrue();
2029 fHtempZNAtrue = centOADB->ZNAhisttrue();
2030 fHtempZNCtrue = centOADB->ZNChisttrue();
3a19f64f 2031 fHtempZPAtrue = centOADB->ZPAhisttrue();
2032 fHtempZPCtrue = centOADB->ZPChisttrue();
f9a774f9 2033 } else if (isDpmjet) {
2034 fHtempNPA = centOADB->NPAhistDPM();
2035 fHtempV0Mtrue = centOADB->V0histtrueDPM();
2036 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
2037 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
2038 fHtempV0MEqtrue = centOADB->V0EqhisttrueDPM();
2039 fHtempV0AEqtrue = centOADB->V0AEqhisttrueDPM();
2040 fHtempV0CEqtrue = centOADB->V0CEqhisttrueDPM();
2041 fHtempTRKtrue = centOADB->TPChisttrueDPM();
2042 fHtempCL1true = centOADB->SPDhisttrueDPM();
2043 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
2044 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
2045 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
2046 fHtempZNCtrue = centOADB->ZNChisttrueDPM();
3a19f64f 2047 fHtempZPAtrue = centOADB->ZPAhisttrueDPM();
2048 fHtempZPCtrue = centOADB->ZPChisttrueDPM();
f9a774f9 2049 }
2050
2051
2052 TString path = gSystem->ExpandPathName(fileName.Data());
01974bd1 2053 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
2054 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
2055 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
26f02c2c 2056 if (!fHtempV0A23) AliWarning(Form("Calibration for V0A23 does not exist in %s", path.Data()));
2057 if (!fHtempV0C01) AliWarning(Form("Calibration for V0C01 does not exist in %s", path.Data()));
2058 if (!fHtempV0S) AliWarning(Form("Calibration for V0S does not exist in %s", path.Data()));
f9a774f9 2059 if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
2060 if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
2061 if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
01974bd1 2062 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
2063 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
2064 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
99029fba 2065 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
f9a774f9 2066 if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
3a19f64f 2067 if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
2068 if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
39a3e400 2069 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
01974bd1 2070 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
39a3e400 2071 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
2072
2073 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
2074 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
2075 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
f9a774f9 2076 if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
2077 if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
2078 if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
39a3e400 2079 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
2080 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
2081 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
2082 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
f9a774f9 2083 if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
3a19f64f 2084 if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
2085 if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
39a3e400 2086 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
01974bd1 2087
f9a774f9 2088
01974bd1 2089 // scale factors
2090 fV0MScaleFactor = centOADB->V0MScaleFactor();
2091 fSPDScaleFactor = centOADB->SPDScaleFactor();
2092 fTPCScaleFactor = centOADB->TPCScaleFactor();
2093 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
2094
2095 // outliers parameters
2096 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
2097 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
2098 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
2099 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
2100
2101 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
2102 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
2103 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
2104 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
2105 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
2106 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
2107
2108 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
2109 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
2110 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
2111 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
2112
01974bd1 2113 return 0;
2114}
2115
2116
2117
2118//________________________________________________________________________
2119Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
2120{
2121 // Clean outliers
2122 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
2123 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
2124 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
2125 return kTRUE;
2126 else
2127 return kFALSE;
2128}
2129
2130//________________________________________________________________________
2131Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
2132{
2133 // Clean outliers
2134 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
2135 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
2136 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
2137 return kTRUE;
2138 else
2139 return kFALSE;
2140}
2141
2142//________________________________________________________________________
2143Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
2144{
2145 // Clean outliers
2146 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
2147 if (zdc > val)
2148 return kTRUE;
2149 else
2150 return kFALSE;
2151}
2152
2153//________________________________________________________________________
2154Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
2155{
2156 // Clean outliers
2157 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;
2158 if (zdc > val)
2159 return kTRUE;
2160 else
2161 return kFALSE;
2162}
667b97c4 2163