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