]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskEffContBF.h
Merge branch 'workdir'
[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     fInjectedSignals(kFALSE),
62     fVxMax(3.0), 
63     fVyMax(3.0), 
64     fVzMax(10.), 
65     fAODTrackCutBit(128),
66     fMinNumberOfTPCClusters(80), 
67     fMaxChi2PerTPCCluster(4.0),
68     fMaxDCAxy(3.0), 
69     fMaxDCAz(3.0),
70     fMinPt(0.0), 
71     fMaxPt(20.0), 
72     fMinEta(-0.8),
73     fMaxEta(0.8), 
74     fEtaRangeMin(0.0), 
75     fEtaRangeMax(1.6), 
76     fPtRangeMin(0.0), 
77     fPtRangeMax(20.0), 
78     fEtaBin(100),
79     fdEtaBin(64),
80     fPtBin(100),
81     fHistSurvived4EtaPtPhiPlus(0), 
82     fHistSurvived8EtaPtPhiPlus(0){}
83     AliAnalysisTaskEffContBF(const char *name);
84     virtual ~AliAnalysisTaskEffContBF() {}
85   
86   virtual void   UserCreateOutputObjects();
87   virtual void   UserExec(Option_t *option);
88   virtual void   Terminate(Option_t *);
89   
90   Bool_t   IsLabelUsed(TArrayI array, Int_t label);
91
92   void SetAODtrackCutBit(Int_t bit){
93     fAODTrackCutBit = bit;
94   }
95   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
96     fVxMax = vx;
97     fVyMax = vy;
98     fVzMax = vz;
99   }
100
101   //Centrality
102   void UseCentrality() { fUseCentrality = kTRUE;}
103   void SetCentralityEstimator(const char* centralityEstimator) {
104     fCentralityEstimator = centralityEstimator;}
105   void SetCentralityPercentileRange(Float_t min, Float_t max) { 
106     fCentralityPercentileMin=min;
107     fCentralityPercentileMax=max;
108   }
109
110   //Injected signals
111   void SetRejectInjectedSignals() {fInjectedSignals = kTRUE;}
112
113   //Track cuts
114   void SetMinNumberOfTPCClusters(Double_t min) {
115     fMinNumberOfTPCClusters = min;}
116   void SetMaxChi2PerTPCCluster(Double_t max) {
117     fMaxChi2PerTPCCluster = max;}
118   void SetMaxDCAxy(Double_t max) {
119     fMaxDCAxy = max;}
120   void SetMaxDCAz(Double_t max) {
121     fMaxDCAz = max;}
122   void SetMinPt(Double_t minPt) {
123     fMinPt = minPt;}
124   void SetMaxPt(Double_t maxPt) {
125     fMaxPt = maxPt;}
126  
127   void SetEtaRange(Double_t minEta, Double_t maxEta, Int_t binEta, Double_t minRangeEta, Double_t maxRangeEta, Int_t bindEta){
128     fMinEta = minEta;
129     fMaxEta = maxEta;
130     fEtaBin = binEta;
131     fEtaRangeMax = maxRangeEta;
132     fEtaRangeMin = minRangeEta;
133     fdEtaBin = bindEta;
134   }
135   void SetPtRange(Double_t minRangePt, Double_t maxRangePt,Int_t binPt){
136     fPtRangeMin = minRangePt;
137     fPtRangeMax = maxRangePt;
138     fPtBin = binPt;}  
139  private:
140   AliAODEvent* fAOD; //! AOD object  
141   TClonesArray *fArrayMC; //! array of MC particles  
142   TList       *fQAList; //! QA list
143   TList       *fOutputList; //! Output list
144   
145   // QA histograms
146   TH1F        *fHistEventStats; //!event stats
147   TH1F        *fHistCentrality; //!centrality
148   TH1F        *fHistNMult; //! nmult  
149   TH1F        *fHistVz;//!
150
151   // output histograms
152   TH3D        *fHistContaminationSecondariesPlus;//!
153   TH3D        *fHistContaminationSecondariesMinus;//!
154   TH3D        *fHistContaminationPrimariesPlus;//!
155   TH3D        *fHistContaminationPrimariesMinus;//!
156   
157   // output histograms (single particles)
158   TH3D        *fHistGeneratedEtaPtPhiPlus;//!correction map for positives (generated)
159   TH3D        *fHistSurvivedEtaPtPhiPlus;//!correction map positives (survived)
160  
161   TH3D        *fHistGeneratedEtaPtPhiMinus;//!correction map for negatives (generated)
162   TH3D        *fHistSurvivedEtaPtPhiMinus;//!correction map negatives (survived)
163  
164   TH2F        *fHistGeneratedEtaPtPlusControl;//!correction map for positives (generated)
165   TH2F        *fHistSurvivedEtaPtPlusControl;//!correction map positives (survived)
166  
167   TH2F        *fHistGeneratedEtaPtMinusControl;//!correction map for negatives (generated)
168   TH2F        *fHistSurvivedEtaPtMinusControl;//!correction map negatives (survived)
169  
170   // output histograms (pairs)
171   TH2F        *fHistGeneratedEtaPtPlusPlus;//!correction map for ++ (generated)
172   TH2F        *fHistSurvivedEtaPtPlusPlus;//!correction map ++ (survived)
173  
174   TH2F        *fHistGeneratedEtaPtMinusMinus;//!correction map for -- (generated)
175   TH2F        *fHistSurvivedEtaPtMinusMinus;//!correction map -- (survived)
176  
177   TH2F        *fHistGeneratedEtaPtPlusMinus;//!correction map for +- (generated)
178   TH2F        *fHistSurvivedEtaPtPlusMinus;//!correction map +- (survived)
179
180   TH2F        *fHistGeneratedPhiEtaPlusPlus;//!correction map for ++ (generated)
181   TH2F        *fHistSurvivedPhiEtaPlusPlus;//!correction map ++ (survived)
182  
183   TH2F        *fHistGeneratedPhiEtaMinusMinus;//!correction map for -- (generated)
184   TH2F        *fHistSurvivedPhiEtaMinusMinus;//!correction map -- (survived)
185  
186   TH2F        *fHistGeneratedPhiEtaPlusMinus;//!correction map for +- (generated)
187   TH2F        *fHistSurvivedPhiEtaPlusMinus;//!correction map +- (survived)
188
189   Bool_t  fUseCentrality;// Bool_t use centrality or not
190   TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
191   Float_t fCentralityPercentileMin, fCentralityPercentileMax; //min-max centrality percentile
192
193   Bool_t fInjectedSignals;//Flag for using the rejection of injected signals
194
195   Double_t fVxMax;//vxmax
196   Double_t fVyMax;//vymax
197   Double_t fVzMax;//vzmax
198   
199   Int_t fAODTrackCutBit;//track cut bit from track selection (only used for AODs)
200
201   Double_t fMinNumberOfTPCClusters;//!
202   Double_t fMaxChi2PerTPCCluster;//!
203   Double_t fMaxDCAxy, fMaxDCAz;//!
204   Double_t fMinPt, fMaxPt;//!
205   Double_t fMinEta, fMaxEta;//!
206   Double_t fEtaRangeMin;// acceptance cuts 
207   Double_t fEtaRangeMax; // acceptance cuts
208   Double_t fPtRangeMin;  //acceptance cuts
209   Double_t fPtRangeMax;  //acceptance cuts
210   
211   Int_t fEtaBin;  //acceptance cuts
212   Int_t fdEtaBin;  //acceptance cuts
213   Int_t fPtBin; //acceptance cuts
214
215   TH3F        *fHistSurvived4EtaPtPhiPlus;//!
216   TH3F        *fHistSurvived8EtaPtPhiPlus;//!
217
218   AliAnalysisTaskEffContBF(const AliAnalysisTaskEffContBF&); // not implemented
219   AliAnalysisTaskEffContBF& operator=(const AliAnalysisTaskEffContBF&); // not implemented
220   
221   ClassDef(AliAnalysisTaskEffContBF, 1); // example of analysis
222 };
223
224 #endif