Module flavio.physics.mesonmixing.observables
$\Delta F=2$ observables
Functions
def DeltaGamma_12(wc_obj, par, meson)-
Expand source code
def DeltaGamma_12(wc_obj, par, meson): r"""Decay width difference defined as $\Delta\Gamma = \Gamma_1 - \Gamma_2$, in the convention where the mass eigenstate 1 is CP-even in the absence of CP violation.""" M12, G12 = get_M12_G12(wc_obj, par, meson) return common.DeltaGamma(M12, G12)Decay width difference defined as $\Delta\Gamma = \Gamma_1 - \Gamma_2$, in the convention where the mass eigenstate 1 is CP-even in the absence of CP violation.
def DeltaGamma_B(wc_obj, par, meson)-
Expand source code
def DeltaGamma_B(wc_obj, par, meson): r"""Decay width difference defined as $\Delta\Gamma = \Gamma_1 - \Gamma_2$ in the convention where $\Delta M = M_2 - M_1$ is positive (and the mass eigenstate 1 is CP-even in the absence of CP violation), as often used in the $B$ system.""" M12, G12 = get_M12_G12(wc_obj, par, meson) DM = common.DeltaM(M12, G12) if DM > 0: return common.DeltaGamma(M12, G12) else: return -common.DeltaGamma(M12, G12)Decay width difference defined as $\Delta\Gamma = \Gamma_1 - \Gamma_2$ in the convention where $\Delta M = M_2 - M_1$ is positive (and the mass eigenstate 1 is CP-even in the absence of CP violation), as often used in the $B$ system.
def DeltaM_12(wc_obj, par, meson)-
Expand source code
def DeltaM_12(wc_obj, par, meson): r"""Mass difference defined to be $M_1 - M_2$, where the mass eigenstate 1 is CP-even in the absence of CP violation.""" M12, G12 = get_M12_G12(wc_obj, par, meson) return -common.DeltaM(M12, G12)Mass difference defined to be $M_1 - M_2$, where the mass eigenstate 1 is CP-even in the absence of CP violation.
def DeltaM_positive(wc_obj, par, meson)-
Expand source code
def DeltaM_positive(wc_obj, par, meson): r"""Mass difference defined to be strictly positive""" M12, G12 = get_M12_G12(wc_obj, par, meson) return abs(common.DeltaM(M12, G12))Mass difference defined to be strictly positive
def S(wc_obj, par, meson, amplitude, etaCP)-
Expand source code
def S(wc_obj, par, meson, amplitude, etaCP): M12, G12 = get_M12_G12(wc_obj, par, meson) qp = common.q_over_p(M12, G12) DM = common.DeltaM(M12, G12) if DM < 0: qp = -qp # switch the sign of q/p to keep DeltaM > 0 A = amplitude(par) A_bar = amplitude(conjugate_par(par)) xi = etaCP * qp * A / A_bar return -2*xi.imag / ( 1 + abs(xi)**2 ) def S_BJpsiK(wc_obj, par)-
Expand source code
def S_BJpsiK(wc_obj, par): return S(wc_obj, par, 'B0', amplitude_BJpsiK, etaCP=-1) def S_Bspsiphi(wc_obj, par)-
Expand source code
def S_Bspsiphi(wc_obj, par): return S(wc_obj, par, 'Bs', amplitude_Bspsiphi, etaCP=+1) def a_fs(wc_obj, par, meson)-
Expand source code
def a_fs(wc_obj, par, meson): M12, G12 = get_M12_G12(wc_obj, par, meson) return common.a_fs(M12, G12) def amplitude_BJpsiK(par)-
Expand source code
def amplitude_BJpsiK(par): xi_c = ckm.xi('c', 'bd')(par) # V_cb V_cd* return xi_c def amplitude_Bspsiphi(par)-
Expand source code
def amplitude_Bspsiphi(par): xi_c = ckm.xi('c', 'bs')(par) # V_cb V_cs* return xi_c def epsK(wc_obj, par)-
Expand source code
def epsK(wc_obj, par): M12, G12 = get_M12_G12(wc_obj, par, 'K0') keps = par['kappa_epsilon'] DMK = par['DeltaM_K0'] return keps * M12.imag / DMK / sqrt(2) def get_M12_G12(wc_obj, par, meson)-
Expand source code
def get_M12_G12(wc_obj, par, meson): scale = config['renormalization scale'][meson + ' mixing'] wc = wc_obj.get_wc(2*common.meson_quark[meson], scale, par, eft=eft[meson]) M12 = amplitude.M12(par, wc, meson) # TODO temporary fix: we don't have a prediction for Gamma12 in the kaon sector if meson == 'K0': G12 = 0. elif meson == 'D0': G12 = amplitude.G12_u(par, wc) else: # B0 and Bs G12 = amplitude.G12_d(par, wc, meson) return M12, G12 def phi12(wc_obj, par, meson)-
Expand source code
def phi12(wc_obj, par, meson): r"""$\phi_{12}=\text{arg}(-M_{12}/\Gamma_{12})""" M12, G12 = get_M12_G12(wc_obj, par, meson) return phase(M12 / G12)$\phi_{12}=\text{arg}(-M_{12}/\Gamma_{12})
def q_over_p(wc_obj, par, meson)-
Expand source code
def q_over_p(wc_obj, par, meson): M12, G12 = get_M12_G12(wc_obj, par, meson) return common.q_over_p(M12, G12) def x(wc_obj, par, meson)-
Expand source code
def x(wc_obj, par, meson): r"""$x=(M_1 - M_2)/\Gamma$ where 1 is CP-even in the CPC limit.""" return DeltaM_12(wc_obj, par, meson)*par['tau_'+meson]$x=(M_1 - M_2)/\Gamma$ where 1 is CP-even in the CPC limit.
def x12(wc_obj, par, meson)-
Expand source code
def x12(wc_obj, par, meson): r"""$x_{12}=2|M_{12}|/\Gamma$.""" M12, G12 = get_M12_G12(wc_obj, par, meson) return 2 * abs(M12) * par['tau_'+meson]$x_{12}=2|M_{12}|/\Gamma$.
def x12Im(wc_obj, par, meson)-
Expand source code
def x12Im(wc_obj, par, meson): r"""$x_{12}^\text{Im}=\sin\phi_{12}$.""" return x12(wc_obj, par, meson) * sin(phi12(wc_obj, par, meson))$x_{12}^\text{Im}=\sin\phi_{12}$.
def y(wc_obj, par, meson)-
Expand source code
def y(wc_obj, par, meson): r"""$y=(\Gamma_1 - \Gamma_2)/2\Gamma$ where 1 is CP-even in the CPC limit.""" return DeltaGamma_12(wc_obj, par, meson)*par['tau_'+meson]/2.$y=(\Gamma_1 - \Gamma_2)/2\Gamma$ where 1 is CP-even in the CPC limit.
def y12(wc_obj, par, meson)-
Expand source code
def y12(wc_obj, par, meson): r"""$y_{12}=|\Gamma_{12}|/\Gamma$.""" M12, G12 = get_M12_G12(wc_obj, par, meson) return abs(G12) * par['tau_'+meson]$y_{12}=|\Gamma_{12}|/\Gamma$.