29#include "gm2calc/gm2_1loop.hpp"
30#include "gm2calc/gm2_2loop.hpp"
31#include "gm2calc/gm2_error.hpp"
32#include "gm2calc/gm2_uncertainty.hpp"
33#include "gm2calc/MSSMNoFV_onshell.hpp"
34#include "gm2calc/THDM.hpp"
42double calculate_e(
double alpha) {
43 return std::sqrt(4. *
Pi * alpha);
46gm2calc::MSSMNoFV_onshell setup(
const GM2Calc_MSSMNoFV_data&
data)
48 gm2calc::MSSMNoFV_onshell model;
51 model.set_alpha_MZ(
data.alpha_em_MZ);
52 model.set_alpha_thompson(
data.alpha_em_0);
53 model.set_g3(calculate_e(
data.alpha_s_MZ));
56 model.get_physical().MVZ =
data.MZ;
57 model.get_physical().MVWm =
data.MW;
58 model.get_physical().MFb =
data.mb_mb;
59 model.get_physical().MFt =
data.MT;
60 model.get_physical().MFtau =
data.MTau;
61 model.get_physical().MFm =
data.MM;
62 model.get_physical().MAh(1) =
data.MA0;
63 model.get_physical().MSvmL =
data.MSvm;
64 model.get_physical().MSm =
data.MSm;
65 model.get_physical().MCha =
data.MCha;
66 model.get_physical().MChi =
data.MChi;
69 model.set_scale(
data.scale);
70 model.set_TB(
data.TB);
71 model.set_Mu(
data.Mu);
72 model.set_MassB(
data.M1);
73 model.set_MassWB(
data.M2);
74 model.set_MassG(
data.M3);
75 model.set_mq2(
data.mq2);
76 model.set_ml2(
data.ml2);
77 model.set_md2(
data.md2);
78 model.set_mu2(
data.mu2);
79 model.set_me2(
data.me2);
80 model.set_Au(
data.Au);
81 model.set_Ad(
data.Ad);
82 model.set_Ae(
data.Ae);
85 model.convert_to_onshell();
90gm2calc::THDM setup(
const GM2Calc_THDM_data&
data)
93 sm.set_alpha_em_0(
data.alpha_em_0);
94 sm.set_alpha_em_mz(
data.alpha_em_mz);
95 sm.set_alpha_s_mz(
data.alpha_s_mz);
103 sm.set_ckm(
data.ckm);
105 gm2calc::thdm::Gauge_basis basis;
106 basis.yukawa_type = gm2calc::thdm::int_to_cpp_yukawa_type(
data.yukawa_type);
107 basis.lambda =
data.lambda;
108 basis.tan_beta =
data.tan_beta;
109 basis.m122 =
data.m122;
110 basis.zeta_u =
data.zeta_u;
111 basis.zeta_d =
data.zeta_d;
112 basis.zeta_l =
data.zeta_l;
113 basis.Delta_u =
data.delta_u;
114 basis.Delta_d =
data.delta_d;
115 basis.Delta_l =
data.delta_l;
116 basis.Pi_u =
data.pi_u;
117 basis.Pi_d =
data.pi_d;
118 basis.Pi_l =
data.pi_l;
120 return gm2calc::THDM(basis, sm);
142 const gm2calc::MSSMNoFV_onshell model(setup(
data));
145 + gm2calc::calculate_amu_1loop(model)
146 + gm2calc::calculate_amu_2loop(model);
147 }
catch (
const gm2calc::Error& e) {
148 ERROR(
"GM2Calc: " <<
e.what());
167 double uncertainty = 0.;
170 const gm2calc::MSSMNoFV_onshell model(setup(
data));
171 uncertainty = gm2calc::calculate_uncertainty_amu_2loop(model);
172 }
catch (
const gm2calc::Error& e) {
173 ERROR(
"GM2Calc: uncertainty estimation: " <<
e.what());
196 const gm2calc::THDM model = setup(
data);
199 + gm2calc::calculate_amu_1loop(model)
200 + gm2calc::calculate_amu_2loop(model);
201 }
catch (
const gm2calc::Error& e) {
202 ERROR(
"GM2Calc: " <<
e.what());
221 double uncertainty = 0.;
224 const gm2calc::THDM model = setup(
data);
225 uncertainty = gm2calc::calculate_uncertainty_amu_2loop(model);
226 }
catch (
const gm2calc::Error& e) {
227 ERROR(
"GM2Calc: uncertainty estimation: " <<
e.what());
contains declarations of GM2Calc interface functions
double gm2calc_calculate_amu_uncertainty(const GM2Calc_MSSMNoFV_data &)
calculates uncertainty of amu using GM2Calc in the MSSMNoFV
static constexpr double Pi
double gm2calc_calculate_amu(const GM2Calc_MSSMNoFV_data &)
calculates amu using GM2Calc in the MSSMNoFV
data to be passed to GM2Calc
data to be passed to GM2Calc