]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEtMonteCarlo.h
Loading correction factors from root files / Simplifications
[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     Float_t fEtNonRemovedProtons; // enter comment here
177     Float_t fEtNonRemovedAntiProtons; // enter comment here
178     Float_t fEtNonRemovedPiPlus; // enter comment here
179     Float_t fEtNonRemovedPiMinus; // enter comment here
180     Float_t fEtNonRemovedKaonPlus; // enter comment here
181     Float_t fEtNonRemovedKaonMinus; // enter comment here
182     Float_t fEtNonRemovedK0S; // enter comment here
183     Float_t fEtNonRemovedK0L; // enter comment here
184     Float_t fEtNonRemovedLambdas; // enter comment here
185     Float_t fEtNonRemovedElectrons; // enter comment here
186     Float_t fEtNonRemovedPositrons; // enter comment here
187     Float_t fEtNonRemovedMuMinus; // enter comment here
188     Float_t fEtNonRemovedMuPlus; // enter comment here
189     Float_t fEtNonRemovedGammas; // enter comment here
190     Float_t fEtNonRemovedGammasFromPi0; // enter comment here
191     Float_t fEtNonRemovedNeutrons; // enter comment here
192     Float_t fEtNonRemovedAntiNeutrons; // enter comment here
193
194     Float_t fEtRemovedProtons; // enter comment here
195     Float_t fEtRemovedAntiProtons; // enter comment here
196     Float_t fEtRemovedPiPlus; // enter comment here
197     Float_t fEtRemovedPiMinus; // enter comment here
198     Float_t fEtRemovedKaonPlus; // enter comment here
199     Float_t fEtRemovedKaonMinus; // enter comment here
200     Float_t fEtRemovedK0s; // enter comment here
201     Float_t fEtRemovedK0L; // enter comment here
202     Float_t fEtRemovedLambdas; // enter comment here
203     Float_t fEtRemovedElectrons; // enter comment here
204     Float_t fEtRemovedPositrons; // enter comment here
205     Float_t fEtRemovedMuMinus; // enter comment here
206     Float_t fEtRemovedMuPlus; // enter comment here
207
208     Float_t fEtRemovedGammasFromPi0; // enter comment here
209     Float_t fEtRemovedGammas; // enter comment here
210     Float_t fEtRemovedNeutrons; // enter comment here
211     Float_t fEtRemovedAntiNeutrons; // enter comment here
212
213     Int_t fMultNonRemovedProtons; // enter comment here
214     Int_t fMultNonRemovedAntiProtons; // enter comment here
215     Int_t fMultNonRemovedPiPlus; // enter comment here
216     Int_t fMultNonRemovedPiMinus; // enter comment here
217     Int_t fMultNonRemovedKaonPlus; // enter comment here
218     Int_t fMultNonRemovedKaonMinus; // enter comment here
219     Int_t fMultNonRemovedK0s; // enter comment here
220     Int_t fMultNonRemovedK0L; // enter comment here
221     Int_t fMultNonRemovedLambdas; // enter comment here
222     Int_t fMultNonRemovedElectrons; // enter comment here
223     Int_t fMultNonRemovedPositrons; // enter comment here
224     Int_t fMultNonRemovedMuMinus; // enter comment here
225     Int_t fMultNonRemovedMuPlus; // enter comment here
226     Int_t fMultNonRemovedGammas; // enter comment here
227     Int_t fMultNonRemovedNeutrons; // enter comment here
228     Int_t fMultNonRemovedAntiNeutrons; // enter comment here
229
230     Int_t fMultRemovedProtons; // enter comment here
231     Int_t fMultRemovedAntiProtons; // enter comment here
232     Int_t fMultRemovedPiPlus; // enter comment here
233     Int_t fMultRemovedPiMinus; // enter comment here
234     Int_t fMultRemovedKaonPlus; // enter comment here
235     Int_t fMultRemovedKaonMinus; // enter comment here
236     Int_t fMultRemovedK0s; // enter comment here
237     Int_t fMultRemovedK0L; // enter comment here
238
239     Int_t fMultRemovedLambdas; // enter comment here
240     Int_t fMultRemovedElectrons; // enter comment here
241     Int_t fMultRemovedPositrons; // enter comment here
242     Int_t fMultRemovedMuMinus; // enter comment here
243     Int_t fMultRemovedMuPlus; // enter comment here
244
245     Int_t fMultRemovedGammas; // enter comment here
246     Int_t fMultRemovedNeutrons; // enter comment here
247     Int_t fMultRemovedAntiNeutrons; // enter comment here
248
249     Int_t fTrackMultInAcc; // enter comment here
250
251
252     TH2F *fHistDxDzNonRemovedCharged; // enter comment here
253     TH2F *fHistDxDzRemovedCharged; // enter comment here
254     TH2F *fHistDxDzNonRemovedNeutral; // enter comment here
255     TH2F *fHistDxDzRemovedNeutral; // enter comment here
256
257     TH1F *fHistPiPlusMult; // enter comment here
258     TH1F *fHistPiMinusMult; // enter comment here
259     TH1F *fHistPiZeroMult; // enter comment here
260
261     TH1F *fHistPiPlusMultAcc; // enter comment here
262     TH1F *fHistPiMinusMultAcc; // enter comment here
263     TH1F *fHistPiZeroMultAcc; // enter comment here
264
265    // Int_t fPiPlusMult; // enter comment here
266    // Int_t fPiMinusMult; // enter comment here
267     
268     Int_t fPiZeroMult; // enter comment here
269
270     Int_t fPiPlusMultAcc; // enter comment here
271     Int_t fPiMinusMultAcc; // enter comment here
272     Int_t fPiZeroMultAcc; // enter comment here
273
274
275     Int_t fNeutralRemoved; // number of neutral particles that where removed by track matching
276     Int_t fChargedRemoved; // number of charged particles that where removed by track matching
277     Int_t fChargedNotRemoved; // number of charged particles that were not removed
278     Int_t fNeutralNotRemoved; // number of neutral particles that were not removed
279     Int_t fGammaRemoved; // number of gammas removed
280
281     Int_t fSecondaryNotRemoved;
282
283     Double_t fEnergyNeutralRemoved; // energy of neutral particles that where removed by track matching
284     Double_t fEnergyChargedRemoved; // energy of charged particles that where removed by track matching
285     Double_t fEnergyChargedNotRemoved; // energy of charged particles that were not removed
286     Double_t fEnergyNeutralNotRemoved; // energy of neutral particles that were not removed
287     Double_t fEnergyGammaRemoved; // energy of gammas that were removed
288
289     Int_t fNClusters; // Number of clusters in event
290
291     Double_t fTotNeutralEtAfterMinEnergyCut; // enter comment here
292     
293     TH1F *fHistGammasFound;
294     TH1F *fHistGammasGenerated;
295
296
297 private:
298
299     //Declare it private to avoid compilation warning
300     AliAnalysisEtMonteCarlo & operator = (const AliAnalysisEtMonteCarlo & g) ;//cpy assignment
301     AliAnalysisEtMonteCarlo(const AliAnalysisEtMonteCarlo & g) ; // cpy ctor
302     ClassDef(AliAnalysisEtMonteCarlo, 2);
303 };
304
305 #endif // ALIANALYSISETMONTECARLO_H