]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALPhoton.h
new dir structure for MakeRawProduction.C
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALPhoton.h
CommitLineData
f2f73202 1#ifndef AliAnalysisTaskEMCALPhoton_h\r
2#define AliAnalysisTaskEMCALPhoton_h\r
33d8da67 3\r
cd231d42 4// $Id$\r
5\r
33d8da67 6class TH1;\r
7class TH2;\r
8class TObjArray;\r
9class AliESDEvent;\r
10class AliMCEvent;\r
11class AliStack;\r
12class AliESDtrack;\r
13class AliESDtrackCuts;\r
14class AliESDCaloCells;\r
15class AliEMCALGeometry;\r
16class AliVCluster;\r
17class AliAnalysisTaskEMCALClusterizeFast;\r
18class TParticle;\r
b2d49404 19class AliPhotonHeaderObj;\r
20class AliPhotonConvObj;\r
21class AliPhotonClusterObj;\r
22class AliPhotonCellObj;\r
33d8da67 23\r
24#include "AliAnalysisTaskSE.h"\r
25\r
26class AliAnalysisTaskEMCALPhoton : public AliAnalysisTaskSE {\r
27 public:\r
f2f73202 28 AliAnalysisTaskEMCALPhoton();\r
33d8da67 29 AliAnalysisTaskEMCALPhoton(const char *name);\r
30 virtual ~AliAnalysisTaskEMCALPhoton() {}\r
31\r
32 void UserCreateOutputObjects();\r
33 void UserExec(Option_t *option);\r
34 void Terminate(Option_t *);\r
35\r
36 void SetTrackCuts(AliESDtrackCuts *c) { fTrCuts = c; }\r
37 void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; }\r
38 void SetTimeResTOF(Float_t tr = 130.) { fTimeResTOF = tr; }\r
39 void SetMipResponseTPC(Float_t mr = 47.9) { fMipResponseTPC = mr; }\r
40 void SetGeoName(const char *n) { fGeoName = n; }\r
41 void SetPeriod(const char *n) { fPeriod = n; }\r
42 void SetTrainMode(Bool_t t) { fIsTrain = t; }\r
43 void SetGridMode(Bool_t g) { fIsGrid = g; }\r
44 void SetClusThreshold(Double_t et) { fClusThresh = et; }\r
45 void SetClusterizer(AliAnalysisTaskEMCALClusterizeFast *c) { fClusterizer = c; }\r
46 void SetMcMode(Bool_t mc) { fIsMC = mc; }\r
40b40be6 47 void SetDebugMode(Bool_t d) { fDebug = d; }\r
33d8da67 48 void FindConversions();\r
49 void FillMyCells();\r
50 void FillMyClusters();\r
51 void FillMyAltClusters();\r
3b37c011 52 void FillIsoTracks();\r
33d8da67 53 void FillMcPart(TParticle *mcP, Int_t ipart, Int_t itrack);\r
54 void GetMcParts();\r
55 Double_t GetTrackIsolation(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.) const;\r
56 Double_t GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.) const;\r
57 // Double_t GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.) const;\r
58 Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);\r
59 Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; \r
60 \r
61 protected:\r
62 AliESDtrackCuts *fTrCuts; // track cuts\r
63 AliESDtrackCuts *fPrTrCuts; // primary track cuts\r
64 TObjArray *fSelTracks; //!pointer to selected inclusive tracks\r
65 TObjArray *fSelPrimTracks; //!pointer to selected primary tracks\r
b2d49404 66 TClonesArray *fPhotConvArray; //!array of AliPhotonConvObj\r
67 TClonesArray *fMyClusts; //!array of AliPhotonClusterObj\r
68 TClonesArray *fMyAltClusts; //!array of AliPhotonClusterObj from the alternative clusterizer\r
69 TClonesArray *fMyCells; //!array of AliPhotonCellObj\r
70 TClonesArray *fMyTracks; //!array of AliPhotonTrackObj\r
71 TClonesArray *fMyMcParts; //!array of AliPhotonMcPartObj\r
72 AliPhotonHeaderObj *fHeader; //!\r
33d8da67 73 TRefArray *fCaloClusters; //!pointer to EMCal clusters\r
74 TClonesArray *fCaloClustersNew; //!pointer to EMCal clusters v2\r
75 AliESDCaloCells *fEMCalCells; //!pointer to EMCal cells\r
76 AliEMCALGeometry *fGeom; // geometry utils\r
77 Float_t fTimeResTOF; //TOF time resolution for track PID\r
78 Float_t fMipResponseTPC; //TPC mip response for track pid\r
79 TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1)\r
80 TString fPeriod; // string to the LHC period\r
81 Bool_t fIsTrain; //variable to set train mode\r
82 Bool_t fIsMC; //variable to switch mcparts branch on/off\r
40b40be6 83 Bool_t fDebug; //variable to switch debug on/off\r
33d8da67 84 Bool_t fIsGrid; //variable to set grid mode\r
85 Double_t fClusThresh; //!energy threshold for cluster be saved\r
86 AliAnalysisTaskEMCALClusterizeFast *fClusterizer; //!pointer for alternative clusterizer\r
87 TString fCaloClustersName; //alternative clusterizer name\r
c5ac19f6 88\r
33d8da67 89 \r
90 \r
91 private:\r
92 AliESDEvent *fESD; //! ESD object\r
93 AliMCEvent *fMCEvent; //! MC event object\r
94 AliStack *fStack; //!MC particles stack object\r
95 \r
96 TList *fOutputList; //! Output list\r
97 TTree *fTree; //!output tree\r
98 \r
99 //conversion histograms\r
100 TH2F *fNV0sBefAndAftRerun; //!check the number of V0s before and after rerun\r
101 TH2F *fConversionVtxXY; //! X x Y of found conversion vertices\r
102 TH1F *fInvMassV0; //!invariant mass from v0->GetEffMass()\r
103 TH1F *fInvMassV0KF; //!invariant mass from the v0 tracks\r
104 TH1F *fInvMassV0SS; //!invariant mass from the tracks in the "dirty" finder\r
105 TH2F *fDedxPAll; //!dE/dx vs p of all selected tracks\r
106 \r
107\r
108 \r
109 AliAnalysisTaskEMCALPhoton(const AliAnalysisTaskEMCALPhoton&); // not implemented\r
110 AliAnalysisTaskEMCALPhoton& operator=(const AliAnalysisTaskEMCALPhoton&); // not implemented\r
111 \r
112 ClassDef(AliAnalysisTaskEMCALPhoton, 1); // example of analysis\r
113};\r
114\r
115#endif\r
116\r
b2d49404 117#ifndef AliPhotonObjs_h\r
118#define AliPhotonObjs_h\r
33d8da67 119\r
b2d49404 120class AliPhotonHeaderObj : public TObject\r
33d8da67 121{\r
b2d49404 122 public: AliPhotonHeaderObj() :\r
c5ac19f6 123 TObject(), fInputFileName(""), fTrClassMask(0), fTrCluster(0), fV0Cent(0), fV0(0), fCl1Cent(0), \r
b8b781cb 124 fCl1(0), fTrCent(0), fTr(0), fNClus(0), fNCells(0), fTrackMult(0) {;}\r
33d8da67 125 public:\r
c5ac19f6 126 TString fInputFileName; // used for normalization purposes in MC productions\r
33d8da67 127 ULong64_t fTrClassMask; // trigger class mask\r
128 UChar_t fTrCluster; // trigger cluster mask\r
129 Double32_t fV0Cent; //[0,0,16] v0 cent\r
130 Double32_t fV0; //[0,0,16] v0 result used for cent \r
131 Double32_t fCl1Cent; //[0,0,16] cl1 cent\r
132 Double32_t fCl1; //[0,0,16] cl1 result used for cent \r
133 Double32_t fTrCent; //[0,0,16] tr cent\r
134 Double32_t fTr; //[0,0,16] tr result used for cent \r
135 Int_t fNClus;\r
136 Int_t fNCells;\r
b8b781cb 137 Int_t fTrackMult;\r
33d8da67 138\r
c5ac19f6 139 ClassDef(AliPhotonHeaderObj,4)\r
33d8da67 140};\r
141\r
b2d49404 142class AliPhotonConvObj : public TObject\r
33d8da67 143{\r
b2d49404 144 public: AliPhotonConvObj() : \r
33d8da67 145 TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fMass(0), fMcLabel(-1),\r
146 fNegPt(0), fNegEta(0), fNegPhi(0), fNegDedx(0), fNegMcLabel(-1),\r
147 fPosPt(0), fPosEta(0), fPosPhi(0), fPosDedx(0), fPosMcLabel(-1) {;}\r
148 public:\r
149 Double32_t fPt; //[0,0,16] pt\r
150 Double32_t fEta; //[0,0,16] eta\r
151 Double32_t fPhi; //[0,0,16] phi\r
152 Double32_t fVR; //[0,0,16] prod r (cylinder)\r
153 Double32_t fVEta; //[0,0,16] prod eta\r
154 Double32_t fVPhi; //[0,0,16] prod phi\r
155 Double32_t fMass; //[0,0,16] if correctly filled, should be <50 MeV\r
156 Short_t fMcLabel; //corresponding MC label\r
157\r
158 //negative daughter\r
159 Double32_t fNegPt; //[0,0,16] pt\r
160 Double32_t fNegEta; //[0,0,16] eta\r
161 Double32_t fNegPhi; //[0,0,16] phi\r
162 Double32_t fNegDedx; //[0,0,16] if correctly filled, should be <50 MeV\r
163 Short_t fNegMcLabel; //corresponding MC label\r
164\r
165 //positive daughter\r
166 Double32_t fPosPt; //[0,0,16] pt\r
167 Double32_t fPosEta; //[0,0,16] eta\r
168 Double32_t fPosPhi; //[0,0,16] phi\r
169 Double32_t fPosDedx; //[0,0,16] if correctly filled, should be <50 MeV\r
170 Short_t fPosMcLabel; //corresponding MC label\r
171\r
b2d49404 172 ClassDef(AliPhotonConvObj,1) // conversion class\r
33d8da67 173\r
174};\r
b2d49404 175class AliPhotonClusterObj : public TObject\r
33d8da67 176{\r
b2d49404 177 public: AliPhotonClusterObj() : \r
33d8da67 178 TObject(), fE(0), fEt(0), fR(0), fEta(0), fPhi(0), fN(0),fEmax(0),fTmax(0), fIdmax(0), fEcross(0),fDisp(-1), \r
179 fM20(-1), fM02(-1),fTrDEta(0), fTrDPhi(0), fTrEp(0), fTrDedx(0), fTrIso01(0), fTrIso02(0), fTrIso03(0), fTrIso04(0), \r
180 fTrPhiBand01(0), fTrPhiBand02(0), fTrPhiBand03(0), fTrPhiBand04(0), fCellsAbsId(""),fMcLabel(-1)\r
181 {;}\r
182 public:\r
183 Double32_t fE;\r
184 Double32_t fEt;\r
185 Double32_t fR;\r
186 Double32_t fEta;\r
187 Double32_t fPhi;\r
188 UShort_t fN;\r
189 Double_t fEmax;\r
190 Double_t fTmax;\r
191 Short_t fIdmax;\r
192 Double_t fEcross;\r
193 Double32_t fDisp;\r
194 Double32_t fM20;\r
195 Double32_t fM02;\r
196 Double32_t fTrDEta;\r
197 Double32_t fTrDPhi;\r
198 Double32_t fTrEp;\r
199 Double32_t fTrDedx;\r
200 Double32_t fTrIso01;\r
201 Double32_t fTrIso02;\r
202 Double32_t fTrIso03;\r
203 Double32_t fTrIso04;\r
204 Double32_t fTrPhiBand01;\r
205 Double32_t fTrPhiBand02;\r
206 Double32_t fTrPhiBand03;\r
207 Double32_t fTrPhiBand04;\r
208 TString fCellsAbsId; //cluster cells absid\r
209 Short_t fMcLabel;\r
210 \r
211 \r
212 \r
b2d49404 213 ClassDef(AliPhotonClusterObj,6) // cluster class\r
33d8da67 214\r
215};\r
216\r
b2d49404 217class AliPhotonCellObj : public TObject\r
33d8da67 218{\r
b2d49404 219 public: AliPhotonCellObj() : \r
33d8da67 220 TObject(), fAbsID(-1), fE(0), fEt(0), fEta(0), fPhi(0), fTime(0)\r
221 {;}\r
222 public:\r
223 Short_t fAbsID;\r
224 Double32_t fE;\r
225 Double32_t fEt;\r
226 Double32_t fEta;\r
227 Double32_t fPhi;\r
228 Double32_t fTime;\r
229 \r
230 \r
231 \r
b2d49404 232 ClassDef(AliPhotonCellObj,1) // cell class\r
33d8da67 233\r
234};\r
235\r
b2d49404 236class AliPhotonTrackObj : public TObject\r
33d8da67 237{\r
b2d49404 238 public: AliPhotonTrackObj() :\r
33d8da67 239 TObject(), fPt(0), fEta(0), fPhi(0), fDedx(0), fCharge(0), fMcLabel(-1) {;}\r
240 public:\r
241 Double32_t fPt;\r
242 Double32_t fEta;\r
243 Double32_t fPhi;\r
244 Double32_t fDedx;\r
245 Short_t fCharge;\r
246 Short_t fMcLabel;\r
247\r
b2d49404 248 ClassDef(AliPhotonTrackObj,3)\r
33d8da67 249};\r
250\r
b2d49404 251class AliPhotonMcPartObj : public TObject\r
33d8da67 252{\r
b2d49404 253 public: AliPhotonMcPartObj() :\r
33d8da67 254 TObject(), fLabel(-1), fPdg(0), fPt(0), fEta(0), fPhi(0), \r
255 fVR(0), fVEta(0), fVPhi(0), fMother(-1) {;}\r
256 public:\r
257 Short_t fLabel;\r
258 Short_t fPdg;\r
259 Double32_t fPt;\r
260 Double32_t fEta;\r
261 Double32_t fPhi;\r
262 Double32_t fVR;\r
263 Double32_t fVEta;\r
264 Double32_t fVPhi;\r
265 Short_t fMother;\r
266\r
b2d49404 267 ClassDef(AliPhotonMcPartObj,1)\r
33d8da67 268};\r
269\r
270#endif\r