Commit 4dfe3d36 authored by ulrich_y's avatar ulrich_y
Browse files

Removed long analytic results from validation.py and f-and-g.py

parent 4c60d153
......@@ -17,8 +17,10 @@ try:
except ImportError:
pass
sys.dont_write_bytecode = True
dilog = pymule.maths.Li2
trilog = pymule.maths.Li3
sqrt = np.sqrt
def zeta(n):
......
../arbuzov.py
\ No newline at end of file
......@@ -2,7 +2,7 @@
## Init{{{
from pymule import *
from pymule.plot import twopanel
from arbuzov import f1, g1, f2LL, g2LL
import arbuzov
gamma0 = Mmu**5/192/pi**3
......@@ -159,7 +159,7 @@ G = addplots(glo, addplots(gnlo, gnnlo))
###########################################################}}}
##########################################################################}}}
## Compare at LO and NLO{{{
# Here we compare the results with Arbuzov [??]
# Here we compare the results with Arbuzov [hep-ph/0110047]
Ee = flo[:, 0]
xe = 2*Ee/Mmu
beta = sqrt(1-Mel**2/Ee**2)
......@@ -189,8 +189,8 @@ twopanel(
ylim(-5e-2, 5e-2)
###########################################################}}}
### Compare at NLO{{{
fNLOref = alpha/(2*pi) * 2/Mmu * xe**2*beta * f1(xe, Mel/Mmu)
gNLOref = alpha/(2*pi) * 2/Mmu * xe**2*beta * g1(xe, Mel/Mmu)
fNLOref = alpha/(2*pi) * 2/Mmu * xe**2*beta * arbuzov.fnlo(xe, Mel/Mmu)
gNLOref = alpha/(2*pi) * 2/Mmu * xe**2*beta * arbuzov.gnlo(xe, Mel/Mmu)
fNLOref[Ee < Mel] = 0.
gNLOref[Ee < Mel] = 0.
fNLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
......@@ -210,8 +210,8 @@ twopanel(
ylim(-2e-3, 2e-3)
###########################################################}}}
### Compare at NNLO{{{
fNNLOref = (alpha/(2*pi))**2 * 2/Mmu * (np.log(Mmu**2/Mel**2)-1)**2/2 * f2LL(xe, Mel/Mmu) # nopep8
gNNLOref = (alpha/(2*pi))**2 * 2/Mmu * (np.log(Mmu**2/Mel**2)-1)**2/2 * g2LL(xe, Mel/Mmu) # nopep8
fNNLOref = (alpha/(2*pi))**2 * 2/Mmu * (np.log(Mmu**2/Mel**2)-1)**2/2 * arbuzov.f2LL(xe) # nopep8
gNNLOref = (alpha/(2*pi))**2 * 2/Mmu * (np.log(Mmu**2/Mel**2)-1)**2/2 * arbuzov.g2LL(xe) # nopep8
fNNLOref[Ee < Mel] = 0.
gNNLOref[Ee < Mel] = 0.
fNNLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
......
../arbuzov.py
\ No newline at end of file
......@@ -2,6 +2,7 @@
from pymule import *
from pymule.maths import Li2, Li3, zeta2, zeta3
import pymule.compress
import arbuzov
gamma0 = Mmu**5/192/pi**3
......@@ -24,91 +25,17 @@ xev = np.array([1, 1 / gamma0, 1 / gamma0])*addplots(nnlo['xe'], openLeptons)
##########################################}}}
## Load logarithms from [hep-ph/0205172] (Arbuzov et al.){{{
# see also meg2d/arbuzov.py
def fLL(xe):
gam = (
-32*xe**3/9
+ 4*xe**2*(3 - 2*xe)*(
-Li2(1 - xe) - zeta2 + np.log(xe)**2/2
- 2*np.log(xe)*np.log(1 - xe) + np.log(1 - xe)**2
)
+ 8*xe**2/3 + 17*xe/6
+ (-32*xe**3/3 + 8*xe**2 - 2*xe - 5./6)*np.log(xe)
+ (32*xe**3/3 - 16*xe**2 + 8*xe + 10./3)*np.log(1 - xe) + 11./36
)
NS = (
8*xe**3/3 + 2*xe**2*(3 - 2*xe)*np.log((1 - xe)/xe)
- 4*xe**2 + 2*xe + 5./6
)
S = (
-8*xe**3/9 - 14*xe**2/3 + 3*xe
+ (4*xe**2 + 4*xe + 5./3)*np.log(xe) + 17./9 + 2/(3*xe)
)
return gam/2 + NS/3 + S/2
def fNLL(xe):
def Sot(z):
return (
0.5*np.log(1-z)**2*np.log(z)
+ np.log(1-z)*Li2(1-z) - Li3(1-z) + zeta3
)
gam = (
-559*xe**3/54
+ 2*xe**2*(3 - 2*xe)*(
-2*Sot(xe) + 2*Li2(xe)*np.log(xe) + 2*Li2(xe)*np.log(1 - xe)
- 2*Li3(xe) - 2*zeta2*np.log(xe) - 2*zeta2*np.log(1 - xe)
+ 7*zeta3 + 2*np.log(xe)**3 - 5*np.log(xe)**2*np.log(1 - xe)
+ 5*np.log(xe)*np.log(1 - xe)**2
)
+ 83*xe**2/3 - 287*xe/12
+ (8*xe**3 - 4*xe**2 - 12*xe)*np.log(1 - xe)**2
+ (-98*xe**3/3 + 35*xe**2 - 2*xe - 10./3)*zeta2
+ (-70*xe**3/3 + 22*xe**2 - 5*xe - 25./12)*np.log(xe)**2
+ (-12*xe**3 + 64*xe**2/3 - 53*xe/3 - 17./3)*np.log(1 - xe)
+ (44*xe**3/9 + 4*xe**2/3 + 37*xe/6 - 3./4)*np.log(xe)
+ (92*xe**3/3 - 54*xe**2 + 32*xe + 25./3)*np.log(xe)*np.log(1 - xe)
+ (92*xe**3/3 - 40*xe**2 + 14*xe + 10./3)*Li2(xe) + 211./216
)
NS = (
-64*xe**3/9
+ 2*xe**2*(3 - 2*xe)*(
-2*Li2(1 - xe) - 2*zeta2/3 - np.log(xe)**2
- 2*np.log(xe)*np.log(1 - xe)/3 + 2*np.log(1 - xe)**2/3
)
+ 100*xe**2/9 - 19*xe/3
+ (-76*xe**3/9 + 8*xe**2 + 4*xe/3 + 5./9)*np.log(xe)
+ (12*xe**3 - 46*xe**2/3 - 4*xe/3 + 10./9)*np.log(1 - xe)
- 11./6
)
S = (
10*xe**3/9 + 77*xe**2/18 + 43*xe/18 +
(Li2(1 - xe) + np.log(xe)*np.log(1 - xe))*(4*xe**2 + 4*xe + 5./3)
+ (4*xe**2 + 6*xe + 5./2)*np.log(xe)**2
+ (-19*xe**2/3 - 5*xe/6 + 8./9 + 4/(3*xe))*np.log(xe)
+ (-8*xe**3/9 - 14*xe**2/3 + 3*xe + 17./9 + 2/(3*xe))*np.log(1 - xe)
- 67./9 - 1/(3*xe)
)
int = (
104*xe**3/9
+ 2*xe**2*(3 - 2*xe)*(
-4*Sot(1 - xe) - 2*Li2(1 - xe)*np.log(xe)
+ 2*Li3(1 - xe)
)
- 55*xe**2/3 + 41*xe/3 + (26*xe**3/3 - 9*xe**2)*np.log(xe)**2
+ (-28*xe**2/3 - 5*xe/3 - 5./3)*np.log(xe)
+ (52*xe**3/3 - 26*xe**2 + 4*xe + 5./3)*Li2(1 - xe) - 62./9
)
return gam+NS+S+int
def f2loop(xe):
fLL = arbuzov.f2LLns(xe)/3 + arbuzov.f2LLs(xe)/2 + arbuzov.f2LL(xe)/2
fNLL = (
arbuzov.f2NLLns(xe) + arbuzov.f2NLLs(xe)
+ arbuzov.f2NLL(xe) + arbuzov.f2NLLint(xe)
)
z = Mel / Mmu
f0 = -np.sqrt(xe**2 - 4*z**2)*(2*xe**2 + 4*z**2 - 3*xe*(1 + z**2))
f00 = -xe**2*(-3 + 2*xe)
L = np.log(Mmu**2/Mel**2)
return f0 / f00 * (L**2 * fLL(xe) + L * fNLL(xe)) / 2 / pi / pi
return f0 / f00 * (L**2 * fLL + L * fNLL) / 2 / pi / pi
###########################################################}}}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment