Restoring previous fixes that were lost during one of the last commits in this class...
[u/mrichter/AliRoot.git] / ANALYSIS / AliCentralitySelectionTask.h
1 #ifndef ALICENTRALITYSELECTIONTASK_H
2 #define ALICENTRALITYSELECTIONTASK_H
3
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //*****************************************************
8 //   Class AliCentralitySelectionTask
9 //   author: Alberica Toia
10 //*****************************************************
11
12 #include "AliAnalysisTaskSE.h"
13
14 class TFile;
15 class TH1F;
16 class TH2F;
17 class TList;
18 class TString;
19
20 class AliESDEvent;
21 class AliESDtrackCuts;
22
23 class AliCentralitySelectionTask : public AliAnalysisTaskSE {
24
25  public:
26
27   AliCentralitySelectionTask();
28   AliCentralitySelectionTask(const char *name);
29   AliCentralitySelectionTask& operator= (const AliCentralitySelectionTask& ana);
30   AliCentralitySelectionTask(const AliCentralitySelectionTask& c);
31   virtual ~AliCentralitySelectionTask();
32
33   // Implementation of interface methods
34   virtual void UserCreateOutputObjects();
35   virtual void UserExec(Option_t *option);
36   virtual void Terminate(Option_t *option);
37
38   virtual void  SetDebugLevel(Int_t level) {fDebug = level;}
39   void SetInput(const char* input)         {fAnalysisInput = input;}
40   void SetMCInput()                        {fIsMCInput = kTRUE;}
41   
42   void ReadCentralityHistos(TString filename);
43   void ReadCentralityHistos2(TString filename);
44   
45   static Float_t GetCorrV0(const AliESDEvent* esd, float &v0CorrResc);
46   Float_t GetCorrSPD2(Float_t spd2raw,Float_t zv);
47
48  private:
49
50   Int_t SetupRun(AliESDEvent* esd);
51
52   Int_t    fDebug;              // Debug flag
53   TString  fAnalysisInput;      // "ESD", "AOD"
54   Bool_t   fIsMCInput;          // true when input is MC
55   TFile   *fFile;               // file that holds the centrality vs multiplicity 1d
56   TFile   *fFile2;              // file that holds the centrality vs multiplicity 2d  
57   Int_t    fCurrentRun;         // current run number
58   Int_t    fRunNo;              // reference run number
59
60   AliESDtrackCuts* fTrackCuts;             //! optional track cuts
61
62   Float_t  fCentV0M;            // percentile centrality from V0
63   Float_t  fCentFMD;            // percentile centrality from FMD
64   Float_t  fCentTRK;            // percentile centrality from tracks
65   Float_t  fCentTKL;            // percentile centrality from tracklets
66   Float_t  fCentCL0;            // percentile centrality from clusters in layer 0
67   Float_t  fCentCL1;            // percentile centrality from clusters in layer 0
68   Float_t  fCentV0MvsFMD;       // percentile centrality from V0 vs FMD
69   Float_t  fCentTKLvsV0M;       // percentile centrality from tracklets vs V0
70   Float_t  fCentZEMvsZDC;       // percentile centrality from ZEM vs ZDC
71
72   TH1F    *fHtempV0M;           // histogram with centrality vs multiplicity using V0
73   TH1F    *fHtempFMD;           // histogram with centrality vs multiplicity using FMD
74   TH1F    *fHtempTRK;           // histogram with centrality vs multiplicity using tracks
75   TH1F    *fHtempTKL;           // histogram with centrality vs multiplicity using tracklets
76   TH1F    *fHtempCL0;           // histogram with centrality vs multiplicity using clusters in layer 0
77   TH1F    *fHtempCL1;           // histogram with centrality vs multiplicity using clusters in layer 0
78   TH1F    *fHtempV0MvsFMD;           // histogram with centrality vs multiplicity using V0 vs FMD   
79   TH1F    *fHtempTKLvsV0M;           // histogram with centrality vs multiplicity using tracklets vs V0
80   TH1F    *fHtempZEMvsZDC;           // histogram with centrality vs multiplicity using ZEM vs ZDC 
81
82   TList   *fOutputList; // output list
83   
84   TH1F *fHOutCentV0M     ;    //control histogram for centrality
85   TH1F *fHOutCentFMD     ;    //control histogram for centrality
86   TH1F *fHOutCentTRK     ;    //control histogram for centrality
87   TH1F *fHOutCentTKL     ;    //control histogram for centrality
88   TH1F *fHOutCentCL0     ;    //control histogram for centrality
89   TH1F *fHOutCentCL1     ;    //control histogram for centrality
90   TH1F *fHOutCentV0MvsFMD;    //control histogram for centrality
91   TH1F *fHOutCentTKLvsV0M;    //control histogram for centrality
92   TH1F *fHOutCentZEMvsZDC;    //control histogram for centrality
93
94   TH1F *fHOutMultV0M ;        //control histogram for multiplicity
95   TH1F *fHOutMultFMD ;        //control histogram for multiplicity
96   TH1F *fHOutMultTRK ;        //control histogram for multiplicity
97   TH1F *fHOutMultTKL ;        //control histogram for multiplicity
98   TH1F *fHOutMultCL0 ;        //control histogram for multiplicity
99   TH1F *fHOutMultCL1 ;        //control histogram for multiplicity
100
101   TH2F *fHOutMultV0MvsZDC;    //control histogram for multiplicity
102   TH2F *fHOutMultZEMvsZDC;    //control histogram for multiplicity
103   TH2F *fHOutMultV0MvsCL1;    //control histogram for multiplicity
104   TH2F *fHOutMultV0MvsTRK;    //control histogram for multiplicity
105   TH2F *fHOutMultTRKvsCL1;    //control histogram for multiplicity
106
107   ClassDef(AliCentralitySelectionTask,1); 
108
109 };
110
111 #endif
112