]>
Commit | Line | Data |
---|---|---|
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 | ||
15 | class AliAODEvent; | |
16 | class AliSpectraAODTrackCuts; | |
17 | class AliSpectraAODEventCuts; | |
18 | ||
19 | #include "AliAnalysisTaskSE.h" | |
d0761d58 | 20 | #include "TFile.h" |
21 | #include "TKey.h" | |
10a99a07 | 22 | #include <TProfile.h> |
23 | ||
24 | class AliAnalysisTaskV2AllChAOD : public AliAnalysisTaskSE | |
25 | { | |
7272833e | 26 | public: |
10a99a07 | 27 | // constructors |
7272833e | 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 | fQvecUpperLim(100), | |
41 | fCutLargeQperc(9.), | |
42 | fCutSmallQperc(10.), | |
43 | fEtaGapMin(-0.5), | |
44 | fEtaGapMax(0.5), | |
45 | fTrkBit(128), | |
46 | fEtaCut(0.8), | |
47 | fMinPt(0), | |
48 | fMaxPt(20.0), | |
49 | fMinTPCNcls(70), | |
50 | fFillTHn(kTRUE), | |
51 | fCentrality(0), | |
52 | fQvector(0), | |
53 | fQvector_lq(0), | |
54 | fQvector_sq(0), | |
55 | fResSP(0), | |
56 | fResSP_vs_Cent(0), | |
57 | f2partCumQA_vs_Cent(0), | |
58 | f2partCumQB_vs_Cent(0), | |
59 | fEta_vs_Phi_bef(0), | |
60 | fEta_vs_PhiA(0), | |
61 | fEta_vs_PhiB(0), | |
62 | fResSP_lq(0), | |
63 | fResSP_vs_Cent_lq(0), | |
64 | f2partCumQA_vs_Cent_lq(0), | |
65 | f2partCumQB_vs_Cent_lq(0), | |
66 | fResSP_sq(0), | |
67 | fResSP_vs_Cent_sq(0), | |
68 | f2partCumQA_vs_Cent_sq(0), | |
69 | f2partCumQB_vs_Cent_sq(0), | |
70 | fResSP_inclusive(0), | |
71 | fv2SPGap1A_inclusive_mb(0), | |
72 | fv2SPGap1B_inclusive_mb(0), | |
73 | fv2SPGap1A_inclusive_lq(0), | |
74 | fv2SPGap1B_inclusive_lq(0), | |
75 | fv2SPGap1A_inclusive_sq(0), | |
76 | fv2SPGap1B_inclusive_sq(0), | |
77 | fResSPmc_inclusive(0), | |
78 | fv2SPGap1Amc_inclusive_mb(0), | |
79 | fv2SPGap1Bmc_inclusive_mb(0), | |
80 | fv2SPGap1Amc_inclusive_lq(0), | |
81 | fv2SPGap1Bmc_inclusive_lq(0), | |
82 | fv2SPGap1Amc_inclusive_sq(0), | |
83 | fv2SPGap1Bmc_inclusive_sq(0), | |
84 | fResGap1w(0), | |
85 | fV2IntGap1w(0), | |
86 | fIsRecoEff(0), | |
87 | fRecoEffList(0), | |
88 | fQvecGen(0), | |
89 | fQgenType(0), | |
90 | fnNchBins(400), | |
91 | fDoCentrSystCentrality(0) | |
92 | { | |
93 | for(Int_t j=0; j<9; j++){ | |
94 | fv2SPGap1A[j]=0x0; | |
95 | fv2SPGap1B[j]=0x0; | |
96 | fSinGap1Aq[j]=0x0; | |
97 | fCosGap1Aq[j]=0x0; | |
98 | fSinGap1Bq[j]=0x0; | |
99 | fCosGap1Bq[j]=0x0; | |
100 | fSinGap1A[j]=0x0; | |
101 | fCosGap1A[j]=0x0; | |
102 | fSinGap1B[j]=0x0; | |
103 | fCosGap1B[j]=0x0; | |
104 | ||
105 | fv2SPGap1A_lq[j]=0x0; | |
106 | fv2SPGap1B_lq[j]=0x0; | |
107 | fSinGap1Aq_lq[j]=0x0; | |
108 | fCosGap1Aq_lq[j]=0x0; | |
109 | fSinGap1Bq_lq[j]=0x0; | |
110 | fCosGap1Bq_lq[j]=0x0; | |
111 | fSinGap1A_lq[j]=0x0; | |
112 | fCosGap1A_lq[j]=0x0; | |
113 | fSinGap1B_lq[j]=0x0; | |
114 | fCosGap1B_lq[j]=0x0; | |
115 | ||
116 | fv2SPGap1A_sq[j]=0x0; | |
117 | fv2SPGap1B_sq[j]=0x0; | |
118 | fSinGap1Aq_sq[j]=0x0; | |
119 | fCosGap1Aq_sq[j]=0x0; | |
120 | fSinGap1Bq_sq[j]=0x0; | |
121 | fCosGap1Bq_sq[j]=0x0; | |
122 | fSinGap1A_sq[j]=0x0; | |
123 | fCosGap1A_sq[j]=0x0; | |
124 | fSinGap1B_sq[j]=0x0; | |
125 | fCosGap1B_sq[j]=0x0; | |
126 | ||
127 | fResSP_vs_Qvec[j]=0x0; | |
128 | fV2IntGap1wq[j]=0x0; | |
129 | } | |
130 | } | |
10a99a07 | 131 | AliAnalysisTaskV2AllChAOD(const char *name); |
132 | virtual ~AliAnalysisTaskV2AllChAOD() { | |
133 | Printf("calling detructor of AliAnalysisTaskV2AllChAOD - To be implemented"); | |
134 | } | |
7272833e | 135 | |
10a99a07 | 136 | void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; }; |
137 | Bool_t GetIsMC() const { return fIsMC;}; | |
7272833e | 138 | |
10a99a07 | 139 | void SetCharge(Int_t charge = 0) {fCharge = charge; }; |
140 | Int_t GetCharge() const { return fCharge;}; | |
7272833e | 141 | |
10a99a07 | 142 | void SetVZEROside(Int_t side = 0) {fVZEROside = side; }; |
143 | Int_t GetVZEROside() const { return fVZEROside;}; | |
7272833e | 144 | |
10a99a07 | 145 | virtual void UserCreateOutputObjects(); |
146 | virtual void UserExec(Option_t *option); | |
147 | virtual void Terminate(Option_t *); | |
7272833e | 148 | |
10a99a07 | 149 | AliSpectraAODTrackCuts * GetTrackCuts() { return fTrackCuts; } |
150 | AliSpectraAODEventCuts * GetEventCuts() { return fEventCuts; } | |
151 | TList * GetOutputList() { return fOutput; } | |
7272833e | 152 | |
10a99a07 | 153 | void SetTrackCuts(AliSpectraAODTrackCuts * tc) { fTrackCuts = tc; } |
154 | void SetEventCuts(AliSpectraAODEventCuts * vc) { fEventCuts = vc; } | |
155 | void SetnCentBins(Int_t val) { fnCentBins = val; } | |
156 | void SetnQvecBins(Int_t val) { fnQvecBins = val; } | |
10a99a07 | 157 | void SetQvecUpperLimit(Double_t val) { fQvecUpperLim = val; } |
7272833e | 158 | |
d64e71aa | 159 | void SetTrackBits(UInt_t TrackBits) {fTrkBit=TrackBits;} |
160 | void SetEtaCut(Double_t val) {fEtaCut=val;} | |
161 | void SetMinPt(Double_t val) {fMinPt=val;} | |
162 | void SetMaxPt(Double_t val) {fMaxPt=val;} | |
163 | void SetMinTPCNcls(Double_t val) {fMinTPCNcls=val;} | |
7272833e | 164 | |
10a99a07 | 165 | Bool_t GetDCA(const AliAODTrack* trk, Double_t * p); |
29fbaf8a | 166 | void MCclosure(Double_t qvec); |
7272833e | 167 | |
d0761d58 | 168 | void EnableRecoEff (Bool_t val) { fIsRecoEff = val; } |
169 | Double_t GetRecoEff(Double_t pt, Int_t iC); | |
7272833e | 170 | |
d0761d58 | 171 | void SetRecoEffFile(TFile *f) { |
172 | TIter next(f->GetListOfKeys()); | |
173 | TKey *key; | |
174 | while ((key = (TKey*)next())) { | |
175 | TH1D * h=(TH1D*)key->ReadObj(); | |
176 | fRecoEffList->Add(h); | |
177 | } | |
178 | }; | |
10a99a07 | 179 | |
180 | void SetEtaGap(Float_t etamin,Float_t etamax) { fEtaGapMin = etamin; fEtaGapMax = etamax; } | |
962f3d11 | 181 | void SetQvecCut(Float_t qmin,Float_t qmax) { fCutSmallQperc = qmin; fCutLargeQperc = qmax; } |
182 | void SetFillTHn (Bool_t val) { fFillTHn = val; } | |
7272833e | 183 | |
509a25f9 | 184 | void SetQvecGen(Bool_t val) { fQvecGen = val; } //enable Qvec from generated |
725da720 | 185 | void SetQgenType(Int_t val) { fQgenType = val ; } // type==0 qgen from tracks - type==1 qgen from vzero |
e3bcd147 | 186 | |
187 | void SetnNchBins(Int_t val) { fnNchBins = val; } | |
7272833e | 188 | |
509a25f9 | 189 | void SetDoCentrSystCentrality(Bool_t val) { fDoCentrSystCentrality = val; } //enable systematic for centrality |
190 | ||
7272833e | 191 | private: |
192 | ||
10a99a07 | 193 | AliAODEvent * fAOD; //! AOD object |
194 | AliSpectraAODTrackCuts * fTrackCuts; // Track Cuts | |
195 | AliSpectraAODEventCuts * fEventCuts; // Event Cuts | |
196 | Bool_t fIsMC; // true if processing MC | |
197 | Int_t fCharge; // charge to be selected | |
198 | Int_t fVZEROside; // 0: VZERO-A 1: VZERO-C | |
199 | TList * fOutput; // output list | |
200 | TList * fOutput_lq; // output list large Q | |
201 | TList * fOutput_sq; // output list small Q | |
202 | Int_t fnCentBins; // number of bins for the centrality axis | |
203 | Int_t fnQvecBins; // number of bins for the q vector axis | |
10a99a07 | 204 | Double_t fQvecUpperLim; //Upper limit for Qvector |
7272833e | 205 | |
10a99a07 | 206 | Int_t fCutLargeQperc; // cut on 10% large Q-vec events |
207 | Int_t fCutSmallQperc; // cut on 10% small Q-vec events | |
7272833e | 208 | |
f02b044c | 209 | Double_t fEtaGapMin; // TBD |
210 | Double_t fEtaGapMax; // TBD | |
7272833e | 211 | |
f02b044c | 212 | UInt_t fTrkBit; // TBD |
213 | Double_t fEtaCut; // TBD | |
214 | Double_t fMinPt; // TBD | |
215 | Double_t fMaxPt; // TBD | |
216 | Double_t fMinTPCNcls; // TBD | |
7272833e | 217 | |
f02b044c | 218 | Bool_t fFillTHn; // TBD |
7272833e | 219 | |
f02b044c | 220 | TH1D * fCentrality; //! TBD |
221 | TH1D * fQvector; //! TBD | |
222 | TH1D * fQvector_lq; //! TBD | |
223 | TH1D * fQvector_sq; //! TBD | |
86f0713c | 224 | |
10a99a07 | 225 | //output object |
226 | TProfile* fResSP; //! resolution | |
f02b044c | 227 | TProfile* fResSP_vs_Cent; //! TBD |
f02b044c | 228 | TProfile* f2partCumQA_vs_Cent; //! TBD |
229 | TProfile* f2partCumQB_vs_Cent; //! TBD | |
2ba0e068 | 230 | TH2D* fEta_vs_Phi_bef; //! eta vs phi distribution before sub events cut |
231 | TH2D* fEta_vs_PhiA; //! eta vs phi distribution after sub events cut | |
232 | TH2D* fEta_vs_PhiB; //! eta vs phi distribution after sub events cut | |
10a99a07 | 233 | TProfile* fv2SPGap1A[9]; //! v2{2} eta gap 1 for all events |
10a99a07 | 234 | TProfile* fv2SPGap1B[9]; //! v2{2} eta gap 1 for all events |
10a99a07 | 235 | |
bc76879c | 236 | TProfile* fSinGap1Aq[9]; //! <sin> vs pT gap 1 |
237 | TProfile* fCosGap1Aq[9]; //! <cos> vs pT gap 1 | |
238 | TProfile* fSinGap1Bq[9]; //! <sin> vs pT gap 1 | |
239 | TProfile* fCosGap1Bq[9]; //! <cos> vs pT gap 1 | |
7272833e | 240 | |
10a99a07 | 241 | TProfile* fSinGap1A[9]; //! <sin> vs pT gap 1 |
242 | TProfile* fCosGap1A[9]; //! <cos> vs pT gap 1 | |
243 | TProfile* fSinGap1B[9]; //! <sin> vs pT gap 1 | |
244 | TProfile* fCosGap1B[9]; //! <cos> vs pT gap 1 | |
245 | ||
246 | //large q | |
247 | TProfile* fResSP_lq; //! resolution | |
f02b044c | 248 | TProfile* fResSP_vs_Cent_lq; //! TBD |
249 | TProfile* f2partCumQA_vs_Cent_lq; //! TBD | |
250 | TProfile* f2partCumQB_vs_Cent_lq; //! TBD | |
10a99a07 | 251 | TProfile* fv2SPGap1A_lq[9]; //! v2{2} eta gap 1 for all events |
252 | TProfile* fv2SPGap1B_lq[9]; //! v2{2} eta gap 1 for all events | |
bc76879c | 253 | TProfile* fSinGap1Aq_lq[9]; //! <sin> vs pT gap 1 |
254 | TProfile* fCosGap1Aq_lq[9]; //! <cos> vs pT gap 1 | |
255 | TProfile* fSinGap1Bq_lq[9]; //! <sin> vs pT gap 1 | |
256 | TProfile* fCosGap1Bq_lq[9]; //! <cos> vs pT gap 1 | |
10a99a07 | 257 | TProfile* fSinGap1A_lq[9]; //! <sin> vs pT gap 1 |
258 | TProfile* fCosGap1A_lq[9]; //! <cos> vs pT gap 1 | |
259 | TProfile* fSinGap1B_lq[9]; //! <sin> vs pT gap 1 | |
260 | TProfile* fCosGap1B_lq[9]; //! <cos> vs pT gap 1 | |
7272833e | 261 | |
10a99a07 | 262 | //small q |
263 | TProfile* fResSP_sq; //! resolution | |
f02b044c | 264 | TProfile* fResSP_vs_Cent_sq; //! TBD |
265 | TProfile* f2partCumQA_vs_Cent_sq; //! TBD | |
266 | TProfile* f2partCumQB_vs_Cent_sq; //! TBD | |
10a99a07 | 267 | TProfile* fv2SPGap1A_sq[9]; //! v2{2} eta gap 1 for all events |
268 | TProfile* fv2SPGap1B_sq[9]; //! v2{2} eta gap 1 for all events | |
bc76879c | 269 | TProfile* fSinGap1Aq_sq[9]; //! <sin> vs pT gap 1 |
270 | TProfile* fCosGap1Aq_sq[9]; //! <cos> vs pT gap 1 | |
271 | TProfile* fSinGap1Bq_sq[9]; //! <sin> vs pT gap 1 | |
272 | TProfile* fCosGap1Bq_sq[9]; //! <cos> vs pT gap 1 | |
10a99a07 | 273 | TProfile* fSinGap1A_sq[9]; //! <sin> vs pT gap 1 |
274 | TProfile* fCosGap1A_sq[9]; //! <cos> vs pT gap 1 | |
275 | TProfile* fSinGap1B_sq[9]; //! <sin> vs pT gap 1 | |
276 | TProfile* fCosGap1B_sq[9]; //! <cos> vs pT gap 1 | |
7272833e | 277 | |
29fbaf8a | 278 | // MC closure test |
7272833e | 279 | |
f02b044c | 280 | TProfile* fResSP_inclusive; //! TBD |
281 | TProfile* fv2SPGap1A_inclusive_mb; //! TBD | |
282 | TProfile* fv2SPGap1B_inclusive_mb; //! TBD | |
283 | TProfile* fv2SPGap1A_inclusive_lq; //! TBD | |
284 | TProfile* fv2SPGap1B_inclusive_lq; //! TBD | |
285 | TProfile* fv2SPGap1A_inclusive_sq; //! TBD | |
286 | TProfile* fv2SPGap1B_inclusive_sq; //! TBD | |
7272833e | 287 | |
f02b044c | 288 | TProfile* fResSPmc_inclusive; //! TBD |
289 | TProfile* fv2SPGap1Amc_inclusive_mb; //! TBD | |
290 | TProfile* fv2SPGap1Bmc_inclusive_mb; //! TBD | |
291 | TProfile* fv2SPGap1Amc_inclusive_lq; //! TBD | |
292 | TProfile* fv2SPGap1Bmc_inclusive_lq; //! TBD | |
293 | TProfile* fv2SPGap1Amc_inclusive_sq; //! TBD | |
294 | TProfile* fv2SPGap1Bmc_inclusive_sq; //! TBD | |
7272833e | 295 | |
52bfa7e6 | 296 | // v2 vs qvec... |
7272833e | 297 | |
52bfa7e6 | 298 | TProfile* fResGap1w; //! |
299 | TProfile* fV2IntGap1w; //! integrated v2 for gap 0.8 w | |
300 | TProfile* fResSP_vs_Qvec[9]; //! TBD | |
301 | TProfile* fV2IntGap1wq[9]; //! | |
7272833e | 302 | |
f02b044c | 303 | Bool_t fIsRecoEff; // TBD |
e4d189de | 304 | TList * fRecoEffList; // reconstruction efficiency file |
7272833e | 305 | |
52bfa7e6 | 306 | Bool_t fQvecGen; //enable Qvec from generated |
307 | Int_t fQgenType; // type==0 qgen from tracks - type==1 qgen from vzero | |
e3bcd147 | 308 | Int_t fnNchBins; //Ncharged |
7272833e | 309 | |
509a25f9 | 310 | Bool_t fDoCentrSystCentrality; //systematic check on centrality estimation |
311 | ||
7272833e | 312 | |
10a99a07 | 313 | AliAnalysisTaskV2AllChAOD(const AliAnalysisTaskV2AllChAOD&); |
314 | AliAnalysisTaskV2AllChAOD& operator=(const AliAnalysisTaskV2AllChAOD&); | |
7272833e | 315 | |
e4d189de | 316 | ClassDef(AliAnalysisTaskV2AllChAOD, 16); |
10a99a07 | 317 | }; |
318 | ||
319 | #endif |