def GammaG2SGexact(n, M5, k): total = 0 kR = k * Basic.R(M5, k) for a in range(1, n): for b in range(1, n): total += GammaG2SGInt(n, a, b, M5, k, kR) return total
def AT2(a, b, n, M5, k): return 1 / 5 * IMMC( a, b, n, M5, k)**2 / (M5 * math.pi * Basic.R(M5, k))**3 * ( m4A2(a, b, n, M5, k) + m4A2(b, n, a, M5, k) + m4A2(n, a, b, M5, k))
def IMMC(a, b, n, M5, k): return (32 / Basic.R(M5, k)**3) * k * n * Basic.m(n, M5, k) * a * Basic.m( a, M5, k) * b * Basic.m(b, M5, k) / (mm(a + b - n, M5, k) * mm( a - b + n, M5, k) * mm(b + n - a, M5, k) * mm(a + b + n, M5, k))
def mm(z, M5, k): return k**2 + z**2 / Basic.R(M5, k)**2
def GammaG2SGapproxNLO(n, M5, k): return (1 + k / Basic.m(n, M5, k))**3 * ( 1 - 5 / 2 * (k / Basic.m(n, M5, k))**0.5) / (2**5 * math.pi**2) * k**2 * Basic.m( n, M5, k)**2 / (k * Basic.R(M5, k) * M5**3)
def GammaG2SGapprox(n, M5, k): return (1 - k / Basic.m(n, M5, k))**16 / (2**5 * math.pi**2) * k**2 * Basic.m( n, M5, k)**2 / (k * Basic.R(M5, k) * M5**3)
def GammaG2S0S0(n, M5, k): return GammaG2S0S0Int(n, M5, k, k * Basic.R(M5, k))
def GammaG2SSapprox(n, M5, k): return (1 - k / Basic.m(n, M5, k))**16 / ( 2**13 * math.pi**2) * (k * Basic.m(n, M5, k))**0.5 * k**2 * Basic.m( n, M5, k) / (k * Basic.R(M5, k) * M5**3)
def GammaG2GGapprox(n, M5, k): return (1 - k / Basic.m(n, M5, k))**9 * (5 * 7 * 17) / ( 3 * 2**14 * math.pi**2) * (k * Basic.m(n, M5, k))**0.5 * Basic.m( n, M5, k)**3 / (k * Basic.R(M5, k) * M5**3)