]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/FLOW/Tasks/AliAnalysisTaskVnV0.h
force compute MC label
[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 "AliFlowBayesianPID.h"
15 #include "AliFlowVZEROResults.h"
16 #include "AliFlowVZEROQA.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   Double_t     fVtxCut;             // Vtx cut on z position in cm
54   Double_t     fEtaCut;             // Eta cut used to select particles
55   Double_t     fMinPt;              // Min pt - for histogram limits
56
57   Bool_t fV2; // switch to set the armonics
58   Bool_t fV3; // switch to set the armonics
59   Bool_t fIsMC; // if MC
60   Bool_t fQAsw;   // if QA
61
62   static const Int_t nCentrBin = 9;          //! # cenrality bins
63
64   //
65   // Cuts and options
66   //
67
68   Int_t fRun;                       //! current run checked to load VZERO calibrations
69
70   TList *fList;              //! List for output objects
71   TList *fList2;             //! List for output objects
72   TList *fList3;             //! List for output objects
73   TList *fList4;             //! List for output objects
74   //
75   // Output objects
76   TProfile *fMultV0;                //! object containing VZERO calibration information
77   Float_t fV0Cpol;          //! loaded by OADB
78   Float_t fV0Apol;          //! loaded by OADB
79   Float_t fMeanQ[nCentrBin][2][2];           //! and recentering
80   Float_t fWidthQ[nCentrBin][2][2];          //! ...
81   Float_t fMeanQv3[nCentrBin][2][2];         //! also for v3
82   Float_t fWidthQv3[nCentrBin][2][2];        //! ...
83
84   TProfile *fHResTPCv0A2;   //! TProfile for subevent resolution (output)
85   TProfile *fHResTPCv0C2;   //! TProfile for subevent resolution (output)
86   TProfile *fHResv0Cv0A2;   //! TProfile for subevent resolution (output)
87   TProfile *fHResTPCv0A3;    //! also for v3
88   TProfile *fHResTPCv0C3;   //! also for v3
89   TProfile *fHResv0Cv0A3;   //! also for v3
90
91   TH2F *fPhiRPv0A;          //! EP distribution vs. centrality (v2)
92   TH2F *fPhiRPv0C;          //! EP distribution vs. centrality (v2)
93   TH2F *fPhiRPv0Av3;      //! EP distribution vs. centrality (v3)
94   TH2F *fPhiRPv0Cv3;      //! EP distribution vs. centrality (v3)
95
96   AliFlowVZEROQA *fQA;            //! QA histos (v2)
97   AliFlowVZEROQA *fQA2;           //! QA histos (v2)
98   AliFlowVZEROQA *fQAv3;        //! QA histos (v3)
99   AliFlowVZEROQA *fQA2v3;       //! QA histos (v3)
100
101   AliFlowBayesianPID *fPID;            //! PID class for the Bayesian probabilities
102  
103   TTree *fTree;                        //! tree to debug EP (if needed)
104
105   Float_t fCentrality;  //! current centrality for the tree
106   Float_t evPlAngV0ACor2;   //! subevent EPs (v2)
107   Float_t evPlAngV0CCor2;   //! subevent EPs (v2)
108   Float_t evPlAng2;   //! subevent EPs (v2)
109   Float_t evPlAngV0ACor3;   //! subevent EPs (v3)
110   Float_t evPlAngV0CCor3;   //! subevent EPs (v3)
111   Float_t evPlAng3;   //! subevent EPs (v3)
112
113   AliFlowVZEROResults *fContAllChargesV0A; //! results
114   AliFlowVZEROResults *fContAllChargesV0C; //! results
115   AliFlowVZEROResults *fContAllChargesV0Av3; //! results
116   AliFlowVZEROResults *fContAllChargesV0Cv3; //! results
117   AliFlowVZEROResults *fContAllChargesMC; //! results
118   AliFlowVZEROResults *fContAllChargesMCv3; //! results
119
120
121   ClassDef(AliAnalysisTaskVnV0, 4);    //Analysis task v2 and v3 analysis on AOD
122 };
123
124 #endif