]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskV2AllChAOD.h
reco efficiency added
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliAnalysisTaskV2AllChAOD.h
CommitLineData
10a99a07 1#ifndef ALIANALYSISTASKV2ALLCHAOD_H
2#define ALIANALYSISTASKV2ALLCHAOD_H
3
4/* See cxx source for full Copyright notice */
5
6//-------------------------------------------------------------------------
7// AliAnalysisTaskV2AllChAOD
8//
9//
10//
11//
12// Author: Leonardo Milano, CERN
13//-------------------------------------------------------------------------
14
15class AliAODEvent;
16class AliSpectraAODTrackCuts;
17class AliSpectraAODEventCuts;
18
19#include "AliAnalysisTaskSE.h"
d0761d58 20#include "TFile.h"
21#include "TKey.h"
10a99a07 22#include <TProfile.h>
23
24class AliAnalysisTaskV2AllChAOD : public AliAnalysisTaskSE
25{
26 public:
27 // constructors
28 AliAnalysisTaskV2AllChAOD() : AliAnalysisTaskSE(),
29 fAOD(0x0),
30 fTrackCuts(0x0),
31 fEventCuts(0x0),
32 fIsMC(0),
33 fCharge(0),
34 fVZEROside(0),
35 fOutput(0x0),
36 fOutput_lq(0x0),
37 fOutput_sq(0x0),
38 fnCentBins(20),
39 fnQvecBins(40),
40 fIsQvecCalibMode(0),
41 fQvecUpperLim(100),
42 fCutLargeQperc(9.),
43 fCutSmallQperc(10.),
44 fEtaGapMin(-0.5),
d64e71aa 45 fEtaGapMax(0.5),
46 fTrkBit(272),
47 fEtaCut(0.8),
48 fMinPt(0),
49 fMaxPt(20.0),
50 fMinTPCNcls(70),
962f3d11 51 fFillTHn(kTRUE),
d64e71aa 52 fResSP(0),
af960b8a 53 fResSP_vs_Cent(0),
54 f2partCumQA_vs_Cent(0),
55 f2partCumQB_vs_Cent(0),
bc76879c 56 fEta_vs_Phi_bef(0),
2ba0e068 57 fEta_vs_PhiA(0),
58 fEta_vs_PhiB(0),
d64e71aa 59 fResSP_lq(0),
af960b8a 60 fResSP_vs_Cent_lq(0),
61 f2partCumQA_vs_Cent_lq(0),
62 f2partCumQB_vs_Cent_lq(0),
63 fResSP_sq(0),
af960b8a 64 fResSP_vs_Cent_sq(0),
65 f2partCumQA_vs_Cent_sq(0),
a7abb826 66 f2partCumQB_vs_Cent_sq(0),
67 fv2SPGap1A_mb(0),
68 fv2SPGap1B_mb(0),
69 fResSP_mb(0),
70 fv2SPGap1Amc(0),
71 fv2SPGap1Bmc(0),
d0761d58 72 fResSPmc(0),
73 fIsRecoEff(0),
bc9bd5b3 74 fRecoEffList(0)
10a99a07 75 {}
76 AliAnalysisTaskV2AllChAOD(const char *name);
77 virtual ~AliAnalysisTaskV2AllChAOD() {
78 Printf("calling detructor of AliAnalysisTaskV2AllChAOD - To be implemented");
79 }
80
81 void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
82 Bool_t GetIsMC() const { return fIsMC;};
83
84 void SetCharge(Int_t charge = 0) {fCharge = charge; };
85 Int_t GetCharge() const { return fCharge;};
86
87 void SetVZEROside(Int_t side = 0) {fVZEROside = side; };
88 Int_t GetVZEROside() const { return fVZEROside;};
89
90 virtual void UserCreateOutputObjects();
91 virtual void UserExec(Option_t *option);
92 virtual void Terminate(Option_t *);
93
94 AliSpectraAODTrackCuts * GetTrackCuts() { return fTrackCuts; }
95 AliSpectraAODEventCuts * GetEventCuts() { return fEventCuts; }
96 TList * GetOutputList() { return fOutput; }
97
98 void SetTrackCuts(AliSpectraAODTrackCuts * tc) { fTrackCuts = tc; }
99 void SetEventCuts(AliSpectraAODEventCuts * vc) { fEventCuts = vc; }
100 void SetnCentBins(Int_t val) { fnCentBins = val; }
101 void SetnQvecBins(Int_t val) { fnQvecBins = val; }
102 void SetQvecCalibMode(Bool_t mode) { fIsQvecCalibMode = mode; }
103 void SetQvecUpperLimit(Double_t val) { fQvecUpperLim = val; }
104
d64e71aa 105 void SetTrackBits(UInt_t TrackBits) {fTrkBit=TrackBits;}
106 void SetEtaCut(Double_t val) {fEtaCut=val;}
107 void SetMinPt(Double_t val) {fMinPt=val;}
108 void SetMaxPt(Double_t val) {fMaxPt=val;}
109 void SetMinTPCNcls(Double_t val) {fMinTPCNcls=val;}
110
10a99a07 111 Bool_t GetDCA(const AliAODTrack* trk, Double_t * p);
a7abb826 112 void MCclosure();
d0761d58 113
114 void EnableRecoEff (Bool_t val) { fIsRecoEff = val; }
115 Double_t GetRecoEff(Double_t pt, Int_t iC);
116
117 void SetRecoEffFile(TFile *f) {
118 TIter next(f->GetListOfKeys());
119 TKey *key;
120 while ((key = (TKey*)next())) {
121 TH1D * h=(TH1D*)key->ReadObj();
122 fRecoEffList->Add(h);
123 }
124 };
10a99a07 125
126 void SetEtaGap(Float_t etamin,Float_t etamax) { fEtaGapMin = etamin; fEtaGapMax = etamax; }
962f3d11 127 void SetQvecCut(Float_t qmin,Float_t qmax) { fCutSmallQperc = qmin; fCutLargeQperc = qmax; }
128 void SetFillTHn (Bool_t val) { fFillTHn = val; }
10a99a07 129
130 private:
131
132 AliAODEvent * fAOD; //! AOD object
133 AliSpectraAODTrackCuts * fTrackCuts; // Track Cuts
134 AliSpectraAODEventCuts * fEventCuts; // Event Cuts
135 Bool_t fIsMC; // true if processing MC
136 Int_t fCharge; // charge to be selected
137 Int_t fVZEROside; // 0: VZERO-A 1: VZERO-C
138 TList * fOutput; // output list
139 TList * fOutput_lq; // output list large Q
140 TList * fOutput_sq; // output list small Q
141 Int_t fnCentBins; // number of bins for the centrality axis
142 Int_t fnQvecBins; // number of bins for the q vector axis
143 Bool_t fIsQvecCalibMode; //calib mode for Qvector percentile
144 Double_t fQvecUpperLim; //Upper limit for Qvector
145
146 Int_t fCutLargeQperc; // cut on 10% large Q-vec events
147 Int_t fCutSmallQperc; // cut on 10% small Q-vec events
148
149 Double_t fEtaGapMin;
150 Double_t fEtaGapMax;
151
d64e71aa 152 UInt_t fTrkBit;
153 Double_t fEtaCut;
154 Double_t fMinPt;
155 Double_t fMaxPt;
156 Double_t fMinTPCNcls;
157
962f3d11 158 Bool_t fFillTHn;
159
10a99a07 160 //output object
161 TProfile* fResSP; //! resolution
30e20fad 162 TProfile* fResSP_vs_Cent;
163 TProfile* fResSP_vs_Qvec[9];
164 TProfile* f2partCumQA_vs_Cent;
165 TProfile* f2partCumQB_vs_Cent;
2ba0e068 166 TH2D* fEta_vs_Phi_bef; //! eta vs phi distribution before sub events cut
167 TH2D* fEta_vs_PhiA; //! eta vs phi distribution after sub events cut
168 TH2D* fEta_vs_PhiB; //! eta vs phi distribution after sub events cut
10a99a07 169 TProfile* fv2SPGap1A[9]; //! v2{2} eta gap 1 for all events
10a99a07 170 TProfile* fv2SPGap1B[9]; //! v2{2} eta gap 1 for all events
10a99a07 171
bc76879c 172 TProfile* fSinGap1Aq[9]; //! <sin> vs pT gap 1
173 TProfile* fCosGap1Aq[9]; //! <cos> vs pT gap 1
174 TProfile* fSinGap1Bq[9]; //! <sin> vs pT gap 1
175 TProfile* fCosGap1Bq[9]; //! <cos> vs pT gap 1
176
10a99a07 177 TProfile* fSinGap1A[9]; //! <sin> vs pT gap 1
178 TProfile* fCosGap1A[9]; //! <cos> vs pT gap 1
179 TProfile* fSinGap1B[9]; //! <sin> vs pT gap 1
180 TProfile* fCosGap1B[9]; //! <cos> vs pT gap 1
181
182 //large q
183 TProfile* fResSP_lq; //! resolution
30e20fad 184 TProfile* fResSP_vs_Cent_lq;
185 TProfile* f2partCumQA_vs_Cent_lq;
186 TProfile* f2partCumQB_vs_Cent_lq;
10a99a07 187 TProfile* fv2SPGap1A_lq[9]; //! v2{2} eta gap 1 for all events
188 TProfile* fv2SPGap1B_lq[9]; //! v2{2} eta gap 1 for all events
bc76879c 189 TProfile* fSinGap1Aq_lq[9]; //! <sin> vs pT gap 1
190 TProfile* fCosGap1Aq_lq[9]; //! <cos> vs pT gap 1
191 TProfile* fSinGap1Bq_lq[9]; //! <sin> vs pT gap 1
192 TProfile* fCosGap1Bq_lq[9]; //! <cos> vs pT gap 1
10a99a07 193 TProfile* fSinGap1A_lq[9]; //! <sin> vs pT gap 1
194 TProfile* fCosGap1A_lq[9]; //! <cos> vs pT gap 1
195 TProfile* fSinGap1B_lq[9]; //! <sin> vs pT gap 1
196 TProfile* fCosGap1B_lq[9]; //! <cos> vs pT gap 1
197
198 //small q
199 TProfile* fResSP_sq; //! resolution
30e20fad 200 TProfile* fResSP_vs_Cent_sq;
201 TProfile* f2partCumQA_vs_Cent_sq;
202 TProfile* f2partCumQB_vs_Cent_sq;
10a99a07 203 TProfile* fv2SPGap1A_sq[9]; //! v2{2} eta gap 1 for all events
204 TProfile* fv2SPGap1B_sq[9]; //! v2{2} eta gap 1 for all events
bc76879c 205 TProfile* fSinGap1Aq_sq[9]; //! <sin> vs pT gap 1
206 TProfile* fCosGap1Aq_sq[9]; //! <cos> vs pT gap 1
207 TProfile* fSinGap1Bq_sq[9]; //! <sin> vs pT gap 1
208 TProfile* fCosGap1Bq_sq[9]; //! <cos> vs pT gap 1
10a99a07 209 TProfile* fSinGap1A_sq[9]; //! <sin> vs pT gap 1
210 TProfile* fCosGap1A_sq[9]; //! <cos> vs pT gap 1
211 TProfile* fSinGap1B_sq[9]; //! <sin> vs pT gap 1
212 TProfile* fCosGap1B_sq[9]; //! <cos> vs pT gap 1
213
a7abb826 214 TProfile* fv2SPGap1A_mb;
215 TProfile* fv2SPGap1B_mb;
216 TProfile* fResSP_mb;
217 TProfile* fv2SPGap1Amc;
218 TProfile* fv2SPGap1Bmc;
219 TProfile* fResSPmc;
220
d0761d58 221 Bool_t fIsRecoEff;
222 TList * fRecoEffList; // reconstruction efficiency file
bc9bd5b3 223
a7abb826 224
10a99a07 225 AliAnalysisTaskV2AllChAOD(const AliAnalysisTaskV2AllChAOD&);
226 AliAnalysisTaskV2AllChAOD& operator=(const AliAnalysisTaskV2AllChAOD&);
227
bc9bd5b3 228 ClassDef(AliAnalysisTaskV2AllChAOD, 9);
10a99a07 229};
230
231#endif