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