Source code for eko.quantities.couplings

"""Types and quantities related to theory couplings."""

import dataclasses
import enum

from ..io.dictlike import DictLike
from ..io.types import EvolutionPoint as EPoint
from ..io.types import ReferenceRunning, Scalar

Coupling = Scalar
CouplingRef = ReferenceRunning[Coupling]


[docs] @dataclasses.dataclass class CouplingsInfo(DictLike): """Reference values for coupling constants.""" alphas: Coupling r"""Reference |QCD| coupling :math:`\alpha_s(\mu_R^0)^{(n_f^0)}`. Note ---- We refer to :math:`\alpha_s` here instead of :math:`a_s = \alpha_s/(4\pi)` as we do otherwise. """ alphaem: Coupling r"""Reference |QED| coupling :math:`\alpha_{em}(\mu_R^0)^{(n_f^0)}`.""" ref: EPoint r"""Reference evolution point :math:`(\mu_R^0,n_f^0)`""" em_running: bool = False r"""If set, activates the |QED| running.""" @property def values(self): """Collect only couplings values.""" return (self.alphas, self.alphaem)
# TODO: upgrade the following to StrEnum (requires py>=3.11) with that, it is # possible to replace all non-alias right sides with calls to enum.auto()
[docs] class CouplingEvolutionMethod(enum.Enum): """Beta functions solution method.""" EXACT = "exact" EXPANDED = "expanded"