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 03e46008 authored by ulrich_y's avatar ulrich_y
Browse files

Improved comparison

parent 87955c9e
No related branches found
No related tags found
No related merge requests found
......@@ -154,29 +154,35 @@ flo, glo, tlo = getfandg(lfunclo, 'lo')
fnlo, gnlo, tnlo = getfandg(lfuncnlo, 'nlo')
fnnlo, gnnlo, tnnlo = getfandg(lfuncnnlo, 'nnlo')
Ee = flo[:, 0]
mask = (Mel < Ee) & (Ee < Mmu/2 + Mel**2/Mmu**2)
flo = flo[mask]
glo = glo[mask]
fnlo = fnlo[mask]
gnlo = gnlo[mask]
fnnlo = fnnlo[mask]
gnnlo = gnnlo[mask]
F = addplots(flo, addplots(fnlo, fnnlo))
G = addplots(glo, addplots(gnlo, gnnlo))
###########################################################}}}
##########################################################################}}}
## Compare at LO and NLO{{{
# Here we compare the results with Arbuzov [hep-ph/0110047]
Ee = flo[:, 0]
## Compare at LO, NLO, and NNLO{{{
# Here we compare the results with Arbuzov
Ee = Ee[mask]
xe = 2*Ee/Mmu
beta = sqrt(1-Mel**2/Ee**2)
### Compare at LO{{{
fLOref = 2/Mmu * xe**2*beta * (3-2*xe+xe/4*(3*xe-4)*(1-beta**2))
gLOref = 2/Mmu * xe**2*beta * ((1-2*xe)*beta + 3*xe**2/4 * beta * (1-beta**2))
fLOref[Ee < Mel] = 0.
gLOref[Ee < Mel] = 0.
fLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
gLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
twopanel(
"$E_e$", labupleft="$f_0$",
upleft=[flo, np.column_stack((Ee, fLOref, np.zeros((4000))))],
upleft=[flo, np.column_stack((Ee, fLOref, np.zeros(Ee.shape)))],
downleft=[np.column_stack((Ee, 1-flo[:, 1]/fLOref, flo[:, 2]/fLOref))]
)
ylim(-1e-3, 1e-3)
......@@ -184,7 +190,7 @@ ylim(-1e-3, 1e-3)
twopanel(
"$E_e$", labupleft="$g_0$",
upleft=[glo, np.column_stack((Ee, gLOref, np.zeros((4000))))],
upleft=[glo, np.column_stack((Ee, gLOref, np.zeros(Ee.shape)))],
downleft=[np.column_stack((Ee, 1-glo[:, 1]/gLOref, glo[:, 2]/gLOref))]
)
ylim(-5e-2, 5e-2)
......@@ -192,31 +198,39 @@ ylim(-5e-2, 5e-2)
### Compare at NLO{{{
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.
gNLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
twopanel(
"$E_e$", labupleft="$f_1$",
upleft=[fnlo, np.column_stack((Ee, fNLOref, np.zeros((4000))))],
upleft=[fnlo, np.column_stack((Ee, fNLOref, np.zeros(Ee.shape)))],
downleft=[np.column_stack((Ee, 1-fnlo[:, 1]/fNLOref, fnlo[:, 2]/fNLOref))]
)
ylim(-2e-3, 2e-3)
twopanel(
"$E_e$", labupleft="$g_1$",
upleft=[gnlo, np.column_stack((Ee, gNLOref, np.zeros((4000))))],
upleft=[gnlo, np.column_stack((Ee, gNLOref, np.zeros(Ee.shape)))],
downleft=[np.column_stack((Ee, 1-gnlo[:, 1]/gNLOref, gnlo[:, 2]/gNLOref))]
)
ylim(-2e-3, 2e-3)
###########################################################}}}
### Compare at NNLO{{{
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.
gNNLOref[Ee > Mmu/2 + Mel**2/Mmu**2] = 0.
L = np.log(Mmu**2/Mel**2)
pref2loop = (alpha/(2*pi))**2 * 2/Mmu
fNNLOref = pref2loop * (0.5*L**2*arbuzov.f2LL(xe) + L*arbuzov.f2NLL(xe))
gNNLOref = pref2loop * (0.5*L**2*arbuzov.g2LL(xe) + L*arbuzov.g2NLL(xe))
figure()
plot(Ee, fNNLOref)
errorband(fnnlo)
ylim(-2e-5, 5e-5)
xlabel("$E_e$")
ylabel("$f_2$")
figure()
plot(Ee, gNNLOref)
errorband(gnnlo)
ylim(-2e-5, 5e-5)
xlabel("$E_e$")
ylabel("$g_2$")
###########################################################}}}
##########################################################################}}}
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