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.1 by peiffer, Tue May 22 09:32:32 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(){
48    };
49  
50 <  float vertex_x(){return m_vertex_x;}
51 <  float vertex_y(){return m_vertex_y;}
52 <  float vertex_z(){return m_vertex_z;}
53 <  float supercluster_eta(){return m_supercluster_eta;}
54 <  float supercluster_phi(){return m_supercluster_phi;}
55 <  float dB(){return m_dB;}
56 <  //float particleIso(){return m_particleIso;}
57 <  float neutralHadronIso(){return m_neutralHadronIso;}
58 <  float chargedHadronIso(){return m_chargedHadronIso;}
59 <  float photonIso(){return m_photonIso;}
60 <  float trackIso(){return m_trackIso;}
61 <  float puChargedHadronIso(){return m_puChargedHadronIso;}
62 <  int gsfTrack_trackerExpectedHitsInner_numberOfLostHits(){return m_gsfTrack_trackerExpectedHitsInner_numberOfLostHits;}
63 <  float gsfTrack_px(){return m_gsfTrack_px;}
64 <  float gsfTrack_py(){return m_gsfTrack_py;}
65 <  float gsfTrack_pz(){return m_gsfTrack_pz;}
66 <  float gsfTrack_vx(){return m_gsfTrack_vx;}
67 <  float gsfTrack_vy(){return m_gsfTrack_vy;}
68 <  float gsfTrack_vz(){return m_gsfTrack_vz;}
69 <  bool passconversionveto(){return m_passconversionveto;}
70 <  float dEtaIn(){return m_dEtaIn;}
71 <  float dPhiIn(){return m_dPhiIn;}
72 <  float sigmaIEtaIEta(){return m_sigmaIEtaIEta;}
73 <  float HoverE(){return m_HoverE;}
74 <  float fbrem(){return m_fbrem;}
75 <  float EoverPIn(){return m_EoverPIn;}
76 <  float EcalEnergy(){return m_EcalEnergy;}
77 <  float mvaTrigV0(){return m_mvaTrigV0;}
78 <  float mvaNonTrigV0(){return m_mvaNonTrigV0;}
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;}
# 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){
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){
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(){
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