Remove need for _template.yaml#223
Conversation
|
@scarlehoff Could I maybe just remove this test? I could make it check that the theory cards' Q0 is the same as the default one, but to me it seems a bit superfluous |
|
Sure, shuffling around the _template and the operators might change which tests are needed. |
felixhekhorn
left a comment
There was a problem hiding this comment.
some quick things I noticed last week
Co-authored-by: Felix Hekhorn <felixhekhorn@users.noreply.github.com>
Co-authored-by: Felix Hekhorn <felixhekhorn@users.noreply.github.com>
| import pytest | ||
| from eko.interpolation import XGrid | ||
| from eko.io.runcards import OperatorCard | ||
| from pineko.evolve import write_operator_card |
There was a problem hiding this comment.
I think this is not needed?
There was a problem hiding this comment.
Can we use a more specific name please? in particular something that has "operator card" or any abbreviation thereof
| operators_card["configs"]["ev_op_max_order"] = template.CONSTANTS["configs"][ | ||
| "ev_op_max_order" | ||
| ] | ||
| operators_card["configs"]["inversion_method"] = template.CONSTANTS["configs"][ | ||
| "inversion_method" | ||
| ] | ||
| operators_card["configs"]["interpolation_polynomial_degree"] = template.CONSTANTS[ | ||
| "configs" | ||
| ]["interpolation_polynomial_degree"] | ||
| operators_card["configs"]["interpolation_is_log"] = template.CONSTANTS["configs"][ | ||
| "interpolation_is_log" | ||
| ] | ||
| operators_card["configs"]["n_integration_cores"] = template.CONSTANTS["configs"]["n_integration_cores"] |
There was a problem hiding this comment.
for k in ["ev_op_max_order", "inversion_method"]: # etc
op_c["c"][k] = t.c["c"][k]and similar for debug
There was a problem hiding this comment.
Thanks for your comments @felixhekhorn, I'll change them!
|
@felixhekhorn The regression benchmark comparing convolved predictions failed, but the maximal relative difference is 0.03497747. Would you say it's close enough? |
|
The template name should be removed from here: Line 19 in 89304e2 also the |
scarlehoff
left a comment
There was a problem hiding this comment.
This small of a relative difference is ok I'd say.
| "ev_op_iterations": 60, | ||
| "evolution_method": "iterate-exact", | ||
| "inversion_method": "expanded", |
There was a problem hiding this comment.
These should be sourced from the theory card and only from there.
There was a problem hiding this comment.
Is the inversion method also set in the theory card? I can't find it in the current theory cards
There was a problem hiding this comment.
@felixhekhorn what about the inversion method?
I think for the evolution of the PDF we simply fix
truncated -> expanded
iterate-exact -> exact
Should we fix the same here? Or is this not relevant and we can use expanded in both cases?
| "ev_op_max_order": [10, 0], | ||
| "interpolation_polynomial_degree": 4, | ||
| "interpolation_is_log": True, | ||
| "n_integration_cores": 1, |
There was a problem hiding this comment.
And this one should come from the command line interface. Different datasets might need different number of cores.
scarlehoff
left a comment
There was a problem hiding this comment.
I meant to request changes 😅
I'm quite worried by this
this sounds like we can no longer run actually truncated - i.e. we can no longer reproduce 4.0. If that would be true that must be changed. This might well explain the difference we observe. We want to enforce consistent settings, i.e. "if method=truncated then iterations=1", but we don't want to enforce method=exact everywhere. |
|
This has to do with the comment I left. We just want to ensure that the evolution settings are coming from the theory not from a constant setting. |
You're right! I think here I ran the benchmark while using iterate-exact (which I hardcoded into template.py). But as Juan suggested I will now let the evolution method be totally determined by the theory card. Then it would also do truncated evolution |
Remove the need for _template.yaml as in issue #202