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