bool CF_EW_FFZ::AllowSpec(const ATOOLS::Flavour &fl) { if (m_cfl.IntCharge()==0) return fl.Charge(); switch (m_type) { case cstp::FF: case cstp::II: return fl.IntCharge()*m_cfl.IntCharge()<0; case cstp::FI: case cstp::IF: return fl.IntCharge()*m_cfl.IntCharge()>0; default: return false; } }
bool CF_QED::AllowSpec(const ATOOLS::Flavour &fl) { if (!fl.Strong() && fl.Mass()>10.0) return false; if (m_cfl.IntCharge()==0) return fl.Charge(); switch (m_type) { case cstp::FF: case cstp::II: return fl.IntCharge()*m_cfl.IntCharge()<0; case cstp::FI: case cstp::IF: return fl.IntCharge()*m_cfl.IntCharge()>0; default: return false; } }
inline CF_QED(const SF_Key &key): SF_Coupling(key), m_cfl(key.p_v->in[0].Bar()) { if (key.m_type==cstp::IF || key.m_type==cstp::II) m_cfl=key.p_v->in[key.m_mode==0?1:2]; m_q=ATOOLS::dabs(m_cfl.IntCharge()?m_cfl.Charge(): key.p_v->in[key.m_mode==0?2:1].Charge()); if (m_q==0.0) THROW(fatal_error,"Internal error"); }