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