Module flavio.physics.zdecays.gammaz

$Z$ pole observables beyond the SM.

Functions

def BRZ_fct(f1, f2)
Expand source code
def BRZ_fct(f1, f2):
    def fu(wc_obj, par):
        return par['tau_Z'] * GammaZ(wc_obj, par, f1, f2)
    return fu
def BRZ_fct_av(f1, f2)
Expand source code
def BRZ_fct_av(f1, f2):
    def fu(wc_obj, par):
        return par['tau_Z'] * (GammaZ(wc_obj, par, f1, f2) + GammaZ(wc_obj, par, f2, f1))
    return fu
def GammaZ(wc_obj, par, f1, f2)
Expand source code
def GammaZ(wc_obj, par, f1, f2):
    scale = flavio.config['renormalization scale']['zdecays']
    wc_dict = wc_obj.get_wcxf(sector='all', scale=scale, par=par,
                              eft='SMEFT', basis='Warsaw')
    Nc = smeftew._QN[f1]['Nc']
    if f1 == f2:
        gV_SM = smeftew.gV_SM(f1, par)
        gA_SM = smeftew.gA_SM(f1, par)
        GSM = gammazsm.GammaZ_SM(par, f1)
    else:
        gV_SM = 0
        gA_SM = 0
        GSM = 0
    d_gV = smeftew.d_gV(f1, f2, par, wc_dict)
    d_gA = smeftew.d_gA(f1, f2, par, wc_dict)
    GNP = GammaZ_NP(par, Nc, gV_SM, d_gV, gA_SM, d_gA)
    return GSM + GNP
def GammaZ_NP(par, Nc, gV_SM, d_gV, gA_SM, d_gA)
Expand source code
def GammaZ_NP(par, Nc, gV_SM, d_gV, gA_SM, d_gA):
    GF, mZ = par['GF'], par['m_Z']
    return (
        sqrt(2) * GF * mZ**3 / (3 * pi) * Nc * (
            2*(gV_SM*d_gV).real + 2*(gA_SM*d_gA).real
            + abs(d_gV)**2 + abs(d_gA)**2
        )
    )
def GammaZ_fct(f1, f2)
Expand source code
def GammaZ_fct(f1, f2):
    def fu(wc_obj, par):
        return GammaZ(wc_obj, par, f1, f2)
    return fu
def GammaZnu(wc_obj, par)
Expand source code
def GammaZnu(wc_obj, par):
    # sum over all 9 possibilities (they are exp. indistinguishable)
    lep = ['e', 'mu', 'tau']
    return sum([GammaZ(wc_obj, par, 'nu' + l1, 'nu' + l2) for l1 in lep for l2 in lep]) / 3.
def Gammahad(wc_obj, par)
Expand source code
def Gammahad(wc_obj, par):
    # sum over all 9 possibilities (they are exp. not distinguished)
    Gu =  sum([GammaZ(wc_obj, par, q1, q2) for q1 in 'uc' for q2 in 'uc'])
    Gd =  sum([GammaZ(wc_obj, par, q1, q2) for q1 in 'dsb' for q2 in 'dsb'])
    return Gu + Gd
def Gammal(wc_obj, par)
Expand source code
def Gammal(wc_obj, par):
    # sum only over the three possibilities with equal leptons (they are exp. distinguished)
    return sum([GammaZ(wc_obj, par, l, l) for l in ['e', 'mu', 'tau']]) / 3.
def Gammatot(wc_obj, par)
Expand source code
def Gammatot(wc_obj, par):
    # total Z width
    return Gammahad(wc_obj, par) + Gammal(wc_obj, par) * 3 + GammaZnu(wc_obj, par) * 3
def Remutau(f)
Expand source code
def Remutau(f):
    def _Remutau(wc_obj, par):
        return Gammahad(wc_obj, par) / GammaZ(wc_obj, par, f, f)
    return _Remutau
def Rl(wc_obj, par)
Expand source code
def Rl(wc_obj, par):
    return Gammahad(wc_obj, par) / Gammal(wc_obj, par)
def Rq(f)
Expand source code
def Rq(f):
    def _Rq(wc_obj, par):
        return GammaZ(wc_obj, par, f, f) / Gammahad(wc_obj, par)
    return _Rq
def Rq1q2(f1, f2)
Expand source code
def Rq1q2(f1, f2):
    def _Rq1q2(wc_obj, par):
        return (GammaZ(wc_obj, par, f1, f1) + GammaZ(wc_obj, par, f2, f2)) / (2 * Gammahad(wc_obj, par))
    return _Rq1q2
def sigmahad(wc_obj, par)
Expand source code
def sigmahad(wc_obj, par):
    # e+e- hadronic Z production xsec
    return 12 * pi / par['m_Z']**2 / Gammatot(wc_obj, par)**2 * GammaZ(wc_obj, par, 'e', 'e') * Gammahad(wc_obj, par)