From 56a77e48462355b42ae194ff01966c7e9355a65e Mon Sep 17 00:00:00 2001 From: tgiani Date: Fri, 31 May 2024 16:45:11 +0200 Subject: [PATCH] starting ome --- crates/ekore/src/lib.rs | 1 + crates/ekore/src/operator_matrix_elements.rs | 3 +++ .../operator_matrix_elements/unpolarized.rs | 3 +++ .../unpolarized/spacelike.rs | 12 +++++++++ .../unpolarized/spacelike/as1.rs | 25 +++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 crates/ekore/src/operator_matrix_elements.rs create mode 100644 crates/ekore/src/operator_matrix_elements/unpolarized.rs create mode 100644 crates/ekore/src/operator_matrix_elements/unpolarized/spacelike.rs create mode 100644 crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as1.rs diff --git a/crates/ekore/src/lib.rs b/crates/ekore/src/lib.rs index af39644cc..f26ce2a4e 100644 --- a/crates/ekore/src/lib.rs +++ b/crates/ekore/src/lib.rs @@ -7,4 +7,5 @@ pub mod anomalous_dimensions; pub mod bib; mod constants; pub mod harmonics; +pub mod operator_matrix_elements; pub mod util; diff --git a/crates/ekore/src/operator_matrix_elements.rs b/crates/ekore/src/operator_matrix_elements.rs new file mode 100644 index 000000000..cd27db57d --- /dev/null +++ b/crates/ekore/src/operator_matrix_elements.rs @@ -0,0 +1,3 @@ +//! |OME|. + +pub mod unpolarized; diff --git a/crates/ekore/src/operator_matrix_elements/unpolarized.rs b/crates/ekore/src/operator_matrix_elements/unpolarized.rs new file mode 100644 index 000000000..a00885eec --- /dev/null +++ b/crates/ekore/src/operator_matrix_elements/unpolarized.rs @@ -0,0 +1,3 @@ +//! The unpolarized |OME| for space-like and time-like kinematics. + +pub mod spacelike; diff --git a/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike.rs b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike.rs new file mode 100644 index 000000000..86587fd77 --- /dev/null +++ b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike.rs @@ -0,0 +1,12 @@ +//! The unpolarized, space-like |OME| at various couplings power. +pub mod as1; + +// Compute the tower of the singlet |OME|. +// pub fn A_singlet() -> Vec>{ + +// } + +// Compute the tower of the non-singlet |OME|. +// pub fn A_non_singlet() -> Vec>{ + +// } diff --git a/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as1.rs b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as1.rs new file mode 100644 index 000000000..58e39513c --- /dev/null +++ b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as1.rs @@ -0,0 +1,25 @@ +//! NLO QCD + +use num::complex::Complex; + +use crate::constants::{CA, CF, TR}; +use crate::harmonics::cache::{Cache, K}; + +/// Compute heavy-heavy |OME| :math:`A_{HH}^{(1)}` +/// +/// Defined in Eq. () of . +pub fn A_hh(c: &mut Cache, _nf: u8, L: f64) -> Complex { + let N = c.n; + let S1m = c.get(K::S1) - 1. / N; + let S2m = c.get(K::S2) - 1. / N.powu(2); + let ahh_l = (2. + N - 3. * N.powu(2)) / (N * (1. + N)) + 4. * S1m; + let ahh = 2. + * (2. + 5. * N + N.powu(2) + - 6. * N.powu(3) + - 2. * N.powu(4) + - 2. * N * (-1. - 2. * N + N.powu(3)) * S1m) + / (N * (1. + N)).powu(2) + + 4. * (S1m.powu(2) + S2m); + + -CF * (ahh_l * L + ahh) +}