]>
Commit | Line | Data |
---|---|---|
a7ae9b24 | 1 | //_________________________________________________________________________ |
cf6522d1 | 2 | // Utility Class for transverse energy studies |
3 | // Base class for ESD & MC analysis | |
4 | // - reconstruction and MonteCarlo output | |
5 | // | |
6 | //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL) | |
7 | //_________________________________________________________________________ | |
2fbf38ac | 8 | |
a7ae9b24 | 9 | #ifndef ALIANALYSISET_H |
10 | #define ALIANALYSISET_H | |
11 | ||
7d2d1773 | 12 | #include "AliAnalysisEtCommon.h" |
f9a4ed81 | 13 | #include "THnSparse.h" |
ef647350 | 14 | #include "AliESDCaloCluster.h" |
15 | #include "AliAnalysisEtCuts.h" | |
16 | #include <vector> | |
17 | #include "Rtypes.h" | |
2fbf38ac | 18 | |
ef647350 | 19 | class AliAnalysisEtSelector; |
20 | class AliCentrality; | |
0f97be4c | 21 | class TString; |
ce546038 | 22 | class TTree; |
2fbf38ac | 23 | class TH2F; |
24 | class TH1F; | |
ef647350 | 25 | class TH1I; |
2fbf38ac | 26 | class AliVEvent; |
27 | class TList; | |
0651f6b4 | 28 | class TString; |
b5821c13 | 29 | class AliESDtrackCuts; |
4998becf | 30 | class AliAnalysisEtCuts; |
f9a4ed81 | 31 | class AliESDCaloCluster; |
32 | //class THnSparseD; | |
2fbf38ac | 33 | |
7d2d1773 | 34 | class AliAnalysisEt : public AliAnalysisEtCommon |
2fbf38ac | 35 | { |
36 | public: | |
ef647350 | 37 | |
2fbf38ac | 38 | AliAnalysisEt(); |
39 | virtual ~AliAnalysisEt(); | |
ef647350 | 40 | |
2fbf38ac | 41 | public: |
ef647350 | 42 | |
2fbf38ac | 43 | /** Analyse the event! */ |
f9a4ed81 | 44 | |
641e1e0c | 45 | virtual Int_t AnalyseEvent(AliVEvent *event); |
2fbf38ac | 46 | |
47 | /** Fill the objects you want to output, classes which add new histograms should overload this. */ | |
48 | virtual void FillOutputList(TList* list); | |
49 | ||
50 | /** Initialise the analysis, must be overloaded. */ | |
641e1e0c | 51 | virtual void Init(); |
2fbf38ac | 52 | |
ef647350 | 53 | /** |
54 | * Creates the histograms, must be overloaded if you want to add your own. | |
2fbf38ac | 55 | * Uses the fHistogramNameSuffix to create proper histogram names |
56 | */ | |
57 | virtual void CreateHistograms(); | |
8ea99ab0 | 58 | virtual void CreateTrees(); |
f9a4ed81 | 59 | TH2F* CreateEtaEHisto2D(TString name, TString title, TString ztitle); |
ef647350 | 60 | TH2F* CreateEtaPtHisto2D(TString name, TString title, TString ztitle); |
61 | TH2F* CreateEtaEtHisto2D(TString name, TString title, TString ztitle); | |
62 | TH2F* CreateResEHisto2D(TString name, TString title, TString ztitle); | |
63 | TH2F* CreateResPtHisto2D(TString name, TString title, TString ztitle); | |
01b73fb0 | 64 | THnSparseF* CreateClusterHistoSparse(TString name, TString title); |
65 | THnSparseF* CreateNeutralPartHistoSparse(TString name, TString title); | |
66 | THnSparseF* CreateChargedPartHistoSparse(TString name, TString title); | |
ef647350 | 67 | |
2fbf38ac | 68 | /** Fills the histograms, must be overloaded if you want to add your own */ |
69 | virtual void FillHistograms(); | |
70 | ||
71 | /** Reset event specific values (Et etc.) */ | |
72 | virtual void ResetEventValues(); | |
99a6613d | 73 | |
2fbf38ac | 74 | /** Total Et in the event (without acceptance cuts) */ |
ef647350 | 75 | Double_t GetTotEt() const { |
76 | return fTotEt; | |
77 | } | |
2fbf38ac | 78 | |
ef647350 | 79 | /** Total neutral Et in the event (without acceptance cuts) */ |
80 | Double_t GetTotNeutralEt() const { | |
81 | return fTotNeutralEt; | |
82 | } | |
2fbf38ac | 83 | |
2fbf38ac | 84 | /** Total charged Et in the event (without acceptance cuts) */ |
ef647350 | 85 | Double_t GetTotChargedEt() const { |
86 | return fTotChargedEt; | |
87 | } | |
2fbf38ac | 88 | |
ef647350 | 89 | void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts) { |
90 | fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts; | |
91 | } | |
2fbf38ac | 92 | |
5501aa9c | 93 | /** Set the centrality object */ |
ef647350 | 94 | void SetCentralityObject(AliCentrality *cent) { |
95 | fCentrality = cent; | |
96 | } | |
97 | ||
f9a4ed81 | 98 | /** Get contribution from non-removed charged particles */ |
ef647350 | 99 | virtual Double_t GetChargedContribution(Int_t /*clusterMultiplicity*/) { |
100 | return 0; | |
101 | } | |
f9a4ed81 | 102 | |
103 | /** Get contribution from non-removed neutral particles */ | |
ef647350 | 104 | virtual Double_t GetNeutralContribution(Int_t /*clusterMultiplicity*/) { |
105 | return 0; | |
106 | } | |
107 | ||
f9a4ed81 | 108 | /** Get contribution from removed gammas */ |
ef647350 | 109 | virtual Double_t GetGammaContribution(Int_t /*clusterMultiplicity*/) { |
110 | return 0; | |
111 | } | |
2fbf38ac | 112 | |
f61cec2f | 113 | /** Get contribution from secondaries */ |
114 | virtual Double_t GetSecondaryContribution(Int_t /*clusterMultiplicity*/) { | |
115 | return 0; | |
116 | } | |
117 | ||
ef647350 | 118 | void MakeSparseHistograms() { |
119 | fMakeSparse=kTRUE; | |
120 | } | |
121 | ||
122 | AliAnalysisEtCuts * GetCuts() const { return fCuts; } | |
01b73fb0 | 123 | |
2fbf38ac | 124 | protected: |
2fbf38ac | 125 | |
7d2d1773 | 126 | //AliAnalysisEtCuts *fCuts; // keeper of basic cuts |
f9a4ed81 | 127 | Double_t CalculateTransverseEnergy(AliESDCaloCluster *cluster); |
f61cec2f | 128 | |
129 | TTree *fEventSummaryTree; // Contains event level information | |
cf6522d1 | 130 | |
f61cec2f | 131 | TTree *fAcceptedTree; // Tree for information about accepted particles |
2fbf38ac | 132 | |
f61cec2f | 133 | TTree *fDepositTree; // optional TTree for energy deposit measurements |
ef647350 | 134 | |
135 | Double_t fTotEt;/** Total Et in the event (without acceptance cuts) */ | |
ef647350 | 136 | |
137 | Double_t fTotNeutralEt;/** Total neutral Et in the event */ | |
f61cec2f | 138 | |
ef647350 | 139 | Double_t fTotChargedEt;/** Total charged Et in the event */ |
cf6522d1 | 140 | |
ef647350 | 141 | Int_t fMultiplicity;/** Multiplicity of particles in the event */ |
142 | Int_t fChargedMultiplicity;/** Multiplicity of charged particles in the event */ | |
cf6522d1 | 143 | Int_t fNeutralMultiplicity; /** Multiplicity of neutral particles in the event */ |
ef647350 | 144 | |
ce546038 | 145 | Double_t fProtonEt; /** Et of identified protons */ |
f61cec2f | 146 | Double_t fAntiProtonEt; /** Et of identified protons */ |
147 | ||
43056f1b | 148 | Double_t fNeutronEt; /** Et of neutrons (MC only for now) */ |
149 | Double_t fAntiNeutronEt; /** Et of anti-neutrons (MC only for now) */ | |
f61cec2f | 150 | |
151 | Double_t fPi0Et; // Et of identified pi0 | |
152 | Double_t fPiPlusEt; // Et of identified pi+ | |
153 | Double_t fPiMinusEt; // Et of identified pi- | |
154 | ||
155 | Double_t fKPlusEt; // Et of identified K+ | |
156 | Double_t fKMinusEt; // Et of identified K- | |
157 | Double_t fK0sEt; // Et of identified K0 short | |
158 | Double_t fK0lEt; // Et of identified K0 long | |
159 | ||
160 | Double_t fMuMinusEt; // Et of identified mu- | |
161 | Double_t fMuPlusEt; // Et of identified mu+ | |
162 | ||
163 | Double_t fEMinusEt; // Et of identified e- | |
164 | Double_t fEPlusEt; // Et of identified e+ | |
165 | ||
43056f1b | 166 | Double_t fGammaEt; /** Et of identified electrons (MC only for now) */ |
ef647350 | 167 | |
f61cec2f | 168 | Double_t fProtonRemovedEt; /** Et of identified protons */ |
169 | Double_t fAntiProtonRemovedEt; /** Et of identified protons */ | |
170 | ||
171 | Double_t fNeutronRemovedEt; /** Et of neutrons (MC only for now) */ | |
172 | Double_t fAntiNeutronRemovedEt; /** Et of anti-neutrons (MC only for now) */ | |
173 | ||
174 | Double_t fPi0RemovedEt; // Removed Et of identified pi0 | |
175 | Double_t fPiPlusRemovedEt; // Removed Et of identified pi+ | |
176 | Double_t fPiMinusRemovedEt; // Removed Et of identified pi- | |
177 | ||
178 | Double_t fKPlusRemovedEt; // Removed Et of identified K+ | |
179 | Double_t fKMinusRemovedEt; // Removed Et of identified K- | |
180 | Double_t fK0sRemovedEt; // Removed Et of identified K0 short | |
181 | Double_t fK0lRemovedEt; // Removed Et of identified K0 long | |
182 | ||
183 | Double_t fMuMinusRemovedEt; // Removed Et of identified mu- | |
184 | Double_t fMuPlusRemovedEt; // Removed Et of identified mu+ | |
185 | ||
186 | Double_t fEMinusRemovedEt; // Removed Et of identified e- | |
187 | Double_t fEPlusRemovedEt; // Removed Et of identified e+ | |
188 | ||
189 | Double_t fGammaRemovedEt; /** Removed Et of identified electrons (MC only for now) */ | |
190 | ||
191 | Double_t fProtonMult; /** Mult of identified protons */ | |
192 | Double_t fAntiProtonMult; /** Mult of identified protons */ | |
193 | ||
194 | Double_t fNeutronMult; /** Mult of neutrons (MC only for now) */ | |
195 | Double_t fAntiNeutronMult; /** Mult of anti-neutrons (MC only for now) */ | |
196 | ||
197 | Double_t fPi0Mult; // Mult of identified pi0 | |
198 | Double_t fPiPlusMult; // Mult of identified pi+ | |
199 | Double_t fPiMinusMult; // Mult of identified pi- | |
200 | ||
201 | Double_t fKPlusMult; // Mult of identified K+ | |
202 | Double_t fKMinusMult; // Mult of identified K- | |
203 | Double_t fK0sMult; // Mult of identified K0 short | |
204 | Double_t fK0lMult; // Mult of identified K0 long | |
205 | ||
206 | Double_t fMuMinusMult; // Mult of identified mu- | |
207 | Double_t fMuPlusMult; // Mult of identified mu+ | |
208 | ||
209 | Double_t fEMinusMult; // Mult of identified e- | |
210 | Double_t fEPlusMult; // Mult of identified e+ | |
211 | ||
212 | Double_t fGammaMult; /** Mult of identified electrons (MC only for now) */ | |
213 | ||
214 | Double_t fProtonRemovedMult; /** Mult of identified protons */ | |
215 | Double_t fAntiProtonRemovedMult; /** Mult of identified protons */ | |
216 | ||
217 | Double_t fNeutronRemovedMult; /** Mult of neutrons (MC only for now) */ | |
218 | Double_t fAntiNeutronRemovedMult; /** Mult of anti-neutrons (MC only for now) */ | |
219 | ||
220 | Double_t fPi0RemovedMult; // Removed Mult of identified pi0 | |
221 | Double_t fPiPlusRemovedMult; // Removed Mult of identified pi+ | |
222 | Double_t fPiMinusRemovedMult; // Removed Mult of identified pi- | |
223 | ||
224 | Double_t fKPlusRemovedMult; // Removed Mult of identified K+ | |
225 | Double_t fKMinusRemovedMult; // Removed Mult of identified K- | |
226 | Double_t fK0sRemovedMult; // Removed Mult of identified K0 short | |
227 | Double_t fK0lRemovedMult; // Removed Mult of identified K0 long | |
228 | ||
229 | Double_t fMuMinusRemovedMult; // Removed Mult of identified mu- | |
230 | Double_t fMuPlusRemovedMult; // Removed Mult of identified mu+ | |
231 | ||
232 | Double_t fEMinusRemovedMult; // Removed Mult of identified e- | |
233 | Double_t fEPlusRemovedMult; // Removed Mult of identified e+ | |
234 | ||
235 | Double_t fGammaRemovedMult; /** Removed Mult of identified electrons (MC only for now) */ | |
ef647350 | 236 | |
8ea99ab0 | 237 | Float_t fEnergyDeposited; /** Energy deposited in calorimeter */ |
f61cec2f | 238 | Float_t fMomentumTPC; /** Momentum measured in TPC */ |
8ea99ab0 | 239 | Short_t fCharge; /** Charge of the particle */ |
240 | Short_t fParticlePid; /** Particle PID */ | |
241 | Float_t fPidProb; /** Probability of PID */ | |
242 | Bool_t fTrackPassedCut; /** The track is accepted by ESDTrackCuts */ | |
f9a4ed81 | 243 | |
3825c7d6 | 244 | Int_t fCentClass; // centrality class |
ef647350 | 245 | |
43056f1b | 246 | /** Detector radius */ |
ef647350 | 247 | Double_t fDetectorRadius; // Detector radius |
248 | ||
43056f1b | 249 | /** Minimum energy to cut on single cell cluster */ |
250 | Double_t fSingleCellEnergyCut; // Minimum energy to cut on single cell cluster | |
ef647350 | 251 | |
ef647350 | 252 | Double_t fChargedEnergyRemoved; |
253 | Double_t fNeutralEnergyRemoved; | |
254 | Double_t fGammaEnergyAdded; | |
4998becf | 255 | |
2fbf38ac | 256 | // Declare the histograms |
257 | ||
f61cec2f | 258 | /** The EM Et spectrum measured */ |
2fbf38ac | 259 | TH1F *fHistEt; //Et spectrum |
260 | ||
f61cec2f | 261 | /** Multiplicity of neutral particles in the events */ |
262 | TH1F *fHistNeutralMult; //Multiplicity | |
2fbf38ac | 263 | |
f61cec2f | 264 | // Acceptance plots |
2fbf38ac | 265 | TH2F *fHistPhivsPtPos; //phi vs pT plot for positive tracks |
266 | TH2F *fHistPhivsPtNeg; //phi vs pT plot for negative tracks | |
267 | ||
f9a4ed81 | 268 | /* Auxiliary Histogram variables */ |
269 | static Float_t fgEtaAxis[17];//bins for eta axis of histograms | |
0651f6b4 | 270 | static Int_t fgnumOfEtaBins;//number of eta bins |
1423b942 | 271 | static Float_t fgPtAxis[117];//bins for pt axis of histograms |
272 | static Int_t fgNumOfPtBins;//number of pt bins | |
0651f6b4 | 273 | static Float_t fgEAxis[79];//bins for pt axis of histograms |
274 | static Int_t fgNumOfEBins;//number of pt bins | |
1423b942 | 275 | static Float_t fgRAxis[48];//bins for R axis |
276 | static Int_t fgNumOfRBins;//number of R bins | |
ef647350 | 277 | |
ef647350 | 278 | /** Centrality object */ |
b6dd6ad2 | 279 | AliCentrality *fCentrality; //Centrality object |
ef647350 | 280 | |
01b73fb0 | 281 | Bool_t fMakeSparse;//Boolean for whether or not to make sparse histograms |
ef647350 | 282 | |
ef647350 | 283 | TH1I *fCutFlow; // Cut flow |
f9a4ed81 | 284 | |
f61cec2f | 285 | AliAnalysisEtSelector *fSelector; // Selector class |
b5821c13 | 286 | |
4998becf | 287 | private: |
288 | //Declare private to avoid compilation warning | |
289 | AliAnalysisEt & operator = (const AliAnalysisEt & g) ;//cpy assignment | |
290 | AliAnalysisEt(const AliAnalysisEt & g) ; // cpy ctor | |
291 | ||
f61cec2f | 292 | ClassDef(AliAnalysisEt, 3); |
2fbf38ac | 293 | }; |
294 | ||
295 | #endif // ALIANALYSISET_H |