1 /**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 //*****************************************************
17 // Class AliCentralitySelectionTask
18 // Class to analyze determine centrality
19 // author: Alberica Toia
20 //*****************************************************
22 #include "AliCentralitySelectionTask.h"
31 #include <TObjString.h>
35 #include <TDirectory.h>
39 #include "AliAnalysisManager.h"
40 #include "AliHeader.h"
41 #include "AliVEvent.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"
68 #include "AliAnalysisTaskSE.h"
69 #include "AliGenEventHeader.h"
70 #include "AliGenHijingEventHeader.h"
71 #include "AliGenDPMjetEventHeader.h"
72 #include "AliGenCocktailEventHeader.h"
73 #include "AliPhysicsSelectionTask.h"
74 #include "AliPhysicsSelection.h"
75 #include "AliBackgroundSelection.h"
76 #include "AliESDUtils.h"
78 ClassImp(AliCentralitySelectionTask)
81 //________________________________________________________________________
82 AliCentralitySelectionTask::AliCentralitySelectionTask():
84 fAnalysisInput("ESD"),
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),
163 fHOutCentV0MCVHNinMB(0),
164 fHOutCentV0MCVLNinMB(0),
165 fHOutCentV0MCCENT(0),
166 fHOutCentV0MCSEMI(0),
167 fHOutCentV0MCCENTinMB(0),
168 fHOutCentV0MCSEMIinMB(0),
176 fHOutCentV0MMSLinMB(0),
177 fHOutCentV0MMSHinMB(0),
178 fHOutCentV0MMULinMB(0),
179 fHOutCentV0MMLLinMB(0),
180 fHOutCentV0MEJEinMB(0),
181 fHOutCentV0MEGAinMB(0),
182 fHOutCentV0MPHSinMB(0),
191 fHOutCentV0MvsFMD(0),
192 fHOutCentTKLvsV0M(0),
193 fHOutCentZEMvsZDC(0),
194 fHOutCentV0MvsCentCL1(0),
195 fHOutCentV0MvsCentTRK(0),
196 fHOutCentTRKvsCentCL1(0),
197 fHOutCentV0MvsCentZDC(0),
198 fHOutCentV0AvsCentV0C(0),
199 fHOutCentV0AvsCentTRK(0),
200 fHOutCentV0AvsCentCND(0),
201 fHOutCentV0AvsCentCL1(0),
202 fHOutCentV0CvsCentTRK(0),
203 fHOutCentV0CvsCentCND(0),
204 fHOutCentV0CvsCentCL1(0),
205 fHOutCentNPAvsCentV0A(0),
206 fHOutCentNPAvsCentV0C(0),
207 fHOutCentNPAvsCentTRK(0),
208 fHOutCentNPAvsCentCND(0),
209 fHOutCentNPAvsCentCL1(0),
210 fHOutCentZNAvsCentV0A(0),
211 fHOutCentZNAvsCentV0C(0),
212 fHOutCentZNAvsCentTRK(0),
213 fHOutCentZNAvsCentCND(0),
214 fHOutCentZNAvsCentCL1(0),
232 fHOutMultV0MvsZDN(0),
233 fHOutMultZEMvsZDN(0),
234 fHOutMultV0MvsZDC(0),
235 fHOutMultZEMvsZDC(0),
236 fHOutMultZEMvsZDCw(0),
237 fHOutMultV0MvsCL1(0),
238 fHOutMultV0MvsTRK(0),
239 fHOutMultTRKvsCL1(0),
240 fHOutMultV0MvsV0O(0),
241 fHOutMultV0OvsCL1(0),
242 fHOutMultV0OvsTRK(0),
243 fHOutMultCL1vsTKL(0),
244 fHOutCentV0Mqual1(0),
245 fHOutCentTRKqual1(0),
246 fHOutCentCL1qual1(0),
247 fHOutMultV0MvsCL1qual1(0),
248 fHOutMultV0MvsTRKqual1(0),
249 fHOutMultTRKvsCL1qual1(0),
250 fHOutCentV0Mqual2(0),
251 fHOutCentTRKqual2(0),
252 fHOutCentCL1qual2(0),
253 fHOutMultV0MvsCL1qual2(0),
254 fHOutMultV0MvsTRKqual2(0),
255 fHOutMultTRKvsCL1qual2(0),
260 // Default constructor
261 AliInfo("Centrality Selection enabled.");
266 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
267 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
270 //________________________________________________________________________
271 AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
272 AliAnalysisTaskSE(name),
273 fAnalysisInput("ESD"),
282 fV0MScaleFactorMC(0),
283 fV0MSPDOutlierPar0(0),
284 fV0MSPDOutlierPar1(0),
285 fV0MTPCOutlierPar0(0),
286 fV0MTPCOutlierPar1(0),
287 fV0MSPDSigmaOutlierPar0(0),
288 fV0MSPDSigmaOutlierPar1(0),
289 fV0MSPDSigmaOutlierPar2(0),
290 fV0MTPCSigmaOutlierPar0(0),
291 fV0MTPCSigmaOutlierPar1(0),
292 fV0MTPCSigmaOutlierPar2(0),
293 fV0MZDCOutlierPar0(0),
294 fV0MZDCOutlierPar1(0),
295 fV0MZDCEcalOutlierPar0(0),
296 fV0MZDCEcalOutlierPar1(0),
352 fHOutCentV0MCVHNinMB(0),
353 fHOutCentV0MCVLNinMB(0),
354 fHOutCentV0MCCENT(0),
355 fHOutCentV0MCSEMI(0),
356 fHOutCentV0MCCENTinMB(0),
357 fHOutCentV0MCSEMIinMB(0),
365 fHOutCentV0MMSLinMB(0),
366 fHOutCentV0MMSHinMB(0),
367 fHOutCentV0MMULinMB(0),
368 fHOutCentV0MMLLinMB(0),
369 fHOutCentV0MEJEinMB(0),
370 fHOutCentV0MEGAinMB(0),
371 fHOutCentV0MPHSinMB(0),
380 fHOutCentV0MvsFMD(0),
381 fHOutCentTKLvsV0M(0),
382 fHOutCentZEMvsZDC(0),
383 fHOutCentV0MvsCentCL1(0),
384 fHOutCentV0MvsCentTRK(0),
385 fHOutCentTRKvsCentCL1(0),
386 fHOutCentV0MvsCentZDC(0),
387 fHOutCentV0AvsCentV0C(0),
388 fHOutCentV0AvsCentTRK(0),
389 fHOutCentV0AvsCentCND(0),
390 fHOutCentV0AvsCentCL1(0),
391 fHOutCentV0CvsCentTRK(0),
392 fHOutCentV0CvsCentCND(0),
393 fHOutCentV0CvsCentCL1(0),
394 fHOutCentNPAvsCentV0A(0),
395 fHOutCentNPAvsCentV0C(0),
396 fHOutCentNPAvsCentTRK(0),
397 fHOutCentNPAvsCentCND(0),
398 fHOutCentNPAvsCentCL1(0),
399 fHOutCentZNAvsCentV0A(0),
400 fHOutCentZNAvsCentV0C(0),
401 fHOutCentZNAvsCentTRK(0),
402 fHOutCentZNAvsCentCND(0),
403 fHOutCentZNAvsCentCL1(0),
421 fHOutMultV0MvsZDN(0),
422 fHOutMultZEMvsZDN(0),
423 fHOutMultV0MvsZDC(0),
424 fHOutMultZEMvsZDC(0),
425 fHOutMultZEMvsZDCw(0),
426 fHOutMultV0MvsCL1(0),
427 fHOutMultV0MvsTRK(0),
428 fHOutMultTRKvsCL1(0),
429 fHOutMultV0MvsV0O(0),
430 fHOutMultV0OvsCL1(0),
431 fHOutMultV0OvsTRK(0),
432 fHOutMultCL1vsTKL(0),
433 fHOutCentV0Mqual1(0),
434 fHOutCentTRKqual1(0),
435 fHOutCentCL1qual1(0),
436 fHOutMultV0MvsCL1qual1(0),
437 fHOutMultV0MvsTRKqual1(0),
438 fHOutMultTRKvsCL1qual1(0),
439 fHOutCentV0Mqual2(0),
440 fHOutCentTRKqual2(0),
441 fHOutCentCL1qual2(0),
442 fHOutMultV0MvsCL1qual2(0),
443 fHOutMultV0MvsTRKqual2(0),
444 fHOutMultTRKvsCL1qual2(0),
449 // Default constructor
450 AliInfo("Centrality Selection enabled.");
451 //DefineOutput(1, TList::Class());
455 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
456 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
459 //________________________________________________________________________
460 AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c)
462 // Assignment operator
464 AliAnalysisTaskSE::operator=(c);
469 //________________________________________________________________________
470 AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana):
471 AliAnalysisTaskSE(ana),
472 fAnalysisInput(ana.fAnalysisInput),
473 fIsMCInput(ana.fIsMCInput),
474 fCurrentRun(ana.fCurrentRun),
475 fUseScaling(ana.fUseScaling),
476 fUseCleaning(ana.fUseCleaning),
477 fFillHistos(ana.fFillHistos),
478 fV0MScaleFactor(ana.fV0MScaleFactor),
479 fSPDScaleFactor(ana.fSPDScaleFactor),
480 fTPCScaleFactor(ana.fTPCScaleFactor),
481 fV0MScaleFactorMC(ana.fV0MScaleFactorMC),
482 fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0),
483 fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1),
484 fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0),
485 fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1),
486 fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0),
487 fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1),
488 fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2),
489 fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0),
490 fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1),
491 fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2),
492 fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0),
493 fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1),
494 fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0),
495 fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1),
496 fTrackCuts(ana.fTrackCuts),
498 fOutliersCut(ana.fOutliersCut),
499 fQuality(ana.fQuality),
500 fIsSelected(ana.fIsSelected),
511 fCVHNbit(ana.fCVHNbit),
512 fCVLNbit(ana.fCVLNbit),
515 fCCENTbit(ana.fCCENTbit),
516 fCSEMIbit(ana.fCSEMIbit),
517 fCentV0M(ana.fCentV0M),
518 fCentV0A(ana.fCentV0A),
519 fCentV0C(ana.fCentV0C),
520 fCentFMD(ana.fCentFMD),
521 fCentTRK(ana.fCentTRK),
522 fCentTKL(ana.fCentTKL),
523 fCentCL0(ana.fCentCL0),
524 fCentCL1(ana.fCentCL1),
525 fCentCND(ana.fCentCND),
526 fCentNPA(ana.fCentNPA),
527 fCentZNA(ana.fCentZNA),
528 fCentV0MvsFMD(ana.fCentV0MvsFMD),
529 fCentTKLvsV0M(ana.fCentTKLvsV0M),
530 fCentZEMvsZDC(ana.fCentZEMvsZDC),
531 fHtempV0M(ana.fHtempV0M),
532 fHtempV0A(ana.fHtempV0A),
533 fHtempV0C(ana.fHtempV0C),
534 fHtempFMD(ana.fHtempFMD),
535 fHtempTRK(ana.fHtempTRK),
536 fHtempTKL(ana.fHtempTKL),
537 fHtempCL0(ana.fHtempCL0),
538 fHtempCL1(ana.fHtempCL1),
539 fHtempCND(ana.fHtempCND),
540 fHtempNPA(ana.fHtempNPA),
541 fHtempZNA(ana.fHtempZNA),
542 fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
543 fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
544 fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
545 fOutputList(ana.fOutputList),
546 fHOutCentV0M (ana.fHOutCentV0M ),
547 fHOutCentV0A (ana.fHOutCentV0A ),
548 fHOutCentV0C (ana.fHOutCentV0C ),
549 fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
550 fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
551 fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
552 fHOutCentV0MCVLNinMB(ana.fHOutCentV0MCVLNinMB),
553 fHOutCentV0MCCENT(ana.fHOutCentV0MCCENT),
554 fHOutCentV0MCSEMI(ana.fHOutCentV0MCSEMI),
555 fHOutCentV0MCCENTinMB(ana.fHOutCentV0MCCENTinMB),
556 fHOutCentV0MCSEMIinMB(ana.fHOutCentV0MCSEMIinMB),
557 fHOutCentV0MMSL(ana.fHOutCentV0MMSL),
558 fHOutCentV0MMSH(ana.fHOutCentV0MMSH),
559 fHOutCentV0MMUL(ana.fHOutCentV0MMUL),
560 fHOutCentV0MMLL(ana.fHOutCentV0MMLL),
561 fHOutCentV0MEJE(ana.fHOutCentV0MEJE),
562 fHOutCentV0MEGA(ana.fHOutCentV0MEGA),
563 fHOutCentV0MPHS(ana.fHOutCentV0MPHS),
564 fHOutCentV0MMSLinMB(ana.fHOutCentV0MMSLinMB),
565 fHOutCentV0MMSHinMB(ana.fHOutCentV0MMSHinMB),
566 fHOutCentV0MMULinMB(ana.fHOutCentV0MMULinMB),
567 fHOutCentV0MMLLinMB(ana.fHOutCentV0MMLLinMB),
568 fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
569 fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
570 fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
571 fHOutCentFMD (ana.fHOutCentFMD ),
572 fHOutCentTRK (ana.fHOutCentTRK ),
573 fHOutCentTKL (ana.fHOutCentTKL ),
574 fHOutCentCL0 (ana.fHOutCentCL0 ),
575 fHOutCentCL1 (ana.fHOutCentCL1 ),
576 fHOutCentCND (ana.fHOutCentCND ),
577 fHOutCentNPA (ana.fHOutCentNPA ),
578 fHOutCentZNA (ana.fHOutCentZNA ),
579 fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
580 fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
581 fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
582 fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1),
583 fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK),
584 fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1),
585 fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC),
586 fHOutCentV0AvsCentV0C(ana.fHOutCentV0AvsCentV0C),
587 fHOutCentV0AvsCentTRK(ana.fHOutCentV0AvsCentTRK),
588 fHOutCentV0AvsCentCND(ana.fHOutCentV0AvsCentCND),
589 fHOutCentV0AvsCentCL1(ana.fHOutCentV0AvsCentCL1),
590 fHOutCentV0CvsCentTRK(ana.fHOutCentV0CvsCentTRK),
591 fHOutCentV0CvsCentCND(ana.fHOutCentV0CvsCentCND),
592 fHOutCentV0CvsCentCL1(ana.fHOutCentV0CvsCentCL1),
593 fHOutCentNPAvsCentV0A(ana.fHOutCentNPAvsCentV0A),
594 fHOutCentNPAvsCentV0C(ana.fHOutCentNPAvsCentV0C),
595 fHOutCentNPAvsCentTRK(ana.fHOutCentNPAvsCentTRK),
596 fHOutCentNPAvsCentCND(ana.fHOutCentNPAvsCentCND),
597 fHOutCentNPAvsCentCL1(ana.fHOutCentNPAvsCentCL1),
598 fHOutCentZNAvsCentV0A(ana.fHOutCentZNAvsCentV0A),
599 fHOutCentZNAvsCentV0C(ana.fHOutCentZNAvsCentV0C),
600 fHOutCentZNAvsCentTRK(ana.fHOutCentZNAvsCentTRK),
601 fHOutCentZNAvsCentCND(ana.fHOutCentZNAvsCentCND),
602 fHOutCentZNAvsCentCL1(ana.fHOutCentZNAvsCentCL1),
603 fHOutMultV0AC(ana.fHOutMultV0AC),
604 fHOutMultV0M(ana.fHOutMultV0M),
605 fHOutMultV0A(ana.fHOutMultV0A),
606 fHOutMultV0C(ana.fHOutMultV0C),
607 fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
608 fHOutMultV0Anc(ana.fHOutMultV0Anc),
609 fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
610 fHOutMultV0O(ana.fHOutMultV0O),
611 fHOutMultV0Cells(ana.fHOutMultV0Cells),
612 fHOutMultFMD(ana.fHOutMultFMD),
613 fHOutMultTRK(ana.fHOutMultTRK),
614 fHOutMultTKL(ana.fHOutMultTKL),
615 fHOutMultCL0(ana.fHOutMultCL0),
616 fHOutMultCL1(ana.fHOutMultCL1),
617 fHOutMultCND(ana.fHOutMultCND),
618 fHOutMultNPA(ana.fHOutMultNPA),
619 fHOutMultZNA(ana.fHOutMultZNA),
620 fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
621 fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
622 fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
623 fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
624 fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw),
625 fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
626 fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
627 fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1),
628 fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O),
629 fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
630 fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
631 fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
632 fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
633 fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
634 fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
635 fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1),
636 fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1),
637 fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1),
638 fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2),
639 fHOutCentTRKqual2(ana.fHOutCentTRKqual2),
640 fHOutCentCL1qual2(ana.fHOutCentCL1qual2),
641 fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2),
642 fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2),
643 fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2),
644 fHOutQuality(ana.fHOutQuality),
645 fHOutVertex(ana.fHOutVertex),
646 fHOutVertexT0(ana.fHOutVertexT0)
652 //________________________________________________________________________
653 AliCentralitySelectionTask::~AliCentralitySelectionTask()
656 if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
657 if (fTrackCuts) delete fTrackCuts;
660 //________________________________________________________________________
661 void AliCentralitySelectionTask::UserCreateOutputObjects()
663 // Create the output containers
664 if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
665 AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
668 fOutputList = new TList();
669 fOutputList->SetOwner();
670 fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
671 fHOutCentV0A = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
672 fHOutCentV0C = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
673 fHOutCentV0MCVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
674 fHOutCentV0MCVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
675 fHOutCentV0MCVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
676 fHOutCentV0MCVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
677 fHOutCentV0MCCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
678 fHOutCentV0MCSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
679 fHOutCentV0MCCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
680 fHOutCentV0MCSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
681 fHOutCentV0MMSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101);
682 fHOutCentV0MMSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101);
683 fHOutCentV0MMUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101);
684 fHOutCentV0MMLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101);
685 fHOutCentV0MEJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101);
686 fHOutCentV0MEGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101);
687 fHOutCentV0MPHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101);
688 fHOutCentV0MMSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101);
689 fHOutCentV0MMSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101);
690 fHOutCentV0MMULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101);
691 fHOutCentV0MMLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101);
692 fHOutCentV0MEJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101);
693 fHOutCentV0MEGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101);
694 fHOutCentV0MPHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101);
695 fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101);
696 fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101);
697 fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101);
698 fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101);
699 fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101);
700 fHOutCentCND = new TH1F("fHOutCentCND","fHOutCentCND; Centrality candle",505,0,101);
701 fHOutCentNPA = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality Npart",505,0,101);
702 fHOutCentZNA = new TH1F("fHOutCentZNA","fHOutCentZNA; Centrality ZNA",505,0,101);
703 fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
704 fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
705 fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
706 fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101);
707 fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101);
708 fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101);
709 fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101);
710 fHOutCentV0AvsCentV0C= new TH2F("fHOutCentV0AvsCentV0C","fHOutCentV0AvsCentV0C; Cent V0A; Cent V0C;", 505,0,101,505,0,101);
711 fHOutCentV0AvsCentTRK= new TH2F("fHOutCentV0AvsCentTRK","fHOutCentV0AvsCentTRK; Cent V0A; Cent TRK;", 505,0,101,505,0,101);
712 fHOutCentV0AvsCentCND= new TH2F("fHOutCentV0AvsCentCND","fHOutCentV0AvsCentCND; Cent V0A; Cent CND;", 505,0,101,505,0,101);
713 fHOutCentV0AvsCentCL1= new TH2F("fHOutCentV0AvsCentCL1","fHOutCentV0AvsCentCL1; Cent V0A; Cent CL1;", 505,0,101,505,0,101);
714 fHOutCentV0CvsCentTRK= new TH2F("fHOutCentV0CvsCentTRK","fHOutCentV0CvsCentTRK; Cent V0C; Cent TRK;", 505,0,101,505,0,101);
715 fHOutCentV0CvsCentCND= new TH2F("fHOutCentV0CvsCentCND","fHOutCentV0CvsCentCND; Cent V0C; Cent CND;", 505,0,101,505,0,101);
716 fHOutCentV0CvsCentCL1= new TH2F("fHOutCentV0CvsCentCL1","fHOutCentV0CvsCentCL1; Cent V0C; Cent CL1;", 505,0,101,505,0,101);
717 fHOutCentNPAvsCentV0A= new TH2F("fHOutCentNPAvsCentV0A","fHOutCentNPAvsCentV0A; Cent NPA; Cent V0A;", 505,0,101,505,0,101);
718 fHOutCentNPAvsCentV0C= new TH2F("fHOutCentNPAvsCentV0C","fHOutCentNPAvsCentV0C; Cent NPA; Cent V0C;", 505,0,101,505,0,101);
719 fHOutCentNPAvsCentTRK= new TH2F("fHOutCentNPAvsCentTRK","fHOutCentNPAvsCentTRK; Cent NPA; Cent TRK;", 505,0,101,505,0,101);
720 fHOutCentNPAvsCentCND= new TH2F("fHOutCentNPAvsCentCND","fHOutCentNPAvsCentCND; Cent NPA; Cent CND;", 505,0,101,505,0,101);
721 fHOutCentNPAvsCentCL1= new TH2F("fHOutCentNPAvsCentCL1","fHOutCentNPAvsCentCL1; Cent NPA; Cent CL1;", 505,0,101,505,0,101);
722 fHOutCentZNAvsCentV0A= new TH2F("fHOutCentZNAvsCentV0A","fHOutCentZNAvsCentV0A; Cent ZNA; Cent V0A;", 505,0,101,505,0,101);
723 fHOutCentZNAvsCentV0C= new TH2F("fHOutCentZNAvsCentV0C","fHOutCentZNAvsCentV0C; Cent ZNA; Cent V0C;", 505,0,101,505,0,101);
724 fHOutCentZNAvsCentTRK= new TH2F("fHOutCentZNAvsCentTRK","fHOutCentZNAvsCentTRK; Cent ZNA; Cent TRK;", 505,0,101,505,0,101);
725 fHOutCentZNAvsCentCND= new TH2F("fHOutCentZNAvsCentCND","fHOutCentZNAvsCentCND; Cent ZNA; Cent CND;", 505,0,101,505,0,101);
726 fHOutCentZNAvsCentCL1= new TH2F("fHOutCentZNAvsCentCL1","fHOutCentZNAvsCentCL1; Cent ZNA; Cent CL1;", 505,0,101,505,0,101);
728 fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
729 fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
730 fHOutMultV0A = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
731 fHOutMultV0C = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
732 fHOutMultV0Mnc= new TH1F("fHOutMultV0Mnc","fHOutMultV0Mnc; Multiplicity V0",25000,0,25000);
733 fHOutMultV0Anc= new TH1F("fHOutMultV0Anc","fHOutMultV0Anc; Multiplicity V0",25000,0,25000);
734 fHOutMultV0Cnc= new TH1F("fHOutMultV0Cnc","fHOutMultV0Cnc; Multiplicity V0",25000,0,25000);
735 fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000);
736 fHOutMultV0Cells = new TH2F("fHOutMultV0Cells","fHOutMultV0Cells",33,-0.5,32.5,33,-0.5,32.5);
737 fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
738 fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
739 fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
740 fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
741 fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
742 fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
743 fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
744 fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",500,0,2000);
746 fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,30000,500,0,180000);
747 fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
748 fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
749 fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
750 fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000);
751 fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
752 fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
753 fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
754 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000);
755 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000);
756 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000);
757 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000);
758 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
759 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
760 fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
762 fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
763 fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
764 fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101);
765 fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
766 fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
767 fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
769 fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101);
770 fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101);
771 fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101);
772 fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
773 fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
774 fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
776 fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5);
777 fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20);
778 fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20);
780 fOutputList->Add( fHOutCentV0M );
781 fOutputList->Add( fHOutCentV0A );
782 fOutputList->Add( fHOutCentV0C );
783 fOutputList->Add( fHOutCentV0MCVHN);
784 fOutputList->Add( fHOutCentV0MCVLN);
785 fOutputList->Add( fHOutCentV0MCVHNinMB);
786 fOutputList->Add( fHOutCentV0MCVLNinMB);
787 fOutputList->Add( fHOutCentV0MCCENT);
788 fOutputList->Add( fHOutCentV0MCSEMI);
789 fOutputList->Add( fHOutCentV0MCCENTinMB);
790 fOutputList->Add( fHOutCentV0MCSEMIinMB);
791 fOutputList->Add( fHOutCentV0MMSL );
792 fOutputList->Add( fHOutCentV0MMSH );
793 fOutputList->Add( fHOutCentV0MMUL );
794 fOutputList->Add( fHOutCentV0MMLL );
795 fOutputList->Add( fHOutCentV0MEJE );
796 fOutputList->Add( fHOutCentV0MEGA );
797 fOutputList->Add( fHOutCentV0MPHS );
798 fOutputList->Add( fHOutCentV0MMSLinMB);
799 fOutputList->Add( fHOutCentV0MMSHinMB);
800 fOutputList->Add( fHOutCentV0MMULinMB);
801 fOutputList->Add( fHOutCentV0MMLLinMB);
802 fOutputList->Add( fHOutCentV0MEJEinMB);
803 fOutputList->Add( fHOutCentV0MEGAinMB);
804 fOutputList->Add( fHOutCentV0MPHSinMB);
805 fOutputList->Add( fHOutCentFMD );
806 fOutputList->Add( fHOutCentTRK );
807 fOutputList->Add( fHOutCentTKL );
808 fOutputList->Add( fHOutCentCL0 );
809 fOutputList->Add( fHOutCentCL1 );
810 fOutputList->Add( fHOutCentCND );
811 fOutputList->Add( fHOutCentNPA );
812 fOutputList->Add( fHOutCentZNA );
813 fOutputList->Add( fHOutCentV0MvsFMD);
814 fOutputList->Add( fHOutCentTKLvsV0M);
815 fOutputList->Add( fHOutCentZEMvsZDC);
816 fOutputList->Add( fHOutCentV0MvsCentCL1);
817 fOutputList->Add( fHOutCentV0MvsCentTRK);
818 fOutputList->Add( fHOutCentTRKvsCentCL1);
819 fOutputList->Add( fHOutCentV0MvsCentZDC);
820 fOutputList->Add( fHOutCentV0AvsCentV0C);
821 fOutputList->Add( fHOutCentV0AvsCentTRK);
822 fOutputList->Add( fHOutCentV0AvsCentCND);
823 fOutputList->Add( fHOutCentV0AvsCentCL1);
824 fOutputList->Add( fHOutCentV0CvsCentTRK);
825 fOutputList->Add( fHOutCentV0CvsCentCND);
826 fOutputList->Add( fHOutCentV0CvsCentCL1);
827 fOutputList->Add( fHOutCentNPAvsCentV0A);
828 fOutputList->Add( fHOutCentNPAvsCentV0C);
829 fOutputList->Add( fHOutCentNPAvsCentTRK);
830 fOutputList->Add( fHOutCentNPAvsCentCND);
831 fOutputList->Add( fHOutCentNPAvsCentCL1);
832 fOutputList->Add( fHOutCentZNAvsCentV0A);
833 fOutputList->Add( fHOutCentZNAvsCentV0C);
834 fOutputList->Add( fHOutCentZNAvsCentTRK);
835 fOutputList->Add( fHOutCentZNAvsCentCND);
836 fOutputList->Add( fHOutCentZNAvsCentCL1);
838 fOutputList->Add( fHOutMultV0AC);
839 fOutputList->Add( fHOutMultV0M);
840 fOutputList->Add( fHOutMultV0A);
841 fOutputList->Add( fHOutMultV0C);
842 fOutputList->Add( fHOutMultV0Mnc);
843 fOutputList->Add( fHOutMultV0Anc);
844 fOutputList->Add( fHOutMultV0Cnc);
845 fOutputList->Add( fHOutMultV0O);
846 fOutputList->Add( fHOutMultV0Cells) ;
847 fOutputList->Add( fHOutMultFMD);
848 fOutputList->Add( fHOutMultTRK);
849 fOutputList->Add( fHOutMultTKL);
850 fOutputList->Add( fHOutMultCL0);
851 fOutputList->Add( fHOutMultCL1);
852 fOutputList->Add( fHOutMultCND);
853 fOutputList->Add( fHOutMultNPA);
854 fOutputList->Add( fHOutMultZNA);
855 fOutputList->Add( fHOutMultV0MvsZDN);
856 fOutputList->Add( fHOutMultZEMvsZDN);
857 fOutputList->Add( fHOutMultV0MvsZDC);
858 fOutputList->Add( fHOutMultZEMvsZDC);
859 fOutputList->Add( fHOutMultZEMvsZDCw);
860 fOutputList->Add( fHOutMultV0MvsCL1);
861 fOutputList->Add( fHOutMultV0MvsTRK);
862 fOutputList->Add( fHOutMultTRKvsCL1);
863 fOutputList->Add( fHOutMultV0MvsV0O);
864 fOutputList->Add( fHOutMultV0OvsCL1);
865 fOutputList->Add( fHOutMultV0OvsTRK);
866 fOutputList->Add( fHOutMultCL1vsTKL);
867 fOutputList->Add( fHOutCentV0Mqual1 );
868 fOutputList->Add( fHOutCentTRKqual1 );
869 fOutputList->Add( fHOutCentCL1qual1 );
870 fOutputList->Add( fHOutMultV0MvsCL1qual1);
871 fOutputList->Add( fHOutMultV0MvsTRKqual1);
872 fOutputList->Add( fHOutMultTRKvsCL1qual1);
873 fOutputList->Add( fHOutCentV0Mqual2 );
874 fOutputList->Add( fHOutCentTRKqual2 );
875 fOutputList->Add( fHOutCentCL1qual2 );
876 fOutputList->Add( fHOutMultV0MvsCL1qual2);
877 fOutputList->Add( fHOutMultV0MvsTRKqual2);
878 fOutputList->Add( fHOutMultTRKvsCL1qual2);
879 fOutputList->Add( fHOutQuality );
880 fOutputList->Add( fHOutVertex );
881 fOutputList->Add( fHOutVertexT0 );
883 PostData(1, fOutputList);
886 fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
889 //________________________________________________________________________
890 void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
892 // Execute analysis for current event:
893 if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
895 Float_t zncEnergy = 0.; // ZNC Energy
896 Float_t zpcEnergy = 0.; // ZPC Energy
897 Float_t znaEnergy = 0.; // ZNA Energy
898 Float_t zpaEnergy = 0.; // ZPA Energy
899 Float_t zem1Energy = 0.; // ZEM1 Energy
900 Float_t zem2Energy = 0.; // ZEM2 Energy
901 Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2)
902 Double_t znaTower = 0.; // common PMT of ZNA
903 Bool_t znaFired = kFALSE;
905 Int_t nTracks = 0; // no. tracks
906 Int_t nTracklets = 0; // no. tracklets
907 Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers
908 Int_t nChips[2]; // no. chips on 2 SPD layers
909 Float_t spdCorr =0; // corrected spd2 multiplicity
910 Int_t multCND = 0; // no. tracks (candle condition)
912 Float_t multV0A = 0; // multiplicity from V0 reco side A
913 Float_t multV0C = 0; // multiplicity from V0 reco side C
914 Float_t multV0ACorr = 0; // multiplicity from V0 reco side A
915 Float_t multV0CCorr = 0; // multiplicity from V0 reco side C
916 Short_t multV0AOnline = 0; // multiplicity from V0 reco side A
917 Short_t multV0COnline = 0; // multiplicity from V0 reco side C
918 Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC)
922 Float_t multFMDA = 0; // multiplicity from FMD on detector A
923 Float_t multFMDC = 0; // multiplicity from FMD on detector C
925 Float_t zvtx =0; // z-vertex SPD
926 Int_t zvtxNcont =0; // contributors to z-vertex SPD
928 Float_t zvtxT0 =0; // z-vertex T0
930 Int_t Npart =0; // N. of participants (true MC)
932 AliCentrality *esdCent = 0;
934 if(fAnalysisInput.CompareTo("ESD")==0){
936 AliVEvent* event = InputEvent();
937 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
939 AliError("No ESD Event");
945 if (SetupRun(esd)<0) {
946 AliError("Centrality File not available for this run");
950 esdCent = esd->GetCentrality();
953 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
954 zvtx = vtxESD->GetZ();
955 zvtxNcont = vtxESD->GetNContributors();
958 AliESDVZERO* esdV0 = esd->GetVZEROData();
961 AliError("AliESDVZERO not available");
964 multV0A=esdV0->GetMTotV0A();
965 multV0C=esdV0->GetMTotV0C();
967 multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);
968 multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);
970 v0Corr = multV0A+multV0C;
972 multV0AOnline=esdV0->GetTriggerChargeA();
973 multV0COnline=esdV0->GetTriggerChargeC();
976 for(Int_t i = 0; i < 32; ++i) {
977 if (esdV0->GetBBFlag(i)) nV0C++;
978 if (esdV0->GetBBFlag(i+32)) nV0A++;
982 const AliESDTZERO* esdT0 = esd->GetESDTZERO();
985 AliError("AliESDTZERO not available");
988 Int_t trig=esdT0->GetT0Trig();
989 Bool_t kT0BB = kFALSE;
990 if(trig&1) kT0BB=kTRUE;
991 zvtxT0=esdT0->GetT0zVertex();
994 // ***** Trigger info
995 fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1));
996 TString trigStr(esd->GetFiredTriggerClasses());
999 fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE;
1000 fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE;
1001 fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE;
1003 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI")) && (fIsSelected))
1005 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected))
1007 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected))
1009 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected))
1011 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected))
1014 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected))
1016 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected))
1018 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected))
1020 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected))
1022 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected))
1024 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected))
1026 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected))
1029 fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE;
1030 if (esdV0->GetTriggerBits() & (1<<8))
1032 if (esdV0->GetTriggerBits() & (1<<6))
1035 if (kT0BB && fCVHNbit)
1037 if (kT0BB && fCVLNbit)
1041 // ***** CB info (tracklets, clusters, chips)
1042 //nTracks = event->GetNumberOfTracks();
1043 nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
1044 Short_t nTrTPCcandle = 0;
1045 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
1046 AliESDtrack* track = esd->GetTrack(iTracks);
1047 if (!track) continue;
1048 if (track->Pt() > 0.5 && TMath::Abs(track->Eta()) < 0.8) nTrTPCcandle++;
1050 multCND = nTrTPCcandle;
1052 const AliMultiplicity *mult = esd->GetMultiplicity();
1053 nTracklets = mult->GetNumberOfTracklets();
1055 for(Int_t ilay=0; ilay<6; ilay++){
1056 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1059 for(Int_t ilay=0; ilay<2; ilay++){
1060 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1063 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1066 AliESDFMD *fmd = esd->GetFMDData();
1067 Float_t totalMultA = 0;
1068 Float_t totalMultC = 0;
1069 const Float_t fFMDLowCut = 0.4;
1071 for(UShort_t det=1;det<=3;det++) {
1072 Int_t nRings = (det==1 ? 1 : 2);
1073 for (UShort_t ir = 0; ir < nRings; ir++) {
1074 Char_t ring = (ir == 0 ? 'I' : 'O');
1075 UShort_t nsec = (ir == 0 ? 20 : 40);
1076 UShort_t nstr = (ir == 0 ? 512 : 256);
1077 for(UShort_t sec =0; sec < nsec; sec++) {
1078 for(UShort_t strip = 0; strip < nstr; strip++) {
1080 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1081 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1083 Float_t nParticles=0;
1085 if(fmdMult > fFMDLowCut) {
1089 if (det<3) totalMultA = totalMultA + nParticles;
1090 else totalMultC = totalMultC + nParticles;
1096 multFMDA = totalMultA;
1097 multFMDC = totalMultC;
1100 AliESDZDC *esdZDC = esd->GetESDZDC();
1101 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1103 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1104 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1105 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1106 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1108 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1109 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1110 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1111 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1113 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1114 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
1116 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1117 znaTower = ZNAtower[0];
1119 for (Int_t j = 0; j < 4; ++j) {
1120 if (esdZDC->GetZDCTDCData(12,j) != 0) {
1126 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1127 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1129 AliMCEvent* mcEvent=0;
1130 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
1132 AliGenHijingEventHeader* hHijing=0;
1133 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1134 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) {
1135 hHijing = (AliGenHijingEventHeader*)mcGenH;
1137 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1138 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1139 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
1142 Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1145 // now you really have a problem.
1150 else if(fAnalysisInput.CompareTo("AOD")==0){
1151 //AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
1152 // to be implemented
1153 printf(" AOD analysis not yet implemented!!!\n\n");
1157 // ***** Scaling for MC
1160 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1161 multV0A = multV0A * fV0MScaleFactorMC;
1162 multV0C = multV0C * fV0MScaleFactorMC;
1164 // ***** Scaling for Data
1166 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1167 spdCorr = spdCorr / fSPDScaleFactor;
1168 nTracks = Int_t(nTracks / fTPCScaleFactor);
1171 // ***** Centrality Selection
1172 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
1173 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1174 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
1175 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1176 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1177 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1178 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1179 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1180 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
1181 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1183 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1184 else fCentZNA = 101;
1186 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1187 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1188 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1196 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1198 // ***** outliers, skip in case of MC input
1201 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1203 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1205 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1206 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1207 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1208 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1216 esdCent->SetQuality(fQuality);
1217 esdCent->SetCentralityV0M(fCentV0M);
1218 esdCent->SetCentralityV0A(fCentV0A);
1219 esdCent->SetCentralityV0C(fCentV0C);
1220 esdCent->SetCentralityFMD(fCentFMD);
1221 esdCent->SetCentralityTRK(fCentTRK);
1222 esdCent->SetCentralityTKL(fCentTKL);
1223 esdCent->SetCentralityCL0(fCentCL0);
1224 esdCent->SetCentralityCL1(fCentCL1);
1225 esdCent->SetCentralityCND(fCentCND);
1226 esdCent->SetCentralityNPA(fCentNPA);
1227 esdCent->SetCentralityZNA(fCentZNA);
1228 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1229 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1230 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1233 // filling QA histograms
1235 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1237 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1238 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1239 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1240 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1241 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1242 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1243 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1244 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1245 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1246 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1247 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1249 if (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) { // fill the QA histograms only for MB events!
1250 fHOutQuality->Fill(fQuality);
1251 fHOutVertex->Fill(zvtx);
1252 fHOutVertexT0->Fill(zvtxT0);
1255 fHOutCentV0M->Fill(fCentV0M);
1256 fHOutCentV0A->Fill(fCentV0A);
1257 fHOutCentV0C->Fill(fCentV0C);
1259 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1260 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1261 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1262 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1263 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1264 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1265 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1266 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1267 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1268 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1269 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1271 fHOutCentFMD->Fill(fCentFMD);
1272 fHOutCentTRK->Fill(fCentTRK);
1273 fHOutCentTKL->Fill(fCentTKL);
1274 fHOutCentCL0->Fill(fCentCL0);
1275 fHOutCentCL1->Fill(fCentCL1);
1276 fHOutCentCND->Fill(fCentCND);
1277 fHOutCentNPA->Fill(fCentNPA);
1278 fHOutCentZNA->Fill(fCentZNA);
1279 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1280 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1281 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1282 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1283 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1284 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1285 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1286 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1287 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1288 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1289 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1290 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1291 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1292 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
1293 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1294 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1295 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1296 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1297 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
1298 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1299 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1300 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1301 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1302 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
1304 fHOutMultV0AC->Fill(multV0A,multV0C);
1305 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1306 fHOutMultV0A->Fill(multV0ACorr);
1307 fHOutMultV0C->Fill(multV0CCorr);
1308 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1309 fHOutMultV0Anc->Fill(multV0A);
1310 fHOutMultV0Cnc->Fill(multV0C);
1311 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1312 fHOutMultV0Cells->Fill(nV0A,nV0C);
1313 fHOutMultFMD->Fill(multFMDA+multFMDC);
1314 fHOutMultTRK->Fill(nTracks);
1315 fHOutMultTKL->Fill(nTracklets);
1316 fHOutMultCL0->Fill(nClusters[0]);
1317 fHOutMultCL1->Fill(spdCorr);
1318 fHOutMultCND->Fill(multCND);
1319 fHOutMultNPA->Fill(Npart);
1320 fHOutMultZNA->Fill(znaTower);
1322 fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1323 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1324 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1325 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1326 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1327 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1328 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1329 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1330 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1331 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1332 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1333 } else if (fQuality%2 == 0) {
1334 fHOutCentV0Mqual1->Fill(fCentV0M);
1335 fHOutCentTRKqual1->Fill(fCentTRK);
1336 fHOutCentCL1qual1->Fill(fCentCL1);
1337 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1338 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1339 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1341 fHOutCentV0Mqual2->Fill(fCentV0M);
1342 fHOutCentTRKqual2->Fill(fCentTRK);
1343 fHOutCentCL1qual2->Fill(fCentCL1);
1344 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1345 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1346 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1349 PostData(1, fOutputList);
1352 //________________________________________________________________________
1353 void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1355 // Terminate analysis
1357 //________________________________________________________________________
1358 Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
1360 // Setup files for run
1365 // check if something to be done
1366 if (fCurrentRun == esd->GetRunNumber())
1369 fCurrentRun = esd->GetRunNumber();
1371 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1372 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1374 AliOADBContainer *con = new AliOADBContainer("OADB");
1375 con->InitFromFile(fileName,"Centrality");
1377 AliOADBCentrality* centOADB = 0;
1378 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1380 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1381 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1385 fUseScaling = centOADB->UseScaling();
1386 fUseCleaning = centOADB->UseCleaning();
1389 fZVCut = centOADB->ZVCut();
1390 fOutliersCut = centOADB->OutliersCut();
1392 // centrality histos
1393 fHtempV0M = centOADB->V0hist();
1394 fHtempV0A = centOADB->V0Ahist();
1395 fHtempV0C = centOADB->V0Chist();
1396 fHtempTRK = centOADB->TPChist();
1397 fHtempCL1 = centOADB->SPDhist();
1398 fHtempCND = centOADB->CNDhist();
1399 fHtempNPA = centOADB->NPAhist();
1400 fHtempZNA = centOADB->ZNAhist();
1401 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
1403 TString path = gSystem->ExpandPathName(fileName.Data());
1404 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
1405 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
1406 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
1407 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
1408 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
1409 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
1410 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
1411 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
1412 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
1415 fV0MScaleFactor = centOADB->V0MScaleFactor();
1416 fSPDScaleFactor = centOADB->SPDScaleFactor();
1417 fTPCScaleFactor = centOADB->TPCScaleFactor();
1418 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
1420 // outliers parameters
1421 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
1422 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
1423 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
1424 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
1426 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
1427 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
1428 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
1429 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
1430 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
1431 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
1433 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
1434 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
1435 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
1436 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
1445 //________________________________________________________________________
1446 Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
1449 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
1450 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
1451 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
1457 //________________________________________________________________________
1458 Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
1461 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
1462 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
1463 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
1469 //________________________________________________________________________
1470 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
1473 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
1480 //________________________________________________________________________
1481 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
1484 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;