diff --git a/src/eko/evolution_operator/__init__.py b/src/eko/evolution_operator/__init__.py index d990474d2..069d75b0e 100644 --- a/src/eko/evolution_operator/__init__.py +++ b/src/eko/evolution_operator/__init__.py @@ -124,6 +124,7 @@ def quad_ker( areas, as1, as0, + as_raw, nf, L, ev_op_iterations, @@ -151,10 +152,12 @@ def quad_ker( Mellin inversion point areas : tuple basis function configuration - a1 : float + as1 : float target coupling value - a0 : float + as0 : float initial coupling value + as_raw : float + coupling value at the process scale nf : int number of active flavors L : float @@ -199,7 +202,7 @@ def quad_ker( # scale var expanded is applied on the kernel if sv_mode == sv.Modes.expanded and not is_threshold: ker = np.ascontiguousarray( - sv.expanded.singlet_variation(gamma_singlet, as1, order, nf, L) + sv.expanded.singlet_variation(gamma_singlet, as_raw, order, nf, L) ) @ np.ascontiguousarray(ker) ker = select_singlet_element(ker, mode0, mode1) else: @@ -216,7 +219,9 @@ def quad_ker( ev_op_iterations, ) if sv_mode == sv.Modes.expanded and not is_threshold: - ker = sv.expanded.non_singlet_variation(gamma_ns, as1, order, nf, L) * ker + ker = ( + sv.expanded.non_singlet_variation(gamma_ns, as_raw, order, nf, L) * ker + ) # recombine everything return np.real(ker * integrand) @@ -312,7 +317,8 @@ def a_s(self): self.mur2_shift(self.q2_from), fact_scale=self.q2_from, nf_to=self.nf ) a1 = sc.a_s(self.mur2_shift(self.q2_to), fact_scale=self.q2_to, nf_to=self.nf) - return (a0, a1) + a_raw = sc.a_s(self.q2_to, fact_scale=self.q2_to, nf_to=self.nf) + return (a0, a1, a_raw) @property def labels(self): @@ -370,6 +376,7 @@ def quad_ker(self, label, logx, areas): areas=areas, as1=self.a_s[1], as0=self.a_s[0], + as_raw=self.a_s[2], nf=self.nf, L=np.log(self.fact_to_ren), ev_op_iterations=self.config["ev_op_iterations"], diff --git a/tests/eko/test_ev_operator.py b/tests/eko/test_ev_operator.py index 1ab6d62ec..45d4d1b95 100644 --- a/tests/eko/test_ev_operator.py +++ b/tests/eko/test_ev_operator.py @@ -40,6 +40,7 @@ def test_quad_ker(monkeypatch): areas=np.zeros(3), as1=1, as0=2, + as_raw=1, nf=3, L=0, ev_op_iterations=0, @@ -59,6 +60,7 @@ def test_quad_ker(monkeypatch): areas=np.zeros(3), as1=1, as0=2, + as_raw=1, nf=3, L=0, ev_op_iterations=0, @@ -78,6 +80,7 @@ def test_quad_ker(monkeypatch): areas=np.zeros(3), as1=1, as0=2, + as_raw=1, nf=3, L=0, ev_op_iterations=0, @@ -99,6 +102,7 @@ def test_quad_ker(monkeypatch): areas=np.zeros(3), as1=1, as0=2, + as_raw=1, nf=3, L=0, ev_op_iterations=0, @@ -120,6 +124,7 @@ def test_quad_ker(monkeypatch): areas=np.zeros(3), as1=1, as0=2, + as_raw=1, nf=3, L=0, ev_op_iterations=0, @@ -390,7 +395,7 @@ def quad_ker_pegasus( mode1 = 0 method = "" logxs = np.log(int_disp.xgrid.raw) - a1 = 1 + as_raw = a1 = 1 a0 = 2 nf = 3 L = 0 @@ -411,6 +416,7 @@ def quad_ker_pegasus( bf.areas_representation, a1, a0, + as_raw, nf, L, ev_op_iterations,