diff --git a/src/ekobox/genpdf/__init__.py b/src/ekobox/genpdf/__init__.py index 5df318de3..5456613d4 100644 --- a/src/ekobox/genpdf/__init__.py +++ b/src/ekobox/genpdf/__init__.py @@ -220,10 +220,11 @@ def generate_block( xfxQ2: Callable, xgrid: List[float], evolgrid: List[EPoint], pids: List[int] ) -> dict: """Generate an LHAPDF data block from a callable.""" - block: dict = dict(mu2grid=[mu2 for mu2, _ in evolgrid], pids=pids, xgrid=xgrid) + sorted_q2grid = [float(q2) for q2, _ in np.sort(evolgrid, axis=0)] + block: dict = dict(mu2grid=sorted_q2grid, pids=pids, xgrid=xgrid) data = [] for x in xgrid: - for mu2, _ in evolgrid: + for mu2 in sorted_q2grid: data.append(np.array([xfxQ2(pid, x, mu2) for pid in pids])) block["data"] = np.array(data) return block diff --git a/tests/ekobox/test_genpdf.py b/tests/ekobox/test_genpdf.py index 0565db701..fb75fd542 100644 --- a/tests/ekobox/test_genpdf.py +++ b/tests/ekobox/test_genpdf.py @@ -44,6 +44,7 @@ def test_generate_block(): assert sorted(b.keys()) == sorted(["data", "mu2grid", "xgrid", "pids"]) assert isinstance(b["data"], np.ndarray) assert b["data"].shape == (len(xg) * len(mu2s), len(pids)) + assert b["mu2grid"] == sorted(b["mu2grid"]) def test_install_pdf(fake_lhapdf, cd):