]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliCentralitySelectionTask.cxx
Updates
[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())) {
99029fba 1225 AliGenHijingEventHeader* hHijing=0;
9b389d09 1226 AliGenDPMjetEventHeader* dpmHeader=0;
1227
99029fba 1228 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
74b0bf85 1229 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1230 hHijing = (AliGenHijingEventHeader*)mcGenH;
99029fba 1231 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1232 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1233 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
74b0bf85 1234 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
99029fba 1235 }
9b389d09 1236 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1237 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
99029fba 1238 }
74b0bf85 1239 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1240 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
8432b617 1241 }
99029fba 1242 }
01974bd1 1243
1244 else if(fAnalysisInput.CompareTo("AOD")==0){
1245 //AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
1246 // to be implemented
1247 printf(" AOD analysis not yet implemented!!!\n\n");
1248 return;
1249 }
1250
1251 // ***** Scaling for MC
1252 if (fIsMCInput) {
1253 fUseScaling=kFALSE;
1254 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
bfd47aba 1255 multV0A = multV0A * fV0MScaleFactorMC;
1256 multV0C = multV0C * fV0MScaleFactorMC;
01974bd1 1257 }
1258 // ***** Scaling for Data
1259 if (fUseScaling) {
1260 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1261 spdCorr = spdCorr / fSPDScaleFactor;
1262 nTracks = Int_t(nTracks / fTPCScaleFactor);
1263 }
1264
1265 // ***** Centrality Selection
1266 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
e1d58f75 1267 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1268 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
01974bd1 1269 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1270 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1271 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1272 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1273 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1274 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
99029fba 1275 if(fHtempZNA) {
1276 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1277 else fCentZNA = 101;
1278 }
01974bd1 1279 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1280 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1281 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1282
39a3e400 1283 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1284 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1285 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1286 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
1287 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1288 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1289 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1290 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1291 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1292 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1293 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
1294
1295
01974bd1 1296
1297 // ***** Cleaning
1298 if (fUseCleaning) {
1299 fQuality=0;
1300
1301 // ***** vertex
1302 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1303
1304 // ***** outliers, skip in case of MC input
1305 if (!fIsMCInput) {
1306 // **** V0 vs SPD
1307 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1308 // ***** V0 vs TPC
1309 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1310 // ***** V0 vs ZDC
1311 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1312 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1313 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1314 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1315 }
1316 } else {
1317 fQuality = 0;
1318 }
1319
1320
1321 if (esdCent) {
1322 esdCent->SetQuality(fQuality);
1323 esdCent->SetCentralityV0M(fCentV0M);
1324 esdCent->SetCentralityV0A(fCentV0A);
1325 esdCent->SetCentralityV0C(fCentV0C);
1326 esdCent->SetCentralityFMD(fCentFMD);
1327 esdCent->SetCentralityTRK(fCentTRK);
1328 esdCent->SetCentralityTKL(fCentTKL);
1329 esdCent->SetCentralityCL0(fCentCL0);
1330 esdCent->SetCentralityCL1(fCentCL1);
1331 esdCent->SetCentralityCND(fCentCND);
8432b617 1332 esdCent->SetCentralityNPA(fCentNPA);
99029fba 1333 esdCent->SetCentralityZNA(fCentZNA);
01974bd1 1334 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1335 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1336 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1337 }
1338
1339 // filling QA histograms
1340 if (fFillHistos) {
39a3e400 1341
1342 if (fIsMCInput) { // fill histo with true centrality for simulations
1343 fCentV0M = fCentV0Mtrue;
1344 fCentV0A = fCentV0Atrue;
1345 fCentV0C = fCentV0Ctrue;
1346 fCentFMD = fCentFMDtrue;
1347 fCentTRK = fCentTRKtrue;
1348 fCentTKL = fCentTKLtrue;
1349 fCentCL0 = fCentCL0true;
1350 fCentCL1 = fCentCL1true;
1351 fCentCND = fCentCNDtrue;
1352 fCentZNA = fCentZNAtrue;
1353 }
1354
1355
01974bd1 1356 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1357
1358 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1359 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1360 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1361 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1362 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1363 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1364 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1365 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1366 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1367 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1368 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1369
c932ac15 1370 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
1371 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1))) { // fill the QA histograms only for MB events!
39a3e400 1372
01974bd1 1373 fHOutQuality->Fill(fQuality);
1374 fHOutVertex->Fill(zvtx);
1375 fHOutVertexT0->Fill(zvtxT0);
1376
1377 if (fQuality==0) {
1378 fHOutCentV0M->Fill(fCentV0M);
1379 fHOutCentV0A->Fill(fCentV0A);
1380 fHOutCentV0C->Fill(fCentV0C);
1381
1382 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1383 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1384 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1385 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1386 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1387 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1388 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1389 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1390 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1391 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1392 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1393
1394 fHOutCentFMD->Fill(fCentFMD);
1395 fHOutCentTRK->Fill(fCentTRK);
1396 fHOutCentTKL->Fill(fCentTKL);
1397 fHOutCentCL0->Fill(fCentCL0);
1398 fHOutCentCL1->Fill(fCentCL1);
1399 fHOutCentCND->Fill(fCentCND);
8432b617 1400 fHOutCentNPA->Fill(fCentNPA);
99029fba 1401 fHOutCentZNA->Fill(fCentZNA);
01974bd1 1402 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1403 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1404 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1405 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1406 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1407 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1408 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1409 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1410 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1411 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1412 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1413 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1414 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1415 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
8432b617 1416 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1417 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1418 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1419 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1420 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
99029fba 1421 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1422 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1423 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1424 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1425 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
01974bd1 1426
1427 fHOutMultV0AC->Fill(multV0A,multV0C);
e1d58f75 1428 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1429 fHOutMultV0A->Fill(multV0ACorr);
1430 fHOutMultV0C->Fill(multV0CCorr);
1431 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1432 fHOutMultV0Anc->Fill(multV0A);
1433 fHOutMultV0Cnc->Fill(multV0C);
01974bd1 1434 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1435 fHOutMultV0Cells->Fill(nV0A,nV0C);
1436 fHOutMultFMD->Fill(multFMDA+multFMDC);
1437 fHOutMultTRK->Fill(nTracks);
1438 fHOutMultTKL->Fill(nTracklets);
1439 fHOutMultCL0->Fill(nClusters[0]);
1440 fHOutMultCL1->Fill(spdCorr);
1441 fHOutMultCND->Fill(multCND);
8432b617 1442 fHOutMultNPA->Fill(Npart);
99029fba 1443 fHOutMultZNA->Fill(znaTower);
01974bd1 1444
1445 fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1446 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1447 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1448 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1449 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1450 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1451 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1452 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1453 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1454 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1455 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1456 } else if (fQuality%2 == 0) {
1457 fHOutCentV0Mqual1->Fill(fCentV0M);
1458 fHOutCentTRKqual1->Fill(fCentTRK);
1459 fHOutCentCL1qual1->Fill(fCentCL1);
1460 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1461 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1462 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1463 } else {
1464 fHOutCentV0Mqual2->Fill(fCentV0M);
1465 fHOutCentTRKqual2->Fill(fCentTRK);
1466 fHOutCentCL1qual2->Fill(fCentCL1);
1467 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1468 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1469 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1470 }
1471 }
1472 PostData(1, fOutputList);
1473 }
1474}
1475//________________________________________________________________________
1476void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1477{
1478 // Terminate analysis
1479}
1480//________________________________________________________________________
1481Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
1482{
1483 // Setup files for run
1484
1485 if (!esd)
1486 return -1;
1487
1488 // check if something to be done
1489 if (fCurrentRun == esd->GetRunNumber())
1490 return 0;
1491 else
1492 fCurrentRun = esd->GetRunNumber();
1493
1494 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1495 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1496
1497 AliOADBContainer *con = new AliOADBContainer("OADB");
1498 con->InitFromFile(fileName,"Centrality");
1499
1500 AliOADBCentrality* centOADB = 0;
1501 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1502 if (!centOADB) {
1503 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1504 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1505 }
1506
39a3e400 1507 Bool_t isHijing=kFALSE;
1508 Bool_t isDpmjet=kFALSE;
1509 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1510 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1511 AliMCEvent* mcEvent=0;
1512 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1513 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1514 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1515 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1516 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1517 }
1518
1519
01974bd1 1520 // modes
1521 fUseScaling = centOADB->UseScaling();
1522 fUseCleaning = centOADB->UseCleaning();
1523
1524 // cuts
1525 fZVCut = centOADB->ZVCut();
1526 fOutliersCut = centOADB->OutliersCut();
1527
1528 // centrality histos
1529 fHtempV0M = centOADB->V0hist();
1530 fHtempV0A = centOADB->V0Ahist();
1531 fHtempV0C = centOADB->V0Chist();
1532 fHtempTRK = centOADB->TPChist();
1533 fHtempCL1 = centOADB->SPDhist();
1534 fHtempCND = centOADB->CNDhist();
39a3e400 1535 fHtempFMD = centOADB->FMDhist();
99029fba 1536 fHtempZNA = centOADB->ZNAhist();
01974bd1 1537 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
39a3e400 1538
1539 if (isHijing) {
1540 fHtempNPA = centOADB->NPAhist();
1541 fHtempV0Mtrue = centOADB->V0histtrue();
1542 fHtempV0Atrue = centOADB->V0Ahisttrue();
1543 fHtempV0Ctrue = centOADB->V0Chisttrue();
1544 fHtempTRKtrue = centOADB->TPChisttrue();
1545 fHtempCL1true = centOADB->SPDhisttrue();
1546 fHtempCNDtrue = centOADB->CNDhisttrue();
1547 fHtempFMDtrue = centOADB->FMDhisttrue();
1548 fHtempZNAtrue = centOADB->ZNAhisttrue();
1549 } else if (isDpmjet) {
1550 fHtempNPA = centOADB->NPAhistDPM();
1551 fHtempV0Mtrue = centOADB->V0histtrueDPM();
1552 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
1553 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
1554 fHtempTRKtrue = centOADB->TPChisttrueDPM();
1555 fHtempCL1true = centOADB->SPDhisttrueDPM();
1556 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
1557 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
1558 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
1559 }
1560
01974bd1 1561 TString path = gSystem->ExpandPathName(fileName.Data());
1562 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
1563 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
1564 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
1565 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
1566 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
1567 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
99029fba 1568 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
39a3e400 1569 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
01974bd1 1570 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
39a3e400 1571 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
1572
1573 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
1574 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
1575 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
1576 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
1577 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
1578 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
1579 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
1580 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
01974bd1 1581
1582 // scale factors
1583 fV0MScaleFactor = centOADB->V0MScaleFactor();
1584 fSPDScaleFactor = centOADB->SPDScaleFactor();
1585 fTPCScaleFactor = centOADB->TPCScaleFactor();
1586 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
1587
1588 // outliers parameters
1589 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
1590 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
1591 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
1592 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
1593
1594 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
1595 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
1596 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
1597 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
1598 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
1599 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
1600
1601 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
1602 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
1603 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
1604 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
1605
1606
1607
1608 return 0;
1609}
1610
1611
1612
1613//________________________________________________________________________
1614Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
1615{
1616 // Clean outliers
1617 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
1618 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
1619 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
1620 return kTRUE;
1621 else
1622 return kFALSE;
1623}
1624
1625//________________________________________________________________________
1626Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
1627{
1628 // Clean outliers
1629 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
1630 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
1631 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
1632 return kTRUE;
1633 else
1634 return kFALSE;
1635}
1636
1637//________________________________________________________________________
1638Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
1639{
1640 // Clean outliers
1641 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
1642 if (zdc > val)
1643 return kTRUE;
1644 else
1645 return kFALSE;
1646}
1647
1648//________________________________________________________________________
1649Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
1650{
1651 // Clean outliers
1652 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;
1653 if (zdc > val)
1654 return kTRUE;
1655 else
1656 return kFALSE;
1657}
1658
1659