META TOPICPARENT |
name="DaveEvans" |
MET CUT factorisation validation
The PASS2 and PASS4 MET cuts are actually doing a mixture of different things that makes the combination of the two non obvious. I have introduced three new functions (and corresponding cut bits), each responsible for a single 'type' of MET cut.
WW_MET_SIMPLE
//--------------------------------------------
// MET selection
//--------------------------------------------
bool metSimple (int i_hyp, const TVector3& corr) {
TVector3 hyp_met;
hyp_met.SetPtEtaPhi(cms2.hyp_met()[i_hyp], 0, cms2.hyp_metPhi()[i_hyp]);
hyp_met += corr;
// for e-e and mu-mu
if (cms2.hyp_type()[i_hyp] == 0 || cms2.hyp_type()[i_hyp] == 3) {
if (hyp_met.Pt() < 30) return false;
}
// for e-mu and mu-e
if (cms2.hyp_type()[i_hyp] == 1 || cms2.hyp_type()[i_hyp] == 2) {
if (hyp_met.Pt() < 20) return false;
}
return true;
}
WW_MET_BALANCE
//--------------------------------------------
// pT(ll)/MET ratio selection
//--------------------------------------------
bool metBalance (int i_hyp, const TVector3& corr) {
TVector3 hyp_met;
hyp_met.SetPtEtaPhi(cms2.hyp_met()[i_hyp], 0, cms2.hyp_metPhi()[i_hyp]);
hyp_met += corr;
// for e-e and mu-mu
if (cms2.hyp_type()[i_hyp] == 0 || cms2.hyp_type()[i_hyp] == 3) {
if( hyp_met.Pt()/cms2.hyp_p4()[i_hyp].pt()<0.6 &&
acos(cos(hyp_met.Phi()-cms2.hyp_p4()[i_hyp].phi()-3.1416))<0.25 ) return false;
}
return true;
}
WW_MET_PROJECTED
//--------------------------------------------
// pMET selection
//--------------------------------------------
bool metProjected (int i_hyp, const TVector3& corr) {
TVector3 hyp_met;
hyp_met.SetPtEtaPhi(cms2.hyp_met()[i_hyp], 0, cms2.hyp_metPhi()[i_hyp]);
hyp_met += corr;
double metspec = MetSpecial(hyp_met.Pt(), hyp_met.Phi(), i_hyp);
// for e-e and mu-mu
// for e-mu and mu-e
if ( metspec < 20 ) return false;
return true;
}
-- DaveEvans - 07 Nov 2008 |