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),
228 fHOutCentV0MCVHNinMB(0),
229 fHOutCentV0MCVLNinMB(0),
230 fHOutCentV0MCCENT(0),
231 fHOutCentV0MCSEMI(0),
232 fHOutCentV0MCCENTinMB(0),
233 fHOutCentV0MCSEMIinMB(0),
241 fHOutCentV0MMSLinMB(0),
242 fHOutCentV0MMSHinMB(0),
243 fHOutCentV0MMULinMB(0),
244 fHOutCentV0MMLLinMB(0),
245 fHOutCentV0MEJEinMB(0),
246 fHOutCentV0MEGAinMB(0),
247 fHOutCentV0MPHSinMB(0),
259 fHOutCentV0MvsFMD(0),
260 fHOutCentTKLvsV0M(0),
261 fHOutCentZEMvsZDC(0),
262 fHOutCentV0MvsCentCL1(0),
263 fHOutCentV0MvsCentTRK(0),
264 fHOutCentTRKvsCentCL1(0),
265 fHOutCentV0MvsCentZDC(0),
266 fHOutCentV0AvsCentV0C(0),
267 fHOutCentV0AvsCentTRK(0),
268 fHOutCentV0AvsCentCND(0),
269 fHOutCentV0AvsCentCL1(0),
270 fHOutCentV0CvsCentTRK(0),
271 fHOutCentV0CvsCentCND(0),
272 fHOutCentV0CvsCentCL1(0),
273 fHOutCentNPAvsCentV0A(0),
274 fHOutCentNPAvsCentV0C(0),
275 fHOutCentNPAvsCentTRK(0),
276 fHOutCentNPAvsCentCND(0),
277 fHOutCentNPAvsCentCL1(0),
278 fHOutCentZNAvsCentV0A(0),
279 fHOutCentZNAvsCentV0C(0),
280 fHOutCentZNAvsCentTRK(0),
281 fHOutCentZNAvsCentCND(0),
282 fHOutCentZNAvsCentCL1(0),
283 fHOutCentZNAvsCentZPA(0),
312 fHOutMultV0MvsZDN(0),
313 fHOutMultZEMvsZDN(0),
314 fHOutMultV0MvsZDC(0),
315 fHOutMultZEMvsZDC(0),
316 fHOutMultZEMvsZDCw(0),
317 fHOutMultV0MvsCL1(0),
318 fHOutMultV0MvsTRK(0),
319 fHOutMultTRKvsCL1(0),
320 fHOutMultV0MvsV0O(0),
321 fHOutMultV0OvsCL1(0),
322 fHOutMultV0OvsTRK(0),
323 fHOutMultCL1vsTKL(0),
324 fHOutMultZNAvsZPA(0),
325 fHOutCentV0Mqual1(0),
326 fHOutCentTRKqual1(0),
327 fHOutCentCL1qual1(0),
328 fHOutMultV0MvsCL1qual1(0),
329 fHOutMultV0MvsTRKqual1(0),
330 fHOutMultTRKvsCL1qual1(0),
331 fHOutCentV0Mqual2(0),
332 fHOutCentTRKqual2(0),
333 fHOutCentCL1qual2(0),
334 fHOutMultV0MvsCL1qual2(0),
335 fHOutMultV0MvsTRKqual2(0),
336 fHOutMultTRKvsCL1qual2(0),
341 // Default constructor
342 AliInfo("Centrality Selection enabled.");
347 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
348 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
351 //________________________________________________________________________
352 AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
353 AliAnalysisTaskSE(name),
354 fAnalysisInput("ESD"),
363 fV0MScaleFactorMC(0),
364 fV0MSPDOutlierPar0(0),
365 fV0MSPDOutlierPar1(0),
366 fV0MTPCOutlierPar0(0),
367 fV0MTPCOutlierPar1(0),
368 fV0MSPDSigmaOutlierPar0(0),
369 fV0MSPDSigmaOutlierPar1(0),
370 fV0MSPDSigmaOutlierPar2(0),
371 fV0MTPCSigmaOutlierPar0(0),
372 fV0MTPCSigmaOutlierPar1(0),
373 fV0MTPCSigmaOutlierPar2(0),
374 fV0MZDCOutlierPar0(0),
375 fV0MZDCOutlierPar1(0),
376 fV0MZDCEcalOutlierPar0(0),
377 fV0MZDCEcalOutlierPar1(0),
380 fEsdTrackCutsExtra1(0),
381 fEsdTrackCutsExtra2(0),
498 fHOutCentV0MCVHNinMB(0),
499 fHOutCentV0MCVLNinMB(0),
500 fHOutCentV0MCCENT(0),
501 fHOutCentV0MCSEMI(0),
502 fHOutCentV0MCCENTinMB(0),
503 fHOutCentV0MCSEMIinMB(0),
511 fHOutCentV0MMSLinMB(0),
512 fHOutCentV0MMSHinMB(0),
513 fHOutCentV0MMULinMB(0),
514 fHOutCentV0MMLLinMB(0),
515 fHOutCentV0MEJEinMB(0),
516 fHOutCentV0MEGAinMB(0),
517 fHOutCentV0MPHSinMB(0),
529 fHOutCentV0MvsFMD(0),
530 fHOutCentTKLvsV0M(0),
531 fHOutCentZEMvsZDC(0),
532 fHOutCentV0MvsCentCL1(0),
533 fHOutCentV0MvsCentTRK(0),
534 fHOutCentTRKvsCentCL1(0),
535 fHOutCentV0MvsCentZDC(0),
536 fHOutCentV0AvsCentV0C(0),
537 fHOutCentV0AvsCentTRK(0),
538 fHOutCentV0AvsCentCND(0),
539 fHOutCentV0AvsCentCL1(0),
540 fHOutCentV0CvsCentTRK(0),
541 fHOutCentV0CvsCentCND(0),
542 fHOutCentV0CvsCentCL1(0),
543 fHOutCentNPAvsCentV0A(0),
544 fHOutCentNPAvsCentV0C(0),
545 fHOutCentNPAvsCentTRK(0),
546 fHOutCentNPAvsCentCND(0),
547 fHOutCentNPAvsCentCL1(0),
548 fHOutCentZNAvsCentV0A(0),
549 fHOutCentZNAvsCentV0C(0),
550 fHOutCentZNAvsCentTRK(0),
551 fHOutCentZNAvsCentCND(0),
552 fHOutCentZNAvsCentCL1(0),
553 fHOutCentZNAvsCentZPA(0),
582 fHOutMultV0MvsZDN(0),
583 fHOutMultZEMvsZDN(0),
584 fHOutMultV0MvsZDC(0),
585 fHOutMultZEMvsZDC(0),
586 fHOutMultZEMvsZDCw(0),
587 fHOutMultV0MvsCL1(0),
588 fHOutMultV0MvsTRK(0),
589 fHOutMultTRKvsCL1(0),
590 fHOutMultV0MvsV0O(0),
591 fHOutMultV0OvsCL1(0),
592 fHOutMultV0OvsTRK(0),
593 fHOutMultCL1vsTKL(0),
594 fHOutMultZNAvsZPA(0),
595 fHOutCentV0Mqual1(0),
596 fHOutCentTRKqual1(0),
597 fHOutCentCL1qual1(0),
598 fHOutMultV0MvsCL1qual1(0),
599 fHOutMultV0MvsTRKqual1(0),
600 fHOutMultTRKvsCL1qual1(0),
601 fHOutCentV0Mqual2(0),
602 fHOutCentTRKqual2(0),
603 fHOutCentCL1qual2(0),
604 fHOutMultV0MvsCL1qual2(0),
605 fHOutMultV0MvsTRKqual2(0),
606 fHOutMultTRKvsCL1qual2(0),
611 // Default constructor
612 AliInfo("Centrality Selection enabled.");
613 //DefineOutput(1, TList::Class());
617 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
618 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
621 //________________________________________________________________________
622 AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c)
624 // Assignment operator
626 AliAnalysisTaskSE::operator=(c);
631 //________________________________________________________________________
632 AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana):
633 AliAnalysisTaskSE(ana),
634 fAnalysisInput(ana.fAnalysisInput),
635 fIsMCInput(ana.fIsMCInput),
636 fCurrentRun(ana.fCurrentRun),
637 fUseScaling(ana.fUseScaling),
638 fUseCleaning(ana.fUseCleaning),
639 fFillHistos(ana.fFillHistos),
640 fV0MScaleFactor(ana.fV0MScaleFactor),
641 fSPDScaleFactor(ana.fSPDScaleFactor),
642 fTPCScaleFactor(ana.fTPCScaleFactor),
643 fV0MScaleFactorMC(ana.fV0MScaleFactorMC),
644 fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0),
645 fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1),
646 fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0),
647 fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1),
648 fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0),
649 fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1),
650 fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2),
651 fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0),
652 fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1),
653 fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2),
654 fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0),
655 fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1),
656 fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0),
657 fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1),
658 fTrackCuts(ana.fTrackCuts),
659 fEsdTrackCuts(ana.fEsdTrackCuts),
660 fEsdTrackCutsExtra1(ana.fEsdTrackCutsExtra1),
661 fEsdTrackCutsExtra2(ana.fEsdTrackCutsExtra2),
663 fOutliersCut(ana.fOutliersCut),
664 fQuality(ana.fQuality),
665 fIsSelected(ana.fIsSelected),
676 fCVHNbit(ana.fCVHNbit),
677 fCVLNbit(ana.fCVLNbit),
680 fCCENTbit(ana.fCCENTbit),
681 fCSEMIbit(ana.fCSEMIbit),
682 fCentV0M(ana.fCentV0M),
683 fCentV0A(ana.fCentV0A),
684 fCentV0A0(ana.fCentV0A0),
685 fCentV0A123(ana.fCentV0A123),
686 fCentV0C(ana.fCentV0C),
687 fCentV0A23(ana.fCentV0A23),
688 fCentV0C01(ana.fCentV0C01),
689 fCentV0S(ana.fCentV0S),
690 fCentV0MEq(ana.fCentV0MEq),
691 fCentV0AEq(ana.fCentV0AEq),
692 fCentV0CEq(ana.fCentV0CEq),
693 fCentFMD(ana.fCentFMD),
694 fCentTRK(ana.fCentTRK),
695 fCentTKL(ana.fCentTKL),
696 fCentCL0(ana.fCentCL0),
697 fCentCL1(ana.fCentCL1),
698 fCentCND(ana.fCentCND),
699 fCentZNA(ana.fCentZNA),
700 fCentZNC(ana.fCentZNC),
701 fCentZPA(ana.fCentZPA),
702 fCentZPC(ana.fCentZPC),
703 fCentNPA(ana.fCentNPA),
704 fCentV0MvsFMD(ana.fCentV0MvsFMD),
705 fCentTKLvsV0M(ana.fCentTKLvsV0M),
706 fCentZEMvsZDC(ana.fCentZEMvsZDC),
707 fCentV0Mtrue(ana.fCentV0Mtrue),
708 fCentV0Atrue(ana.fCentV0Atrue),
709 fCentV0Ctrue(ana.fCentV0Ctrue),
710 fCentV0MEqtrue(ana.fCentV0MEqtrue),
711 fCentV0AEqtrue(ana.fCentV0AEqtrue),
712 fCentV0CEqtrue(ana.fCentV0CEqtrue),
713 fCentFMDtrue(ana.fCentFMDtrue),
714 fCentTRKtrue(ana.fCentTRKtrue),
715 fCentTKLtrue(ana.fCentTKLtrue),
716 fCentCL0true(ana.fCentCL0true),
717 fCentCL1true(ana.fCentCL1true),
718 fCentCNDtrue(ana.fCentCNDtrue),
719 fCentZNAtrue(ana.fCentZNAtrue),
720 fCentZNCtrue(ana.fCentZNCtrue),
721 fCentZPAtrue(ana.fCentZPAtrue),
722 fCentZPCtrue(ana.fCentZPCtrue),
723 fHtempV0M(ana.fHtempV0M),
724 fHtempV0A(ana.fHtempV0A),
725 fHtempV0A0(ana.fHtempV0A0),
726 fHtempV0A123(ana.fHtempV0A123),
727 fHtempV0C(ana.fHtempV0C),
728 fHtempV0A23(ana.fHtempV0A23),
729 fHtempV0C01(ana.fHtempV0C01),
730 fHtempV0S(ana.fHtempV0S),
731 fHtempV0MEq(ana.fHtempV0MEq),
732 fHtempV0AEq(ana.fHtempV0AEq),
733 fHtempV0CEq(ana.fHtempV0CEq),
734 fHtempFMD(ana.fHtempFMD),
735 fHtempTRK(ana.fHtempTRK),
736 fHtempTKL(ana.fHtempTKL),
737 fHtempCL0(ana.fHtempCL0),
738 fHtempCL1(ana.fHtempCL1),
739 fHtempCND(ana.fHtempCND),
740 fHtempZNA(ana.fHtempZNA),
741 fHtempZNC(ana.fHtempZNC),
742 fHtempZPA(ana.fHtempZPA),
743 fHtempZPC(ana.fHtempZPC),
744 fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
745 fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
746 fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
747 fHtempNPA(ana.fHtempNPA),
748 fHtempV0Mtrue(ana.fHtempV0Mtrue),
749 fHtempV0Atrue(ana.fHtempV0Atrue),
750 fHtempV0Ctrue(ana.fHtempV0Ctrue),
751 fHtempV0MEqtrue(ana.fHtempV0MEqtrue),
752 fHtempV0AEqtrue(ana.fHtempV0AEqtrue),
753 fHtempV0CEqtrue(ana.fHtempV0CEqtrue),
754 fHtempFMDtrue(ana.fHtempFMDtrue),
755 fHtempTRKtrue(ana.fHtempTRKtrue),
756 fHtempTKLtrue(ana.fHtempTKLtrue),
757 fHtempCL0true(ana.fHtempCL0true),
758 fHtempCL1true(ana.fHtempCL1true),
759 fHtempCNDtrue(ana.fHtempCNDtrue),
760 fHtempZNAtrue(ana.fHtempZNAtrue),
761 fHtempZNCtrue(ana.fHtempZNCtrue),
762 fHtempZPAtrue(ana.fHtempZPAtrue),
763 fHtempZPCtrue(ana.fHtempZPCtrue),
764 fOutputList(ana.fOutputList),
765 fHOutCentV0M(ana.fHOutCentV0M),
766 fHOutCentV0A(ana.fHOutCentV0A),
767 fHOutCentV0A0(ana.fHOutCentV0A0),
768 fHOutCentV0A123(ana.fHOutCentV0A123),
769 fHOutCentV0C(ana.fHOutCentV0C),
770 fHOutCentV0A23(ana.fHOutCentV0A23),
771 fHOutCentV0C01(ana.fHOutCentV0C01),
772 fHOutCentV0S(ana.fHOutCentV0S),
773 fHOutCentV0MEq(ana.fHOutCentV0MEq),
774 fHOutCentV0AEq(ana.fHOutCentV0AEq),
775 fHOutCentV0CEq(ana.fHOutCentV0CEq),
776 fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
777 fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
778 fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
779 fHOutCentV0MCVLNinMB(ana.fHOutCentV0MCVLNinMB),
780 fHOutCentV0MCCENT(ana.fHOutCentV0MCCENT),
781 fHOutCentV0MCSEMI(ana.fHOutCentV0MCSEMI),
782 fHOutCentV0MCCENTinMB(ana.fHOutCentV0MCCENTinMB),
783 fHOutCentV0MCSEMIinMB(ana.fHOutCentV0MCSEMIinMB),
784 fHOutCentV0MMSL(ana.fHOutCentV0MMSL),
785 fHOutCentV0MMSH(ana.fHOutCentV0MMSH),
786 fHOutCentV0MMUL(ana.fHOutCentV0MMUL),
787 fHOutCentV0MMLL(ana.fHOutCentV0MMLL),
788 fHOutCentV0MEJE(ana.fHOutCentV0MEJE),
789 fHOutCentV0MEGA(ana.fHOutCentV0MEGA),
790 fHOutCentV0MPHS(ana.fHOutCentV0MPHS),
791 fHOutCentV0MMSLinMB(ana.fHOutCentV0MMSLinMB),
792 fHOutCentV0MMSHinMB(ana.fHOutCentV0MMSHinMB),
793 fHOutCentV0MMULinMB(ana.fHOutCentV0MMULinMB),
794 fHOutCentV0MMLLinMB(ana.fHOutCentV0MMLLinMB),
795 fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
796 fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
797 fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
798 fHOutCentFMD(ana.fHOutCentFMD),
799 fHOutCentTRK(ana.fHOutCentTRK),
800 fHOutCentTKL(ana.fHOutCentTKL),
801 fHOutCentCL0(ana.fHOutCentCL0),
802 fHOutCentCL1(ana.fHOutCentCL1),
803 fHOutCentCND(ana.fHOutCentCND),
804 fHOutCentNPA(ana.fHOutCentNPA),
805 fHOutCentZNA(ana.fHOutCentZNA),
806 fHOutCentZNC(ana.fHOutCentZNC),
807 fHOutCentZPA(ana.fHOutCentZPA),
808 fHOutCentZPC(ana.fHOutCentZPC),
809 fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
810 fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
811 fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
812 fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1),
813 fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK),
814 fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1),
815 fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC),
816 fHOutCentV0AvsCentV0C(ana.fHOutCentV0AvsCentV0C),
817 fHOutCentV0AvsCentTRK(ana.fHOutCentV0AvsCentTRK),
818 fHOutCentV0AvsCentCND(ana.fHOutCentV0AvsCentCND),
819 fHOutCentV0AvsCentCL1(ana.fHOutCentV0AvsCentCL1),
820 fHOutCentV0CvsCentTRK(ana.fHOutCentV0CvsCentTRK),
821 fHOutCentV0CvsCentCND(ana.fHOutCentV0CvsCentCND),
822 fHOutCentV0CvsCentCL1(ana.fHOutCentV0CvsCentCL1),
823 fHOutCentNPAvsCentV0A(ana.fHOutCentNPAvsCentV0A),
824 fHOutCentNPAvsCentV0C(ana.fHOutCentNPAvsCentV0C),
825 fHOutCentNPAvsCentTRK(ana.fHOutCentNPAvsCentTRK),
826 fHOutCentNPAvsCentCND(ana.fHOutCentNPAvsCentCND),
827 fHOutCentNPAvsCentCL1(ana.fHOutCentNPAvsCentCL1),
828 fHOutCentZNAvsCentV0A(ana.fHOutCentZNAvsCentV0A),
829 fHOutCentZNAvsCentV0C(ana.fHOutCentZNAvsCentV0C),
830 fHOutCentZNAvsCentTRK(ana.fHOutCentZNAvsCentTRK),
831 fHOutCentZNAvsCentCND(ana.fHOutCentZNAvsCentCND),
832 fHOutCentZNAvsCentCL1(ana.fHOutCentZNAvsCentCL1),
833 fHOutCentZNAvsCentZPA(ana.fHOutCentZNAvsCentZPA),
834 fHOutMultV0AC(ana.fHOutMultV0AC),
835 fHOutMultV0M(ana.fHOutMultV0M),
836 fHOutMultV0A(ana.fHOutMultV0A),
837 fHOutMultV0A0(ana.fHOutMultV0A0),
838 fHOutMultV0A123(ana.fHOutMultV0A123),
839 fHOutMultV0C(ana.fHOutMultV0C),
840 fHOutMultV0A23(ana.fHOutMultV0A23),
841 fHOutMultV0C01(ana.fHOutMultV0C01),
842 fHOutMultV0S(ana.fHOutMultV0S),
843 fHOutMultV0MEq(ana.fHOutMultV0MEq),
844 fHOutMultV0AEq(ana.fHOutMultV0AEq),
845 fHOutMultV0CEq(ana.fHOutMultV0CEq),
846 fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
847 fHOutMultV0Anc(ana.fHOutMultV0Anc),
848 fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
849 fHOutMultV0O(ana.fHOutMultV0O),
850 fHOutMultV0Cells(ana.fHOutMultV0Cells),
851 fHOutMultFMD(ana.fHOutMultFMD),
852 fHOutMultTRK(ana.fHOutMultTRK),
853 fHOutMultTKL(ana.fHOutMultTKL),
854 fHOutMultCL0(ana.fHOutMultCL0),
855 fHOutMultCL1(ana.fHOutMultCL1),
856 fHOutMultCND(ana.fHOutMultCND),
857 fHOutMultNPA(ana.fHOutMultNPA),
858 fHOutMultZNA(ana.fHOutMultZNA),
859 fHOutMultZNC(ana.fHOutMultZNC),
860 fHOutMultZPA(ana.fHOutMultZPA),
861 fHOutMultZPC(ana.fHOutMultZPC),
862 fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
863 fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
864 fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
865 fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
866 fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw),
867 fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
868 fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
869 fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1),
870 fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O),
871 fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
872 fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
873 fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
874 fHOutMultZNAvsZPA(ana.fHOutMultZNAvsZPA),
875 fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
876 fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
877 fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
878 fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1),
879 fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1),
880 fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1),
881 fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2),
882 fHOutCentTRKqual2(ana.fHOutCentTRKqual2),
883 fHOutCentCL1qual2(ana.fHOutCentCL1qual2),
884 fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2),
885 fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2),
886 fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2),
887 fHOutQuality(ana.fHOutQuality),
888 fHOutVertex(ana.fHOutVertex),
889 fHOutVertexT0(ana.fHOutVertexT0)
895 //________________________________________________________________________
896 AliCentralitySelectionTask::~AliCentralitySelectionTask()
899 if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
900 if (fTrackCuts) delete fTrackCuts;
901 if (fEsdTrackCuts) delete fEsdTrackCuts;
902 if (fEsdTrackCutsExtra1) delete fEsdTrackCutsExtra1;
903 if (fEsdTrackCutsExtra2) delete fEsdTrackCutsExtra2;
906 //________________________________________________________________________
907 void AliCentralitySelectionTask::UserCreateOutputObjects()
909 // Create the output containers
910 if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
911 AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
914 fOutputList = new TList();
915 fOutputList->SetOwner();
916 fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
917 fHOutCentV0A = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
918 fHOutCentV0A0 = new TH1F("fHOutCentV0A0","fHOutCentV0A0; Centrality V0A-0",505,0,101);
919 fHOutCentV0A123 = new TH1F("fHOutCentV0A123","fHOutCentV0A123; Centrality V0A-123",505,0,101);
920 fHOutCentV0C = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
921 fHOutCentV0A23 = new TH1F("fHOutCentV0A23","fHOutCentV0A23; Centrality V0A-23",505,0,101);
922 fHOutCentV0C01 = new TH1F("fHOutCentV0C01","fHOutCentV0C01; Centrality V0C-01",505,0,101);
923 fHOutCentV0S = new TH1F("fHOutCentV0S","fHOutCentV0S; Centrality V0A-23 & V0C-01",505,0,101);
924 fHOutCentV0MEq = new TH1F("fHOutCentV0MEq","fHOutCentV0MEq; Centrality V0 equalized",505,0,101);
925 fHOutCentV0AEq = new TH1F("fHOutCentV0AEq","fHOutCentV0AEq; Centrality V0A equalized",505,0,101);
926 fHOutCentV0CEq = new TH1F("fHOutCentV0CEq","fHOutCentV0CEq; Centrality V0C equalized",505,0,101);
927 fHOutCentV0MCVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
928 fHOutCentV0MCVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
929 fHOutCentV0MCVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
930 fHOutCentV0MCVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
931 fHOutCentV0MCCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
932 fHOutCentV0MCSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
933 fHOutCentV0MCCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
934 fHOutCentV0MCSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
935 fHOutCentV0MMSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101);
936 fHOutCentV0MMSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101);
937 fHOutCentV0MMUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101);
938 fHOutCentV0MMLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101);
939 fHOutCentV0MEJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101);
940 fHOutCentV0MEGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101);
941 fHOutCentV0MPHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101);
942 fHOutCentV0MMSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101);
943 fHOutCentV0MMSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101);
944 fHOutCentV0MMULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101);
945 fHOutCentV0MMLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101);
946 fHOutCentV0MEJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101);
947 fHOutCentV0MEGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101);
948 fHOutCentV0MPHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101);
949 fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101);
950 fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101);
951 fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101);
952 fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101);
953 fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101);
954 fHOutCentCND = new TH1F("fHOutCentCND","fHOutCentCND; Centrality candle",505,0,101);
955 fHOutCentNPA = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality Npart",505,0,101);
956 fHOutCentZNA = new TH1F("fHOutCentZNA","fHOutCentZNA; Centrality ZNA",505,0,101);
957 fHOutCentZNC = new TH1F("fHOutCentZNC","fHOutCentZNC; Centrality ZNC",505,0,101);
958 fHOutCentZPA = new TH1F("fHOutCentZPA","fHOutCentZPA; Centrality ZPA",505,0,101);
959 fHOutCentZPC = new TH1F("fHOutCentZPC","fHOutCentZPC; Centrality ZPC",505,0,101);
960 fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
961 fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
962 fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
963 fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101);
964 fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101);
965 fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101);
966 fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101);
967 fHOutCentV0AvsCentV0C= new TH2F("fHOutCentV0AvsCentV0C","fHOutCentV0AvsCentV0C; Cent V0A; Cent V0C;", 505,0,101,505,0,101);
968 fHOutCentV0AvsCentTRK= new TH2F("fHOutCentV0AvsCentTRK","fHOutCentV0AvsCentTRK; Cent V0A; Cent TRK;", 505,0,101,505,0,101);
969 fHOutCentV0AvsCentCND= new TH2F("fHOutCentV0AvsCentCND","fHOutCentV0AvsCentCND; Cent V0A; Cent CND;", 505,0,101,505,0,101);
970 fHOutCentV0AvsCentCL1= new TH2F("fHOutCentV0AvsCentCL1","fHOutCentV0AvsCentCL1; Cent V0A; Cent CL1;", 505,0,101,505,0,101);
971 fHOutCentV0CvsCentTRK= new TH2F("fHOutCentV0CvsCentTRK","fHOutCentV0CvsCentTRK; Cent V0C; Cent TRK;", 505,0,101,505,0,101);
972 fHOutCentV0CvsCentCND= new TH2F("fHOutCentV0CvsCentCND","fHOutCentV0CvsCentCND; Cent V0C; Cent CND;", 505,0,101,505,0,101);
973 fHOutCentV0CvsCentCL1= new TH2F("fHOutCentV0CvsCentCL1","fHOutCentV0CvsCentCL1; Cent V0C; Cent CL1;", 505,0,101,505,0,101);
974 fHOutCentNPAvsCentV0A= new TH2F("fHOutCentNPAvsCentV0A","fHOutCentNPAvsCentV0A; Cent NPA; Cent V0A;", 505,0,101,505,0,101);
975 fHOutCentNPAvsCentV0C= new TH2F("fHOutCentNPAvsCentV0C","fHOutCentNPAvsCentV0C; Cent NPA; Cent V0C;", 505,0,101,505,0,101);
976 fHOutCentNPAvsCentTRK= new TH2F("fHOutCentNPAvsCentTRK","fHOutCentNPAvsCentTRK; Cent NPA; Cent TRK;", 505,0,101,505,0,101);
977 fHOutCentNPAvsCentCND= new TH2F("fHOutCentNPAvsCentCND","fHOutCentNPAvsCentCND; Cent NPA; Cent CND;", 505,0,101,505,0,101);
978 fHOutCentNPAvsCentCL1= new TH2F("fHOutCentNPAvsCentCL1","fHOutCentNPAvsCentCL1; Cent NPA; Cent CL1;", 505,0,101,505,0,101);
979 fHOutCentZNAvsCentV0A= new TH2F("fHOutCentZNAvsCentV0A","fHOutCentZNAvsCentV0A; Cent ZNA; Cent V0A;", 505,0,101,505,0,101);
980 fHOutCentZNAvsCentV0C= new TH2F("fHOutCentZNAvsCentV0C","fHOutCentZNAvsCentV0C; Cent ZNA; Cent V0C;", 505,0,101,505,0,101);
981 fHOutCentZNAvsCentTRK= new TH2F("fHOutCentZNAvsCentTRK","fHOutCentZNAvsCentTRK; Cent ZNA; Cent TRK;", 505,0,101,505,0,101);
982 fHOutCentZNAvsCentCND= new TH2F("fHOutCentZNAvsCentCND","fHOutCentZNAvsCentCND; Cent ZNA; Cent CND;", 505,0,101,505,0,101);
983 fHOutCentZNAvsCentCL1= new TH2F("fHOutCentZNAvsCentCL1","fHOutCentZNAvsCentCL1; Cent ZNA; Cent CL1;", 505,0,101,505,0,101);
984 fHOutCentZNAvsCentZPA= new TH2F("fHOutCentZNAvsCentZPA","fHOutCentZNAvsCentZPA; Cent ZNA; Cent ZPA;", 505,0,101,505,0,101);
986 fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
987 fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
988 fHOutMultV0A = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
989 fHOutMultV0A0 = new TH1F("fHOutMultV0A0","fHOutMultV0A0; Multiplicity V0A-0",25000,0,25000);
990 fHOutMultV0A123 = new TH1F("fHOutMultV0A123","fHOutMultV0A123; Multiplicity V0A-123",25000,0,25000);
991 fHOutMultV0C = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
992 fHOutMultV0A23 = new TH1F("fHOutMultV0A23","fHOutMultV0A23; Multiplicity V0A-23",25000,0,25000);
993 fHOutMultV0C01 = new TH1F("fHOutMultV0C01","fHOutMultV0C01; Multiplicity V0C-01",25000,0,25000);
994 fHOutMultV0S = new TH1F("fHOutMultV0S","fHOutMultV0S; Multiplicity V0A-23 & V0C-01",25000,0,25000);
995 fHOutMultV0MEq = new TH1F("fHOutMultV0MEq","fHOutMultV0MEq; Multiplicity V0",25000,0,25000);
996 fHOutMultV0AEq = new TH1F("fHOutMultV0AEq","fHOutMultV0AEq; Multiplicity V0",25000,0,25000);
997 fHOutMultV0CEq = new TH1F("fHOutMultV0CEq","fHOutMultV0CEq; Multiplicity V0",25000,0,25000);
998 fHOutMultV0Mnc= new TH1F("fHOutMultV0Mnc","fHOutMultV0Mnc; Multiplicity V0",25000,0,25000);
999 fHOutMultV0Anc= new TH1F("fHOutMultV0Anc","fHOutMultV0Anc; Multiplicity V0",25000,0,25000);
1000 fHOutMultV0Cnc= new TH1F("fHOutMultV0Cnc","fHOutMultV0Cnc; Multiplicity V0",25000,0,25000);
1001 fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000);
1002 fHOutMultV0Cells = new TH2F("fHOutMultV0Cells","fHOutMultV0Cells",33,-0.5,32.5,33,-0.5,32.5);
1003 fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
1004 fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
1005 fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
1006 fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
1007 fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
1008 fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
1009 fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
1010 fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",2000,0,2000);
1011 fHOutMultZNC = new TH1F("fHOutMultZNC","fHOutMultZNC; ZNC Energy",2000,0,2000);
1012 fHOutMultZPA = new TH1F("fHOutMultZPA","fHOutMultZPA; ZPA Energy",2000,0,2000);
1013 fHOutMultZPC = new TH1F("fHOutMultZPC","fHOutMultZPC; ZPC Energy",2000,0,2000);
1015 fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,1200,500,0,2000);
1016 fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
1017 fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
1018 fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
1019 fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000);
1020 fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
1021 fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
1022 fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1023 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000);
1024 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000);
1025 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000);
1026 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000);
1027 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
1028 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
1029 fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
1030 fHOutMultZNAvsZPA = new TH2F ("fHOutMultZNAvsZPA","fHOutMultZNAvsZPA; Energy ZNA; Energy ZPA",500,0,2000,500,0,2000);
1032 fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
1033 fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
1034 fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101);
1035 fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
1036 fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
1037 fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1039 fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101);
1040 fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101);
1041 fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101);
1042 fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
1043 fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
1044 fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
1046 fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5);
1047 fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20);
1048 fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20);
1050 fOutputList->Add(fHOutCentV0M);
1051 fOutputList->Add(fHOutCentV0A);
1052 fOutputList->Add(fHOutCentV0A0);
1053 fOutputList->Add(fHOutCentV0A123);
1054 fOutputList->Add(fHOutCentV0C);
1055 fOutputList->Add(fHOutCentV0A23);
1056 fOutputList->Add(fHOutCentV0C01);
1057 fOutputList->Add(fHOutCentV0S);
1058 fOutputList->Add(fHOutCentV0MEq);
1059 fOutputList->Add(fHOutCentV0AEq);
1060 fOutputList->Add(fHOutCentV0CEq);
1061 fOutputList->Add(fHOutCentV0MCVHN);
1062 fOutputList->Add(fHOutCentV0MCVLN);
1063 fOutputList->Add(fHOutCentV0MCVHNinMB);
1064 fOutputList->Add(fHOutCentV0MCVLNinMB);
1065 fOutputList->Add(fHOutCentV0MCCENT);
1066 fOutputList->Add(fHOutCentV0MCSEMI);
1067 fOutputList->Add(fHOutCentV0MCCENTinMB);
1068 fOutputList->Add(fHOutCentV0MCSEMIinMB);
1069 fOutputList->Add(fHOutCentV0MMSL);
1070 fOutputList->Add(fHOutCentV0MMSH);
1071 fOutputList->Add(fHOutCentV0MMUL);
1072 fOutputList->Add(fHOutCentV0MMLL);
1073 fOutputList->Add(fHOutCentV0MEJE);
1074 fOutputList->Add(fHOutCentV0MEGA);
1075 fOutputList->Add(fHOutCentV0MPHS);
1076 fOutputList->Add(fHOutCentV0MMSLinMB);
1077 fOutputList->Add(fHOutCentV0MMSHinMB);
1078 fOutputList->Add(fHOutCentV0MMULinMB);
1079 fOutputList->Add(fHOutCentV0MMLLinMB);
1080 fOutputList->Add(fHOutCentV0MEJEinMB);
1081 fOutputList->Add(fHOutCentV0MEGAinMB);
1082 fOutputList->Add(fHOutCentV0MPHSinMB);
1083 fOutputList->Add(fHOutCentFMD);
1084 fOutputList->Add(fHOutCentTRK);
1085 fOutputList->Add(fHOutCentTKL);
1086 fOutputList->Add(fHOutCentCL0);
1087 fOutputList->Add(fHOutCentCL1);
1088 fOutputList->Add(fHOutCentCND);
1089 fOutputList->Add(fHOutCentNPA);
1090 fOutputList->Add(fHOutCentZNA);
1091 fOutputList->Add(fHOutCentZNC);
1092 fOutputList->Add(fHOutCentZPA);
1093 fOutputList->Add(fHOutCentZPC);
1094 fOutputList->Add(fHOutCentV0MvsFMD);
1095 fOutputList->Add(fHOutCentTKLvsV0M);
1096 fOutputList->Add(fHOutCentZEMvsZDC);
1097 fOutputList->Add(fHOutCentV0MvsCentCL1);
1098 fOutputList->Add(fHOutCentV0MvsCentTRK);
1099 fOutputList->Add(fHOutCentTRKvsCentCL1);
1100 fOutputList->Add(fHOutCentV0MvsCentZDC);
1101 fOutputList->Add(fHOutCentV0AvsCentV0C);
1102 fOutputList->Add(fHOutCentV0AvsCentTRK);
1103 fOutputList->Add(fHOutCentV0AvsCentCND);
1104 fOutputList->Add(fHOutCentV0AvsCentCL1);
1105 fOutputList->Add(fHOutCentV0CvsCentTRK);
1106 fOutputList->Add(fHOutCentV0CvsCentCND);
1107 fOutputList->Add(fHOutCentV0CvsCentCL1);
1108 fOutputList->Add(fHOutCentNPAvsCentV0A);
1109 fOutputList->Add(fHOutCentNPAvsCentV0C);
1110 fOutputList->Add(fHOutCentNPAvsCentTRK);
1111 fOutputList->Add(fHOutCentNPAvsCentCND);
1112 fOutputList->Add(fHOutCentNPAvsCentCL1);
1113 fOutputList->Add(fHOutCentZNAvsCentV0A);
1114 fOutputList->Add(fHOutCentZNAvsCentV0C);
1115 fOutputList->Add(fHOutCentZNAvsCentTRK);
1116 fOutputList->Add(fHOutCentZNAvsCentCND);
1117 fOutputList->Add(fHOutCentZNAvsCentCL1);
1118 fOutputList->Add(fHOutCentZNAvsCentZPA);
1120 fOutputList->Add(fHOutMultV0AC);
1121 fOutputList->Add(fHOutMultV0M);
1122 fOutputList->Add(fHOutMultV0A);
1123 fOutputList->Add(fHOutMultV0A0);
1124 fOutputList->Add(fHOutMultV0A123);
1125 fOutputList->Add(fHOutMultV0C);
1126 fOutputList->Add(fHOutMultV0A23);
1127 fOutputList->Add(fHOutMultV0C01);
1128 fOutputList->Add(fHOutMultV0S);
1129 fOutputList->Add(fHOutMultV0MEq);
1130 fOutputList->Add(fHOutMultV0AEq);
1131 fOutputList->Add(fHOutMultV0CEq);
1132 fOutputList->Add(fHOutMultV0Mnc);
1133 fOutputList->Add(fHOutMultV0Anc);
1134 fOutputList->Add(fHOutMultV0Cnc);
1135 fOutputList->Add(fHOutMultV0O);
1136 fOutputList->Add(fHOutMultV0Cells) ;
1137 fOutputList->Add(fHOutMultFMD);
1138 fOutputList->Add(fHOutMultTRK);
1139 fOutputList->Add(fHOutMultTKL);
1140 fOutputList->Add(fHOutMultCL0);
1141 fOutputList->Add(fHOutMultCL1);
1142 fOutputList->Add(fHOutMultCND);
1143 fOutputList->Add(fHOutMultNPA);
1144 fOutputList->Add(fHOutMultZNA);
1145 fOutputList->Add(fHOutMultZNC);
1146 fOutputList->Add(fHOutMultZPA);
1147 fOutputList->Add(fHOutMultZPC);
1148 fOutputList->Add(fHOutMultV0MvsZDN);
1149 fOutputList->Add(fHOutMultZEMvsZDN);
1150 fOutputList->Add(fHOutMultV0MvsZDC);
1151 fOutputList->Add(fHOutMultZEMvsZDC);
1152 fOutputList->Add(fHOutMultZEMvsZDCw);
1153 fOutputList->Add(fHOutMultV0MvsCL1);
1154 fOutputList->Add(fHOutMultV0MvsTRK);
1155 fOutputList->Add(fHOutMultTRKvsCL1);
1156 fOutputList->Add(fHOutMultV0MvsV0O);
1157 fOutputList->Add(fHOutMultV0OvsCL1);
1158 fOutputList->Add(fHOutMultV0OvsTRK);
1159 fOutputList->Add(fHOutMultCL1vsTKL);
1160 fOutputList->Add(fHOutMultZNAvsZPA);
1161 fOutputList->Add(fHOutCentV0Mqual1);
1162 fOutputList->Add(fHOutCentTRKqual1);
1163 fOutputList->Add(fHOutCentCL1qual1);
1164 fOutputList->Add(fHOutMultV0MvsCL1qual1);
1165 fOutputList->Add(fHOutMultV0MvsTRKqual1);
1166 fOutputList->Add(fHOutMultTRKvsCL1qual1);
1167 fOutputList->Add(fHOutCentV0Mqual2);
1168 fOutputList->Add(fHOutCentTRKqual2);
1169 fOutputList->Add(fHOutCentCL1qual2);
1170 fOutputList->Add(fHOutMultV0MvsCL1qual2);
1171 fOutputList->Add(fHOutMultV0MvsTRKqual2);
1172 fOutputList->Add(fHOutMultTRKvsCL1qual2);
1173 fOutputList->Add(fHOutQuality);
1174 fOutputList->Add(fHOutVertex);
1175 fOutputList->Add(fHOutVertexT0);
1177 PostData(1, fOutputList);
1180 fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
1181 fEsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
1182 fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kOff);
1183 // Add SPD requirement
1184 fEsdTrackCutsExtra1 = new AliESDtrackCuts("SPD", "Require 1 cluster in SPD");
1185 fEsdTrackCutsExtra1->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1186 // Add SDD requirement
1187 fEsdTrackCutsExtra2 = new AliESDtrackCuts("SDD", "Require 1 cluster in first layer SDD");
1188 fEsdTrackCutsExtra2->SetClusterRequirementITS(AliESDtrackCuts::kSDD,AliESDtrackCuts::kFirst);
1191 //________________________________________________________________________
1192 void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
1194 // Execute analysis for current event:
1195 if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
1197 Int_t runType = 0; // 0:PbPb, 1:pPb or Pbp
1199 Float_t zncEnergy = 0.; // ZNC Energy
1200 Float_t zpcEnergy = 0.; // ZPC Energy
1201 Float_t znaEnergy = 0.; // ZNA Energy
1202 Float_t zpaEnergy = 0.; // ZPA Energy
1203 Float_t zem1Energy = 0.; // ZEM1 Energy
1204 Float_t zem2Energy = 0.; // ZEM2 Energy
1205 Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2)
1206 Double_t znaTower = 0.; // common PMT of ZNA
1207 Double_t zncTower = 0.; // common PMT of ZNC
1208 Double_t zpaTower = 0.; // common PMT of ZPA
1209 Double_t zpcTower = 0.; // common PMT of ZPC
1210 Bool_t znaFired = kFALSE;
1211 Bool_t zncFired = kFALSE;
1212 Bool_t zpaFired = kFALSE;
1213 Bool_t zpcFired = kFALSE;
1215 Int_t nTracks = 0; // no. tracks
1216 Int_t nTracklets = 0; // no. tracklets
1217 Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers
1218 Int_t nChips[2] = {0,0}; // no. chips on 2 SPD layers
1219 Float_t spdCorr =0; // corrected spd2 multiplicity
1220 Int_t multCND = 0; // no. tracks (candle condition)
1222 Float_t multV0A0 = 0; // multiplicity from V0 reco side A (ring 0)
1223 Float_t multV0A123 = 0; // multiplicity from V0 reco side A (ring 1-2-3)
1224 Float_t multV0A = 0; // multiplicity from V0 reco side A
1225 Float_t multV0C = 0; // multiplicity from V0 reco side C
1226 Float_t multV0A23 = 0; // multiplicity from V0 reco side A (ring 2-3)
1227 Float_t multV0C01 = 0; // multiplicity from V0 reco side C (ring 0-1)
1228 Float_t multV0AEq = 0; // multiplicity from V0 reco side A
1229 Float_t multV0CEq = 0; // multiplicity from V0 reco side C
1230 Float_t multV0A0Corr = 0; // multiplicity from V0 reco side A (ring 0)
1231 Float_t multV0A123Corr = 0; // multiplicity from V0 reco side A (ring 1-2-3)
1232 Float_t multV0A23Corr = 0; // multiplicity from V0 reco side A (ring 2-3)
1233 Float_t multV0C01Corr = 0; // multiplicity from V0 reco side C (ring 0-1)
1234 Float_t multV0SCorr = 0; // multiplicity from V0 reco side A (ring 2-3) & side C (ring 0-1)
1235 Float_t multV0ACorr = 0; // multiplicity from V0 reco side A
1236 Float_t multV0CCorr = 0; // multiplicity from V0 reco side C
1237 Short_t multV0AOnline = 0; // multiplicity from V0 reco side A
1238 Short_t multV0COnline = 0; // multiplicity from V0 reco side C
1239 Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC)
1244 Float_t multFMDA = 0; // multiplicity from FMD on detector A
1245 Float_t multFMDC = 0; // multiplicity from FMD on detector C
1247 Float_t zvtx =0; // z-vertex SPD
1248 Int_t zvtxNcont =0; // contributors to z-vertex SPD
1250 Float_t zvtxT0 =0; // z-vertex T0
1252 Int_t Npart =0; // N. of participants (true MC)
1254 AliCentrality *esdCent = 0;
1256 AliVEvent *event = InputEvent();
1257 AliESDEvent *esd = dynamic_cast<AliESDEvent*>(event);
1258 AliAODEvent *aod = dynamic_cast<AliAODEvent*>(event);
1259 if(fAnalysisInput.CompareTo("ESD")==0){
1261 AliError("No ESD Event");
1264 } else if(fAnalysisInput.CompareTo("AOD")==0){
1266 AliError("No AOD Event");
1272 if (SetupRun(event)<0) {
1273 AliError("Centrality File not available for this run");
1278 if (strcmp(esd->GetESDRun()->GetBeamType(), "A-A") == 0) runType=0;
1280 if (strcmp(esd->GetESDRun()->GetBeamType(), "p-p") == 0) runType=2;
1282 Int_t runNumber = event->GetRunNumber();
1283 if ((runNumber >= 136851 && runNumber <= 139517) || // LHC10h
1284 (runNumber >= 166529 && runNumber <= 170593)) // LHC11h
1286 else if ((runNumber >= 188355 && runNumber <= 188366) || // LHC12h
1287 (runNumber >= 195344 && runNumber <= 197692)) // LHC13h
1292 esdCent = event->GetCentrality();
1294 // ***** Vertex Info
1296 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
1297 zvtx = vtxESD->GetZ();
1298 zvtxNcont = vtxESD->GetNContributors();
1300 const AliAODVertex* spdVtx = aod->GetPrimaryVertexSPD();
1301 zvtx = spdVtx->GetZ();
1302 zvtxNcont = spdVtx->GetNContributors();
1306 AliVVZERO* esdV0 = event->GetVZEROData();
1308 AliError("AliVVZERO not available");
1312 multV0A=esdV0->GetMTotV0A();
1313 multV0C=esdV0->GetMTotV0C();
1315 // excluding innermost V0A ring
1316 for (int i=32; i<40; i++)
1317 multV0A0 += esdV0->GetMultiplicity(i);
1318 for (int i=40; i<64; i++)
1319 multV0A123 += esdV0->GetMultiplicity(i);
1321 for (int i=48; i<64; i++)
1322 multV0A23 += esdV0->GetMultiplicity(i);
1323 for (int i=0; i<16; i++)
1324 multV0C01 += esdV0->GetMultiplicity(i);
1327 multV0A0Corr = AliESDUtils::GetCorrV0A0(multV0A0,zvtx);
1328 multV0A123Corr = AliESDUtils::GetCorrV0A(multV0A123,zvtx);
1329 multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);
1330 multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);
1331 multV0A23Corr = AliESDUtils::GetCorrV0A(multV0A23,zvtx);
1332 multV0C01Corr = AliESDUtils::GetCorrV0C(multV0C01,zvtx);
1333 multV0SCorr = multV0A23Corr + multV0C01Corr;
1334 v0Corr = multV0A+multV0C; // Todo: C.L. not clear why here we do not use the sum of the corrected values?
1336 multV0AOnline=esdV0->GetTriggerChargeA();
1337 multV0COnline=esdV0->GetTriggerChargeC();
1340 for(Int_t i = 0; i < 32; ++i) {
1341 if (esdV0->GetBBFlag(i)) nV0C++;
1342 if (esdV0->GetBBFlag(i+32)) nV0A++;
1345 // Equalized signals
1348 if (esd) { // only for ESD?
1349 for(Int_t iCh = 32; iCh < 64; ++iCh) {
1350 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1353 for(Int_t iCh = 0; iCh < 32; ++iCh) {
1354 Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
1359 for(Int_t iCh = 32; iCh < 64; ++iCh) {
1360 Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
1363 for(Int_t iCh = 0; iCh < 32; ++iCh) {
1364 Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
1368 Bool_t kT0BB = kFALSE;
1371 const AliESDTZERO* esdT0 = esd->GetESDTZERO();
1374 AliError("AliESDTZERO not available");
1377 Int_t trig=esdT0->GetT0Trig();
1378 if(trig&1) kT0BB=kTRUE;
1379 zvtxT0=esdT0->GetT0zVertex();
1381 const AliAODTZERO* esdT0 = aod->GetTZEROData();
1384 AliError("AliAODTZERO not available");
1387 Int_t trig=1;//esdT0->GetT0Trig(); //* Todo: C.L. This info is not in AOD? */
1388 if(trig&1) kT0BB=kTRUE;
1389 zvtxT0=esdT0->GetT0zVertex();
1392 // ***** Trigger info
1393 fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1));
1396 trigStr = esd->GetFiredTriggerClasses();
1398 trigStr = aod->GetFiredTriggerClasses();
1401 fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE;
1402 fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE;
1403 fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE;
1405 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI")) && (fIsSelected))
1407 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected))
1409 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected))
1411 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected))
1413 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected))
1416 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected))
1418 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected))
1420 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected))
1422 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected))
1424 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected))
1426 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected))
1428 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected))
1431 fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE;
1432 if (esdV0->GetTriggerBits() & (1<<8))
1434 if (esdV0->GetTriggerBits() & (1<<6))
1437 if (kT0BB && fCVHNbit)
1439 if (kT0BB && fCVLNbit)
1443 // ***** CB info (tracklets, clusters, chips)
1444 //nTracks = event->GetNumberOfTracks();
1445 nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
1447 AliAODHeader *h = aod->GetHeader();
1448 nTracks = h!=0 ? (Short_t)h->GetTPConlyRefMultiplicity():-1;
1452 Short_t nTrTPCcandle = 0;
1453 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
1455 AliESDtrack* track = esd->GetTrack(iTracks);
1456 if (!track) continue;
1458 if (! fEsdTrackCuts->IsSelected(track) )continue;
1460 if (fEsdTrackCutsExtra1 && fEsdTrackCutsExtra2 &&
1461 !fEsdTrackCutsExtra1->IsSelected(track) &&
1462 !fEsdTrackCutsExtra2->IsSelected(track)) continue;
1464 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1466 multCND = nTrTPCcandle;
1468 Short_t nTrTPCcandle = 0;
1469 for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
1471 AliAODTrack* track = aod->GetTrack(iTracks);
1473 if (!track) continue;
1474 if (!track->TestFilterBit(1<<5) &&
1475 !track->TestFilterBit(1<<6)) continue;
1477 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1479 multCND = nTrTPCcandle;
1483 const AliMultiplicity *mult = esd->GetMultiplicity();
1484 nTracklets = mult->GetNumberOfTracklets();
1486 for(Int_t ilay=0; ilay<6; ilay++){
1487 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1490 for(Int_t ilay=0; ilay<2; ilay++){
1491 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1494 AliAODTracklets *mult = aod->GetTracklets();
1495 nTracklets = mult->GetNumberOfTracklets();
1496 AliAODHeader *h = aod->GetHeader();
1497 for(Int_t ilay=0; ilay<6; ilay++){
1498 nClusters[ilay] = h->GetNumberOfITSClusters(ilay);
1501 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1505 AliESDFMD *fmd = esd->GetFMDData();
1506 Float_t totalMultA = 0;
1507 Float_t totalMultC = 0;
1508 const Float_t fFMDLowCut = 0.4;
1510 for(UShort_t det=1;det<=3;det++) {
1511 Int_t nRings = (det==1 ? 1 : 2);
1512 for (UShort_t ir = 0; ir < nRings; ir++) {
1513 Char_t ring = (ir == 0 ? 'I' : 'O');
1514 UShort_t nsec = (ir == 0 ? 20 : 40);
1515 UShort_t nstr = (ir == 0 ? 512 : 256);
1516 for(UShort_t sec =0; sec < nsec; sec++) {
1517 for(UShort_t strip = 0; strip < nstr; strip++) {
1519 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1520 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1522 Float_t nParticles=0;
1524 if(fmdMult > fFMDLowCut) {
1528 if (det<3) totalMultA = totalMultA + nParticles;
1529 else totalMultC = totalMultC + nParticles;
1535 multFMDA = totalMultA;
1536 multFMDC = totalMultC;
1541 AliESDZDC *esdZDC = esd->GetESDZDC();
1542 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1544 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1545 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1546 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1547 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1549 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1550 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1551 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1552 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1554 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1555 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
1557 for (Int_t j = 0; j < 4; ++j)
1558 if (esdZDC->GetZDCTDCData(12,j) != 0)
1561 for (Int_t j = 0; j < 4; ++j)
1562 if (esdZDC->GetZDCTDCData(10,j) != 0)
1565 for (Int_t j = 0; j < 4; ++j)
1566 if (esdZDC->GetZDCTDCData(13,j) != 0)
1569 for (Int_t j = 0; j < 4; ++j)
1570 if (esdZDC->GetZDCTDCData(11,j) != 0)
1573 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1574 const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
1575 const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy();
1576 const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
1577 if (znaFired) znaTower = ZNAtower[0];
1578 if (zncFired) zncTower = ZNCtower[0];
1579 if (zpaFired) zpaTower = ZPAtower[0];
1580 if (zpcFired) zpcTower = ZPCtower[0];
1583 AliAODHeader *h = aod->GetHeader();
1584 zncEnergy = (Float_t) (h->GetZDCN1Energy());
1585 zpcEnergy = (Float_t) (h->GetZDCP1Energy());
1586 znaEnergy = (Float_t) (h->GetZDCN2Energy());
1587 zpaEnergy = (Float_t) (h->GetZDCP2Energy());
1588 zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
1589 zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
1591 AliAODZDC *aodZDC = aod->GetZDCData();
1592 const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy();
1593 const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
1594 const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy();
1595 const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
1596 znaTower = ZNAtower[0];
1597 zncTower = ZNCtower[0];
1598 zpaTower = ZPAtower[0];
1599 zpcTower = ZPCtower[0];
1601 znaFired = kFALSE; // trick because info is not stored in AOD
1602 zncFired = kFALSE; // trick because info is not stored in AOD
1603 zpaFired = kFALSE; // trick because info is not stored in AOD
1604 zpcFired = kFALSE; // trick because info is not stored in AOD
1605 if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
1606 if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
1607 if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
1608 if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
1613 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1614 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1616 AliMCEvent* mcEvent=0;
1617 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
1618 AliGenHijingEventHeader* hHijing=0;
1619 AliGenDPMjetEventHeader* dpmHeader=0;
1621 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1622 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1623 hHijing = (AliGenHijingEventHeader*)mcGenH;
1624 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1625 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1627 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
1628 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
1629 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
1631 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1632 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
1634 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1635 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
1639 // ***** Scaling for MC
1642 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1643 multV0A0 = multV0A0 * fV0MScaleFactorMC;
1644 multV0A = multV0A * fV0MScaleFactorMC;
1645 multV0C = multV0C * fV0MScaleFactorMC;
1647 // ***** Scaling for Data
1649 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1650 spdCorr = spdCorr / fSPDScaleFactor;
1651 nTracks = Int_t(nTracks / fTPCScaleFactor);
1654 // ***** Centrality Selection
1655 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
1656 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1657 if(fHtempV0A0) fCentV0A0 = fHtempV0A0->GetBinContent(fHtempV0A0->FindBin((multV0A0Corr)));
1658 if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123Corr)));
1659 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
1660 if(fHtempV0A23) fCentV0A23 = fHtempV0A23->GetBinContent(fHtempV0A23->FindBin((multV0A23Corr)));
1661 if(fHtempV0C01) fCentV0C01 = fHtempV0C01->GetBinContent(fHtempV0C01->FindBin((multV0C01Corr)));
1662 if(fHtempV0S) fCentV0S = fHtempV0S->GetBinContent(fHtempV0S->FindBin((multV0SCorr)));
1663 if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
1664 if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
1665 if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
1666 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1667 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1668 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1669 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1670 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1671 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
1673 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1674 else fCentZNA = 101;
1677 if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
1678 else fCentZNC = 101;
1681 if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
1682 else fCentZPA = 101;
1685 if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
1686 else fCentZPC = 101;
1690 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1691 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1692 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1694 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1695 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1696 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1697 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
1698 if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
1699 if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
1700 if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
1701 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1702 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1703 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1704 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1705 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1706 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1707 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
1708 if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
1716 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1718 // ***** outliers, skip in case of MC input
1721 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1723 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1725 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1726 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1727 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1728 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1736 if (aod&&(fDebug>1)) {
1737 Double_t v0m = esdCent->GetCentralityPercentile("V0M");
1738 Double_t cl1 = esdCent->GetCentralityPercentile("CL1");
1739 Double_t trk = esdCent->GetCentralityPercentile("TRK");
1740 Double_t cnd = esdCent->GetCentralityPercentile("CND");
1741 Double_t zna = esdCent->GetCentralityPercentile("ZNA");
1742 printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n",
1743 v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK,
1744 fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
1746 esdCent->SetQuality(fQuality);
1747 esdCent->SetCentralityV0M(fCentV0M);
1748 esdCent->SetCentralityV0A(fCentV0A);
1749 esdCent->SetCentralityV0A0(fCentV0A0);
1750 esdCent->SetCentralityV0A123(fCentV0A123);
1751 esdCent->SetCentralityV0C(fCentV0C);
1752 esdCent->SetCentralityV0A23(fCentV0A23);
1753 esdCent->SetCentralityV0C01(fCentV0C01);
1754 esdCent->SetCentralityV0S(fCentV0S);
1755 esdCent->SetCentralityV0MEq(fCentV0MEq);
1756 esdCent->SetCentralityV0AEq(fCentV0AEq);
1757 esdCent->SetCentralityV0CEq(fCentV0CEq);
1758 esdCent->SetCentralityFMD(fCentFMD);
1759 esdCent->SetCentralityTRK(fCentTRK);
1760 esdCent->SetCentralityTKL(fCentTKL);
1761 esdCent->SetCentralityCL0(fCentCL0);
1762 esdCent->SetCentralityCL1(fCentCL1);
1763 esdCent->SetCentralityCND(fCentCND);
1764 esdCent->SetCentralityNPA(fCentNPA);
1765 esdCent->SetCentralityZNA(fCentZNA);
1766 esdCent->SetCentralityZNC(fCentZNC);
1767 esdCent->SetCentralityZPA(fCentZPA);
1768 esdCent->SetCentralityZPC(fCentZPC);
1769 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1770 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1771 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1774 // filling QA histograms
1777 if (fIsMCInput) { // fill histo with true centrality for simulations
1778 fCentV0M = fCentV0Mtrue;
1779 fCentV0A = fCentV0Atrue;
1780 fCentV0C = fCentV0Ctrue;
1781 fCentV0MEq = fCentV0MEqtrue;
1782 fCentV0AEq = fCentV0AEqtrue;
1783 fCentV0CEq = fCentV0CEqtrue;
1784 fCentFMD = fCentFMDtrue;
1785 fCentTRK = fCentTRKtrue;
1786 fCentTKL = fCentTKLtrue;
1787 fCentCL0 = fCentCL0true;
1788 fCentCL1 = fCentCL1true;
1789 fCentCND = fCentCNDtrue;
1790 fCentZNA = fCentZNAtrue;
1791 fCentZNC = fCentZNCtrue;
1792 fCentZPA = fCentZPAtrue;
1793 fCentZPC = fCentZPCtrue;
1797 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1799 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1800 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1801 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1802 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1803 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1804 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1805 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1806 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1807 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1808 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1809 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1811 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
1812 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) ||
1813 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
1815 fHOutQuality->Fill(fQuality);
1816 fHOutVertex->Fill(zvtx);
1817 fHOutVertexT0->Fill(zvtxT0);
1820 fHOutCentV0M->Fill(fCentV0M);
1821 fHOutCentV0A->Fill(fCentV0A);
1822 fHOutCentV0A0->Fill(fCentV0A0);
1823 fHOutCentV0A123->Fill(fCentV0A123);
1824 fHOutCentV0C->Fill(fCentV0C);
1825 fHOutCentV0A23->Fill(fCentV0A23);
1826 fHOutCentV0C01->Fill(fCentV0C01);
1827 fHOutCentV0S->Fill(fCentV0S);
1828 fHOutCentV0MEq->Fill(fCentV0MEq);
1829 fHOutCentV0AEq->Fill(fCentV0AEq);
1830 fHOutCentV0CEq->Fill(fCentV0CEq);
1832 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1833 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1834 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1835 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1836 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1837 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1838 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1839 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1840 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1841 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1842 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1844 fHOutCentFMD->Fill(fCentFMD);
1845 fHOutCentTRK->Fill(fCentTRK);
1846 fHOutCentTKL->Fill(fCentTKL);
1847 fHOutCentCL0->Fill(fCentCL0);
1848 fHOutCentCL1->Fill(fCentCL1);
1849 fHOutCentCND->Fill(fCentCND);
1850 fHOutCentNPA->Fill(fCentNPA);
1851 fHOutCentZNA->Fill(fCentZNA);
1852 fHOutCentZNC->Fill(fCentZNC);
1853 fHOutCentZPA->Fill(fCentZPA);
1854 fHOutCentZPC->Fill(fCentZPC);
1855 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1856 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1857 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1858 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1859 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1860 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1861 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1862 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1863 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1864 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1865 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1866 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1867 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1868 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
1869 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1870 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1871 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1872 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1873 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
1874 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1875 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1876 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1877 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1878 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
1879 fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
1881 fHOutMultV0AC->Fill(multV0A,multV0C);
1882 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1883 fHOutMultV0A->Fill(multV0ACorr);
1884 fHOutMultV0A0->Fill(multV0A0Corr);
1885 fHOutMultV0A123->Fill(multV0A123Corr);
1886 fHOutMultV0C->Fill(multV0CCorr);
1887 fHOutMultV0A23->Fill(multV0A23Corr);
1888 fHOutMultV0C01->Fill(multV0C01Corr);
1889 fHOutMultV0S->Fill(multV0SCorr);
1890 fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
1891 fHOutMultV0AEq->Fill(multV0AEq);
1892 fHOutMultV0CEq->Fill(multV0CEq);
1893 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1894 fHOutMultV0Anc->Fill(multV0A);
1895 fHOutMultV0Cnc->Fill(multV0C);
1896 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1897 fHOutMultV0Cells->Fill(nV0A,nV0C);
1898 fHOutMultFMD->Fill(multFMDA+multFMDC);
1899 fHOutMultTRK->Fill(nTracks);
1900 fHOutMultTKL->Fill(nTracklets);
1901 fHOutMultCL0->Fill(nClusters[0]);
1902 fHOutMultCL1->Fill(spdCorr);
1903 fHOutMultCND->Fill(multCND);
1904 fHOutMultNPA->Fill(Npart);
1905 if(znaFired)fHOutMultZNA->Fill(znaTower);
1906 if(zncFired)fHOutMultZNC->Fill(zncTower);
1907 if(zpaFired)fHOutMultZPA->Fill(zpaTower);
1908 if(zpcFired)fHOutMultZPC->Fill(zpcTower);
1909 fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
1911 //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1912 fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
1913 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1914 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1915 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1916 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1917 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1918 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1919 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1920 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1921 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1922 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1923 } else if (fQuality%2 == 0) {
1924 fHOutCentV0Mqual1->Fill(fCentV0M);
1925 fHOutCentTRKqual1->Fill(fCentTRK);
1926 fHOutCentCL1qual1->Fill(fCentCL1);
1927 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1928 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1929 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1931 fHOutCentV0Mqual2->Fill(fCentV0M);
1932 fHOutCentTRKqual2->Fill(fCentTRK);
1933 fHOutCentCL1qual2->Fill(fCentCL1);
1934 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1935 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1936 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1939 PostData(1, fOutputList);
1942 //________________________________________________________________________
1943 void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1945 // Terminate analysis
1947 //________________________________________________________________________
1948 Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
1950 // Setup files for run
1955 // check if something to be done
1956 if (fCurrentRun == esd->GetRunNumber())
1959 fCurrentRun = esd->GetRunNumber();
1961 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1962 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1964 AliOADBContainer *con = new AliOADBContainer("OADB");
1965 con->InitFromFile(fileName,"Centrality");
1967 AliOADBCentrality* centOADB = 0;
1968 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1970 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1971 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1974 Bool_t isHijing=kFALSE;
1975 Bool_t isDpmjet=kFALSE;
1976 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1977 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1978 AliMCEvent* mcEvent=0;
1979 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1980 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1981 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1982 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1983 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1988 fUseScaling = centOADB->UseScaling();
1989 fUseCleaning = centOADB->UseCleaning();
1992 fZVCut = centOADB->ZVCut();
1993 fOutliersCut = centOADB->OutliersCut();
1995 // centrality histos
1996 fHtempV0M = centOADB->V0hist();
1997 fHtempV0A = centOADB->V0Ahist();
1998 fHtempV0A0 = centOADB->V0A0hist();
1999 fHtempV0A123 = centOADB->V0A123hist();
2000 fHtempV0C = centOADB->V0Chist();
2001 fHtempV0A23 = centOADB->V0A23hist();
2002 fHtempV0C01 = centOADB->V0C01hist();
2003 fHtempV0S = centOADB->V0Shist();
2004 fHtempV0MEq = centOADB->V0Eqhist();
2005 fHtempV0AEq = centOADB->V0AEqhist();
2006 fHtempV0CEq = centOADB->V0CEqhist();
2007 fHtempTRK = centOADB->TPChist();
2008 fHtempCL1 = centOADB->SPDhist();
2009 fHtempCND = centOADB->CNDhist();
2010 fHtempFMD = centOADB->FMDhist();
2011 fHtempZNA = centOADB->ZNAhist();
2012 fHtempZNC = centOADB->ZNChist();
2013 fHtempZPA = centOADB->ZPAhist();
2014 fHtempZPC = centOADB->ZPChist();
2015 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
2018 fHtempNPA = centOADB->NPAhist();
2019 fHtempV0Mtrue = centOADB->V0histtrue();
2020 fHtempV0Atrue = centOADB->V0Ahisttrue();
2021 fHtempV0Ctrue = centOADB->V0Chisttrue();
2022 fHtempV0MEqtrue = centOADB->V0Eqhisttrue();
2023 fHtempV0AEqtrue = centOADB->V0AEqhisttrue();
2024 fHtempV0CEqtrue = centOADB->V0CEqhisttrue();
2025 fHtempTRKtrue = centOADB->TPChisttrue();
2026 fHtempCL1true = centOADB->SPDhisttrue();
2027 fHtempCNDtrue = centOADB->CNDhisttrue();
2028 fHtempFMDtrue = centOADB->FMDhisttrue();
2029 fHtempZNAtrue = centOADB->ZNAhisttrue();
2030 fHtempZNCtrue = centOADB->ZNChisttrue();
2031 fHtempZPAtrue = centOADB->ZPAhisttrue();
2032 fHtempZPCtrue = centOADB->ZPChisttrue();
2033 } else if (isDpmjet) {
2034 fHtempNPA = centOADB->NPAhistDPM();
2035 fHtempV0Mtrue = centOADB->V0histtrueDPM();
2036 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
2037 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
2038 fHtempV0MEqtrue = centOADB->V0EqhisttrueDPM();
2039 fHtempV0AEqtrue = centOADB->V0AEqhisttrueDPM();
2040 fHtempV0CEqtrue = centOADB->V0CEqhisttrueDPM();
2041 fHtempTRKtrue = centOADB->TPChisttrueDPM();
2042 fHtempCL1true = centOADB->SPDhisttrueDPM();
2043 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
2044 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
2045 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
2046 fHtempZNCtrue = centOADB->ZNChisttrueDPM();
2047 fHtempZPAtrue = centOADB->ZPAhisttrueDPM();
2048 fHtempZPCtrue = centOADB->ZPChisttrueDPM();
2052 TString path = gSystem->ExpandPathName(fileName.Data());
2053 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
2054 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
2055 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
2056 if (!fHtempV0A23) AliWarning(Form("Calibration for V0A23 does not exist in %s", path.Data()));
2057 if (!fHtempV0C01) AliWarning(Form("Calibration for V0C01 does not exist in %s", path.Data()));
2058 if (!fHtempV0S) AliWarning(Form("Calibration for V0S does not exist in %s", path.Data()));
2059 if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
2060 if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
2061 if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
2062 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
2063 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
2064 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
2065 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
2066 if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
2067 if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
2068 if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
2069 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
2070 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
2071 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
2073 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
2074 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
2075 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
2076 if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
2077 if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
2078 if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
2079 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
2080 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
2081 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
2082 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
2083 if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
2084 if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
2085 if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
2086 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
2090 fV0MScaleFactor = centOADB->V0MScaleFactor();
2091 fSPDScaleFactor = centOADB->SPDScaleFactor();
2092 fTPCScaleFactor = centOADB->TPCScaleFactor();
2093 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
2095 // outliers parameters
2096 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
2097 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
2098 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
2099 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
2101 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
2102 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
2103 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
2104 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
2105 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
2106 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
2108 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
2109 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
2110 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
2111 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
2118 //________________________________________________________________________
2119 Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
2122 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
2123 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
2124 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
2130 //________________________________________________________________________
2131 Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
2134 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
2135 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
2136 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
2142 //________________________________________________________________________
2143 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
2146 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
2153 //________________________________________________________________________
2154 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
2157 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;