Module flavio.physics.taudecays.tau3l
Functions for lepton flavour violating $\tau\to \ell_1\ell_2\ell_3$ decays.
Functions
def BR_taul1l2l3(wc_obj, par, l1, l2, l3)-
Expand source code
def BR_taul1l2l3(wc_obj, par, l1, l2, l3): r"""Branching ratio of $\tau^-\to\ell_1^-\ell_2^+\ell_3^-$.""" scale = flavio.config['renormalization scale']['taudecays'] # cf. (22, 23) of hep-ph/0404211 wceff = wc_eff(wc_obj, par, scale, 'tau', l1, l2, l3, nf_out=4) if (l1, l2, l3) == ('mu', 'e', 'e'): br_wc = _BR_taumuee(par['m_tau'], par['m_e'], wceff) elif (l1, l2, l3) == ('e', 'mu', 'mu'): br_wc = _BR_taumuee(par['m_tau'], par['m_mu'], wceff) elif (l1, l2, l3) == ('mu', 'mu', 'mu'): br_wc = _BR_tau3mu(par['m_tau'], par['m_mu'], wceff) elif (l1, l2, l3) == ('e', 'e', 'e'): br_wc = _BR_tau3mu(par['m_tau'], par['m_e'], wceff) elif (l1, l2, l3) == ('e', 'mu', 'e'): br_wc = _BR_taumuemu(wceff) elif (l1, l2, l3) == ('mu', 'e', 'mu'): br_wc = _BR_taumuemu(wceff) pre_br = par['tau_tau'] * par['m_tau']**5 / 192 / 8 / pi**3 return pre_br * br_wcBranching ratio of $\tau^-\to\ell_1^-\ell_2^+\ell_3^-$.
def br_taul1l2l3_fct(l1, l2, l3)-
Expand source code
def br_taul1l2l3_fct(l1, l2, l3): def f(wc_obj, par): return BR_taul1l2l3(wc_obj, par, l1, l2, l3) return f def wc_eff(wc_obj, par, scale, l0, l1, l2, l3, nf_out=4)-
Expand source code
def wc_eff(wc_obj, par, scale, l0, l1, l2, l3, nf_out=4): r"""Get the effective Wilson coefficients for the $l_0^-\to l_1^-l_2^+l_3^-$ transition as a dictionary.""" if l2 == l3: sector = wcxf_sector_names[l0, l1] else: sector = wcxf_sector_names[l0, l1, l2, l3] alpha = flavio.physics.running.running.get_alpha_e(par, scale, nf_out=4) e = sqrt(4 * pi * alpha) ml0 = par['m_' + l0] wc = wc_obj.get_wc(sector, scale, par, nf_out=nf_out) wceff = {} if (l0, l1, l2, l3) == ('tau', 'mu', 'mu', 'mu'): wceff['C7'] = e / ml0 * wc['Cgamma_taumu'] wceff['C7p'] = e / ml0 * wc['Cgamma_mutau'].conjugate() wceff['CVLL'] = wc['CVLL_mumutaumu'] wceff['CVLR'] = wc['CVLR_taumumumu'] wceff['CVRL'] = wc['CVLR_mumutaumu'] wceff['CVRR'] = wc['CVRR_mumutaumu'] wceff['CSRR'] = wc['CSRR_mumutaumu'] wceff['CSLL'] = wc['CSRR_mumumutau'].conjugate() elif (l0, l1, l2, l3) == ('tau', 'e', 'e', 'e'): wceff['C7'] = e / ml0 * wc['Cgamma_taue'] wceff['C7p'] = e / ml0 * wc['Cgamma_etau'].conjugate() wceff['CVLL'] = wc['CVLL_eetaue'] wceff['CVLR'] = wc['CVLR_taueee'] wceff['CVRL'] = wc['CVLR_eetaue'] wceff['CVRR'] = wc['CVRR_eetaue'] wceff['CSRR'] = wc['CSRR_eetaue'] wceff['CSLL'] = wc['CSRR_eeetau'].conjugate() elif (l0, l1, l2, l3) == ('tau', 'mu', 'e', 'e'): wceff['C7'] = e / ml0 * wc['Cgamma_taumu'] wceff['C7p'] = e / ml0 * wc['Cgamma_mutau'].conjugate() wceff['CVLL'] = wc['CVLL_eetaumu'] wceff['CVLR'] = wc['CVLR_taumuee'] wceff['CVRL'] = wc['CVLR_eetaumu'] wceff['CVRR'] = wc['CVRR_eetaumu'] wceff['CSRR'] = wc['CSRR_eetaumu'] - wc['CSRR_taueemu'] / 2 wceff['CSLL'] = wc['CSRR_eemutau'].conjugate() - wc['CSRR_mueetau'].conjugate() / 2 wceff['CSLR'] = -2 * wc['CVLR_taueemu'] wceff['CSRL'] = -2 * wc['CVLR_mueetau'].conjugate() wceff['CTLL'] = -wc['CSRR_mueetau'].conjugate() / 8 wceff['CTRR'] = -wc['CSRR_taueemu'] / 8 elif (l0, l1, l2, l3) == ('tau', 'e', 'mu', 'mu'): wceff['C7'] = e / ml0 * wc['Cgamma_taue'] wceff['C7p'] = e / ml0 * wc['Cgamma_etau'].conjugate() wceff['CVLL'] = wc['CVLL_muetaumu'] wceff['CVLR'] = wc['CVLR_tauemumu'] wceff['CVRL'] = wc['CVLR_mumutaue'] wceff['CVRR'] = wc['CVRR_muetaumu'] wceff['CSRR'] = wc['CSRR_tauemumu'] - wc['CSRR_muetaumu'] / 2 wceff['CSLL'] = wc['CSRR_mumuetau'].conjugate() - wc['CSRR_emumutau'].conjugate() / 2 wceff['CSLR'] = -2 * wc['CVLR_taumumue'] wceff['CSRL'] = -2 * wc['CVLR_muetaumu'] wceff['CTLL'] = -wc['CSRR_emumutau'].conjugate() / 8 wceff['CTRR'] = -wc['CSRR_muetaumu'] / 8 elif (l0, l1, l2, l3) == ('mu', 'e', 'e', 'e'): wceff['C7'] = e / ml0 * wc['Cgamma_mue'] wceff['C7p'] = e / ml0 * wc['Cgamma_emu'].conjugate() wceff['CVLL'] = wc['CVLL_eemue'] wceff['CVLR'] = wc['CVLR_mueee'] wceff['CVRL'] = wc['CVLR_eemue'] wceff['CVRR'] = wc['CVRR_eemue'] wceff['CSRR'] = wc['CSRR_eemue'] wceff['CSLL'] = wc['CSRR_eeemu'].conjugate() elif (l0, l1, l2, l3) == ('tau', 'e', 'mu', 'e'): wceff['CVLL'] = wc['CVLL_muetaue'] wceff['CVLR'] = wc['CVLR_tauemue'] wceff['CVRL'] = wc['CVLR_muetaue'] wceff['CVRR'] = wc['CVRR_muetaue'] wceff['CSRR'] = wc['CSRR_muetaue'] wceff['CSLL'] = wc['CSRR_emuetau'].conjugate() elif (l0, l1, l2, l3) == ('tau', 'mu', 'e', 'mu'): wceff['CVLL'] = wc['CVLL_muemutau'].conjugate() wceff['CVLR'] = wc['CVLR_taumuemu'] wceff['CVRL'] = wc['CVLR_muemutau'].conjugate() wceff['CVRR'] = wc['CVRR_muemutau'].conjugate() wceff['CSRR'] = wc['CSRR_muemutau'].conjugate() wceff['CSLL'] = wc['CSRR_emutaumu'] else: raise ValueError("Decay {}-->{}-{}+{}- not implemented".format(l0, l1, l2, l3)) return wceffGet the effective Wilson coefficients for the $l_0^-\to l_1^-l_2^+l_3^-$ transition as a dictionary.