class TFile;
class TH1F;
+class TH2F;
class TList;
class TString;
class AliESDEvent;
+class AliESDtrackCuts;
class AliCentralitySelectionTask : public AliAnalysisTaskSE {
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
- virtual void SetDebugLevel(Int_t level) {fDebug = level;}
void SetInput(const char* input) {fAnalysisInput = input;}
void SetMCInput() {fIsMCInput = kTRUE;}
-
- void SetPercentileFile(TString filename);
- void SetPercentileFile2(TString filename);
- void ReadCentralityHistos();
- void ReadCentralityHistos2();
-
- void AddPercentileFileToList(TString filename) { fFileList->Add(new TObjString(filename)); }
- void AddPercentileFile2ToList(TString filename) { fFileList2->Add(new TObjString(filename)); }
-
+ void SetPass(Int_t pass) {fPass = pass;}
+ void DontUseScaling() {fUseScaling=kFALSE;}
+ void DontUseCleaning() {fUseCleaning=kFALSE;}
+ void ReadCentralityHistos(TString filename);
+ void ReadCentralityHistos2(TString filename);
private:
- Int_t SetupRun(AliESDEvent* esd);
+ Int_t SetupRun(AliESDEvent* const esd);
+ Bool_t IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const;
+ Bool_t IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const;
+ Bool_t IsOutlierV0MZDC(Float_t zdc, Float_t v0) const;
+ Bool_t IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const;
+ Float_t MyGetScaleFactor(Int_t runnumber, Int_t flag) const;
+ void MyInitScaleFactor();
+ Float_t MyGetScaleFactorMC(Int_t runnumber) const;
+ void MyInitScaleFactorMC();
- Int_t fDebug; // Debug flag
TString fAnalysisInput; // "ESD", "AOD"
Bool_t fIsMCInput; // true when input is MC
+ Int_t fPass; // pass of reconstruction
TFile *fFile; // file that holds the centrality vs multiplicity 1d
- TFile *fFile2; // file that holds the centrality vs multiplicity 2d
- TString fCentfilename; // name of this file 1d
- TString fCentfilename2; // name of this file 2d
-
- TList* fFileList; //! list of input files names
- TList* fFileList2; //! list of input files 2 names
+ TFile *fFile2; // file that holds the centrality vs multiplicity 2d
Int_t fCurrentRun; // current run number
+ Int_t fRunNo; // reference run number
+ Int_t fLowRunN; // first run
+ Int_t fHighRunN; // last run
+ Bool_t fUseScaling; // flag to use scaling
+ Bool_t fUseCleaning; // flag to use cleanin
+ Float_t fV0MScaleFactor[2667]; // number of runs in PbPb 2010
+ Float_t fSPDScaleFactor[2667]; // number of runs in PbPb 2010
+ Float_t fTPCScaleFactor[2667]; // number of runs in PbPb 2010
+ Float_t fV0MScaleFactorMC[2667]; // number of runs in PbPb 2010
+
+ AliESDtrackCuts* fTrackCuts; //! optional track cuts
+
+ Float_t fZVCut; //! z-vertex cut (in cm)
+ Float_t fOutliersCut; //! outliers cut (in n-sigma)
+ Int_t fQuality; //! quality for centrality determination
Float_t fCentV0M; // percentile centrality from V0
Float_t fCentFMD; // percentile centrality from FMD
TH1F *fHtempCL1; // histogram with centrality vs multiplicity using clusters in layer 0
TH1F *fHtempV0MvsFMD; // histogram with centrality vs multiplicity using V0 vs FMD
TH1F *fHtempTKLvsV0M; // histogram with centrality vs multiplicity using tracklets vs V0
- TH1F *fHtempZEMvsZDC; // histogram with centrality vs multiplicity using ZEM vs ZDC
-
- ClassDef(AliCentralitySelectionTask,1);
+ TH2F *fHtempZEMvsZDC; // histogram with centrality vs multiplicity using ZEM vs ZDC
+ TList *fOutputList; // output list
+
+ TH1F *fHOutCentV0M ; //control histogram for centrality
+ TH1F *fHOutCentFMD ; //control histogram for centrality
+ TH1F *fHOutCentTRK ; //control histogram for centrality
+ TH1F *fHOutCentTKL ; //control histogram for centrality
+ TH1F *fHOutCentCL0 ; //control histogram for centrality
+ TH1F *fHOutCentCL1 ; //control histogram for centrality
+ TH1F *fHOutCentV0MvsFMD; //control histogram for centrality
+ TH1F *fHOutCentTKLvsV0M; //control histogram for centrality
+ TH1F *fHOutCentZEMvsZDC; //control histogram for centrality
+ TH2F *fHOutCentV0MvsCentCL1; //control histogram for centrality
+ TH2F *fHOutCentV0MvsCentTRK; //control histogram for centrality
+ TH2F *fHOutCentTRKvsCentCL1; //control histogram for centrality
+ TH2F *fHOutCentV0MvsCentZDC; //control histogram for centrality
+
+ TH1F *fHOutMultV0M ; //control histogram for multiplicity
+ TH1F *fHOutMultV0R ; //control histogram for multiplicity
+ TH1F *fHOutMultFMD ; //control histogram for multiplicity
+ TH1F *fHOutMultTRK ; //control histogram for multiplicity
+ TH1F *fHOutMultTKL ; //control histogram for multiplicity
+ TH1F *fHOutMultCL0 ; //control histogram for multiplicity
+ TH1F *fHOutMultCL1 ; //control histogram for multiplicity
+
+ TH2F *fHOutMultV0MvsZDN; //control histogram for multiplicity
+ TH2F *fHOutMultZEMvsZDN; //control histogram for multiplicity
+ TH2F *fHOutMultV0MvsZDC; //control histogram for multiplicity
+ TH2F *fHOutMultZEMvsZDC; //control histogram for multiplicity
+ TH2F *fHOutMultZEMvsZDCw; //control histogram for multiplicity
+ TH2F *fHOutMultV0MvsCL1; //control histogram for multiplicity
+ TH2F *fHOutMultV0MvsTRK; //control histogram for multiplicity
+ TH2F *fHOutMultTRKvsCL1; //control histogram for multiplicity
+
+ TH1F *fHOutCentV0Mqual1 ; //control histogram for centrality quality 1
+ TH1F *fHOutCentTRKqual1 ; //control histogram for centrality quality 1
+ TH1F *fHOutCentCL1qual1 ; //control histogram for centrality quality 1
+ TH2F *fHOutMultV0MvsCL1qual1; //control histogram for multiplicity quality 1
+ TH2F *fHOutMultV0MvsTRKqual1; //control histogram for multiplicity quality 1
+ TH2F *fHOutMultTRKvsCL1qual1; //control histogram for multiplicity quality 1
+
+ TH1F *fHOutCentV0Mqual2 ; //control histogram for centrality quality 2
+ TH1F *fHOutCentTRKqual2 ; //control histogram for centrality quality 2
+ TH1F *fHOutCentCL1qual2 ; //control histogram for centrality quality 2
+ TH2F *fHOutMultV0MvsCL1qual2; //control histogram for multiplicity quality 2
+ TH2F *fHOutMultV0MvsTRKqual2; //control histogram for multiplicity quality 2
+ TH2F *fHOutMultTRKvsCL1qual2; //control histogram for multiplicity quality 2
+
+ TH1F *fHOutQuality ; //control histogram for quality
+ TH1F *fHOutVertex ; //control histogram for vertex
+
+ ClassDef(AliCentralitySelectionTask, 10);
};
#endif