totEt updates from Christine
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisHadEt.h
1 //Create by Christine Nattrass, Rebecca Scott, Irakli Martashvili
2 //University of Tennessee at Knoxville
3 #ifndef ALIANALYSISHADET_H
4 #define ALIANALYSISHADET_H
5
6 #include "TString.h"
7 #include "TDatabasePDG.h"
8 #include "TParticle.h"
9 #include "Rtypes.h"
10 #include "TString.h"
11 #include "AliESDtrackCuts.h"
12
13 class TH2F;
14 class TH1F;
15 class AliVEvent;
16 class TList;
17
18 class AliAnalysisHadEt
19 {
20 public:
21    
22   AliAnalysisHadEt();
23     virtual ~AliAnalysisHadEt();
24
25     /** Analyse the event! */
26     virtual Int_t AnalyseEvent(AliVEvent *event);
27
28     /** Fill the objects you want to output, classes which add new histograms should overload this. */
29     virtual void FillOutputList();
30
31     /** Initialise the analysis, must be overloaded. */
32     virtual void Init();
33
34     /** 
35     * Creates the histograms, must be overloaded if you want to add your own. 
36     * Uses the fHistogramNameSuffix to create proper histogram names
37     */
38     virtual void CreateHistograms();
39     
40     /** Fills the histograms, must be overloaded if you want to add your own */
41     virtual void FillHistograms();
42
43     /** Reset event specific values (Et etc.) */
44     virtual void ResetEventValues();
45     
46     /** Sum of the total Et for all events */
47     Double_t GetSumEt() { return fSumEt; }
48
49     /** Sum of the total Et within our acceptance for all events */
50     Double_t GetSumEtAcc() { return fSumEtAcc; }
51
52     /** Total Et in the event (without acceptance cuts) */
53     Double_t GetTotEt() { return fTotEt; }
54
55     /** Total Et in the event within the acceptance cuts */
56     Double_t GetTotEtAcc() { return fTotEtAcc; }
57
58    /** Total neutral Et in the event (without acceptance cuts) */
59     Double_t GetTotNeutralEt() { return fTotNeutralEt; }
60
61     /** Total neutral Et in the event within the acceptance cuts */
62     Double_t GetTotNeutralEtAcc() { return fTotNeutralEtAcc; }
63     
64     /** Total charged Et in the event (without acceptance cuts) */
65     Double_t GetTotChargedEt() { return fTotChargedEt; }
66
67     /** Total charged Et in the event within the acceptance cuts */
68     Double_t GetTotChargedEtAcc() { return fTotChargedEtAcc; }
69
70
71     void SetHistoList(TList *mylist){histoList = mylist;}
72
73     void SetTPCITSTrackCuts(AliESDtrackCuts *cuts){ esdtrackCutsITSTPC = cuts;}
74     void SetTPCOnlyTrackCuts(AliESDtrackCuts *cuts){ esdtrackCutsTPC = cuts;}
75     void SetITSTrackCuts(AliESDtrackCuts *cuts){ esdtrackCutsITS = cuts;}
76
77 protected:
78    
79     /** The suffix for the histogram names */
80     TString fHistogramNameSuffix;
81
82     /** PDG Database */
83     TDatabasePDG *fPdgDB;
84     Int_t PiPlusCode;
85     Int_t PiMinusCode;
86     Int_t KPlusCode;
87     Int_t KMinusCode;
88     Int_t ProtonCode;
89     Int_t AntiProtonCode;
90     Int_t LambdaCode;
91     Int_t AntiLambdaCode;
92     Int_t K0SCode;
93     Int_t OmegaCode;
94     Int_t AntiOmegaCode;
95     Int_t Xi0Code;
96     Int_t AntiXi0Code;
97     Int_t XiCode;
98     Int_t AntiXiCode;
99     Int_t SigmaCode;
100     Int_t AntiSigmaCode;
101     Int_t K0LCode;
102     Int_t NeutronCode;
103     Int_t AntiNeutronCode;
104     Int_t EPlusCode;
105     Int_t EMinusCode;
106     Float_t PionMass;
107
108     /** Sum of the total Et for all events */
109     Double_t fSumEt;
110
111     /** Sum of the total Et within our acceptance for all events */
112     Double_t fSumEtAcc;
113
114     /** Total Et in the event (without acceptance cuts) */
115     Double_t fTotEt;
116
117     /** Total Et in the event within the acceptance cuts */
118     Double_t fTotEtAcc;
119
120     /** Total neutral Et in the event */
121     Double_t fTotNeutralEt;
122
123     /** Total neutral Et in the event within the acceptance cuts */
124     Double_t fTotNeutralEtAcc;
125
126     /** Total charged Et in the event */
127     Double_t fTotChargedEt;
128
129     /** Total charged Et in the event within the acceptance cuts */
130     Double_t fTotChargedEtAcc;
131
132     /** Multiplicity of particles in the event */
133     Int_t fMultiplicity;
134     
135     /** Multiplicity of charged particles in the event */
136     Int_t fChargedMultiplicity;
137     
138     /** Multiplicity of neutral particles in the event */
139     Int_t fNeutralMultiplicity; 
140     
141     /** Cut in eta ( normally |eta| < 0.5 */
142     Double_t fEtaCut;
143
144     /** Eta cut for our acceptance */
145     Double_t fEtaCutAcc;
146
147     /** Vertex cuts */
148     Double_t fVertexXCut;
149     Double_t fVertexYCut;
150     Double_t fVertexZCut;
151
152     /** Impact parameter cuts */
153     Double_t fIPxyCut;
154     Double_t fIPzCut;
155
156
157     void CreateEtaPtHisto2D(TString name, TString title);
158     void CreateEtaHisto1D(TString name, TString title);
159     void CreateHisto2D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Float_t xlow,Float_t xhigh,Int_t ybins,Float_t ylow,Float_t yhigh);
160     void CreateHisto1D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Float_t xlow,Float_t xhigh);
161     void CreateIntHisto1D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Int_t xlow,Int_t xhigh);
162     void CreateIntHisto2D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Int_t xlow,Int_t xhigh,Int_t ybins,Int_t ylow,Int_t yhigh);
163     void FillHisto1D(TString histname, Float_t x, Float_t weight);
164     void FillHisto2D(TString histname, Float_t x, Float_t y, Float_t weight);
165
166     Float_t Et(TParticle *part, float mass = -1000);
167     AliESDtrackCuts* esdtrackCutsITSTPC;
168     AliESDtrackCuts* esdtrackCutsTPC;
169     AliESDtrackCuts* esdtrackCutsITS;
170
171     TList *histoList;
172     static Float_t etaAxis[47];
173     static Int_t numOfEtaBins;
174     static Float_t ptAxis[117];
175     static Int_t numOfPtBins;
176     
177
178  private:
179
180 private:
181   //Declare it private to avoid compilation warning
182   AliAnalysisHadEt & operator = (const AliAnalysisHadEt & g) ;//cpy assignment
183   AliAnalysisHadEt(const AliAnalysisHadEt & g) ; // cpy ctor
184
185     ClassDef(AliAnalysisHadEt, 0);
186 };
187
188 #endif // ALIANALYSISHADET_H