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)