Module flavio.physics.bdecays.bvll.lfv

Observables in lepton flavour violating decays $B\to V\ell\ell^\prime$

Functions

def BR_tot(wc_obj, par, B, V, l1, l2)
Expand source code
def BR_tot(wc_obj, par, B, V, l1, l2):
    scale = flavio.config['renormalization scale']['bvll']
    label = flavio.physics.bdecays.common.meson_quark[(B,V)] + l1 + l2 # e.g. bsemu, bdtaue
    wc = wc_obj.get_wc(label, scale, par)
    if all([abs(v) < 1e-12 for v in wc.values()]):
        # if all WCs are essentially zero, return BR=0
        return 0
    mB = par['m_'+B]
    mV = par['m_'+V]
    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    q2max = (mB-mV)**2
    q2min = (ml1+ml2)**2
    tauB = par['tau_'+B]
    return tauB*bvlilj_obs_int(flavio.physics.bdecays.bvll.observables.dGdq2,
                          q2min, q2max, wc, par, B, V, l1, l2)
def BR_tot_function(B, V, l1, l2)
Expand source code
def BR_tot_function(B, V, l1, l2):
    return lambda wc_obj, par: BR_tot(wc_obj, par, B, V, l1, l2)
def BR_tot_function_leptonsum(B, V, l1, l2)
Expand source code
def BR_tot_function_leptonsum(B, V, l1, l2):
    return lambda wc_obj, par: BR_tot(wc_obj, par, B, V, l1, l2) + BR_tot(wc_obj, par, B, V, l2, l1)
def bvlilj_obs(function, q2, wc, par, B, V, l1, l2)
Expand source code
def bvlilj_obs(function, q2, wc, par, B, V, l1, l2):
    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    mB = par['m_'+B]
    mV = par['m_'+V]
    if q2 < (ml1+ml2)**2 or q2 > (mB-mV)**2:
        return 0
    scale = flavio.config['renormalization scale']['bvll']
    mb = flavio.physics.running.running.get_mb(par, scale)
    h = helicity_amps(q2, wc, par, B, V, l1, l2)
    J = flavio.physics.bdecays.angular.angularcoeffs_general_v(h, q2, mB, mV, mb, 0, ml1, ml2)
    return function(J)
def bvlilj_obs_int(function, q2min, q2max, wc, par, B, V, l1, l2)
Expand source code
def bvlilj_obs_int(function, q2min, q2max, wc, par, B, V, l1, l2):
    def obs(q2):
        return bvlilj_obs(function, q2, wc, par, B, V, l1, l2)
    return flavio.math.integrate.nintegrate(obs, q2min, q2max)
def helicity_amps(q2, wc, par, B, V, l1, l2)
Expand source code
def helicity_amps(q2, wc, par, B, V, l1, l2):
    scale = flavio.config['renormalization scale']['bvll']
    wc_eff = flavio.physics.bdecays.wilsoncoefficients.get_wceff_lfv(q2, wc, par, B, V, l1, l2, scale)
    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    mB = par['m_'+B]
    mV = par['m_'+V]
    mb = flavio.physics.running.running.get_mb(par, scale)
    N = prefactor(q2, par, B, V, l1, l2)
    ff = flavio.physics.bdecays.bvll.amplitudes.get_ff(q2, par, B, V)
    h = flavio.physics.bdecays.angular.helicity_amps_v(q2, mB, mV, mb, 0, ml1, ml2, ff, wc_eff, N)
    return h
def prefactor(q2, par, B, V, l1, l2)
Expand source code
def prefactor(q2, par, B, V, l1, l2):
    GF = par['GF']
    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    scale = flavio.config['renormalization scale']['bvll']
    alphaem = flavio.physics.running.running.get_alpha(par, scale)['alpha_e']
    di_dj = flavio.physics.bdecays.common.meson_quark[(B,V)]
    xi_t = flavio.physics.ckm.xi('t',di_dj)(par)
    if q2 <= (ml1+ml2)**2:
        return 0
    return 4*GF/sqrt(2)*xi_t*alphaem/(4*pi)