diff --git a/src/yadism/coefficient_functions/coupling_constants.py b/src/yadism/coefficient_functions/coupling_constants.py index 513066c8..9ba83677 100644 --- a/src/yadism/coefficient_functions/coupling_constants.py +++ b/src/yadism/coefficient_functions/coupling_constants.py @@ -249,7 +249,7 @@ def get_weight(self, pid, Q2, quark_coupling_type, cc_mask=None): * self.propagator_factor("phph", Q2) * self.partonic_coupling("phph", pid, quark_coupling_type) ) - # pure photon exchane + # pure photon exchange if self.obs_config["process"] == "EM": return w_phph # allow Z to be mixed in diff --git a/src/yadism/coefficient_functions/light/__init__.py b/src/yadism/coefficient_functions/light/__init__.py index a334bed0..8241cdcd 100644 --- a/src/yadism/coefficient_functions/light/__init__.py +++ b/src/yadism/coefficient_functions/light/__init__.py @@ -14,21 +14,22 @@ * Check the theory reference for details on :doc:`../theory/scale-variations` - * At |N3LO| that the source files in fortran follows :cite:`vogt-f3cc` notation + * The source files (available in fortran) follow the notations in :cite:`vogt-f3cc` where the odd-N moments are called minus even if they correspond to :math:`\nu + \bar{\nu}`. This convention is changed in :cite:`Davies:2016ruz` where the complete |N3LO| CC results are presented for the first time. Referred equations are not always in agreement with the code conventions. - The code follows the notation: - F3: - * odd N: :math:`\nu + \bar{\nu}`, :math:`c_{ns,-}` - * even N: :math:`\nu - \bar{\nu}`, :math:`c_{ns,+} = \delta + c_{ns,-}` - * In :math:`c_{ns,+}` the term fl02 has to be turned off for CC and NC + The code follows the notation: - F2, FL: - * odd N: :math:`\nu - \bar{\nu}`, :math:`c_{ns,-} = - \delta + c_{ns,+}` - * even N: :math:`\nu + \bar{\nu}`, :math:`c_{ns,+}` - * The term fl11 has to be turned off for CC. + F3: + * odd N: :math:`\nu + \bar{\nu}`, :math:`c_{ns,-}` common for CC and NC (up to N3LO). + * even N: :math:`\nu - \bar{\nu}`, :math:`c_{ns,+} = \delta + c_{ns,-}` only for CC. + * In :math:`c_{ns,+}` the term fl02 has to be turned off for CC. + + F2, FL: + * odd N: :math:`\nu - \bar{\nu}`, :math:`c_{ns,-} = - \delta + c_{ns,+}` only for CC. + * even N: :math:`\nu + \bar{\nu}`, :math:`c_{ns,+}` common for CC and NC (up to N3LO). + * The term fl11 has to be turned off for CC. """ diff --git a/src/yadism/coefficient_functions/light/f3_cc.py b/src/yadism/coefficient_functions/light/f3_cc.py index 95322af4..50799bcc 100644 --- a/src/yadism/coefficient_functions/light/f3_cc.py +++ b/src/yadism/coefficient_functions/light/f3_cc.py @@ -1,8 +1,9 @@ """ -Note that at |N3LO| the source files in fortran follow :cite:`vogt-f3cc` notation -where the odd-N moments are called minus even if they correspond to :math:`\nu + \bar{\nu}`. +Note that the source files (given in fortran) follow the notations in :cite:`vogt-f3cc` +where the odd-N moments are called minus even if they correspond to :math:`\nu + \bar{\nu}`, +while even-N moments are called plus even if they correspond to :math:`\nu - \bar{\nu}`. This convention is changed in :cite:`Davies:2016ruz` where the |N3LO| CC results are presented -for the first time. Referred equations are not always in agreement with the code conventions. +for the first time. """ from .. import partonic_channel as pc @@ -11,33 +12,26 @@ class NonSingletOdd(f3_nc.NonSinglet): - def NNLO(self): - """ - |ref| implements :eqref:`3.6`, :cite:`vogt-f3cc` - or :eqref:`2.8`, :cite:`Davies:2016ruz`. - """ + pass + +class NonSingletEven(f3_nc.NonSinglet): + def NNLO(self): + """|ref| implements the sum between :eqref:`2.8` and :eqref:`3.5`, :cite:`Davies:2016ruz`.""" return RSL( - nnlo.xc3ns2p.c3nm2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3nm2c, [self.nf] + nnlo.xc3ns2p.c3np2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3np2c, [self.nf] ) def N3LO(self): - """ - |ref| implements :eqref:`3.7`, :cite:`vogt-f3cc` or :eqref:`2.11`, :cite:`Davies:2016ruz`. - """ - + """|ref| implements the sum between :eqref:`2.11` and :eqref:`3.8`, :cite:`Davies:2016ruz`.""" return RSL( - n3lo.xc3ns3p.c3nm3a, + n3lo.xc3ns3p.c3np3a, n3lo.xc3ns3p.c3ns3b, - n3lo.xc3ns3p.c3nm3c, - [self.nf, True], + n3lo.xc3ns3p.c3np3c, + [self.nf, False], ) -class NonSingletEven(f3_nc.NonSinglet): - pass - - class Gluon(pc.EmptyPartonicChannel): pass diff --git a/src/yadism/coefficient_functions/light/f3_nc.py b/src/yadism/coefficient_functions/light/f3_nc.py index ce69bcb5..1b0175a9 100644 --- a/src/yadism/coefficient_functions/light/f3_nc.py +++ b/src/yadism/coefficient_functions/light/f3_nc.py @@ -1,6 +1,4 @@ -""" -See :mod:`f3_cc` docstring for the name conventions. -""" +"""See :mod:`f3_cc` docstring for the name conventions.""" from .. import partonic_channel as pc from ..partonic_channel import RSL @@ -10,34 +8,26 @@ class NonSinglet(f2_nc.NonSinglet): @staticmethod def NLO(): - """ - |ref| implements :eqref:`155`, :cite:`moch-f3nc`. - """ + """|ref| implements :eqref:`155`, :cite:`moch-f3nc`.""" return RSL.from_distr_coeffs( nlo.f3.ns_reg, (nlo.f2.ns_delta, nlo.f2.ns_omx, nlo.f2.ns_logomx) ) def NNLO(self): - """ - |ref| implements the sum between :eqref:`2.8` and :eqref:`3.5`, :cite:`Davies:2016ruz` - or :eqref:`208`, :cite:`moch-f3nc`. - """ + """|ref| implements :eqref:`3.6` :cite:`vogt-f3cc`, or :eqref:`208`, :cite:`moch-f3nc`, or :eqref:`2.8` :cite:`Davies:2016ruz`.""" return RSL( - nnlo.xc3ns2p.c3np2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3np2c, [self.nf] + nnlo.xc3ns2p.c3nm2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3nm2c, [self.nf] ) def N3LO(self): - """ - |ref| implements the sum between :eqref:`2.11` and :eqref:`3.8`, :cite:`Davies:2016ruz`. - """ - + """|ref| implements :eqref:`3.7` :cite:`vogt-f3cc`, or :eqref:`2.11` :cite:`Davies:2016ruz`.""" return RSL( - n3lo.xc3ns3p.c3np3a, + n3lo.xc3ns3p.c3nm3a, n3lo.xc3ns3p.c3ns3b, - n3lo.xc3ns3p.c3np3c, - [self.nf, False], + n3lo.xc3ns3p.c3nm3c, + [self.nf, True], ) diff --git a/src/yadism/coefficient_functions/light/g1_nc.py b/src/yadism/coefficient_functions/light/g1_nc.py index 71647186..7bea7ff7 100644 --- a/src/yadism/coefficient_functions/light/g1_nc.py +++ b/src/yadism/coefficient_functions/light/g1_nc.py @@ -35,7 +35,7 @@ def NNLO(self): """ return RSL( - nnlo.xc3ns2p.c3np2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3np2c, [self.nf] + nnlo.xc3ns2p.c3nm2a, nnlo.xc3ns2p.c3ns2b, nnlo.xc3ns2p.c3nm2c, [self.nf] ) diff --git a/src/yadism/coefficient_functions/light/n3lo/xc3ns3p.py b/src/yadism/coefficient_functions/light/n3lo/xc3ns3p.py index 1f702d3a..467f4591 100644 --- a/src/yadism/coefficient_functions/light/n3lo/xc3ns3p.py +++ b/src/yadism/coefficient_functions/light/n3lo/xc3ns3p.py @@ -152,6 +152,7 @@ def c3nm3c(y, args): @nb.njit("f8(f8,f8[:])", cache=True) def c3np3a(y, args): + # Here we need to remove the fl02 diagrams return c3nm3a(y, args) + c3q3dfp(y, args)