]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEtCommon.h
Bug fix: clone data member pointers in assignment operator
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtCommon.h
CommitLineData
7d2d1773 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"
0f6416f3 12#include "TObject.h"
7d2d1773 13
14class TH2F;
15class TH1F;
964c8159 16class TF1;
7d2d1773 17class AliVEvent;
18class TList;
19class AliESDtrackCuts;
20class Rtypes;
21class TParticle;
22class TDatabasePDG;
23class AliAnalysisEtCuts;
24
0f6416f3 25class AliAnalysisEtCommon : public TObject
7d2d1773 26{
27public:
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
7d2d1773 39 /** Reset event specific values (Et etc.) */
40 virtual void ResetEventValues();
41
c32af3dd 42 /** LevyPtEvaluate function */
43 static Double_t LevyPtEvaluate(const Double_t *pt, const Double_t *par);
44
7d2d1773 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;}
bf205f52 54 void SetCentralityMethod(char *method){ fCentralityMethod = TString(method);}
55 void SetNumberOfCentralityBins(Int_t bins){fNCentBins = bins;}
d9e04f5d 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;}
964c8159 58 Int_t DataSet()const {return fDataSet;}
7d2d1773 59
60protected:
61
62 TString fHistogramNameSuffix; /** The suffix for the histogram names */
63
c07d3175 64 AliAnalysisEtCuts *fCuts; // keeper of basic cuts
7d2d1773 65
964c8159 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
f43fc416 69 //20100 = 2.76 TeV Pb+Pb data from 2010
d9e04f5d 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
964c8159 71
7d2d1773 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
7d2d1773 84 static Int_t fgOmegaCode;//pdg omega code
b2c10007 85 static Int_t fgK0SCode;//pdg k0 short code
86 static Int_t fgK0Code;//pdg k0 code
7d2d1773 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
964c8159 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
4d8d4e4d 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
f43fc416 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
bf205f52 135 TString fCentralityMethod;//string specifying the centrality method, see https://twiki.cern.ch/twiki/bin/viewauth/ALICE/CentStudies
c1854447 136 Int_t fNCentBins;//number of centrality bins (11 or 21)
b89c2382 137 Int_t fCentBin;//current centrality bin
f43fc416 138
139
7d2d1773 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