1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies
3 // Base class for ESD & MC analysis
4 // - reconstruction and MonteCarlo output
6 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
7 //_________________________________________________________________________
9 #ifndef ALIANALYSISET_H
10 #define ALIANALYSISET_H
13 #include "AliAnalysisEtCommon.h"
22 class AliESDtrackCuts;
24 class AliAnalysisEtCuts;
26 class AliAnalysisEt : public AliAnalysisEtCommon
31 virtual ~AliAnalysisEt();
35 /** Analyse the event! */
36 virtual Int_t AnalyseEvent(AliVEvent *event);
38 /** Fill the objects you want to output, classes which add new histograms should overload this. */
39 virtual void FillOutputList(TList* list);
41 /** Initialise the analysis, must be overloaded. */
45 * Creates the histograms, must be overloaded if you want to add your own.
46 * Uses the fHistogramNameSuffix to create proper histogram names
48 virtual void CreateHistograms();
49 virtual void CreateTrees();
50 TH2F* CreateEtaEHisto2D(TString name, TString title, TString ztitle);
52 /** Fills the histograms, must be overloaded if you want to add your own */
53 virtual void FillHistograms();
55 /** Reset event specific values (Et etc.) */
56 virtual void ResetEventValues();
60 /** Total Et in the event (without acceptance cuts) */
61 Double_t GetTotEt() const { return fTotEt; }
63 /** Total Et in the event within the acceptance cuts */
64 Double_t GetTotEtAcc() const { return fTotEtAcc; }
66 /** Total neutral Et in the event (without acceptance cuts) */
67 Double_t GetTotNeutralEt() const { return fTotNeutralEt; }
69 /** Total neutral Et in the event within the acceptance cuts */
70 Double_t GetTotNeutralEtAcc() const { return fTotNeutralEtAcc; }
72 /** Total charged Et in the event (without acceptance cuts) */
73 Double_t GetTotChargedEt() const { return fTotChargedEt; }
75 /** Total charged Et in the event within the acceptance cuts */
76 Double_t GetTotChargedEtAcc() const { return fTotChargedEtAcc; }
78 void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts;}
80 /** Set the centrality object */
81 void SetCentralityObject(AliCentrality *cent) { fCentrality = cent; }
85 //AliAnalysisEtCuts *fCuts; // keeper of basic cuts
88 Double_t fTotEt;/** Total Et in the event (without acceptance cuts) */
89 Double_t fTotEtAcc;/** Total Et in the event within the acceptance cuts */
91 Double_t fTotNeutralEt;/** Total neutral Et in the event */
92 Double_t fTotNeutralEtAcc;/** Total neutral Et in the event within the acceptance cuts */
93 Double_t fTotChargedEt;/** Total charged Et in the event */
94 Double_t fTotChargedEtAcc;/** Total charged Et in the event within the acceptance cuts */
96 Int_t fMultiplicity;/** Multiplicity of particles in the event */
97 Int_t fChargedMultiplicity;/** Multiplicity of charged particles in the event */
98 Int_t fNeutralMultiplicity; /** Multiplicity of neutral particles in the event */
100 Double_t fBaryonEt; /** Et of identified baryons; calo based (Rec only for now) */
101 Double_t fAntiBaryonEt; /** Et of identified anti-baryons; calo based (Rec only for now) */
102 Double_t fMesonEt; /** Et of identified mesons; calo based (Rec only for now) */
104 Double_t fProtonEt; /** Et of identified protons */
105 Double_t fPionEt; /** Et of identified pions */
106 Double_t fChargedKaonEt; /** Et of identified charged kaons */
107 Double_t fMuonEt; /** Et of identified muons */
108 Double_t fElectronEt; /** Et of identified electrons */
109 Double_t fNeutronEt; /** Et of neutrons (MC only for now) */
110 Double_t fAntiNeutronEt; /** Et of anti-neutrons (MC only for now) */
111 Double_t fGammaEt; /** Et of identified electrons (MC only for now) */
113 Double_t fProtonEtAcc; /** Et of identified protons in calorimeter acceptance */
114 Double_t fPionEtAcc; /** Et of identified pions in calorimeter acceptance */
115 Double_t fChargedKaonEtAcc; /** Et of identified charged kaons in calorimeter acceptance */
116 Double_t fMuonEtAcc; /** Et of identified muons in calorimeter acceptance */
117 Double_t fElectronEtAcc; /** Et of identified electrons in calorimeter acceptance */
119 Float_t fEnergyDeposited; /** Energy deposited in calorimeter */
120 Float_t fEnergyTPC; /** Energy measured in TPC */
121 Short_t fCharge; /** Charge of the particle */
122 Short_t fParticlePid; /** Particle PID */
123 Float_t fPidProb; /** Probability of PID */
124 Bool_t fTrackPassedCut; /** The track is accepted by ESDTrackCuts */
127 Double_t fEtaCut;/** Cut in eta (standard |eta| < 0.5 )*/
129 /** Eta cut for our acceptance */
130 Double_t fEtaCutAcc; // Eta cut for our acceptance
132 /** Min phi cut for our acceptance in radians */
133 Double_t fPhiCutAccMin; // Min phi cut for our acceptance in radians
135 /** Max phi cut for our acceptance in radians */
136 Double_t fPhiCutAccMax; // Max phi cut for our acceptance in radians
138 /** Detector radius */
139 Double_t fDetectorRadius; // Detector radius
141 /** Cut on the cluster energy */
142 Double_t fClusterEnergyCut; // Cut on the cluster energy
144 /** Minimum energy to cut on single cell cluster */
145 Double_t fSingleCellEnergyCut; // Minimum energy to cut on single cell cluster
147 // Declare the histograms
149 /** The full Et spectrum measured */
150 TH1F *fHistEt; //Et spectrum
152 /** The full charged Et spectrum measured */
153 TH1F *fHistChargedEt; //Charged Et spectrum
155 /** The full neutral Et spectrum measured */
156 TH1F *fHistNeutralEt; //Neutral Et spectrum
158 /** The Et spectrum within the calorimeter acceptance */
159 TH1F *fHistEtAcc; //Et in acceptance
161 /** The charged Et spectrum within the calorimeter acceptance */
162 TH1F *fHistChargedEtAcc; //Charged Et in acceptance
164 /** The neutral Et spectrum within the calorimeter acceptance */
165 TH1F *fHistNeutralEtAcc; //Et in acceptance
167 /** Multiplicity of particles in the events */
168 TH1F *fHistMult; //Multiplicity
170 /** Charged multiplicity of particles in the events */
171 TH1F *fHistChargedMult; //Charged multiplicity
173 /** Neutral multiplicity of particles in the events */
174 TH1F *fHistNeutralMult; //Neutral multiplicity
176 /* Acceptance plots */
177 TH2F *fHistPhivsPtPos; //phi vs pT plot for positive tracks
178 TH2F *fHistPhivsPtNeg; //phi vs pT plot for negative tracks
181 TH1F *fHistBaryonEt; /** Et of identified baryons */
182 TH1F *fHistAntiBaryonEt; /** Et of identified anti-baryons */
183 TH1F *fHistMesonEt; /** Et of identified mesons */
185 TH1F *fHistProtonEt; /** Et of identified protons */
186 TH1F *fHistPionEt; /** Et of identified protons */
187 TH1F *fHistChargedKaonEt; /** Et of identified charged kaons */
188 TH1F *fHistMuonEt; /** Et of identified muons */
189 TH1F *fHistElectronEt; /** Et of identified electrons */
190 TH1F *fHistNeutronEt; /** Et of neutrons (MC only for now) */
191 TH1F *fHistAntiNeutronEt; /** Et of anti-neutrons (MC only for now) */
192 TH1F *fHistGammaEt; /** Et of gammas (MC only for now) */
194 TH1F *fHistProtonEtAcc; /** Et of identified protons in calorimeter acceptance */
195 TH1F *fHistPionEtAcc; /** Et of identified protons in calorimeter acceptance */
196 TH1F *fHistChargedKaonEtAcc; /** Et of identified charged kaons in calorimeter acceptance */
197 TH1F *fHistMuonEtAcc; /** Et of identified muons in calorimeter acceptance */
198 TH1F *fHistElectronEtAcc; /** Et of identified electrons in calorimeter acceptance */
200 /* Correction plots */
201 TH1F *fHistTMDeltaR; /* Track matching plots; Rec only for now */
203 /* Auxiliary Histogram variables */
204 static Float_t fgEtaAxis[17];//bins for eta axis of histograms
205 static Int_t fgnumOfEtaBins;//number of eta bins
206 static Float_t fgEAxis[79];//bins for pt axis of histograms
207 static Int_t fgNumOfEBins;//number of pt bins
210 TTree *fTree; // optional TTree
211 TTree *fTreeDeposit; // optional TTree for energy deposit measurements
213 /** Centrality object */
214 AliCentrality *fCentrality; //Centrality object
217 //Declare private to avoid compilation warning
218 AliAnalysisEt & operator = (const AliAnalysisEt & g) ;//cpy assignment
219 AliAnalysisEt(const AliAnalysisEt & g) ; // cpy ctor
221 ClassDef(AliAnalysisEt, 1);
224 #endif // ALIANALYSISET_H