]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskPi0V2.h
RWGCF converted to native cmake
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskPi0V2.h
CommitLineData
04b116e8 1/* $Id: AliAnalysisTaskPi0V2.h 45956 2010-12-10 12:55:37Z agheata $ */
cd0e5e33 2
8071d5b2 3#ifndef ALIANALYSISTASKPI0V2_H
4#define ALIANALYSISTASKPI0V2_H
3c40321c 5
6class TH1F;
7class TH2F;
04b116e8 8class TH3F;
3c40321c 9class TList;
10class AliESDCaloCluster;
ceba2d0c 11class AliVCluster;
3c40321c 12class AliESDtrackCuts;
13class AliESDEvent;
04b116e8 14class THnSparse;
e5ba16b4 15class TClonesArray;
16class TString;
79ad78fd 17class TProfile;
79ad78fd 18class AliOADBContainer;
898aee41 19class AliEPFlattener;
3c40321c 20
04b116e8 21#ifndef ALIANALYSISTASKSE_H
3c40321c 22#include "AliAnalysisTaskSE.h"
04b116e8 23#endif
3c40321c 24
25class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
26 public:
965c985f 27 AliAnalysisTaskPi0V2();
8f40bd27 28 AliAnalysisTaskPi0V2(const char *name);
04b116e8 29 virtual ~AliAnalysisTaskPi0V2();
3c40321c 30
04b116e8 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;
ceba2d0c 37 Bool_t IsGoodCluster(const AliVCluster *c) const;
38 Bool_t IsGoodClusterV1(const AliVCluster *c) const;
04b116e8 39 Bool_t IsGoodPion(const TLorentzVector& p1, const TLorentzVector& p2) const;
79ad78fd 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);
ceba2d0c 42 void GetMom(TLorentzVector& p, const AliVCluster *c, Double_t *vertex);
670ffa5c 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 ;}
c45a0734 48 void SetDrCut(Double_t m ) { fDrCut =m ;}
670ffa5c 49 void SetPi0Asy(Double_t a ) { fPi0AsyCut =a ;}
e5ba16b4 50 void SetTracksName(const char *n) { fTracksName =n ;}
d21ea448 51 void SetTrigClass(const char *n) { fTrigClass =n ;}
52 void SetV1ClusName(const char *n) { fV1ClusName =n ;}
53 void SetV2ClusName(const char *n) { fV2ClusName =n ;}
7bb82cc2 54 Int_t ConvertToInternalRunNumber(Int_t n);
55 void FillEPQA();
79ad78fd 56 void SetIsV1Clus(Bool_t e) { isV1Clus =e ;}
57 void SetIsPHOSCali(Bool_t e) { isPhosCali =e ;}
98c280d5 58 void SetIsCentFlat(Bool_t e) { isCentFlat =e ;}
3b7c7423 59 void SetIsFullHist(Bool_t e) { isFullHist =e ;}
79ad78fd 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
7bb82cc2 64
04b116e8 65
3c40321c 66
67 private:
7bb82cc2 68 TList *fOutput; //! Output list
69 AliESDEvent *fESD; //!ESD object
79ad78fd 70 AliAODEvent *fAOD; //!AOD object
7bb82cc2 71 TString fTracksName; // name of track collection
ceba2d0c 72 TString fV1ClusName; // name of V1 Clus collection
73 TString fV2ClusName; // name of V1 Clus collection
7bb82cc2 74 TString fTrigClass; // trigger class name for event selection
75 TClonesArray *fTracks; //! pico tracks specific for Skim ESD
ceba2d0c 76 TClonesArray *fV1Clus; //! Cluster Array for V1
77 TClonesArray *fV2Clus; //! Cluster Array for V2
7bb82cc2 78 Int_t fRunNumber; //! Run numbers
79ad78fd 79 Int_t fInterRunNumber; //! Run numbers
7bb82cc2 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
cd0e5e33 85 Double_t fDrCut; // Cluster long axis cut
7bb82cc2 86 Bool_t fPi0AsyCut; // pion Asymetry cut 0=off 1=on
8f4922cb 87 Bool_t isV1Clus; // pion Asymetry cut 0=off 1=on
79ad78fd 88 Bool_t isPhosCali; // use Phos flattening
98c280d5 89 Bool_t isCentFlat; // use the centrality flatten
3b7c7423 90 Bool_t isFullHist; // remove some histo to save memory
7bb82cc2 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; //!
98c280d5 110 TH1F *hCent; //!
7bb82cc2 111
79ad78fd 112 TProfile *h2DcosV0A; //!
113 TProfile *h2DsinV0A; //!
114 TProfile *h2DcosV0C; //!
115 TProfile *h2DsinV0C; //!
116 TProfile *h2DcosTPC; //!
117 TProfile *h2DsinTPC; //!
7bb82cc2 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
04b116e8 131
79ad78fd 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
e50db689 136 TH2F *hdifV0Ar_V0Cr; //! 2-D histo diff V0Ar, V0Cr vs cent
04b116e8 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
cc57d293 149 TH2F *hM02vsPtA; //! 2-D histo clus M02 vs Pt before cut
150 TH2F *hM02vsPtB; //! 2-D histo clus M02 vs Pt after cut
8f4922cb 151 TH2F *hClusDxDZA; //! 2-D histo clus Dx vs Dz before
152 TH2F *hClusDxDZB; //! 2-D histo clus Dx vs Dz after
cc57d293 153
93df010a 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
93df010a 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
93df010a 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
91d49d74 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
cd0e5e33 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
04b116e8 182
cd0e5e33 183 THnSparse *fClusterPbV0; //!
184 THnSparse *fClusterPbV0A; //!
185 THnSparse *fClusterPbV0C; //!
186 THnSparse *fClusterPbTPC; //!
7bb82cc2 187
1accedbd 188 THnSparse *fHEPV0A; //! Flow 5-D Histo
189 THnSparse *fHEPV0C; //! Flow 5-D Histo
190 THnSparse *fHEPTPC; //! Flow 5-D Histo
d118f9e0 191
192 THnSparse *fHEPV0AM2; //! Flow 5-D Histo
193 THnSparse *fHEPV0CM2; //! Flow 5-D Histo
194 THnSparse *fHEPTPCM2; //! Flow 5-D Histo
3c40321c 195
04b116e8 196 AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
197 AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
198
d118f9e0 199 ClassDef(AliAnalysisTaskPi0V2, 6); // example of analysis
3c40321c 200};
3c40321c 201#endif