]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEtCommon.h
Cleaning up streamers
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtCommon.h
1 //_________________________________________________________________________
2 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
3 //University of Tennessee at Knoxville
4 //
5 // This class is designed for the analysis of the hadronic component of 
6 // transverse energy.  It is used by AliAnalysisTaskHadEt.
7 //_________________________________________________________________________
8 #ifndef ALIANALYSISETCOMMON_H
9 #define ALIANALYSISETCOMMON_H
10
11 #include "TString.h"
12 #include "TObject.h"
13
14 class TH2F;
15 class TH1F;
16 class TF1;
17 class AliVEvent;
18 class TList;
19 class AliESDtrackCuts;
20 class Rtypes;
21 class TParticle;
22 class TDatabasePDG;
23 class AliAnalysisEtCuts;
24
25 class AliAnalysisEtCommon  : public TObject
26 {
27 public:
28    
29   AliAnalysisEtCommon();
30     virtual ~AliAnalysisEtCommon();
31
32     /** Analyse the event! */
33     virtual Int_t AnalyseEvent(AliVEvent *event);
34
35
36     /** Initialise the analysis, must be overloaded. */
37     virtual void Init();
38
39     /** Reset event specific values (Et etc.) */
40     virtual void ResetEventValues();
41
42     /** LevyPtEvaluate function */
43     static Double_t LevyPtEvaluate(const Double_t *pt, const Double_t *par);
44
45     /** Cuts info */
46     AliAnalysisEtCuts * GetCuts() const { return fCuts; } 
47     virtual void SetCuts(const AliAnalysisEtCuts *cuts) 
48     { fCuts = (AliAnalysisEtCuts *) cuts; } 
49
50
51     void SetTPCITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITSTPC = (AliESDtrackCuts *) cuts;}
52     void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts;}
53     void SetITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITS = (AliESDtrackCuts *) cuts;}
54     void SetCentralityMethod(char *method){ fCentralityMethod = TString(method);}
55     void SetNumberOfCentralityBins(Int_t bins){fNCentBins = bins;}
56     void SetDataSet(Int_t val){fDataSet = val;fV0ScaleDataSet=val;}//defaults to using the same data sets
57     void SetV0ScaleDataSet(Int_t val){fV0ScaleDataSet=val;}
58     Int_t DataSet()const {return fDataSet;}
59
60 protected:   
61     
62     TString fHistogramNameSuffix; /** The suffix for the histogram names */
63
64     AliAnalysisEtCuts *fCuts; //! keeper of basic cuts
65
66     Int_t fDataSet;//Integer corresponding to data set.  Used as a switch to set appropriate track cuts.  By default set to 2010 p+p
67     //2009 = 900 GeV p+p data from 2009
68     //2010 = 7 TeV p+p data from 2010
69     //20100 = 2.76 TeV Pb+Pb data from 2010
70     Int_t fV0ScaleDataSet;//Integer corresponding to the data set to use for rescaling V0 spectra.  No scale available for 2.76 TeV so we will use both 900 GeV and 7 TeV
71
72     /** PDG Database */
73     //TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
74     //these codes are stored as variables because otherwise there were issues using this with the plugin
75
76     static Int_t fgPiPlusCode;//pdg pi plus code
77     static Int_t fgPiMinusCode;//pdg pi minus code
78     static Int_t fgKPlusCode;// pdg k plus code
79     static Int_t fgKMinusCode;//pdg k minus code
80     static Int_t fgProtonCode;//pdg proton code
81     static Int_t fgAntiProtonCode;//pdg antiproton code
82     static Int_t fgLambdaCode;// pdg lambda code
83     static Int_t fgAntiLambdaCode;//pdg antilambda code
84     static Int_t fgOmegaCode;//pdg omega code
85     static Int_t fgK0SCode;//pdg k0 short code
86     static Int_t fgK0Code;//pdg k0 code
87     static Int_t fgAntiOmegaCode;//pdg anti-omega code
88     static Int_t fgXi0Code;//pdg xi-0 code
89     static Int_t fgAntiXi0Code;//pdg anti-xi0 code
90     static Int_t fgXiCode;//pdg xi code
91     static Int_t fgAntiXiCode;//pdg anti-xi code
92     static Int_t fgSigmaCode;//pdg sigma code
93     static Int_t fgAntiSigmaCode;//pdg anti-sigma code
94     static Int_t fgK0LCode;//pdg k0 long code
95     static Int_t fgNeutronCode;//pdg neutron code
96     static Int_t fgAntiNeutronCode;//pdg anti-neutron code
97     static Int_t fgEPlusCode;//pdg positron code
98     static Int_t fgEMinusCode;//pdg electron code
99     static Int_t fgMuPlusCode;//pdg positron code
100     static Int_t fgMuMinusCode;//pdg electron code
101     static Int_t fgGammaCode;//pdg gamma code
102     static Int_t fgPi0Code;//pdg neutral pion code
103     static Int_t fgEtaCode;//pdg eta code
104     static Int_t fgOmega0Code;//pdg eta code
105     static Float_t fgPionMass;//pdg pion mass
106     static Float_t fgKaonMass;//pdg kaon mass
107     static Float_t fgProtonMass;//pdg proton mass
108     static Float_t fgElectronMass;//pdg electron mass
109
110
111     Float_t Et(TParticle *part, float mass = -1000);
112     Float_t Et(Float_t p, Float_t theta, Int_t pid, Short_t charge) const;
113     AliESDtrackCuts* fEsdtrackCutsITSTPC;//esd track cuts for ITS+TPC tracks
114     AliESDtrackCuts* fEsdtrackCutsTPC;//esd track cuts for TPC tracks (which may also contain ITS hits)
115     AliESDtrackCuts* fEsdtrackCutsITS;//esd track cuts for ITS stand alone tracks
116
117     static Float_t fgPtTPCCutOff;//cut off for tracks in TPC
118     static Float_t fgPtITSCutOff;//cut off for tracks in ITS
119     
120     //Set by default to the D6T scales
121     Float_t K0Weight(Float_t pt);//Function which gives the factor to reweigh a K0 so it roughly matches the data
122     Float_t LambdaWeight(Float_t pt);//Function which gives the factor to reweigh a Lambda so it roughly matches the data
123     Float_t AntiLambdaWeight(Float_t pt);//Function which gives the factor to reweigh a Lambda so it roughly matches the data
124     TF1 *fK0PythiaD6T;//!function with Levy fit parameters for K0S in PYTHIA D6T
125     TF1 *fLambdaPythiaD6T;//!function with Levy fit parameters for Lambda in PYTHIA D6T
126     TF1 *fAntiLambdaPythiaD6T;//!function with Levy fit parameters for AntiLambda in PYTHIA D6T
127     TF1 *fK0Data;//!function with Levy fit parameters for K0S in data
128     TF1 *fLambdaData;//!function with Levy fit parameters for Lambda in data
129     TF1 *fAntiLambdaData;//!function with Levy fit parameters for AntiLambda in data
130
131     TF1 *fLambdaEnhancement;//!function to describe lambda enhancement
132     TF1 *fProtonEnhancement;//!function to describe anti-lambda enhancement
133     Float_t LambdaBaryonEnhancement(Float_t pt);//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
134     Float_t ProtonBaryonEnhancement(Float_t pt);//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
135     TString fCentralityMethod;//string specifying the centrality method, see https://twiki.cern.ch/twiki/bin/viewauth/ALICE/CentStudies
136     Int_t fNCentBins;//number of centrality bins (11 or 21)
137     Int_t fCentBin;//current centrality bin
138
139
140  private:
141     //Declare it private to avoid compilation warning
142     AliAnalysisEtCommon & operator = (const AliAnalysisEtCommon & g) ;//cpy assignment
143     AliAnalysisEtCommon(const AliAnalysisEtCommon & g) ; // cpy ctor
144
145     ClassDef(AliAnalysisEtCommon, 1);
146 };
147
148 #endif // ALIANALYSISETCOMMON_H