]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliCentralitySelectionTask.cxx
o simple macro to draw TPC PID splines
[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 {
0a918d8d 1447 AliAODHeader *h = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1448 if(!h) AliFatal("Not a standard AOD");
377e5a61 1449 nTracks = h!=0 ? (Short_t)h->GetTPConlyRefMultiplicity():-1;
1450 }
2d27827d 1451
377e5a61 1452 if (esd) {
01974bd1 1453 Short_t nTrTPCcandle = 0;
1454 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
2d27827d 1455
01974bd1 1456 AliESDtrack* track = esd->GetTrack(iTracks);
1457 if (!track) continue;
2d27827d 1458
1459 if (! fEsdTrackCuts->IsSelected(track) )continue;
1460
1461 if (fEsdTrackCutsExtra1 && fEsdTrackCutsExtra2 &&
1462 !fEsdTrackCutsExtra1->IsSelected(track) &&
1463 !fEsdTrackCutsExtra2->IsSelected(track)) continue;
1464
1465 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
01974bd1 1466 }
1467 multCND = nTrTPCcandle;
377e5a61 1468 } else {
1469 Short_t nTrTPCcandle = 0;
1470 for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
1471
f15c1f69 1472 AliAODTrack* track = dynamic_cast<AliAODTrack*>(aod->GetTrack(iTracks));
1473 if(!track) AliFatal("Not a standard AOD");
377e5a61 1474
1475 if (!track) continue;
1476 if (!track->TestFilterBit(1<<5) &&
1477 !track->TestFilterBit(1<<6)) continue;
1478
1479 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1480 }
1481 multCND = nTrTPCcandle;
1482 }
01974bd1 1483
377e5a61 1484 if (esd) {
01974bd1 1485 const AliMultiplicity *mult = esd->GetMultiplicity();
1486 nTracklets = mult->GetNumberOfTracklets();
1487
1488 for(Int_t ilay=0; ilay<6; ilay++){
1489 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1490 }
1491
1492 for(Int_t ilay=0; ilay<2; ilay++){
1493 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1494 }
377e5a61 1495 } else {
1496 AliAODTracklets *mult = aod->GetTracklets();
1497 nTracklets = mult->GetNumberOfTracklets();
0a918d8d 1498 AliAODHeader *h = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1499 if(!h) AliFatal("Not a standard AOD");
377e5a61 1500 for(Int_t ilay=0; ilay<6; ilay++){
1501 nClusters[ilay] = h->GetNumberOfITSClusters(ilay);
1502 }
1503 }
1504 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1505
1506 if (esd) {
01974bd1 1507 // ***** FMD info
1508 AliESDFMD *fmd = esd->GetFMDData();
1509 Float_t totalMultA = 0;
1510 Float_t totalMultC = 0;
1511 const Float_t fFMDLowCut = 0.4;
1512
1513 for(UShort_t det=1;det<=3;det++) {
1514 Int_t nRings = (det==1 ? 1 : 2);
1515 for (UShort_t ir = 0; ir < nRings; ir++) {
1516 Char_t ring = (ir == 0 ? 'I' : 'O');
1517 UShort_t nsec = (ir == 0 ? 20 : 40);
1518 UShort_t nstr = (ir == 0 ? 512 : 256);
1519 for(UShort_t sec =0; sec < nsec; sec++) {
1520 for(UShort_t strip = 0; strip < nstr; strip++) {
1521
1522 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1523 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1524
1525 Float_t nParticles=0;
1526
1527 if(fmdMult > fFMDLowCut) {
1528 nParticles = 1.;
1529 }
1530
1531 if (det<3) totalMultA = totalMultA + nParticles;
1532 else totalMultC = totalMultC + nParticles;
1533
1534 }
1535 }
1536 }
1537 }
1538 multFMDA = totalMultA;
1539 multFMDC = totalMultC;
377e5a61 1540 }
1541
1542 if (esd) {
01974bd1 1543 // ***** ZDC info
1544 AliESDZDC *esdZDC = esd->GetESDZDC();
1545 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1546 if (zdcEnergyCal) {
1547 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1548 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1549 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1550 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1551 } else {
1552 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1553 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1554 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1555 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1556 }
1557 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1558 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
99029fba 1559
f9a774f9 1560 for (Int_t j = 0; j < 4; ++j)
1561 if (esdZDC->GetZDCTDCData(12,j) != 0)
99029fba 1562 znaFired = kTRUE;
f9a774f9 1563
1564 for (Int_t j = 0; j < 4; ++j)
1565 if (esdZDC->GetZDCTDCData(10,j) != 0)
1566 zncFired = kTRUE;
1567
3a19f64f 1568 for (Int_t j = 0; j < 4; ++j)
1569 if (esdZDC->GetZDCTDCData(13,j) != 0)
1570 zpaFired = kTRUE;
1571
1572 for (Int_t j = 0; j < 4; ++j)
1573 if (esdZDC->GetZDCTDCData(11,j) != 0)
1574 zpcFired = kTRUE;
1575
bfbc1975 1576 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1577 const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
1578 const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy();
1579 const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
1580 if (znaFired) znaTower = ZNAtower[0];
1581 if (zncFired) zncTower = ZNCtower[0];
1582 if (zpaFired) zpaTower = ZPAtower[0];
1583 if (zpcFired) zpcTower = ZPCtower[0];
1584
377e5a61 1585 } else {
0a918d8d 1586 AliAODHeader *h = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1587 if(!h) AliFatal("Not a standard AOD");
3a19f64f 1588 zncEnergy = (Float_t) (h->GetZDCN1Energy());
1589 zpcEnergy = (Float_t) (h->GetZDCP1Energy());
1590 znaEnergy = (Float_t) (h->GetZDCN2Energy());
1591 zpaEnergy = (Float_t) (h->GetZDCP2Energy());
377e5a61 1592 zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
1593 zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
1594
1595 AliAODZDC *aodZDC = aod->GetZDCData();
1596 const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy();
3a19f64f 1597 const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
1598 const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy();
1599 const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
377e5a61 1600 znaTower = ZNAtower[0];
666dc076 1601 zncTower = ZNCtower[0];
3a19f64f 1602 zpaTower = ZPAtower[0];
1603 zpcTower = ZPCtower[0];
377e5a61 1604
1605 znaFired = kFALSE; // trick because info is not stored in AOD
666dc076 1606 zncFired = kFALSE; // trick because info is not stored in AOD
3a19f64f 1607 zpaFired = kFALSE; // trick because info is not stored in AOD
1608 zpcFired = kFALSE; // trick because info is not stored in AOD
1609 if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
1610 if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
1611 if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
1612 if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
377e5a61 1613 }
1614
1615 if (esd) {
99029fba 1616 // ***** MC info
1617 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1618 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
3a19f64f 1619 AliStack* stack=0;
99029fba 1620 AliMCEvent* mcEvent=0;
3a19f64f 1621 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
99029fba 1622 AliGenHijingEventHeader* hHijing=0;
9b389d09 1623 AliGenDPMjetEventHeader* dpmHeader=0;
1624
99029fba 1625 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
74b0bf85 1626 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1627 hHijing = (AliGenHijingEventHeader*)mcGenH;
99029fba 1628 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1629 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
3a19f64f 1630 //headers->Print();
99029fba 1631 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
74b0bf85 1632 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
3ef9b178 1633 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
99029fba 1634 }
9b389d09 1635 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1636 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
99029fba 1637 }
74b0bf85 1638 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1639 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
8432b617 1640 }
01974bd1 1641 }
1642
1643 // ***** Scaling for MC
1644 if (fIsMCInput) {
1645 fUseScaling=kFALSE;
97570bc1 1646 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1647 multV0A0 = multV0A0 * fV0MScaleFactorMC;
bfd47aba 1648 multV0A = multV0A * fV0MScaleFactorMC;
1649 multV0C = multV0C * fV0MScaleFactorMC;
01974bd1 1650 }
1651 // ***** Scaling for Data
1652 if (fUseScaling) {
1653 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1654 spdCorr = spdCorr / fSPDScaleFactor;
1655 nTracks = Int_t(nTracks / fTPCScaleFactor);
1656 }
1657
1658 // ***** Centrality Selection
1659 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
e1d58f75 1660 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
97570bc1 1661 if(fHtempV0A0) fCentV0A0 = fHtempV0A0->GetBinContent(fHtempV0A0->FindBin((multV0A0Corr)));
1662 if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123Corr)));
e1d58f75 1663 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
26f02c2c 1664 if(fHtempV0A23) fCentV0A23 = fHtempV0A23->GetBinContent(fHtempV0A23->FindBin((multV0A23Corr)));
1665 if(fHtempV0C01) fCentV0C01 = fHtempV0C01->GetBinContent(fHtempV0C01->FindBin((multV0C01Corr)));
1666 if(fHtempV0S) fCentV0S = fHtempV0S->GetBinContent(fHtempV0S->FindBin((multV0SCorr)));
f9a774f9 1667 if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
1668 if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
1669 if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
01974bd1 1670 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1671 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1672 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1673 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1674 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1675 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
99029fba 1676 if(fHtempZNA) {
1677 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1678 else fCentZNA = 101;
1679 }
f9a774f9 1680 if(fHtempZNC) {
1681 if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
1682 else fCentZNC = 101;
1683 }
3a19f64f 1684 if(fHtempZPA) {
1685 if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
1686 else fCentZPA = 101;
1687 }
1688 if(fHtempZPC) {
1689 if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
1690 else fCentZPC = 101;
1691 }
1692
1693
01974bd1 1694 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1695 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1696 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1697
39a3e400 1698 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1699 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1700 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1701 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
f9a774f9 1702 if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
1703 if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
1704 if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
39a3e400 1705 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1706 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1707 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1708 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1709 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1710 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1711 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
f9a774f9 1712 if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
39a3e400 1713
1714
01974bd1 1715 // ***** Cleaning
1716 if (fUseCleaning) {
1717 fQuality=0;
1718
1719 // ***** vertex
1720 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1721
1722 // ***** outliers, skip in case of MC input
1723 if (!fIsMCInput) {
1724 // **** V0 vs SPD
1725 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1726 // ***** V0 vs TPC
1727 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1728 // ***** V0 vs ZDC
1729 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1730 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1731 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1732 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1733 }
1734 } else {
1735 fQuality = 0;
1736 }
1737
1738
1739 if (esdCent) {
377e5a61 1740 if (aod&&(fDebug>1)) {
1741 Double_t v0m = esdCent->GetCentralityPercentile("V0M");
1742 Double_t cl1 = esdCent->GetCentralityPercentile("CL1");
1743 Double_t trk = esdCent->GetCentralityPercentile("TRK");
1744 Double_t cnd = esdCent->GetCentralityPercentile("CND");
1745 Double_t zna = esdCent->GetCentralityPercentile("ZNA");
3a19f64f 1746 printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n",
377e5a61 1747 v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK,
3a19f64f 1748 fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
377e5a61 1749 }
01974bd1 1750 esdCent->SetQuality(fQuality);
1751 esdCent->SetCentralityV0M(fCentV0M);
1752 esdCent->SetCentralityV0A(fCentV0A);
667b97c4 1753 esdCent->SetCentralityV0A0(fCentV0A0);
2d12adde 1754 esdCent->SetCentralityV0A123(fCentV0A123);
01974bd1 1755 esdCent->SetCentralityV0C(fCentV0C);
26f02c2c 1756 esdCent->SetCentralityV0A23(fCentV0A23);
1757 esdCent->SetCentralityV0C01(fCentV0C01);
1758 esdCent->SetCentralityV0S(fCentV0S);
f9a774f9 1759 esdCent->SetCentralityV0MEq(fCentV0MEq);
1760 esdCent->SetCentralityV0AEq(fCentV0AEq);
1761 esdCent->SetCentralityV0CEq(fCentV0CEq);
01974bd1 1762 esdCent->SetCentralityFMD(fCentFMD);
1763 esdCent->SetCentralityTRK(fCentTRK);
1764 esdCent->SetCentralityTKL(fCentTKL);
1765 esdCent->SetCentralityCL0(fCentCL0);
1766 esdCent->SetCentralityCL1(fCentCL1);
1767 esdCent->SetCentralityCND(fCentCND);
8432b617 1768 esdCent->SetCentralityNPA(fCentNPA);
99029fba 1769 esdCent->SetCentralityZNA(fCentZNA);
f9a774f9 1770 esdCent->SetCentralityZNC(fCentZNC);
3a19f64f 1771 esdCent->SetCentralityZPA(fCentZPA);
1772 esdCent->SetCentralityZPC(fCentZPC);
01974bd1 1773 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1774 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1775 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1776 }
1777
1778 // filling QA histograms
1779 if (fFillHistos) {
39a3e400 1780
1781 if (fIsMCInput) { // fill histo with true centrality for simulations
1782 fCentV0M = fCentV0Mtrue;
1783 fCentV0A = fCentV0Atrue;
1784 fCentV0C = fCentV0Ctrue;
f9a774f9 1785 fCentV0MEq = fCentV0MEqtrue;
1786 fCentV0AEq = fCentV0AEqtrue;
1787 fCentV0CEq = fCentV0CEqtrue;
39a3e400 1788 fCentFMD = fCentFMDtrue;
1789 fCentTRK = fCentTRKtrue;
1790 fCentTKL = fCentTKLtrue;
1791 fCentCL0 = fCentCL0true;
1792 fCentCL1 = fCentCL1true;
1793 fCentCND = fCentCNDtrue;
1794 fCentZNA = fCentZNAtrue;
f9a774f9 1795 fCentZNC = fCentZNCtrue;
3a19f64f 1796 fCentZPA = fCentZPAtrue;
1797 fCentZPC = fCentZPCtrue;
39a3e400 1798 }
1799
1800
01974bd1 1801 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1802
1803 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1804 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1805 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1806 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1807 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1808 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1809 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1810 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1811 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1812 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1813 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1814
c932ac15 1815 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
e786baa0 1816 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) ||
1817 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
9113c527 1818
01974bd1 1819 fHOutQuality->Fill(fQuality);
1820 fHOutVertex->Fill(zvtx);
1821 fHOutVertexT0->Fill(zvtxT0);
1822
1823 if (fQuality==0) {
1824 fHOutCentV0M->Fill(fCentV0M);
1825 fHOutCentV0A->Fill(fCentV0A);
9113c527 1826 fHOutCentV0A0->Fill(fCentV0A0);
2d12adde 1827 fHOutCentV0A123->Fill(fCentV0A123);
01974bd1 1828 fHOutCentV0C->Fill(fCentV0C);
26f02c2c 1829 fHOutCentV0A23->Fill(fCentV0A23);
1830 fHOutCentV0C01->Fill(fCentV0C01);
1831 fHOutCentV0S->Fill(fCentV0S);
f9a774f9 1832 fHOutCentV0MEq->Fill(fCentV0MEq);
1833 fHOutCentV0AEq->Fill(fCentV0AEq);
1834 fHOutCentV0CEq->Fill(fCentV0CEq);
01974bd1 1835
1836 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1837 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1838 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1839 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1840 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1841 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1842 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1843 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1844 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1845 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1846 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1847
1848 fHOutCentFMD->Fill(fCentFMD);
1849 fHOutCentTRK->Fill(fCentTRK);
1850 fHOutCentTKL->Fill(fCentTKL);
1851 fHOutCentCL0->Fill(fCentCL0);
1852 fHOutCentCL1->Fill(fCentCL1);
1853 fHOutCentCND->Fill(fCentCND);
8432b617 1854 fHOutCentNPA->Fill(fCentNPA);
99029fba 1855 fHOutCentZNA->Fill(fCentZNA);
f9a774f9 1856 fHOutCentZNC->Fill(fCentZNC);
3a19f64f 1857 fHOutCentZPA->Fill(fCentZPA);
1858 fHOutCentZPC->Fill(fCentZPC);
01974bd1 1859 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1860 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1861 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1862 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1863 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1864 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1865 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1866 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1867 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1868 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1869 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1870 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1871 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1872 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
8432b617 1873 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1874 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1875 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1876 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1877 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
99029fba 1878 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1879 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1880 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1881 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1882 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
bfbc1975 1883 fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
01974bd1 1884
1885 fHOutMultV0AC->Fill(multV0A,multV0C);
e1d58f75 1886 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1887 fHOutMultV0A->Fill(multV0ACorr);
97570bc1 1888 fHOutMultV0A0->Fill(multV0A0Corr);
1889 fHOutMultV0A123->Fill(multV0A123Corr);
e1d58f75 1890 fHOutMultV0C->Fill(multV0CCorr);
26f02c2c 1891 fHOutMultV0A23->Fill(multV0A23Corr);
1892 fHOutMultV0C01->Fill(multV0C01Corr);
1893 fHOutMultV0S->Fill(multV0SCorr);
f9a774f9 1894 fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
1895 fHOutMultV0AEq->Fill(multV0AEq);
1896 fHOutMultV0CEq->Fill(multV0CEq);
e1d58f75 1897 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1898 fHOutMultV0Anc->Fill(multV0A);
1899 fHOutMultV0Cnc->Fill(multV0C);
01974bd1 1900 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1901 fHOutMultV0Cells->Fill(nV0A,nV0C);
1902 fHOutMultFMD->Fill(multFMDA+multFMDC);
1903 fHOutMultTRK->Fill(nTracks);
1904 fHOutMultTKL->Fill(nTracklets);
1905 fHOutMultCL0->Fill(nClusters[0]);
1906 fHOutMultCL1->Fill(spdCorr);
1907 fHOutMultCND->Fill(multCND);
8432b617 1908 fHOutMultNPA->Fill(Npart);
f9a774f9 1909 if(znaFired)fHOutMultZNA->Fill(znaTower);
1910 if(zncFired)fHOutMultZNC->Fill(zncTower);
3a19f64f 1911 if(zpaFired)fHOutMultZPA->Fill(zpaTower);
1912 if(zpcFired)fHOutMultZPC->Fill(zpcTower);
bfbc1975 1913 fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
01974bd1 1914
3a19f64f 1915 //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1916 fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
01974bd1 1917 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1918 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1919 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1920 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1921 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1922 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1923 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1924 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1925 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1926 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1927 } else if (fQuality%2 == 0) {
1928 fHOutCentV0Mqual1->Fill(fCentV0M);
1929 fHOutCentTRKqual1->Fill(fCentTRK);
1930 fHOutCentCL1qual1->Fill(fCentCL1);
1931 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1932 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1933 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1934 } else {
1935 fHOutCentV0Mqual2->Fill(fCentV0M);
1936 fHOutCentTRKqual2->Fill(fCentTRK);
1937 fHOutCentCL1qual2->Fill(fCentCL1);
1938 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1939 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1940 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1941 }
1942 }
1943 PostData(1, fOutputList);
1944 }
1945}
1946//________________________________________________________________________
1947void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1948{
1949 // Terminate analysis
1950}
1951//________________________________________________________________________
377e5a61 1952Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
01974bd1 1953{
1954 // Setup files for run
1955
1956 if (!esd)
1957 return -1;
1958
1959 // check if something to be done
1960 if (fCurrentRun == esd->GetRunNumber())
1961 return 0;
1962 else
1963 fCurrentRun = esd->GetRunNumber();
1964
1965 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1966 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1967
1968 AliOADBContainer *con = new AliOADBContainer("OADB");
1969 con->InitFromFile(fileName,"Centrality");
1970
1971 AliOADBCentrality* centOADB = 0;
1972 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1973 if (!centOADB) {
1974 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1975 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1976 }
1977
39a3e400 1978 Bool_t isHijing=kFALSE;
1979 Bool_t isDpmjet=kFALSE;
1980 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1981 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1982 AliMCEvent* mcEvent=0;
1983 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1984 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1985 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1986 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1987 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1988 }
1989
1990
01974bd1 1991 // modes
1992 fUseScaling = centOADB->UseScaling();
1993 fUseCleaning = centOADB->UseCleaning();
1994
1995 // cuts
1996 fZVCut = centOADB->ZVCut();
1997 fOutliersCut = centOADB->OutliersCut();
1998
1999 // centrality histos
2000 fHtempV0M = centOADB->V0hist();
2001 fHtempV0A = centOADB->V0Ahist();
9113c527 2002 fHtempV0A0 = centOADB->V0A0hist();
2d12adde 2003 fHtempV0A123 = centOADB->V0A123hist();
01974bd1 2004 fHtempV0C = centOADB->V0Chist();
26f02c2c 2005 fHtempV0A23 = centOADB->V0A23hist();
2006 fHtempV0C01 = centOADB->V0C01hist();
2007 fHtempV0S = centOADB->V0Shist();
f9a774f9 2008 fHtempV0MEq = centOADB->V0Eqhist();
2009 fHtempV0AEq = centOADB->V0AEqhist();
2010 fHtempV0CEq = centOADB->V0CEqhist();
01974bd1 2011 fHtempTRK = centOADB->TPChist();
2012 fHtempCL1 = centOADB->SPDhist();
2013 fHtempCND = centOADB->CNDhist();
39a3e400 2014 fHtempFMD = centOADB->FMDhist();
99029fba 2015 fHtempZNA = centOADB->ZNAhist();
f9a774f9 2016 fHtempZNC = centOADB->ZNChist();
3a19f64f 2017 fHtempZPA = centOADB->ZPAhist();
2018 fHtempZPC = centOADB->ZPChist();
01974bd1 2019 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
39a3e400 2020
f9a774f9 2021 if (isHijing) {
2022 fHtempNPA = centOADB->NPAhist();
2023 fHtempV0Mtrue = centOADB->V0histtrue();
2024 fHtempV0Atrue = centOADB->V0Ahisttrue();
2025 fHtempV0Ctrue = centOADB->V0Chisttrue();
2026 fHtempV0MEqtrue = centOADB->V0Eqhisttrue();
2027 fHtempV0AEqtrue = centOADB->V0AEqhisttrue();
2028 fHtempV0CEqtrue = centOADB->V0CEqhisttrue();
2029 fHtempTRKtrue = centOADB->TPChisttrue();
2030 fHtempCL1true = centOADB->SPDhisttrue();
2031 fHtempCNDtrue = centOADB->CNDhisttrue();
2032 fHtempFMDtrue = centOADB->FMDhisttrue();
2033 fHtempZNAtrue = centOADB->ZNAhisttrue();
2034 fHtempZNCtrue = centOADB->ZNChisttrue();
3a19f64f 2035 fHtempZPAtrue = centOADB->ZPAhisttrue();
2036 fHtempZPCtrue = centOADB->ZPChisttrue();
f9a774f9 2037 } else if (isDpmjet) {
2038 fHtempNPA = centOADB->NPAhistDPM();
2039 fHtempV0Mtrue = centOADB->V0histtrueDPM();
2040 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
2041 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
2042 fHtempV0MEqtrue = centOADB->V0EqhisttrueDPM();
2043 fHtempV0AEqtrue = centOADB->V0AEqhisttrueDPM();
2044 fHtempV0CEqtrue = centOADB->V0CEqhisttrueDPM();
2045 fHtempTRKtrue = centOADB->TPChisttrueDPM();
2046 fHtempCL1true = centOADB->SPDhisttrueDPM();
2047 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
2048 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
2049 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
2050 fHtempZNCtrue = centOADB->ZNChisttrueDPM();
3a19f64f 2051 fHtempZPAtrue = centOADB->ZPAhisttrueDPM();
2052 fHtempZPCtrue = centOADB->ZPChisttrueDPM();
f9a774f9 2053 }
2054
2055
2056 TString path = gSystem->ExpandPathName(fileName.Data());
01974bd1 2057 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
2058 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
2059 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
26f02c2c 2060 if (!fHtempV0A23) AliWarning(Form("Calibration for V0A23 does not exist in %s", path.Data()));
2061 if (!fHtempV0C01) AliWarning(Form("Calibration for V0C01 does not exist in %s", path.Data()));
2062 if (!fHtempV0S) AliWarning(Form("Calibration for V0S does not exist in %s", path.Data()));
f9a774f9 2063 if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
2064 if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
2065 if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
01974bd1 2066 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
2067 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
2068 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
99029fba 2069 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
f9a774f9 2070 if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
3a19f64f 2071 if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
2072 if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
39a3e400 2073 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
01974bd1 2074 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
39a3e400 2075 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
2076
2077 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
2078 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
2079 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
f9a774f9 2080 if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
2081 if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
2082 if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
39a3e400 2083 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
2084 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
2085 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
2086 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
f9a774f9 2087 if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
3a19f64f 2088 if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
2089 if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
39a3e400 2090 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
01974bd1 2091
f9a774f9 2092
01974bd1 2093 // scale factors
2094 fV0MScaleFactor = centOADB->V0MScaleFactor();
2095 fSPDScaleFactor = centOADB->SPDScaleFactor();
2096 fTPCScaleFactor = centOADB->TPCScaleFactor();
2097 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
2098
2099 // outliers parameters
2100 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
2101 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
2102 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
2103 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
2104
2105 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
2106 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
2107 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
2108 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
2109 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
2110 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
2111
2112 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
2113 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
2114 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
2115 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
2116
01974bd1 2117 return 0;
2118}
2119
2120
2121
2122//________________________________________________________________________
2123Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
2124{
2125 // Clean outliers
2126 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
2127 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
2128 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
2129 return kTRUE;
2130 else
2131 return kFALSE;
2132}
2133
2134//________________________________________________________________________
2135Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
2136{
2137 // Clean outliers
2138 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
2139 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
2140 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
2141 return kTRUE;
2142 else
2143 return kFALSE;
2144}
2145
2146//________________________________________________________________________
2147Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
2148{
2149 // Clean outliers
2150 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
2151 if (zdc > val)
2152 return kTRUE;
2153 else
2154 return kFALSE;
2155}
2156
2157//________________________________________________________________________
2158Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
2159{
2160 // Clean outliers
2161 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;
2162 if (zdc > val)
2163 return kTRUE;
2164 else
2165 return kFALSE;
2166}
667b97c4 2167