Source code for ekore.operator_matrix_elements.polarized.space_like.as1

r"""The |NLO| |OME| in the polarized case for the matching conditions in the
|VFNS|.

Heavy quark contribution for intrinsic evolution are not considered for the polarized case.
The matching conditions for the |VFNS| at :math:`\mu_F^2 \neq m_H^2` are provided in :cite:`Bierenbaum:2022biv`.
In the paper, the fraction :math:`\mu_F^2 / m_H^2` inside the log is inverted, yielding an additional factor of (-1) wherever ``L`` has an odd power.
Additionally, a different convention for the anomalous dimensions is used, yielding a factor 2 in the |OME|'s wherever they are present.
The anomalous dimensions and beta function with the addition 'hat' have the form :math:`\hat\gamma = \gamma^{(nf+1)} - \gamma^{(nf)}`.
"""

import numba as nb
import numpy as np

from ....anomalous_dimensions.polarized.space_like.as1 import gamma_qg as gamma0_qg
from ...unpolarized.space_like.as1 import A_gg as A_gg_unpol


[docs] @nb.njit(cache=True) def A_hg(n, L): r"""Compute the |NLO| heavy-gluon |OME| :math:`A_{Hg}^{S,(1)}`. Implements :eqref:`104` of :cite:`Bierenbaum:2022biv`. Parameters ---------- n : complex Mellin moment L : float :math:`\ln(\mu_F^2 / m_h^2)` nf : int Number of active flavors Returns ------- complex |NLO| heavy-gluon |OME| :math:`A_{Hg}^{S,(1)}` """ gamma0_qghat = 2 * gamma0_qg(n, nf=1) return (1 / 2) * gamma0_qghat * (-L)
[docs] @nb.njit(cache=True) def A_gg(L): r"""Compute the |NLO| gluon-gluon |OME| :math:`A_{gg,H}^{S,(1)}`. Implements :eqref:`186` of :cite:`Bierenbaum:2022biv`. Parameters ---------- L : float :math:`\ln(\mu_F^2 / m_h^2)` Returns ------- complex |NLO| gluon-gluon |OME| :math:`A_{gg,H}^{S,(1)}` """ return A_gg_unpol(L)
[docs] @nb.njit(cache=True) def A_singlet(n, L): r"""Compute the |NLO| singlet |OME|. .. math:: A^{S,(1)} = \left(\begin{array}{cc} A_{gg,H}^{S,(1)} & 0 & 0\\ 0 & 0 & 0 \\ A_{hg}^{S,(1)} & 0 & 0 \end{array}\right) Parameters ---------- n : complex Mellin moment L : float :math:`\ln(\mu_F^2 / m_h^2)` Returns ------- numpy.ndarray |NLO| singlet |OME| :math:`A^{S,(1)}` """ A_S = np.array( [ [A_gg(L), 0.0 + 0j, 0.0 + 0j], [0 + 0j, 0 + 0j, 0 + 0j], [A_hg(n, L), 0.0 + 0j, 0.0 + 0j], ], np.complex_, ) return A_S