ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Electron.h
Revision: 1.5
Committed: Wed Jul 25 09:55:39 2012 UTC (12 years, 9 months ago) by peiffer
Content type: text/plain
Branch: MAIN
CVS Tags: v1-00, Feb-15-2013-v1, Feb-14-2013, Feb-07-2013-v1, Jan-17-2013-v2, Jan-17-2013-v1, Jan-16-2012-v1, Jan-09-2012-v2, Jan-09-2012-v1, Dec-26-2012-v1, Dec-20-2012-v1, Dec-17-2012-v1, Dec-05-2012-v1, Nov-30-2012-v3, Nov-30-2012-v2, Nov-30-2012-v1, HEAD
Changes since 1.4: +10 -0 lines
Log Message:
rho correction for electron isolation

File Contents

# User Rev Content
1 peiffer 1.1 #ifndef Electron_H
2     #define Electron_H
3    
4     #include "Particle.h"
5    
6 peiffer 1.3 /**
7     * @short electron class
8     * @author Thomas Peiffer
9     */
10    
11 peiffer 1.1 class Electron : public Particle{
12    
13     public:
14     Electron(){
15     m_vertex_x=0;
16     m_vertex_y=0;
17     m_vertex_z=0;
18     m_supercluster_eta=0;
19     m_supercluster_phi=0;
20     m_dB=0;
21     // m_particleIso=0;
22     m_neutralHadronIso=0;
23     m_chargedHadronIso=0;
24     m_photonIso=0;
25     m_trackIso=0;
26     m_puChargedHadronIso=0;
27     m_gsfTrack_trackerExpectedHitsInner_numberOfLostHits=0;
28     m_gsfTrack_px=0;
29     m_gsfTrack_py=0;
30     m_gsfTrack_pz=0;
31     m_gsfTrack_vx=0;
32     m_gsfTrack_vy=0;
33     m_gsfTrack_vz=0;
34     m_passconversionveto=false;
35     m_dEtaIn=0;
36     m_dPhiIn=0;
37     m_sigmaIEtaIEta=0;
38     m_HoverE=0;
39     m_fbrem=0;
40     m_EoverPIn=0;
41     m_EcalEnergy=0;
42     m_mvaTrigV0=0;
43     m_mvaNonTrigV0=0;
44 peiffer 1.5 m_AEff=0;
45 peiffer 1.1 };
46    
47     ~Electron(){
48     };
49    
50 peiffer 1.2 float vertex_x() const{return m_vertex_x;}
51     float vertex_y() const{return m_vertex_y;}
52     float vertex_z() const{return m_vertex_z;}
53     float supercluster_eta() const{return m_supercluster_eta;}
54     float supercluster_phi() const{return m_supercluster_phi;}
55     float dB() const{return m_dB;}
56     //float particleIso() const{return m_particleIso;}
57     float neutralHadronIso() const{return m_neutralHadronIso;}
58     float chargedHadronIso() const{return m_chargedHadronIso;}
59     float photonIso() const{return m_photonIso;}
60     float trackIso() const{return m_trackIso;}
61     float puChargedHadronIso() const{return m_puChargedHadronIso;}
62     int gsfTrack_trackerExpectedHitsInner_numberOfLostHits() const{return m_gsfTrack_trackerExpectedHitsInner_numberOfLostHits;}
63     float gsfTrack_px() const{return m_gsfTrack_px;}
64     float gsfTrack_py() const{return m_gsfTrack_py;}
65     float gsfTrack_pz() const{return m_gsfTrack_pz;}
66     float gsfTrack_vx() const{return m_gsfTrack_vx;}
67     float gsfTrack_vy() const{return m_gsfTrack_vy;}
68     float gsfTrack_vz() const{return m_gsfTrack_vz;}
69     bool passconversionveto() const{return m_passconversionveto;}
70     float dEtaIn() const{return m_dEtaIn;}
71     float dPhiIn() const{return m_dPhiIn;}
72     float sigmaIEtaIEta() const{return m_sigmaIEtaIEta;}
73     float HoverE() const{return m_HoverE;}
74     float fbrem() const{return m_fbrem;}
75     float EoverPIn() const{return m_EoverPIn;}
76     float EcalEnergy() const{return m_EcalEnergy;}
77     float mvaTrigV0() const{return m_mvaTrigV0;}
78     float mvaNonTrigV0() const{return m_mvaNonTrigV0;}
79 peiffer 1.5 float AEff() const{return m_AEff;}
80 peiffer 1.1
81    
82     void set_vertex_x(float x){m_vertex_x=x;}
83     void set_vertex_y(float x){m_vertex_y=x;}
84     void set_vertex_z(float x){m_vertex_z=x;}
85     void set_supercluster_eta(float x){m_supercluster_eta=x;}
86     void set_supercluster_phi(float x){m_supercluster_phi=x;}
87     void set_dB(float x){m_dB=x;}
88     //void set_particleIso(float x){m_particleIso=x;}
89     void set_neutralHadronIso(float x){m_neutralHadronIso=x;}
90     void set_chargedHadronIso(float x){m_chargedHadronIso=x;}
91     void set_photonIso(float x){m_photonIso=x;}
92     void set_trackIso(float x){m_trackIso=x;}
93     void set_puChargedHadronIso(float x){m_puChargedHadronIso=x;}
94     void set_gsfTrack_trackerExpectedHitsInner_numberOfLostHits(int x){m_gsfTrack_trackerExpectedHitsInner_numberOfLostHits=x;}
95     void set_gsfTrack_px(float x){m_gsfTrack_px=x;}
96     void set_gsfTrack_py(float x){m_gsfTrack_py=x;}
97     void set_gsfTrack_pz(float x){m_gsfTrack_pz=x;}
98     void set_gsfTrack_vx(float x){m_gsfTrack_vx=x;}
99     void set_gsfTrack_vy(float x){m_gsfTrack_vy=x;}
100     void set_gsfTrack_vz(float x){m_gsfTrack_vz=x;}
101     void set_passconversionveto(bool x){m_passconversionveto=x;}
102     void set_dEtaIn(float x){m_dEtaIn=x;}
103     void set_dPhiIn(float x){m_dPhiIn=x;}
104     void set_sigmaIEtaIEta(float x){m_sigmaIEtaIEta=x;}
105     void set_HoverE(float x){m_HoverE=x;}
106     void set_fbrem(float x){m_fbrem=x;}
107     void set_EoverPIn(float x){m_EoverPIn=x;}
108     void set_EcalEnergy(float x){m_EcalEnergy=x;}
109     void set_mvaTrigV0(float x){m_mvaTrigV0=x;}
110     void set_mvaNonTrigV0(float x){m_mvaNonTrigV0=x;}
111 peiffer 1.5 void set_AEff(float x){m_AEff=x;}
112 peiffer 1.1
113 peiffer 1.2 float gsfTrack_dxy_vertex(const float point_x, const float point_y) const{
114 peiffer 1.1 return ( - (m_gsfTrack_vx-point_x) * m_gsfTrack_py + (m_gsfTrack_vy-point_y) * m_gsfTrack_px ) / sqrt(m_gsfTrack_px*m_gsfTrack_px+m_gsfTrack_py*m_gsfTrack_py);
115     };
116 peiffer 1.2 float gsfTrack_dz_vertex(const float point_x, const float point_y, const float point_z) const{
117 peiffer 1.1 return (m_gsfTrack_vz-point_z) - ((m_gsfTrack_vx-point_x)*m_gsfTrack_px+(m_gsfTrack_vy-point_y)*m_gsfTrack_py)/(m_gsfTrack_px*m_gsfTrack_px+m_gsfTrack_py*m_gsfTrack_py) * m_gsfTrack_pz;
118     }
119 peiffer 1.2 float relIso() const{
120 peiffer 1.5 return ( m_chargedHadronIso + m_neutralHadronIso + m_photonIso ) / pt();
121     }
122     float relIsodb() const{
123 peiffer 1.1 return ( m_chargedHadronIso + std::max( 0.0, m_neutralHadronIso + m_photonIso - 0.5*m_puChargedHadronIso ) ) / pt();
124     }
125 peiffer 1.5 float relIsorho(const double rho) const{
126     return ( m_chargedHadronIso + std::max( 0.0, m_neutralHadronIso + m_photonIso - rho*m_AEff ) ) / pt();
127     }
128 peiffer 1.1
129 peiffer 1.4 enum E_eleIDType{
130     e_Tight,
131     e_Medium,
132     e_Loose,
133     e_Veto
134     };
135    
136    
137     bool eleID(E_eleIDType type){
138    
139     bool pass=false;
140    
141    
142     float cuts_barrel[5]={0,0,0,0,0};
143     float cuts_endcap[5]={0,0,0,0,0};
144    
145     if(type==e_Tight){
146     cuts_barrel[0]=0.004; cuts_barrel[1]=0.03; cuts_barrel[2]=0.01; cuts_barrel[3]=0.12; cuts_barrel[4]=0.05;
147     cuts_endcap[0]=0.005; cuts_endcap[1]=0.02; cuts_endcap[2]=0.03; cuts_endcap[3]=0.10; cuts_endcap[4]=0.05;
148     }
149     if(type==e_Medium){
150     cuts_barrel[0]=0.004; cuts_barrel[1]=0.06; cuts_barrel[2]=0.01; cuts_barrel[3]=0.12; cuts_barrel[4]=0.05;
151     cuts_endcap[0]=0.007; cuts_endcap[1]=0.03; cuts_endcap[2]=0.03; cuts_endcap[3]=0.10; cuts_endcap[4]=0.05;
152     }
153     if(type==e_Loose){
154     cuts_barrel[0]=0.007; cuts_barrel[1]=0.15; cuts_barrel[2]=0.01; cuts_barrel[3]=0.12; cuts_barrel[4]=0.05;
155     cuts_endcap[0]=0.009; cuts_endcap[1]=0.10; cuts_endcap[2]=0.03; cuts_endcap[3]=0.10; cuts_endcap[4]=0.05;
156     }
157     if(type==e_Veto){
158     cuts_barrel[0]=0.007; cuts_barrel[1]=0.8; cuts_barrel[2]=0.01; cuts_barrel[3]=0.15; cuts_barrel[4]=std::numeric_limits<float>::infinity();
159     cuts_endcap[0]=0.01; cuts_endcap[1]=0.7; cuts_endcap[2]=0.03; cuts_endcap[3]=std::numeric_limits<float>::infinity(); cuts_endcap[4]=std::numeric_limits<float>::infinity();
160     }
161    
162     float trackMomentumAtVtx = EcalEnergy()/EoverPIn();
163    
164     if(fabs(supercluster_eta())<1.4442){
165     if(dEtaIn()<cuts_barrel[0] && dPhiIn()<cuts_barrel[1] && sigmaIEtaIEta()<cuts_barrel[2] && HoverE()<cuts_barrel[3] && fabs(1./EcalEnergy()-1./trackMomentumAtVtx)<cuts_barrel[4]) pass=true;
166     }
167     else if( fabs(supercluster_eta())>1.5660){
168     if(dEtaIn()<cuts_endcap[0] && dPhiIn()<cuts_endcap[1] && sigmaIEtaIEta()<cuts_endcap[2] && HoverE()<cuts_endcap[3] && fabs(1./EcalEnergy()-1./trackMomentumAtVtx)<cuts_endcap[4]) pass=true;
169     }
170    
171     return pass;
172    
173     }
174    
175 peiffer 1.1 private:
176     float m_vertex_x;
177     float m_vertex_y;
178     float m_vertex_z;
179     float m_supercluster_eta;
180     float m_supercluster_phi;
181     float m_dB;
182     //float m_particleIso;
183     float m_neutralHadronIso;
184     float m_chargedHadronIso;
185     float m_photonIso;
186     float m_trackIso;
187     float m_puChargedHadronIso;
188     int m_gsfTrack_trackerExpectedHitsInner_numberOfLostHits;
189     float m_gsfTrack_px;
190     float m_gsfTrack_py;
191     float m_gsfTrack_pz;
192     float m_gsfTrack_vx;
193     float m_gsfTrack_vy;
194     float m_gsfTrack_vz;
195     bool m_passconversionveto;
196     float m_dEtaIn;
197     float m_dPhiIn;
198     float m_sigmaIEtaIEta;
199     float m_HoverE;
200     float m_fbrem;
201     float m_EoverPIn;
202     float m_EcalEnergy;
203     float m_mvaTrigV0;
204     float m_mvaNonTrigV0;
205 peiffer 1.5 float m_AEff;
206 peiffer 1.1
207     };
208    
209     #endif