]>
Commit | Line | Data |
---|---|---|
afa8df58 | 1 | #ifndef ALIANALYSISTASKVNV0_H |
2 | #define ALIANALYSISTASKVNV0_H | |
3 | ||
4 | // ROOT includes | |
5 | #include <TObject.h> | |
6 | #include <TClonesArray.h> | |
7 | #include "TTree.h" | |
8 | #include <TList.h> | |
9 | #include <TProfile.h> | |
10 | ||
11 | // AliRoot includes | |
12 | #include <AliAnalysisTaskSE.h> | |
13 | #include <AliAODEvent.h> | |
14 | #include <AliCFContainer.h> | |
15 | #include "AliFlowBayesianPID.h" | |
16 | ||
17 | class TH2F; | |
18 | ||
19 | class AliAnalysisTaskVnV0 : public AliAnalysisTaskSE { | |
20 | public: | |
21 | AliAnalysisTaskVnV0(); | |
22 | AliAnalysisTaskVnV0(const char *name); | |
23 | ||
24 | virtual ~AliAnalysisTaskVnV0(); | |
25 | ||
26 | virtual void UserCreateOutputObjects(); | |
27 | virtual void UserExec(Option_t *option); | |
28 | virtual void Terminate(Option_t *); | |
29 | ||
30 | Double_t GetVtxCut() { return fVtxCut; } | |
31 | Double_t GetEtaCut() { return fEtaCut; } | |
32 | Double_t GetMinPt() { return fMinPt; } | |
33 | ||
34 | virtual void SetVtxCut(Double_t vtxCut){fVtxCut = vtxCut;} | |
35 | virtual void SetEtaCut(Double_t etaCut){fEtaCut = etaCut;} | |
36 | virtual void SetMinPt(Double_t value) {fMinPt = value;} | |
37 | virtual void SetV2(Bool_t val){fV2 = val;}; | |
38 | virtual void SetV3(Bool_t val){fV3 = val;}; | |
39 | ||
40 | void OpenInfoCalbration(Int_t run); | |
41 | ||
42 | private: | |
43 | AliAnalysisTaskVnV0(const AliAnalysisTaskVnV0 &); | |
44 | AliAnalysisTaskVnV0 & operator=(const AliAnalysisTaskVnV0 &); | |
45 | ||
46 | virtual Float_t GetVertex(AliAODEvent* aod) const; | |
47 | virtual void Analyze(AliAODEvent* aodEvent, Float_t v0Centr); | |
48 | ||
49 | AliAODEvent* fAOD; //! AOD object | |
50 | ||
51 | static const Int_t nCentrBin = 9; // # cenrality bins | |
52 | ||
53 | // | |
54 | // Cuts and options | |
55 | // | |
56 | Double_t fVtxCut; // Vtx cut on z position in cm | |
57 | Double_t fEtaCut; // Eta cut used to select particles | |
58 | Double_t fMinPt; // Min pt - for histogram limits | |
59 | ||
60 | Int_t fRun; // current run checked to load VZERO calibrations | |
61 | ||
62 | TList *fList,*fList2; // List for output objects | |
63 | // | |
64 | // Output objects | |
65 | TProfile *fMultV0; // object containing VZERO calibration information | |
66 | Float_t fV0Cpol,fV0Apol; // loaded by OADB | |
67 | Float_t fMeanQ[nCentrBin][2][2]; // and recentering | |
68 | Float_t fWidthQ[nCentrBin][2][2]; // ... | |
69 | Float_t fMeanQv3[nCentrBin][2][2]; // also for v3 | |
70 | Float_t fWidthQv3[nCentrBin][2][2]; // ... | |
71 | ||
72 | AliCFContainer *fContAllChargesV0A; // containers for v2 (A nd C) and v3 (A and C) | |
73 | AliCFContainer *fContAllChargesV0C; // ... | |
74 | AliCFContainer *fContAllChargesV0Av3; // ... | |
75 | AliCFContainer *fContAllChargesV0Cv3; // ... | |
76 | ||
77 | TProfile *fHResTPCv0A2,*fHResTPCv0C2,*fHResv0Cv0A2; // TProfile for subevent resolution (output) | |
78 | TProfile *fHResTPCv0A3,*fHResTPCv0C3,*fHResv0Cv0A3; // also for v3 | |
79 | ||
80 | TH2F *fPhiRPv0A,*fPhiRPv0C; // EP distribution vs. centrality (v2) | |
81 | TH2F *fPhiRPv0Av3,*fPhiRPv0Cv3; // EP distribution vs. centrality (v3) | |
82 | ||
83 | AliCFContainer *fPhiTracks; // phi distribution of particles (if needed) | |
84 | ||
85 | ||
86 | AliCFContainer *fQA,*fQA2; // QA container (v2) | |
87 | AliCFContainer *fQAv3,*fQA2v3; // QA container (v3) | |
88 | ||
89 | AliFlowBayesianPID *fPID; // PID class for the Bayesian probabilities | |
90 | ||
91 | TTree *fTree; // tree to debug EP (if needed) | |
92 | ||
93 | Float_t fCentrality; // current centrality for the tree | |
94 | Float_t evPlAngV0ACor2,evPlAngV0CCor2,evPlAng2; // subevent EPs (v2) | |
95 | Float_t evPlAngV0ACor3,evPlAngV0CCor3,evPlAng3; // subevent EPs (v3) | |
96 | ||
97 | Bool_t fV2,fV3; // swith to set the armonics | |
98 | ||
99 | ClassDef(AliAnalysisTaskVnV0, 1); //Analysis task v2 and v3 analysis on AOD | |
100 | }; | |
101 | ||
102 | #endif |