We use yaml runcards for piping input and output files.
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 </development/Benchmarks>
we do provide some default settings.
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 |
---|---|---|
PTO |
:pyint |
perturbation theory order: 0 = , 1 = , 2 = , 3 = . |
ModEv |
:pystr |
Evolution method. Possible options are: iterate-exact abbreviated with EXA , decompose-exact , perturbative-exact , iterate-expanded abbreviated with EXP , decompose-expanded , perturbative-expanded , truncated abbreviated with TRN , ordered-truncated . |
XIF |
:pyfloat |
Factorization to renormalization scale ratio. 1 means no scale variation. |
ModSV |
:pystr |
Scale variation method, used only if XIF!=1 . Possible options are: expanded or exponentiated . |
Q0 |
:pyfloat |
Initial evolution scale (in GeV). |
nf0 |
:pyint or :pyNone |
Number of flavors active ant the Q0 scale. If not provided it is inferred from the heavy quark threshold scales. |
MaxNfPdf |
:pyint |
Maximum number of flavors in the evolution. |
alphas |
:pyfloat |
Reference value of the strong coupling αs (Note that we have to use αs here, instead of as for legacy reasons). |
Qref |
:pyfloat |
Reference scale at which the alphas value is given (in GeV). |
nfref |
:pyint or :pyNone |
Number of flavors active at the Qref scale. If not provided it is inferred from the heavy quark threshold scales. |
MaxNfAs |
:pyint |
Maximum number of flavors in the strong coupling evolution. |
QED |
:pyint |
If 1 include evolution. |
alphaqed |
:pyfloat |
Reference value of the electromagnetic coupling αem. |
Qedref |
:pyfloat |
Reference scale at which the alphaqed value is given (in GeV). |
HQ |
:pystr |
Heavy quark scheme: if POLE use heavy quark pole masses, if MSBAR use heavy quark masses. |
mc |
:pyfloat |
Charm quark mass (in GeV). |
Qmc |
:pyfloat |
Reference scale at which the charm quark mass is given (in GeV). Used only with HQ='MSBAR' . |
kcThr |
:pyfloat |
Ratio between the charm mass scale and the nf=4 threshold scale. |
mb |
:pyfloat |
Bottom quark mass (in GeV). |
Qmb |
:pyfloat |
Reference scale at which the bottom quark mass is given (in GeV). Used only with HQ='MSBAR' . |
kbThr |
:pyfloat |
Ratio between the bottom mass scale and the nf=5 threshold scale. |
mt |
:pyfloat |
Top quark mass (in GeV). |
Qmt |
:pyfloat |
Reference scale at which the top quark mass is given (in GeV). Used only with HQ='MSBAR' . |
ktThr |
:pyfloat |
Ratio between the top mass scale and the nf=6 threshold scale. |
IC |
:pybool |
If 1 allow for intrinsic charm evolution. |
IB |
:pybool |
If 1 allow for intrinsic bottom evolution. |
The operator runcard defines the numerical setup and the requested operators. The benchmark settings are available at ekomark.data.operators
.
Name | Type | description |
---|---|---|
interpolation_xgrid |
:pylist(float) |
x-grid at which the is computed. |
mugrid |
:pylist(float) |
target grid at which the is computed (in GeV). |
interpolation_is_log |
:pybool |
If True use logarithmic interpolation. |
interpolation_polynomial_degree |
:pyint |
Polynomial degree of the interpolating function. |
debug_skip_non_singlet |
:pybool |
If True skip the non singlet sector, useful for debug purposes. |
debug_skip_singlet |
:pybool |
If True skip the singlet sector, useful for debug purposes. |
ev_op_max_order |
:pyint |
Perturbative expansion order of unitary evolution matrix. Needed only for perturbative evolution methods. |
ev_op_iterations |
:pyint |
Number of evolution steps. |
backward_inversion |
:pystr |
Backward matching inversion method, relevant only for backward evolution in . |
n_integration_cores |
:pyint |
Number of cores used during the integration. 0 means use all; -1 all minus 1. |
The eko output is represented by the class ~eko.output.Output
. An instance of this class is a :pydict
and contains the following keys:
Name | Type | Description |
---|---|---|
Q2grid |
:pydict |
All operators at the requested values of Q2 represented by the key |
eko_version |
:pyfloat |
The version |
inputgrid |
:pylist(float) |
The input x-grid |
inputpids |
:pylist(int) |
The input list of participating partons listed by their . |
interpolation_is_log |
:pybool |
If True use logarithmic interpolation. |
interpolation_polynomial_degree |
:pyint |
Polynomial degree of the interpolating function. |
targetgrid |
:pylist(float) |
The target x-grid |
targetpids |
:pylist(int) |
The target list of participating partons listed by their |
Since the final is a rank 4-tensor 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 Q2. Each of them contains two keys:
operators
a :pydict
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 by :pynumpy.ndarray.tobytes
)errors
a :pydict
with the integration errors associated to the respective operators following the same conventions as theoperator
dictionary
Each element () is a rank-4 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 and pid_in
and x_in
to the incoming . 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 ~eko.output.Output
object looks like you can follow this tutorial </overview/tutorials/output>
.