Code indexing in gitaly is broken and leads to code not being visible to the user. We work on the issue with highest priority.

Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -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
###########################################################}}}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment