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