161 |
|
break; |
162 |
|
} |
163 |
|
} |
164 |
+ |
|
165 |
+ |
// kick out non fiducial, low pT eles |
166 |
+ |
if ( ele->pt < 7 || fabs(ele->eta) > 2.5 ) |
167 |
+ |
continue; |
168 |
|
|
169 |
|
SelectionStatus elesel; |
170 |
|
elesel |= (*ElectronPreSelector)(ctrl,ele); |
171 |
|
elesel |= (*ElectronIDSelector)(ctrl,ele); |
172 |
|
elesel |= (*ElectronIsoSelector)(ctrl,ele); |
173 |
< |
if( elesel.getStatus() & SelectionStatus::PRESELECTION ) |
174 |
< |
elesel.setStatus(SelectionStatus::LOOSESELECTION); |
173 |
> |
|
174 |
> |
// if( elesel.getStatus() & SelectionStatus::PRESELECTION ) |
175 |
> |
// elesel.setStatus(SelectionStatus::LOOSESELECTION); |
176 |
|
|
177 |
|
if( ctrl.debug ){ |
178 |
|
cout << "\tscEt: " << ele->scEt |
183 |
|
<< endl; |
184 |
|
} |
185 |
|
|
186 |
< |
if ( elesel.pass() && !isMuonOverlap ) |
186 |
> |
// if ( elesel.pass() && !isMuonOverlap ) |
187 |
> |
if ( !isMuonOverlap ) |
188 |
|
{ |
189 |
|
SimpleLepton tmplep; |
190 |
|
|
223 |
|
tmplep.isEB = ele->isEB; |
224 |
|
tmplep.scID = ele->scID; |
225 |
|
tmplep.isTight = elesel.tight(); |
226 |
< |
tmplep.isLoose = elesel.pass(); |
226 |
> |
tmplep.isLoose = elesel.loose(); |
227 |
> |
// tmplep.isLoose = elesel.pass(); |
228 |
|
lepvec.push_back(tmplep); |
229 |
|
if( ctrl.debug ) { cout << "\telectron passes ... " << endl; } |
230 |
|
} |
265 |
|
for(int j = 0; j<lepvec.size(); j++) { // get a loose electron |
266 |
|
if( j == i ) continue; |
267 |
|
if( abs(lepvec[j].type) != 11 ) continue; |
268 |
< |
if( !(lepvec[j].isLoose) ) continue; |
269 |
< |
if (lepvec[i].charge == lepvec[j].charge) continue; |
270 |
< |
// if (lepvec[i].charge != lepvec[j].charge) continue; |
268 |
> |
// if( !(lepvec[j].isLoose) ) continue; |
269 |
> |
// if (lepvec[i].charge == lepvec[j].charge) continue; |
270 |
> |
if (lepvec[i].charge != lepvec[j].charge) continue; |
271 |
|
if( ctrl.debug ) cout << "got a electron, index: " << j << endl; |
272 |
|
|
273 |
|
float tmpMass = ( *(lepvec[i].vec) + *(lepvec[j].vec) ).M(); |
283 |
|
|
284 |
|
if( bestMass > 0 ) { |
285 |
|
if( ctrl.debug ) cout << "EMU candidate, mass : " << bestMass << endl; |
286 |
+ |
|
287 |
+ |
// if( lepvec[best_ele_index].isTight ) |
288 |
+ |
// ret.status.setStatus(SelectionStatus::TIGHTSELECTION); |
289 |
+ |
// else |
290 |
+ |
// ret.status.setStatus(SelectionStatus::LOOSESELECTION); |
291 |
+ |
|
292 |
|
if( lepvec[best_ele_index].isTight ) |
293 |
|
ret.status.setStatus(SelectionStatus::TIGHTSELECTION); |
294 |
< |
else |
294 |
> |
if( lepvec[best_ele_index].isLoose ) |
295 |
|
ret.status.setStatus(SelectionStatus::LOOSESELECTION); |
296 |
+ |
if( !(lepvec[best_ele_index].isTight) && !(lepvec[best_ele_index].isLoose) ) |
297 |
+ |
ret.status.setStatus(SelectionStatus::UNDEFINED); // using preselection here to mean that muon |
298 |
+ |
// is good & ele pass neither loose or tight |
299 |
+ |
|
300 |
|
ret.Z1leptons.push_back(lepvec[best_mu_index]); |
301 |
|
ret.Z1leptons.push_back(lepvec[best_ele_index]); |
302 |
|
ret.Z2leptons.push_back(lepvec[best_mu_index]); |
304 |
|
return ret; |
305 |
|
} |
306 |
|
|
307 |
< |
ret.status.setStatus(0); |
307 |
> |
ret.status.setStatus(SelectionStatus::FAIL); |
308 |
|
return ret; |
309 |
|
|
310 |
|
} |