ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Electron.h
(Generate patch)

Comparing UserCode/UHHAnalysis/NtupleWriter/Objects/Electron.h (file contents):
Revision 1.2 by peiffer, Wed May 23 09:10:59 2012 UTC vs.
Revision 1.5 by peiffer, Wed Jul 25 09:55:39 2012 UTC

# Line 3 | Line 3
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:
# Line 36 | Line 41 | class Electron : public Particle{
41      m_EcalEnergy=0;
42      m_mvaTrigV0=0;
43      m_mvaNonTrigV0=0;
44 +    m_AEff=0;
45    };
46  
47    ~Electron(){
# Line 70 | Line 76 | class Electron : public Particle{
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;}
# Line 101 | Line 108 | class Electron : public Particle{
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);  
# Line 109 | Line 117 | class Electron : public Particle{
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;
# Line 142 | Line 202 | class Electron : public Particle{
202    float m_EcalEnergy;
203    float m_mvaTrigV0;
204    float m_mvaNonTrigV0;
205 +  float m_AEff;
206  
207   };
208  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines