]>
Commit | Line | Data |
---|---|---|
f2f73202 | 1 | #ifndef AliAnalysisTaskEMCALPhoton_h\r |
2 | #define AliAnalysisTaskEMCALPhoton_h\r | |
33d8da67 | 3 | \r |
cd231d42 | 4 | // $Id$\r |
5 | \r | |
33d8da67 | 6 | class TH1;\r |
7 | class TH2;\r | |
8 | class TObjArray;\r | |
9 | class AliESDEvent;\r | |
10 | class AliMCEvent;\r | |
11 | class AliStack;\r | |
12 | class AliESDtrack;\r | |
13 | class AliESDtrackCuts;\r | |
14 | class AliESDCaloCells;\r | |
15 | class AliEMCALGeometry;\r | |
16 | class AliVCluster;\r | |
17 | class AliAnalysisTaskEMCALClusterizeFast;\r | |
18 | class TParticle;\r | |
b2d49404 | 19 | class AliPhotonHeaderObj;\r |
20 | class AliPhotonConvObj;\r | |
21 | class AliPhotonClusterObj;\r | |
22 | class AliPhotonCellObj;\r | |
33d8da67 | 23 | \r |
24 | #include "AliAnalysisTaskSE.h"\r | |
25 | \r | |
26 | class 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 | 120 | class 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 | 142 | class 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 | 175 | class 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 | 217 | class 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 | 236 | class 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 | 251 | class 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 |