Code Structure
In this section the structure of the package is discussed in details, from the point of view of the implementation of course, but mainly concerning the overall project and the organization of the many ingredients/features composing this package.
Brief Description
yadism is organized in two different parts:
the physics-related part, that includes a storage of coefficient functions expressions (PartonicChannel), the coupling constants (charges) related to the EW boson coupling (CouplingConstants), and the suitable joining between the two (Kernel)
all these elements are contained inside the coefficient_function subpackage, and they are provided to the outside through Combiner, that recollects all the Kernel relevant for a given calculation
the computational part, that is fully managed by a Runner instance, and is composed of different elements, used for applying all the relevant steps for the requested calculation
Essentially the flow of an execution is the following:
(user initiated) a
Runneris instantiated and it is passed the theory configuration, and the requested observables to compute (together with related configurations)the relevant global service providers are initialized and stored by the
Runner(like the \(\alpha_s\) evolution, or the interpolation dispatcher, or the couplings computer)the requested observables are scanned, and they are assigned to the respective
StructureFunction/CrossSection(acting as manager and caching storage) according to their kind and heavyness (but multiple kinematics will belong to the sameStructureFunction/CrossSection) each kinematic point will correspond to an instance ofEvaluatedStructureFunction/EvaluatedCrossSection(user initiated) output is requested
the request is propagated to the managers, and then to all the required ESF objects
the ESF issues a request to the
Combinerfor the relevantKernelall the
Kernelare numerically convolved with the PDF interpolation polynomialsall the results are collected in an
Outputobject and returned to the user- (user initiated) the
Outputobject might be dumped on disk in one of the available formats
- (user initiated) the