From 678efa9e4490da2b56a977dbea5896fd7eca1801 Mon Sep 17 00:00:00 2001 From: tgiani Date: Thu, 5 Sep 2024 15:44:23 +0200 Subject: [PATCH] working on as2 --- .../unpolarized/spacelike/as2.rs | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as2.rs b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as2.rs index 7fee55609..ae46e50ff 100644 --- a/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as2.rs +++ b/crates/ekore/src/operator_matrix_elements/unpolarized/spacelike/as2.rs @@ -79,3 +79,102 @@ pub fn A_hq_ps(c: &mut Cache, _nf: u8, L: f64) -> Complex { CF * TR * (a_hq_l2 * L.pow(2) + a_hq_l1 * L + a_hq_l0) } + +/// |NNLO| heavy-gluon |OME| +/// It is given in Eq.() of +pub fn A_hg(c: &mut Cache, _nf: u8, L: f64) -> Complex { + let N = c.n(); + let S1 = c.get(K::S1); + let S2 = c.get(K::S2); + let Sm2e = c.get(K::Sm2e); + let S3 = c.get(K::S3); + let Sm21e = c.get(K::Sm21e); + let Sm3e = c.get(K::Sm3e); + let S1m = S1 - 1. / N; + let S2m = S2 - 1. / N.powu(2); + + #[rustfmt::skip] + let a_hg_l0 = + -( + 3084. + + 192. / N.powu(4) + + 1056. / N.powu(3) + + 2496. / N.powu(2) + + 2928. / N + + 2970. * N + + 1782. * N.powu(2) + + 6. * N.powu(3) + - 1194. * N.powu(4) + - 1152. * N.powu(5) + - 516. * N.powu(6) + - 120. * N.powu(7) + - 12. * N.powu(8) + ) + / ((N - 1.) * ((1. + N) * (2. + N)).powu(4)) + + ( + 764. + - 16. / N.powu(4) + - 80. / N.powu(3) + - 100. / N.powu(2) + + 3. * 72. / N + + 208. * N.powu(3) + + 3. * (288. * N + 176. * N.powu(2) + 16. * N.powu(4)) + ) + / (3. * (1. + N).powu(4) * (2. + N)) + + 12. * Sm3e * (2. + N + N.powu(2)) / (N * (1. + N) * (2. + N)) + - 24. * Sm2e * (4. + N - N.powu(2)) / ((1. + N) * (2. + N)).powu(2) + - S1 + * (48. / N + 432. + 564. * N + 324. * N.powu(2) + 138. * N.powu(3) + 48. * N.powu(4) + 6. * N.powu(5)) + / ((1. + N) * (2. + N)).powu(3) + + S1 + * (-160. - 32. / N.powu(2) - 80. / N + 8. * N * (N - 1.)) + / (3. * (1. + N).powu(2) * (2. + N)) + - 6. * S1.powu(2) * (11. + 8. * N + N.powu(2) + 2. / N) / ((1. + N) * (2. + N)).powu(2) + + 8. * S1.powu(2) * (2. / (3. * N) + 1.) / (N * (2. + N)) + - 2. + * S2 + * (63. + 48. / N.powu(2) + 54. / N + 39. * N + 63. * N.powu(2) + 21. * N.powu(3)) + / ((N - 1.) * (1. + N).powu(2) * (2. + N).powu(2)) + + 8. * S2 * (17. - 2. / N.powu(2) - 5. / N + N * (17. + N)) / (3. * (1. + N).powu(2) * (2. + N)) + + (1. + 2. / N + N) + / ((1. + N) * (2. + N)) + * (24. * Sm2e * S1 + 10. * S1.powu(3) / 9. + 46. * S1 * S2 / 3. + 176. * S3 / 9. - 24. * Sm21e); + + #[rustfmt::skip] + let mut a_hg_l1 = + 2. + * ( + 640. + 2192. * N + + 2072. * N.powu(2) + + 868. * N.powu(3) + + 518. * N.powu(4) + + 736. * N.powu(5) + + 806. * N.powu(6) + + 542. * N.powu(7) + + 228. * N.powu(8) + + 38. * N.powu(9) + ) + / (3. * (N * (N + 1.) * (N + 2.)).powu(3) * (N - 1.)); + + a_hg_l1 -= 2. + * (N * (N.powu(2) - 1.) + * (N + 2.) + * (4. * (36. + N * (88. + N * (33. + N * (8. + 9. * N)))) * S1m + + N * (N + 1.) + * (N + 2.) + * (2. + N + N.powu(2)) + * (10. * S1m.powu(2) + 18. * (2. * Sm2e + ZETA2) + 26. * S2m))) + / (3. * (N * (N + 1.) * (N + 2.)).powu(3) * (N - 1.)); + + a_hg_l1 += 12. * ZETA2 * (-2. + N + N.powu(3)) / (N * (N.powu(2) - 1.) * (N + 2.)); + + #[rustfmt::skip] + let a_hg_l2 = ( + 4. + * (2. + N + N.powu(2)) + * (2. * (-11. + N + N.powu(2)) * (1. + N + N.powu(2)) / (N - 1.)) + / (3. * (N * (N + 1.) * (N + 2.)).powu(2)) + ) + 20. * (2. + N + N.powu(2)) * S1 / (3. * N * (N + 1.) * (N + 2.)); + + a_hg_l2 * L.pow(2) + a_hg_l1 * L + a_hg_l0 +}