Skip to content

Commit

Permalink
Update N3LO docs
Browse files Browse the repository at this point in the history
  • Loading branch information
felixhekhorn committed May 2, 2024
1 parent 4583ae9 commit 23bd478
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 37 deletions.
55 changes: 27 additions & 28 deletions docs/source/theory/nonsinglet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ An equivalent expression is:

.. math::
C_{ns} \otimes \left(\sum\nolimits_q e_q^2 ~ q_+\right) +
C_{ps} \otimes \left(\sum\nolimits_q \ev{e^2} ~ q_+\right)\\
x^{-1} F = C_{ns} \otimes \left(\sum_q e_q^2 ~ q_+\right) + C_{ps} \otimes \left(\sum_q \ev{e^2} ~ q_+\right)\\
so in `yadism` we are using:

Expand All @@ -69,11 +68,10 @@ Indeed:

.. math::
C_{ns} \otimes q_{ns}^{+} &+ \ev{e^2} (C_{ns} + C_{ps}) \otimes q_s\\
C_{ns} \otimes \left( \sum\nolimits_q (e_q^2 - \ev{e^2}) ~ q_+ \right) &+
\ev{e^2} (C_{ns} + C_{ps}) \otimes \left( \sum\nolimits_q q_+\right) \\
\sum\nolimits_q q_+ \otimes ( C_{ns} (e_q^2 - \ev{e^2}) &+ \ev{e^2} (C_{ns} + C_{ps}) ) )\\
\sum\nolimits_q q_+ \otimes ( C_{ns} e_q^2 &+ \ev{e^2} C_{ps} ) )
x^{-1} F(x) &= C_{ns} \otimes q_{ns}^{+} + \ev{e^2} (C_{ns} + C_{ps}) \otimes q_s\\
&= C_{ns} \otimes \left( \sum_q (e_q^2 - \ev{e^2}) ~ q_+ \right) + \ev{e^2} (C_{ns} + C_{ps}) \otimes \left( \sum_q q_+\right) \\
&= \sum_q q_+ \otimes ( C_{ns} (e_q^2 - \ev{e^2}) + \ev{e^2} (C_{ns} + C_{ps}) ) )\\
&= \sum_q q_+ \otimes ( C_{ns} e_q^2 + \ev{e^2} C_{ps} ) )
Inducing from LO structure functions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -85,9 +83,9 @@ To retrieve the exact definition of :math:`q_{ns}^{+}` in :cite:`vogt-f2nc` we a

.. math::
x^{-1} F_2(x) &= \sum\nolimits_q e_q^2 ~ q_+(x) \\
x^{-1} F_2(x) &= q_{ns}^{+}(x) + \ev{e^2} q_s(x)\\
&= q_{ns}^{+}(x) + \ev{e^2} \sum\nolimits_q q_+(x)
x^{-1} F_2(x) &= \sum_q e_q^2 ~ q_+(x) \\
&= q_{ns}^{+}(x) + \ev{e^2} q_s(x)\\
&= q_{ns}^{+}(x) + \ev{e^2} \sum_q q_+(x)
Where:

Expand Down Expand Up @@ -122,43 +120,45 @@ Then:
Neutral Current
---------------

The case of parity conserving NC structure functions is analogous to EM,
The case of parity conserving |NC| structure functions is analogous to |EM|,
just with different coupling and summing all the electroweak channels.
While for the presence of parity violating terms (for ex. :math:`F_3`)
has a different decompositions:
However, for parity violating structure functions (e.g. :math:`F_3`)
we have a different decompositions:

x F_3 = C_{ns} \otimes q_{ns}^{-} + \ev{e^2} \left(C_q \otimes q_v)
.. math::
x^{-1} F_3 = C_{ns} \otimes q_{ns}^{-} + \ev{e^2} \left(C_q \otimes q_v\right)
with the two quark flavor combinations defined as
where the two quark flavor combinations are defined as

.. math::
q_v & = \sum_q (q - \bar{q}) \\
q_{ns}^{-} &= \sum_q \left(g_q^2 - \ev{g^2}\right) ~ (q - \bar{q})
and :math:`g_q` a suitable electroweak coupling.
As before in Yadism we rotate the coefficients to a new basis.
and :math:`g_q` is a suitable electroweak coupling.
As before in yadism we rotate the coefficients to a new basis.

.. math::
C_{ns} \otimes \left(\sum\nolimits_q e_q^2 ~ q_-\right) +
C_{v} \otimes \left(\sum\nolimits_q \ev{e^2} ~ q_-\right)\\
x^{-1} F_3 = C_{ns} \otimes \left(\sum\nolimits_q e_q^2 ~ q_-\right) +
C_{v} \otimes \left(\sum\nolimits_q \ev{e^2} ~ q_-\right)
with

