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 = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1448 if(!h) AliFatal("Not a standard AOD");
1449 nTracks = h!=0 ? (Short_t)h->GetTPConlyRefMultiplicity():-1;
1453 Short_t nTrTPCcandle = 0;
1454 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
1456 AliESDtrack* track = esd->GetTrack(iTracks);
1457 if (!track) continue;
1459 if (! fEsdTrackCuts->IsSelected(track) )continue;
1461 if (fEsdTrackCutsExtra1 && fEsdTrackCutsExtra2 &&
1462 !fEsdTrackCutsExtra1->IsSelected(track) &&
1463 !fEsdTrackCutsExtra2->IsSelected(track)) continue;
1465 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1467 multCND = nTrTPCcandle;
1469 Short_t nTrTPCcandle = 0;
1470 for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
1472 AliAODTrack* track = dynamic_cast<AliAODTrack*>(aod->GetTrack(iTracks));
1473 if(!track) AliFatal("Not a standard AOD");
1475 if (!track) continue;
1476 if (!track->TestFilterBit(1<<5) &&
1477 !track->TestFilterBit(1<<6)) continue;
1479 if (track->Pt() > 0.4 && TMath::Abs(track->Eta()) < 0.9) nTrTPCcandle++;
1481 multCND = nTrTPCcandle;
1485 const AliMultiplicity *mult = esd->GetMultiplicity();
1486 nTracklets = mult->GetNumberOfTracklets();
1488 for(Int_t ilay=0; ilay<6; ilay++){
1489 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1492 for(Int_t ilay=0; ilay<2; ilay++){
1493 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1496 AliAODTracklets *mult = aod->GetTracklets();
1497 nTracklets = mult->GetNumberOfTracklets();
1498 AliAODHeader *h = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1499 if(!h) AliFatal("Not a standard AOD");
1500 for(Int_t ilay=0; ilay<6; ilay++){
1501 nClusters[ilay] = h->GetNumberOfITSClusters(ilay);
1504 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1508 AliESDFMD *fmd = esd->GetFMDData();
1509 Float_t totalMultA = 0;
1510 Float_t totalMultC = 0;
1511 const Float_t fFMDLowCut = 0.4;
1513 for(UShort_t det=1;det<=3;det++) {
1514 Int_t nRings = (det==1 ? 1 : 2);
1515 for (UShort_t ir = 0; ir < nRings; ir++) {
1516 Char_t ring = (ir == 0 ? 'I' : 'O');
1517 UShort_t nsec = (ir == 0 ? 20 : 40);
1518 UShort_t nstr = (ir == 0 ? 512 : 256);
1519 for(UShort_t sec =0; sec < nsec; sec++) {
1520 for(UShort_t strip = 0; strip < nstr; strip++) {
1522 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1523 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1525 Float_t nParticles=0;
1527 if(fmdMult > fFMDLowCut) {
1531 if (det<3) totalMultA = totalMultA + nParticles;
1532 else totalMultC = totalMultC + nParticles;
1538 multFMDA = totalMultA;
1539 multFMDC = totalMultC;
1544 AliESDZDC *esdZDC = esd->GetESDZDC();
1545 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1547 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1548 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1549 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1550 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1552 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1553 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1554 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1555 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1557 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1558 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
1560 for (Int_t j = 0; j < 4; ++j)
1561 if (esdZDC->GetZDCTDCData(12,j) != 0)
1564 for (Int_t j = 0; j < 4; ++j)
1565 if (esdZDC->GetZDCTDCData(10,j) != 0)
1568 for (Int_t j = 0; j < 4; ++j)
1569 if (esdZDC->GetZDCTDCData(13,j) != 0)
1572 for (Int_t j = 0; j < 4; ++j)
1573 if (esdZDC->GetZDCTDCData(11,j) != 0)
1576 const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy();
1577 const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
1578 const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy();
1579 const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
1580 if (znaFired) znaTower = ZNAtower[0];
1581 if (zncFired) zncTower = ZNCtower[0];
1582 if (zpaFired) zpaTower = ZPAtower[0];
1583 if (zpcFired) zpcTower = ZPCtower[0];
1586 AliAODHeader *h = dynamic_cast<AliAODHeader*>(aod->GetHeader());
1587 if(!h) AliFatal("Not a standard AOD");
1588 zncEnergy = (Float_t) (h->GetZDCN1Energy());
1589 zpcEnergy = (Float_t) (h->GetZDCP1Energy());
1590 znaEnergy = (Float_t) (h->GetZDCN2Energy());
1591 zpaEnergy = (Float_t) (h->GetZDCP2Energy());
1592 zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
1593 zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
1595 AliAODZDC *aodZDC = aod->GetZDCData();
1596 const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy();
1597 const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
1598 const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy();
1599 const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
1600 znaTower = ZNAtower[0];
1601 zncTower = ZNCtower[0];
1602 zpaTower = ZPAtower[0];
1603 zpcTower = ZPCtower[0];
1605 znaFired = kFALSE; // trick because info is not stored in AOD
1606 zncFired = kFALSE; // trick because info is not stored in AOD
1607 zpaFired = kFALSE; // trick because info is not stored in AOD
1608 zpcFired = kFALSE; // trick because info is not stored in AOD
1609 if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
1610 if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
1611 if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
1612 if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
1617 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1618 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1620 AliMCEvent* mcEvent=0;
1621 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
1622 AliGenHijingEventHeader* hHijing=0;
1623 AliGenDPMjetEventHeader* dpmHeader=0;
1625 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1626 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class()))
1627 hHijing = (AliGenHijingEventHeader*)mcGenH;
1628 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1629 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1631 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
1632 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
1633 if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
1635 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
1636 dpmHeader = (AliGenDPMjetEventHeader*)mcGenH;
1638 if(hHijing) Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1639 if(dpmHeader) Npart = dpmHeader->ProjectileParticipants()+ dpmHeader->TargetParticipants();
1643 // ***** Scaling for MC
1646 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
1647 multV0A0 = multV0A0 * fV0MScaleFactorMC;
1648 multV0A = multV0A * fV0MScaleFactorMC;
1649 multV0C = multV0C * fV0MScaleFactorMC;
1651 // ***** Scaling for Data
1653 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1654 spdCorr = spdCorr / fSPDScaleFactor;
1655 nTracks = Int_t(nTracks / fTPCScaleFactor);
1658 // ***** Centrality Selection
1659 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
1660 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1661 if(fHtempV0A0) fCentV0A0 = fHtempV0A0->GetBinContent(fHtempV0A0->FindBin((multV0A0Corr)));
1662 if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123Corr)));
1663 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
1664 if(fHtempV0A23) fCentV0A23 = fHtempV0A23->GetBinContent(fHtempV0A23->FindBin((multV0A23Corr)));
1665 if(fHtempV0C01) fCentV0C01 = fHtempV0C01->GetBinContent(fHtempV0C01->FindBin((multV0C01Corr)));
1666 if(fHtempV0S) fCentV0S = fHtempV0S->GetBinContent(fHtempV0S->FindBin((multV0SCorr)));
1667 if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
1668 if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
1669 if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
1670 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1671 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1672 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1673 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1674 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1675 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
1677 if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
1678 else fCentZNA = 101;
1681 if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
1682 else fCentZNC = 101;
1685 if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
1686 else fCentZPA = 101;
1689 if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
1690 else fCentZPC = 101;
1694 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1695 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1696 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1698 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
1699 if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
1700 if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
1701 if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
1702 if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
1703 if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
1704 if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
1705 if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
1706 if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
1707 if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
1708 if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
1709 if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
1710 if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
1711 if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
1712 if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
1720 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1722 // ***** outliers, skip in case of MC input
1725 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1727 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1729 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1730 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1731 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1732 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1740 if (aod&&(fDebug>1)) {
1741 Double_t v0m = esdCent->GetCentralityPercentile("V0M");
1742 Double_t cl1 = esdCent->GetCentralityPercentile("CL1");
1743 Double_t trk = esdCent->GetCentralityPercentile("TRK");
1744 Double_t cnd = esdCent->GetCentralityPercentile("CND");
1745 Double_t zna = esdCent->GetCentralityPercentile("ZNA");
1746 printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n",
1747 v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK,
1748 fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
1750 esdCent->SetQuality(fQuality);
1751 esdCent->SetCentralityV0M(fCentV0M);
1752 esdCent->SetCentralityV0A(fCentV0A);
1753 esdCent->SetCentralityV0A0(fCentV0A0);
1754 esdCent->SetCentralityV0A123(fCentV0A123);
1755 esdCent->SetCentralityV0C(fCentV0C);
1756 esdCent->SetCentralityV0A23(fCentV0A23);
1757 esdCent->SetCentralityV0C01(fCentV0C01);
1758 esdCent->SetCentralityV0S(fCentV0S);
1759 esdCent->SetCentralityV0MEq(fCentV0MEq);
1760 esdCent->SetCentralityV0AEq(fCentV0AEq);
1761 esdCent->SetCentralityV0CEq(fCentV0CEq);
1762 esdCent->SetCentralityFMD(fCentFMD);
1763 esdCent->SetCentralityTRK(fCentTRK);
1764 esdCent->SetCentralityTKL(fCentTKL);
1765 esdCent->SetCentralityCL0(fCentCL0);
1766 esdCent->SetCentralityCL1(fCentCL1);
1767 esdCent->SetCentralityCND(fCentCND);
1768 esdCent->SetCentralityNPA(fCentNPA);
1769 esdCent->SetCentralityZNA(fCentZNA);
1770 esdCent->SetCentralityZNC(fCentZNC);
1771 esdCent->SetCentralityZPA(fCentZPA);
1772 esdCent->SetCentralityZPC(fCentZPC);
1773 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1774 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1775 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1778 // filling QA histograms
1781 if (fIsMCInput) { // fill histo with true centrality for simulations
1782 fCentV0M = fCentV0Mtrue;
1783 fCentV0A = fCentV0Atrue;
1784 fCentV0C = fCentV0Ctrue;
1785 fCentV0MEq = fCentV0MEqtrue;
1786 fCentV0AEq = fCentV0AEqtrue;
1787 fCentV0CEq = fCentV0CEqtrue;
1788 fCentFMD = fCentFMDtrue;
1789 fCentTRK = fCentTRKtrue;
1790 fCentTKL = fCentTKLtrue;
1791 fCentCL0 = fCentCL0true;
1792 fCentCL1 = fCentCL1true;
1793 fCentCND = fCentCNDtrue;
1794 fCentZNA = fCentZNAtrue;
1795 fCentZNC = fCentZNCtrue;
1796 fCentZPA = fCentZPAtrue;
1797 fCentZPC = fCentZPCtrue;
1801 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1803 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1804 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1805 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1806 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1807 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1808 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1809 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1810 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1811 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1812 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1813 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1815 if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
1816 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) ||
1817 ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
1819 fHOutQuality->Fill(fQuality);
1820 fHOutVertex->Fill(zvtx);
1821 fHOutVertexT0->Fill(zvtxT0);
1824 fHOutCentV0M->Fill(fCentV0M);
1825 fHOutCentV0A->Fill(fCentV0A);
1826 fHOutCentV0A0->Fill(fCentV0A0);
1827 fHOutCentV0A123->Fill(fCentV0A123);
1828 fHOutCentV0C->Fill(fCentV0C);
1829 fHOutCentV0A23->Fill(fCentV0A23);
1830 fHOutCentV0C01->Fill(fCentV0C01);
1831 fHOutCentV0S->Fill(fCentV0S);
1832 fHOutCentV0MEq->Fill(fCentV0MEq);
1833 fHOutCentV0AEq->Fill(fCentV0AEq);
1834 fHOutCentV0CEq->Fill(fCentV0CEq);
1836 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1837 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1838 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1839 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1840 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1841 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1842 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1843 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1844 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1845 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1846 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1848 fHOutCentFMD->Fill(fCentFMD);
1849 fHOutCentTRK->Fill(fCentTRK);
1850 fHOutCentTKL->Fill(fCentTKL);
1851 fHOutCentCL0->Fill(fCentCL0);
1852 fHOutCentCL1->Fill(fCentCL1);
1853 fHOutCentCND->Fill(fCentCND);
1854 fHOutCentNPA->Fill(fCentNPA);
1855 fHOutCentZNA->Fill(fCentZNA);
1856 fHOutCentZNC->Fill(fCentZNC);
1857 fHOutCentZPA->Fill(fCentZPA);
1858 fHOutCentZPC->Fill(fCentZPC);
1859 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1860 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1861 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1862 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1863 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1864 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1865 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1866 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1867 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1868 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1869 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1870 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1871 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1872 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
1873 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1874 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1875 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1876 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1877 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
1878 fHOutCentZNAvsCentV0A->Fill(fCentZNA,fCentV0A);
1879 fHOutCentZNAvsCentV0C->Fill(fCentZNA,fCentV0C);
1880 fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
1881 fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
1882 fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
1883 fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
1885 fHOutMultV0AC->Fill(multV0A,multV0C);
1886 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1887 fHOutMultV0A->Fill(multV0ACorr);
1888 fHOutMultV0A0->Fill(multV0A0Corr);
1889 fHOutMultV0A123->Fill(multV0A123Corr);
1890 fHOutMultV0C->Fill(multV0CCorr);
1891 fHOutMultV0A23->Fill(multV0A23Corr);
1892 fHOutMultV0C01->Fill(multV0C01Corr);
1893 fHOutMultV0S->Fill(multV0SCorr);
1894 fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
1895 fHOutMultV0AEq->Fill(multV0AEq);
1896 fHOutMultV0CEq->Fill(multV0CEq);
1897 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1898 fHOutMultV0Anc->Fill(multV0A);
1899 fHOutMultV0Cnc->Fill(multV0C);
1900 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1901 fHOutMultV0Cells->Fill(nV0A,nV0C);
1902 fHOutMultFMD->Fill(multFMDA+multFMDC);
1903 fHOutMultTRK->Fill(nTracks);
1904 fHOutMultTKL->Fill(nTracklets);
1905 fHOutMultCL0->Fill(nClusters[0]);
1906 fHOutMultCL1->Fill(spdCorr);
1907 fHOutMultCND->Fill(multCND);
1908 fHOutMultNPA->Fill(Npart);
1909 if(znaFired)fHOutMultZNA->Fill(znaTower);
1910 if(zncFired)fHOutMultZNC->Fill(zncTower);
1911 if(zpaFired)fHOutMultZPA->Fill(zpaTower);
1912 if(zpcFired)fHOutMultZPC->Fill(zpcTower);
1913 fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
1915 //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1916 fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
1917 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1918 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1919 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1920 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1921 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1922 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1923 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1924 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1925 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1926 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1927 } else if (fQuality%2 == 0) {
1928 fHOutCentV0Mqual1->Fill(fCentV0M);
1929 fHOutCentTRKqual1->Fill(fCentTRK);
1930 fHOutCentCL1qual1->Fill(fCentCL1);
1931 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1932 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1933 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1935 fHOutCentV0Mqual2->Fill(fCentV0M);
1936 fHOutCentTRKqual2->Fill(fCentTRK);
1937 fHOutCentCL1qual2->Fill(fCentCL1);
1938 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1939 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1940 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1943 PostData(1, fOutputList);
1946 //________________________________________________________________________
1947 void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1949 // Terminate analysis
1951 //________________________________________________________________________
1952 Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
1954 // Setup files for run
1959 // check if something to be done
1960 if (fCurrentRun == esd->GetRunNumber())
1963 fCurrentRun = esd->GetRunNumber();
1965 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1966 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1968 AliOADBContainer *con = new AliOADBContainer("OADB");
1969 con->InitFromFile(fileName,"Centrality");
1971 AliOADBCentrality* centOADB = 0;
1972 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1974 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1975 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1978 Bool_t isHijing=kFALSE;
1979 Bool_t isDpmjet=kFALSE;
1980 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1981 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1982 AliMCEvent* mcEvent=0;
1983 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {
1984 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1985 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
1986 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
1987 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
1992 fUseScaling = centOADB->UseScaling();
1993 fUseCleaning = centOADB->UseCleaning();
1996 fZVCut = centOADB->ZVCut();
1997 fOutliersCut = centOADB->OutliersCut();
1999 // centrality histos
2000 fHtempV0M = centOADB->V0hist();
2001 fHtempV0A = centOADB->V0Ahist();
2002 fHtempV0A0 = centOADB->V0A0hist();
2003 fHtempV0A123 = centOADB->V0A123hist();
2004 fHtempV0C = centOADB->V0Chist();
2005 fHtempV0A23 = centOADB->V0A23hist();
2006 fHtempV0C01 = centOADB->V0C01hist();
2007 fHtempV0S = centOADB->V0Shist();
2008 fHtempV0MEq = centOADB->V0Eqhist();
2009 fHtempV0AEq = centOADB->V0AEqhist();
2010 fHtempV0CEq = centOADB->V0CEqhist();
2011 fHtempTRK = centOADB->TPChist();
2012 fHtempCL1 = centOADB->SPDhist();
2013 fHtempCND = centOADB->CNDhist();
2014 fHtempFMD = centOADB->FMDhist();
2015 fHtempZNA = centOADB->ZNAhist();
2016 fHtempZNC = centOADB->ZNChist();
2017 fHtempZPA = centOADB->ZPAhist();
2018 fHtempZPC = centOADB->ZPChist();
2019 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
2022 fHtempNPA = centOADB->NPAhist();
2023 fHtempV0Mtrue = centOADB->V0histtrue();
2024 fHtempV0Atrue = centOADB->V0Ahisttrue();
2025 fHtempV0Ctrue = centOADB->V0Chisttrue();
2026 fHtempV0MEqtrue = centOADB->V0Eqhisttrue();
2027 fHtempV0AEqtrue = centOADB->V0AEqhisttrue();
2028 fHtempV0CEqtrue = centOADB->V0CEqhisttrue();
2029 fHtempTRKtrue = centOADB->TPChisttrue();
2030 fHtempCL1true = centOADB->SPDhisttrue();
2031 fHtempCNDtrue = centOADB->CNDhisttrue();
2032 fHtempFMDtrue = centOADB->FMDhisttrue();
2033 fHtempZNAtrue = centOADB->ZNAhisttrue();
2034 fHtempZNCtrue = centOADB->ZNChisttrue();
2035 fHtempZPAtrue = centOADB->ZPAhisttrue();
2036 fHtempZPCtrue = centOADB->ZPChisttrue();
2037 } else if (isDpmjet) {
2038 fHtempNPA = centOADB->NPAhistDPM();
2039 fHtempV0Mtrue = centOADB->V0histtrueDPM();
2040 fHtempV0Atrue = centOADB->V0AhisttrueDPM();
2041 fHtempV0Ctrue = centOADB->V0ChisttrueDPM();
2042 fHtempV0MEqtrue = centOADB->V0EqhisttrueDPM();
2043 fHtempV0AEqtrue = centOADB->V0AEqhisttrueDPM();
2044 fHtempV0CEqtrue = centOADB->V0CEqhisttrueDPM();
2045 fHtempTRKtrue = centOADB->TPChisttrueDPM();
2046 fHtempCL1true = centOADB->SPDhisttrueDPM();
2047 fHtempCNDtrue = centOADB->CNDhisttrueDPM();
2048 fHtempFMDtrue = centOADB->FMDhisttrueDPM();
2049 fHtempZNAtrue = centOADB->ZNAhisttrueDPM();
2050 fHtempZNCtrue = centOADB->ZNChisttrueDPM();
2051 fHtempZPAtrue = centOADB->ZPAhisttrueDPM();
2052 fHtempZPCtrue = centOADB->ZPChisttrueDPM();
2056 TString path = gSystem->ExpandPathName(fileName.Data());
2057 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
2058 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
2059 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
2060 if (!fHtempV0A23) AliWarning(Form("Calibration for V0A23 does not exist in %s", path.Data()));
2061 if (!fHtempV0C01) AliWarning(Form("Calibration for V0C01 does not exist in %s", path.Data()));
2062 if (!fHtempV0S) AliWarning(Form("Calibration for V0S does not exist in %s", path.Data()));
2063 if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
2064 if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
2065 if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
2066 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
2067 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
2068 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
2069 if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
2070 if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
2071 if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
2072 if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
2073 if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
2074 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
2075 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
2077 if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
2078 if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
2079 if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
2080 if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
2081 if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
2082 if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
2083 if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
2084 if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
2085 if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
2086 if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
2087 if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
2088 if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
2089 if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
2090 if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
2094 fV0MScaleFactor = centOADB->V0MScaleFactor();
2095 fSPDScaleFactor = centOADB->SPDScaleFactor();
2096 fTPCScaleFactor = centOADB->TPCScaleFactor();
2097 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
2099 // outliers parameters
2100 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
2101 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
2102 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
2103 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
2105 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
2106 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
2107 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
2108 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
2109 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
2110 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
2112 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
2113 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
2114 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
2115 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
2122 //________________________________________________________________________
2123 Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
2126 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
2127 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
2128 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
2134 //________________________________________________________________________
2135 Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
2138 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
2139 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
2140 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
2146 //________________________________________________________________________
2147 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
2150 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
2157 //________________________________________________________________________
2158 Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
2161 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;