197 |
|
if(ctrl.debug) cout << "muon presel returning status : " << status.getStatus() << endl; |
198 |
|
return status; |
199 |
|
} |
200 |
+ |
//-------------------------------------------------------------------------------------------------- |
201 |
+ |
SelectionStatus muonDenominatorSelection( ControlFlags &ctrl, |
202 |
+ |
const mithep::Muon * mu, |
203 |
+ |
const mithep::Vertex * vtx, |
204 |
+ |
const mithep::Array<mithep::PFCandidate> * pfCandidates ) |
205 |
+ |
//-------------------------------------------------------------------------------------------------- |
206 |
+ |
{ |
207 |
+ |
bool ret = true; |
208 |
+ |
|
209 |
+ |
ret &= ( fabs(mu->Ip3dPVSignificance()) < 100 ); |
210 |
+ |
ret &= ( mu->Pt() >= 5 ); |
211 |
+ |
ret &= ( fabs(mu->Eta()) <= 2.4 ); |
212 |
+ |
ret &= ( mu->IsTrackerMuon() || mu->IsGlobalMuon() ); |
213 |
+ |
ret &= (mu->HasTrackerTrk() && |
214 |
+ |
fabs(mu->TrackerTrk()->D0Corrected(*vtx)) < 0.5 && |
215 |
+ |
fabs(mu->TrackerTrk()->DzCorrected(*vtx)) < 1.0); |
216 |
+ |
|
217 |
+ |
SelectionStatus status; |
218 |
+ |
if( ret ) status.setStatus(SelectionStatus::PRESELECTION); |
219 |
+ |
return status; |
220 |
+ |
} |
221 |
|
|
222 |
|
//-------------------------------------------------------------------------------------------------- |
223 |
|
SelectionStatus muonPreSelectionNoD0DzIP( ControlFlags &ctrl, |
401 |
|
// note: this isn't really ww muon isolation |
402 |
|
float pfiso = computePFMuonIso(mu,vtx,pfArr,0.3); |
403 |
|
|
404 |
< |
if (pfiso > 0.2) |
404 |
> |
if (pfiso > 0.2*mu->Pt()) |
405 |
|
passIso = false; |
406 |
|
|
407 |
|
SelectionStatus status; |