Пример #1
0
def _br_taupnu(wc_obj, par, P, lep):
    r"""Branching ratio of $\tau^+\to P^+\bar\nu_\ell$."""
    # CKM element
    scale = flavio.config['renormalization scale']['taudecays']
    if P == 'pi+':
        Vij = flavio.physics.ckm.get_ckm(par)[0, 0]  # Vud
        qqlnu = 'dutaunu' + lep
        mq1 = flavio.physics.running.running.get_md(par, scale)
        mq2 = flavio.physics.running.running.get_mu(par, scale)
    elif P == 'K+':
        Vij = flavio.physics.ckm.get_ckm(par)[0, 1]  # Vus
        qqlnu = 'sutaunu' + lep
        mq1 = flavio.physics.running.running.get_ms(par, scale)
        mq2 = flavio.physics.running.running.get_mu(par, scale)
    # Wilson coefficients
    wc = wc_obj.get_wc(qqlnu, scale, par, nf_out=4)
    # add SM contribution to Wilson coefficient
    if lep == 'tau':
        # for the SM contribution, need the Fermi constant with possible
        # NP effects in mu->enunu subtracted, not the measured one
        r_GF = GFeff(wc_obj, par) / par['GF']
        wc['CVL_' + qqlnu] += get_CVLSM(par, scale, nf=4) * r_GF
    mtau = par['m_tau']
    mP = par['m_' + P]
    rWC = ((wc['CVL_' + qqlnu] - wc['CVR_' + qqlnu]) + mP**2 / mtau /
           (mq1 + mq2) * (wc['CSR_' + qqlnu] - wc['CSL_' + qqlnu]))
    gR = -sqrt(2) * par['GF'] * Vij * rWC * par['f_' + P] * par['m_tau']
    return par['tau_tau'] * common.GammaFsf(mtau, mP, 0, 0, gR)
Пример #2
0
def _br_plnu(wc_obj, par, P, lep, nu):
    # CKM element
    if P == 'K+':
        Vij = flavio.physics.ckm.get_ckm(par)[0, 1]
        qiqj = 'su'
    elif P == 'pi+':
        Vij = flavio.physics.ckm.get_ckm(par)[0, 0]
        qiqj = 'du'
    # renormalization scale is m_rho
    scale = par['m_rho0']
    # Wilson coefficients
    wc = wc_obj.get_wc(qiqj + lep + 'nu' + nu, scale, par, nf_out=3)
    # add SM contribution to Wilson coefficient
    if lep == nu:
        # for the SM contribution, need the Fermi constant with possible
        # NP effects in mu->enunu subtracted, not the measured one
        r_GF = GFeff(wc_obj, par) / par['GF']
        wc['CVL_' + qiqj + lep + 'nu' +
           nu] += flavio.physics.bdecays.wilsoncoefficients.get_CVLSM(
               par, scale, nf=3) * r_GF
    if P == 'K+':
        mq = flavio.physics.running.running.get_ms(par, scale)
    elif P == 'pi+':
        mq = flavio.physics.running.running.get_md(par, scale)
    mu = flavio.physics.running.running.get_mu(par, scale)
    return br_plnu_general(wc,
                           par,
                           Vij,
                           P,
                           qiqj,
                           lep,
                           nu,
                           mq,
                           mu,
                           delta=delta_Plnu(par, P, lep))
Пример #3
0
 def __call__(self):
     Vud = get_ckm(self.par)[0, 0]
     GF = GFeff(self.wc_obj, self.par)
     pre = GF / sqrt(2) * Vud
     ft = K(self.par) / self.xi() * 1 / (1 + self.b() * self.me_E) / abs(pre)**2
     fn = self.par['f_n']
     Rp = self.par['deltaRp_n']
     return ft / log(2) / fn / (1 + Rp)
Пример #4
0
def Ft_superallowed(par, wc_obj, A):
    r"""Corrected $\mathcal{F}t$ value of the beta decay of isotope `A`."""
    MF = sqrt(2)
    MGT = 0
    Z = nuclei_superallowed[A]['Z']
    scale = config['renormalization scale']['betadecay']
    C = wc_eff(par, wc_obj, scale, nu='e')
    Xi = xi(C, MF, MGT)
    B = b(C, MF, MGT, par['alpha_e'], Z, s=-1)  # s=-1 for beta+ decay
    me_E = nuclei_superallowed[A]['<me/E>']
    Vud = get_ckm(par)[0, 0]
    GF = GFeff(wc_obj, par)
    pre = GF / sqrt(2) * Vud
    ddRp = par['delta_deltaRp_Z2'] * Z**2  # relative uncertainty on \delta R' (universal)
    return (1 + ddRp) * K(par) / Xi * 1 / (1 + B * me_E) / abs(pre)**2