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
Error occurred while calculating annotation data.
Log Message:
rho correction for electron isolation

File Contents

# Content
1 #ifndef Electron_H
2 #define Electron_H
3
4 #include "Particle.h"
5
6 /**
7 * @short electron class
8 * @author Thomas Peiffer
9 */
10
11 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 m_AEff=0;
45 };
46
47 ~Electron(){
48 };
49
50 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 float AEff() const{return m_AEff;}
80
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 void set_AEff(float x){m_AEff=x;}
112
113 float gsfTrack_dxy_vertex(const float point_x, const float point_y) const{
114 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 float gsfTrack_dz_vertex(const float point_x, const float point_y, const float point_z) const{
117 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 float relIso() const{
120 return ( m_chargedHadronIso + m_neutralHadronIso + m_photonIso ) / pt();
121 }
122 float relIsodb() const{
123 return ( m_chargedHadronIso + std::max( 0.0, m_neutralHadronIso + m_photonIso - 0.5*m_puChargedHadronIso ) ) / pt();
124 }
125 float relIsorho(const double rho) const{
126 return ( m_chargedHadronIso + std::max( 0.0, m_neutralHadronIso + m_photonIso - rho*m_AEff ) ) / pt();
127 }
128
129 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 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 float m_AEff;
206
207 };
208
209 #endif