Skip to content

Commit

Permalink
rust: Iterate as1aem1
Browse files Browse the repository at this point in the history
  • Loading branch information
felixhekhorn committed Jan 13, 2025
1 parent 5013a8f commit 064c31c
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 36 deletions.
14 changes: 14 additions & 0 deletions crates/ekore/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,17 @@ @phdthesis{Carrazza2015dea
school = "Milan U.",
year = "2015"
}
@article{deFlorian2015ujt,
author = "de Florian, Daniel and Sborlini, Germ\'an F. R. and Rodrigo, Germ\'an",
title = "{QED corrections to the Altarelli\textendash{}Parisi splitting functions}",
eprint = "1512.00612",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
reportNumber = "ICAS-03-15, IFIC-15-81",
doi = "10.1140/epjc/s10052-016-4131-8",
journal = "Eur. Phys. J. C",
volume = "76",
number = "5",
pages = "282",
year = "2016"
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ use crate::harmonics::cache::Cache;

use crate::anomalous_dimensions::unpolarized::spacelike::as1;

/// Compute the leading-order photon-quark anomalous dimension.
/// Compute the photon-quark anomalous dimension.
///
/// Implements Eq. (2.5) of [\[Carrazza:2015dea\]][crate::bib::Carrazza2015dea].
pub fn gamma_phq(c: &mut Cache, nf: u8) -> Complex<f64> {
as1::gamma_gq(c, nf) / CF
}

/// Compute the leading-order quark-photon anomalous dimension.
/// Compute the quark-photon anomalous dimension.
///
/// Implements Eq. (2.5) of [\[Carrazza:2015dea\]][crate::bib::Carrazza2015dea].
/// However, we are adding the $N_C$ and the $2n_f$ factors from $\theta$ inside the
Expand All @@ -23,22 +23,22 @@ pub fn gamma_qph(c: &mut Cache, nf: u8) -> Complex<f64> {
as1::gamma_qg(c, nf) / TR * (NC as f64)
}

/// Compute the leading-order photon-photon anomalous dimension.
/// Compute the photon-photon anomalous dimension.
///
/// Implements Eq. (2.5) of [\[Carrazza:2015dea\]][crate::bib::Carrazza2015dea].
pub fn gamma_phph(_c: &mut Cache, nf: u8) -> Complex<f64> {
let cc = ChargeCombinations { nf };
(4.0 / 3.0 * (NC as f64) * ((cc.nu() as f64) * EU2 + (cc.nd() as f64) * ED2)).into()
}

/// Compute the leading-order non-singlet |QED| anomalous dimension.
/// Compute the non-singlet anomalous dimension.
///
/// Implements Eq. (2.5) of [\[Carrazza:2015dea\]][crate::bib::Carrazza2015dea].
pub fn gamma_ns(c: &mut Cache, nf: u8) -> Complex<f64> {
as1::gamma_ns(c, nf) / CF
}

/// Compute the leading-order singlet |QED| anomalous dimension matrix.
/// Compute the singlet anomalous dimension matrix.
pub fn gamma_singlet(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
let cc = ChargeCombinations { nf };

Expand Down Expand Up @@ -74,7 +74,7 @@ pub fn gamma_singlet(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
]
}

/// Compute the leading-order valence |QED| anomalous dimension matrix.
/// Compute the valence anomalous dimension matrix.
pub fn gamma_valence(c: &mut Cache, nf: u8) -> [[Complex<f64>; 2]; 2] {
let cc = ChargeCombinations { nf };

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ pub fn gamma_singlet(c: &mut Cache, nf: u8) -> [[Complex<f64>; 2]; 2] {
]
}

/// Compute the leading-order singlet anomalous dimension matrix
/// Compute the singlet anomalous dimension matrix
/// for the unified evolution basis.
pub fn gamma_singlet_qed(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
[
Expand Down Expand Up @@ -84,7 +84,7 @@ pub fn gamma_singlet_qed(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
]
}

/// Compute the leading-order valence anomalous dimension matrix
/// Compute the valence anomalous dimension matrix
/// for the unified evolution basis.
pub fn gamma_valence_qed(c: &mut Cache, nf: u8) -> [[Complex<f64>; 2]; 2] {
[
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
//! The $O(a_s^1a_{em}^1)$ Altarelli-Parisi splitting kernels.
//! |LO| |QED| x |LO| |QCD|.
use crate::cmplx;
use num::complex::Complex;

use crate::constants::{ChargeCombinations, CA, CF, ED2, EU2, NC, TR, ZETA2, ZETA3};
use crate::harmonics::cache::{Cache, K};

/// Compute the $O(a_s^1a_{em}^1)$ photon-quark anomalous dimension.
/// Compute the photon-quark anomalous dimension.
///
/// Implements Eq. (36) of
/// Implements Eq. (36) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_phq(c: &mut Cache, _nf: u8) -> Complex<f64> {
let N = c.n();
let S1 = c.get(K::S1);
Expand Down Expand Up @@ -37,7 +37,7 @@ pub fn gamma_phq(c: &mut Cache, _nf: u8) -> Complex<f64> {
CF * (tmp_const + tmp_S1 * S1 + tmp_S12 * S1.powu(2) + tmp_S2 * S2)
}

/// Compute the $O(a_s^1a_{em}^1)$ quark-photon anomalous dimension.
/// Compute the quark-photon anomalous dimension.
///
/// Implements Eq. (26) of
pub fn gamma_qph(c: &mut Cache, nf: u8) -> Complex<f64> {
Expand All @@ -63,40 +63,40 @@ pub fn gamma_qph(c: &mut Cache, nf: u8) -> Complex<f64> {
2.0 * (nf as f64) * CA * CF * (tmp_const + tmp_S1 * S1 + tmp_S12 * S1.powu(2) + tmp_S2 * S2)
}

/// Compute the $O(a_s^1a_{em}^1)$ gluon-photon anomalous dimension.
/// Compute the gluon-photon anomalous dimension.
///
/// Implements Eq. (27) of
/// Implements Eq. (27) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_gph(c: &mut Cache, _nf: u8) -> Complex<f64> {
let N = c.n();
CF * CA
* (8.0 * (-4.0 + N * (-4.0 + N * (-5.0 + N * (-10.0 + N + 2.0 * N.powu(2) * (2.0 + N))))))
/ (N.powu(3) * (1.0 + N).powu(3) * (-2.0 + N + N.powu(2)))
}

/// Compute the $O(a_s^1a_{em}^1)$ photon-gluon anomalous dimension.
/// Compute the photon-gluon anomalous dimension.
///
/// Implements Eq. (30) of
/// Implements Eq. (30) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_phg(c: &mut Cache, nf: u8) -> Complex<f64> {
TR / CF / CA * (NC as f64) * gamma_gph(c, nf)
}

/// Compute the $O(a_s^1a_{em}^1)$ quark-gluon singlet anomalous dimension.
/// Compute the quark-gluon singlet anomalous dimension.
///
/// Implements Eq. (29) of
/// Implements Eq. (29) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_qg(c: &mut Cache, nf: u8) -> Complex<f64> {
TR / CF / CA * (NC as f64) * gamma_qph(c, nf)
}

/// Compute the $O(a_s^1a_{em}^1)$ gluon-quark singlet anomalous dimension.
/// Compute the gluon-quark singlet anomalous dimension.
///
/// Implements Eq. (35) of
/// Implements Eq. (35) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_gq(c: &mut Cache, nf: u8) -> Complex<f64> {
gamma_phq(c, nf)
}

/// Compute the $O(a_s^1a_{em}^1)$ photon-photon singlet anomalous dimension.
/// Compute the photon-photon singlet anomalous dimension.
///
/// Implements Eq. (28) of
/// Implements Eq. (28) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_phph(_c: &mut Cache, nf: u8) -> Complex<f64> {
let cc = ChargeCombinations { nf };
cmplx!(
Expand All @@ -105,16 +105,16 @@ pub fn gamma_phph(_c: &mut Cache, nf: u8) -> Complex<f64> {
)
}

/// Compute the $O(a_s^1a_{em}^1)$ gluon-gluon singlet anomalous dimension.
/// Compute the gluon-gluon singlet anomalous dimension.
///
/// Implements Eq. (31) of
/// Implements Eq. (31) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_gg(_c: &mut Cache, _nf: u8) -> Complex<f64> {
cmplx!(4.0 * TR * (NC as f64), 0.)
}

