Add metadata for convolution types
In PineAPPL we are currently preparing support for interpolation grids with arbitrarily many convolution functions, for instance to support processes like
proton proton -> pion + X.
An interpolation grid of this kind needs two different convolution functions: a PDF for the proton and a fragmentation function for the pion. When a user convolves this grid with the two functions, they must either pass the functions in the right order to avoid calculating the following nonsense,
pion pion -> proton + X,
or the program needs to figure out the right order itself, but that only works if the information is available somewhere, which I believe it isn't.
I believe the PDF metadata is the natural place to store this information, and as far as I understand there are four different kinds of functions:
- unpolarized PDFs
- polarized PDFs
- unpolarized FFs
- polarized FFs
Two examples that already have some of this information are MAPFF10NLOPIp
and NNFF10_PIm_lo
which have SetType: fragfn
.
One proposal that is backwards compatible (AFAIK):
-
SetType:
can be eitherfragfn
orpdf
. If this field isn't present, one can assume it to have the valuepdf
. -
Polarized:
can be eithertrue
orfalse
. If this field isn't present, assume it to befalse
. Together with the field above one can decode all four combinations.