The BKM10 formalism as a Python library.
A Python library to help nuclear physicists use the BKM formalism in predicting cross-section, asymmetries, and comparing GPD models.
Available on PyPI. To install, one can run
pip install bkm10You will need Python 3 and pip.
There are three different classes at play in this library: the main one, DifferentialCrossSection; the dataclass, BKM10Inputs; and another dataclass called CFFInputs. DifferentialCrossSection requires a million different inputs.
What we are numerically calculating is a four-fold (meaning, we need to do four integrals) cross section. We need to integrate over four variables:
The BKM10 formalism uses
In order to evaluate the cross-section, you need to specify four numbers that correspond to the kinematic settings (experimental kinematics). These numbers are: BKM10Inputs to specify these kinematic settings.
Note: the library currently does not handle exceptions where the provided kinematic inputs correspond to illegal mathematical operations, like division by
There are four CFFs involved in the computation: CFFInputs to specify the values of these CFFs. (Note: they are of complex type!)
- Provide the opportunity to compute the differential cross-section using the BKM02 formalism.
- Integrate the functionality to actually do the integral over a given GPD model to obtain the CFFs, and then compute the differential cross-section.
BKM: names of three authors: A.V. Belitsky, D. Buller, A. Kirchner,
QCD: "Quantum Chromodynamics"
CFF: "Compton Form Factor"
TMD: "Transverse Momentum Distribution"
GPD: "Generalized Parton Distribution (function)"