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