Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,725 changes: 1,725 additions & 0 deletions project/operator_cards/1FO_t.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions project/theory_cards/1_20mur.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
order: 2
fns: "our"
grids: False
mass: 4.92
mur_ratio: 2.0
muf_ratio: 1.0
94 changes: 67 additions & 27 deletions src/dis_tp/MassiveCoeffFunc.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
from eko.constants import TR
from scipy.integrate import quad

from . import Initialize
from . import Initialize, scale_variations


# F2
def Cb_2_m_reg(z, Q, p, _nf):
def Cb_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -21,20 +21,22 @@ def Cb_2_m_reg(z, Q, p, _nf):
eta = xi / 4.0 * (1.0 / z - 1.0) - 1.0
eta = min(eta, 1e5)
FHprefactor = Q2 / (np.pi * m_b**2) * e_h**2
return FHprefactor / z * (4.0 * np.pi) ** 2 * LeProHQ.dq1("F2", "VV", xi, eta)
bare_res = FHprefactor / z * (4.0 * np.pi) ** 2 * LeProHQ.dq1("F2", "VV", xi, eta)
return scale_variations.apply_rensv_kernel(0, 2, [bare_res], mur_ratio, _nf)


def Cb_2_m_loc(_z, Q, p, _nf):
def Cb_2_m_loc(_z, Q, p, _nf, mur_ratio=1.0):
l = quad(
lambda x: Cb_2_m_reg(x, Q, p, _nf),
0.0,
1.0,
points=(0.0, 1.0),
)
return -l[0]
bare_res = -l[0]
return scale_variations.apply_rensv_kernel(0, 2, [bare_res], mur_ratio, _nf)


def Cg_1_m_reg(z, Q, p, _nf):
def Cg_1_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -43,7 +45,7 @@ def Cg_1_m_reg(z, Q, p, _nf):
if thre > 1.0:
return 0
v = np.sqrt(1 - thre)
return (
bare_res = (
4
* TR
* e_h
Expand All @@ -54,9 +56,10 @@ def Cg_1_m_reg(z, Q, p, _nf):
* (z * z + (1 - z) ** 2 + 4 * z * eps * (1 - 3 * z) - 8 * z * z * eps * eps)
)
)
return scale_variations.apply_rensv_kernel(0, 1, [bare_res], mur_ratio, _nf)


def Cg_2_m_reg(z, Q, p, _nf):
def Cg_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b**2 / Q2
Expand All @@ -70,7 +73,7 @@ def Cg_2_m_reg(z, Q, p, _nf):
if xi > 2499.9999999999995:
# FH grids are not defined above this
return 0.0
return (
bare_res = (
FHprefactor
/ z
* (4.0 * np.pi) ** 2
Expand All @@ -79,20 +82,33 @@ def Cg_2_m_reg(z, Q, p, _nf):
+ LeProHQ.cgBar1("F2", "VV", xi, eta) * np.log(xi)
)
)
return scale_variations.apply_rensv_kernel(
1, 1, [bare_res, Cg_1_m_reg(z, Q, p, _nf, mur_ratio=1.0)], mur_ratio, _nf
)


def Cg_3_m_reg(z, Q, p, nf):
def Cg_3_m_reg(z, Q, p, nf, mur_ratio=1.0):
e_h = p[-1]
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
thre = 4.0 * eps * z / (1 - z)
if thre > 1.0:
return 0.0
return e_h**2 * Initialize.Cg3m[nf - 4](z, Q)[0]
bare_res = e_h**2 * Initialize.Cg3m[nf - 4](z, Q)[0]
return scale_variations.apply_rensv_kernel(
2,
1,
[
bare_res,
Cg_2_m_reg(z, Q, p, nf, mur_ratio=1.0),
Cg_1_m_reg(z, Q, p, nf, mur_ratio=1.0),
],
mur_ratio,
)


def Cq_2_m_reg(z, Q, p, _nf):
def Cq_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -103,7 +119,7 @@ def Cq_2_m_reg(z, Q, p, _nf):
xi = 1 / eps
eta = xi / 4.0 * (1.0 / z - 1.0) - 1.0
FHprefactor = Q2 / (np.pi * m_b**2) * e_h**2
return (
bare_res = (
FHprefactor
/ z
* (4.0 * np.pi) ** 2
Expand All @@ -112,21 +128,25 @@ def Cq_2_m_reg(z, Q, p, _nf):
+ LeProHQ.cqBarF1("F2", "VV", xi, eta) * np.log(xi)
)
)
return scale_variations.apply_rensv_kernel(0, 2, [bare_res], mur_ratio, _nf)


