Input & Output
We use yaml runcards for piping input and output files.
Input
The input is split into two runcards: a theory runcard and an operator runcard. Note that we are not assuming any default values for the keywords, but instead the user has to provide the full definition. However, for the benchmarking environment we do provide some default settings.
Theory Runcard
The theory runcard (compatible with the NNPDF theory database) defines the physical setup
and environment. The benchmark settings are available at banana.data.theories.default_card
.
Name 
Type 
Description 


QCD perturbation theory order: 


Evolution method. Possible options are:



Factorization to renormalization scale ratio. 


Scale variation method, used only if 


Initial PDF evolution scale (in GeV). 


Number of flavors active ant the 


Maximum number of flavors in the PDF evolution. 


Reference value of the strong coupling \(\alpha_s\) (Note that we have to use \(\alpha_s\) here, instead of \(a_s\) for legacy reasons). 


Reference scale at which the 


Number of flavors active at the 


Maximum number of flavors in the strong coupling evolution. 


If 


Reference value of the electromagnetic coupling \(\alpha_{em}\). 


Reference scale at which the 


Heavy quark scheme: if 


Charm quark mass (in GeV). 


Reference scale at which the charm quark mass is given (in GeV). Used only with 


Ratio between the charm mass scale and the 


Bottom quark mass (in GeV). 


Reference scale at which the bottom quark mass is given (in GeV). Used only with 


Ratio between the bottom mass scale and the 


Top quark mass (in GeV). 


Reference scale at which the top quark mass is given (in GeV). Used only with 


Ratio between the top mass scale and the 


If 


If 
Operator Runcard
The operator runcard defines the numerical setup and the requested operators.
The benchmark settings are available at ekomark.data.operators
.
Name 
Type 
description 



xgrid at which the EKO is computed. 


target grid at which the EKO is computed (in GeV). 

If 


Polynomial degree of the interpolating function. 


If 


If 


Perturbative expansion order of unitary evolution matrix.
Needed only for 


Number of evolution steps. 


Backward matching inversion method, relevant only for backward evolution in VFNS. 


Number of cores used during the integration. 
Output
The eko output is represented by the class Output
.
An instance of this class is a dict
and contains the following keys:
Name 
Type 
Description 


All operators at the requested values of \(Q^2\) represented by the key 


The EKO version 



The input xgrid 


The input list of participating partons listed by their PID. 

If 


Polynomial degree of the interpolating function. 



The target xgrid 


The target list of participating partons listed by their PID 
Since the final EKO is a rank 4tensor we store in the output all the different grids
for each dimension:targetpids,targetgrid,inputpids,inputgrid
.
The Q2grid
values are the actual tensor for the requested \(Q^2\). Each of them contains two keys:
operators
adict
with all evolution kernel operators where the key indicates which distribution is generated by which other one and the value represents the eko in matrix representation  this can either be the plain list representation or the binary representation (as provided bynumpy.ndarray.tobytes()
)errors
adict
with the integration errors associated to the respective operators following the same conventions as theoperator
dictionary
Each element (EKO) is a rank4 tensor with the indices ordered in the following way: EKO[pid_out][x_out][pid_in][x_in]
where pid_out
and x_out
refer to the outgoing PDF and pid_in
and x_in
to the incoming PDF. The ordering of pid_out/pid_in
is determined by the targetpids/inputpids
parameter of the output and the order of x_out/x_in
by targetgrid/inputgrid
.
To further explore how an Output
object looks like
you can follow this tutorial.