]>
Commit | Line | Data |
---|---|---|
bdcfac30 | 1 | #ifndef ALIGAMMAREADER_H |
2 | #define ALIGAMMAREADER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | /* $Id$ */ | |
6 | ||
7 | /* History of cvs commits: | |
8 | * | |
9 | * $Log$ | |
4b707925 | 10 | * Revision 1.2 2007/08/17 12:40:04 schutz |
11 | * New analysis classes by Gustavo Conesa | |
12 | * | |
bdcfac30 | 13 | * Revision 1.1.2.1 2007/07/26 10:32:09 schutz |
14 | * new analysis classes in the the new analysis framework | |
15 | * | |
16 | * | |
17 | */ | |
18 | ||
19 | //_________________________________________________________________________ | |
20 | // Base class for reading data in order to do prompt gamma correlations | |
21 | //*-- Author: Gustavo Conesa (INFN-LNF) | |
22 | ||
23 | // --- ROOT system --- | |
24 | #include <TParticle.h> | |
4b707925 | 25 | #include <TFormula.h> |
bdcfac30 | 26 | #include <TClonesArray.h> |
27 | #include "AliStack.h" | |
28 | #include "TObject.h" | |
29 | ||
30 | class AliESD ; | |
31 | ||
32 | class TH2F ; | |
33 | ||
34 | class AliGammaReader : public TObject { | |
35 | ||
36 | public: | |
37 | ||
38 | AliGammaReader() ; // ctor | |
39 | AliGammaReader(const AliGammaReader & g) ; // cpy ctor | |
40 | AliGammaReader & operator = (const AliGammaReader & g) ;//cpy assignment | |
41 | virtual ~AliGammaReader() {;} //virtual dtor | |
42 | ||
4b707925 | 43 | enum PidType { |
44 | kPhoton = 22, | |
45 | kPi0 = 111, | |
46 | kEta = 221, | |
47 | kElectron = 11, | |
48 | kEleCon = 13, | |
49 | kNeutralHadron = 2112, | |
50 | kChargedHadron = 211, | |
51 | kNeutralUnknown = 130, | |
52 | kChargedUnknown=321 | |
53 | }; | |
54 | ||
bdcfac30 | 55 | enum datatype_t {kData, kMC, kMCData}; |
56 | ||
57 | void InitParameters(); | |
58 | ||
59 | Int_t GetDataType(){ return fDataType ; } | |
60 | void SetDataType(Int_t data ){fDataType = data ; } | |
61 | ||
62 | virtual Float_t GetCTSEtaCut() const {return fCTSEtaCut ; } | |
63 | virtual Float_t GetEMCALEtaCut() const {return fEMCALEtaCut ; } | |
64 | virtual Float_t GetPHOSEtaCut() const {return fPHOSEtaCut ; } | |
65 | virtual Float_t GetPhiEMCALCut(Int_t i) { return fPhiEMCALCut[i] ; } | |
66 | virtual Float_t GetPhiPHOSCut(Int_t i) { return fPhiPHOSCut[i] ; } | |
67 | virtual Float_t GetNeutralPtCut() { return fNeutralPtCut ; } | |
68 | virtual Float_t GetChargedPtCut() { return fChargedPtCut ; } | |
69 | ||
4b707925 | 70 | virtual Float_t GetEMCALIPDistance() { return fEMCALIPDistance ; } |
71 | virtual Float_t GetPHOSIPDistance() { return fPHOSIPDistance ; } | |
72 | virtual Float_t GetEMCALMinAngle() { return fEMCALMinAngle ; } | |
73 | virtual Float_t GetPHOSMinAngle() { return fPHOSMinAngle ; } | |
74 | ||
75 | virtual Bool_t IsEMCALPIDOn() const {return fEMCALPID ; } | |
76 | virtual Bool_t IsPHOSPIDOn() const {return fPHOSPID ; } | |
77 | virtual Float_t GetEMCALPhotonWeight() { return fEMCALPhotonWeight ; } | |
78 | virtual Float_t GetEMCALPi0Weight() { return fEMCALPi0Weight ; } | |
79 | virtual Float_t GetEMCALElectronWeight() { return fEMCALElectronWeight ; } | |
80 | virtual Float_t GetEMCALChargeWeight() { return fEMCALChargeWeight ; } | |
81 | virtual Float_t GetEMCALNeutralWeight() { return fEMCALNeutralWeight ; } | |
82 | virtual Float_t GetPHOSPhotonWeight() { return fPHOSPhotonWeight ; } | |
83 | virtual Float_t GetPHOSPi0Weight() { return fPHOSPi0Weight ; } | |
84 | virtual Float_t GetPHOSElectronWeight() { return fPHOSElectronWeight ; } | |
85 | virtual Float_t GetPHOSChargeWeight() { return fPHOSChargeWeight ; } | |
86 | virtual Float_t GetPHOSNeutralWeight() { return fPHOSNeutralWeight ; } | |
87 | ||
88 | virtual Bool_t IsPHOSPIDWeightFormulaOn() { return fPHOSWeightFormula ; } | |
89 | virtual TFormula * GetPHOSPhotonWeightFormula() { return fPHOSPhotonWeightFormula ; } | |
90 | virtual TFormula * GetPHOSPi0WeightFormula() { return fPHOSPi0WeightFormula ; } | |
91 | ||
bdcfac30 | 92 | virtual void Print(const Option_t * opt)const; |
93 | ||
94 | virtual void SetCTSEtaCut(Float_t eta){ fCTSEtaCut= eta ; } | |
95 | virtual void SetEMCALEtaCut(Float_t eta){ fEMCALEtaCut= eta ; } | |
96 | virtual void SetPHOSEtaCut(Float_t eta){ fPHOSEtaCut= eta ; } | |
97 | virtual void SetPhiEMCALCut(Float_t phi0, Float_t phi1) | |
98 | { fPhiEMCALCut[0]= phi0 ; fPhiEMCALCut[1]= phi1 ;} | |
99 | virtual void SetPhiPHOSCut(Float_t phi0, Float_t phi1) | |
100 | { fPhiPHOSCut[0]= phi0 ; fPhiPHOSCut[1]= phi1 ;} | |
101 | virtual void SetNeutralPtCut(Float_t pt){ fNeutralPtCut = pt ; } | |
102 | virtual void SetChargedPtCut(Float_t pt){ fChargedPtCut = pt ; } | |
103 | ||
4b707925 | 104 | virtual void SetEMCALIPDistance(Float_t d){ fEMCALIPDistance = d ; } |
105 | virtual void SetPHOSIPDistance(Float_t d){ fPHOSIPDistance = d ; } | |
106 | virtual void SetEMCALMinAngle(Float_t d){ fEMCALMinAngle = d ; } | |
107 | virtual void SetPHOSMinAngle(Float_t d){ fPHOSMinAngle = d ; } | |
108 | ||
109 | virtual void SetEMCALPIDOn(Bool_t pid){ fEMCALPID= pid ; } | |
110 | virtual void SetPHOSPIDOn(Bool_t pid){ fPHOSPID= pid ; } | |
111 | virtual void SetEMCALPhotonWeight(Float_t w){ fEMCALPhotonWeight = w ; } | |
112 | virtual void SetEMCALPi0Weight(Float_t w){ fEMCALPi0Weight = w ; } | |
113 | virtual void SetEMCALElectronWeight(Float_t w){ fEMCALElectronWeight = w ; } | |
114 | virtual void SetEMCALChargeWeight(Float_t w){ fEMCALChargeWeight = w ; } | |
115 | virtual void SetEMCALNeutralWeight(Float_t w){ fEMCALNeutralWeight = w ; } | |
116 | virtual void SetPHOSPhotonWeight(Float_t w){ fPHOSPhotonWeight = w ; } | |
117 | virtual void SetPHOSPi0Weight(Float_t w){ fPHOSPi0Weight = w ; } | |
118 | virtual void SetPHOSElectronWeight(Float_t w){ fPHOSElectronWeight = w ; } | |
119 | virtual void SetPHOSChargeWeight(Float_t w){ fPHOSChargeWeight = w ; } | |
120 | virtual void SetPHOSNeutralWeight(Float_t w){ fPHOSNeutralWeight = w ; } | |
121 | ||
122 | virtual void UsePHOSPIDWeightFormula(Bool_t par) { fPHOSWeightFormula = par; } | |
123 | virtual void SetPHOSPhotonWeightFormula(TFormula * photon) { fPHOSPhotonWeightFormula = photon; } | |
124 | virtual void SetPHOSPi0WeightFormula(TFormula * pi0) { fPHOSPi0WeightFormula = pi0; } | |
125 | ||
bdcfac30 | 126 | virtual void CreateParticleList(TObject* data, TObject * data2, |
4b707925 | 127 | TClonesArray * plCh, TClonesArray * plEMCAL, TClonesArray * plPHOS, |
128 | TClonesArray * parton, TClonesArray * plPrimEMCAL, TClonesArray * plPrimPHOS) {;} | |
bdcfac30 | 129 | protected: |
130 | Int_t fDataType ; | |
131 | Float_t fCTSEtaCut ;//CTS pseudorapidity acceptance | |
132 | Float_t fEMCALEtaCut ;//EMCAL pseudorapidity acceptance | |
133 | Float_t fPHOSEtaCut ;//PHOS pseudorapidity acceptance | |
134 | Float_t fPhiEMCALCut[2]; //EMCAL phi acceptance | |
135 | Float_t fPhiPHOSCut[2]; //PHOS phi acceptance | |
136 | Float_t fNeutralPtCut; // | |
137 | Float_t fChargedPtCut; // | |
138 | ||
4b707925 | 139 | Float_t fEMCALIPDistance; //Calorimeter IP distance. |
140 | Float_t fPHOSIPDistance; //Calorimeter IP distance | |
141 | Float_t fEMCALMinAngle; //Gamma decay minimum aperture angle for overlapping. | |
142 | Float_t fPHOSMinAngle; //Gamma decay minimum aperture angle for overlapping. | |
143 | ||
144 | Bool_t fEMCALPID ;//Fill EMCAL particle lists with particles with corresponding pid | |
145 | Bool_t fPHOSPID; //Fill PHOS particle lists with particles with corresponding pid | |
146 | Float_t fEMCALPhotonWeight; //Bayesian PID weight for photons in EMCAL | |
147 | Float_t fEMCALPi0Weight; //Bayesian PID weight for pi0 in EMCAL | |
148 | Float_t fEMCALElectronWeight; //Bayesian PID weight for electrons in EMCAL | |
149 | Float_t fEMCALChargeWeight; //Bayesian PID weight for charged hadrons in EMCAL | |
150 | Float_t fEMCALNeutralWeight; //Bayesian PID weight for neutral hadrons in EMCAL | |
151 | Float_t fPHOSPhotonWeight; //Bayesian PID weight for photons in PHOS | |
152 | Float_t fPHOSPi0Weight; //Bayesian PID weight for pi0 in PHOS | |
153 | Float_t fPHOSElectronWeight; //Bayesian PID weight for electrons in PHOS | |
154 | Float_t fPHOSChargeWeight; //Bayesian PID weight for charged hadrons in PHOS | |
155 | Float_t fPHOSNeutralWeight; //Bayesian PID weight for neutral hadrons in PHOS | |
156 | ||
157 | Bool_t fPHOSWeightFormula ; //Use parametrized weight threshold, function of energy | |
158 | TFormula * fPHOSPhotonWeightFormula ; //Formula for photon weight | |
159 | TFormula * fPHOSPi0WeightFormula ; //Formula for pi0 weight | |
160 | ||
161 | ClassDef(AliGammaReader,1) | |
bdcfac30 | 162 | } ; |
4b707925 | 163 | |
bdcfac30 | 164 | |
165 | #endif //ALIGAMMAREADER_H | |
166 | ||
167 | ||
168 |