]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskEfficiencyBFPsi.h
Correct implementation of averaging (nTrigSubBin/nTrigAllBins)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliAnalysisTaskEfficiencyBFPsi.h
1 #ifndef ALIANALYSISTASKEFFICIENCYBFPSI_cxx
2 #define ALIANALYSISTASKEFFICIENCYBFPSI_cxx
3
4 // ---------------------------------------------------------------------
5 //
6 // Task for calculating the efficiency of the Balance Function 
7 // for single particles and pairs: multi-D analysis
8 //
9 // Authors: Panos Christakoglou, Michael Weber
10 // 
11 // ---------------------------------------------------------------------
12
13 class TH1F;
14 class TH3D;
15 class TH2F;
16 class TString;
17 class AliESDEvent;
18 class AliESDtrackCuts;
19 #include "AliTHn.h"
20
21 #include "AliAnalysisTaskSE.h"
22
23 const Int_t kVariablesSingle = 2;       // track variables in histogram (phi-Psi2, pTtrig)
24 const Int_t kVariablesPair   = 5;       // track variables in histogram (phi-Psi2, dEta, dPhi, pTtrig, ptAssociated)
25
26 class AliAnalysisTaskEfficiencyBFPsi : public AliAnalysisTaskSE {
27  public:
28   AliAnalysisTaskEfficiencyBFPsi() : AliAnalysisTaskSE(), 
29     fESD(0), fQAList(0), fOutputList(0), 
30     fHistEventStats(0), fHistCentrality(0), fHistNMult(0), 
31     fHistGeneratedPlus(0), fHistSurvivedPlus(0),
32     fHistGeneratedMinus(0),fHistSurvivedMinus(0),
33     fHistGeneratedPlusPlus(0), fHistSurvivedPlusPlus(0),
34     fHistGeneratedMinusMinus(0), fHistSurvivedMinusMinus(0),
35     fHistGeneratedPlusMinus(0), fHistSurvivedPlusMinus(0),
36     fHistGeneratedMinusPlus(0), fHistSurvivedMinusPlus(0),
37     fESDtrackCuts(0), fAnalysisMode(0), 
38     fCentralityEstimator("V0M"), 
39     fCentralityPercentileMin(0.0), fCentralityPercentileMax(10.0), 
40     fVxMax(3.0), fVyMax(3.0), fVzMax(10.), 
41     fMinNumberOfTPCClusters(80), fMaxChi2PerTPCCluster(4.0), 
42     fMaxDCAxy(3.0), fMaxDCAz(3.0),
43     fMinPt(0.3), fMaxPt(1.5), fMaxEta(0.8), fEtaRangeMax(0.8), 
44     fPtRangeMin(0.1), fPtRangeMax(5.0), fPhiRangeMin(0.0),fPhiRangeMax(6.28){}
45   AliAnalysisTaskEfficiencyBFPsi(const char *name);
46   virtual ~AliAnalysisTaskEfficiencyBFPsi() {}
47   
48   virtual void   UserCreateOutputObjects();
49   virtual void   UserExec(Option_t *option);
50   virtual void   Terminate(Option_t *);
51   
52   Bool_t   IsLabelUsed(TArrayI array, Int_t label);
53
54   void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
55     fESDtrackCuts = trackCuts;}
56   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
57     fVxMax = vx;
58     fVyMax = vy;
59     fVzMax = vz;
60   }
61  
62   //Centrality
63   void SetCentralityEstimator(const char* centralityEstimator) {
64     fCentralityEstimator = centralityEstimator;}
65   void SetCentralityPercentileRange(Float_t min, Float_t max) { 
66     fCentralityPercentileMin=min;
67     fCentralityPercentileMax=max;
68   }
69
70   void SetAnalysisMode(const char* analysisMode) {
71     fAnalysisMode = analysisMode;}
72
73   //Track cuts
74   void SetMinNumberOfTPCClusters(Double_t min) {
75     fMinNumberOfTPCClusters = min;}
76   void SetMaxChi2PerTPCCluster(Double_t max) {
77     fMaxChi2PerTPCCluster = max;}
78   void SetMaxDCAxy(Double_t max) {
79     fMaxDCAxy = max;}
80   void SetMaxDCAz(Double_t max) {
81     fMaxDCAz = max;}
82   void SetMinPt(Double_t minPt) {
83     fMinPt = minPt;}
84   void SetMaxPt(Double_t maxPt) {
85     fMaxPt = maxPt;}
86   void SetMaxEta(Double_t maxEta) {
87     fMaxEta = maxEta;}
88
89   void SetEtaRangeMax(Double_t maxRangeEta){
90     fEtaRangeMax = maxRangeEta;}//
91   void SetPtRangeMin(Double_t minRangePt){
92     fPtRangeMin = minRangePt;} // 
93   void SetPtRangeMax(Double_t maxRangePt){
94     fPtRangeMax = maxRangePt;} //
95   void SetPhiRangeMin(Double_t minRangePhi){
96     fPhiRangeMin = minRangePhi;} //
97   void SetPhiRangeMax(Double_t maxRangePhi){
98     fPhiRangeMax = maxRangePhi;} //
99   
100    
101  private:
102   AliESDEvent *fESD;    //! ESD object
103   TList       *fQAList; //! QA list
104   TList       *fOutputList; //! Output list
105   
106   // QA histograms
107   TH1F *fHistEventStats; //!event stats
108   TH1F *fHistCentrality; //!centrality
109   TH1F *fHistNMult; //! nmult   
110
111   // output histograms (single particles)
112   AliTHn *fHistGeneratedPlus;//!correction map for positives (generated)
113   AliTHn *fHistSurvivedPlus;//!correction map positives (survived)
114   AliTHn *fHistGeneratedMinus;//!correction map for negatives (generated)
115   AliTHn *fHistSurvivedMinus;//!correction map negatives (survived)
116
117   // output histograms (pairs)
118   AliTHn *fHistGeneratedPlusPlus;//!correction map for ++ (generated)
119   AliTHn *fHistSurvivedPlusPlus;//!correction map ++ (survived)
120   AliTHn *fHistGeneratedMinusMinus;//!correction map for -- (generated)
121   AliTHn *fHistSurvivedMinusMinus;//!correction map -- (survived)
122   AliTHn *fHistGeneratedPlusMinus;//!correction map for +- (generated)
123   AliTHn *fHistSurvivedPlusMinus;//!correction map +- (survived)
124   AliTHn *fHistGeneratedMinusPlus;//!correction map for -+ (generated)
125   AliTHn *fHistSurvivedMinusPlus;//!correction map -+ (survived)
126   //============//
127
128   AliESDtrackCuts *fESDtrackCuts; //ESD track cuts
129
130   TString fAnalysisMode;//"TPC", "Global"
131
132   TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
133   Float_t fCentralityPercentileMin, fCentralityPercentileMax; //min-max centrality percentile
134
135   Double_t fVxMax;//vxmax
136   Double_t fVyMax;//vymax
137   Double_t fVzMax;//vzmax
138
139   Double_t fMinNumberOfTPCClusters;
140   Double_t fMaxChi2PerTPCCluster;
141   Double_t fMaxDCAxy, fMaxDCAz;
142   Double_t fMinPt, fMaxPt;
143   Double_t fMaxEta;
144   Double_t fEtaRangeMax; // acceptance cuts
145   Double_t fPtRangeMin;  //acceptance cuts
146   Double_t fPtRangeMax;  //acceptance cuts
147   Double_t fPhiRangeMin; //acceptance cuts
148   Double_t fPhiRangeMax; // acceptance cuts
149
150   AliAnalysisTaskEfficiencyBFPsi(const AliAnalysisTaskEfficiencyBFPsi&); // not implemented
151   AliAnalysisTaskEfficiencyBFPsi& operator=(const AliAnalysisTaskEfficiencyBFPsi&); // not implemented
152   
153   ClassDef(AliAnalysisTaskEfficiencyBFPsi, 1); // example of analysis
154 };
155
156 #endif