1 //Create by Christine Nattrass, Rebecca Scott, Irakli Martashvili
2 //University of Tennessee at Knoxville
3 //This class is designed for the analysis of the hadronic component of transverse energy. It is used by AliAnalysisTaskHadEt.
4 #ifndef ALIANALYSISHADET_H
5 #define ALIANALYSISHADET_H
13 class AliESDtrackCuts;
18 class AliAnalysisHadEt
23 virtual ~AliAnalysisHadEt();
25 /** Analyse the event! */
26 virtual Int_t AnalyseEvent(AliVEvent *event);
28 /** Fill the objects you want to output, classes which add new histograms should overload this. */
29 virtual void FillOutputList();
31 /** Initialise the analysis, must be overloaded. */
35 * Creates the histograms, must be overloaded if you want to add your own.
36 * Uses the fHistogramNameSuffix to create proper histogram names
38 virtual void CreateHistograms();
40 /** Fills the histograms, must be overloaded if you want to add your own */
41 virtual void FillHistograms();
43 /** Reset event specific values (Et etc.) */
44 virtual void ResetEventValues();
46 /** Sum of the total Et for all events */
47 Double_t GetSumEt() const { return fSumEt; }
49 /** Sum of the total Et within our acceptance for all events */
50 Double_t GetSumEtAcc() const { return fSumEtAcc; }
52 /** Total Et in the event (without acceptance cuts) */
53 Double_t GetTotEt() const { return fTotEt; }
55 /** Total Et in the event within the acceptance cuts */
56 Double_t GetTotEtAcc() const { return fTotEtAcc; }
58 /** Total neutral Et in the event (without acceptance cuts) */
59 Double_t GetTotNeutralEt() const { return fTotNeutralEt; }
61 /** Total neutral Et in the event within the acceptance cuts */
62 Double_t GetTotNeutralEtAcc() const { return fTotNeutralEtAcc; }
64 /** Total charged Et in the event (without acceptance cuts) */
65 Double_t GetTotChargedEt() const { return fTotChargedEt; }
67 /** Total charged Et in the event within the acceptance cuts */
68 Double_t GetTotChargedEtAcc() const { return fTotChargedEtAcc; }
71 void SetHistoList(TList *mylist){fhistoList = mylist;}
73 void SetTPCITSTrackCuts(AliESDtrackCuts *cuts){ ffesdtrackCutsITSTPC = cuts;}
74 void SetTPCOnlyTrackCuts(AliESDtrackCuts *cuts){ fesdtrackCutsTPC = cuts;}
75 void SetITSTrackCuts(AliESDtrackCuts *cuts){ fesdtrackCutsITS = cuts;}
80 TString fHistogramNameSuffix; /** The suffix for the histogram names */
83 TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
84 //these codes are stored as variables because otherwise there were issues using this with the plugin
85 Int_t fPiPlusCode;//pdg pi plus code
86 Int_t fPiMinusCode;//pdg pi minus code
87 Int_t fKPlusCode;// pdg k plus code
88 Int_t fKMinusCode;//pdg k minus code
89 Int_t fProtonCode;//pdg proton code
90 Int_t fAntiProtonCode;//pdg antiproton code
91 Int_t fLambdaCode;// pdg lambda code
92 Int_t fAntiLambdaCode;//pdg antilambda code
93 Int_t fK0SCode;//pdg k0 short code
94 Int_t fOmegaCode;//pdg omega code
95 Int_t fAntiOmegaCode;//pdg anti-omega code
96 Int_t fXi0Code;//pdg xi-0 code
97 Int_t fAntiXi0Code;//pdg anti-xi0 code
98 Int_t fXiCode;//pdg xi code
99 Int_t fAntiXiCode;//pdg anti-xi code
100 Int_t fSigmaCode;//pdg sigma code
101 Int_t fAntiSigmaCode;//pdg anti-sigma code
102 Int_t fK0LCode;//pdg k0 long code
103 Int_t fNeutronCode;//pdg neutron code
104 Int_t fAntiNeutronCode;//pdg anti-neutron code
105 Int_t fEPlusCode;//pdg positron code
106 Int_t fEMinusCode;//pdg electron code
107 Float_t fPionMass;//pdg pion mass
110 Double_t fSumEt;/** Sum of the total Et for all events */
112 Double_t fSumEtAcc;/** Sum of the total Et within our acceptance for all events */
115 Double_t fTotEt;/** Total Et in the event (without acceptance cuts) */
117 Double_t fTotEtAcc;/** Total Et in the event within the acceptance cuts */
119 Double_t fTotNeutralEt;/** Total neutral Et in the event */
121 Double_t fTotNeutralEtAcc;/** Total neutral Et in the event within the acceptance cuts */
123 Double_t fTotChargedEt;/** Total charged Et in the event */
125 Double_t fTotChargedEtAcc;/** Total charged Et in the event within the acceptance cuts */
127 Int_t fMultiplicity;/** Multiplicity of particles in the event */
129 Int_t fChargedMultiplicity;/** Multiplicity of charged particles in the event */
131 Int_t fNeutralMultiplicity; /** Multiplicity of neutral particles in the event */
133 Double_t fEtaCut;/** Cut in eta ( normally |eta| < 0.5 */
135 Double_t fEtaCutAcc;/** Eta cut for our acceptance */
137 Double_t fVertexXCut;/** Vertex cuts x direction */
138 Double_t fVertexYCut;/** Vertex cuts y direction*/
139 Double_t fVertexZCut;/** Vertex cuts z direction*/
141 Double_t fIPxyCut; /** Impact parameter cuts x-y plane*/
142 Double_t fIPzCut; /** Impact parameter cuts z*/
145 void CreateEtaPtHisto2D(TString name, TString title);
146 void CreateEtaHisto1D(TString name, TString title);
147 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);
148 void CreateHisto1D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Float_t xlow,Float_t xhigh);
149 void CreateIntHisto1D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Int_t xlow,Int_t xhigh);
150 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);
151 void FillHisto1D(TString histname, Float_t x, Float_t weight);
152 void FillHisto2D(TString histname, Float_t x, Float_t y, Float_t weight);
154 Float_t Et(TParticle *part, float mass = -1000);
155 AliESDtrackCuts* ffesdtrackCutsITSTPC;//esd track cuts for ITS+TPC tracks
156 AliESDtrackCuts* fesdtrackCutsTPC;//esd track cuts for TPC tracks (which may also contain ITS hits)
157 AliESDtrackCuts* fesdtrackCutsITS;//esd track cuts for ITS stand alone tracks
159 TList *fhistoList;//list of histograms saved out to file
160 static Float_t fgEtaAxis[47];//bins for eta axis of histograms
161 static Int_t fgnumOfEtaBins;//number of eta bins
162 static Float_t fgPtAxis[117];//bins for pt axis of histograms
163 static Int_t fgNumOfPtBins;//number of pt bins
169 //Declare it private to avoid compilation warning
170 AliAnalysisHadEt & operator = (const AliAnalysisHadEt & g) ;//cpy assignment
171 AliAnalysisHadEt(const AliAnalysisHadEt & g) ; // cpy ctor
173 ClassDef(AliAnalysisHadEt, 0);
176 #endif // ALIANALYSISHADET_H