Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correct F3 and g1 in NC at NNLO and N3LO #278

Merged
merged 5 commits into from
Apr 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/yadism/coefficient_functions/coupling_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
21 changes: 11 additions & 10 deletions src/yadism/coefficient_functions/light/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

"""

Expand Down
34 changes: 14 additions & 20 deletions src/yadism/coefficient_functions/light/f3_cc.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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

Expand Down
26 changes: 8 additions & 18 deletions src/yadism/coefficient_functions/light/f3_nc.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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],
)


Expand Down
2 changes: 1 addition & 1 deletion src/yadism/coefficient_functions/light/g1_nc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]
)


Expand Down
1 change: 1 addition & 0 deletions src/yadism/coefficient_functions/light/n3lo/xc3ns3p.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
giacomomagni marked this conversation as resolved.
Show resolved Hide resolved
return c3nm3a(y, args) + c3q3dfp(y, args)


Expand Down
Loading