Module flavio.physics.wdecays.gammaw
$W\to\ell\nu$ decays.
Functions
def BRWlnu_fct(l)-
Expand source code
def BRWlnu_fct(l): def fu(wc_obj, par): lep = ['e', 'mu', 'tau'] # use calculated lifetime, which is more precise than measured one! return sum([GammaW(wc_obj, par, l, nu) for nu in lep]) / Gammatot(wc_obj, par) return fu def GammaW(wc_obj, par, f1, f2)-
Expand source code
def GammaW(wc_obj, par, f1, f2): scale = flavio.config['renormalization scale']['wdecays'] wc_dict = wc_obj.get_wcxf(sector='all', scale=scale, par=par, eft='SMEFT', basis='Warsaw') Nc = smeftew._QN[f1]['Nc'] gW_SM = gWf_SM(f1, f2, par) GSM = GammaW_SM(f1, f2, par) d_gW = smeftew.d_gW(f1, f2, par, wc_dict) GNP = GammaW_NP(par, Nc, gW_SM, d_gW) return GSM + GNP def GammaW_NP(par, Nc, gW_SM, d_gW)-
Expand source code
def GammaW_NP(par, Nc, gW_SM, d_gW): GF, mW = par['GF'], par['m_W'] return (sqrt(2) * GF * mW**3 / (3 * pi) * Nc * (2*(gW_SM*d_gW).real + abs(d_gW)**2)) def GammaW_SM(f1, f2, par)-
Expand source code
def GammaW_SM(f1, f2, par): if f1 in smeftew._sectors['l']: return GammaWl_SM(f1, f2, par) if f1 in smeftew._sectors['u']: return GammaWq_SM(f1, f2, par) def GammaWl_SM(f1, f2, par)-
Expand source code
def GammaWl_SM(f1, f2, par): return 4 * abs(gWl_SM(f1, f2, par))**2 * par['GammaW_lep'] / 3 def GammaWq_SM(f1, f2, par)-
Expand source code
def GammaWq_SM(f1, f2, par): return 4 * abs(gWq_SM(f1, f2, par))**2 * par['GammaW_had'] / 2 def Gammahad(wc_obj, par)-
Expand source code
def Gammahad(wc_obj, par): return sum([GammaW(wc_obj, par, q1, q2) for q1 in 'uc' for q2 in 'dsb']) def Gammalep(wc_obj, par)-
Expand source code
def Gammalep(wc_obj, par): lep = ['e', 'mu', 'tau'] return sum([GammaW(wc_obj, par, l1, l2) for l1 in lep for l2 in lep]) def Gammatot(wc_obj, par)-
Expand source code
def Gammatot(wc_obj, par): return Gammalep(wc_obj, par) + Gammahad(wc_obj, par) def RWcX(wc_obj, par)-
Expand source code
def RWcX(wc_obj, par): q = ['d', 's', 'b'] return sum([GammaW(wc_obj, par, 'c', d) for d in q]) / Gammahad(wc_obj, par) def RWlnu_fct(l1, l2)-
Expand source code
def RWlnu_fct(l1, l2): def fu(wc_obj, par): lep = ['e', 'mu', 'tau'] # use calculated lifetime, which is more precise than measured one! num = sum([GammaW(wc_obj, par, l1, nu) for nu in lep]) den = sum([GammaW(wc_obj, par, l2, nu) for nu in lep]) return num / den return fu def gWf_SM(f1, f2, par)-
Expand source code
def gWf_SM(f1, f2, par): if f1 in smeftew._sectors['l']: return gWl_SM(f1, f2, par) else: return gWq_SM(f1, f2, par) def gWl_SM(f1, f2, par)-
Expand source code
def gWl_SM(f1, f2, par): if f1 == f2: return 1 / 2 # using neutrino flavour eigenstates else: return 0 def gWq_SM(f1, f2, par)-
Expand source code
def gWq_SM(f1, f2, par): i = smeftew._sectors['u'][f1] j = smeftew._sectors['d'][f2] V = flavio.physics.ckm.get_ckm(par) return V[i - 1, j - 1] / 2