]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/AliGammaReader.h
update Toolkit classes
[u/mrichter/AliRoot.git] / PWG4 / AliGammaReader.h
CommitLineData
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
30class AliESD ;
31
32class TH2F ;
33
34class AliGammaReader : public TObject {
35
36public:
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