]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskEffContBF.h
Bug fix
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliAnalysisTaskEffContBF.h
1 #ifndef ALIANALYSISTASKEFFCONTBF_cxx
2 #define ALIANALYSISTASKEFFCONTBF_cxx
3
4 // ---------------------------------------------------------------------
5 //
6 // Task for calculating the efficiency and contamination of the Balance 
7 // Function for single particles and pairs
8 // 
9 // ---------------------------------------------------------------------
10
11 class TList;
12 class TH1F;
13 class TH3D;
14 class TH2F;
15 class TString;
16 class AliAODEvent;
17 class AliAODInputHandler;
18 class TH2D;
19
20 #include "AliAnalysisTaskSE.h"
21
22 class AliAnalysisTaskEffContBF : public AliAnalysisTaskSE {
23  public:
24   AliAnalysisTaskEffContBF() : AliAnalysisTaskSE(), 
25     fAOD(0), 
26     fArrayMC(0),  
27     fQAList(0), 
28     fOutputList(0),
29     fHistEventStats(0),
30     fHistCentrality(0), 
31     fHistNMult(0), 
32     fHistVz(0),
33     fHistContaminationSecondariesPlus(0),
34     fHistContaminationSecondariesMinus(0),
35     fHistContaminationPrimariesPlus(0),
36     fHistContaminationPrimariesMinus(0),
37     fHistGeneratedEtaPtPhiPlus(0),
38     fHistSurvivedEtaPtPhiPlus(0),
39     fHistGeneratedEtaPtPhiMinus(0),
40     fHistSurvivedEtaPtPhiMinus(0),
41     fHistGeneratedEtaPtPlusControl(0), 
42     fHistSurvivedEtaPtPlusControl(0),
43     fHistGeneratedEtaPtMinusControl(0), 
44     fHistSurvivedEtaPtMinusControl(0), 
45     fHistGeneratedEtaPtPlusPlus(0), 
46     fHistSurvivedEtaPtPlusPlus(0),
47     fHistGeneratedEtaPtMinusMinus(0), 
48     fHistSurvivedEtaPtMinusMinus(0),
49     fHistGeneratedEtaPtPlusMinus(0), 
50     fHistSurvivedEtaPtPlusMinus(0),
51     fHistGeneratedPhiEtaPlusPlus(0),
52     fHistSurvivedPhiEtaPlusPlus(0),
53     fHistGeneratedPhiEtaMinusMinus(0), 
54     fHistSurvivedPhiEtaMinusMinus(0),
55     fHistGeneratedPhiEtaPlusMinus(0),
56     fHistSurvivedPhiEtaPlusMinus(0), 
57     fUseCentrality(kFALSE), 
58     fCentralityEstimator("V0M"), 
59     fCentralityPercentileMin(0.0), 
60     fCentralityPercentileMax(5.0), 
61     fVxMax(3.0), 
62     fVyMax(3.0), 
63     fVzMax(10.), 
64     fAODTrackCutBit(128),
65     fMinNumberOfTPCClusters(80), 
66     fMaxChi2PerTPCCluster(4.0),
67     fMaxDCAxy(3.0), 
68     fMaxDCAz(3.0),
69     fMinPt(0.0), 
70     fMaxPt(20.0), 
71     fMinEta(-0.8),
72     fMaxEta(0.8), 
73     fEtaRangeMin(0.0), 
74     fEtaRangeMax(1.6), 
75     fPtRangeMin(0.0), 
76     fPtRangeMax(20.0), 
77     fEtaBin(100),
78     fdEtaBin(64),
79     fPtBin(100),
80     fHistSurvived4EtaPtPhiPlus(0), 
81     fHistSurvived8EtaPtPhiPlus(0){}
82     AliAnalysisTaskEffContBF(const char *name);
83     virtual ~AliAnalysisTaskEffContBF() {}
84   
85   virtual void   UserCreateOutputObjects();
86   virtual void   UserExec(Option_t *option);
87   virtual void   Terminate(Option_t *);
88   
89   Bool_t   IsLabelUsed(TArrayI array, Int_t label);
90
91   void SetAODtrackCutBit(Int_t bit){
92     fAODTrackCutBit = bit;
93   }
94   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
95     fVxMax = vx;
96     fVyMax = vy;
97     fVzMax = vz;
98   }
99
100   //Centrality
101   void UseCentrality() { fUseCentrality = kTRUE;}
102   void SetCentralityEstimator(const char* centralityEstimator) {
103     fCentralityEstimator = centralityEstimator;}
104   void SetCentralityPercentileRange(Float_t min, Float_t max) { 
105     fCentralityPercentileMin=min;
106     fCentralityPercentileMax=max;
107   }
108
109   //Track cuts
110   void SetMinNumberOfTPCClusters(Double_t min) {
111     fMinNumberOfTPCClusters = min;}
112   void SetMaxChi2PerTPCCluster(Double_t max) {
113     fMaxChi2PerTPCCluster = max;}
114   void SetMaxDCAxy(Double_t max) {
115     fMaxDCAxy = max;}
116   void SetMaxDCAz(Double_t max) {
117     fMaxDCAz = max;}
118   void SetMinPt(Double_t minPt) {
119     fMinPt = minPt;}
120   void SetMaxPt(Double_t maxPt) {
121     fMaxPt = maxPt;}
122  
123   void SetEtaRange(Double_t minEta, Double_t maxEta, Int_t binEta, Double_t minRangeEta, Double_t maxRangeEta, Int_t bindEta){
124     fMinEta = minEta;
125     fMaxEta = maxEta;
126     fEtaBin = binEta;
127     fEtaRangeMax = maxRangeEta;
128     fEtaRangeMin = minRangeEta;
129     fdEtaBin = bindEta;
130   }
131   void SetPtRange(Double_t minRangePt, Double_t maxRangePt,Int_t binPt){
132     fPtRangeMin = minRangePt;
133     fPtRangeMax = maxRangePt;
134     fPtBin = binPt;}  
135  private:
136   AliAODEvent* fAOD; //! AOD object  
137   TClonesArray *fArrayMC; //! array of MC particles  
138   TList       *fQAList; //! QA list
139   TList       *fOutputList; //! Output list
140   
141   // QA histograms
142   TH1F        *fHistEventStats; //!event stats
143   TH1F        *fHistCentrality; //!centrality
144   TH1F        *fHistNMult; //! nmult  
145   TH1F        *fHistVz;//!
146
147   // output histograms
148   TH3D        *fHistContaminationSecondariesPlus;//!
149   TH3D        *fHistContaminationSecondariesMinus;//!
150   TH3D        *fHistContaminationPrimariesPlus;//!
151   TH3D        *fHistContaminationPrimariesMinus;//!
152   
153   // output histograms (single particles)
154   TH3D        *fHistGeneratedEtaPtPhiPlus;//!correction map for positives (generated)
155   TH3D        *fHistSurvivedEtaPtPhiPlus;//!correction map positives (survived)
156  
157   TH3D        *fHistGeneratedEtaPtPhiMinus;//!correction map for negatives (generated)
158   TH3D        *fHistSurvivedEtaPtPhiMinus;//!correction map negatives (survived)
159  
160   TH2F        *fHistGeneratedEtaPtPlusControl;//!correction map for positives (generated)
161   TH2F        *fHistSurvivedEtaPtPlusControl;//!correction map positives (survived)
162  
163   TH2F        *fHistGeneratedEtaPtMinusControl;//!correction map for negatives (generated)
164   TH2F        *fHistSurvivedEtaPtMinusControl;//!correction map negatives (survived)
165  
166   // output histograms (pairs)
167   TH2F        *fHistGeneratedEtaPtPlusPlus;//!correction map for ++ (generated)
168   TH2F        *fHistSurvivedEtaPtPlusPlus;//!correction map ++ (survived)
169  
170   TH2F        *fHistGeneratedEtaPtMinusMinus;//!correction map for -- (generated)
171   TH2F        *fHistSurvivedEtaPtMinusMinus;//!correction map -- (survived)
172  
173   TH2F        *fHistGeneratedEtaPtPlusMinus;//!correction map for +- (generated)
174   TH2F        *fHistSurvivedEtaPtPlusMinus;//!correction map +- (survived)
175
176   TH2F        *fHistGeneratedPhiEtaPlusPlus;//!correction map for ++ (generated)
177   TH2F        *fHistSurvivedPhiEtaPlusPlus;//!correction map ++ (survived)
178  
179   TH2F        *fHistGeneratedPhiEtaMinusMinus;//!correction map for -- (generated)
180   TH2F        *fHistSurvivedPhiEtaMinusMinus;//!correction map -- (survived)
181  
182   TH2F        *fHistGeneratedPhiEtaPlusMinus;//!correction map for +- (generated)
183   TH2F        *fHistSurvivedPhiEtaPlusMinus;//!correction map +- (survived)
184
185   Bool_t  fUseCentrality;// Bool_t use centrality or not
186   TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
187   Float_t fCentralityPercentileMin, fCentralityPercentileMax; //min-max centrality percentile
188
189   Double_t fVxMax;//vxmax
190   Double_t fVyMax;//vymax
191   Double_t fVzMax;//vzmax
192   
193   Int_t fAODTrackCutBit;//track cut bit from track selection (only used for AODs)
194
195   Double_t fMinNumberOfTPCClusters;//!
196   Double_t fMaxChi2PerTPCCluster;//!
197   Double_t fMaxDCAxy, fMaxDCAz;//!
198   Double_t fMinPt, fMaxPt;//!
199   Double_t fMinEta, fMaxEta;//!
200   Double_t fEtaRangeMin;// acceptance cuts 
201   Double_t fEtaRangeMax; // acceptance cuts
202   Double_t fPtRangeMin;  //acceptance cuts
203   Double_t fPtRangeMax;  //acceptance cuts
204   
205   Int_t fEtaBin;  //acceptance cuts
206   Int_t fdEtaBin;  //acceptance cuts
207   Int_t fPtBin; //acceptance cuts
208
209   TH3F        *fHistSurvived4EtaPtPhiPlus;//!
210   TH3F        *fHistSurvived8EtaPtPhiPlus;//!
211
212   AliAnalysisTaskEffContBF(const AliAnalysisTaskEffContBF&); // not implemented
213   AliAnalysisTaskEffContBF& operator=(const AliAnalysisTaskEffContBF&); // not implemented
214   
215   ClassDef(AliAnalysisTaskEffContBF, 1); // example of analysis
216 };
217
218 #endif