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: |
117 |
|
return ( m_chargedHadronIso + std::max( 0.0, m_neutralHadronIso + m_photonIso - 0.5*m_puChargedHadronIso ) ) / pt(); |
118 |
|
} |
119 |
|
|
120 |
+ |
enum E_eleIDType{ |
121 |
+ |
e_Tight, |
122 |
+ |
e_Medium, |
123 |
+ |
e_Loose, |
124 |
+ |
e_Veto |
125 |
+ |
}; |
126 |
+ |
|
127 |
+ |
|
128 |
+ |
bool eleID(E_eleIDType type){ |
129 |
+ |
|
130 |
+ |
bool pass=false; |
131 |
+ |
|
132 |
+ |
|
133 |
+ |
float cuts_barrel[5]={0,0,0,0,0}; |
134 |
+ |
float cuts_endcap[5]={0,0,0,0,0}; |
135 |
+ |
|
136 |
+ |
if(type==e_Tight){ |
137 |
+ |
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; |
138 |
+ |
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; |
139 |
+ |
} |
140 |
+ |
if(type==e_Medium){ |
141 |
+ |
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; |
142 |
+ |
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; |
143 |
+ |
} |
144 |
+ |
if(type==e_Loose){ |
145 |
+ |
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; |
146 |
+ |
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; |
147 |
+ |
} |
148 |
+ |
if(type==e_Veto){ |
149 |
+ |
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(); |
150 |
+ |
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(); |
151 |
+ |
} |
152 |
+ |
|
153 |
+ |
float trackMomentumAtVtx = EcalEnergy()/EoverPIn(); |
154 |
+ |
|
155 |
+ |
if(fabs(supercluster_eta())<1.4442){ |
156 |
+ |
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; |
157 |
+ |
} |
158 |
+ |
else if( fabs(supercluster_eta())>1.5660){ |
159 |
+ |
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; |
160 |
+ |
} |
161 |
+ |
|
162 |
+ |
return pass; |
163 |
+ |
|
164 |
+ |
} |
165 |
+ |
|
166 |
|
private: |
167 |
|
float m_vertex_x; |
168 |
|
float m_vertex_y; |