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$.