-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exa couplings2 #1806
Exa couplings2 #1806
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for opening the new branch!
I've left a few comments. The general trend is that some more explanation on the docstr (and some comments in the parts where the code might get a bit confusing, specially when many things are happening in the background e.g. due to eko doing stuff) would be good.
alpha = Alpha(theory, 1e8) | ||
coupl_ref = [theory["alphas"], theory["alphaqed"]] | ||
|
||
for q in [80, 10, 5]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of doing like this, you might want to use the hypothesis module to test random values of q (one example here)
https://github.com/NNPDF/nnpdf/blob/master/validphys2/src/validphys/tests/test_utils.py
This has the advantage of being more robust, but the disadvantage that you might not want to test some fringe values.
Not required just in case you want to play a bit with this. It will make the tests more robust and cleaner!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would skip this since my fear is that some values of q would make the test fail. For example in test_exa_interpolation
I had to manually increase the error until I found the one for which the tests were passing, but maybe there are some values for which the error is larger.
Anyway, with the last commit this PR is done
Hi @scarlehoff and @Zaharid , for the reason that I explained in
I had to decouple the EKO evolution but the differences are very small in the perturbative region of QCD.So what I can do is the following:
|
I'm in favor of the removal since if/when someone wants to deal with the problem either this would be the smallest part of the job (and they will have to recheck that everything is correct anyway) or (if it is you or someone already involved in the project) would be able to find the commit in which it was removed looking at this PR (and past experiences tell me that dead code starts smelling after a while and ends up being removed anyway) That said, if other people want to keep it I won't make a fuss about it. edit: unless there's a plan already of dealing with this in the near future, but from your msg I understand this is something that won't be deal with any time soon |
ok then I'll remove it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you running the qed fits already with this branch? (if so I guess everything works so feel free to merge)
Yes. Then as soon as the tests pass I will merge |
This PR implements the alphaem exact running in the Alpha class in the validphys.photon module.$\alpha$ for some reference values in the integration range and then interpolate with $\alpha_s$ only but probably not smooth in the matching points)$\alpha(Q^2)$ to very low values of $Q^2$ , below the Landau pole of $\alpha_s$ . For this reason I had to remove the mixed terms in the evolution of $\alpha(Q^2)$ , i.e. the terms that couple the evolutions of the two couplings. In this way $\alpha$ running is decoupled from $\alpha_s$ running.
In this way it is consistent with the running used in
EKO
for QED.Such running also considers the mixed terms between the RGEs of alphas and alphaem (therefore they are evolved together).
Edit: Since the solution must enter in the
fiatlux
integral, and the exact solution is slower than the truncated one, the strategy is to computescipy
(the function is continuous since the matching is applied toEdit n. 2: interpolating with
scipy
was still too slow so I interpolated withnumpy
, that is fasterEdit n. 3 (Theoretical issue): the Lux formula uses
It means that the evolution will be slightly inconsistent with the one used in
EKO
(but in the perturbative regions the difference is sub-permil).I've performed a fit with this branch and it seems to be good:
https://vp.nnpdf.science/U27tsiK-TS6xejU0tw5trQ==
https://vp.nnpdf.science/9gdZCX7wQdyScO6LrrfZbQ==/#PDFscalespecs0_Basespecs1_PDFnormalize1_plot_pdfs_photon
https://vp.nnpdf.science/L2bZ5BABQsq4eKhftwwufg==/#PDFscalespecs0_Basespecs1_PDFnormalize1_plot_pdfs_photon