1 #ifndef ALICENTRALITYSELECTIONTASK_H
2 #define ALICENTRALITYSELECTIONTASK_H
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*****************************************************
8 // Class AliCentralitySelectionTask
9 // author: Alberica Toia
10 //*****************************************************
12 #include "AliAnalysisTaskSE.h"
21 class AliESDtrackCuts;
23 class AliCentralitySelectionTask : public AliAnalysisTaskSE {
27 AliCentralitySelectionTask();
28 AliCentralitySelectionTask(const char *name);
29 AliCentralitySelectionTask& operator= (const AliCentralitySelectionTask& ana);
30 AliCentralitySelectionTask(const AliCentralitySelectionTask& c);
31 virtual ~AliCentralitySelectionTask();
33 // Implementation of interface methods
34 virtual void UserCreateOutputObjects();
35 virtual void UserExec(Option_t *option);
36 virtual void Terminate(Option_t *option);
38 void SetInput(const char* input) {fAnalysisInput = input;}
39 void SetMCInput() {fIsMCInput = kTRUE;}
40 void SetPass(Int_t pass) {fPass = pass;}
41 void DontUseScaling() {fUseScaling=kFALSE;}
42 void DontUseCleaning() {fUseCleaning=kFALSE;}
43 void ReadCentralityHistos(TString filename);
44 void ReadCentralityHistos2(TString filename);
47 Int_t SetupRun(AliESDEvent* const esd);
48 Bool_t IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const;
49 Bool_t IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const;
50 Bool_t IsOutlierV0MZDC(Float_t zdc, Float_t v0) const;
51 Bool_t IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const;
52 Float_t MyGetScaleFactor(Int_t runnumber, Int_t flag) const;
53 void MyInitScaleFactor();
54 Float_t MyGetScaleFactorMC(Int_t runnumber) const;
55 void MyInitScaleFactorMC();
57 TString fAnalysisInput; // "ESD", "AOD"
58 Bool_t fIsMCInput; // true when input is MC
59 Int_t fPass; // pass of reconstruction
60 TFile *fFile; // file that holds the centrality vs multiplicity 1d
61 TFile *fFile2; // file that holds the centrality vs multiplicity 2d
62 Int_t fCurrentRun; // current run number
63 Int_t fRunNo; // reference run number
64 Int_t fLowRunN; // first run
65 Int_t fHighRunN; // last run
66 Bool_t fUseScaling; // flag to use scaling
67 Bool_t fUseCleaning; // flag to use cleanin
68 Float_t fV0MScaleFactor[2667]; // number of runs in PbPb 2010
69 Float_t fSPDScaleFactor[2667]; // number of runs in PbPb 2010
70 Float_t fTPCScaleFactor[2667]; // number of runs in PbPb 2010
71 Float_t fV0MScaleFactorMC[2667]; // number of runs in PbPb 2010
73 AliESDtrackCuts* fTrackCuts; //! optional track cuts
75 Float_t fZVCut; //! z-vertex cut (in cm)
76 Float_t fOutliersCut; //! outliers cut (in n-sigma)
77 Int_t fQuality; //! quality for centrality determination
79 Float_t fCentV0M; // percentile centrality from V0
80 Float_t fCentFMD; // percentile centrality from FMD
81 Float_t fCentTRK; // percentile centrality from tracks
82 Float_t fCentTKL; // percentile centrality from tracklets
83 Float_t fCentCL0; // percentile centrality from clusters in layer 0
84 Float_t fCentCL1; // percentile centrality from clusters in layer 0
85 Float_t fCentV0MvsFMD; // percentile centrality from V0 vs FMD
86 Float_t fCentTKLvsV0M; // percentile centrality from tracklets vs V0
87 Float_t fCentZEMvsZDC; // percentile centrality from ZEM vs ZDC
89 TH1F *fHtempV0M; // histogram with centrality vs multiplicity using V0
90 TH1F *fHtempFMD; // histogram with centrality vs multiplicity using FMD
91 TH1F *fHtempTRK; // histogram with centrality vs multiplicity using tracks
92 TH1F *fHtempTKL; // histogram with centrality vs multiplicity using tracklets
93 TH1F *fHtempCL0; // histogram with centrality vs multiplicity using clusters in layer 0
94 TH1F *fHtempCL1; // histogram with centrality vs multiplicity using clusters in layer 0
95 TH1F *fHtempV0MvsFMD; // histogram with centrality vs multiplicity using V0 vs FMD
96 TH1F *fHtempTKLvsV0M; // histogram with centrality vs multiplicity using tracklets vs V0
97 TH2F *fHtempZEMvsZDC; // histogram with centrality vs multiplicity using ZEM vs ZDC
99 TList *fOutputList; // output list
101 TH1F *fHOutCentV0M ; //control histogram for centrality
102 TH1F *fHOutCentFMD ; //control histogram for centrality
103 TH1F *fHOutCentTRK ; //control histogram for centrality
104 TH1F *fHOutCentTKL ; //control histogram for centrality
105 TH1F *fHOutCentCL0 ; //control histogram for centrality
106 TH1F *fHOutCentCL1 ; //control histogram for centrality
107 TH1F *fHOutCentV0MvsFMD; //control histogram for centrality
108 TH1F *fHOutCentTKLvsV0M; //control histogram for centrality
109 TH1F *fHOutCentZEMvsZDC; //control histogram for centrality
110 TH2F *fHOutCentV0MvsCentCL1; //control histogram for centrality
111 TH2F *fHOutCentV0MvsCentTRK; //control histogram for centrality
112 TH2F *fHOutCentTRKvsCentCL1; //control histogram for centrality
113 TH2F *fHOutCentV0MvsCentZDC; //control histogram for centrality
115 TH1F *fHOutMultV0M ; //control histogram for multiplicity
116 TH1F *fHOutMultV0R ; //control histogram for multiplicity
117 TH1F *fHOutMultFMD ; //control histogram for multiplicity
118 TH1F *fHOutMultTRK ; //control histogram for multiplicity
119 TH1F *fHOutMultTKL ; //control histogram for multiplicity
120 TH1F *fHOutMultCL0 ; //control histogram for multiplicity
121 TH1F *fHOutMultCL1 ; //control histogram for multiplicity
123 TH2F *fHOutMultV0MvsZDN; //control histogram for multiplicity
124 TH2F *fHOutMultZEMvsZDN; //control histogram for multiplicity
125 TH2F *fHOutMultV0MvsZDC; //control histogram for multiplicity
126 TH2F *fHOutMultZEMvsZDC; //control histogram for multiplicity
127 TH2F *fHOutMultZEMvsZDCw; //control histogram for multiplicity
128 TH2F *fHOutMultV0MvsCL1; //control histogram for multiplicity
129 TH2F *fHOutMultV0MvsTRK; //control histogram for multiplicity
130 TH2F *fHOutMultTRKvsCL1; //control histogram for multiplicity
132 TH1F *fHOutCentV0Mqual1 ; //control histogram for centrality quality 1
133 TH1F *fHOutCentTRKqual1 ; //control histogram for centrality quality 1
134 TH1F *fHOutCentCL1qual1 ; //control histogram for centrality quality 1
135 TH2F *fHOutMultV0MvsCL1qual1; //control histogram for multiplicity quality 1
136 TH2F *fHOutMultV0MvsTRKqual1; //control histogram for multiplicity quality 1
137 TH2F *fHOutMultTRKvsCL1qual1; //control histogram for multiplicity quality 1
139 TH1F *fHOutCentV0Mqual2 ; //control histogram for centrality quality 2
140 TH1F *fHOutCentTRKqual2 ; //control histogram for centrality quality 2
141 TH1F *fHOutCentCL1qual2 ; //control histogram for centrality quality 2
142 TH2F *fHOutMultV0MvsCL1qual2; //control histogram for multiplicity quality 2
143 TH2F *fHOutMultV0MvsTRKqual2; //control histogram for multiplicity quality 2
144 TH2F *fHOutMultTRKvsCL1qual2; //control histogram for multiplicity quality 2
146 TH1F *fHOutQuality ; //control histogram for quality
147 TH1F *fHOutVertex ; //control histogram for vertex
149 ClassDef(AliCentralitySelectionTask, 10);