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),
110 fEsdTrackCutsExtra1(0),
111 fEsdTrackCutsExtra2(0),
216 fHOutCentV0MCVHNinMB(0),
217 fHOutCentV0MCVLNinMB(0),
218 fHOutCentV0MCCENT(0),
219 fHOutCentV0MCSEMI(0),
220 fHOutCentV0MCCENTinMB(0),
221 fHOutCentV0MCSEMIinMB(0),
229 fHOutCentV0MMSLinMB(0),
230 fHOutCentV0MMSHinMB(0),
231 fHOutCentV0MMULinMB(0),
232 fHOutCentV0MMLLinMB(0),
233 fHOutCentV0MEJEinMB(0),
234 fHOutCentV0MEGAinMB(0),
235 fHOutCentV0MPHSinMB(0),
247 fHOutCentV0MvsFMD(0),
248 fHOutCentTKLvsV0M(0),
249 fHOutCentZEMvsZDC(0),
250 fHOutCentV0MvsCentCL1(0),
251 fHOutCentV0MvsCentTRK(0),
252 fHOutCentTRKvsCentCL1(0),
253 fHOutCentV0MvsCentZDC(0),
254 fHOutCentV0AvsCentV0C(0),
255 fHOutCentV0AvsCentTRK(0),
256 fHOutCentV0AvsCentCND(0),
257 fHOutCentV0AvsCentCL1(0),
258 fHOutCentV0CvsCentTRK(0),
259 fHOutCentV0CvsCentCND(0),
260 fHOutCentV0CvsCentCL1(0),
261 fHOutCentNPAvsCentV0A(0),
262 fHOutCentNPAvsCentV0C(0),
263 fHOutCentNPAvsCentTRK(0),
264 fHOutCentNPAvsCentCND(0),
265 fHOutCentNPAvsCentCL1(0),
266 fHOutCentZNAvsCentV0A(0),
267 fHOutCentZNAvsCentV0C(0),
268 fHOutCentZNAvsCentTRK(0),
269 fHOutCentZNAvsCentCND(0),
270 fHOutCentZNAvsCentCL1(0),
271 fHOutCentZNAvsCentZPA(0),
296 fHOutMultV0MvsZDN(0),
297 fHOutMultZEMvsZDN(0),
298 fHOutMultV0MvsZDC(0),
299 fHOutMultZEMvsZDC(0),
300 fHOutMultZEMvsZDCw(0),
301 fHOutMultV0MvsCL1(0),
302 fHOutMultV0MvsTRK(0),
303 fHOutMultTRKvsCL1(0),
304 fHOutMultV0MvsV0O(0),
305 fHOutMultV0OvsCL1(0),
306 fHOutMultV0OvsTRK(0),
307 fHOutMultCL1vsTKL(0),
308 fHOutMultZNAvsZPA(0),
309 fHOutCentV0Mqual1(0),
310 fHOutCentTRKqual1(0),
311 fHOutCentCL1qual1(0),
312 fHOutMultV0MvsCL1qual1(0),
313 fHOutMultV0MvsTRKqual1(0),
314 fHOutMultTRKvsCL1qual1(0),
315 fHOutCentV0Mqual2(0),
316 fHOutCentTRKqual2(0),
317 fHOutCentCL1qual2(0),
318 fHOutMultV0MvsCL1qual2(0),
319 fHOutMultV0MvsTRKqual2(0),
320 fHOutMultTRKvsCL1qual2(0),
325 // Default constructor
326 AliInfo("Centrality Selection enabled.");
331 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
332 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
335 //________________________________________________________________________
336 AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
337 AliAnalysisTaskSE(name),
338 fAnalysisInput("ESD"),
347 fV0MScaleFactorMC(0),
348 fV0MSPDOutlierPar0(0),
349 fV0MSPDOutlierPar1(0),
350 fV0MTPCOutlierPar0(0),
351 fV0MTPCOutlierPar1(0),
352 fV0MSPDSigmaOutlierPar0(0),
353 fV0MSPDSigmaOutlierPar1(0),
354 fV0MSPDSigmaOutlierPar2(0),
355 fV0MTPCSigmaOutlierPar0(0),
356 fV0MTPCSigmaOutlierPar1(0),
357 fV0MTPCSigmaOutlierPar2(0),
358 fV0MZDCOutlierPar0(0),
359 fV0MZDCOutlierPar1(0),
360 fV0MZDCEcalOutlierPar0(0),
361 fV0MZDCEcalOutlierPar1(0),
364 fEsdTrackCutsExtra1(0),
365 fEsdTrackCutsExtra2(0),
470 fHOutCentV0MCVHNinMB(0),
471 fHOutCentV0MCVLNinMB(0),
472 fHOutCentV0MCCENT(0),
473 fHOutCentV0MCSEMI(0),
474 fHOutCentV0MCCENTinMB(0),
475 fHOutCentV0MCSEMIinMB(0),
483 fHOutCentV0MMSLinMB(0),
484 fHOutCentV0MMSHinMB(0),
485 fHOutCentV0MMULinMB(0),
486 fHOutCentV0MMLLinMB(0),
487 fHOutCentV0MEJEinMB(0),
488 fHOutCentV0MEGAinMB(0),
489 fHOutCentV0MPHSinMB(0),
501 fHOutCentV0MvsFMD(0),
502 fHOutCentTKLvsV0M(0),
503 fHOutCentZEMvsZDC(0),
504 fHOutCentV0MvsCentCL1(0),
505 fHOutCentV0MvsCentTRK(0),
506 fHOutCentTRKvsCentCL1(0),
507 fHOutCentV0MvsCentZDC(0),
508 fHOutCentV0AvsCentV0C(0),
509 fHOutCentV0AvsCentTRK(0),
510 fHOutCentV0AvsCentCND(0),
511 fHOutCentV0AvsCentCL1(0),
512 fHOutCentV0CvsCentTRK(0),
513 fHOutCentV0CvsCentCND(0),
514 fHOutCentV0CvsCentCL1(0),
515 fHOutCentNPAvsCentV0A(0),
516 fHOutCentNPAvsCentV0C(0),
517 fHOutCentNPAvsCentTRK(0),
518 fHOutCentNPAvsCentCND(0),
519 fHOutCentNPAvsCentCL1(0),
520 fHOutCentZNAvsCentV0A(0),
521 fHOutCentZNAvsCentV0C(0),
522 fHOutCentZNAvsCentTRK(0),
523 fHOutCentZNAvsCentCND(0),
524 fHOutCentZNAvsCentCL1(0),
525 fHOutCentZNAvsCentZPA(0),
550 fHOutMultV0MvsZDN(0),
551 fHOutMultZEMvsZDN(0),
552 fHOutMultV0MvsZDC(0),
553 fHOutMultZEMvsZDC(0),
554 fHOutMultZEMvsZDCw(0),
555 fHOutMultV0MvsCL1(0),
556 fHOutMultV0MvsTRK(0),
557 fHOutMultTRKvsCL1(0),
558 fHOutMultV0MvsV0O(0),
559 fHOutMultV0OvsCL1(0),
560 fHOutMultV0OvsTRK(0),
561 fHOutMultCL1vsTKL(0),
562 fHOutMultZNAvsZPA(0),
563 fHOutCentV0Mqual1(0),
564 fHOutCentTRKqual1(0),
565 fHOutCentCL1qual1(0),
566 fHOutMultV0MvsCL1qual1(0),
567 fHOutMultV0MvsTRKqual1(0),
568 fHOutMultTRKvsCL1qual1(0),
569 fHOutCentV0Mqual2(0),
570 fHOutCentTRKqual2(0),
571 fHOutCentCL1qual2(0),
572 fHOutMultV0MvsCL1qual2(0),
573 fHOutMultV0MvsTRKqual2(0),
574 fHOutMultTRKvsCL1qual2(0),
579 // Default constructor
580 AliInfo("Centrality Selection enabled.");
581 //DefineOutput(1, TList::Class());
585 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
586 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
589 //________________________________________________________________________
590 AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c)
592 // Assignment operator
594 AliAnalysisTaskSE::operator=(c);
599 //________________________________________________________________________
600 AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana):
601 AliAnalysisTaskSE(ana),
602 fAnalysisInput(ana.fAnalysisInput),
603 fIsMCInput(ana.fIsMCInput),
604 fCurrentRun(ana.fCurrentRun),
605 fUseScaling(ana.fUseScaling),
606 fUseCleaning(ana.fUseCleaning),
607 fFillHistos(ana.fFillHistos),
608 fV0MScaleFactor(ana.fV0MScaleFactor),
609 fSPDScaleFactor(ana.fSPDScaleFactor),
610 fTPCScaleFactor(ana.fTPCScaleFactor),
611 fV0MScaleFactorMC(ana.fV0MScaleFactorMC),
612 fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0),
613 fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1),
614 fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0),
615 fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1),
616 fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0),
617 fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1),
618 fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2),
619 fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0),
620 fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1),
621 fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2),
622 fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0),
623 fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1),
624 fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0),
625 fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1),
626 fTrackCuts(ana.fTrackCuts),
627 fEsdTrackCuts(ana.fEsdTrackCuts),
628 fEsdTrackCutsExtra1(ana.fEsdTrackCutsExtra1),
629 fEsdTrackCutsExtra2(ana.fEsdTrackCutsExtra2),
631 fOutliersCut(ana.fOutliersCut),
632 fQuality(ana.fQuality),
633 fIsSelected(ana.fIsSelected),
644 fCVHNbit(ana.fCVHNbit),
645 fCVLNbit(ana.fCVLNbit),
648 fCCENTbit(ana.fCCENTbit),
649 fCSEMIbit(ana.fCSEMIbit),
650 fCentV0M(ana.fCentV0M),
651 fCentV0A(ana.fCentV0A),
652 fCentV0A123(ana.fCentV0A123),
653 fCentV0C(ana.fCentV0C),
654 fCentV0MEq(ana.fCentV0MEq),
655 fCentV0AEq(ana.fCentV0AEq),
656 fCentV0CEq(ana.fCentV0CEq),
657 fCentFMD(ana.fCentFMD),
658 fCentTRK(ana.fCentTRK),
659 fCentTKL(ana.fCentTKL),
660 fCentCL0(ana.fCentCL0),
661 fCentCL1(ana.fCentCL1),
662 fCentCND(ana.fCentCND),
663 fCentZNA(ana.fCentZNA),
664 fCentZNC(ana.fCentZNC),
665 fCentZPA(ana.fCentZPA),
666 fCentZPC(ana.fCentZPC),
667 fCentNPA(ana.fCentNPA),
668 fCentV0MvsFMD(ana.fCentV0MvsFMD),
669 fCentTKLvsV0M(ana.fCentTKLvsV0M),
670 fCentZEMvsZDC(ana.fCentZEMvsZDC),
671 fCentV0Mtrue(ana.fCentV0Mtrue),
672 fCentV0Atrue(ana.fCentV0Atrue),
673 fCentV0Ctrue(ana.fCentV0Ctrue),
674 fCentV0MEqtrue(ana.fCentV0MEqtrue),
675 fCentV0AEqtrue(ana.fCentV0AEqtrue),
676 fCentV0CEqtrue(ana.fCentV0CEqtrue),
677 fCentFMDtrue(ana.fCentFMDtrue),
678 fCentTRKtrue(ana.fCentTRKtrue),
679 fCentTKLtrue(ana.fCentTKLtrue),
680 fCentCL0true(ana.fCentCL0true),
681 fCentCL1true(ana.fCentCL1true),
682 fCentCNDtrue(ana.fCentCNDtrue),
683 fCentZNAtrue(ana.fCentZNAtrue),
684 fCentZNCtrue(ana.fCentZNCtrue),
685 fCentZPAtrue(ana.fCentZPAtrue),
686 fCentZPCtrue(ana.fCentZPCtrue),
687 fHtempV0M(ana.fHtempV0M),
688 fHtempV0A(ana.fHtempV0A),
689 fHtempV0A123(ana.fHtempV0A123),
690 fHtempV0C(ana.fHtempV0C),
691 fHtempV0MEq(ana.fHtempV0MEq),
692 fHtempV0AEq(ana.fHtempV0AEq),
693 fHtempV0CEq(ana.fHtempV0CEq),
694 fHtempFMD(ana.fHtempFMD),
695 fHtempTRK(ana.fHtempTRK),
696 fHtempTKL(ana.fHtempTKL),
697 fHtempCL0(ana.fHtempCL0),
698 fHtempCL1(ana.fHtempCL1),
699 fHtempCND(ana.fHtempCND),
700 fHtempZNA(ana.fHtempZNA),
701 fHtempZNC(ana.fHtempZNC),
702 fHtempZPA(ana.fHtempZPA),
703 fHtempZPC(ana.fHtempZPC),
704 fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
705 fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
706 fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
707 fHtempNPA(ana.fHtempNPA),
708 fHtempV0Mtrue(ana.fHtempV0Mtrue),
709 fHtempV0Atrue(ana.fHtempV0Atrue),
710 fHtempV0Ctrue(ana.fHtempV0Ctrue),
711 fHtempV0MEqtrue(ana.fHtempV0MEqtrue),
712 fHtempV0AEqtrue(ana.fHtempV0AEqtrue),
713 fHtempV0CEqtrue(ana.fHtempV0CEqtrue),
714 fHtempFMDtrue(ana.fHtempFMDtrue),
715 fHtempTRKtrue(ana.fHtempTRKtrue),
716 fHtempTKLtrue(ana.fHtempTKLtrue),
717 fHtempCL0true(ana.fHtempCL0true),
718 fHtempCL1true(ana.fHtempCL1true),
719 fHtempCNDtrue(ana.fHtempCNDtrue),
720 fHtempZNAtrue(ana.fHtempZNAtrue),
721 fHtempZNCtrue(ana.fHtempZNCtrue),
722 fHtempZPAtrue(ana.fHtempZPAtrue),
723 fHtempZPCtrue(ana.fHtempZPCtrue),
724 fOutputList(ana.fOutputList),
725 fHOutCentV0M(ana.fHOutCentV0M),
726 fHOutCentV0A(ana.fHOutCentV0A),
727 fHOutCentV0A123(ana.fHOutCentV0A123),
728 fHOutCentV0C(ana.fHOutCentV0C),
729 fHOutCentV0MEq(ana.fHOutCentV0MEq),
730 fHOutCentV0AEq(ana.fHOutCentV0AEq),
731 fHOutCentV0CEq(ana.fHOutCentV0CEq),
732 fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
733 fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
734 fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
735 fHOutCentV0MCVLNinMB(ana.fHOutCentV0MCVLNinMB),
736 fHOutCentV0MCCENT(ana.fHOutCentV0MCCENT),
737 fHOutCentV0MCSEMI(ana.fHOutCentV0MCSEMI),
738 fHOutCentV0MCCENTinMB(ana.fHOutCentV0MCCENTinMB),
739 fHOutCentV0MCSEMIinMB(ana.fHOutCentV0MCSEMIinMB),
740 fHOutCentV0MMSL(ana.fHOutCentV0MMSL),
741 fHOutCentV0MMSH(ana.fHOutCentV0MMSH),
742 fHOutCentV0MMUL(ana.fHOutCentV0MMUL),
743 fHOutCentV0MMLL(ana.fHOutCentV0MMLL),
744 fHOutCentV0MEJE(ana.fHOutCentV0MEJE),
745 fHOutCentV0MEGA(ana.fHOutCentV0MEGA),
746 fHOutCentV0MPHS(ana.fHOutCentV0MPHS),
747 fHOutCentV0MMSLinMB(ana.fHOutCentV0MMSLinMB),
748 fHOutCentV0MMSHinMB(ana.fHOutCentV0MMSHinMB),
749 fHOutCentV0MMULinMB(ana.fHOutCentV0MMULinMB),
750 fHOutCentV0MMLLinMB(ana.fHOutCentV0MMLLinMB),
751 fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
752 fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
753 fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
754 fHOutCentFMD(ana.fHOutCentFMD),
755 fHOutCentTRK(ana.fHOutCentTRK),
756 fHOutCentTKL(ana.fHOutCentTKL),
757 fHOutCentCL0(ana.fHOutCentCL0),
758 fHOutCentCL1(ana.fHOutCentCL1),
759 fHOutCentCND(ana.fHOutCentCND),
760 fHOutCentNPA(ana.fHOutCentNPA),
761 fHOutCentZNA(ana.fHOutCentZNA),
762 fHOutCentZNC(ana.fHOutCentZNC),
763 fHOutCentZPA(ana.fHOutCentZPA),
764 fHOutCentZPC(ana.fHOutCentZPC),
765 fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
766 fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
767 fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
768 fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1),
769 fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK),
770 fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1),
771 fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC),
772 fHOutCentV0AvsCentV0C(ana.fHOutCentV0AvsCentV0C),
773 fHOutCentV0AvsCentTRK(ana.fHOutCentV0AvsCentTRK),
774 fHOutCentV0AvsCentCND(ana.fHOutCentV0AvsCentCND),
775 fHOutCentV0AvsCentCL1(ana.fHOutCentV0AvsCentCL1),
776 fHOutCentV0CvsCentTRK(ana.fHOutCentV0CvsCentTRK),
777 fHOutCentV0CvsCentCND(ana.fHOutCentV0CvsCentCND),
778 fHOutCentV0CvsCentCL1(ana.fHOutCentV0CvsCentCL1),
779 fHOutCentNPAvsCentV0A(ana.fHOutCentNPAvsCentV0A),
780 fHOutCentNPAvsCentV0C(ana.fHOutCentNPAvsCentV0C),
781 fHOutCentNPAvsCentTRK(ana.fHOutCentNPAvsCentTRK),
782 fHOutCentNPAvsCentCND(ana.fHOutCentNPAvsCentCND),
783 fHOutCentNPAvsCentCL1(ana.fHOutCentNPAvsCentCL1),
784 fHOutCentZNAvsCentV0A(ana.fHOutCentZNAvsCentV0A),
785 fHOutCentZNAvsCentV0C(ana.fHOutCentZNAvsCentV0C),
786 fHOutCentZNAvsCentTRK(ana.fHOutCentZNAvsCentTRK),
787 fHOutCentZNAvsCentCND(ana.fHOutCentZNAvsCentCND),
788 fHOutCentZNAvsCentCL1(ana.fHOutCentZNAvsCentCL1),
789 fHOutCentZNAvsCentZPA(ana.fHOutCentZNAvsCentZPA),
790 fHOutMultV0AC(ana.fHOutMultV0AC),
791 fHOutMultV0M(ana.fHOutMultV0M),
792 fHOutMultV0A(ana.fHOutMultV0A),
793 fHOutMultV0A123(ana.fHOutMultV0A123),
794 fHOutMultV0C(ana.fHOutMultV0C),
795 fHOutMultV0MEq(ana.fHOutMultV0MEq),
796 fHOutMultV0AEq(ana.fHOutMultV0AEq),
797 fHOutMultV0CEq(ana.fHOutMultV0CEq),
798 fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
799 fHOutMultV0Anc(ana.fHOutMultV0Anc),
800 fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
801 fHOutMultV0O(ana.fHOutMultV0O),
802 fHOutMultV0Cells(ana.fHOutMultV0Cells),
803 fHOutMultFMD(ana.fHOutMultFMD),
804 fHOutMultTRK(ana.fHOutMultTRK),
805 fHOutMultTKL(ana.fHOutMultTKL),
806 fHOutMultCL0(ana.fHOutMultCL0),
807 fHOutMultCL1(ana.fHOutMultCL1),
808 fHOutMultCND(ana.fHOutMultCND),
809 fHOutMultNPA(ana.fHOutMultNPA),
810 fHOutMultZNA(ana.fHOutMultZNA),
811 fHOutMultZNC(ana.fHOutMultZNC),
812 fHOutMultZPA(ana.fHOutMultZPA),
813 fHOutMultZPC(ana.fHOutMultZPC),
814 fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
815 fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
816 fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
817 fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
818 fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw),
819 fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
820 fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
821 fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1),
822 fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O),
823 fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
824 fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
825 fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
826 fHOutMultZNAvsZPA(ana.fHOutMultZNAvsZPA),
827 fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
828 fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
829 fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
830 fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1),
831 fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1),
832 fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1),
833 fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2),
834 fHOutCentTRKqual2(ana.fHOutCentTRKqual2),
835 fHOutCentCL1qual2(ana.fHOutCentCL1qual2),
836 fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2),
837 fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2),
838 fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2),
839 fHOutQuality(ana.fHOutQuality),
840 fHOutVertex(ana.fHOutVertex),
841 fHOutVertexT0(ana.fHOutVertexT0)
847 //________________________________________________________________________
848 AliCentralitySelectionTask::~AliCentralitySelectionTask()
851 if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
852 if (fTrackCuts) delete fTrackCuts;
853 if (fEsdTrackCuts) delete fEsdTrackCuts;
854 if (fEsdTrackCutsExtra1) delete fEsdTrackCutsExtra1;
855 if (fEsdTrackCutsExtra2) delete fEsdTrackCutsExtra2;
858 //________________________________________________________________________
859 void AliCentralitySelectionTask::UserCreateOutputObjects()
861 // Create the output containers
862 if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
863 AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
866 fOutputList = new TList();
867 fOutputList->SetOwner();
868 fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
869 fHOutCentV0A = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
870 fHOutCentV0A123 = new TH1F("fHOutCentV0A123","fHOutCentV0A123; Centrality V0A-123",505,0,101);
871 fHOutCentV0C = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
872 fHOutCentV0MEq = new TH1F("fHOutCentV0MEq","fHOutCentV0MEq; Centrality V0 equalized",505,0,101);
873 fHOutCentV0AEq = new TH1F("fHOutCentV0AEq","fHOutCentV0AEq; Centrality V0A equalized",505,0,101);
874 fHOutCentV0CEq = new TH1F("fHOutCentV0CEq","fHOutCentV0CEq; Centrality V0C equalized",505,0,101);
875 fHOutCentV0MCVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
876 fHOutCentV0MCVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
877 fHOutCentV0MCVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
878 fHOutCentV0MCVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
879 fHOutCentV0MCCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
880 fHOutCentV0MCSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
881 fHOutCentV0MCCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
882 fHOutCentV0MCSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
883 fHOutCentV0MMSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101);
884 fHOutCentV0MMSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101);
885 fHOutCentV0MMUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101);
886 fHOutCentV0MMLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101);
887 fHOutCentV0MEJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101);
888 fHOutCentV0MEGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101);
889 fHOutCentV0MPHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101);
890 fHOutCentV0MMSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101);
891 fHOutCentV0MMSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101);
892 fHOutCentV0MMULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101);
893 fHOutCentV0MMLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101);
894 fHOutCentV0MEJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101);
895 fHOutCentV0MEGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101);
896 fHOutCentV0MPHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101);
897 fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101);
898 fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101);
899 fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101);
900 fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101);
901 fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101);
902 fHOutCentCND = new TH1F("fHOutCentCND","fHOutCentCND; Centrality candle",505,0,101);
903 fHOutCentNPA = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality Npart",505,0,101);
904 fHOutCentZNA = new TH1F("fHOutCentZNA","fHOutCentZNA; Centrality ZNA",505,0,101);
905 fHOutCentZNC = new TH1F("fHOutCentZNC","fHOutCentZNC; Centrality ZNC",505,0,101);
906 fHOutCentZPA = new TH1F("fHOutCentZPA","fHOutCentZPA; Centrality ZPA",505,0,101);
907 fHOutCentZPC = new TH1F("fHOutCentZPC","fHOutCentZPC; Centrality ZPC",505,0,101);
908 fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
909 fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
910 fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
911 fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101);
912 fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101);
913 fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101);
914 fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101);
915 fHOutCentV0AvsCentV0C= new TH2F("fHOutCentV0AvsCentV0C","fHOutCentV0AvsCentV0C; Cent V0A; Cent V0C;", 505,0,101,505,0,101);
916 fHOutCentV0AvsCentTRK= new TH2F("fHOutCentV0AvsCentTRK","fHOutCentV0AvsCentTRK; Cent V0A; Cent TRK;", 505,0,101,505,0,101);
917 fHOutCentV0AvsCentCND= new TH2F("fHOutCentV0AvsCentCND","fHOutCentV0AvsCentCND; Cent V0A; Cent CND;", 505,0,101,505,0,101);
918 fHOutCentV0AvsCentCL1= new TH2F("fHOutCentV0AvsCentCL1","fHOutCentV0AvsCentCL1; Cent V0A; Cent CL1;", 505,0,101,505,0,101);
919 fHOutCentV0CvsCentTRK= new TH2F("fHOutCentV0CvsCentTRK","fHOutCentV0CvsCentTRK; Cent V0C; Cent TRK;", 505,0,101,505,0,101);
920 fHOutCentV0CvsCentCND= new TH2F("fHOutCentV0CvsCentCND","fHOutCentV0CvsCentCND; Cent V0C; Cent CND;", 505,0,101,505,0,101);
921 fHOutCentV0CvsCentCL1= new TH2F("fHOutCentV0CvsCentCL1","fHOutCentV0CvsCentCL1; Cent V0C; Cent CL1;", 505,0,101,505,0,101);
922 fHOutCentNPAvsCentV0A= new TH2F("fHOutCentNPAvsCentV0A","fHOutCentNPAvsCentV0A; Cent NPA; Cent V0A;", 505,0,101,505,0,101);
923 fHOutCentNPAvsCentV0C= new TH2F("fHOutCentNPAvsCentV0C","fHOutCentNPAvsCentV0C; Cent NPA; Cent V0C;", 505,0,101,505,0,101);
924 fHOutCentNPAvsCentTRK= new TH2F("fHOutCentNPAvsCentTRK","fHOutCentNPAvsCentTRK; Cent NPA; Cent TRK;", 505,0,101,505,0,101);
925 fHOutCentNPAvsCentCND= new TH2F("fHOutCentNPAvsCentCND","fHOutCentNPAvsCentCND; Cent NPA; Cent CND;", 505,0,101,505,0,101);
926 fHOutCentNPAvsCentCL1= new TH2F("fHOutCentNPAvsCentCL1","fHOutCentNPAvsCentCL1; Cent NPA; Cent CL1;", 505,0,101,505,0,101);
927 fHOutCentZNAvsCentV0A= new TH2F("fHOutCentZNAvsCentV0A","fHOutCentZNAvsCentV0A; Cent ZNA; Cent V0A;", 505,0,101,505,0,101);
928 fHOutCentZNAvsCentV0C= new TH2F("fHOutCentZNAvsCentV0C","fHOutCentZNAvsCentV0C; Cent ZNA; Cent V0C;", 505,0,101,505,0,101);
929 fHOutCentZNAvsCentTRK= new TH2F("fHOutCentZNAvsCentTRK","fHOutCentZNAvsCentTRK; Cent ZNA; Cent TRK;", 505,0,101,505,0,101);
930 fHOutCentZNAvsCentCND= new TH2F("fHOutCentZNAvsCentCND","fHOutCentZNAvsCentCND; Cent ZNA; Cent CND;", 505,0,101,505,0,101);
931 fHOutCentZNAvsCentCL1= new TH2F("fHOutCentZNAvsCentCL1","fHOutCentZNAvsCentCL1; Cent ZNA; Cent CL1;", 505,0,101,505,0,101);
932 fHOutCentZNAvsCentZPA= new TH2F("fHOutCentZNAvsCentZPA","fHOutCentZNAvsCentZPA; Cent ZNA; Cent ZPA;", 505,0,101,505,0,101);
934 fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
935 fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
936 fHOutMultV0A = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
937 fHOutMultV0A123 = new TH1F("fHOutMultV0A123","fHOutMultV0A123; Multiplicity V0A-123",25000,0,25000);
938 fHOutMultV0C = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
939 fHOutMultV0MEq = new TH1F("fHOutMultV0MEq","fHOutMultV0MEq; Multiplicity V0",25000,0,25000);
940 fHOutMultV0AEq = new TH1F("fHOutMultV0AEq","fHOutMultV0AEq; Multiplicity V0",25000,0,25000);
941 fHOutMultV0CEq = new TH1F("fHOutMultV0CEq","fHOutMultV0CEq; Multiplicity V0",25000,0,25000);
942 fHOutMultV0Mnc= new TH1F("fHOutMultV0Mnc","fHOutMultV0Mnc; Multiplicity V0",25000,0,25000);
943 fHOutMultV0Anc= new TH1F("fHOutMultV0Anc","fHOutMultV0Anc; Multiplicity V0",25000,0,25000);
944 fHOutMultV0Cnc= new TH1F("fHOutMultV0Cnc","fHOutMultV0Cnc; Multiplicity V0",25000,0,25000);
945 fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000);
946 fHOutMultV0Cells = new TH2F("fHOutMultV0Cells","fHOutMultV0Cells",33,-0.5,32.5,33,-0.5,32.5);
947 fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
948 fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
949 fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
950 fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
951 fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
952 fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
953 fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
954 fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",2000,0,2000);
955 fHOutMultZNC = new TH1F("fHOutMultZNC","fHOutMultZNC; ZNC Energy",2000,0,2000);
956 fHOutMultZPA = new TH1F("fHOutMultZPA","fHOutMultZPA; ZPA Energy",2000,0,2000);
957 fHOutMultZPC = new TH1F("fHOutMultZPC","fHOutMultZPC; ZPC Energy",2000,0,2000);
959 fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,1200,500,0,2000);
960 fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
961 fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
962 fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
963 fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000);
964 fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
965 fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
966 fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
967 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000);
968 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000);
969 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000);
970 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000);
971 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
972 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
973 fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
974 fHOutMultZNAvsZPA = new TH2F ("fHOutMultZNAvsZPA","fHOutMultZNAvsZPA; Energy ZNA; Energy ZPA",500,0,2000,500,0,2000);
976 fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
977 fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
978 fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101);
979 fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
980 fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
981 fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
983 fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101);
984 fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101);
985 fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101);
986 fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
987 fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
988 fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
990 fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5);
991 fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20);
992 fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20);
994 fOutputList->Add(fHOutCentV0M);
995 fOutputList->Add(fHOutCentV0A);
996 fOutputList->Add(fHOutCentV0A123);
997 fOutputList->Add(fHOutCentV0C);
998 fOutputList->Add(fHOutCentV0MEq);
999 fOutputList->Add(fHOutCentV0AEq);
1000 fOutputList->Add(fHOutCentV0CEq);
1001 fOutputList->Add(fHOutCentV0MCVHN);
1002 fOutputList->Add(fHOutCentV0MCVLN);
1003 fOutputList->Add(fHOutCentV0MCVHNinMB);
1004 fOutputList->Add(fHOutCentV0MCVLNinMB);
1005 fOutputList->Add(fHOutCentV0MCCENT);
1006 fOutputList->Add(fHOutCentV0MCSEMI);
1007 fOutputList->Add(fHOutCentV0MCCENTinMB);
1008 fOutputList->Add(fHOutCentV0MCSEMIinMB);
1009 fOutputList->Add(fHOutCentV0MMSL);
1010 fOutputList->Add(fHOutCentV0MMSH);
1011 fOutputList->Add(fHOutCentV0MMUL);
1012 fOutputList->Add(fHOutCentV0MMLL);
1013 fOutputList->Add(fHOutCentV0MEJE);
1014 fOutputList->Add(fHOutCentV0MEGA);
1015 fOutputList->Add(fHOutCentV0MPHS);
1016 fOutputList->Add(fHOutCentV0MMSLinMB);
1017 fOutputList->Add(fHOutCentV0MMSHinMB);
1018 fOutputList->Add(fHOutCentV0MMULinMB);
1019 fOutputList->Add(fHOutCentV0MMLLinMB);
1020 fOutputList->Add(fHOutCentV0MEJEinMB);
1021 fOutputList->Add(fHOutCentV0MEGAinMB);
1022 fOutputList->Add(fHOutCentV0MPHSinMB);
1023 fOutputList->Add(fHOutCentFMD);
1024 fOutputList->Add(fHOutCentTRK);
1025 fOutputList->Add(fHOutCentTKL);
1026 fOutputList->Add(fHOutCentCL0);
1027 fOutputList->Add(fHOutCentCL1);
1028 fOutputList->Add(fHOutCentCND);
1029 fOutputList->Add(fHOutCentNPA);
1030 fOutputList->Add(fHOutCentZNA);
1031 fOutputList->Add(fHOutCentZNC);
1032 fOutputList->Add(fHOutCentZPA);
1033 fOutputList->Add(fHOutCentZPC);
1034 fOutputList->Add(fHOutCentV0MvsFMD);
1035 fOutputList->Add(fHOutCentTKLvsV0M);
1036 fOutputList->Add(fHOutCentZEMvsZDC);
1037 fOutputList->Add(fHOutCentV0MvsCentCL1);
1038 fOutputList->Add(fHOutCentV0MvsCentTRK);
1039 fOutputList->Add(fHOutCentTRKvsCentCL1);
1040 fOutputList->Add(fHOutCentV0MvsCentZDC);
1041 fOutputList->Add(fHOutCentV0AvsCentV0C);
1042 fOutputList->Add(fHOutCentV0AvsCentTRK);
1043 fOutputList->Add(fHOutCentV0AvsCentCND);
1044 fOutputList->Add(fHOutCentV0AvsCentCL1);
1045 fOutputList->Add(fHOutCentV0CvsCentTRK);
1046 fOutputList->Add(fHOutCentV0CvsCentCND);
1047 fOutputList->Add(fHOutCentV0CvsCentCL1);
1048 fOutputList->Add(fHOutCentNPAvsCentV0A);
1049 fOutputList->Add(fHOutCentNPAvsCentV0C);
1050 fOutputList->Add(fHOutCentNPAvsCentTRK);
1051 fOutputList->Add(fHOutCentNPAvsCentCND);
1052 fOutputList->Add(fHOutCentNPAvsCentCL1);
1053 fOutputList->Add(fHOutCentZNAvsCentV0A);
1054 fOutputList->Add(fHOutCentZNAvsCentV0C);
1055 fOutputList->Add(fHOutCentZNAvsCentTRK);
1056 fOutputList->Add(fHOutCentZNAvsCentCND);
1057 fOutputList->Add(fHOutCentZNAvsCentCL1);
1058 fOutputList->Add(fHOutCentZNAvsCentZPA);
1060 fOutputList->Add(fHOutMultV0AC);
1061 fOutputList->Add(fHOutMultV0M);
1062 fOutputList->Add(fHOutMultV0A);
1063 fOutputList->Add(fHOutMultV0A123);
1064 fOutputList->Add(fHOutMultV0C);
1065 fOutputList->Add(fHOutMultV0MEq);
1066 fOutputList->Add(fHOutMultV0AEq);
1067 fOutputList->Add(fHOutMultV0CEq);
1068 fOutputList->Add(fHOutMultV0Mnc);
1069 fOutputList->Add(fHOutMultV0Anc);
1070 fOutputList->Add(fHOutMultV0Cnc);
1071 fOutputList->Add(fHOutMultV0O);
1072 fOutputList->Add(fHOutMultV0Cells) ;
1073 fOutputList->Add(fHOutMultFMD);
1074 fOutputList->Add(fHOutMultTRK);
1075 fOutputList->Add(fHOutMultTKL);
1076 fOutputList->Add(fHOutMultCL0);
1077 fOutputList->Add(fHOutMultCL1);
1078 fOutputList->Add(fHOutMultCND);
1079 fOutputList->Add(fHOutMultNPA);
1080 fOutputList->Add(fHOutMultZNA);
1081 fOutputList->Add(fHOutMultZNC);
1082 fOutputList->Add(fHOutMultZPA);
1083 fOutputList->Add(fHOutMultZPC);
1084 fOutputList->Add(fHOutMultV0MvsZDN);
1085 fOutputList->Add(fHOutMultZEMvsZDN);
1086 fOutputList->Add(fHOutMultV0MvsZDC);
1087 fOutputList->Add(fHOutMultZEMvsZDC);
1088 fOutputList->Add(fHOutMultZEMvsZDCw);
1089 fOutputList->Add(fHOutMultV0MvsCL1);
1090 fOutputList->Add(fHOutMultV0MvsTRK);
1091 fOutputList->Add(fHOutMultTRKvsCL1);
1092 fOutputList->Add(fHOutMultV0MvsV0O);
1093 fOutputList->Add(fHOutMultV0OvsCL1);
1094 fOutputList->Add(fHOutMultV0OvsTRK);
1095 fOutputList->Add(fHOutMultCL1vsTKL);
1096 fOutputList->Add(fHOutMultZNAvsZPA);
1097 fOutputList->Add(fHOutCentV0Mqual1);
1098 fOutputList->Add(fHOutCentTRKqual1);
1099 fOutputList->Add(fHOutCentCL1qual1);
1100 fOutputList->Add(fHOutMultV0MvsCL1qual1);
1101 fOutputList->Add(fHOutMultV0MvsTRKqual1);
1102 fOutputList->Add(fHOutMultTRKvsCL1qual1);
1103 fOutputList->Add(fHOutCentV0Mqual2);
1104 fOutputList->Add(fHOutCentTRKqual2);
1105 fOutputList->Add(fHOutCentCL1qual2);
1106 fOutputList->Add(fHOutMultV0MvsCL1qual2);
1107 fOutputList->Add(fHOutMultV0MvsTRKqual2);
1108 fOutputList->Add(fHOutMultTRKvsCL1qual2);
1109 fOutputList->Add(fHOutQuality);
1110 fOutputList->Add(fHOutVertex);
1111 fOutputList->Add(fHOutVertexT0);
1113 PostData(1, fOutputList);
1116 fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
1117 fEsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
1118 fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kOff);
1119 // Add SPD requirement
1120 fEsdTrackCutsExtra1 = new AliESDtrackCuts("SPD", "Require 1 cluster in SPD");
1121 fEsdTrackCutsExtra1->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1122 // Add SDD requirement
1123 fEsdTrackCutsExtra2 = new AliESDtrackCuts("SDD", "Require 1 cluster in first layer SDD");
1124 fEsdTrackCutsExtra2->SetClusterRequirementITS(AliESDtrackCuts::kSDD,AliESDtrackCuts::kFirst);
1127 //________________________________________________________________________
1128 void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
1130 // Execute analysis for current event:
1131 if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
1133 Int_t runType = 0; // 0:PbPb, 1:pPb or Pbp
1135 Float_t zncEnergy = 0.; // ZNC Energy
1136 Float_t zpcEnergy = 0.; // ZPC Energy
1137 Float_t znaEnergy = 0.; // ZNA Energy
1138 Float_t zpaEnergy = 0.; // ZPA Energy
1139 Float_t zem1Energy = 0.; // ZEM1 Energy
1140 Float_t zem2Energy = 0.; // ZEM2 Energy
1141 Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2)
1142 Double_t znaTower = 0.; // common PMT of ZNA
1143 Double_t zncTower = 0.; // common PMT of ZNC
1144 Double_t zpaTower = 0.; // common PMT of ZPA
1145 Double_t zpcTower = 0.; // common PMT of ZPC
1146 Bool_t znaFired = kFALSE;
1147 Bool_t zncFired = kFALSE;
1148 Bool_t zpaFired = kFALSE;
1149 Bool_t zpcFired = kFALSE;
1151 Int_t nTracks = 0; // no. tracks
1152 Int_t nTracklets = 0; // no. tracklets
1153 Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers
1154 Int_t nChips[2] = {0,0}; // no. chips on 2 SPD layers
1155 Float_t spdCorr =0; // corrected spd2 multiplicity
1156 Int_t multCND = 0; // no. tracks (candle condition)
1158 Float_t multV0A123 = 0; // multiplicity from V0 reco side A (ring 1-2-3)
1159 Float_t multV0A = 0; // multiplicity from V0 reco side A
1160 Float_t multV0C = 0; // multiplicity from V0 reco side C
1161 Float_t multV0AEq = 0; // multiplicity from V0 reco side A
1162 Float_t multV0CEq = 0; // multiplicity from V0 reco side C
1163 Float_t multV0ACorr = 0; // multiplicity from V0 reco side A
1164 Float_t multV0CCorr = 0; // multiplicity from V0 reco side C
1165 Short_t multV0AOnline = 0; // multiplicity from V0 reco side A
1166 Short_t multV0COnline = 0; // multiplicity from V0 reco side C
1167 Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC)
1171 Float_t multFMDA = 0; // multiplicity from FMD on detector A
1172 Float_t multFMDC = 0; // multiplicity from FMD on detector C
1174 Float_t zvtx =0; // z-vertex SPD
1175 Int_t zvtxNcont =0; // contributors to z-vertex SPD
1177 Float_t zvtxT0 =0; // z-vertex T0
1179 Int_t Npart =0; // N. of participants (true MC)
1181 AliCentrality *esdCent = 0;
1183 AliVEvent *event = InputEvent();
1184 AliESDEvent *esd = dynamic_cast<AliESDEvent*>(event);
1185 AliAODEvent *aod = dynamic_cast<AliAODEvent*>(event);
1186 if(fAnalysisInput.CompareTo("ESD")==0){
1188 AliError("No ESD Event");
1191 } else if(fAnalysisInput.CompareTo("AOD")==0){
1193 AliError("No AOD Event");
1199 if (SetupRun(event)<0) {
1200 AliError("Centrality File not available for this run");
1205 if (strcmp(esd->GetESDRun()->GetBeamType(), "A-A") == 0) runType=0;
1207 if (strcmp(esd->GetESDRun()->GetBeamType(), "p-p") == 0) runType=2;
1209 Int_t runNumber = event->GetRunNumber();
1210 if ((runNumber >= 136851 && runNumber <= 139517) || // LHC10h
1211 (runNumber >= 166529 && runNumber <= 170593)) // LHC11h
1215 esdCent = event->GetCentrality();
1217 // ***** Vertex Info
1219 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
1220 zvtx = vtxESD->GetZ();
1221 zvtxNcont = vtxESD->GetNContributors();
1223 const AliAODVertex* spdVtx = aod->GetPrimaryVertexSPD();
1224 zvtx = spdVtx->GetZ();
1225 zvtxNcont = spdVtx->GetNContributors();
1229 AliVVZERO* esdV0 = event->GetVZEROData();
1231 AliError("AliVVZERO not available");
1235 multV0A=esdV0->GetMTotV0A();
1236 multV0C=esdV0->GetMTotV0C();
1238 // excluding innermost V0A ring
1239 for (int i=40; i<64; i++)
1240 multV0A123 += esdV0->GetMultiplicity(i);
1242 multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);
1243 multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);
1245 v0Corr = multV0A+multV0C; // Todo: C.L. not clear why here we do not use the sum of the corrected values?
1247 multV0AOnline=esdV0->GetTriggerChargeA();
1248 multV0COnline=esdV0->GetTriggerChargeC();
1251 for(Int_t i = 0; i < 32; ++i) {
1252 if (esdV0->GetBBFlag(i)) nV0C++;
1253 if (esdV0->GetBBFlag(i+32)) nV0A++;
1256 // Equalized signals
1259 for(Int_t iCh = 4; iCh < 7; ++iCh) {
1260 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1263 for(Int_t iCh = 0; iCh < 3; ++iCh) {
1264 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1268 Bool_t kT0BB = kFALSE;
1271 const AliESDTZERO* esdT0 = esd->GetESDTZERO();
1274 AliError("AliESDTZERO not available");
1277 Int_t trig=esdT0->GetT0Trig();
1278 if(trig&1) kT0BB=kTRUE;
1279 zvtxT0=esdT0->GetT0zVertex();
1281 const AliAODTZERO* esdT0 = aod->GetTZEROData();
1284 AliError("AliAODTZERO not available");
1287 Int_t trig=1;//esdT0->GetT0Trig(); //* Todo: C.L. This info is not in AOD? */
1288 if(trig&1) kT0BB=kTRUE;
1289 zvtxT0=esdT0->GetT0zVertex();
1292 // ***** Trigger info
1293 fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1));
1296 trigStr = esd->GetFiredTriggerClasses();
1298 trigStr = aod->GetFiredTriggerClasses();
1301 fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE;
1302 fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE;
1303 fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE;
1305 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI")) && (fIsSelected))
1307 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected))
1309 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected))
1311 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected))
1313 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected))
1316 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected))
1318 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected))
1320 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected))
1322 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected))
1324 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected))
1326 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected))
1328 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected))
1331 fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE;
1332 if (esdV0->GetTriggerBits() & (1<<8))
1334 if (esdV0->GetTriggerBits() & (1<<6))
1337 if (kT0BB && fCVHNbit)
1339 if (kT0BB && fCVLNbit)
1343 // ***** CB info (tracklets, clusters, chips)
1344 //nTracks = event->GetNumberOfTracks();
1345 nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
1347 AliAODHeader *h = aod->GetHeader();
1348 nTracks = h!=0 ? (Short_t)h->GetTPConlyRefMultiplicity():-1;
1352 Short_t nTrTPCcandle = 0;
1353 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
1355 AliESDtrack* track = esd->GetTrack(iTracks);
1356 if (!track) continue;
1358 if (! fEsdTrackCuts->IsSelected(track) )continue;
1360 if (fEsdTrackCutsExtra1 && fEsdTrackCutsExtra2 &&
1361 !fEsdTrackCutsExtra1->IsSelected(track) &&
1362 !fEsdTrackCutsExtra2->IsSelected(track)) continue;
1364 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1366 multCND = nTrTPCcandle;
1368 Short_t nTrTPCcandle = 0;
1369 for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
1371 AliAODTrack* track = aod->GetTrack(iTracks);
1373 if (!track) continue;
1374 if (!track->TestFilterBit(1<<5) &&
1375 !track->TestFilterBit(1<<6)) continue;
1377 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1379 multCND = nTrTPCcandle;
1383 const AliMultiplicity *mult = esd->GetMultiplicity();
1384 nTracklets = mult->GetNumberOfTracklets();
1386 for(Int_t ilay=0; ilay<6; ilay++){
1387 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1390 for(Int_t ilay=0; ilay<2; ilay++){
1391 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1394 AliAODTracklets *mult = aod->GetTracklets();
1395 nTracklets = mult->GetNumberOfTracklets();
1396 AliAODHeader *h = aod->GetHeader();
1397 for(Int_t ilay=0; ilay<6; ilay++){
1398 nClusters[ilay] = h->GetNumberOfITSClusters(ilay);
1401 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1405 AliESDFMD *fmd = esd->GetFMDData();
1406 Float_t totalMultA = 0;
1407 Float_t totalMultC = 0;
1408 const Float_t fFMDLowCut = 0.4;
1410 for(UShort_t det=1;det<=3;det++) {
1411 Int_t nRings = (det==1 ? 1 : 2);
1412 for (UShort_t ir = 0; ir < nRings; ir++) {
1413 Char_t ring = (ir == 0 ? 'I' : 'O');
1414 UShort_t nsec = (ir == 0 ? 20 : 40);
1415 UShort_t nstr = (ir == 0 ? 512 : 256);
1416 for(UShort_t sec =0; sec < nsec; sec++) {
1417 for(UShort_t strip = 0; strip < nstr; strip++) {
1419 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1420 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1422 Float_t nParticles=0;
1424 if(fmdMult > fFMDLowCut) {
1428 if (det<3) totalMultA = totalMultA + nParticles;
1429 else totalMultC = totalMultC + nParticles;
1435 multFMDA = totalMultA;
1436 multFMDC = totalMultC;
1441 AliESDZDC *esdZDC = esd->GetESDZDC();
1442 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1444 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1445 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1446 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1447 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1449 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1450 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1451 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1452 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1454 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1455 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
1457 for (Int_t j = 0; j < 4; ++j)
1458 if (esdZDC->GetZDCTDCData(12,j) != 0)
1461 for (Int_t j = 0; j < 4; ++j)
1462 if (esdZDC->GetZDCTDCData(10,j) != 0)
1465 for (Int_t j = 0; j < 4; ++j)
1466 if (esdZDC->GetZDCTDCData(13,j) != 0)
1469 for (Int_t j = 0; j < 4; ++j)
1470 if (esdZDC->GetZDCTDCData(11,j) != 0)
1473 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1474 const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
1475 const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy();
1476 const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
1477 if (znaFired) znaTower = ZNAtower[0];
1478 if (zncFired) zncTower = ZNCtower[0];
1479 if (zpaFired) zpaTower = ZPAtower[0];
1480 if (zpcFired) zpcTower = ZPCtower[0];
1483 AliAODHeader *h = aod->GetHeader();
1484 zncEnergy = (Float_t) (h->GetZDCN1Energy());
1485 zpcEnergy = (Float_t) (h->GetZDCP1Energy());
1486 znaEnergy = (Float_t) (h->GetZDCN2Energy());
1487 zpaEnergy = (Float_t) (h->GetZDCP2Energy());
1488 zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
1489 zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
1491 AliAODZDC *aodZDC = aod->GetZDCData();
1492 const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy();
1493 const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
1494 const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy();
1495 const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
1496 znaTower = ZNAtower[0];
1497 zncTower = ZNCtower[0];
1498 zpaTower = ZPAtower[0];
1499 zpcTower = ZPCtower[0];
1501 znaFired = kFALSE; // trick because info is not stored in AOD
1502 zncFired = kFALSE; // trick because info is not stored in AOD
1503 zpaFired = kFALSE; // trick because info is not stored in AOD
1504 zpcFired = kFALSE; // trick because info is not stored in AOD
1505 if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
1506 if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
1507 if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
1508 if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
1513 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1514 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1516 AliMCEvent* mcEvent=0;
1517 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
1518 AliGenHijingEventHeader* hHijing=0;
1519 AliGenDPMjetEventHeader* dpmHeader=0;
1521 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1522 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1523 hHijing = (AliGenHijingEventHeader*)mcGenH;
1524 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1525 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1527 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
1528 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
1529 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
1531 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1532 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
1534 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1535 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
1539 // ***** Scaling for MC
1542 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1543 multV0A = multV0A * fV0MScaleFactorMC;
1544 multV0C = multV0C * fV0MScaleFactorMC;
1546 // ***** Scaling for Data
1548 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1549 spdCorr = spdCorr / fSPDScaleFactor;
1550 nTracks = Int_t(nTracks / fTPCScaleFactor);
1553 // ***** Centrality Selection
1554 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
1555 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1556 if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123)));
1557 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
1558 if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
1559 if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
1560 if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
1561 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1562 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1563 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1564 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1565 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1566 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
1568 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1569 else fCentZNA = 101;
1572 if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
1573 else fCentZNC = 101;
1576 if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
1577 else fCentZPA = 101;
1580 if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
1581 else fCentZPC = 101;
1585 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1586 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1587 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1589 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1590 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1591 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1592 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
1593 if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
1594 if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
1595 if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
1596 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1597 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1598 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1599 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1600 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1601 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1602 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
1603 if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
1611 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1613 // ***** outliers, skip in case of MC input
1616 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1618 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1620 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1621 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1622 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1623 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1631 if (aod&&(fDebug>1)) {
1632 Double_t v0m = esdCent->GetCentralityPercentile("V0M");
1633 Double_t cl1 = esdCent->GetCentralityPercentile("CL1");
1634 Double_t trk = esdCent->GetCentralityPercentile("TRK");
1635 Double_t cnd = esdCent->GetCentralityPercentile("CND");
1636 Double_t zna = esdCent->GetCentralityPercentile("ZNA");
1637 printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n",
1638 v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK,
1639 fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
1641 esdCent->SetQuality(fQuality);
1642 esdCent->SetCentralityV0M(fCentV0M);
1643 esdCent->SetCentralityV0A(fCentV0A);
1644 esdCent->SetCentralityV0A123(fCentV0A123);
1645 esdCent->SetCentralityV0C(fCentV0C);
1646 esdCent->SetCentralityV0MEq(fCentV0MEq);
1647 esdCent->SetCentralityV0AEq(fCentV0AEq);
1648 esdCent->SetCentralityV0CEq(fCentV0CEq);
1649 esdCent->SetCentralityFMD(fCentFMD);
1650 esdCent->SetCentralityTRK(fCentTRK);
1651 esdCent->SetCentralityTKL(fCentTKL);
1652 esdCent->SetCentralityCL0(fCentCL0);
1653 esdCent->SetCentralityCL1(fCentCL1);
1654 esdCent->SetCentralityCND(fCentCND);
1655 esdCent->SetCentralityNPA(fCentNPA);
1656 esdCent->SetCentralityZNA(fCentZNA);
1657 esdCent->SetCentralityZNC(fCentZNC);
1658 esdCent->SetCentralityZPA(fCentZPA);
1659 esdCent->SetCentralityZPC(fCentZPC);
1660 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1661 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1662 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1664 esdCent->SetCentralityV0Mtrue(fCentV0Mtrue);
1665 esdCent->SetCentralityV0Atrue(fCentV0Atrue);
1666 esdCent->SetCentralityV0Ctrue(fCentV0Ctrue);
1667 // no setters in AliCentrality for
1671 esdCent->SetCentralityFMDtrue(fCentFMDtrue);
1672 esdCent->SetCentralityTRKtrue(fCentTRKtrue);
1673 esdCent->SetCentralityTKLtrue(fCentTKLtrue);
1674 esdCent->SetCentralityCL0true(fCentCL0true);
1675 esdCent->SetCentralityCL1true(fCentCL1true);
1676 esdCent->SetCentralityCNDtrue(fCentCNDtrue);
1677 esdCent->SetCentralityZNAtrue(fCentZNAtrue);
1678 esdCent->SetCentralityZNCtrue(fCentZNCtrue);
1679 esdCent->SetCentralityZPAtrue(fCentZPAtrue);
1680 esdCent->SetCentralityZPCtrue(fCentZPCtrue);
1683 // filling QA histograms
1686 if (fIsMCInput) { // fill histo with true centrality for simulations
1687 fCentV0M = fCentV0Mtrue;
1688 fCentV0A = fCentV0Atrue;
1689 fCentV0C = fCentV0Ctrue;
1690 fCentV0MEq = fCentV0MEqtrue;
1691 fCentV0AEq = fCentV0AEqtrue;
1692 fCentV0CEq = fCentV0CEqtrue;
1693 fCentFMD = fCentFMDtrue;
1694 fCentTRK = fCentTRKtrue;
1695 fCentTKL = fCentTKLtrue;
1696 fCentCL0 = fCentCL0true;
1697 fCentCL1 = fCentCL1true;
1698 fCentCND = fCentCNDtrue;
1699 fCentZNA = fCentZNAtrue;
1700 fCentZNC = fCentZNCtrue;
1701 fCentZPA = fCentZPAtrue;
1702 fCentZPC = fCentZPCtrue;
1706 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1708 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1709 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1710 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1711 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1712 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1713 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1714 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1715 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1716 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1717 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1718 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1720 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
1721 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) ||
1722 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
1724 fHOutQuality->Fill(fQuality);
1725 fHOutVertex->Fill(zvtx);
1726 fHOutVertexT0->Fill(zvtxT0);
1729 fHOutCentV0M->Fill(fCentV0M);
1730 fHOutCentV0A->Fill(fCentV0A);
1731 fHOutCentV0A123->Fill(fCentV0A123);
1732 fHOutCentV0C->Fill(fCentV0C);
1733 fHOutCentV0MEq->Fill(fCentV0MEq);
1734 fHOutCentV0AEq->Fill(fCentV0AEq);
1735 fHOutCentV0CEq->Fill(fCentV0CEq);
1737 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1738 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1739 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1740 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1741 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1742 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1743 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1744 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1745 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1746 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1747 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1749 fHOutCentFMD->Fill(fCentFMD);
1750 fHOutCentTRK->Fill(fCentTRK);
1751 fHOutCentTKL->Fill(fCentTKL);
1752 fHOutCentCL0->Fill(fCentCL0);
1753 fHOutCentCL1->Fill(fCentCL1);
1754 fHOutCentCND->Fill(fCentCND);
1755 fHOutCentNPA->Fill(fCentNPA);
1756 fHOutCentZNA->Fill(fCentZNA);
1757 fHOutCentZNC->Fill(fCentZNC);
1758 fHOutCentZPA->Fill(fCentZPA);
1759 fHOutCentZPC->Fill(fCentZPC);
1760 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1761 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1762 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1763 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1764 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1765 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1766 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1767 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1768 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1769 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1770 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1771 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1772 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1773 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
1774 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1775 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1776 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1777 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1778 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
1779 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1780 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1781 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1782 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1783 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
1784 fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
1786 fHOutMultV0AC->Fill(multV0A,multV0C);
1787 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1788 fHOutMultV0A->Fill(multV0ACorr);
1789 fHOutMultV0A123->Fill(multV0A123);
1790 fHOutMultV0C->Fill(multV0CCorr);
1791 fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
1792 fHOutMultV0AEq->Fill(multV0AEq);
1793 fHOutMultV0CEq->Fill(multV0CEq);
1794 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1795 fHOutMultV0Anc->Fill(multV0A);
1796 fHOutMultV0Cnc->Fill(multV0C);
1797 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1798 fHOutMultV0Cells->Fill(nV0A,nV0C);
1799 fHOutMultFMD->Fill(multFMDA+multFMDC);
1800 fHOutMultTRK->Fill(nTracks);
1801 fHOutMultTKL->Fill(nTracklets);
1802 fHOutMultCL0->Fill(nClusters[0]);
1803 fHOutMultCL1->Fill(spdCorr);
1804 fHOutMultCND->Fill(multCND);
1805 fHOutMultNPA->Fill(Npart);
1806 if(znaFired)fHOutMultZNA->Fill(znaTower);
1807 if(zncFired)fHOutMultZNC->Fill(zncTower);
1808 if(zpaFired)fHOutMultZPA->Fill(zpaTower);
1809 if(zpcFired)fHOutMultZPC->Fill(zpcTower);
1810 fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
1812 //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1813 fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
1814 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1815 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1816 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1817 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1818 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1819 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1820 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1821 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1822 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1823 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1824 } else if (fQuality%2 == 0) {
1825 fHOutCentV0Mqual1->Fill(fCentV0M);
1826 fHOutCentTRKqual1->Fill(fCentTRK);
1827 fHOutCentCL1qual1->Fill(fCentCL1);
1828 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1829 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1830 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1832 fHOutCentV0Mqual2->Fill(fCentV0M);
1833 fHOutCentTRKqual2->Fill(fCentTRK);
1834 fHOutCentCL1qual2->Fill(fCentCL1);
1835 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1836 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1837 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1840 PostData(1, fOutputList);
1843 //________________________________________________________________________
1844 void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1846 // Terminate analysis
1848 //________________________________________________________________________
1849 Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
1851 // Setup files for run
1856 // check if something to be done
1857 if (fCurrentRun == esd->GetRunNumber())
1860 fCurrentRun = esd->GetRunNumber();
1862 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1863 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1865 AliOADBContainer *con = new AliOADBContainer("OADB");
1866 con->InitFromFile(fileName,"Centrality");
1868 AliOADBCentrality* centOADB = 0;
1869 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1871 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1872 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1875 Bool_t isHijing=kFALSE;
1876 Bool_t isDpmjet=kFALSE;
1877 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1878 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1879 AliMCEvent* mcEvent=0;
1880 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1881 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1882 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1883 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1884 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1889 fUseScaling = centOADB->UseScaling();
1890 fUseCleaning = centOADB->UseCleaning();
1893 fZVCut = centOADB->ZVCut();
1894 fOutliersCut = centOADB->OutliersCut();
1896 // centrality histos
1897 fHtempV0M = centOADB->V0hist();
1898 fHtempV0A = centOADB->V0Ahist();
1899 fHtempV0A123 = centOADB->V0A123hist();
1900 fHtempV0C = centOADB->V0Chist();
1901 fHtempV0MEq = centOADB->V0Eqhist();
1902 fHtempV0AEq = centOADB->V0AEqhist();
1903 fHtempV0CEq = centOADB->V0CEqhist();
1904 fHtempTRK = centOADB->TPChist();
1905 fHtempCL1 = centOADB->SPDhist();
1906 fHtempCND = centOADB->CNDhist();
1907 fHtempFMD = centOADB->FMDhist();
1908 fHtempZNA = centOADB->ZNAhist();
1909 fHtempZNC = centOADB->ZNChist();
1910 fHtempZPA = centOADB->ZPAhist();
1911 fHtempZPC = centOADB->ZPChist();
1912 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
1915 fHtempNPA = centOADB->NPAhist();
1916 fHtempV0Mtrue = centOADB->V0histtrue();
1917 fHtempV0Atrue = centOADB->V0Ahisttrue();
1918 fHtempV0Ctrue = centOADB->V0Chisttrue();
1919 fHtempV0MEqtrue = centOADB->V0Eqhisttrue();
1920 fHtempV0AEqtrue = centOADB->V0AEqhisttrue();
1921 fHtempV0CEqtrue = centOADB->V0CEqhisttrue();
1922 fHtempTRKtrue = centOADB->TPChisttrue();
1923 fHtempCL1true = centOADB->SPDhisttrue();
1924 fHtempCNDtrue = centOADB->CNDhisttrue();
1925 fHtempFMDtrue = centOADB->FMDhisttrue();
1926 fHtempZNAtrue = centOADB->ZNAhisttrue();
1927 fHtempZNCtrue = centOADB->ZNChisttrue();
1928 fHtempZPAtrue = centOADB->ZPAhisttrue();
1929 fHtempZPCtrue = centOADB->ZPChisttrue();
1930 } else if (isDpmjet) {
1931 fHtempNPA = centOADB->NPAhistDPM();
1932 fHtempV0Mtrue = centOADB->V0histtrueDPM();
1933 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
1934 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
1935 fHtempV0MEqtrue = centOADB->V0EqhisttrueDPM();
1936 fHtempV0AEqtrue = centOADB->V0AEqhisttrueDPM();
1937 fHtempV0CEqtrue = centOADB->V0CEqhisttrueDPM();
1938 fHtempTRKtrue = centOADB->TPChisttrueDPM();
1939 fHtempCL1true = centOADB->SPDhisttrueDPM();
1940 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
1941 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
1942 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
1943 fHtempZNCtrue = centOADB->ZNChisttrueDPM();
1944 fHtempZPAtrue = centOADB->ZPAhisttrueDPM();
1945 fHtempZPCtrue = centOADB->ZPChisttrueDPM();
1949 TString path = gSystem->ExpandPathName(fileName.Data());
1950 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
1951 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
1952 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
1953 if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
1954 if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
1955 if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
1956 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
1957 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
1958 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
1959 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
1960 if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
1961 if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
1962 if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
1963 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
1964 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
1965 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
1967 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
1968 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
1969 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
1970 if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
1971 if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
1972 if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
1973 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
1974 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
1975 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
1976 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
1977 if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
1978 if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
1979 if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
1980 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
1984 fV0MScaleFactor = centOADB->V0MScaleFactor();
1985 fSPDScaleFactor = centOADB->SPDScaleFactor();
1986 fTPCScaleFactor = centOADB->TPCScaleFactor();
1987 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
1989 // outliers parameters
1990 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
1991 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
1992 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
1993 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
1995 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
1996 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
1997 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
1998 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
1999 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
2000 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
2002 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
2003 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
2004 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
2005 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
2012 //________________________________________________________________________
2013 Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
2016 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
2017 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
2018 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
2024 //________________________________________________________________________
2025 Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
2028 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
2029 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
2030 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
2036 //________________________________________________________________________
2037 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
2040 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
2047 //________________________________________________________________________
2048 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
2051 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;