Closed felixhekhorn closed 8 months ago
The problem is that you're outside of the validity of the PDF set, or in other words that you're testing LHAPDF extrapolation feature. In ABMP16_3_nnlo
's info file you can see:
XMin: 1e-07
While debugging this problem I noticed that some PDF values are smaller than this minimum, and the difference then comes from this code block:
I suppose what you'd like would be to disable this feature just for testing purposes, wouldn't you?
I see - it was just unexpected for me to have the CLI and python return two different results, but I forgot the CLI is not just convolute_with_one
but also additional checks (such as this one).
As for the matter itself: maybe we could add a switch to the CLI to turn off the additional checks - on Grid::convolute_with_one
-level (both Rust and Pyhton) there is nothing to be done since at that point Rust receives a callable and can not judge it's validity ... maybe another thing could be to provide a Grid::convolute_with_one
in python which takes a Python LHAPDF::PDF
object, which we could check (or regularize) if needs be ...
not sure we have to do something, so you can also just close as "feature not a bug", if you think so - it is good to be aware though
You're right that this is surprising behavior - which is almost never good - and to remedy that I added a global option --allow-extrapolation
in commit d755b1adcf428dc5f64df3bf40896693f247a51a. With that option present, for instance in
pineappl --allow-extrapolation convolute tab1-ccbar-14TeV.pineappl.lz4 ABMP16_3_nnlo
the CLI returns the same value as the Python interface:
b x1 sigma_tot
[] [pb]
-+-+-+------------
0 0 1 2.6727454e10
This has the general advantage in that now we have an easy test of whether an observable goes significantly into the extrapolation region - just compare the values with both settings.
the problem
Calling the CLI
pineappl convolute
and the Pyhton equivalentpineappl.grid.Grid.convolute_with_one
does not yield the same number - the python number is consistent with the result from the raw Vegas integration. This does only happen from one out of two grids that I have - and the two only differ by $\sqrt s$ (i.e. a parameter that effects the coefficient functions, but not the grid generation in any way)all codes are here
the bad one
the grid:
python is good:
the CLI is wrong:
the good one
the grid:
python is good:
the CLI is good as well:
EDIT: actually, even here the numbers only match with 3/4 digits, although the implementation should be identical