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