.. math::
q_- = q - \bar{q}
Note that the gluon can not generate a parity violating term.
Note that neither the gluon nor the flavor singlet can generate a parity violating term.

Charged Current
---------------

CC can be treated in an analogous way, simply:
|CC| can be treated in an analogous way:

- when the incoming quark is *directly* coupling (*non-singlet*) to the EW boson
(so :math:`W_{\pm}`) only the flavor or the anti-flavor may have a non-zero
- when the incoming quark is *directly* coupling (*non-singlet*) to the |EW| boson
(i.e. :math:`W^{\pm}`) only the flavor or the anti-flavor may have a non-zero
coupling, but not both
- when the incoming quark is *indirectly* coupling through a gluon (*singlet*)
nothing change, because the average has to be done on half the objects, but
Expand All @@ -170,10 +170,10 @@ Higher Orders

The decomposition of the quark sector in different partonic channels
has the advantage to facilitate the relations with higher orders
QCD corrections.
|QCD| corrections.

- :math:`C_{ns}` is always the leading contribution as correspond
to diagram in which the incoming flavor is coupling directly to the
- :math:`C_{ns}` is always the leading contribution as it corresponds
to diagrams in which the incoming flavor is coupling directly to the
electroweak boson.
- :math:`C_{g}` is suppressed by :math:`\mathcal{O}(a_s)`
as the gluon need to radiate a quark-antiquark pair before coupling
Expand All @@ -182,8 +182,7 @@ QCD corrections.
:math:`\mathcal{O}(a_s^3)` respectively as they are related to diagrams
where the incoming flavor line is not coupling directly with the electroweak boson.


From N3LO on a new class of diagrams, called :math:`fl_{11}`, can appear for
From |N3LO| on a new class of diagrams, called :math:`fl_{11}`, can appear for
the parity conserving structure functions, both in the quark and gluon sector
:cite:`Larin:1996wd`. In these diagrams the incoming and outgoing bosons are
coupling to different fermion lines (open or in loops) and thus generate
Expand Down
20 changes: 11 additions & 9 deletions src/yadism/coefficient_functions/coupling_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,17 @@ def partonic_coupling(self, mode, pid, quark_coupling_type, cc_mask=None):
raise ValueError(f"Unknown mode: {mode}")

def partonic_coupling_fl11(self, mode, pid, nf, quark_coupling_type):
"""Compute the coupling of the boson to the parton for the flavor class :math:`fl_{11}`.
r"""Compute the coupling of the boson to the parton for the flavor class :math:`fl_{11}`.
This is a generalization of :cite:`Larin:1996wd` (Table 2) for NC.
See also pag. 27. This coupling is given by :
This is a generalization of :cite:`Larin:1996wd` Table 2 (see also pag. 27 there) for |NC|.
The coupling is given by:
.. :math:
W_{q,bb'} = \frac{Tr(Q_b)}{n_f} Q_b'
.. math::
the gluon and pure singlet coupling are then build after summing on all the
W_{q,bb'} = \frac{\text{tr}(Q_b)}{n_f} Q_b'
where the trace refers to flavor space.
The gluon and pure singlet couplings are then build by summing over all the
different electroweak channels.
Parameters
Expand Down Expand Up @@ -223,7 +225,7 @@ def switch_mode(quark, coupling_type):
return g1 * g2

def propagator_factor(self, mode, Q2):
r"""Compute propagator correction to account for different bosons (:math:`\\eta` in PDG).
r"""Compute propagator correction to account for different bosons (:math:`\eta` in PDG).
Parameters
----------
Expand Down Expand Up @@ -329,7 +331,7 @@ def get_weight(self, pid, Q2, quark_coupling_type, cc_mask=None):
raise ValueError(f"Unknown process: {self.obs_config['process']}")

def get_fl11_weight(self, pid, Q2, nf, quark_coupling_type):
"""Same as :func:`get_weight`but now for the NC flavor class :math:`fl_{11}`.
"""Same as :func:`get_weight` but now for the |NC| flavor class :math:`fl_{11}`.
Combine the charges, both on the leptonic side and the hadronic side,
as well as propagator changes and/or corrections.
Expand Down Expand Up @@ -374,7 +376,7 @@ def get_fl11_weight(self, pid, Q2, nf, quark_coupling_type):
return w_phph
# allow Z to be mixed in
if self.obs_config["process"] == "NC":
# photon-Z interference, this class is not symmetric
# photon-Z interference, this class is not symmetric on the partonic side
w_phZ = (
self.leptonic_coupling("phZ", quark_coupling_type)
* self.propagator_factor("phZ", Q2)
Expand Down

0 comments on commit 23bd478

Please sign in to comment.