Fix scale variations expanded#191
Conversation
|
@giacomomagni I believe you worked on the test that is currently failing in the other PR. Can you remind me what your conclusions were? (In order to fix here) |
|
The
the idea of the test was to quantify the difference between expanded and exponential (B vs A) in the case of liarized and truncated solution. So to fix it we should find where the minus sign come from. If I recall correctly your analysis shows it was due to a shift |
Yes indeed. At a certain point I had a doubt about the relative sign between the term |
ehm, if you mean by k what is called L here: eko/src/eko/scale_variations/expanded.py Line 54 in 2000859 no - this is only true at LO SV = NLO AD, but not in the case of the snippet above |
Sorry, my fault. With |
|
@andreab1997 since we finally sorted out the discussion about |
|
@felixhekhorn @alecandido I believe that (thanks also to @giacomomagni) we finally really solved the minus sign problem. As you can see the test is still failing but it would pass just changing the sign of the term Of course we do not want to change the minus sign in the implementation because we agreed that we want to expand everything in terms of |
Co-authored-by: Alessandro Candido <candido.ale@gmail.com>
|
Now the test should be ok. It was enough to remove the term that we know is generated by the change of |
If the logic is the same at N3LO you would need to subtract: |
Not exactly, because at N3LO you have a lot other terms appearing. In particular, all the |
|
To remember what has to be done:
|
|
Can we merge this now? |
| Note this is NOT the real difference between scheme expanded | ||
| and exponentiated since here we don't take into account the | ||
| shifts in path length and :math:`\alpha_s` values. |
There was a problem hiding this comment.
Why don't we also shift the alpha values, as we should? we know how to do it (it's written in the notebook)
There was a problem hiding this comment.
This is just laziness. As mentioned above the test will not test the real HO difference A-B, since we have verified that is too complex.
This fix was derived assuming that the sv are now correct (as implemented) and checking that the difference between kernels without shifting paths/a_s is what we expect.
If you don't like it I'd propose to scratch it.
| @@ -64,20 +63,50 @@ def scheme_diff(g, k, pto, is_singlet): | |||
| the accuracy of singlet quantities is slightly worse. | |||
| """ | |||
| if pto[0] >= 2: | |||
There was a problem hiding this comment.
do we really want a >= here? the difference strictly depends on the order - also I don't believe we want the diff +=, but instead diff =
There was a problem hiding this comment.
As the test is build, this is correct with +=.
| g02 = g[0] @ g[0] if is_singlet else g[0] ** 2 | ||
| diff += a0**2 * g[1] * k - k**2 * ( | ||
| 1 / 2 * a0**2 * b0 * g[0] + a1 * a0 * g02 - 1 / 2 * a0**2 * g02 | ||
| diff += ( |
There was a problem hiding this comment.
this is the += that I meant above
|
In any case I would merge this. We already checked the implemented expression for scale_varaitions with the notebook. Writing a sensible test that uses the results we derived can take a lot of time so I would open an issue for that but I would not block this PR for the test (since it is useful for several projects now). Do you agree? @giacomomagni @felixhekhorn @alecandido |
|
Note that the issue about this test has been opened (#201 ) |
There was a problem hiding this comment.
I just have one comment about documentation, for the rest it looks ok.
However, I believe docs to be crucial here, since the problem is a sophisticated one, mainly about physics, more than code.
You don't have to document all in EKO, if the documentation is Pineko just add a reference to that location. But someone inspecting EKO should be able (at least through redirection) where the choices made stem from
@andreab1997 I only had a tiny comment about documentation, and for the rest is fine. But you should reply to @felixhekhorn comments before merging. |
Ok thank you! About @felixhekhorn comments I believe @giacomomagni answered but, in any case, they are all about the test and we agreed (I believe) to open an issue for that (I already did) because for sure the test as it is is not optimal and we will need to change. |
If they are addressed (or delayed on purpose), people participating or who is taking the decision should resolve them. If it is just a matter of clicking a button it takes no time, but it is an explicit action to say we already took a decision. |
|
Yes I was waiting for @felixhekhorn answer before closing the conversations :) |
felixhekhorn
left a comment
There was a problem hiding this comment.
As long as we do the correct test (maybe we can rename the current version - since it is not doing what is promised) at some point (the sooner the better), we can even merge to move forward
The name of the test is a bit misleading but the comment explains the problem. Anyway we will rework this test in order to make it really test A vs B, so I would keep the name. If you agree, Can I merge this? |
|
If you'd just move the comment in 007ba72 in the docstring it would be perfect :) |
Here I just want to do two things:
alpha_rawfrom the game since we decided to write everything as an expansion inalpha(xi_F * Q)(Close Remove alpha_raw from the game since it is not needed and wrong #188)@felixhekhorn @alecandido @giacomomagni