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