]>
Commit | Line | Data |
---|---|---|
2fbf38ac | 1 | #ifndef ALIANALYSISETMONTECARLO_H |
2 | #define ALIANALYSISETMONTECARLO_H | |
4d376d01 | 3 | //_________________________________________________________________________ |
cf6522d1 | 4 | // Utility Class for transverse energy studies |
5 | // Base class for MC analysis | |
6 | // - MC output | |
7 | // | |
8 | //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL) | |
9 | //_________________________________________________________________________ | |
2fbf38ac | 10 | #include "AliAnalysisEt.h" |
cf6522d1 | 11 | class TParticle; |
e2ee5727 | 12 | class TH3F; |
ef647350 | 13 | class TH2I; |
14 | class AliPHOSGeoUtils; | |
4d376d01 | 15 | class AliPHOSGeometry; |
ef647350 | 16 | class AliStack; |
0651f6b4 | 17 | //class AliMCEvent; |
18 | //class AliESDEvent; | |
2fbf38ac | 19 | |
20 | class AliAnalysisEtMonteCarlo : public AliAnalysisEt | |
21 | { | |
22 | ||
23 | public: | |
ef647350 | 24 | |
25 | AliAnalysisEtMonteCarlo(); | |
26 | virtual ~AliAnalysisEtMonteCarlo(); | |
cf6522d1 | 27 | |
2fbf38ac | 28 | virtual Int_t AnalyseEvent(AliVEvent* event); |
ef647350 | 29 | virtual Int_t AnalyseEvent(AliVEvent* event, AliVEvent* event2); |
30 | //virtual Int_t AnalyseEvent(AliMCEvent* event, AliESDEvent* event2); | |
2fbf38ac | 31 | |
32 | virtual void Init(); | |
ce546038 | 33 | virtual void ResetEventValues(); |
34 | virtual void CreateHistograms(); | |
0651f6b4 | 35 | virtual void FillOutputList(TList* list); |
13b0d3c1 | 36 | |
e2ee5727 | 37 | virtual void FillHistograms(); |
38 | ||
0861cc1f | 39 | void CalcTrackMatchVsMult(){fCalcTrackMatchVsMult = kTRUE;} |
40 | void CalcForKaonCorrection(){fCalcForKaonCorrection = kTRUE;} | |
41 | ||
13b0d3c1 | 42 | protected: |
43 | ||
44 | virtual bool TrackHitsCalorimeter(TParticle *part, Double_t magField=0.5); | |
b2c10007 | 45 | |
46 | ||
ef647350 | 47 | Int_t GetPrimMother(Int_t partIdx, AliStack *stack); |
b2c10007 | 48 | |
ef647350 | 49 | Int_t GetK0InFamily(Int_t partIdx, AliStack *stack); |
b2c10007 | 50 | |
ef647350 | 51 | Int_t PrintFamilyTree(Int_t partIdx, AliStack *stack); |
52 | Int_t PrintMothers(Int_t partIdx, AliStack *stack, Int_t gen); | |
b2c10007 | 53 | |
54 | ||
55 | ||
ce546038 | 56 | protected: |
57 | ||
58 | Double_t fImpactParameter; // b(fm), for Hijing; 0 otherwise | |
59 | Int_t fNcoll; // Ncoll, for Hijing; 1 otherwise | |
60 | Int_t fNpart; // Ncoll, for Hijing; 2 otherwise | |
b2c10007 | 61 | |
f61cec2f | 62 | TTree *fPrimaryTree; // Tree holding info on primaries |
63 | ||
4d376d01 | 64 | Double_t fTotEtWithSecondaryRemoved; // enter comment here |
65 | Double_t fTotEtSecondaryFromEmEtPrimary; // enter comment here | |
66 | Double_t fTotEtSecondary; // enter comment here | |
f61cec2f | 67 | |
4d376d01 | 68 | Int_t fPrimaryCode; // enter comment here |
69 | Int_t fPrimaryCharge; // enter comment here | |
f61cec2f | 70 | |
4d376d01 | 71 | Double_t fPrimaryE; // enter comment here |
72 | Double_t fPrimaryEt; // enter comment here | |
ce546038 | 73 | |
4d376d01 | 74 | Double_t fPrimaryPx; // enter comment here |
75 | Double_t fPrimaryPy; // enter comment here | |
76 | Double_t fPrimaryPz; // enter comment here | |
f61cec2f | 77 | |
4d376d01 | 78 | Double_t fPrimaryVx; // enter comment here |
79 | Double_t fPrimaryVy; // enter comment here | |
80 | Double_t fPrimaryVz; // enter comment here | |
f61cec2f | 81 | |
4d376d01 | 82 | Bool_t fPrimaryAccepted; // enter comment here |
b2c10007 | 83 | Bool_t fPrimaryMatched; |
84 | Int_t fDepositedCode; // enter comment here Double_t fDepositedEt; // enter comment here | |
85 | Double_t fDepositedE; | |
86 | Double_t fDepositedEt; | |
4d376d01 | 87 | Int_t fDepositedCharge; // enter comment here |
88 | ||
89 | Double_t fDepositedVx; // enter comment here | |
90 | Double_t fDepositedVy; // enter comment here | |
91 | Double_t fDepositedVz; // enter comment here | |
b2c10007 | 92 | |
93 | Bool_t fSecondary; | |
94 | ||
95 | Double_t fReconstructedE; | |
96 | Double_t fReconstructedEt; | |
f61cec2f | 97 | |
b2c10007 | 98 | Double_t fTotPx; |
99 | Double_t fTotPy; | |
100 | Double_t fTotPz; | |
f61cec2f | 101 | |
b2c10007 | 102 | |
103 | Int_t fClusterMult; | |
104 | ||
ef647350 | 105 | TH3F *fHistDecayVertexNonRemovedCharged; // Decay vertex for non-removed charged particles |
106 | TH3F *fHistDecayVertexRemovedCharged; // Decay vertex for non-removed charged particles | |
107 | TH3F *fHistDecayVertexNonRemovedNeutral; // Decay vertex for non-removed charged particles | |
108 | TH3F *fHistDecayVertexRemovedNeutral; // Decay vertex for non-removed charged particles | |
109 | ||
110 | TH2F *fHistRemovedOrNot; // If charged/neutral particles were removed or not | |
111 | ||
112 | TH2F *fHistEtNonRemovedProtons; // enter comment here | |
113 | TH2F *fHistEtNonRemovedAntiProtons; // enter comment here | |
114 | TH2F *fHistEtNonRemovedPiPlus; // enter comment here | |
115 | TH2F *fHistEtNonRemovedPiMinus; // enter comment here | |
116 | TH2F *fHistEtNonRemovedKaonPlus; // enter comment here | |
117 | TH2F *fHistEtNonRemovedKaonMinus; // enter comment here | |
118 | TH2F *fHistEtNonRemovedK0s; // enter comment here | |
119 | TH2F *fHistEtNonRemovedK0L; // enter comment here | |
120 | TH2F *fHistEtNonRemovedLambdas; // enter comment here | |
121 | TH2F *fHistEtNonRemovedElectrons; // enter comment here | |
122 | TH2F *fHistEtNonRemovedPositrons; // enter comment here | |
123 | TH2F *fHistEtNonRemovedMuPlus; // enter comment here | |
124 | TH2F *fHistEtNonRemovedMuMinus; // enter comment here | |
125 | TH2F *fHistEtNonRemovedNeutrons; // enter comment here | |
126 | TH2F *fHistEtNonRemovedAntiNeutrons; // enter comment here | |
127 | TH2F *fHistEtNonRemovedGammas; // enter comment here | |
128 | TH2F *fHistEtNonRemovedGammasFromPi0; // enter comment here | |
129 | ||
130 | TH2F *fHistEtRemovedGammas; // enter comment here | |
131 | TH2F *fHistEtRemovedNeutrons; // enter comment here | |
132 | TH2F *fHistEtRemovedAntiNeutrons; // enter comment here | |
133 | ||
134 | TH2F *fHistEtRemovedCharged; // enter comment here | |
135 | TH2F *fHistEtRemovedNeutrals; // enter comment here | |
136 | ||
137 | TH2F *fHistEtNonRemovedCharged; // enter comment here | |
138 | TH2F *fHistEtNonRemovedNeutrals; // enter comment here | |
139 | ||
140 | TH2F *fHistMultNonRemovedProtons; // enter comment here | |
141 | TH2F *fHistMultNonRemovedAntiProtons; // enter comment here | |
142 | TH2F *fHistMultNonRemovedPiPlus; // enter comment here | |
143 | TH2F *fHistMultNonRemovedPiMinus; // enter comment here | |
144 | TH2F *fHistMultNonRemovedKaonPlus; // enter comment here | |
145 | TH2F *fHistMultNonRemovedKaonMinus; // enter comment here | |
146 | TH2F *fHistMultNonRemovedK0s; // enter comment here | |
147 | TH2F *fHistMultNonRemovedK0L; // enter comment here | |
148 | TH2F *fHistMultNonRemovedLambdas; // enter comment here | |
149 | TH2F *fHistMultNonRemovedElectrons; // enter comment here | |
150 | TH2F *fHistMultNonRemovedPositrons; // enter comment here | |
151 | TH2F *fHistMultNonRemovedMuPlus; // enter comment here | |
152 | TH2F *fHistMultNonRemovedMuMinus; // enter comment here | |
153 | TH2F *fHistMultNonRemovedNeutrons; // enter comment here | |
154 | TH2F *fHistMultNonRemovedAntiNeutrons; // enter comment here | |
155 | TH2F *fHistMultNonRemovedGammas; // enter comment here | |
156 | ||
157 | TH2F *fHistMultRemovedGammas; // enter comment here | |
158 | TH2F *fHistMultRemovedNeutrons; // enter comment here | |
159 | TH2F *fHistMultRemovedAntiNeutrons; // enter comment here | |
160 | ||
161 | TH2F *fHistMultRemovedCharged; // enter comment here | |
162 | TH2F *fHistMultRemovedNeutrals; // enter comment here | |
163 | ||
164 | TH2F *fHistMultNonRemovedCharged; // enter comment here | |
165 | TH2F *fHistMultNonRemovedNeutrals; // enter comment here | |
166 | ||
167 | TH2F *fHistTrackMultvsNonRemovedCharged; // enter comment here | |
168 | TH2F *fHistTrackMultvsNonRemovedNeutral; // enter comment here | |
169 | TH2F *fHistTrackMultvsRemovedGamma; // enter comment here | |
170 | ||
171 | TH2F *fHistClusterMultvsNonRemovedCharged; // enter comment here | |
172 | TH2F *fHistClusterMultvsNonRemovedNeutral; // enter comment here | |
173 | TH2F *fHistClusterMultvsRemovedGamma; // enter comment here | |
174 | ||
175 | TH2F *fHistMultvsNonRemovedChargedE; // enter comment here | |
176 | TH2F *fHistMultvsNonRemovedNeutralE; // enter comment here | |
177 | TH2F *fHistMultvsRemovedGammaE; // enter comment here | |
178 | ||
0861cc1f | 179 | Bool_t fCalcForKaonCorrection;//turns on and off creation of kaon correction histograms |
180 | TH3F *fHistK0EDepositsVsPtInAcceptance; // enter comment here | |
181 | TH3F *fHistK0EGammaVsPtInAcceptance; // enter comment here | |
182 | TH3F *fHistK0EDepositsVsPtOutOfAcceptance; // enter comment here | |
183 | TH3F *fHistK0EGammaVsPtOutOfAcceptance; // enter comment here | |
184 | TH1F *fHistSimKaonsInAcceptance;// enter comment here | |
185 | TH1F *fHistSimK0SInAcceptance;// enter comment here | |
186 | TH1F *fHistSimKPlusInAcceptance;// enter comment here | |
187 | TH1F *fHistSimKMinusInAcceptance;// enter comment here | |
188 | TH1F *fHistSimK0LInAcceptance;// enter comment here | |
189 | TH1F *fHistSimKaonsOutOfAcceptance;// enter comment here | |
190 | TH1F *fHistSimKaonsInAcceptanceWithDepositsPrimaries;// enter comment here | |
191 | TH1F *fHistSimKaonsOutOfAcceptanceWithDepositsSecondaries;// enter comment here | |
192 | TH1F *fHistSimKaonsOutOfAcceptanceWithDepositsPrimaries;// enter comment here | |
2aab9269 | 193 | |
ef647350 | 194 | Float_t fEtNonRemovedProtons; // enter comment here |
195 | Float_t fEtNonRemovedAntiProtons; // enter comment here | |
196 | Float_t fEtNonRemovedPiPlus; // enter comment here | |
197 | Float_t fEtNonRemovedPiMinus; // enter comment here | |
198 | Float_t fEtNonRemovedKaonPlus; // enter comment here | |
199 | Float_t fEtNonRemovedKaonMinus; // enter comment here | |
200 | Float_t fEtNonRemovedK0S; // enter comment here | |
201 | Float_t fEtNonRemovedK0L; // enter comment here | |
202 | Float_t fEtNonRemovedLambdas; // enter comment here | |
203 | Float_t fEtNonRemovedElectrons; // enter comment here | |
204 | Float_t fEtNonRemovedPositrons; // enter comment here | |
205 | Float_t fEtNonRemovedMuMinus; // enter comment here | |
206 | Float_t fEtNonRemovedMuPlus; // enter comment here | |
207 | Float_t fEtNonRemovedGammas; // enter comment here | |
208 | Float_t fEtNonRemovedGammasFromPi0; // enter comment here | |
209 | Float_t fEtNonRemovedNeutrons; // enter comment here | |
210 | Float_t fEtNonRemovedAntiNeutrons; // enter comment here | |
211 | ||
212 | Float_t fEtRemovedProtons; // enter comment here | |
213 | Float_t fEtRemovedAntiProtons; // enter comment here | |
214 | Float_t fEtRemovedPiPlus; // enter comment here | |
215 | Float_t fEtRemovedPiMinus; // enter comment here | |
216 | Float_t fEtRemovedKaonPlus; // enter comment here | |
217 | Float_t fEtRemovedKaonMinus; // enter comment here | |
218 | Float_t fEtRemovedK0s; // enter comment here | |
219 | Float_t fEtRemovedK0L; // enter comment here | |
220 | Float_t fEtRemovedLambdas; // enter comment here | |
221 | Float_t fEtRemovedElectrons; // enter comment here | |
222 | Float_t fEtRemovedPositrons; // enter comment here | |
223 | Float_t fEtRemovedMuMinus; // enter comment here | |
224 | Float_t fEtRemovedMuPlus; // enter comment here | |
225 | ||
226 | Float_t fEtRemovedGammasFromPi0; // enter comment here | |
227 | Float_t fEtRemovedGammas; // enter comment here | |
228 | Float_t fEtRemovedNeutrons; // enter comment here | |
229 | Float_t fEtRemovedAntiNeutrons; // enter comment here | |
230 | ||
231 | Int_t fMultNonRemovedProtons; // enter comment here | |
232 | Int_t fMultNonRemovedAntiProtons; // enter comment here | |
233 | Int_t fMultNonRemovedPiPlus; // enter comment here | |
234 | Int_t fMultNonRemovedPiMinus; // enter comment here | |
235 | Int_t fMultNonRemovedKaonPlus; // enter comment here | |
236 | Int_t fMultNonRemovedKaonMinus; // enter comment here | |
237 | Int_t fMultNonRemovedK0s; // enter comment here | |
238 | Int_t fMultNonRemovedK0L; // enter comment here | |
239 | Int_t fMultNonRemovedLambdas; // enter comment here | |
240 | Int_t fMultNonRemovedElectrons; // enter comment here | |
241 | Int_t fMultNonRemovedPositrons; // enter comment here | |
242 | Int_t fMultNonRemovedMuMinus; // enter comment here | |
243 | Int_t fMultNonRemovedMuPlus; // enter comment here | |
244 | Int_t fMultNonRemovedGammas; // enter comment here | |
245 | Int_t fMultNonRemovedNeutrons; // enter comment here | |
246 | Int_t fMultNonRemovedAntiNeutrons; // enter comment here | |
247 | ||
248 | Int_t fMultRemovedProtons; // enter comment here | |
249 | Int_t fMultRemovedAntiProtons; // enter comment here | |
250 | Int_t fMultRemovedPiPlus; // enter comment here | |
251 | Int_t fMultRemovedPiMinus; // enter comment here | |
252 | Int_t fMultRemovedKaonPlus; // enter comment here | |
253 | Int_t fMultRemovedKaonMinus; // enter comment here | |
254 | Int_t fMultRemovedK0s; // enter comment here | |
255 | Int_t fMultRemovedK0L; // enter comment here | |
b2c10007 | 256 | |
ef647350 | 257 | Int_t fMultRemovedLambdas; // enter comment here |
258 | Int_t fMultRemovedElectrons; // enter comment here | |
259 | Int_t fMultRemovedPositrons; // enter comment here | |
260 | Int_t fMultRemovedMuMinus; // enter comment here | |
261 | Int_t fMultRemovedMuPlus; // enter comment here | |
262 | ||
263 | Int_t fMultRemovedGammas; // enter comment here | |
264 | Int_t fMultRemovedNeutrons; // enter comment here | |
265 | Int_t fMultRemovedAntiNeutrons; // enter comment here | |
266 | ||
267 | Int_t fTrackMultInAcc; // enter comment here | |
268 | ||
269 | ||
270 | TH2F *fHistDxDzNonRemovedCharged; // enter comment here | |
271 | TH2F *fHistDxDzRemovedCharged; // enter comment here | |
272 | TH2F *fHistDxDzNonRemovedNeutral; // enter comment here | |
273 | TH2F *fHistDxDzRemovedNeutral; // enter comment here | |
274 | ||
275 | TH1F *fHistPiPlusMult; // enter comment here | |
276 | TH1F *fHistPiMinusMult; // enter comment here | |
277 | TH1F *fHistPiZeroMult; // enter comment here | |
278 | ||
279 | TH1F *fHistPiPlusMultAcc; // enter comment here | |
280 | TH1F *fHistPiMinusMultAcc; // enter comment here | |
281 | TH1F *fHistPiZeroMultAcc; // enter comment here | |
282 | ||
b2c10007 | 283 | // Int_t fPiPlusMult; // enter comment here |
284 | // Int_t fPiMinusMult; // enter comment here | |
4d376d01 | 285 | |
ef647350 | 286 | Int_t fPiZeroMult; // enter comment here |
287 | ||
288 | Int_t fPiPlusMultAcc; // enter comment here | |
289 | Int_t fPiMinusMultAcc; // enter comment here | |
290 | Int_t fPiZeroMultAcc; // enter comment here | |
291 | ||
292 | ||
293 | Int_t fNeutralRemoved; // number of neutral particles that where removed by track matching | |
294 | Int_t fChargedRemoved; // number of charged particles that where removed by track matching | |
295 | Int_t fChargedNotRemoved; // number of charged particles that were not removed | |
296 | Int_t fNeutralNotRemoved; // number of neutral particles that were not removed | |
b2c10007 | 297 | Int_t fGammaRemoved; // number of gammas removed |
298 | ||
299 | Int_t fSecondaryNotRemoved; | |
ef647350 | 300 | |
301 | Double_t fEnergyNeutralRemoved; // energy of neutral particles that where removed by track matching | |
302 | Double_t fEnergyChargedRemoved; // energy of charged particles that where removed by track matching | |
303 | Double_t fEnergyChargedNotRemoved; // energy of charged particles that were not removed | |
304 | Double_t fEnergyNeutralNotRemoved; // energy of neutral particles that were not removed | |
b2c10007 | 305 | Double_t fEnergyGammaRemoved; // energy of gammas that were removed |
ef647350 | 306 | |
307 | Int_t fNClusters; // Number of clusters in event | |
308 | ||
4d376d01 | 309 | Double_t fTotNeutralEtAfterMinEnergyCut; // enter comment here |
f61cec2f | 310 | |
0861cc1f | 311 | Bool_t fCalcTrackMatchVsMult; |
b2c10007 | 312 | TH1F *fHistGammasFound; |
313 | TH1F *fHistGammasGenerated; | |
9ef6f13f | 314 | TH1F *fHistChargedTracksCut; |
315 | TH1F *fHistChargedTracksAccepted; | |
316 | TH1F *fHistGammasCut; | |
317 | TH1F *fHistGammasAccepted; | |
0861cc1f | 318 | TH2F *fHistChargedTracksCutMult; |
319 | TH2F *fHistChargedTracksAcceptedMult; | |
320 | TH2F *fHistGammasCutMult; | |
321 | TH2F *fHistGammasAcceptedMult; | |
9ef6f13f | 322 | TH1F *fHistBadTrackMatches; |
323 | TH2F *fHistMatchedTracksEvspTBkgd; | |
324 | TH2F *fHistMatchedTracksEvspTSignal; | |
325 | TH2F *fHistMatchedTracksEvspTBkgdPeripheral; | |
326 | TH2F *fHistMatchedTracksEvspTSignalPeripheral; | |
0861cc1f | 327 | TH3F *fHistMatchedTracksEvspTBkgdvsMult; |
328 | TH3F *fHistMatchedTracksEvspTSignalvsMult; | |
9ef6f13f | 329 | TH1F *fHistChargedTracksCutPeripheral; |
330 | TH1F *fHistChargedTracksAcceptedPeripheral; | |
331 | TH1F *fHistGammasCutPeripheral; | |
332 | TH1F *fHistGammasAcceptedPeripheral; | |
333 | TH2F *fHistBadTrackMatchesdPhidEta; | |
334 | TH2F *fHistGoodTrackMatchesdPhidEta; | |
b2c10007 | 335 | |
336 | ||
ef647350 | 337 | private: |
16abb579 | 338 | |
0651f6b4 | 339 | //Declare it private to avoid compilation warning |
340 | AliAnalysisEtMonteCarlo & operator = (const AliAnalysisEtMonteCarlo & g) ;//cpy assignment | |
341 | AliAnalysisEtMonteCarlo(const AliAnalysisEtMonteCarlo & g) ; // cpy ctor | |
342 | ClassDef(AliAnalysisEtMonteCarlo, 2); | |
2fbf38ac | 343 | }; |
344 | ||
345 | #endif // ALIANALYSISETMONTECARLO_H |