1 |
|
2 |
bool passElectronID(int j, int cut){
|
3 |
|
4 |
float sigiee = electronsigmaIetaIeta[j];
|
5 |
float deta = electrondeltaEtaSuperClusterTrackAtVtx[j];
|
6 |
float dphi = electrondeltaPhiSuperClusterTrackAtVtx[j];
|
7 |
hoe = electronhcalOverEcal[j];
|
8 |
|
9 |
float trkiso = electrondr03TkSumPt[j];
|
10 |
float ecaliso = electrondr03EcalRecHitSumEt[j];
|
11 |
float hcaliso = electrondr03HcalTowerSumEt[j];
|
12 |
float hcalisodep1 = electrondr03HcalDepth1TowerSumEt[j];
|
13 |
float hcalisodep2 = electrondr03HcalDepth2TowerSumEt[j];
|
14 |
|
15 |
float pt = electronpt[j];
|
16 |
|
17 |
int nmissinghits = electronExpectedHitsInnernumberOfHits[j];
|
18 |
|
19 |
float dist = electronconvDist[j];
|
20 |
float dcottheta = electronconvDcot[j];
|
21 |
|
22 |
|
23 |
float e2x5oe5x5 = electrone2x5Max[j]/ electrone5x5[j];
|
24 |
float e1x5oe5x5 = electrone1x5[j]/electrone5x5[j];
|
25 |
|
26 |
float et = electronscenergy[j] * sin(2*atan(exp(-electroneta[j])));
|
27 |
etasc = electronsceta[j];
|
28 |
|
29 |
|
30 |
if(cut==0){
|
31 |
return true;
|
32 |
}
|
33 |
else if(cut ==1){
|
34 |
|
35 |
//WP95
|
36 |
if( fabs(etasc) < 1.48){
|
37 |
|
38 |
if( sigiee < 0.01 && fabs(deta) < 0.007 && fabs(dphi) < 0.8 && hoe < 0.15 && trkiso/pt < 0.15
|
39 |
&& ecaliso/pt < 2 && hcaliso/pt < 0.12 && nmissinghits <=1 ) return true;
|
40 |
else return false;
|
41 |
|
42 |
}else{
|
43 |
if( sigiee < 0.03 && fabs(deta) < 0.01 && fabs(dphi) < 0.7 && hoe < 0.07 && trkiso/pt < 0.08
|
44 |
&& ecaliso/pt < 0.06 && hcaliso/pt < 0.05 && nmissinghits <=1 ) return true;
|
45 |
else return false;
|
46 |
|
47 |
}
|
48 |
|
49 |
}
|
50 |
else if(cut ==2){
|
51 |
|
52 |
if( fabs(etasc) < 1.48){
|
53 |
|
54 |
if( fabs(deta) < 0.007 && fabs(dphi) < 0.8 && nmissinghits <=1 ) return true;
|
55 |
else return false;
|
56 |
|
57 |
}else{
|
58 |
if( fabs(deta) < 0.01 && fabs(dphi) < 0.7 && nmissinghits <=1 ) return true;
|
59 |
else return false;
|
60 |
}
|
61 |
|
62 |
}
|
63 |
|
64 |
else if(cut ==-3){ ///corrected for PU isolation, set rho = 0
|
65 |
|
66 |
rho = 0;
|
67 |
|
68 |
//WP80
|
69 |
if( fabs(etasc) < 1.48){
|
70 |
|
71 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && (trkiso- rho * 0 )/pt < 0.09
|
72 |
&& (ecaliso- rho * 0.096) /pt < 0.07 && (hcaliso - rho * 0.020) /pt < 0.1 && nmissinghits <=0 ) return true;
|
73 |
else return false;
|
74 |
|
75 |
}else{
|
76 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && hoe < 0.15 && (trkiso - rho * 0) /pt < 0.04
|
77 |
&& (ecaliso - rho * 0.044) /pt < 0.05 && (hcaliso - rho * 0.041) /pt < 0.025 && nmissinghits <=0 ) return true;
|
78 |
else return false;
|
79 |
|
80 |
}
|
81 |
|
82 |
}
|
83 |
|
84 |
|
85 |
else if(cut ==3){ ///corrected for PU isolation
|
86 |
//WP80
|
87 |
if( fabs(etasc) < 1.48){
|
88 |
|
89 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && (trkiso- rho * 0 )/pt < 0.09
|
90 |
&& (ecaliso- rho * 0.096) /pt < 0.07 && (hcaliso - rho * 0.020) /pt < 0.1 && nmissinghits <=0 ) return true;
|
91 |
else return false;
|
92 |
|
93 |
}else{
|
94 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && hoe < 0.15 && (trkiso - rho * 0) /pt < 0.04
|
95 |
&& (ecaliso - rho * 0.044) /pt < 0.05 && (hcaliso - rho * 0.041) /pt < 0.025 && nmissinghits <=0 ) return true;
|
96 |
else return false;
|
97 |
|
98 |
}
|
99 |
|
100 |
}
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 |
|
116 |
|
117 |
else if(cut ==4){ //WP80 no isolation,no sigee
|
118 |
|
119 |
//WP80
|
120 |
if( fabs(etasc) < 1.48){
|
121 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && nmissinghits <=1 ) return true;
|
122 |
else return false;
|
123 |
|
124 |
}else{
|
125 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && nmissinghits <=1 ) return true;
|
126 |
else return false;
|
127 |
}
|
128 |
}
|
129 |
|
130 |
else if(cut ==5){
|
131 |
//WP60
|
132 |
if( fabs(etasc) < 1.48){
|
133 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.025 && fabs(dphi) < 0.04 && hoe < 0.025 && trkiso/pt < 0.04
|
134 |
&& ecaliso/pt < 0.04 && hcaliso/pt < 0.03 && nmissinghits <=0 ) return true;
|
135 |
else return false;
|
136 |
|
137 |
}else{
|
138 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.005 && fabs(dphi) < 0.02 && hoe < 0.025 && trkiso/pt < 0.025
|
139 |
&& ecaliso/pt < 0.02 && hcaliso/pt < 0.02 && nmissinghits <=0 ) return true;
|
140 |
else return false;
|
141 |
|
142 |
}
|
143 |
|
144 |
}
|
145 |
else if(cut ==6){
|
146 |
//WP60 no sigiee no isolation
|
147 |
if( fabs(etasc) < 1.48){
|
148 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.004 && fabs(dphi) < 0.025 && nmissinghits <=1 ) return true;
|
149 |
else return false;
|
150 |
|
151 |
}else{
|
152 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.005 && fabs(dphi) < 0.02 && nmissinghits <=1 ) return true;
|
153 |
else return false;
|
154 |
}
|
155 |
|
156 |
}
|
157 |
|
158 |
else if(cut ==7){ //WW from xiesi
|
159 |
if( fabs(etasc) < 1.48){
|
160 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02 ) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && ( trkiso + max(ecaliso-1,float(0)) + hcaliso)/pt < 0.1
|
161 |
) return true;
|
162 |
else return false;
|
163 |
}else{
|
164 |
if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02 ) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.3 && hoe < 0.025 && ( trkiso + ecaliso + hcaliso)/pt < 0.1 ) return true;
|
165 |
else return false;
|
166 |
}
|
167 |
}
|
168 |
|
169 |
|
170 |
///HEEP ID
|
171 |
|
172 |
else if(cut ==10){
|
173 |
|
174 |
|
175 |
|
176 |
if( fabs(etasc) < 1.48){
|
177 |
|
178 |
if(fabs(etasc)<1.442 && fabs(deta) < 0.005 && fabs(dphi)<0.09 && hoe < 0.05 && (e2x5oe5x5>0.94|| e1x5oe5x5>0.83) && (ecaliso + hcalisodep1) < 2 + 0.03 * et && trkiso < 7.5) return true;
|
179 |
else {
|
180 |
|
181 |
//if( fabs(etasc)<1.442) {cout<<" check "<< etasc<<" "<< deta <<" "<< dphi <<" "<< hoe <<" "<< e2x5oe5x5ele <<" "<< ecaliso+hcalisodep1<<" "<< 2 + 0.03 * et<<" "<<trkiso <<" "<< endl;
|
182 |
// }
|
183 |
|
184 |
return false;
|
185 |
}
|
186 |
}else{
|
187 |
if(fabs(etasc)<2.5 && fabs(etasc)>1.560 && fabs(deta) < 0.007 && fabs(dphi)<0.09 && hoe < 0.05 && trkiso < 15
|
188 |
&& hcalisodep2 < 0.5 && sigiee < 0.03
|
189 |
){
|
190 |
if( et <50){
|
191 |
if( ecaliso + hcalisodep1 < 2.5) return true;
|
192 |
else return false;
|
193 |
}else{
|
194 |
if( ecaliso + hcalisodep1 < 2.5 + 0.03*(et-50) ) return true;
|
195 |
else return false;
|
196 |
}
|
197 |
}else return false;
|
198 |
}
|
199 |
}
|
200 |
|
201 |
|
202 |
|
203 |
else{
|
204 |
cout<<"passElectronID NA.." <<endl;
|
205 |
exit(1);
|
206 |
}
|
207 |
|
208 |
|
209 |
|
210 |
}
|