def Cq_3_m_reg(z, Q, p, nf):
def Cq_3_m_reg(z, Q, p, nf, mur_ratio=1.0):
e_h = p[-1]
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
thre = 4.0 * eps * z / (1 - z)
if thre > 1.0:
return 0.0
return e_h**2 * Initialize.Cq3m[nf - 4](z, Q)[0]
bare_res = e_h**2 * Initialize.Cq3m[nf - 4](z, Q)[0]
return scale_variations.apply_rensv_kernel(
1, 2, [bare_res, Cq_2_m_reg(z, Q, p, nf, mur_ratio=1.0)], mur_ratio, nf
)


# FL
def CLb_2_m_reg(z, Q, p, _nf):
def CLb_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -137,10 +157,11 @@ def CLb_2_m_reg(z, Q, p, _nf):
xi = 1 / eps
eta = xi / 4.0 * (1.0 / z - 1.0) - 1.0
FHprefactor = Q2 / (np.pi * m_b**2) * e_h**2
return FHprefactor / z * (4.0 * np.pi) ** 2 * LeProHQ.dq1("FL", "VV", xi, eta)
bare_res = FHprefactor / z * (4.0 * np.pi) ** 2 * LeProHQ.dq1("FL", "VV", xi, eta)
return scale_variations.apply_rensv_kernel(0, 2, [bare_res], mur_ratio, _nf)


def CLg_1_m_reg(z, Q, p, _nf):
def CLg_1_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -150,16 +171,17 @@ def CLg_1_m_reg(z, Q, p, _nf):
if thre > 1.0:
return 0
v = np.sqrt(1 - thre)
return (
bare_res = (
4
* TR
* e_h
* e_h
* (-8 * eps * z2 * np.log((1 + v) / (1 - v)) + 4 * v * z * (1 - z))
)
return scale_variations.apply_rensv_kernel(0, 1, [bare_res], mur_ratio, _nf)


def CLg_2_m_reg(z, Q, p, _nf):
def CLg_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -173,7 +195,7 @@ def CLg_2_m_reg(z, Q, p, _nf):
if xi > 2499.9999999999995:
# FH grids are not defined above this
return 0.0
return (
bare_res = (
FHprefactor
/ z
* (4.0 * np.pi) ** 2
Expand All @@ -182,20 +204,34 @@ def CLg_2_m_reg(z, Q, p, _nf):
+ LeProHQ.cgBar1("FL", "VV", xi, eta) * np.log(xi)
)
)
return scale_variations.apply_rensv_kernel(
1, 1, [bare_res, CLg_1_m_reg(z, Q, p, _nf, mur_ratio=1.0)], mur_ratio, _nf
)


def CLg_3_m_reg(z, Q, p, nf):
def CLg_3_m_reg(z, Q, p, nf, mur_ratio=1.0):
e_h = p[-1]
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
thre = 4.0 * eps * z / (1 - z)
if thre > 1.0:
return 0
return e_h**2 * Initialize.CLg3m[nf - 4](z, Q)[0]
bare_res = e_h**2 * Initialize.CLg3m[nf - 4](z, Q)[0]
return scale_variations.apply_rensv_kernel(
2,
1,
[
bare_res,
CLg_2_m_reg(z, Q, p, nf, mur_ratio=1.0),
CLg_1_m_reg(z, Q, p, nf, mur_ratio=1.0),
],
mur_ratio,
nf,
)


def CLq_2_m_reg(z, Q, p, _nf):
def CLq_2_m_reg(z, Q, p, _nf, mur_ratio=1.0):
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
Expand All @@ -206,7 +242,7 @@ def CLq_2_m_reg(z, Q, p, _nf):
xi = 1 / eps
eta = xi / 4.0 * (1.0 / z - 1.0) - 1.0
FHprefactor = Q2 / (np.pi * m_b**2) * e_h**2
return (
bare_res = (
FHprefactor
/ z
* (4.0 * np.pi) ** 2
Expand All @@ -215,14 +251,18 @@ def CLq_2_m_reg(z, Q, p, _nf):
+ LeProHQ.cqBarF1("FL", "VV", xi, eta) * np.log(xi)
)
)
return scale_variations.apply_rensv_kernel(0, 2, [bare_res], mur_ratio, _nf)


def CLq_3_m_reg(z, Q, p, nf):
def CLq_3_m_reg(z, Q, p, nf, mur_ratio=1.0):
e_h = p[-1]
Q2 = Q * Q
m_b = p[0]
eps = m_b * m_b / Q2
thre = 4.0 * eps * z / (1 - z)
if thre > 1.0:
return 0.0
return e_h**2 * Initialize.CLq3m[nf - 4](z, Q)[0]
bare_res = e_h**2 * Initialize.CLq3m[nf - 4](z, Q)[0]
return scale_variations.apply_rensv_kernel(
1, 2, [bare_res, CLq_2_m_reg(z, Q, p, nf, mur_ratio=1.0)], mur_ratio, nf
)
Loading