/// Compute the $O(a_s^1a_{em}^1)$ singlet-like non singlet anomalous dimension.
/// Compute the singlet-like non-singlet anomalous dimension.
///
/// Implements Eqs. (33-34) of
/// Implements Eqs. (33-34) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_nsp(c: &mut Cache, _nf: u8) -> Complex<f64> {
let N = c.n();
let S1 = c.get(K::S1);
Expand Down Expand Up @@ -144,9 +144,9 @@ pub fn gamma_nsp(c: &mut Cache, _nf: u8) -> Complex<f64> {
CF * result
}

/// Compute the $O(a_s^1a_{em}^1)$ valence-like non singlet anomalous dimension.
/// Compute the valence-like non-singlet anomalous dimension.
///
/// Implements Eqs. (33-34) of
/// Implements Eqs. (33-34) of [\[deFlorian:2015ujt\]][crate::bib::deFlorian2015ujt].
pub fn gamma_nsm(c: &mut Cache, _nf: u8) -> Complex<f64> {
let N = c.n();
let S1 = c.get(K::S1);
Expand Down Expand Up @@ -194,7 +194,7 @@ pub fn gamma_nsm(c: &mut Cache, _nf: u8) -> Complex<f64> {
CF * result
}

/// Compute the $O(a_s^1a_{em}^1)$ singlet sector.
/// Compute the singlet anomalous dimension matrix.
pub fn gamma_singlet(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
let cc = ChargeCombinations { nf };
let e2_tot = nf as f64 * cc.e2avg();
Expand Down Expand Up @@ -227,7 +227,7 @@ pub fn gamma_singlet(c: &mut Cache, nf: u8) -> [[Complex<f64>; 4]; 4] {
]
}

/// Compute the $O(a_s^1a_{em}^1)$ valence sector.
/// Compute the valence anomalous dimension matrix.
pub fn gamma_valence(c: &mut Cache, nf: u8) -> [[Complex<f64>; 2]; 2] {
let cc = ChargeCombinations { nf };
[
Expand Down
14 changes: 13 additions & 1 deletion crates/ekore/src/bib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! List of References (autogenerated on 2025-01-13T14:46:34.886936).
//! List of References (autogenerated on 2025-01-13T14:59:31.519662).
#[allow(non_snake_case)]
/// The Three loop splitting functions in QCD: The Nonsinglet case
Expand Down Expand Up @@ -131,3 +131,15 @@ pub fn Gluck1995yr() {}
///
/// DOI: [10.13130/carrazza-stefano_phd2015-07-06](https:dx.doi.org/10.13130/carrazza-stefano_phd2015-07-06)
pub fn Carrazza2015dea() {}

#[allow(non_snake_case)]
/// QED corrections to the Altarelli-Parisi splitting functions
///
/// de Florian, Daniel and Sborlini, Germán F. R. and Rodrigo, Germán
///
/// Published in: Eur. Phys. J. C 76 (2016), 282
///
/// e-Print: [1512.00612](https://arxiv.org/abs/1512.00612)
///
/// DOI: [10.1140/epjc/s10052-016-4131-8](https:dx.doi.org/10.1140/epjc/s10052-016-4131-8)
pub fn deFlorian2015ujt() {}
16 changes: 11 additions & 5 deletions crates/make_bib.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,15 @@
PHD = """Published as PhD thesis at {school} ({year})"""


def clean_nl(t: str) -> str:
"""Shrink whitespace to one."""
return re.sub("\n\\s+", " ", t)
def sanitize(t: str) -> str:
"""Reformat for HTML."""
# Shrink whitespace to one.
t = re.sub("\n\\s+", " ", t)
# Recover some TeX
t = t.replace(r"\textendash{}", "-").replace(r"\'a", "á")
# Remove curly brackets
t = re.sub(r"^\{(.+)\}$", r"\1", t)
return t


# collect output
Expand All @@ -39,8 +45,8 @@ def clean_nl(t: str) -> str:
bib_database = bibtexparser.parse_string(bib_str)
# iterate on all elements
for el in bib_database.entries:
title = re.sub(r"^\{(.+)\}$", r"\1", clean_nl(el.fields_dict["title"].value))
author = el.fields_dict["author"].value
title = sanitize(el.fields_dict["title"].value)
author = sanitize(el.fields_dict["author"].value)
if el.entry_type == "phdthesis":
publication = PHD.format(
school=el.fields_dict["school"].value,
Expand Down

0 comments on commit 064c31c

Please sign in to comment.