Skip to content

Commit

Permalink
Merge pull request #323 from NNPDF/fix_mathcing_order
Browse files Browse the repository at this point in the history
address issue #322
  • Loading branch information
giacomomagni authored Nov 8, 2023
2 parents 10f0733 + 8f87134 commit 006395d
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/eko/io/runcards.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@ def new_theory(self):

new["xif"] = old["XIF"]
new["n3lo_ad_variation"] = old.get("n3lo_ad_variation", (0, 0, 0, 0))
# here PTO: 0 means truly LO
new["matching_order"] = old.get("PTO_matching", [old["PTO"], old["QED"]])
# here PTO: 0 means truly LO, no QED matching is available so far.
new["matching_order"] = old.get("PTO_matching", [old["PTO"], 0])

return TheoryCard.from_dict(new)

Expand Down
4 changes: 1 addition & 3 deletions src/eko/runner/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,7 @@ def __init__(
couplings=cs,
interpol_dispatcher=bfd,
n3lo_ad_variation=new_theory.n3lo_ad_variation,
matching_order=new_theory.matching_order
if new_theory.matching_order is not None
else new_theory.order,
matching_order=new_theory.matching_order,
)

with EKO.create(path) as builder:
Expand Down
3 changes: 2 additions & 1 deletion src/eko/runner/parts.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,10 @@ def evolve_configs(eko: EKO) -> dict:
n_integration_cores=ocard.configs.n_integration_cores,
ModSV=ocard.configs.scvar_method,
n3lo_ad_variation=tcard.n3lo_ad_variation,
# Here order is shifted by one, no QED matching is available so far.
matching_order=tcard.matching_order
if tcard.matching_order is not None
else tcard.order,
else (tcard.order[0] - 1, 0),
)


Expand Down
22 changes: 22 additions & 0 deletions tests/eko/runner/test_parts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from eko.runner import parts


def test_evolve_configs(eko_factory):
# QCD@LO
e10 = eko_factory.get()
assert e10.theory_card.order == (1, 0)
p10 = parts.evolve_configs(e10)
assert p10["matching_order"] == (0, 0)
# QCD@N3LO + QED@N2LO w/o matching_order
eko_factory.theory.order = (4, 3)
eko_factory.theory.matching_order = None
e43 = eko_factory.get({})
assert e43.theory_card.order == (4, 3)
p43 = parts.evolve_configs(e43)
assert p43["matching_order"] == (3, 0)
# QCD@N3LO + QED@N2LO w/ matching_order
eko_factory.theory.matching_order = (3, 0)
e43b = eko_factory.get({})
assert e43b.theory_card.order == (4, 3)
p43b = parts.evolve_configs(e43b)
assert p43b["matching_order"] == (3, 0)

0 comments on commit 006395d

Please sign in to comment.