58const double pi = 3.1415926535897932;
59const double pi2 = 9.8696044010893586;
60const double q_u = 2.0/3.0;
61const double q_d = -1.0/3.0;
62const double q_v = 0.0;
63const double q_l = -1.0;
64const double t3_u = +0.5;
65const double t3_d = -0.5;
66const double t3_l = -0.5;
68double sqr(
double x)
noexcept {
return x*
x; }
70double calc_v2(
const THDM_F_parameters& thdm)
noexcept
72 const double mw2 =
sqr(thdm.mw);
73 const double mz2 =
sqr(thdm.mz);
75 const double e2 = 4*
pi*thdm.alpha_em;
81double FH(
double ms2,
double mf2)
noexcept
88double FA(
double ms2,
double mf2)
noexcept
113 const double nc =
pars.nc;
120double fSZ(
double ms2,
double mf2,
const F_neut_pars&
pars,
const F_sm_pars& sm,
F FHZ)
noexcept
122 const double mw2 = sm.mw2;
123 const double mz2 = sm.mz2;
125 const double sw2 = 1.0 -
cw2;
126 const double qf =
pars.qf;
127 const double ql =
pars.ql;
128 const double nc =
pars.nc;
139template <
typename F,
typename FZ>
140double ffS(
double ms2,
double mf2,
const F_neut_pars&
pars,
const F_sm_pars& sm,
F FH,
FZ FHZ)
noexcept
146double flHp(
double ms2,
double ml2,
const F_char_pars&
pars,
const F_sm_pars& sm)
noexcept
148 const double mw2 = sm.mw2;
149 const double nc =
pars.nc;
150 const double x = ml2/
ms2;
151 const double y = ml2/
mw2;
157double fuHp(
double ms2,
double md2,
double mu2,
const F_char_pars&
pars,
const F_sm_pars& sm)
noexcept
159 const double mw2 = sm.mw2;
160 const double qd =
pars.qd;
161 const double qu =
pars.qu;
162 const double nc =
pars.nc;
163 const double xu = mu2/
ms2;
164 const double xd = md2/
ms2;
165 const double yu = mu2/
mw2;
166 const double yd = md2/
mw2;
172double fdHp(
double ms2,
double md2,
double mu2,
const F_char_pars&
pars,
const F_sm_pars& sm)
noexcept
174 const double mw2 = sm.mw2;
175 const double qd =
pars.qd;
176 const double qu =
pars.qu;
177 const double nc =
pars.nc;
178 const double xu = mu2/
ms2;
179 const double xd = md2/
ms2;
180 const double yu = mu2/
mw2;
181 const double yd = md2/
mw2;
192 const F_sm_pars sm{
mw2,
mz2 };
193 const auto lFH = [] (
double ms2,
double mu2) {
return FH(
ms2, mu2); };
203 const F_sm_pars sm{
mw2,
mz2 };
204 const auto lFH = [] (
double ms2,
double md2) {
return FH(
ms2, md2); };
214 const F_sm_pars sm{
mw2,
mz2 };
215 const auto lFH = [] (
double ms2,
double ml2) {
return FH(
ms2, ml2); };
225 const F_sm_pars sm{
mw2,
mz2 };
226 const auto lFA = [] (
double ms2,
double mu2) {
return FA(
ms2, mu2); };
236 const F_sm_pars sm{
mw2,
mz2 };
237 const auto lFA = [] (
double ms2,
double md2) {
return FA(
ms2, md2); };
247 const F_sm_pars sm{
mw2,
mz2};
248 const auto lFA = [] (
double ms2,
double ml2) {
return FA(
ms2, ml2); };
255double fuHp(
double ms2,
double md2,
double mu2,
double mw2,
double mz2)
noexcept
258 const F_sm_pars sm{
mw2,
mz2};
263double fdHp(
double ms2,
double md2,
double mu2,
double mw2,
double mz2)
noexcept
266 const F_sm_pars sm{
mw2,
mz2};
274 const F_sm_pars sm{
mw2,
mz2};
286 const double mHp2 =
sqr(thdm.mHp);
287 const double mw2 =
sqr(thdm.mw);
288 const double mz2 =
sqr(thdm.mz);
289 const double v2 =
calc_v2(thdm);
291 const double pref =
sqr(thdm.alpha_em*thdm.mm/(8*
pi*thdm.mw*
sw2))*v2/thdm.ml(1);
296 for (
int i = 0;
i < 3; ++
i) {
297 for (
int j = 0;
j < 3; ++
j) {
300 *std::real(std::conj(thdm.yuHp(
i,
j))*thdm.vckm(
i,
j)*thdm.ylHp(1,1))/thdm.mu(
i);
303 *std::real(std::conj(thdm.ydHp(
i,
j))*thdm.vckm(
i,
j)*thdm.ylHp(1,1))/thdm.md(
j);
307 *std::real(std::conj(thdm.ylHp(
i,
i))*thdm.ylHp(1,1))/thdm.ml(
i);
321 const double mh2 =
sqr(thdm.mh(0));
322 const double mH2 =
sqr(thdm.mh(1));
323 const double mA2 =
sqr(thdm.mA);
324 const double mhSM2 =
sqr(thdm.mhSM);
325 const double mw2 =
sqr(thdm.mw);
326 const double mz2 =
sqr(thdm.mz);
327 const double v2 =
calc_v2(thdm);
329 const auto pref =
sqr(thdm.alpha_em*thdm.mm/(2*
pi*thdm.mw))/
sw2;
334 for (
int i = 0;
i < 3; ++
i) {
336 res +=
fuS(
mh2,
sqr(thdm.mu(
i)),
mw2,
mz2)*std::real(std::conj(thdm.yuh(
i,
i))*thdm.ylh(1,1))*v2/(thdm.mu(
i)*thdm.ml(1));
337 res +=
fdS(
mh2,
sqr(thdm.md(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ydh(
i,
i))*thdm.ylh(1,1))*v2/(thdm.md(
i)*thdm.ml(1));
338 res +=
flS(
mh2,
sqr(thdm.ml(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ylh(
i,
i))*thdm.ylh(1,1))*v2/(thdm.ml(
i)*thdm.ml(1));
341 res +=
fuS(
mH2,
sqr(thdm.mu(
i)),
mw2,
mz2)*std::real(std::conj(thdm.yuH(
i,
i))*thdm.ylH(1,1))*v2/(thdm.mu(
i)*thdm.ml(1));
342 res +=
fdS(
mH2,
sqr(thdm.md(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ydH(
i,
i))*thdm.ylH(1,1))*v2/(thdm.md(
i)*thdm.ml(1));
343 res +=
flS(
mH2,
sqr(thdm.ml(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ylH(
i,
i))*thdm.ylH(1,1))*v2/(thdm.ml(
i)*thdm.ml(1));
346 res +=
fuA(
mA2,
sqr(thdm.mu(
i)),
mw2,
mz2)*std::real(std::conj(thdm.yuA(
i,
i))*thdm.ylA(1,1))*v2/(thdm.mu(
i)*thdm.ml(1));
347 res +=
fdA(
mA2,
sqr(thdm.md(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ydA(
i,
i))*thdm.ylA(1,1))*v2/(thdm.md(
i)*thdm.ml(1));
348 res +=
flA(
mA2,
sqr(thdm.ml(
i)),
mw2,
mz2)*std::real(std::conj(thdm.ylA(
i,
i))*thdm.ylA(1,1))*v2/(thdm.ml(
i)*thdm.ml(1));
double t3f
SU(2)_L charge of ferimon f.
double ql
electromagnetic charge of fermion l
double qf
electromagnetic charge of fermion f
double qu
electromagnetic charge of down-type fermion
double mw2
squared W boson mass
double nc
number of colors of fermion f
double t3l
SU(2)_L charge of ferimon l.
double mz2
squared Z boson mass
double qd
electromagnetic charge of up-type fermion
double fdA(double ms2, double md2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = d, S = A.
double flHp(double ms2, double ml2, double mw2, double mz2) noexcept
Eq (59), arxiv:1607.06292, S = H^\pm, f = l.
double flA(double ms2, double ml2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = l, S = A.
double fuHp(double ms2, double md2, double mu2, double mw2, double mz2) noexcept
Eq (59), arxiv:1607.06292, S = H^\pm, f = u.
double amu2L_F(const THDM_F_parameters &thdm) noexcept
Calculates the sum of the 2-loop fermionic contributions with neutral and charged Higgs bosons.
double fdHp(double ms2, double md2, double mu2, double mw2, double mz2) noexcept
Eq (59), arxiv:1607.06292, S = H^\pm, f = d.
double fdS(double ms2, double md2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = d, S = h or H.
double fuA(double ms2, double mu2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = u, S = A.
double flS(double ms2, double ml2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = l, S = h or H.
double fuS(double ms2, double mu2, double mw2, double mz2) noexcept
Eq (53), arxiv:1607.06292, f = u, S = h or H.
double amu2L_F_neutral(const THDM_F_parameters &thdm) noexcept
Calculates 2-loop fermionic contributions with neutral Higgs bosons.
double amu2L_F_charged(const THDM_F_parameters &thdm) noexcept
Calculates 2-loop fermionic contributions with charged Higgs boson.
T sqr(T x) noexcept
returns number squared
double FSZ(double x, double y) noexcept
Barr-Zee 2-loop function with fermion loop and scalar and Z boson mediators.
double f_S(double z) noexcept
Calculates , Eq (71) arXiv:hep-ph/0609168.
double FCWl(double x, double y) noexcept
Barr-Zee 2-loop function with lepton loop and charge scalar and W boson mediators.
void svd_eigen(const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u, Eigen::Matrix< Scalar, N, N > *vh)
double FCWu(double xu, double xd, double yu, double yd, double qu, double qd) noexcept
Barr-Zee 2-loop function with up-type quark loop and charge scalar and W boson mediators.
double FPZ(double x, double y) noexcept
Barr-Zee 2-loop function with fermion loop and pseudoscalar and Z boson mediators.
double f_PS(double z) noexcept
Calculates , Eq (70) arXiv:hep-ph/0609168.
double FCWd(double xu, double xd, double yu, double yd, double qu, double qd) noexcept
Barr-Zee 2-loop function with down-type quark loop and charge scalar and W boson mediators.
parameters to be passed to the fermionic contribution functions