]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/AliAnalysisEt.h
bugfix: the AliHLTOUTTask supposed to receive the output of an HLT reconstruction...
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisEt.h
1 //_________________________________________________________________________
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 //_________________________________________________________________________
8
9 #ifndef ALIANALYSISET_H
10 #define ALIANALYSISET_H
11
12 class AliCentrality;
13 #include "AliAnalysisEtCommon.h"
14
15 class TString;
16 class TTree;
17 class TH2F;
18 class TH1F;
19 class AliVEvent;
20 class TList;
21 class TString;
22 class AliESDtrackCuts;
23 class Rtypes;
24 class AliAnalysisEtCuts;
25
26 class AliAnalysisEt : public AliAnalysisEtCommon
27 {
28 public:
29    
30     AliAnalysisEt();
31     virtual ~AliAnalysisEt();
32   
33 public:
34   
35     /** Analyse the event! */
36     virtual Int_t AnalyseEvent(AliVEvent *event);
37
38     /** Fill the objects you want to output, classes which add new histograms should overload this. */
39     virtual void FillOutputList(TList* list);
40
41     /** Initialise the analysis, must be overloaded. */
42     virtual void Init();
43
44     /** 
45     * Creates the histograms, must be overloaded if you want to add your own. 
46     * Uses the fHistogramNameSuffix to create proper histogram names
47     */
48     virtual void CreateHistograms();
49     virtual void CreateTrees();
50         TH2F* CreateEtaEHisto2D(TString name, TString title, TString ztitle);
51     
52     /** Fills the histograms, must be overloaded if you want to add your own */
53     virtual void FillHistograms();
54
55     /** Reset event specific values (Et etc.) */
56     virtual void ResetEventValues();
57
58     
59
60     /** Total Et in the event (without acceptance cuts) */
61     Double_t GetTotEt() const { return fTotEt; }
62
63     /** Total Et in the event within the acceptance cuts */
64     Double_t GetTotEtAcc() const { return fTotEtAcc; }
65
66    /** Total neutral Et in the event (without acceptance cuts) */
67     Double_t GetTotNeutralEt() const { return fTotNeutralEt; }
68
69     /** Total neutral Et in the event within the acceptance cuts */
70     Double_t GetTotNeutralEtAcc() const { return fTotNeutralEtAcc; }
71     
72     /** Total charged Et in the event (without acceptance cuts) */
73     Double_t GetTotChargedEt() const { return fTotChargedEt; }
74
75     /** Total charged Et in the event within the acceptance cuts */
76     Double_t GetTotChargedEtAcc() const { return fTotChargedEtAcc; }
77
78     void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts;}
79     
80     /** Set the centrality object */
81     void SetCentralityObject(AliCentrality *cent) { fCentrality = cent; }
82
83 protected:
84
85     //AliAnalysisEtCuts *fCuts; // keeper of basic cuts
86
87
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 */
90     
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 */
95
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 */
99     
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) */
103
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) */
112    
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 */
118     
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 */
125    
126         
127     Double_t fEtaCut;/** Cut in eta (standard |eta| < 0.5 )*/
128
129     /** Eta cut for our acceptance */
130     Double_t fEtaCutAcc; // Eta cut for our acceptance
131     
132     /** Min phi cut for our acceptance in radians */    
133     Double_t fPhiCutAccMin; // Min phi cut for our acceptance in radians     
134     
135     /** Max phi cut for our acceptance in radians */
136     Double_t fPhiCutAccMax; // Max phi cut for our acceptance in radians 
137     
138     /** Detector radius */
139     Double_t fDetectorRadius; // Detector radius 
140     
141     /** Cut on the cluster energy */    
142     Double_t fClusterEnergyCut; // Cut on the cluster energy 
143     
144     /** Minimum energy to cut on single cell cluster */
145     Double_t fSingleCellEnergyCut;  // Minimum energy to cut on single cell cluster
146
147     // Declare the histograms
148
149     /** The full Et spectrum measured */
150     TH1F *fHistEt; //Et spectrum
151
152     /** The full charged Et spectrum measured */
153     TH1F *fHistChargedEt; //Charged Et spectrum 
154
155     /** The full neutral Et spectrum measured */
156     TH1F *fHistNeutralEt; //Neutral Et spectrum
157
158     /** The Et spectrum within the calorimeter acceptance */
159     TH1F *fHistEtAcc; //Et in acceptance
160
161     /** The charged Et spectrum within the calorimeter acceptance */
162     TH1F *fHistChargedEtAcc; //Charged Et in acceptance
163
164     /** The neutral Et spectrum within the calorimeter acceptance */
165     TH1F *fHistNeutralEtAcc; //Et in acceptance
166
167     /** Multiplicity of particles in the events */
168     TH1F *fHistMult; //Multiplicity
169
170     /** Charged multiplicity of particles in the events */
171     TH1F *fHistChargedMult; //Charged multiplicity
172
173     /** Neutral multiplicity of particles in the events */
174     TH1F *fHistNeutralMult; //Neutral multiplicity
175
176     /* Acceptance plots */
177     TH2F *fHistPhivsPtPos; //phi vs pT plot for positive tracks
178     TH2F *fHistPhivsPtNeg; //phi vs pT plot for negative tracks
179
180     /* PID plots */
181     TH1F *fHistBaryonEt; /** Et of identified baryons */    
182     TH1F *fHistAntiBaryonEt; /** Et of identified anti-baryons */
183     TH1F *fHistMesonEt; /** Et of identified mesons */
184
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) */
193     
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 */
199     
200     /* Correction plots */
201     TH1F *fHistTMDeltaR; /* Track matching plots; Rec only for now */
202
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
208         
209         
210     TTree *fTree; // optional TTree
211     TTree *fTreeDeposit; // optional TTree for energy deposit measurements
212
213    /** Centrality object */
214     AliCentrality *fCentrality; //Centrality object
215
216 private:
217     //Declare private to avoid compilation warning
218     AliAnalysisEt & operator = (const AliAnalysisEt & g) ;//cpy assignment
219     AliAnalysisEt(const AliAnalysisEt & g) ; // cpy ctor
220
221     ClassDef(AliAnalysisEt, 1);
222 };
223
224 #endif // ALIANALYSISET_H