Conversation
|
currently it looks like the light coefficient functions support no variation at all, e.g. looking at https://github.com/NNPDF/yadism/blob/master/src/yadism/coefficient_functions/light/kernels.py#L78 vs https://github.com/NNPDF/yadism/blob/master/src/yadism/coefficient_functions/heavy/kernels.py#L76 . do we want to implement this as well at the same time? |
@jekoorn the light coefficient functions at N3LO are known exactly so no, they should not be varied in any way. IHOUs are only required for the N3LO massive coefficient functions |
|
How does the code distinguish between whether an FL or F2 component is called? I don't really see how I should tell the code to use C2g vs CLg |
|
Felix will confirm, but I think that the distinction is made through
|
|
Please remember to resolve the conversations, which you believe to have addressed |
|
Also please don't code only in the void - at some point you need to actually run locally yourself! this is to say: you still have syntax errors |
yeah sorry for the mess, my editor didn't catch the syntax errors for some reason. I am apparently rusty after the holidays🙃 Another question: Do we only require a variation in the case that we evaluate F2 and FL? Not the others? (Are they known already?) |
|
yes, only F2 and FL, xF3 is not relevant here |
felixhekhorn
left a comment
There was a problem hiding this comment.
Let me ask again: have you actually run this code? and check e.g. that when you put different numbers this is propagated down to adani correctly?
I am currently checking this with pinefarm (since I have to generate grids anyway and needed a pipeline). But probably it's easier to do this with yadism standalone 🙈 |
|
There are still some NaNs spawning, apparently. I will investigate this.. |
Could you please provide more details (which cards are you using, do the NaNs appear for specific processes/datasets/variations, etc.)? There are some NaNs that are fine (such as at very low |
Sure! |
I suggest to put a debugger (or print or whatever) here and check what variation arrives there and then what you get back Also do you get finite numbers with the default settings? i.e. without any variation? so we know the problem is with the variations (and not with something else) |
nothing looks to arrive there, with whatever variation I put in. Probably explains why the calculations yield the same result between different variations. It makes me doubt whether the correlated variations were even doing what they should in the first place, before starting this implementation. With default settings I also get NaNs, but to be precise: they don't appear in the output, it's just a notification that the runner passes: |
These NaNs are fine (as I per above) so you shouldn't worry about those. They are in the regions where pQCD breaks down and these warnings are just there warn people that these regions are probed. |
@Radonirinaunimi I think you put these warnings there in the first place, right? so you know that they are in this region? because this can not be inferred from the output ... (i.e. if we have the kinematics in hand there it might be good to echo them alongside 🙃 )
@jekoorn then a) you should check on master what you get there (and confirm or reject your doubts) and b) then you "just" need to trace their way back and e.g. check what you get immediately inside yadism = in the runner e.g. here Line 127 in 17a6c55 |
|
on it @felixhekhorn |
Yes, I agree. I should have printed out the kinematics alongside for full transparency and certainty. Since we are at it, I would suggest to add this in this PR. |
|
For debugging purposes, which FNS should I use? In some cases the code simply breaks, which probably has to do with not choosing the appropriate nf, in combination with the FNS. At least the variations look like they're activated with the FFN0 scheme. |
I suggest FFNS3, so
This would be (very likely) directly the FONLL case. However, since FONLL has multiple ingredients that might make debugging more complicated ... but actually, you could also just use the correct FFNS theory card there (courtesy of NNPDF/nnpdf#2498) |
|
This exact FFNS theory card with FFNS3 fails, for some reason. Also on the master branch without the If you have an idea what is going wrong here I would be very happy to continue working on this but I think I am currently too lost by which FNS's work and which don't 😅 At least I'venow verified that the correct variations are passed to the correct places, so at least the original goal of this test has been succesful! |
|
ehm, I'm confused, because I have seen numbers from @evagroenendijk supposedly using that card - @evagroenendijk can you please confirm? That being said, the error sounds more like a local problem: are you sure your runcards are 100% correct? the question is in particular for the types: are things which should be a scalar number just that and not some array? (For dumping runcards to file even
a good thing for sure, but you know people (meaning Juan 🙈 ) want to see the real deal |
I understand, of course, but since it's apparently an issue that only pops up with some FNS's (code runs fine under ZM-VFNS), I was hoping... But if @evagroenendijk has a runscript with this card that works, so much the better! |
|
@jekoorn @felixhekhorn Indeed I use exactly that theory card and it works fine. I think it's a compatibility issue between numpy and the scipy integration. I reproduce your error when using numpy v2.4, I myself was using v2.2.6 and then it does work (I think v2.4 numpy outputs an array somewhere while v2.2.6 outputs a value) |
ooh, you are saying this is a side effect of our Python (and dependencies) upgrade ... in particular #383 Okay, so we need to sort that out. I would suggest to solve this issue first (starting from Sigh... if only yadism would have some sort of benchmarks, e.g. here #162 or also just in pinefarm, which would run on a regular basis and where we would detect such problems ... |
Will be addressed in #389 |
please still check explicitly that you get different numbers for different variations (and they are not crazy different) |
|
Differences are in the 10-30% range when comparing the correlated vs uncorrelated min/max variations - typically the uncorrelated variations (squares summed) are slightly smaller. I'm thinking about how to properly present the results, but I can just link a file with a plaintext table that I made using |
Can we be a bit more specific? for which observable? for which kinematics? we are talking only about the N3LO corrections (and not the full thing), right?
If you can come up quickly with some clever representation, fine, else also plain text files will do for now. Then for the 4.1 paper we need to do something more clever 🙃 |
In this case, I used Eva's runcards for the N3LO benchmark to compute F2C and FLC. To get the N3LO corrections, should I just subtract the NNLO component? And do these observables suffice, or do we want an actual cross-section in the end? |
in principle fine, but we need to remember, that some of the kinematics are just unreachable by HERA
thus, it might make also sense to look at the true settings as well. We can start with the easy thing first (just F2+FL). For the paper we need the real thing.
Yes. Also PineAPPL can do it directly (I think). Both things (total and relative) are interesting. |
Closes #328
n3lo_cf_variation seems to be a single number, although I believe it should be 4 numbers: (C2g, C2q, CLg, CLq), i.e. one per coefficient we want to vary