2double CLASSNAME::get_partial_width<PseudoscalarHiggs, Gluon, Gluon>(
3 const context_base& context,
4 const typename field_indices<PseudoscalarHiggs>::type& in_idx,
5 const typename field_indices<Gluon>::type& out1_idx,
6 const typename field_indices<Gluon>::type& out2_idx)
8 if (in_idx.at(0) < info::number_of_neutral_goldstones) {
9 throw OutOfBoundsError(
"Error in " + create_process_string<PseudoscalarHiggs,Gluon,Gluon>(in_idx, out1_idx, out2_idx) +
" decay. Decaying particle is a Goldstone.");
12 const auto amp = calculate_amplitude<PseudoscalarHiggs, Gluon, Gluon>(context, in_idx, out1_idx, out2_idx);
13 const double mAh = context.physical_mass<PseudoscalarHiggs>(in_idx);
14 static constexpr double ps {1/(8.*Pi)};
15 static constexpr double ps_symmetry {0.5};
16 static constexpr double color_fact = squared_color_generator<PseudoscalarHiggs, Gluon, Gluon>();
17 const double flux = 0.5/mAh;
19 double result = flux * color_fact * ps * ps_symmetry * amp.square();
24 create_process_string<PseudoscalarHiggs,Gluon,Gluon>(in_idx, out1_idx, out2_idx)
25 +
": Pseudoscalar Higgs too light (less than 5 active quark flavours). Disabling higher-order corrections."
30 const double tau =
Sqr(mAh/(2.*context.mass<UpTypeQuark>({2})));
31 if (
static_cast<int>(flexibledecay_settings.get(FlexibleDecay_settings::include_higher_order_corrections)) && Nf >= 5 && tau < 0.7) {
33 static constexpr int Nf = 5;
34 auto qedqcd_ = qedqcd;
39 const auto indices =
concatenate(std::array<int, 1> {2}, std::array<int, 1> {2}, in_idx);
40 const auto AhGGVertex = Vertex<bar<UpTypeQuark>::type, UpTypeQuark, PseudoscalarHiggs>::evaluate(indices, context);
41 std::complex<double>
const AhGGVertexVal = 0.5*(-AhGGVertex.left() + AhGGVertex.right());
43 const double tau =
Sqr(mAh/(2.*context.mass<UpTypeQuark>({2})));
45 const std::complex<double> A12_A = 2.*
f(tau)/tau;
48 const double Gamma_SM_LO_P = mAh/(18.*
Power3(Pi))*std::norm(alpha_s_5f * AhGGVertexVal*sqrt(tau) * 3./4*A12_A);
50 const double mu = mAh;
51 const double LH = std::log(
Sqr(mu/mAh));
52 const double deltaNLO {
53 97/4. - 7/6.*Nf + (33-2*Nf)/6.*LH
56 const double mt {context.mass<UpTypeQuark>({2})};
57 const double Lt = std::log(
Sqr(mu/mt));
59 const double deltaNNLO {
60 51959/96. - 363/8.*zeta2 - 495/8.*zeta3 + Nf*(-473/8. + 11/2.*zeta2 + 5/4.*zeta3 + Lt) +
Sqr(Nf)*(251/216. - 1/6.*zeta2)
61 + (3405/16. - 73/3*Nf + 7/12.*
Sqr(Nf))*LH
62 + (363/16. - 11/4.*Nf + 1/12.*
Sqr(Nf))*
Sqr(LH)
65 const double alpha_s_red = alpha_s_5f/Pi;
67 double pseudoscalar_corr = 0.0;
68 switch (
static_cast<int>(flexibledecay_settings.get(FlexibleDecay_settings::include_higher_order_corrections))) {
74 pseudoscalar_corr += deltaNNLO*alpha_s_red;
77 pseudoscalar_corr += deltaNLO;
78 pseudoscalar_corr *= alpha_s_red/std::norm(0.5*A12_A);
79 pseudoscalar_corr += 1. -
Sqr(get_alphas(context)/alpha_s_5f);
80 pseudoscalar_corr *= Gamma_SM_LO_P;
83 WARNING(
"Unknow correcion in Phi->gg");
85 result += pseudoscalar_corr;
88 const std::string tag = field_as_string<PseudoscalarHiggs>(in_idx) +
"-" + field_as_string<Gluon>(out1_idx) +
"-" + field_as_string<Gluon>(out2_idx);
90 if (flexibledecay_settings.get(FlexibleDecay_settings::print_effc_block)) {
91 effhiggscouplings_block_input.push_back(
93 fieldPDG<PseudoscalarHiggs>(in_idx), 21, 21,
94 std::sqrt(result/(flux * color_fact * ps * ps_symmetry)/(0.5*
Power4(mAh))),
100 if (flexibledecay_settings.get(FlexibleDecay_settings::call_higgstools) != 0 ||
101 flexibledecay_settings.get(FlexibleDecay_settings::call_lilith) != 0 ||
102 flexibledecay_settings.get(FlexibleDecay_settings::calculate_normalized_effc) != 0
104 neutral_higgs_effc.add_coupling(
105 field_as_string<Ah>(in_idx),
107 std::pair<std::string, double> {tag, std::sqrt(result)},
constexpr Base Power3(Base b) noexcept
std::complex< double > f(double tau) noexcept
unsigned int number_of_active_flavours(softsusy::QedQcd const &qedqcd, double m) noexcept
constexpr std::complex< T > Sqr(const std::complex< T > &a) noexcept
detail::result_of::concatenate< Args... >::type concatenate(Args &&... args)
constexpr Base Power4(Base b) noexcept