from ..partonic_channel import RSL
from . import n3lo, nlo, nnlo
from . import partonic_channel as pc
[docs]
class NonSinglet(pc.LightBase):
[docs]
@staticmethod
def LO():
"""
|ref| implements :eqref:`4.2`, :cite:`vogt-f2nc`.
"""
# leading order is just a delta function
return RSL.from_delta(1.0)
[docs]
@staticmethod
def NLO():
"""
|ref| implements :eqref:`4.3`, :cite:`vogt-f2nc`.
"""
return RSL.from_distr_coeffs(
nlo.f2.ns_reg, (nlo.f2.ns_delta, nlo.f2.ns_omx, nlo.f2.ns_logomx)
)
[docs]
def NNLO(self):
"""
|ref| implements :eqref:`4.8`, :cite:`vogt-f2nc`.
"""
return RSL(
nnlo.xc2ns2p.c2nn2a, nnlo.xc2ns2p.c2ns2b, nnlo.xc2ns2p.c2nn2c, [self.nf]
)
[docs]
def N3LO(self):
"""
|ref| implements the flavor class :math:`fl_{2}` of :eqref:`4.11`, :cite:`vogt-f2nc`.
"""
return RSL(
n3lo.xc2ns3p.c2np3a_fl2,
n3lo.xc2ns3p.c2ns3b_fl2,
n3lo.xc2ns3p.c2np3c_fl2,
[self.nf],
)
[docs]
class Gluon(pc.LightBase):
[docs]
def NLO(self):
r"""
|ref| implements :eqref:`4.4`, :cite:`vogt-f2nc`.
Note
----
2 * n_f is coming from momentum sum
rule q_i -> {q_i, g} but g -> {g, q_i, \bar{q_i} forall i}, so
the 2 * n_f is needed to compensate for all the number of flavours
plus antiflavours in which the gluon can go.
"""
return RSL(nlo.f2.gluon_reg, args=[self.nf])
[docs]
def NNLO(self):
"""
|ref| implements :eqref:`4.10`, :cite:`vogt-f2nc`.
"""
return RSL(nnlo.xc2sg2p.c2g2a, loc=nnlo.xc2sg2p.c2g2c, args=[self.nf])
[docs]
def N3LO(self):
"""
|ref| implements the flavor class :math:`fl_{2}` of :eqref:`4.13`, :cite:`vogt-f2nc`.
"""
return RSL(n3lo.xc2sg3p.c2g3a_fl2, loc=n3lo.xc2sg3p.c2g3c_fl2, args=[self.nf])
[docs]
class Singlet(pc.LightBase):
[docs]
def NNLO(self):
"""
|ref| implements :eqref:`4.9`, :cite:`vogt-f2nc`.
"""
return RSL(nnlo.xc2sg2p.c2s2a, args=[self.nf])
[docs]
def N3LO(self):
"""
|ref| implements the flavor class :math:`fl_{2}` of :eqref:`4.12`, :cite:`vogt-f2nc`.
"""
return RSL(
n3lo.xc2sg3p.c2s3a_fl2,
args=[self.nf],
)
[docs]
class GluonFL11(pc.LightBase):
"""Gluon flavor class :math:`fl_{11}`."""
[docs]
def N3LO(self):
"""
|ref| implements the flavor class :math:`fl_{11}` of :eqref:`4.13`, :cite:`vogt-f2nc`.
"""
return RSL(n3lo.xc2sg3p.c2g3a_fl11, args=[self.nf])
[docs]
class QuarkFL11(pc.LightBase):
"""Quark flavor class :math:`fl_{11}`."""
[docs]
def N3LO(self):
"""
|ref| implements the flavor class :math:`fl_{11}` of :eqref:`4.12`, :cite:`vogt-f2nc`.
"""
return RSL(
n3lo.xc2sg3p.c2s3a_fl11,
loc=n3lo.xc2sg3p.c2s3c_fl11,
args=[self.nf],
)