Skip to content

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:

  1. unpolarized PDFs
  2. polarized PDFs
  3. unpolarized FFs
  4. 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 either fragfn or pdf. If this field isn't present, one can assume it to have the value pdf.
  • Polarized: can be either true or false. If this field isn't present, assume it to be false. Together with the field above one can decode all four combinations.