]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskPi0V2.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskPi0V2.h
1 /* $Id: AliAnalysisTaskPi0V2.h 45956 2010-12-10 12:55:37Z agheata $ */
2
3 #ifndef ALIANALYSISTASKPI0V2_H
4 #define ALIANALYSISTASKPI0V2_H
5
6 class TH1F;
7 class TH2F;
8 class TH3F;
9 class TList;
10 class AliESDCaloCluster;
11 class AliVCluster;
12 class AliESDtrackCuts;
13 class AliESDEvent;
14 class THnSparse;
15 class TClonesArray;
16 class TString;
17 class TProfile;
18 class AliOADBContainer;
19 class AliEPFlattener;
20
21 #ifndef ALIANALYSISTASKSE_H
22 #include "AliAnalysisTaskSE.h"
23 #endif
24
25 class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
26  public:
27     AliAnalysisTaskPi0V2();
28     AliAnalysisTaskPi0V2(const char *name);
29     virtual ~AliAnalysisTaskPi0V2();
30     
31     virtual void     UserCreateOutputObjects();
32     virtual void     UserExec(Option_t *option);
33     virtual void     Terminate(Option_t *);
34     Double_t            GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax) const;
35     Double_t            GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
36     Bool_t              IsWithinFiducialVolume(Short_t id) const;
37     Bool_t              IsGoodCluster(const AliVCluster *c) const;
38     Bool_t              IsGoodClusterV1(const AliVCluster *c) const;
39     Bool_t              IsGoodPion(const TLorentzVector& p1, const TLorentzVector& p2) const;
40     void                FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC);
41     void                FillCluster(const TLorentzVector& p1, Double_t EPV0r, Double_t EPV0C, Double_t EPTPC, AliVCluster *c);
42     void                GetMom(TLorentzVector& p, const AliVCluster *c, Double_t *vertex);              
43     void                SetVtxCut(Double_t v )          { fVtxCut     =v ;}
44     void                SetClusNcell(Double_t c )       { fNcellCut   =c ;}
45     void                SetClusE(Double_t e )           { fECut       =e ;}
46     void                SetClusEta(Double_t e )         { fEtaCut     =e ;}
47     void                SetClusM02(Double_t m )         { fM02Cut     =m ;}
48     void                SetDrCut(Double_t m )           { fDrCut      =m ;}
49     void                SetPi0Asy(Double_t a )          { fPi0AsyCut  =a ;}
50     void                SetTracksName(const char *n)    { fTracksName =n ;}
51     void                SetTrigClass(const char *n)     { fTrigClass  =n ;} 
52     void                SetV1ClusName(const char *n)    { fV1ClusName =n ;} 
53     void                SetV2ClusName(const char *n)    { fV2ClusName =n ;} 
54     Int_t               ConvertToInternalRunNumber(Int_t n);
55     void                FillEPQA();
56     void                SetIsV1Clus(Bool_t e)           { isV1Clus     =e  ;}
57     void                SetIsPHOSCali(Bool_t e)         { isPhosCali   =e  ;}
58     void                SetIsCentFlat(Bool_t e)         { isCentFlat   =e  ;}
59     void                SetIsFullHist(Bool_t e)         { isFullHist   =e  ;}
60     void                SetFlatteningData(); // phos flattening
61     Double_t            ApplyFlattening(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
62     Double_t            ApplyFlatteningV0A(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
63     Double_t            ApplyFlatteningV0C(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
64     
65
66     
67  private:
68     TList                       *fOutput;               //! Output list
69     AliESDEvent                 *fESD;                  //!ESD object
70     AliAODEvent                 *fAOD;                  //!AOD object
71     TString                     fTracksName;            // name of track collection
72     TString                     fV1ClusName;            // name of V1 Clus collection
73     TString                     fV2ClusName;            // name of V1 Clus collection
74     TString                     fTrigClass;             // trigger class name for event selection
75     TClonesArray                *fTracks;               //! pico tracks specific for Skim ESD
76     TClonesArray                *fV1Clus;               //! Cluster Array for V1
77     TClonesArray                *fV2Clus;               //! Cluster Array for V2
78     Int_t                       fRunNumber;             //! Run numbers
79     Int_t                       fInterRunNumber;        //! Run numbers
80     Double_t                    fVtxCut;                // vertex cut
81     Double_t                    fNcellCut;              // N cells Cut
82     Double_t                    fECut;                  // Cluster E cut
83     Double_t                    fEtaCut;                // Cluster Eta Cut
84     Double_t                    fM02Cut;                // Cluster long axis cut
85     Double_t                    fDrCut;                 // Cluster long axis cut
86     Bool_t                      fPi0AsyCut;             // pion Asymetry cut 0=off 1=on
87     Bool_t                      isV1Clus;               // pion Asymetry cut 0=off 1=on
88     Bool_t                      isPhosCali;             // use Phos flattening
89     Bool_t                      isCentFlat;             // use the centrality flatten
90     Bool_t                      isFullHist;             // remove some histo to save memory 
91     Double_t                    fCentrality;            //! Centrality
92     Double_t                    fEPTPC;                 //! Evt plane TPC
93     Double_t                    fEPTPCreso;             //! resolution of TPC method
94     Double_t                    fEPV0;                  //! EP V0
95     Double_t                    fEPV0A;                 //! EP V0A
96     Double_t                    fEPV0C;                 //! EP V0C
97     Double_t                    fEPV0Ar;                //! EP V0A reduced
98     Double_t                    fEPV0Cr;                //! EP V0C reduced
99     Double_t                    fEPV0r;                 //! EP V0 reduced
100     Double_t                    fEPV0AR4;               //! EP V0A ring4 only
101     Double_t                    fEPV0AR5;               //! EP V0A ring5 only
102     Double_t                    fEPV0AR6;               //! EP V0A ring6 only
103     Double_t                    fEPV0AR7;               //! EP V0A ring7 only
104     Double_t                    fEPV0CR0;               //! EP V0C ring0 only   
105     Double_t                    fEPV0CR1;               //! EP V0C ring1 only   
106     Double_t                    fEPV0CR2;               //! EP V0C ring2 only   
107     Double_t                    fEPV0CR3;               //! EP V0C ring3 only   
108
109     TH1F                        *hEvtCount;             //!
110     TH1F                        *hCent;                 //!
111   
112     TProfile                    *h2DcosV0A;             //!
113     TProfile                    *h2DsinV0A;             //!
114     TProfile                    *h2DcosV0C;             //!
115     TProfile                    *h2DsinV0C;             //!
116     TProfile                    *h2DcosTPC;             //!
117     TProfile                    *h2DsinTPC;             //!
118
119     TH2F                        *hEPTPC;                //! 2-D histo EPTPC  vs cent
120     TH2F                        *hresoTPC;              //! 2-D histo TPC resolution vs cent
121     TH2F                        *hEPV0;                 //! 2-D histo EPV0   vs cent
122     TH2F                        *hEPV0A;                //! 2-D histo EPV0A  vs cent
123     TH2F                        *hEPV0C;                //! 2-D histo EPV0C  vs cent
124     TH2F                        *hEPV0Ar;               //! 2-D histo EPV0Ar vs cent
125     TH2F                        *hEPV0Cr;               //! 2-D histo EPV0Cr vs cent
126     TH2F                        *hEPV0r;                //! 2-D histo EPV0r  vs cent
127     TH2F                        *hEPV0AR4;              //! 2-D histo EPV0AR4 vs cent
128     TH2F                        *hEPV0AR7;              //! 2-D histo EPV0AR7 vs cent
129     TH2F                        *hEPV0CR0;              //! 2-D histo EPV0AR0 vs cent
130     TH2F                        *hEPV0CR3;              //! 2-D histo EPV0AR3 vs cent
131
132     TH2F                        *hEPTPCCor;             //! 2-D histo EPTPC vs cent after PHOS Correct
133     TH2F                        *hEPV0ACor;             //! 2-D histo EPV0A vs cent after PHOS Correct
134     TH2F                        *hEPV0CCor;             //! 2-D histo EPV0C vs cent after PHOS Correct
135
136     TH2F                        *hdifV0Ar_V0Cr;         //! 2-D histo diff V0Ar, V0Cr vs cent
137     TH2F                        *hdifV0A_V0CR0;         //! 2-D histo diff V0A, V0CR0 vs cent
138     TH2F                        *hdifV0A_V0CR3;         //! 2-D histo diff V0A, V0CR3 vs cent
139     TH2F                        *hdifV0ACR0_V0CR3;      //! 2-D histo diff V0CR0, V0CR3 vs cent
140     TH2F                        *hdifV0C_V0AR4;         //! 2-D histo diff V0C, V0AR4 vs cent
141     TH2F                        *hdifV0C_V0AR7;         //! 2-D histo diff V0C, V0AR7 vs cent
142     TH2F                        *hdifV0AR4_V0AR7;       //! 2-D histo diff V0AR7, V0AR4 vs cent
143
144     TH2F                        *hdifV0A_V0C;           //! 2-D histo diff V0A - V0C
145     TH2F                        *hdifV0A_TPC;           //! 2-D histo diff V0A - TPC
146     TH2F                        *hdifV0C_TPC;           //! 2-D histo diff V0C - TPC
147     TH2F                        *hdifV0C_V0A;           //! 2-D histo diff V0C - V0A
148
149     TH2F                        *hM02vsPtA;             //! 2-D histo clus M02 vs Pt before cut
150     TH2F                        *hM02vsPtB;             //! 2-D histo clus M02 vs Pt after cut
151     TH2F                        *hClusDxDZA;            //! 2-D histo clus Dx vs Dz before
152     TH2F                        *hClusDxDZB;            //! 2-D histo clus Dx vs Dz after
153
154     TH3F                        *hdifEMC_EPV0A;         //! 3-D histo dif phi in EMC with EPV0A
155     TH3F                        *hdifEMC_EPV0C;         //! 3-D histo dif phi in EMC with EPV0C
156
157     TH3F                        *hdifful_EPV0A;         //! 3-D histo dif phi in full with EPV0A
158     TH3F                        *hdifful_EPV0C;         //! 3-D histo dif phi in full with EPV0C
159
160     TH3F                        *hdifout_EPV0A;         //! 3-D histo dif phi out EMC with EPV0A
161     TH3F                        *hdifout_EPV0C;         //! 3-D histo dif phi out EMC with EPV0C
162
163     TH3F                        *hCv2EMC_EPV0A;         //! 3-D histo for raw charged v2 in EMC with EPV0A
164     TH3F                        *hCv2EMC_EPV0C;         //! 3-D histo for raw charged v2 in EMC with EPV0C
165
166     TH3F                        *hCv2ful_EPV0A;         //! 3-D histo for raw charged v2 in full with EPV0A
167     TH3F                        *hCv2ful_EPV0C;         //! 3-D histo for raw charged v2 in full with EPV0A
168
169     TH3F                        *hCv2out_EPV0A;         //! 3-D histo for raw charged v2 in out with EPV0A
170     TH3F                        *hCv2out_EPV0C;         //! 3-D histo for raw charged v2 in out with EPV0A
171
172     TH3F                        *hclusDif_EPV0A;        //! 3-D histo for dif phi with EPV0A
173     TH3F                        *hclusDif_EPV0C;        //! 3-D histo for dif phi with EPV0A
174
175     TH3F                        *hclusv2_EPV0A;         //! 3-D histo for raw cluster v2 in out with EPV0A
176     TH3F                        *hclusv2_EPV0C;         //! 3-D histo for raw cluster v2 in out with EPV0C
177
178     TString                      fEPcalibFileName;      // Name for calibration
179     AliEPFlattener              *fTPCFlat;              //! Object for flattening of TPC
180     AliEPFlattener              *fV0AFlat;              //! Object for flattening of V0A
181     AliEPFlattener              *fV0CFlat;              //! Object for flattening of V0C
182
183     THnSparse                   *fClusterPbV0;          //!
184     THnSparse                   *fClusterPbV0A;         //!
185     THnSparse                   *fClusterPbV0C;         //!
186     THnSparse                   *fClusterPbTPC;         //!
187
188     THnSparse                   *fHEPV0A;               //! Flow 5-D Histo
189     THnSparse                   *fHEPV0C;               //! Flow 5-D Histo
190     THnSparse                   *fHEPTPC;               //! Flow 5-D Histo
191
192     THnSparse                   *fHEPV0AM2;             //! Flow 5-D Histo
193     THnSparse                   *fHEPV0CM2;             //! Flow 5-D Histo
194     THnSparse                   *fHEPTPCM2;             //! Flow 5-D Histo
195     
196     AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
197     AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
198     
199     ClassDef(AliAnalysisTaskPi0V2, 6); // example of analysis
200 };
201 #endif