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)
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))
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)
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