12#include <gsl/gsl_sf_zeta.h>
24#include "gslpp_function_adapter.h"
28#include <boost/bind/bind.hpp>
29using namespace boost::placeholders;
33 "lambda",
"A",
"rhob",
"etab",
"Mz",
"AlsMz",
"GF",
"ale",
"dAle5Mz",
"mHl",
34 "delMw",
"delSin2th_l",
"delSin2th_q",
"delSin2th_b",
"delGammaZ",
"delsigma0H",
"delR0l",
"delR0c",
"delR0b",
35 "mneutrino_1",
"mneutrino_2",
"mneutrino_3",
"melectron",
"mmu",
"mtau",
"muw"
42:
QCD(), Yu(3, 3, 0.), Yd(3, 3, 0.), Yn(3, 3, 0.),
43SMM(*this), SMFlavour(*this), Ye(3, 3, 0.)
52 FlagMw =
"APPROXIMATEFORMULA";
91 for (
int i = 0; i < 12; ++i) {
149 w_GSL1 = gsl_integration_workspace_alloc (200);
198 for (std::map<std::string, double>::const_iterator it =
DPars.begin(); it !=
DPars.end(); it++)
199 if (it->first.compare(
"AlsM") == 0 || it->first.compare(
"MAls") == 0)
200 throw std::runtime_error(
"ERROR: inappropriate parameter " + it->first
201 +
" in model initialization");
203 throw std::runtime_error(
"ERROR: cannot use " + it->first
204 +
" when FlagFixMuwMut is true: use only muw");
206 std::map<std::string, double> myDPars(
DPars);
207 myDPars[
"AlsM"] = myDPars.at(
"AlsMz");
208 myDPars[
"MAls"] = myDPars.at(
"Mz");
210 myDPars[
"mut"] = myDPars.at(
"muw") * 163. / 80.4 ;
231 for (std::map<std::string, double>::const_iterator it =
DPars.begin(); it !=
DPars.end(); it++)
264 for (
int i = 0; i < 12; ++i) {
280 if (
name.compare(
"Mz") == 0) {
283 }
else if (
name.compare(
"AlsMz") == 0) {
286 }
else if (
name.compare(
"GF") == 0)
288 else if (
name.compare(
"ale") == 0)
294 else if (
name.compare(
"mHl") == 0)
296 else if (
name.compare(
"delMw") == 0)
298 else if (
name.compare(
"delSin2th_l") == 0)
300 else if (
name.compare(
"delSin2th_q") == 0)
302 else if (
name.compare(
"delSin2th_b") == 0)
304 else if (
name.compare(
"delGammaZ") == 0)
306 else if (
name.compare(
"delsigma0H") == 0)
308 else if (
name.compare(
"delR0l") == 0)
310 else if (
name.compare(
"delR0c") == 0)
312 else if (
name.compare(
"delR0b") == 0)
314 else if (
name.compare(
"mneutrino_1") == 0)
316 else if (
name.compare(
"mneutrino_2") == 0)
318 else if (
name.compare(
"mneutrino_3") == 0)
320 else if (
name.compare(
"melectron") == 0)
322 else if (
name.compare(
"mmu") == 0)
324 else if (
name.compare(
"mtau") == 0)
353 }
else if (
name.compare(
"muw") == 0) {
366 for (
int i = 0; i <
NSMvars; i++) {
368 std::cout <<
"ERROR: missing mandatory SM parameter " <<
SMvars[i] << std::endl;
414 for (
int i = 0; i < 3; i++) {
415 Yu.assign(i, i, this->
getmq(
quark(
UP + 2 * i),
v()/ sqrt(2.))/
v() * sqrt(2.));
423 for (
int i = 0; i < 3; i++) {
429 Ye = gslpp::matrix<gslpp::complex>::Id(3);
430 for (
int i = 0; i < 3; i++)
431 Ye.assign(i, i, this->leptons[
ELECTRON + 2 * i].getMass() /
v() * sqrt(2.));
434 Yn = gslpp::matrix<gslpp::complex>::Id(3);
435 for (
int i = 0; i < 3; i++)
436 Yn.assign(i, i, this->leptons[
NEUTRINO_1 + 2 * i].getMass() /
v() * sqrt(2.));
446 if (
name.compare(
"CacheInStandardModel") == 0) {
449 }
else if (
name.compare(
"CacheInEWSMcache") == 0) {
452 }
else if (
name.compare(
"Wolfenstein") == 0) {
466 }
else if (
name.compare(
"WithoutNonUniversalVC") == 0) {
469 }
else if (
name.compare(
"NoApproximateGammaZ") == 0) {
472 }
else if (
name.compare(
"MWinput") == 0) {
479 FlagMw =
"APPROXIMATEFORMULA";
484 }
else if (
name.compare(
"SMAux") == 0) {
487 }
else if (
name.compare(
"FixMuwMut") == 0) {
490 }
else if (
name.compare(
"UseVud") == 0) {
493 throw std::runtime_error(
"UseVud can only be used when Wolfenstein is false");
511 if (
name.compare(
"Mw") == 0) {
516 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
517 +
name +
"=" + value);
519 }
else if (
name.compare(
"RhoZ") == 0) {
524 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
525 +
name +
"=" + value);
526 }
else if (
name.compare(
"KappaZ") == 0) {
531 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
532 +
name +
"=" + value);
539 FlagMw =
"APPROXIMATEFORMULA";
592 bool bNotUpdated =
true;
596 bNotUpdated &=
false;
608 throw std::runtime_error(
"out of range in StandardModel::ale_OS()");
610 double N = 20.0 / 3.0;
611 double beta1 = N / 3.0;
612 double beta2 = N / 4.0;
614 double v = 1.0 + 2.0 * beta1 * alpha_ini / M_PI * log(
Mz / mu);
618 return ( alpha_ini /
v);
620 return ( alpha_ini /
v * (1.0 - beta2 / beta1 * alpha_ini / M_PI * log(
v) /
v));
622 throw std::runtime_error(
"Error in StandardModel::ale_OS()");
628 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
629 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
630 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
631 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
636 return(
Beta0((
double) nf));
638 return(
Beta1((
double) nf));
640 return(
Beta2((
double) nf));
642 return(
Beta3((
double) nf));
644 return(-4. *
TF * Qbar2 );
646 return((4. *
CF - 8. *
CA) *
TF * Qbar2 );
648 return(11./3. *
TF * Qbar2 *
Beta_e(00, nf) + 2. *
TF * Qbar4);
650 throw std::runtime_error(
"StandardModel::Beta_s(): case not implemented");
656 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
657 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
658 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
659 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
664 return(4./3. * (Qbar2 *
Nc + 3.));
666 return(4. * (Qbar4 *
Nc + 3.));
668 return(4. *
CF *
Nc * Qbar2);
670 throw std::runtime_error(
"StandardModel::Beta_e(): case not implemented");
682 throw std::runtime_error(
"StandardModel::AlsE(): " +
orderToString(order) +
" is not implemented.");
688 int i, nfAls = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAls;
689 double als, alstmp, mutmp;
710 for (i = nfAls - 1; i > nfmu; i--) {
722 for (i = nfAls + 1; i < nfmu; i++) {
745 throw std::runtime_error(
"StandardModel::AlsEByOrder(): " +
orderToString(order) +
" is not implemented.");
751 double nf = (double) nf_i, alei =
Ale(mu_i,
FULLNLO);
753 double v = 1. + b00s * alsi / 2. / M_PI * log(mu / mu_i);
754 double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
755 double logv = log(
v), logve = log(ve);
756 double rho = 1. / (1. + b00e * alei / b00s / alsi);
757 double als =
AlsWithInit(mu, alsi, mu_i, nf, order);
758 double b01s =
Beta_s(01,nf), b01s00e = b01s / b00e;
763 als += alsi * alsi * alei / 4. / 4. / M_PI / M_PI /
v /
v / ve * (
Beta_s(02, nf) / b00e *
764 (ve - 1.) +
Beta_s(11, nf) / b00s * rho * ve * (logve - logv) + b01s00e *
Beta_e(10, nf) /
765 b00e * (logve - ve + 1.) + b01s *
Beta_s(10, nf) / b00s / b00s * rho * logv +
766 b01s00e *
Beta_e(01, nf) / b00s * (rho * ve * (logv - logve) - logv));
769 return (
AlsWithInit(mu, alsi, mu_i, nf_i,
LO) +
AlsWithInit(mu, alsi, mu_i, nf_i,
NLO)+
AlsWithInit(mu, alsi, mu_i, nf_i,
NNLO) +
AlsEWithInit(mu, alsi, mu_i, nf_i,
NNNLO));
771 throw std::runtime_error(
"StandardModel::AlsEWithInit(): " +
orderToString(order) +
" is not implemented.");
779 int i, nfAle = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAle;
794 return (
Ale(mu,
LO, Nf_thr) +
Ale(mu,
NLO, Nf_thr));
812 for (i = nfAle - 1; i > nfmu; i--) {
824 for (i = nfAle + 1; i < nfmu; i++) {
846 throw std::runtime_error(
"StandardModel::Ale(): " +
orderToString(order) +
" is not implemented.");
852 if (fabs(mu - mu_i) < MEPS)
return(alei);
856 double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
857 double logv = log(1. + b00s * alsi / 2. / M_PI * log(mu / mu_i)), logve = log(ve);
864 return (- alei * alei / 4. / M_PI / ve / ve * (
Beta_e(10, nf) / b00e * logve -
Beta_e(01, nf) / b00s * logv) );
869 throw std::runtime_error(
"StandardModel::AleWithInit(): " +
orderToString(order) +
" is not implemented.");
880 double DeltaAlphaL = 0.0;
948 double alphatilde_e =
alphaMz()/4./M_PI;
949 double alphatilde_s =
AlsMz/4./M_PI;
952 double B00S =
Beta0(nf), B10S =
Beta1(nf), B20S =
Beta2(nf), B30S = gsl_sf_zeta_int(3) * 352864./81. - 598391./1458,
953 B01S = -22./9., B11S = -308./27., B02S = 4945./243.;
955 double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
957 double B10soB00s = B10S / B00S;
958 double B01soB00e = B01S/B00E;
960 double vs= 1. + 2. * B00S * alphatilde_s * log(mu/ mu_0);
961 double ve= 1. - 2. * B00E * alphatilde_e * log(mu/ mu_0);
962 double ps= B00S * alphatilde_s /(B00S * alphatilde_s + B00E * alphatilde_e);
964 double logve = log(ve);
965 double logvs = log(vs);
966 double logeos = log(ve/vs);
967 double logsoe = log(vs/ve);
968 double asovs = alphatilde_s/vs;
969 double aeove = alphatilde_e/ve;
973 result = asovs - pow(asovs, 2) * (logvs * B10soB00s - logve * B01soB00e)
974 + pow(asovs, 3) * ((1. - vs) * B20S / B00S + B10soB00s * B10soB00s * (logvs * logvs - logvs
975 + vs - 1.) + B01soB00e * B01soB00e * logve * logve + (-2. * logvs * logve
976 + ps * ve * logve) * B01S * B10S/(B00E * B00S))
977 + pow(asovs, 4) * (0.5 * B30S *(1. - vs * vs)/ B00S + ((2. * vs - 3.) * logvs + vs * vs
978 - vs) * B20S * B10soB00s /(B00S) + B10soB00s * B10soB00s * B10soB00s * (- pow(logvs,3)
979 + 5. * pow(logvs,2) / 2. + 2. * (1. - vs) * logvs - (vs - 1.) * (vs - 1.)* 0.5))
980 + pow(asovs, 2) * (aeove) * ((ve - 1.) * B02S / B00E
981 + ps * ve * logeos * B11S /B00S +(logve - ve + 1.) * B01soB00e * B10E/(B00E)
982 + logvs * ps * B01S * B10soB00s/(B00S) +(logsoe * ve * ps - logvs) * B01soB00e * B01E/( B00S));
991 return ( 1. / sqrt(sqrt(2.) *
GF));
1002 return (
Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - 4.0 * M_PI *
ale / sqrt(2.0) /
GF /
Mz /
Mz)));
1007 double tmp = 1.0 - 4.0 * M_PI *
alphaMz() / sqrt(2.0) /
GF /
Mz /
Mz;
1009 throw std::runtime_error(
"Error in s02()");
1011 return ( (1.0 - sqrt(tmp)) / 2.0);
1016 return ( 1.0 -
s02());
1035 if (
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1078 return ( Mw_i * Mw_i /
Mz /
Mz);
1083 return (
cW2(
Mw()));
1089 return ( 1.0 -
cW2(Mw_i));
1094 return ( 1.0 -
cW2());
1100 return (
sW2()*1.0351 );
1116 double sW2 = 1.0 - myMw * myMw /
Mz /
Mz;
1117 double tmp = sqrt(2.0) *
GF *
sW2 * myMw * myMw / M_PI /
ale;
1118 if (
FlagMw.compare(
"NORESUM") == 0
1119 ||
FlagMw.compare(
"APPROXIMATEFORMULA") == 0) {
1122 return (1.0 - 1.0 / tmp);
1127 double DeltaRho[orders_EW_size])
const
1132 DeltaRho[
EW1] = 0.0;
1144 DeltaRho[
EW2] = 0.0;
1152 DeltaRho[
EW3] = 0.0;
1156 double DeltaR_rem[orders_EW_size])
const
1161 DeltaR_rem[
EW1] = 0.0;
1173 DeltaR_rem[
EW2] = 0.0;
1181 DeltaR_rem[
EW3] = 0.0;
1189 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1191 double Gz = 6.0 * G0;
1192 Gz += 3.0 * G0 * (pow(1.0 - 4.0 * sW2tree, 2.0) + 1.0);
1193 Gz += 6.0 * G0 * (pow(1.0 - 8.0 / 3.0 * sW2tree, 2.0) + 1.0)
1194 * (1.0 +
AlsMz / M_PI);
1195 Gz += 9.0 * G0 * (pow(1.0 - 4.0 / 3.0 * sW2tree, 2.0) + 1.0)
1196 * (1.0 +
AlsMz / M_PI);
1201 return (
Mz - Gz * Gz / 2.0 /
Mz);
1207 double Gw_SM = 3.0 *
GF * pow(
Mw, 3.0) / 2.0 / sqrt(2.0) / M_PI
1208 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1210 return (
Mw - Gw_SM * Gw_SM / 2.0 /
Mw);
1216 double Gw_SM = 3.0 *
GF * pow(Mwbar, 3.0) / 2.0 / sqrt(2.0) / M_PI
1217 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1219 return (Mwbar + Gw_SM * Gw_SM / 2.0 / Mwbar);
1225 double sW2bar = 1.0 - Mwbar_SM * Mwbar_SM /
Mzbar() /
Mzbar();
1226 double tmp = sqrt(2.0) *
GF * sW2bar * Mwbar_SM * Mwbar_SM / M_PI /
ale;
1245 throw std::runtime_error(
"Error in StandardModel::GammaW()");
1247 double G0 =
GF * pow(
Mw(), 3.0) / 6.0 / sqrt(2.0) / M_PI;
1248 gslpp::complex V(0.0, 0.0,
false);
1254 V = gslpp::complex(1.0, 0.0,
false);
1256 V = gslpp::complex(0.0, 0.0,
false);
1258 if (fi.
is(
"LEPTON"))
1259 return ( V.abs2() * G0 *
rho_GammaW(fi, fj));
1262 return ( 3.0 * V.abs2() * G0 *
rho_GammaW(fi, fj)*(1.0 + AlsMw / M_PI));
1272 double GammaWtmp = 0.;
1274 for (
int i = 0; i < 6; i += 2)
1286 double GammWij =
GammaW(fi, fj);
1288 return GammWij/GammW;
1294 double GammWli, GammWlj;
1296 if (li.
is(
"ELECTRON"))
1298 else if (li.
is(
"MU"))
1300 else if (li.
is(
"TAU"))
1303 throw std::runtime_error(
"Error in StandardModel::RWlilj. li must be a charged lepton");
1305 if (lj.
is(
"ELECTRON"))
1307 else if (lj.
is(
"MU"))
1309 else if (lj.
is(
"TAU"))
1312 throw std::runtime_error(
"Error in StandardModel::RWlilj. lj must be a charged lepton");
1314 return GammWli/GammWlj;
1324 double GammWcX, GammWhad;
1334 return GammWcX/GammWhad;
1341 double Re_kappa =
kappaZ_f(f).real();
1342 double Re_gV_over_gA = 1.0 - 4.0 * fabs(f.
getCharge()) * Re_kappa *
sW2();
1343 return ( 2.0 * Re_gV_over_gA / (1.0 + pow(Re_gV_over_gA, 2.0)));
1353 double Re_kappa =
kappaZ_f(f).real();
1354 return ( Re_kappa *
sW2());
1365 if (f.
is(
"NEUTRINO_1") || f.
is(
"NEUTRINO_2") || f.
is(
"NEUTRINO_3"))
1367 else if (f.
is(
"ELECTRON") || f.
is(
"MU"))
1369 else if (f.
is(
"TAU"))
1371 else if (f.
is(
"UP"))
1373 else if (f.
is(
"CHARM"))
1375 else if (f.
is(
"DOWN") || f.
is(
"STRANGE"))
1377 else if (f.
is(
"BOTTOM"))
1380 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1383 gslpp::complex myrhoZ_f =
rhoZ_f(f);
1384 gslpp::complex gV_over_gA =
gV_f(f) /
gA_f(f);
1385 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1386 if (f.
is(
"LEPTON")) {
1390 Gamma = G0 * myrhoZ_f.abs() * sqrt(1.0 - 4.0 * xl)
1391 * ((1.0 + 2.0 * xl)*(gV_over_gA.abs2() + 1.0) - 6.0 * xl)
1392 * (1.0 + 3.0 / 4.0 * myalphaMz / M_PI * pow(Q, 2.0));
1393 }
else if (f.
is(
"QUARK")) {
1399 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1413 double Gamma_had_tmp = 0.0;
1426 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1427 Gamma_had_tmp += 4.0 * 3.0 * G0 *
RVh();
1429 return Gamma_had_tmp;
1449 double GammZli, GammZlj;
1451 if ( li.
is(
"ELECTRON") || li.
is(
"MU") || li.
is(
"TAU") )
1454 throw std::runtime_error(
"Error in StandardModel::RZlilj. li must be a charged lepton");
1456 if ( lj.
is(
"ELECTRON") || lj.
is(
"MU") || lj.
is(
"TAU") )
1459 throw std::runtime_error(
"Error in StandardModel::RZlilj. lj must be a charged lepton");
1461 return GammZli/GammZlj;
1482 if (f.
is(
"ELECTRON")) {
1488 }
else if (f.
is(
"MU")) {
1494 }
else if (f.
is(
"TAU")) {
1500 }
else if (f.
is(
"NEUTRINO_1")) {
1506 }
else if (f.
is(
"NEUTRINO_2")) {
1512 }
else if (f.
is(
"NEUTRINO_3")) {
1518 }
else if (f.
is(
"UP")) {
1525 }
else if (f.
is(
"STRANGE")) {
1532 }
else if (f.
is(
"CHARM")) {
1539 }
else if (f.
is(
"BOTTOM")) {
1546 }
else throw std::runtime_error(
"StandardModel::R0_f called with wrong argument");
1566 Nnu = sqrt( 12.0 * M_PI * Rl /
Mz /
Mz /
sigma0_had() ) - Rl -3.0;
1590 if (f.
getName().compare(
"TOP") == 0)
return (gslpp::complex(0.0, 0.0,
false));
1591 if (
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1592 throw std::runtime_error(
"No approximate formula is available for rhoZ^f");
1607 deltaRho_remf[
EW1] = gslpp::complex(0.0, 0.0,
false);
1608 deltaRho_remf[
EW1QCD1] = gslpp::complex(0.0, 0.0,
false);
1609 deltaRho_remf[
EW1QCD2] = gslpp::complex(0.0, 0.0,
false);
1610 deltaRho_remf[
EW2] = gslpp::complex(0.0, 0.0,
false);
1611 deltaRho_remf[
EW2QCD1] = gslpp::complex(0.0, 0.0,
false);
1612 deltaRho_remf[
EW3] = gslpp::complex(0.0, 0.0,
false);
1616#ifdef WITHIMTWOLOOPQCD
1632 double DeltaRbar_rem = 0.0;
1639 deltaRho_rem_f_real[j] = deltaRho_remf[j].real();
1640 double ReRhoZf =
resumRhoZ(DeltaRho, deltaRho_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1643 double ImRhoZf = 0.0;
1645 ImRhoZf += deltaRho_remf[j].imag();
1649 return (gslpp::complex(ReRhoZf, ImRhoZf,
false));
1655 if (f.
is(
"TOP"))
return (gslpp::complex(0.0, 0.0,
false));
1663 double ReKappaZf = 0.0, ImKappaZf = 0.0;
1664 if (
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0) {
1667 if ( f.
is(
"BOTTOM") ){
1669 }
else if ( f.
is(
"ELECTRON") || f.
is(
"MU") || f.
is(
"TAU") ) {
1676#ifdef WITHIMTWOLOOPQCD
1689 deltaKappa_remf[
EW1] = gslpp::complex(0.0, 0.0,
false);
1690 deltaKappa_remf[
EW1QCD1] = gslpp::complex(0.0, 0.0,
false);
1691 deltaKappa_remf[
EW1QCD2] = gslpp::complex(0.0, 0.0,
false);
1692 deltaKappa_remf[
EW2] = gslpp::complex(0.0, 0.0,
false);
1693 deltaKappa_remf[
EW2QCD1] = gslpp::complex(0.0, 0.0,
false);
1694 deltaKappa_remf[
EW3] = gslpp::complex(0.0, 0.0,
false);
1698#ifdef WITHIMTWOLOOPQCD
1714 double DeltaRbar_rem = 0.0;
1721 deltaKappa_rem_f_real[j] = deltaKappa_remf[j].real();
1723 ReKappaZf =
resumKappaZ(DeltaRho, deltaKappa_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1727 *(1.0 - 8.0 / 3.0 * ReKappaZf *
sW2());
1731 ImKappaZf += deltaKappa_remf[j].imag();
1736 return (gslpp::complex(ReKappaZf, ImKappaZf,
false));
1743 if (f.
is(
"TOP") || f.
is(
"ELECTRON"))
return (gslpp::complex(0.0, 0.0,
false));
1759 gslpp::complex dRho = 2.0 * (uf - ul);
1760 dRho *=
ale / 4.0 / M_PI /
sW2;
1768 if (f.
is(
"TOP") || f.
is(
"ELECTRON"))
return (gslpp::complex(0.0, 0.0,
false));
1785 gslpp::complex dKappa = (deltaf * deltaf - deltal * deltal) / 4.0 /
cW2 *
myOneLoopEW->
FZ(
Mz*
Mz, myMw)
1787 dKappa *=
ale / 4.0 / M_PI /
sW2;
1797 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1799 return DeltaRhoPrime;
1806 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1810 return (
c02() * DeltaRhoPrime +
s02() * DeltaRW / (
c02() -
s02())
1811 - 2.0 *
s02() * DeltaKappaPrime);
1818 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1821 return (
c02() * DeltaRhoPrime + (
c02() -
s02()) * DeltaKappaPrime);
1839 return ( kappaZe.real() / kappaZb.real() - 1.0);
1842 / kappaZb.real() - 1.0);
1871 const double DeltaR_rem[orders_EW_size])
const
1873 if ((
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1874 || (DeltaR_rem[
EW2QCD1] != 0.0)
1875 || (DeltaR_rem[
EW3] != 0.0))
1876 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1879 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1881 double cW2_TMP = Mw_i * Mw_i /
Mz /
Mz;
1882 double sW2_TMP = 1.0 - cW2_TMP;
1884 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G = 0.0;
1885 if (
FlagMw.compare(
"NORESUM") == 0) {
1887 DeltaRho_sum += DeltaRho[(
orders_EW) j];
1891 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0) * sW2_TMP * cW2_TMP / M_PI /
ale;
1892 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1893 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1894 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1895 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1896 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
1897 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1898 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1902 double DeltaR_rem_sum = 0.0;
1903 double DeltaR_EW1 = 0.0, DeltaR_EW2_rem = 0.0;
1904 if (
FlagMw.compare(
"NORESUM") == 0) {
1906 DeltaR_rem_sum += DeltaR_rem[(
orders_EW) j];
1909 DeltaR_EW1 = -cW2_TMP / sW2_TMP * DeltaRho[
EW1] + DeltaR_rem[
EW1];
1915 DeltaRho_sum -= DeltaRho[
EW2];
1916 DeltaR_rem_sum -= DeltaR_rem[
EW2];
1919 R = 1.0 +
DeltaAlphaL5q() - cW2_TMP / sW2_TMP * DeltaRho_sum
1923 }
else if (
FlagMw.compare(
"OMSI") == 0) {
1925 R = 1.0 / (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1928 }
else if (
FlagMw.compare(
"INTERMEDIATE") == 0) {
1930 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1933 }
else if (
FlagMw.compare(
"OMSII") == 0) {
1935 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)*(1.0 -
DeltaAlphaL5q())
1936 - (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G) * DeltaR_rem[
EW1]
1939 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1941 if (
FlagMw.compare(
"NORESUM") == 0) {
1945 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1946 double Mwbar =
Mzbar() / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R));
1950 double tmp = 4.0 * M_PI *
ale / sqrt(2.0) /
GF /
Mz /
Mz;
1951 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1953 return (
Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R)));
1958 const double deltaRho_rem[orders_EW_size],
1959 const double DeltaRbar_rem,
bool bool_Zbb)
const
1961 if ((
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1962 || (deltaRho_rem[
EW1QCD2] != 0.0)
1963 || (deltaRho_rem[
EW2QCD1] != 0.0)
1964 || (deltaRho_rem[
EW3] != 0.0))
1965 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1968 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1970 double Mw_TMP =
Mw();
1971 double cW2_TMP =
cW2();
1972 double sW2_TMP =
sW2();
1974 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
1975 double DeltaRbar_rem_G, deltaRho_rem_G, deltaRho_rem_G2;
1977 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0)
1978 * sW2_TMP * cW2_TMP / M_PI /
ale;
1979 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1980 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1981 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1982 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1983 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
1984 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1985 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1986 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
1987 deltaRho_rem_G = f_AlphaToGF * (deltaRho_rem[
EW1]
1989 deltaRho_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaRho_rem[
EW2];
1994 if (
FlagRhoZ.compare(
"OMSI") == 0) {
1995 rhoZ = (1.0 + deltaRho_rem_G + deltaRho_rem_G2)
1996 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
1997 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
1998 rhoZ = (1.0 + deltaRho_rem_G)
1999 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2001 }
else if (
FlagRhoZ.compare(
"NORESUM") == 0
2002 ||
FlagRhoZ.compare(
"OMSII") == 0) {
2003 rhoZ = 1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2004 + DeltaRho_G * DeltaRho_G
2005 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2;
2007 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2010 double OnePlusTaub = 1.0 +
taub();
2011 double OnePlusTaub2 = OnePlusTaub*OnePlusTaub;
2013 deltaRho_rem_G += f_AlphaToGF *
ale / 4.0 / M_PI / sW2_TMP
2014 * pow(
mtpole / Mw_TMP, 2.0);
2015 if (
FlagRhoZ.compare(
"NORESUM") == 0) {
2016 rhoZ = (1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2017 + DeltaRho_G * DeltaRho_G
2018 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2)
2020 }
else if (
FlagRhoZ.compare(
"OMSI") == 0) {
2021 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2022 rhoZ = rhoZbL / (1.0 - rhoZbL * deltaRho_rem_G);
2023 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
2024 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2025 rhoZ = rhoZbL * (1.0 + rhoZbL * deltaRho_rem_G);
2026 }
else if (
FlagRhoZ.compare(
"OMSII") == 0) {
2027 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2028 rhoZ = rhoZbL * (1.0 + deltaRho_rem_G);
2030 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2037 const double deltaKappa_rem[orders_EW_size],
2038 const double DeltaRbar_rem,
const bool bool_Zbb)
const
2040 if ((
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0)
2041 || (deltaKappa_rem[
EW2QCD1] != 0.0)
2042 || (deltaKappa_rem[
EW3] != 0.0))
2043 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2046 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2048 double Mw_TMP =
Mw();
2049 double cW2_TMP =
cW2();
2050 double sW2_TMP =
sW2();
2052 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
2053 double DeltaRbar_rem_G, deltaKappa_rem_G, deltaKappa_rem_G2;
2055 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0)
2056 * sW2_TMP * cW2_TMP / M_PI /
ale;
2057 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
2058 + f_AlphaToGF * DeltaRho[
EW1QCD1]
2059 + f_AlphaToGF * DeltaRho[
EW1QCD2]
2060 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
2061 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
2062 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
2063 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
2064 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
2065 deltaKappa_rem_G = f_AlphaToGF * (deltaKappa_rem[
EW1]
2068 deltaKappa_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaKappa_rem[
EW2];
2074 kappaZ = (1.0 + deltaKappa_rem_G + deltaKappa_rem_G2)
2075 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
2076 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0) {
2077 kappaZ = (1.0 + deltaKappa_rem_G)
2078 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2079 + deltaKappa_rem_G2;
2080 }
else if (
FlagKappaZ.compare(
"NORESUM") == 0
2082 kappaZ = 1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2083 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2084 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2085 + deltaKappa_rem_G2;
2087 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2090 double OnePlusTaub = 1.0 +
taub();
2092 deltaKappa_rem_G -= f_AlphaToGF *
ale / 8.0 / M_PI / sW2_TMP
2093 * pow(
mtpole / Mw_TMP, 2.0);
2095 kappaZ = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2096 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2097 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2098 + deltaKappa_rem_G2) / OnePlusTaub;
2099 }
else if (
FlagKappaZ.compare(
"OMSI") == 0) {
2100 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2101 kappaZ = kappaZbL * (1.0 + deltaKappa_rem_G);
2102 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0
2104 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2105 kappaZ = kappaZbL + deltaKappa_rem_G;
2107 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2115 double taub_tmp = 0.0;
2118 taub_tmp += -2.0 * Xt;
2138 return ( -0.000113);
2143 return ( -0.000160);
2145 return ( -0.000040);
2147 throw std::runtime_error(
"Error in StandardModel::Delta_EWQCD");
2164 double Qf2 = pow(
quarks[q].getCharge(), 2.0);
2170 double mcMz2 = mcMz*mcMz;
2171 double mbMz2 = mbMz*mbMz;
2172 double mqMz2, mqdash4;
2176 mqdash4 = mbMz2*mbMz2;
2180 mqdash4 = mcMz2*mcMz2;
2190 double log_t = log(MtPole * MtPole /
s);
2191 double log_c = log(mcMz2 /
s);
2192 double log_b = log(mbMz2 /
s);
2197 log_q = log(mqMz2 /
s);
2214 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2215 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2216 + 275.0 / 6.0 * zeta5
2217 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2218 - 25.0 / 9.0 * zeta5) * nf
2219 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2220 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2226 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2228 double C22V = 253.0 / 2.0 - 13.0 / 3.0 * nf;
2229 double C23V = 2522.0 - 855.0 / 2.0 *
zeta2 + 310.0 / 3.0 *
zeta3 - 5225.0 / 6.0 * zeta5
2230 + (-4942.0 / 27.0 + 34.0 *
zeta2 - 394.0 / 27.0 *
zeta3
2231 + 1045.0 / 27.0 * zeta5) * nf
2232 + (125.0 / 54.0 - 2.0 / 3.0 *
zeta2) * nf*nf;
2235 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2237 double C41V = -22.0;
2238 double C42V = -3029.0 / 12.0 + 162.0 *
zeta2 + 112.0 *
zeta3
2239 + (143.0 / 18.0 - 4.0 *
zeta2 - 8.0 / 3.0 *
zeta3) * nf;
2240 double C42VL = -11.0 / 2.0 + nf / 3.0;
2244 double xt =
s / MtPole / MtPole;
2245 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2248 double AlsMzPi =
AlsMz / M_PI;
2249 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2250 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2251 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2258 RVf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2259 + (C02 + C2t) * AlsMzPi2 + C03 * AlsMzPi3 + C04 * AlsMzPi4
2260 + (mcMz2 + mbMz2) /
s * C23 * AlsMzPi3
2261 + mqMz2 /
s * (C21V * AlsMzPi + C22V * AlsMzPi2 + C23V * AlsMzPi3)
2262 + mcMz2 * mcMz2 /
s /
s * (C42 - log_c) * AlsMzPi2
2263 + mbMz2 * mbMz2 /
s /
s * (C42 - log_b) * AlsMzPi2
2264 + mqMz2 * mqMz2 /
s /
s * (C40V + C41V * AlsMzPi + (C42V + C42VL * log_q) * AlsMzPi2)
2265 + 12.0 * mqdash4 /
s /
s * AlsMzPi2
2266 - mqMz2 * mqMz2 * mqMz2 /
s /
s /
s
2267 * (8.0 + 16.0 / 27.0 * (155.0 + 6.0 * log_q) * AlsMzPi);
2286 double Qf2 = pow(
quarks[q].getCharge(), 2.0);
2292 double mcMz2 = mcMz*mcMz;
2293 double mbMz2 = mbMz*mbMz;
2294 double mqMz2, mqdash4;
2298 mqdash4 = mbMz2*mbMz2;
2302 mqdash4 = mcMz2*mcMz2;
2312 double log_t = log(MtPole * MtPole /
s);
2313 double log_c = log(mcMz2 /
s);
2314 double log_b = log(mbMz2 /
s);
2319 log_q = log(mqMz2 /
s);
2336 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2337 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2338 + 275.0 / 6.0 * zeta5
2339 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2340 - 25.0 / 9.0 * zeta5) * nf
2341 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2342 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2348 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2350 double C21A = -22.0;
2351 double C22A = -8221.0 / 24.0 + 57.0 *
zeta2 + 117.0 *
zeta3
2352 + (151.0 / 12.0 - 2.0 *
zeta2 - 4.0 *
zeta3) * nf;
2353 double C23A = -4544045.0 / 864.0 + 1340.0 *
zeta2 + 118915.0 / 36.0 *
zeta3
2355 + (71621.0 / 162.0 - 209.0 / 2.0 *
zeta2 - 216.0 *
zeta3
2356 + 5.0 * zeta4 + 55.0 * zeta5) * nf
2357 + (-13171.0 / 1944.0 + 16.0 / 9.0 *
zeta2 + 26.0 / 9.0 *
zeta3) * nf*nf;
2360 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2363 double C42A = 3389.0 / 12.0 - 162.0 *
zeta2 - 220.0 *
zeta3
2364 + (-41.0 / 6.0 + 4.0 *
zeta2 + 16.0 / 3.0 *
zeta3) * nf;
2365 double C42AL = 77.0 / 2.0 - 7.0 / 3.0 * nf;
2369 double xt =
s / MtPole / MtPole;
2370 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2373 double I2 = -37.0 / 12.0 + (-log_t) + 7.0 / 81.0 * xt + 0.0132 * xt*xt;
2374 double I3 = -5075.0 / 216.0 + 23.0 / 6.0 *
zeta2 +
zeta3 + 67.0 / 18.0 * (-log_t)
2375 + 23.0 / 12.0 * log_t*log_t;
2376 double I4 = 49.0309 - 17.6637 * (-log_t) + 14.6597 * log_t * log_t
2377 + 3.6736 * (-log_t * log_t * log_t);
2380 double AlsMzPi =
AlsMz / M_PI;
2381 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2382 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2383 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2390 RAf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2391 + (C02 + C2t - 2.0 * I3q * I2) * AlsMzPi2
2392 + (C03 - 2.0 * I3q * I3) * AlsMzPi3
2393 + (C04 - 2.0 * I3q * I4) * AlsMzPi4
2394 + (mcMz2 + mbMz2) /
s * C23 * AlsMzPi3
2395 + mqMz2 /
s * (C20A + C21A * AlsMzPi + C22A * AlsMzPi2
2396 + 6.0 * (3.0 + log_t) * AlsMzPi2 + C23A * AlsMzPi3)
2398 - 10.0 * mqMz2 / MtPole / MtPole
2399 * (8.0 / 81.0 + log_t / 54.0) * AlsMzPi2
2400 + mcMz2 * mcMz2 /
s /
s * (C42 - log_c) * AlsMzPi2
2401 + mbMz2 * mbMz2 /
s /
s * (C42 - log_b) * AlsMzPi2
2402 + mqMz2 * mqMz2 /
s /
s * (C40A + C41A * AlsMzPi
2403 + (C42A + C42AL * log_q) * AlsMzPi2)
2404 - 12.0 * mqdash4 /
s /
s*AlsMzPi2;
2411 double AlsMzPi =
AlsMz / M_PI;
2412 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2413 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2414 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2416 gslpp::complex gV_sum(0.0, 0.0);
2417 gslpp::complex gV_q;
2418 for (
int q = 0; q < 6; q++) {
2426 return ( gV_sum.abs2()*(-0.4132 * AlsMzPi3 - 4.9841 * AlsMzPi4));
2443 double amuqed,alfa0pi;
2446 double amuew,amuew1,amuew2b,amuew2f,amuew2,amuew3,cft,cf,corr1amuew2, corr2amuew2,corrwaamuew2,al,aq,b1;
2449 double amuhad,amuhhovp,amuhholbl,amuhho,amuhlo;
2453 const double sn2=0.2604341;
2459 const double umass=0.3;
2460 const double dmass=0.3;
2461 const double smass=0.5;
2479 double a2l[4]={0.,0.,0.,0.},b2l[4]={0.,0.,0.,0.},sw2l[4]={0.,0.,0.,0.};
2482 double c2lren[6]={0.,0.,0.,0.,0.,0.};
2487 s2=1.0 - MwSM*MwSM/
Mz/
Mz;
2493 amuqed=alfa0pi*(0.5+alfa0pi*(0.765857410+alfa0pi*(24.05050964+
2494 + alfa0pi*(130.8055+663.0*alfa0pi))));
2499 amuew1=5.0*
GF*mum*mum/(24.0*sqrt(2.0)*M_PI*M_PI)*(1.0+
2500 + 0.2*(1.0-4.0*s2)*(1.0-4.0*s2));
2511 aqed = 1.0/
ale + 2.0 * log(fermmass[0]/mum)/3.0/M_PI;
2519 a2l[0]=19.0/36.0-99.0*sn2/8.0-1.0*2.0*log(
mHl/MwSM)/24.0;
2521 b2l[0]=155.0/192.0+3.0*M_PI*M_PI/8.0-9.0*sn2/8.0+3.0*2.0*pow(log(
mHl/MwSM),2)/2.0-21.0*2.0*log(
mHl/MwSM)/16.0;
2525 a2l[1]=-859.0/18.0+11.0*M_PI/sqrt(3.0)+20.0*M_PI*M_PI/9.0+ 393.0*sn2/8.0-65.0*2.0*log(MwSM/mum)/9.0+ 31.0*2.0*log(
mHl/MwSM)/72.0;
2527 b2l[1]=433.0/36.0+5.0*M_PI*M_PI/24.0-51.0*sn2/8.0+ 3.0*4.0*pow(log(
mHl/MwSM),2)/8.0+9.0*2.0*log(
mHl/MwSM)/4.0;
2531 a2l[2]=165169.0/1080.0-385.0*M_PI/(6.0*sqrt(3.0))-29.0*M_PI*M_PI/6.0+ 33.0*sn2/8.0+92.0*2.0*log(MwSM/mum)/9.0- 133.0*2.0*log(
mHl/MwSM)/72.0;
2533 b2l[2]=-431.0/144.0+3.0*M_PI*M_PI/8.0+315.0*sn2/8.0+ 3.0*4.0*pow(log(
mHl/MwSM),2)/2.0-11.0*2.0*log(
mHl/MwSM)/8.0;
2537 a2l[3]=-195965.0/864.0+265.0*M_PI/(3.0*sqrt(3.0))+163.0*M_PI*M_PI/18.0+ 223.0*sn2/12.0-184.0*2.0*log(MwSM/mum)/9.0- 5.0*2.0*log(
mHl/MwSM)/8.0;
2539 b2l[3]=433.0/216.0+13.0*M_PI*M_PI/24.0+349.0*sn2/24.0+ 21.0*4.0*pow(log(
mHl/MwSM),2)/8.0-49.0*2.0*log(
mHl/MwSM)/12.0;
2547 for (
int i = 0; i < 4; ++i) {
2548 amuew2b=amuew2b+a2l[i]*sw2l[i]+(MwSM*MwSM/
mHl/
mHl)*b2l[i]*sw2l[i];
2552 amuew2b=mum*mum*aqed*
GF*amuew2b/(8.0*sqrt(2.0)*M_PI*M_PI*M_PI);
2559 cft=-104.0/45.0-16.0*2.0*log(
mtpole/
mHl)/15.0;
2562 + 8.0/5.0*pow(2.0*log(
mHl/
mtpole)-1.0,2));
2564 cft=-(32.0/5.0)*(1.0-9.0*sn2/4.0);
2567 cf=pow((umass*cqm*
Mz),(4.0/3.0));
2569 cf=cf/(pow((dmass*smass*bqm),(1.0/3.0))*mum*mum*taum);
2571 cf=-18.0*log(cf)/5.0-3.0*
mtpole*
mtpole/(16.0*s2*MwSM*MwSM)- 3.0*2.0*log(
mtpole/MwSM)/(10.0*s2)- 8.0*2.0*log(
mtpole/
Mz)/5.0-41.0/5.0-7.0/(10.0*s2)+ 8.0*M_PI*M_PI/15.0+cft;
2574 amuew2f=5.0*
GF*mum*mum*cf*aqed/(24.0*sqrt(2.0)*M_PI*M_PI*M_PI);
2580 corr1amuew2=-aqed*
GF*mum*mum/(8.0*M_PI*M_PI*M_PI*sqrt(2.0))*(8.41- log(pow(umass,8)/(pow(mum,6)*pow(dmass,2)))-17.0/2.0);
2582 corr2amuew2=-aqed*
GF*mum*mum/(8.0*M_PI*M_PI*M_PI*sqrt(2.0))*(17.1- log(pow(cqm,8)/(pow(mum,6)*pow(smass,2)))-47.0/6.0+8.0*M_PI*M_PI/9.0);
2589 corrwaamuew2=-43.0*31.0*(1.0-4.0*s2)*(1.0-4.0*s2)/(215.0*3.0)*log(
Mz/mum);
2591 c2lren[0]=(72.0/135.0)*(-1.0+2.0*s2)*(1.0-4.0*s2);
2592 c2lren[1]=(72.0/135.0)*(-1.0+2.0*s2/3.0)*(1.0-4.0*s2);
2593 c2lren[2]=-(144.0/135.0)*(1.0-4.0*s2/3.0)*(1.0-4.0*s2);
2594 c2lren[3]=c2lren[1];
2595 c2lren[4]=c2lren[2];
2596 c2lren[5]=c2lren[1];
2598 for (
int i = 2; i < 8; ++i) {
2599 corrwaamuew2=corrwaamuew2+c2lren[i-2]*log(
Mz/fermmass[i]);
2602 corrwaamuew2=5*
GF*mum*mum*aqed/(24.0*sqrt(2.0)*M_PI*M_PI*M_PI)*corrwaamuew2;
2605 corrwaamuew2=corrwaamuew2-0.2e-11;
2609 amuew2=amuew2b+amuew2f+corr1amuew2+corr2amuew2+corrwaamuew2;
2614 al=2789.0*log(
Mz/mum)*log(
Mz/mum)/90.0- 302.0*log(
Mz/taum)*log(
Mz/taum)/45.0+ 72.0*log(
Mz/taum)*log(
Mz/mum)/5.0;
2616 aq=-2662.0*log(
Mz/bqm)*log(
Mz/bqm)/1215.0+11216.0*log(
Mz/cqm)*log(
Mz/cqm)/1215.0+1964.0*log(
Mz/umass)*log(
Mz/umass)/405.0+24.0*log(
Mz/bqm)*log(
Mz/mum)/5.0-96.0*log(
Mz/cqm)*log(
Mz/mum)/5.0-48.0*log(
Mz/umass)*log(
Mz/mum)/5.0+32.0*log(
Mz/bqm)*log(
Mz/cqm)/405.0+32.0*log(
Mz/bqm)*log(
Mz/umass)/135.0;
2618 b1=-179.0/45.0*(log(
Mz/bqm)*log(
Mz/bqm)/3.0+log(
Mz/taum)*log(
Mz/taum)+4.0*log(
Mz/cqm)*log(
Mz/cqm)/3.0+2.0*log(
Mz/umass)*log(
Mz/umass)+2.0*log(
Mz/mum)*log(
Mz/mum))+2.0/5.0*(log(bqm/taum)*log(bqm/taum)+4.0/3.0*log(bqm/cqm)*log(bqm/cqm)+2.0*log(bqm/umass)*log(bqm/umass)+2.0*log(bqm/mum)*log(bqm/mum) )-8.0/5.0*(2.0*log(cqm/umass)*log(cqm/umass)+2.0*log(cqm/mum)*log(cqm/mum))+6.0/5.0*(4.0/3.0*log(taum/cqm)*log(taum/cqm)+2.0*log(taum/umass)*log(taum/umass)+2.0*log(taum/mum)*log(taum/mum))-8.0*log(umass/mum)*log(umass/mum)/5.0;
2626 amuew3=amuew1*(
ale*
ale/M_PI/M_PI)*(al+aq+b1);
2631 amuew=amuew1+amuew2+amuew3;
2645 amuhho=amuhhovp+amuhholbl;
2649 amuhad=amuhlo+amuhho;
2654 amu=amuqed+amuew+amuhad;
2671 double MwSM,f1,fy,f2,af2;
2672 const double mpion=134.9766e-3;
2676 double dalfos, dalfms, alfams;
2677 double rhoNC, kappa0, s2MSbar,c2MSbar;
2679 double leptk0,quarkk0;
2701 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2703 alfams=
ale/(1.0-dalfms);
2709 c2MSbar=1.0-s2MSbar;
2714 rhoNC=1.0+alfams/(4.0*M_PI)*(3.0/(4.0*s2MSbar*s2MSbar)*log(c2MSbar)-7.0/(4.0*s2MSbar)+3.0*
mtpole*
mtpole/(4.0*s2MSbar*MwSM*MwSM) + 3.0*
xi/(4.0*s2MSbar)*(log(c2MSbar/
xi)/(c2MSbar-
xi)+(1.0/c2MSbar)*log(
xi)/(1.0-
xi)));
2720 leptk0=((-0.5)*(-1)-2.0*s2MSbar)*2.0*(log(elm/
Mz)+log(mum/
Mz)+log(taum/
Mz))/3.0;
2725 kappa0=1.0-
ale/(2.0*M_PI*s2MSbar)*(leptk0+quarkk0-(7.0*c2MSbar/2.0+1.0/12.0)*log(c2MSbar)+(7.0/9.0-s2MSbar/3.0));
2733 fy=-2.0*log(y*(1.0-y))/3.0+1.0/pow((1.0-y+y*y),2)*(-2.0*(1.0-y)*(3.0-3.0*y+4.0*y*y*y- 3.0*y*y*y*y)*log(1.0-y)-2.0*y*(1.0+3.0*y-6.0*y*y+8.0*y*y*y-3.0*y*y*y*y)*log(y)+ (1.0-y)*(2.0-2.0*y-7.0*y*y+10.0*y*y*y-8.0*y*y*y*y+3.0*y*y*y*y*y)*log(1.0-y)*log(1.0-y)- y*(2.0-3.0*y-5.0*y*y+8.0*y*y*y-7.0*y*y*y*y+3.0*y*y*y*y*y)*log(y)*log(y)+ (2.0-4.0*y+11.0*y*y*y-13.0*y*y*y*y+9.0*y*y*y*y*y-3.0*y*y*y*y*y*y)*(M_PI*M_PI-2.0*log(1.0-y)*log(y)));
2735 f1=-
ale/(4.0*M_PI)*(1.0-4.0*kappa0*s2MSbar)*(22.0*log(y*
Mz*
Mz/q2)/3.0+85.0/9.0+fy);
2746 af2=sqrt(1.0+4.0*mpion*mpion/q2);
2747 f2=
ale/(4.0*M_PI)*(af2*af2*af2/3.0*log((af2+1.0)/(af2-1.0))-2.0/9.0-2.0*af2*af2/3.0);
2752 Qwe=-rhoNC*(1.0-4.0*kappa0*s2MSbar+alfams/(4.0*M_PI*s2MSbar)+f1+f2- 3.0*alfams*(1.0-4.0*kappa0*s2MSbar)*(1.0+(1.0-4.0*kappa0*s2MSbar)*(1.0-4.0*kappa0*s2MSbar))/(32.0*M_PI*s2MSbar*c2MSbar));
2786 double MwSM,alfapi,asMw,dkappa5h,s2MSbar0,
deltae,deltaep,boxpww,boxpzz,boxpaz;
2788 const double lambda=775.49e-3;
2789 const double caz=1.5;
2795 double dalfos, dalfms, alfams;
2796 double rhoNC, s2MSbar,c2MSbar;
2824 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2826 alfams=
ale/(1.0-dalfms);
2832 c2MSbar=1.0-s2MSbar;
2837 rhoNC=1.0+alfams/(4.0*M_PI)*(3.0/(4.0*s2MSbar*s2MSbar)*log(c2MSbar)-7.0/(4.0*s2MSbar)+3.0*
mtpole*
mtpole/(4.0*s2MSbar*MwSM*MwSM) + 3.0*
xi/(4.0*s2MSbar)*(log(c2MSbar/
xi)/(c2MSbar-
xi)+(1.0/c2MSbar)*log(
xi)/(1.0-
xi)));
2849 for (
int i = 0; i < 3; ++i) {
2850 s2MSbar0=s2MSbar0+2.0*log(
Mz/mlept[i]);
2853 s2MSbar0=s2MSbar+dkappa5h+alfapi*((s2MSbar0*(1.0+0.75*alfapi)+135.0*alfapi/32.0)*(1.0-4.0*s2MSbar)/12.0- (7.0*c2MSbar/4.0+1.0/24.0)*2.0*log(
Mz/MwSM)+s2MSbar/6.0-7.0/18.0);
2861 deltaep=-alfapi/3.0*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/elm)+1.0/6.0);
2868 boxpww=alfams*(2.0+5.0*(1.0-asMw/M_PI))/(4.0*M_PI*s2MSbar);
2872 boxpzz=alfams*(9.0/4.0-14.0*s2MSbar+38.0*s2MSbar*s2MSbar-40.0*s2MSbar*s2MSbar*s2MSbar)*(1.0-
AlsMz/M_PI)/(4.0*M_PI*s2MSbar*c2MSbar);
2874 boxpaz=5.0*alfams*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/
lambda)+caz)/(2.0*M_PI);
2882 qwproton=(rhoNC+
deltae)*(1.0-4.0*s2MSbar0+deltaep)+boxpww+boxpzz+boxpaz;
2894 double MwSM,alfapi,asMw,dkappa5h,s2MSbar0,
deltae,deltaep,boxnww,boxnzz,boxnaz;
2896 const double lambda=775.49e-3;
2897 const double caz=1.5;
2903 double dalfos, dalfms, alfams;
2904 double rhoNC, s2MSbar,c2MSbar;
2932 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2934 alfams=
ale/(1.0-dalfms);
2940 c2MSbar=1.0-s2MSbar;
2945 rhoNC=1.0+alfams/(4.0*M_PI)*(3.0/(4.0*s2MSbar*s2MSbar)*log(c2MSbar)-7.0/(4.0*s2MSbar)+3.0*
mtpole*
mtpole/(4.0*s2MSbar*MwSM*MwSM) + 3.0*
xi/(4.0*s2MSbar)*(log(c2MSbar/
xi)/(c2MSbar-
xi)+(1.0/c2MSbar)*log(
xi)/(1.0-
xi)));
2957 for (
int i = 0; i < 3; ++i) {
2958 s2MSbar0=s2MSbar0+2.0*log(
Mz/mlept[i]);
2961 s2MSbar0=s2MSbar+dkappa5h+alfapi*((s2MSbar0*(1.0+0.75*alfapi)+135.0*alfapi/32.0)*(1.0-4.0*s2MSbar)/12.0- (7.0*c2MSbar/4.0+1.0/24.0)*2.0*log(
Mz/MwSM)+s2MSbar/6.0-7.0/18.0);
2969 deltaep=-alfapi/3.0*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/elm)+1.0/6.0);
2976 boxnww=alfams*(-2.0+4.0*(1.0-asMw/M_PI))/(4.0*M_PI*s2MSbar);
2980 boxnzz=alfams*(9.0/4.0-13.0*s2MSbar+34.0*s2MSbar*s2MSbar-32.0*s2MSbar*s2MSbar*s2MSbar)*(1.0-
AlsMz/M_PI)/(4.0*M_PI*s2MSbar*c2MSbar);
2983 boxnaz=alfams*(4.0-16.0*s2MSbar)*(2.0*log(
Mz/
lambda)+caz)/(2.0*M_PI);
2990 qwneutron=-(rhoNC+
deltae)*(1.0+deltaep)+boxnww+boxnzz+boxnaz;
3010 throw std::runtime_error(
"ERROR: StandardModel::gLnuN2, prediction implemented only via semianalytical approximate formula. Check flags!");
3024 throw std::runtime_error(
"ERROR: StandardModel::gRnuN2, prediction implemented only via semianalytical approximate formula. Check flags!");
3037 throw std::runtime_error(
"ERROR: StandardModel::ThetaLnuN, prediction implemented only via semianalytical approximate formula. Check flags!");
3051 throw std::runtime_error(
"ERROR: StandardModel::ThetaRnuN, prediction implemented only via semianalytical approximate formula. Check flags!");
3064 throw std::runtime_error(
"ERROR: StandardModel::gVnue, prediction implemented only via semianalytical approximate formula. Check flags!");
3077 throw std::runtime_error(
"ERROR: StandardModel::gAnue, prediction implemented only via semianalytical approximate formula. Check flags!");
3091 double me, mmu, x, Fx, H1x, H2x, H3x,
zeta3;
3100 Fx = 1. - 8. * x + 8. * x*x*x - x*x*x*x -12. * x*x * log(x);
3102 H1x = 25./8. - pi2/2. - (9. + 4. *pi2 + 12. * log(x) )*x + 16. * pi2 * pow(x,3./2.);
3104 zeta3 = 1.2020569031595942;
3106 H2x= 156815./5184. - 518. * pi2/81. - 895. *
zeta3/36. + 67.*pi2*pi2/720. + 53. *pi2*log(2.)/6. - 0.042 - (5./4.) * pi2*sqrt(x);
3111 alpha = 1./
ale - log(x)/3./M_PI;
3115 rEW = 1. + H1x * alpha/M_PI + H2x * alpha*alpha/pi2 + H3x * alpha * alpha *alpha/pi2/M_PI;
3118 Gamma =
GF*
GF*pow(mmu,5)*Fx*rEW/192./pow(M_PI,3);
3131 double ml, mtau, x, Fx, H1x, H2x, H3x,
zeta3;
3139 x = ml*ml/mtau/mtau;
3140 Fx = 1. - 8. * x + 8. * x*x*x - x*x*x*x -12. * x*x * log(x);
3142 H1x = 25./8. - pi2/2. - (9. + 4. *pi2 + 12. * log(x) )*x + 16. * pi2 * pow(x,3./2.);
3144 zeta3 = 1.2020569031595942;
3146 H2x= 156815./5184. - 518. * pi2/81. - 895. *
zeta3/36. + 67.*pi2*pi2/720. + 53. *pi2*log(2.)/6. - 0.042 - (5./4.) * pi2*sqrt(x);
3154 rEW = 1. + H1x * alpha/M_PI + H2x * alpha*alpha/pi2 + H3x * alpha * alpha *alpha/pi2/M_PI;
3157 Gamma =
GF*
GF*pow(mtau,5)*Fx*rEW/192./pow(M_PI,3);
3169 double me, mmu, mtau, xe, Fxe, xmu, Fxmu;
3175 xe = me*me/mtau/mtau;
3176 Fxe = 1. - 8. * xe + 8. * xe*xe*xe - xe*xe*xe*xe -12. * xe*xe * log(xe);
3178 xmu = mmu*mmu/mtau/mtau;
3179 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3183 g2LFU = g2LFU * (Fxe/Fxmu);
3192 double me, mmu, mtau, xtau, Fxtau, xmu, Fxmu;
3198 xtau = me*me/mtau/mtau;
3199 Fxtau = 1. - 8. * xtau + 8. * xtau*xtau*xtau - xtau*xtau*xtau*xtau -12. * xtau*xtau * log(xtau);
3201 xmu = me*me/mmu/mmu;
3202 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3206 g2LFU = g2LFU * (pow(mmu,5)*Fxmu/pow(mtau,5)/Fxtau);
3215 double me, mmu, mtau, xtau, Fxtau, xmu, Fxmu;
3221 xtau = mmu*mmu/mtau/mtau;
3222 Fxtau = 1. - 8. * xtau + 8. * xtau*xtau*xtau - xtau*xtau*xtau*xtau -12. * xtau*xtau * log(xtau);
3224 xmu = me*me/mmu/mmu;
3225 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3229 g2LFU = g2LFU * (pow(mmu,5)*Fxmu/pow(mtau,5)/Fxtau);
3259 tmp = asin(1.0 / sqrt(tau));
3262 tmp = log((1.0 + sqrt(1.0 - tau)) / (1.0 - sqrt(1.0 - tau))) - M_PI * gslpp::complex::i();
3263 return (-0.25 * tmp * tmp);
3270 tmp = sqrt(tau - 1.0) * asin(1.0 / sqrt(tau));
3273 tmp = sqrt(1.0 - tau) * (log((1.0 + sqrt(1.0 - tau)) / (1.0 - sqrt(1.0 - tau))) - M_PI * gslpp::complex::i());
3283 tmp = tau *
lambda * (1.0 + tmp) / (2.0 * (tau -
lambda));
3297 return (2.0 * tau * (1.0 + (1.0 - tau) *
f_triangle(tau)));
3301 return -(2.0 + 3.0 * tau + 3.0 * tau * (2.0 - tau) *
f_triangle(tau));
3311 double tan2w =
sW2() /
cW2();
3315 tmp = tmp + ((1.0 + 2.0 / tau) * tan2w - (5.0 + 2.0 / tau)) *
I_triangle_1(tau,
lambda);
3317 return sqrt(
cW2()) * tmp;
3325 double gL,gR,lam,fact;
3326 double s = sqrt_s*sqrt_s;
3336 fact = (pow(
GF*
Mz*
Mz,2.0)/96.0/M_PI/
s) * sqrt(lam)*( lam + 12.0*
Mz*
Mz/
s )/( 1.0 -
Mz*
Mz/
s )/( 1.0 -
Mz*
Mz/
s );
3338 xsLH = 32.0 * gL * gL * fact;
3339 xsRH = 32.0 * gR * gR * fact;
3341 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3346 double xsLH=1.0, xsRH=0.0;
3348 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3353 double xsLH=0.0, xsRH=0.0;
3355 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3369 double asMH,LH,Lt,nl,h0,h1,h2, h3,G0;
3380 h0 = (95./4.) + (11./2.)*LH + nl*(-7./6. - LH/3.);
3381 h1 = 5803./540. + 77.*LH/30. -14.*Lt/15. + nl * (-29./60. - 7. * LH / 45.);
3382 h2 = 1029839./189000. + 16973.*LH/12600. - 1543.*Lt/1575. + nl * ( - 89533./378000 - 1543.*LH/18900. );
3383 h3 = 9075763./2976750. + 1243*LH/1575. - 452.*Lt/575. + nl * ( - 3763./28350. -226. * LH / 4725. );
3384 G0 =
GF * pow(
mHl,3.0)/(36.*M_PI*sqrt(2.));
3386 gamma = asMH*asMH * (4.0 *
GF /sqrt(2.0)) * (
mHl*
mHl*
mHl /64.0/pow(M_PI,3.0)) *
3389 gamma =
gamma + G0 * (asMH/M_PI) * (asMH/M_PI) * (asMH/M_PI) * (h0 + h1/tau_t + h2/tau_t/tau_t + h3/tau_t/tau_t/tau_t );
3398 double g2 = 4.0 * sqrt(2.0) *
GF *
Mz *
Mz;
3401 fx = -fabs(1.0-x*x)*( 47.0*x*x/2.0 - 13.0/2.0 +1.0/x/x ) +
3402 3.0*( 1.0 - 6.0*x*x + 4.0*x*x*x*x )*fabs(log(x)) +
3403 3.0*( 1.0 - 8.0*x*x + 20.0*x*x*x*x )*acos(( 3.0*x*x - 1.0 )/2.0/x/x/x)/sqrt( 4.0*x*x- 1.0);
3405 gamma = g2*g2 *
mHl * fx * ( 7.0 - 40.0*
sW2()/3.0 + 160.0 *
sW2()*
sW2()/9.0 ) / 2048.0 / pow(M_PI,3.0);
3414 double g2 = 4.0 * sqrt(2.0) *
GF * pow(
Mw(),2);
3417 fx = -fabs(1.0-x*x)*( 47.0*x*x/2.0 - 13.0/2.0 +1.0/x/x ) +
3418 3.0*( 1.0 - 6.0*x*x + 4.0*x*x*x*x )*fabs(log(x)) +
3419 3.0*( 1.0 - 8.0*x*x + 20.0*x*x*x*x )*acos(( 3.0*x*x - 1.0 )/2.0/x/x/x)/sqrt( 4.0*x*x- 1.0);
3421 gamma = 3.0 * g2*g2 *
mHl * fx / 512.0 / pow(M_PI,3.0);
3437 double M_w_2 = pow(
Mw(),2.0);
3446 double tau_t = 4.0 * m_t * m_t /
mHl /
mHl;
3447 double tau_b = 4.0 * m_b * m_b /
mHl /
mHl;
3448 double tau_c = 4.0 * m_c * m_c /
mHl /
mHl;
3449 double tau_s = 4.0 * m_s * m_s /
mHl /
mHl;
3450 double tau_tau = 4.0 * m_tau * m_tau /
mHl /
mHl;
3451 double tau_mu = 4.0 * m_mu * m_mu /
mHl /
mHl;
3452 double tau_W = 4.0 * M_w_2 /
mHl /
mHl;
3454 double lambda_t = 4.0 * m_t * m_t /
Mz /
Mz;
3455 double lambda_b = 4.0 * m_b * m_b /
Mz /
Mz;
3456 double lambda_c = 4.0 * m_c * m_c /
Mz /
Mz;
3457 double lambda_s = 4.0 * m_s * m_s /
Mz /
Mz;
3458 double lambda_tau = 4.0 * m_tau * m_tau /
Mz /
Mz;
3459 double lambda_mu = 4.0 * m_mu * m_mu /
Mz /
Mz;
3460 double lambda_W = 4.0 * M_w_2 /
Mz /
Mz;
3462 double sc = sqrt(
sW2()*
cW2());
3472 MSM = (
ale/4.0/M_PI) * ((3.0 * vSMt * Qt *
AHZga_f(tau_t, lambda_t) +
3473 3.0 * vSMb * Qb *
AHZga_f(tau_b, lambda_b) +
3474 3.0 * vSMc * Qc *
AHZga_f(tau_c, lambda_c) +
3475 3.0 * vSMs * Qs *
AHZga_f(tau_s, lambda_s) +
3476 vSMtau * Qtau *
AHZga_f(tau_tau, lambda_tau) +
3477 vSMmu * Qmu *
AHZga_f(tau_mu, lambda_mu)) +
3496 double M_w_2 = pow(
Mw(),2.0);
3505 double tau_t = 4.0 * m_t * m_t /
mHl /
mHl;
3506 double tau_b = 4.0 * m_b * m_b /
mHl /
mHl;
3507 double tau_c = 4.0 * m_c * m_c /
mHl /
mHl;
3508 double tau_s = 4.0 * m_s * m_s /
mHl /
mHl;
3509 double tau_tau = 4.0 * m_tau * m_tau /
mHl /
mHl;
3510 double tau_mu = 4.0 * m_mu * m_mu /
mHl /
mHl;
3511 double tau_W = 4.0 * M_w_2 /
mHl /
mHl;
3515 MSM =
ale * (3.0 * Qt * Qt *
AH_f(tau_t) +
3516 3.0 * Qb * Qb *
AH_f(tau_b) +
3517 3.0 * Qc * Qc *
AH_f(tau_c) +
3518 3.0 * Qs * Qs *
AH_f(tau_s) +
3519 Qtau * Qtau *
AH_f(tau_tau) +
3520 Qmu * Qmu *
AH_f(tau_mu) +
3523 gamma = (4.0*
GF/sqrt(2)) * (MSM.abs2()) * pow(
mHl,3.0)/512.0/pow(M_PI,3);
3531 double beta=1.0-4.0*mf*mf/
mHl/
mHl;
3535 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta;
3543 double beta=1.0-4.0*mf*mf/
mHl/
mHl;
3547 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta;
3558 double asMH,DeltaQCD,Deltamt,NF;
3565 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3569 DeltaQCD = 1 + (asMH/M_PI) * ( 17.0/3.0 + (asMH/M_PI) * ( (35.94 - 1.36*NF) + (164.14 - 25.77*NF + 0.26*NF*NF)*(asMH/M_PI) ) );
3571 Deltamt = (asMH/M_PI) * (asMH/M_PI) * ( 1.57 + (4.0/3.0)*log(
mHl/
mtpole) + (4.0/9.0) * log(mf/
mHl) * log(mf/
mHl) );
3573 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3584 double asMH,DeltaQCD,Deltamt,NF;
3591 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3595 DeltaQCD = 1 + (asMH/M_PI) * ( 17.0/3.0 + (asMH/M_PI) * ( (35.94 - 1.36*NF) + (164.14 - 25.77*NF + 0.26*NF*NF)*(asMH/M_PI) ) );
3597 Deltamt = (asMH/M_PI) * (asMH/M_PI) * ( 1.57 + (4.0/3.0)*log(
mHl/
mtpole) + (4.0/9.0) * log(mf/
mHl) * log(mf/
mHl) );
3599 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3610 double asMH,DeltaQCD,Deltamt,NF;
3617 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3621 DeltaQCD = 1 + (asMH/M_PI) * ( 17.0/3.0 + (asMH/M_PI) * ( (35.94 - 1.36*NF) + (164.14 - 25.77*NF + 0.26*NF*NF)*(asMH/M_PI) ) );
3623 Deltamt = (asMH/M_PI) * (asMH/M_PI) * ( 1.57 + (4.0/3.0)*log(
mHl/
mtpole) + (4.0/9.0) * log(mf/
mHl) * log(mf/
mHl) );
3625 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3706 double Qf, geLSM, gfRSM, is2c2, GZ, Mz2s;
3714 is2c2 = 1. /
s02() /
c02();
3720 if (f.
is(
"ELECTRON")) {
3722 gfRSM = - Qf *
s02();
3723 }
else if (f.
is(
"MU")) {
3725 gfRSM = - Qf *
s02();
3726 }
else if (f.
is(
"TAU")) {
3728 gfRSM = - Qf *
s02();
3729 }
else if (f.
is(
"UP")) {
3731 gfRSM = - Qf *
s02();
3732 }
else if (f.
is(
"CHARM")) {
3734 gfRSM = - Qf *
s02();
3735 }
else if (f.
is(
"DOWN")) {
3737 gfRSM = - Qf *
s02();
3738 }
else if (f.
is(
"STRANGE")) {
3740 gfRSM = - Qf *
s02();
3741 }
else if (f.
is(
"BOTTOM")) {
3743 gfRSM = - Qf *
s02();
3745 throw std::runtime_error(
"StandardModel::MLR2eeff: wrong argument");
3749 + (is2c2 * is2c2 * (geLSM * geLSM * gfRSM * gfRSM) *
s *
s
3750 + 2.0 * Qf * is2c2 * (geLSM * gfRSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3757 double Qf, geRSM, gfLSM, is2c2, GZ, Mz2s;
3765 is2c2 = 1. /
s02() /
c02();
3771 if (f.
is(
"ELECTRON")) {
3774 }
else if (f.
is(
"MU")) {
3777 }
else if (f.
is(
"TAU")) {
3780 }
else if (f.
is(
"UP")) {
3783 }
else if (f.
is(
"CHARM")) {
3786 }
else if (f.
is(
"DOWN")) {
3789 }
else if (f.
is(
"STRANGE")) {
3792 }
else if (f.
is(
"BOTTOM")) {
3796 throw std::runtime_error(
"StandardModel::MRL2eeff: wrong argument");
3800 + (is2c2 * is2c2 * (geRSM * geRSM * gfLSM * gfLSM) *
s *
s
3801 + 2.0 * Qf * is2c2 * (geRSM * gfLSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3809 double Qf, geLSM, gfLSM, is2c2, GZ, Mz2s;
3817 is2c2 = 1. /
s02() /
c02();
3823 if (f.
is(
"ELECTRON")) {
3826 }
else if (f.
is(
"MU")) {
3829 }
else if (f.
is(
"TAU")) {
3832 }
else if (f.
is(
"UP")) {
3835 }
else if (f.
is(
"CHARM")) {
3838 }
else if (f.
is(
"DOWN")) {
3841 }
else if (f.
is(
"STRANGE")) {
3844 }
else if (f.
is(
"BOTTOM")) {
3848 throw std::runtime_error(
"StandardModel::MLL2eeff: wrong argument");
3852 + (is2c2 * is2c2 * (geLSM * geLSM * gfLSM * gfLSM) *
s *
s
3853 + 2.0 * Qf * is2c2 * (geLSM * gfLSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3861 double Qf, geRSM, gfRSM, is2c2, GZ, Mz2s;
3869 is2c2 = 1. /
s02() /
c02();
3875 if (f.
is(
"ELECTRON")) {
3877 gfRSM = - Qf *
s02();
3878 }
else if (f.
is(
"MU")) {
3880 gfRSM = - Qf *
s02();
3881 }
else if (f.
is(
"TAU")) {
3883 gfRSM = - Qf *
s02();
3884 }
else if (f.
is(
"UP")) {
3886 gfRSM = - Qf *
s02();
3887 }
else if (f.
is(
"CHARM")) {
3889 gfRSM = - Qf *
s02();
3890 }
else if (f.
is(
"DOWN")) {
3892 gfRSM = - Qf *
s02();
3893 }
else if (f.
is(
"STRANGE")) {
3895 gfRSM = - Qf *
s02();
3896 }
else if (f.
is(
"BOTTOM")) {
3898 gfRSM = - Qf *
s02();
3900 throw std::runtime_error(
"StandardModel::MRR2eeff: wrong argument");
3904 + (is2c2 * is2c2 * (geRSM * geRSM * gfRSM * gfRSM) *
s *
s
3905 + 2.0 * Qf * is2c2 * (geRSM * gfRSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3913 return 0.25 * (cosmax * (1.0 - cosmax * (1.0 - cosmax / 3.0)) - cosmin * (1.0 - cosmin * (1.0 - cosmin / 3.0)));
3917 return 0.25 * (cosmax * (1.0 + cosmax * (1.0 + cosmax / 3.0)) - cosmin * (1.0 + cosmin * (1.0 + cosmin / 3.0)));
3930 double propZSM2,propZSMRe,MeeLR2SM;
3939 propZSM2 = s2/((
s - Mz2)*(
s - Mz2) + Mz2*GammaZSM*GammaZSM);
3940 propZSMRe = (
s*(
s - Mz2))/((
s - Mz2)*(
s - Mz2) + Mz2*GammaZSM*GammaZSM);
3942 MeeLR2SM = 1.0 + (gLeSM*gLeSM*gReSM*gReSM/(sw2cw2*sw2cw2))*propZSM2 + 2.0*(gLeSM*gReSM/sw2cw2)*propZSMRe;
3944 intM2 = MeeLR2SM*(t1*t1*t1 - t0*t0*t0)/(3.0*
s*
s);
3961 intM2 =
s*
s*(((gLeSM*gLeSM*gReSM*gReSM)/sw2cw2/sw2cw2)*(1.0/(Mz2 - t1) - 1.0/(Mz2 - t0)) - 1.0/t1 + 1.0/t0 +
3962 (2.0*gLeSM*gReSM*(-log(t1/t0) + log((-Mz2 + t1)/(-Mz2 + t0))))/(Mz2*sw2cw2));
3973 double Mz2, Mz4, s2;
3982 intM2 = (gLeSM*gLeSM*gLeSM*gLeSM*s2 + 2.0*gLeSM*gLeSM*
s*(-Mz2 +
s)*sw2cw2 + sw2cw2*sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))/(3.0*s2*sw2cw2*sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))*(pow(
s + t1,3.0) - pow(
s + t0,3.0)) +
3983 ((2.0*(1.0 + (gLeSM*gLeSM*
s*(-Mz2 +
s))/(sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))) )/
s)*(2.0*
s *(t1 - t0) + (t1*t1 - t0*t0)/2.0 + s2*log(t1/t0)) +
3984 (2.0*gLeSM*gLeSM* (-sw2cw2 + (gLeSM*gLeSM*(Mz2 -
s)*
s)/(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM))))/(
s*sw2cw2*sw2cw2)* (-(1.0/2.0)*t1*(2.0*Mz2 + 4.0*
s + t1) + (1.0/2.0)*t0*(2.0*Mz2 + 4.0*
s + t0) - (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0)) ) +
3985 (2.0*(gLeSM*gLeSM) )/(Mz2*sw2cw2)*(Mz2 *(t1 - t0) - s2*log(t1/t0) + (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0))) +
3986 (-(s2/t1) + s2/t0 + t1 - t0 + 2.0*
s*log(t1/t0)) +
3987 (gLeSM*gLeSM*gLeSM*gLeSM /sw2cw2/sw2cw2)*((Mz2 +
s)*(Mz2 +
s)*(1.0/(Mz2 - t1) - 1.0/(Mz2 - t0)) + t1 - t0 + 2.0*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0)));
3998 double Mz2, Mz4, s2;
4007 intM2 = (gReSM*gReSM*gReSM*gReSM*s2 + 2.0*gReSM*gReSM*
s*(-Mz2 +
s)*sw2cw2 + sw2cw2*sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))/(3.0*s2*sw2cw2*sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))*(pow(
s + t1,3.0) - pow(
s + t0,3.0)) +
4008 ((2.0*(1.0 + (gReSM*gReSM*
s*(-Mz2 +
s))/(sw2cw2*(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM)))) )/
s)*(2.0*
s *(t1 - t0) + (t1*t1 - t0*t0)/2.0 + s2*log(t1/t0)) +
4009 (2.0*gReSM*gReSM* (-sw2cw2 + (gReSM*gReSM*(Mz2 -
s)*
s)/(Mz4 + s2 + Mz2*(-2.0*
s + GammaZSM*GammaZSM))))/(
s*sw2cw2*sw2cw2)* (-(1.0/2.0)*t1*(2.0*Mz2 + 4.0*
s + t1) + (1.0/2.0)*t0*(2.0*Mz2 + 4.0*
s + t0) - (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0)) ) +
4010 (2.0*(gReSM*gReSM) )/(Mz2*sw2cw2)*(Mz2 *(t1 - t0) - s2*log(t1/t0) + (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0))) +
4011 (-(s2/t1) + s2/t0 + t1 - t0 + 2.0*
s*log(t1/t0)) +
4012 (gReSM*gReSM*gReSM*gReSM /sw2cw2/sw2cw2)*((Mz2 +
s)*(Mz2 +
s)*(1.0/(Mz2 - t1) - 1.0/(Mz2 - t0)) + t1 - t0 + 2.0*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0)));
4021 double sumM2, sigma;
4022 double topb = 0.3894e+9;
4023 double t0, t1, lambdaK;
4027 pLH = (1.0 - pol_e) * (1.0 + pol_p);
4028 pRH = (1.0 + pol_e) * (1.0 - pol_p);
4031 t0 = 0.5 *
s * ( -1.0 + cosmin );
4032 t1 = 0.5 *
s * ( -1.0 + cosmax );
4044 return topb * sigma;
4051 double sumM2, sigma;
4053 double topb = 0.3894e+9;
4062 pLH = (1.0 - pol_e) * (1.0 + pol_p);
4063 pRH = (1.0 + pol_e) * (1.0 - pol_p);
4065 if (f.
is(
"LEPTON")) {
4076 return topb * sigma;
4090 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4091 double relerr = 1.e-8;
4092 double abserr = 1.e-20;
4122 }
else if (
s == 136.*136.) {
4141 }
else if (
s == 161.*161.){
4160 }
else if (
s == 172.*172.) {
4179 }
else if (
s == 183.*183.) {
4198 }
else if (
s == 189.*189.) {
4217 }
else if (
s == 192.*192.) {
4236 }
else if (
s == 196.*196.) {
4255 }
else if (
s == 200.*200.) {
4274 }
else if (
s == 202.*202.) {
4293 }
else if (
s == 205.*205.) {
4312 }
else if (
s == 207.*207.) {
4332 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBmu!");
4337 gsl_set_error_handler(old_handler);
4348 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4349 double relerr = 1.e-7;
4350 double abserr = 1.e-17;
4380 }
else if (
s == 136.*136.) {
4399 }
else if (
s == 161.*161.){
4418 }
else if (
s == 172.*172.) {
4437 }
else if (
s == 183.*183.) {
4456 }
else if (
s == 189.*189.) {
4475 }
else if (
s == 192.*192.) {
4494 }
else if (
s == 196.*196.) {
4513 }
else if (
s == 200.*200.) {
4532 }
else if (
s == 202.*202.) {
4551 }
else if (
s == 205.*205.) {
4570 }
else if (
s == 207.*207.) {
4590 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaTau!");
4595 gsl_set_error_handler(old_handler);
4605 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4606 double relerr = 1.e-8;
4607 double abserr = 1.e-20;
4629 }
else if (
s == 167.*167.){
4648 }
else if (
s == 183.*183.) {
4667 }
else if (
s == 189.*189.) {
4686 }
else if (
s == 192.*192.) {
4705 }
else if (
s == 196.*196.) {
4724 }
else if (
s == 200.*200.) {
4743 }
else if (
s == 202.*202.) {
4762 }
else if (
s == 205.*205.) {
4781 }
else if (
s == 207.*207.) {
4801 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaCharm!");
4807 gsl_set_error_handler(old_handler);
4816 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4817 double relerr = 1.e-8;
4818 double abserr = 1.e-20;
4840 }
else if (
s == 167.*167.){
4859 }
else if (
s == 183.*183.) {
4878 }
else if (
s == 189.*189.) {
4897 }
else if (
s == 192.*192.) {
4916 }
else if (
s == 196.*196.) {
4935 }
else if (
s == 200.*200.) {
4954 }
else if (
s == 202.*202.) {
4973 }
else if (
s == 205.*205.) {
4992 }
else if (
s == 207.*207.) {
5012 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaBottom!");
5018 gsl_set_error_handler(old_handler);
5027 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5028 double relerr = 1.e-8;
5029 double abserr = 1.e-20;
5113 }
else if (
s == 133.*133.) {
5185 }
else if (
s == 136.*136.) {
5257 }
else if (
s == 161.*161.){
5329 }
else if (
s == 167.*167.) {
5402 }
else if (
s == 172.*172.) {
5474 }
else if (
s == 183.*183.) {
5546 }
else if (
s == 189.*189.) {
5618 }
else if (
s == 192.*192.) {
5692 }
else if (
s == 196.*196.) {
5765 }
else if (
s == 200.*200.) {
5837 }
else if (
s == 202.*202.) {
5939 }
else if (
s == 205.*205.) {
6041 }
else if (
s == 207.*207.) {
6144 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaHadron!");
6149 gsl_set_error_handler(old_handler);
6161 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6162 double relerr = 1.e-7;
6163 double abserr = 1.e-17;
6166 double AFB_noBox, sigma = 0.0;
6179 AFB_noBox = numerator/sigma;
6204 }
else if (
s == 167.*167.){
6205 double AFB_noBox, sigma = 0.0;
6218 AFB_noBox = numerator/sigma;
6243 }
else if (
s == 183.*183.) {
6244 double AFB_noBox, sigma = 0.0;
6257 AFB_noBox = numerator/sigma;
6282 }
else if (
s == 189.*189.) {
6283 double AFB_noBox, sigma = 0.0;
6296 AFB_noBox = numerator/sigma;
6321 }
else if (
s == 192.*192.) {
6322 double AFB_noBox, sigma = 0.0;
6335 AFB_noBox = numerator/sigma;
6360 }
else if (
s == 196.*196.) {
6361 double AFB_noBox, sigma = 0.0;
6374 AFB_noBox = numerator/sigma;
6399 }
else if (
s == 200.*200.) {
6400 double AFB_noBox, sigma = 0.0;
6413 AFB_noBox = numerator/sigma;
6438 }
else if (
s == 202.*202.) {
6439 double AFB_noBox, sigma = 0.0;
6452 AFB_noBox = numerator/sigma;
6477 }
else if (
s == 205.*205.) {
6478 double AFB_noBox, sigma = 0.0;
6491 AFB_noBox = numerator/sigma;
6516 }
else if (
s == 207.*207.) {
6517 double AFB_noBox, sigma = 0.0;
6530 AFB_noBox = numerator/sigma;
6556 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBbottom!");
6561 gsl_set_error_handler(old_handler);
6572 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6573 double relerr = 1.e-7;
6574 double abserr = 1.e-17;
6577 double AFB_noBox, sigma = 0.0;
6590 AFB_noBox = numerator/sigma;
6615 }
else if (
s == 167.*167.){
6616 double AFB_noBox, sigma = 0.0;
6629 AFB_noBox = numerator/sigma;
6654 }
else if (
s == 183.*183.) {
6655 double AFB_noBox, sigma = 0.0;
6668 AFB_noBox = numerator/sigma;
6693 }
else if (
s == 189.*189.) {
6694 double AFB_noBox, sigma = 0.0;
6707 AFB_noBox = numerator/sigma;
6732 }
else if (
s == 192.*192.) {
6733 double AFB_noBox, sigma = 0.0;
6746 AFB_noBox = numerator/sigma;
6771 }
else if (
s == 196.*196.) {
6772 double AFB_noBox, sigma = 0.0;
6785 AFB_noBox = numerator/sigma;
6810 }
else if (
s == 200.*200.) {
6811 double AFB_noBox, sigma = 0.0;
6824 AFB_noBox = numerator/sigma;
6849 }
else if (
s == 202.*202.) {
6850 double AFB_noBox, sigma = 0.0;
6863 AFB_noBox = numerator/sigma;
6888 }
else if (
s == 205.*205.) {
6889 double AFB_noBox, sigma = 0.0;
6902 AFB_noBox = numerator/sigma;
6927 }
else if (
s == 207.*207.) {
6928 double AFB_noBox, sigma = 0.0;
6941 AFB_noBox = numerator/sigma;
6967 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBcharm!");
6972 gsl_set_error_handler(old_handler);
6987 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6988 double relerr = 1.e-7;
6989 double abserr = 1.e-17;
7000 double AFB_noBox, sigma = 0.0;
7013 AFB_noBox = numerator/sigma;
7038 }
else if (
s == 136.*136.){
7039 double AFB_noBox, sigma = 0.0;
7052 AFB_noBox = numerator/sigma;
7077 }
else if (
s == 161.*161.){
7078 double AFB_noBox, sigma = 0.0;
7091 AFB_noBox = numerator/sigma;
7116 }
else if (
s == 172.*172.){
7117 double AFB_noBox, sigma = 0.0;
7130 AFB_noBox = numerator/sigma;
7155 }
else if (
s == 183.*183.) {
7156 double AFB_noBox, sigma = 0.0;
7169 AFB_noBox = numerator/sigma;
7194 }
else if (
s == 189.*189.) {
7195 double AFB_noBox, sigma = 0.0;
7208 AFB_noBox = numerator/sigma;
7233 }
else if (
s == 192.*192.) {
7234 double AFB_noBox, sigma = 0.0;
7247 AFB_noBox = numerator/sigma;
7272 }
else if (
s == 196.*196.) {
7273 double AFB_noBox, sigma = 0.0;
7286 AFB_noBox = numerator/sigma;
7311 }
else if (
s == 200.*200.) {
7312 double AFB_noBox, sigma = 0.0;
7325 AFB_noBox = numerator/sigma;
7350 }
else if (
s == 202.*202.) {
7351 double AFB_noBox, sigma = 0.0;
7364 AFB_noBox = numerator/sigma;
7389 }
else if (
s == 205.*205.) {
7390 double AFB_noBox, sigma = 0.0;
7403 AFB_noBox = numerator/sigma;
7428 }
else if (
s == 207.*207.) {
7429 double AFB_noBox, sigma = 0.0;
7442 AFB_noBox = numerator/sigma;
7468 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::AFBmu!");
7473 gsl_set_error_handler(old_handler);
7484 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
7485 double relerr = 1.e-7;
7486 double abserr = 1.e-17;
7497 double AFB_noBox, sigma = 0.0;
7510 AFB_noBox = numerator/sigma;
7535 }
else if (
s == 136.*136.){
7536 double AFB_noBox, sigma = 0.0;
7549 AFB_noBox = numerator/sigma;
7574 }
else if (
s == 161.*161.){
7575 double AFB_noBox, sigma = 0.0;
7588 AFB_noBox = numerator/sigma;
7613 }
else if (
s == 172.*172.){
7614 double AFB_noBox, sigma = 0.0;
7627 AFB_noBox = numerator/sigma;
7652 }
else if (
s == 183.*183.) {
7653 double AFB_noBox, sigma = 0.0;
7666 AFB_noBox = numerator/sigma;
7691 }
else if (
s == 189.*189.) {
7692 double AFB_noBox, sigma = 0.0;
7705 AFB_noBox = numerator/sigma;
7730 }
else if (
s == 192.*192.) {
7731 double AFB_noBox, sigma = 0.0;
7744 AFB_noBox = numerator/sigma;
7769 }
else if (
s == 196.*196.) {
7770 double AFB_noBox, sigma = 0.0;
7783 AFB_noBox = numerator/sigma;
7808 }
else if (
s == 200.*200.) {
7809 double AFB_noBox, sigma = 0.0;
7822 AFB_noBox = numerator/sigma;
7847 }
else if (
s == 202.*202.) {
7848 double AFB_noBox, sigma = 0.0;
7861 AFB_noBox = numerator/sigma;
7886 }
else if (
s == 205.*205.) {
7887 double AFB_noBox, sigma = 0.0;
7900 AFB_noBox = numerator/sigma;
7925 }
else if (
s == 207.*207.) {
7926 double AFB_noBox, sigma = 0.0;
7939 AFB_noBox = numerator/sigma;
7965 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBtau!");
7970 gsl_set_error_handler(old_handler);
8015 double mq =
m_q(q_flavor, sqrt(
s));
8038 double mq =
m_q(q_flavor, sqrt(
s));
8049 double sprime = (1.0 - x)*
s;
8064 double s = 130. * 130.;
8070 double s = 136. * 136.;
8076 double s = 161. * 161.;
8082 double s = 172. * 172.;
8088 double s = 183. * 183.;
8094 double s = 189. * 189.;
8100 double s = 192. * 192.;
8106 double s = 196. * 196.;
8112 double s = 200. * 200.;
8118 double s = 202. * 202.;
8124 double s = 205. * 205.;
8130 double s = 207. * 207.;
8137 double s = 130. * 130.;
8143 double s = 136. * 136.;
8149 double s = 161. * 161.;
8155 double s = 172. * 172.;
8161 double s = 183. * 183.;
8167 double s = 189. * 189.;
8173 double s = 192. * 192.;
8179 double s = 196. * 196.;
8185 double s = 200. * 200.;
8191 double s = 202. * 202.;
8197 double s = 205. * 205.;
8203 double s = 207. * 207.;
8209 double sprime = (1.0 - x)*
s;
8210 double mq =
m_q(q_flavor, sqrt(
s));
8233 double s = 130. * 130.;
8239 double s = 133. * 133.;
8245 double s = 136. * 136.;
8251 double s = 161. * 161.;
8257 double s = 167. * 167.;
8263 double s = 172. * 172.;
8269 double s = 183. * 183.;
8275 double s = 189. * 189.;
8281 double s = 192. * 192.;
8287 double s = 196. * 196.;
8293 double s = 200. * 200.;
8299 double s = 202. * 202.;
8305 double s = 205. * 205.;
8311 double s = 207. * 207.;
8320 double s = 130. * 130.;
8326 double s = 133. * 133.;
8333 double s = 136. * 136.;
8339 double s = 161. * 161.;
8345 double s = 167. * 167.;
8351 double s = 172. * 172.;
8357 double s = 183. * 183.;
8363 double s = 189. * 189.;
8369 double s = 192. * 192.;
8375 double s = 196. * 196.;
8381 double s = 200. * 200.;
8387 double s = 202. * 202.;
8393 double s = 205. * 205.;
8399 double s = 207. * 207.;
8409 double s = 130. * 130.;
8415 double s = 133. * 133.;
8421 double s = 136. * 136.;
8427 double s = 161. * 161.;
8433 double s = 167. * 167.;
8439 double s = 172. * 172.;
8445 double s = 183. * 183.;
8451 double s = 189. * 189.;
8457 double s = 192. * 192.;
8463 double s = 196. * 196.;
8469 double s = 200. * 200.;
8475 double s = 202. * 202.;
8481 double s = 205. * 205.;
8487 double s = 207. * 207.;
8497 double s = 130. * 130.;
8503 double s = 133. * 133.;
8509 double s = 136. * 136.;
8515 double s = 161. * 161.;
8521 double s = 167. * 167.;
8527 double s = 172. * 172.;
8533 double s = 183. * 183.;
8539 double s = 189. * 189.;
8545 double s = 192. * 192.;
8551 double s = 196. * 196.;
8557 double s = 200. * 200.;
8563 double s = 202. * 202.;
8569 double s = 205. * 205.;
8575 double s = 207. * 207.;
8585 double s = 130. * 130.;
8591 double s = 133. * 133.;
8597 double s = 136. * 136.;
8603 double s = 161. * 161.;
8609 double s = 167. * 167.;
8615 double s = 172. * 172.;
8621 double s = 183. * 183.;
8627 double s = 189. * 189.;
8633 double s = 192. * 192.;
8639 double s = 196. * 196.;
8645 double s = 200. * 200.;
8651 double s = 202. * 202.;
8657 double s = 205. * 205.;
8663 double s = 207. * 207.;
8679 double s = 130. * 130.;
8685 double s = 136. * 136.;
8691 double s = 161. * 161.;
8697 double s = 172. * 172.;
8703 double s = 183. * 183.;
8709 double s = 189. * 189.;
8715 double s = 192. * 192.;
8721 double s = 196. * 196.;
8727 double s = 200. * 200.;
8733 double s = 202. * 202.;
8739 double s = 205. * 205.;
8745 double s = 207. * 207.;
8755 double s = 130. * 130.;
8761 double s = 136. * 136.;
8767 double s = 161. * 161.;
8773 double s = 172. * 172.;
8779 double s = 183. * 183.;
8785 double s = 189. * 189.;
8791 double s = 192. * 192.;
8797 double s = 196. * 196.;
8803 double s = 200. * 200.;
8809 double s = 202. * 202.;
8815 double s = 205. * 205.;
8821 double s = 207. * 207.;
8832 double mq =
m_q(q_flavor, sqrt(
s));
8844 double s = 130. * 130.;
8850 double s = 133. * 133.;
8856 double s = 136. * 136.;
8862 double s = 161. * 161.;
8868 double s = 167. * 167.;
8874 double s = 172. * 172.;
8880 double s = 183. * 183.;
8886 double s = 189. * 189.;
8892 double s = 192. * 192.;
8898 double s = 196. * 196.;
8904 double s = 200. * 200.;
8910 double s = 202. * 202.;
8916 double s = 205. * 205.;
8922 double s = 207. * 207.;
8931 double s = 130. * 130.;
8937 double s = 133. * 133.;
8943 double s = 136. * 136.;
8949 double s = 161. * 161.;
8955 double s = 167. * 167.;
8961 double s = 172. * 172.;
8967 double s = 183. * 183.;
8973 double s = 189. * 189.;
8979 double s = 192. * 192.;
8985 double s = 196. * 196.;
8991 double s = 200. * 200.;
8997 double s = 202. * 202.;
9003 double s = 205. * 205.;
9009 double s = 207. * 207.;
9019 double s = 130. * 130.;
9025 double s = 133. * 133.;
9031 double s = 136. * 136.;
9037 double s = 161. * 161.;
9043 double s = 167. * 167.;
9049 double s = 172. * 172.;
9055 double s = 183. * 183.;
9061 double s = 189. * 189.;
9067 double s = 192. * 192.;
9073 double s = 196. * 196.;
9079 double s = 200. * 200.;
9085 double s = 202. * 202.;
9091 double s = 205. * 205.;
9097 double s = 207. * 207.;
9107 double s = 130. * 130.;
9113 double s = 133. * 133.;
9119 double s = 136. * 136.;
9125 double s = 161. * 161.;
9131 double s = 167. * 167.;
9139 double s = 172. * 172.;
9145 double s = 183. * 183.;
9151 double s = 189. * 189.;
9157 double s = 192. * 192.;
9163 double s = 196. * 196.;
9169 double s = 200. * 200.;
9175 double s = 202. * 202.;
9181 double s = 205. * 205.;
9187 double s = 207. * 207.;
9197 double s = 130. * 130.;
9203 double s = 133. * 133.;
9209 double s = 136. * 136.;
9215 double s = 161. * 161.;
9221 double s = 167. * 167.;
9227 double s = 172. * 172.;
9233 double s = 183. * 183.;
9239 double s = 189. * 189.;
9245 double s = 192. * 192.;
9251 double s = 196. * 196.;
9257 double s = 200. * 200.;
9263 double s = 202. * 202.;
9269 double s = 205. * 205.;
9275 double s = 207. * 207.;
9293 double sprime = (1.0 - x)*
s;
9299 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
9305 double s = 130. * 130.;
9311 double s = 136. * 136.;
9317 double s = 161. * 161.;
9323 double s = 172. * 172.;
9329 double s = 183. * 183.;
9335 double s = 189. * 189.;
9341 double s = 192. * 192.;
9347 double s = 196. * 196.;
9353 double s = 200. * 200.;
9359 double s = 202. * 202.;
9365 double s = 205. * 205.;
9371 double s = 207. * 207.;
9378 double s = 130. * 130.;
9384 double s = 136. * 136.;
9390 double s = 161. * 161.;
9396 double s = 172. * 172.;
9402 double s = 183. * 183.;
9408 double s = 189. * 189.;
9414 double s = 192. * 192.;
9420 double s = 196. * 196.;
9426 double s = 200. * 200.;
9432 double s = 202. * 202.;
9438 double s = 205. * 205.;
9444 double s = 207. * 207.;
9452 double sprime = (1.0 - x)*
s;
9454 double mq =
m_q(q_flavor, sqrt(
s));
9461 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
9467 double s = 133. * 133.;
9473 double s = 167. * 167.;
9479 double s = 172. * 172.;
9485 double s = 183. * 183.;
9491 double s = 189. * 189.;
9497 double s = 192. * 192.;
9503 double s = 196. * 196.;
9509 double s = 200. * 200.;
9515 double s = 202. * 202.;
9521 double s = 205. * 205.;
9527 double s = 207. * 207.;
9536 double s = 133. * 133.;
9542 double s = 167. * 167.;
9548 double s = 172. * 172.;
9554 double s = 183. * 183.;
9560 double s = 189. * 189.;
9566 double s = 192. * 192.;
9572 double s = 196. * 196.;
9578 double s = 200. * 200.;
9584 double s = 202. * 202.;
9590 double s = 205. * 205.;
9596 double s = 207. * 207.;
9613 throw std::runtime_error(
"ERROR: StandardModel::LEP2dsigmadcosE only implemented via semi-analytical approx");
9626 throw std::runtime_error(
"ERROR: StandardModel::LEP2dsigmadcosMu only implemented via semi-analytical approx");
9639 throw std::runtime_error(
"ERROR: StandardModel::LEP2dsigmadcosTau only implemented via semi-analytical approx");
std::map< std::string, double > DPars
An observable class for the forward-backward asymmetry in at the pole.
An observable class for the forward-backward asymmetry in at the pole.
An observable class for the forward-backward asymmetry in at the pole.
void computeCKMwithWolfenstein(double Lambda_v, double A_v, double Rho_v, double Eta_v)
A set method to calculate the CKM matrix from Wolfenstein parameters.
const gslpp::complex getV_ud() const
A member for returning the value of the CKM element .
const gslpp::complex getV_us() const
A member for returning the value of the CKM element .
const double computeGamma() const
The CKM angle .
const gslpp::complex getV_cb() const
A member for returning the value of the CKM element .
const gslpp::complex getV_ub() const
A member for returning the value of the CKM element .
const gslpp::matrix< gslpp::complex > getCKM() const
A member for returning the CKM matrix.
const double getA() const
A member for returning the value of the Wolfenstein parameter .
void computeCKM(double Vus_v, double Vcb_v, double Vub_v, double gamma_v, bool useVud=false)
A set method to calculate the CKM matrix from CKM elements and .
const double getRhoBar() const
A member for returning the value of the Wolfenstein parameter .
const double getLambda() const
A member for returning the value of the Wolfenstein parameter .
const double getEtaBar() const
A member for returning the value of the Wolfenstein parameter .
A class for one-loop corrections to the EW precision observables.
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double rho_GammaW(const Particle fi, const Particle fj, const double Mw_i) const
EW radiative corrections to the width of , denoted as .
double DeltaRbar_rem(const double Mw_i) const
.
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex FZ(const double s, const double Mw_i) const
The unified form factor .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double DeltaRho(const double Mw_i) const
Leading one-loop contribution of to , denoted as .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
gslpp::complex FW(const double s, const Particle f, const double Mw_i) const
The unified form factor for .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
A class for three-loop corrections to the EW precision observables.
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
double DeltaRho(const double Mw_i) const
Leading three-loop contribution of to , denoted as .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
A class for three-loop corrections to the EW precision observables.
double DeltaRho(const double Mw_i) const
Leading three-loop contribution of to , denoted as .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
A class for three-loop corrections to the EW precision observables.
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double DeltaRho(const double Mw_i) const
Leading three-loop QCD contribution of to , denoted as .
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
A class for the form factors , and in the processes at LEP-II.
double dsigma_q_box(const QCD::quark q, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
double G_3prime_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double sigma_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double QED_FSR_forSigma(const double s, const double Qf) const
double AFB_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double QCD_FSR_forAFB(const QCD::quark q, const double mf, const double s) const
double QCD_FSR_forSigma(const double s) const
double AFB_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double sigma_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double H_ISR_FB(const double x, const double s) const
double dsigma_l_box(const QCD::lepton l, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
double G_3prime_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
double H_ISR(const double x, const double s) const
A class for two-loop corrections to the EW precision observables.
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaRho(const double Mw_i) const
Leading two-loop contribution of to , denoted as .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double tau_2() const
The function .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
A class for two-loop corrections to the EW precision observables.
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaRho(const double Mw_i) const
Leading two-loop QCD contribution of to , denoted as .
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
A class for cache variables used in computing radiative corrections to the EW precision observables.
double a_f(const Particle f) const
The tree-level axial-vector coupling for , denoted as .
double getZeta4() const
A get method to access the value of the zeta function .
double v_f(const Particle f, const double Mw_i) const
The tree-level vector coupling for , denoted as .
double delta_f(const Particle f, const double Mw_i) const
.
double getZeta5() const
A get method to access the value of the zeta function .
double getZeta3() const
A get method to access the value of the zeta function .
double Xt_GF() const
The quantity with the coupling .
double alsMt() const
The strong coupling at NNLO.
void setFlagCacheInEWSMcache(bool FlagCacheInEWSMcache)
A set method to change the model flag CacheInEWSMcache in StandardModel.
double mf(const Particle f, const double mu=0.0, const orders order=FULLNNLO) const
The mass of an SM fermion.
double getZeta2() const
A get method to access the value of the zeta function .
void setSMupdated() const
a member used for the caching for .
bool setFlag(const std::string name, const bool value)
The parent class in LeptonFlavour for calculating all the Wilson coefficients for various Lepton Flav...
void addMissingModelParameter(const std::string &missingParameterName)
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
bool IsModelInitialized() const
A method to check if the model is initialized.
std::string name
The name of the model.
void setModelName(const std::string name)
A method to set the name of the model.
bool UpdateError
A boolean set to false if update is successful.
void raiseMissingModelParameterCount()
An observable class for the -boson mass.
void computePMNS(double s12_v, double s13_v, double s23_v, double delta_v, double alpha21_v, double alpha31_v)
A set method to calculate the PMNS matrix from PMNS parameters.
gslpp::matrix< gslpp::complex > getPMNS() const
A member for returning the PMNS matrix.
bool is(std::string name_i) const
double getIsospin() const
A get method to access the particle isospin.
const double & getMass() const
A get method to access the particle mass.
std::string getName() const
void setMass(double mass)
A set method to fix the particle mass.
double getCharge() const
A get method to access the particle charge.
A class for parameters related to QCD, hadrons and quarks.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for QCD have been provided in model initialization.
bool requireYu
Switch for generating the Yukawa couplings to the up-type quarks.
double mut
The threshold between six- and five-flavour theory in GeV.
virtual bool PostUpdate()
The post-update method for QCD.
const double Beta2(const double nf) const
The coefficient for a certain number of flavours .
double zeta2
computed with the GSL.
double Nc
The number of colours.
double zeta3
computed with the GSL.
double muc
The threshold between four- and three-flavour theory in GeV.
virtual bool PreUpdate()
The pre-update method for QCD.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of QCD.
const double Beta1(const double nf) const
The coefficient for a certain number of flavours .
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
quark
An enum type for quarks.
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of QCD.
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the QCD parameters found in the argument.
const double BelowTh(const double mu) const
The active flavour threshold below the scale as defined in QCD::Thresholds().
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of QCD.
const double Beta0(const double nf) const
The coefficient for a certain number of flavours .
const std::string orderToString(const orders order) const
Converts an object of the enum type "orders" to the corresponding string.
const double Beta3(const double nf) const
The coefficient for a certain number of flavours .
bool requireYd
Switch for generating the Yukawa couplings to the down-type quarks.
const double getMtpole() const
A get method to access the pole mass of the top quark.
const double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
const double Nf(const double mu) const
The number of active flavour at scale .
const double AlsWithInit(const double mu, const double alsi, const double mu_i, const int nf, const orders order) const
Computes the running strong coupling from in the scheme, where it is forbidden to across a flavour...
const double NfThresholdCorrections(double mu, double M, double als, int nf, orders order) const
Threshold corrections in matching with from eq. (34) of hep-ph/0512060.
const orders FullOrder(orders order) const
Return the FULLORDER enum corresponding to order.
lepton
An enum type for leptons.
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
const double AlsByOrder(const double mu, const orders order=FULLNLO, bool Nf_thr=true) const
Particle quarks[6]
The vector of all SM quarks.
const double MassOfNf(int nf) const
The Mbar mass of the heaviest quark in the theory with Nf active flavour.
double mtpole
The pole mass of the top quark.
double mub
The threshold between five- and four-flavour theory in GeV.
void CacheShift(double cache[][5], int n) const
A member used to manage the caching for this class.
const double getIntegrand_sigmaWithISR_down183(double x) const
virtual const double LEP2sigmaCharm(const double s) const
double dAle5Mz
The five-flavour hadronic contribution to the electromagnetic coupling, , used as input for FlagMWinp...
EWSMThreeLoopEW * myThreeLoopEW
A pointer to an object of type EWSMThreeLoopEW.
const double getIntegrand_dsigmaBox_strange167(double x) const
double dAl5hMz
The five-flavour hadronic contribution to the electromagnetic coupling, . (Non-input parameter)
double Delta_EWQCD(const QCD::quark q) const
The non-factorizable EW-QCD corrections to the partial widths for , denoted as .
const double getIntegrand_sigmaWithISR_strange167(double x) const
double delSin2th_b
The theoretical uncertainty in , denoted as .
virtual const double GammaHtoZZstar() const
The in the Standard Model.
virtual const double SigmaeeHvv(const double sqrt_s, const double Pe, const double Pp) const
The in the Standard Model.
double Vub
used as an input for FlagWolfenstein = FALSE
virtual const double BrHtocc() const
The Br in the Standard Model.
double taub() const
Top-mass corrections to the vertex, denoted by .
static std::string SMvars[NSMvars]
A string array containing the labels of the model parameters in StandardModel.
const double MRL2eeff(const Particle f, const double s) const
const double getIntegrand_sigmaWithISR_strange189(double x) const
const double getIntegrand_dsigmaBox_mu200(double x) const
double A
The CKM parameter in the Wolfenstein parameterization.
const double getIntegrand_sigmaWithISR_strange161(double x) const
virtual const double sin2thetaEff(const Particle f) const
The effective weak mixing angle for at the the -mass scale.
EWSMcache * getMyEWSMcache() const
A get method to retrieve the member pointer of type EWSMcache.
bool requireCKM
An internal flag to control whether the CKM matrix has to be recomputed.
virtual const double GammaHtotautau() const
The in the Standard Model.
const double getIntegrand_AFBnumeratorWithISR_tau130(double x) const
virtual const double GammaZ(const Particle f) const
The partial decay width, .
const double uovers2(const double cosmin, const double cosmax) const
virtual void computeCKM()
The method to compute the CKM matrix.
const double getIntegrand_AFBnumeratorWithISR_charm133(double x) const
const double getIntegrand_sigmaWithISR_charm192(double x) const
const double getIntegrand_AFBnumeratorWithISR_tau200(double x) const
double gamma
used as an input for FlagWolfenstein = FALSE
double Vud
used as an input for FlagWolfenstein = FALSE and FlagUseVud = TRUE
const double getIntegrand_dsigmaBox_up130(double x) const
const double getIntegrand_dsigmaBox_down207(double x) const
virtual const double BrHtoZZstar() const
The Br in the Standard Model.
const double getIntegrand_dsigmaBox_tau136(double x) const
const bool IsFlagNoApproximateGammaZ() const
A method to retrieve the model flag NoApproximateGammaZ.
virtual bool PreUpdate()
The pre-update method for StandardModel.
const double getIntegrand_AFBnumeratorWithISR_mu192(double x) const
const double getIntegrand_sigmaWithISR_tau207(double x) const
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double getIntegrand_AFBnumeratorWithISR_bottom192(double x) const
const double getIntegrand_dsigmaBox_down200(double x) const
const double tovers2(const double cosmin, const double cosmax) const
gslpp::complex AHZga_W(const double tau, const double lambda) const
W loop function entering in the calculation of the effective coupling.
const double getIntegrand_dsigmaBox_strange172(double x) const
const double sW2_MSbar_Approx() const
The (approximated formula for the) square of the sine of the weak mixing angle in the MSbar scheme,...
const double getIntegrand_dsigmaBox_mu207(double x) const
virtual ~StandardModel()
The default destructor.
virtual const double LEP2sigmaHadron(const double s) const
const double getIntegrand_dsigmaBox_up202(double x) const
const double getIntegrand_sigmaWithISR_down192(double x) const
std::string FlagRhoZ
A string for the model flag RhoZ.
const double getIntegrand_AFBnumeratorWithISR_mu207(double x) const
virtual const double BrHtomumu() const
The Br in the Standard Model.
const double getIntegrand_dsigmaBox_strange130(double x) const
const double getIntegrand_AFBnumeratorWithISR_charm183(double x) const
virtual const double LEP2sigmaTau(const double s) const
double Mz
The mass of the boson in GeV.
EWSMThreeLoopQCD * myThreeLoopQCD
A pointer to an object of type EWSMThreeLoopQCD.
virtual const double TauLFU_gtaugmuPi() const
The computation of the LFU ratio .
virtual const double GammaHtogaga() const
The in the Standard Model.
const double getIntegrand_AFBnumeratorWithISR_tau172(double x) const
const double MLL2eeff(const Particle f, const double s, const double t) const
const double getIntegrand_sigmaWithISR_tau205(double x) const
double m_q(const QCD::quark q, const double mu, const orders order=FULLNLO) const
const double getIntegrand_AFBnumeratorWithISR_bottom196(double x) const
const double getIntegrand_sigmaWithISR_strange136(double x) const
const double getIntegrand_sigmaWithISR_down207(double x) const
const double getIntegrand_sigmaWithISR_tau196(double x) const
const double getIntegrand_dsigmaBox_down136(double x) const
const double getIntegrand_dsigmaBox_strange189(double x) const
const double getIntegrand_sigmaWithISR_bottom200(double x) const
const double MwFromMwbar(const double Mwbar) const
A method to convert the -boson mass in the complex-pole/fixed-width scheme to that in the experimenta...
const double getIntegrand_sigmaWithISR_up183(double x) const
virtual const double GammaHtobb() const
The in the Standard Model.
const double getIntegrand_dsigmaBox_mu136(double x) const
const double getIntegrand_sigmaWithISR_strange183(double x) const
virtual const double AFB(const Particle f) const
const double getIntegrand_dsigmaBox_down183(double x) const
double RAq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the axial-vector-c...
const double getIntegrand_dsigmaBox_charm130(double x) const
const double getMz() const
A get method to access the mass of the boson .
const double getIntegrand_AFBnumeratorWithISR_tau192(double x) const
const double getIntegrand_sigmaWithISR_strange200(double x) const
const double getIntegrand_AFBnumeratorWithISR_charm205(double x) const
void setFlagCacheInStandardModel(bool FlagCacheInStandardModel)
A set method to change the model flag CacheInStandardModel of StandardModel.
const double getIntegrand_sigmaWithISR_tau161(double x) const
const double getIntegrand_sigmaWithISR_up167(double x) const
double GammaW_cache
A cache of the value of .
double delMw
The theoretical uncertainty in , denoted as , in GeV.
virtual const double LEP2AFBtau(const double s) const
const double getIntegrand_AFBnumeratorWithISR_tau196(double x) const
bool flag_order[orders_EW_size]
An array of internal flags controlling the inclusions of higher-order corrections.
virtual const gslpp::complex rhoZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
const double getIntegrand_AFBnumeratorWithISR_charm200(double x) const
virtual const double gLnuN2() const
The effective neutrino nucleon LH coupling: gLnuN2.
const double getIntegrand_sigmaWithISR_strange207(double x) const
const double getIntegrand_AFBnumeratorWithISR_mu196(double x) const
const double getIntegrand_dsigmaBox_mu189(double x) const
const double Ale(double mu, orders order, bool Nf_thr=true) const
The running electromagnetic coupling in the scheme.
const double getIntegrand_dsigmaBox_down161(double x) const
virtual const double Gamma_tau_l_nunu(const Particle l) const
The computation of the leptonic tau decays.
StandardModel()
The default constructor.
const double getIntegrand_dsigmaBox_strange207(double x) const
const double getIntegrand_sigmaWithISR_down202(double x) const
const double Integrand_dsigmaBox_q(double cosTheta, const QCD::quark q_flavor, const double s) const
virtual const double LEP2dsigmadcosBinTau(const double s, const double cos, const double cosmin, const double cosmax) const
const double getIntegrand_dsigmaBox_bottom189(double x) const
EWSMTwoLoopEW * myTwoLoopEW
A pointer to an object of type EWSMTwoLoopEW.
const double getIntegrand_AFBnumeratorWithISR_mu136(double x) const
const double getIntegrand_AFBnumeratorWithISR_mu130(double x) const
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
const double getIntegrand_dsigmaBox_charm161(double x) const
const double getIntegrand_dsigmaBox_up192(double x) const
void ComputeDeltaRho(const double Mw_i, double DeltaRho[orders_EW_size]) const
A method to collect computed via subclasses.
const double getIntegrand_sigmaWithISR_strange202(double x) const
double RVq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the vector-current...
virtual const double LEP2Rbottom(const double s) const
const double getIntegrand_sigmaWithISR_tau183(double x) const
bool FlagFixMuwMut
A boolean for the model flag FixMuwMut.
const double AlsEByOrder(double mu, orders order, bool Nf_thr) const
const double getAlsMz() const
A get method to access the value of .
const double getIntegrand_sigmaWithISR_tau130(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom172(double x) const
virtual const double RWlilj(const Particle li, const Particle lj) const
The lepton universality ratio .
gslpp::complex AH_f(const double tau) const
Fermionic loop function entering in the calculation of the effective and couplings.
virtual const double Gamma_inv() const
The invisible partial decay width of the boson, .
const double getIntegrand_dsigmaBox_bottom207(double x) const
const double getIntegrand_AFBnumeratorWithISR_mu172(double x) const
virtual const double Qwp() const
The computation of the proton weak charge: Qwp.
const double getIntegrand_dsigmaBox_tau183(double x) const
const double getIntegrand_AFBnumeratorWithISR_mu202(double x) const
const double getIntegrand_AFBnumeratorWithISR_charm172(double x) const
const double getIntegrand_dsigmaBox_down202(double x) const
virtual const double R_inv() const
The ratio of the invisible and leptonic (electron) decay widths of the boson, .
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
CKM myCKM
An object of type CKM.
virtual const double LEP2AFBe(const double s) const
const double getIntegrand_sigmaWithISR_charm183(double x) const
const double getIntegrand_dsigmaBox_bottom202(double x) const
const double getIntegrand_dsigmaBox_bottom200(double x) const
bool checkEWPOscheme(const std::string scheme) const
A method to check if a given scheme name in string form is valid.
const double getIntegrand_dsigmaBox_bottom205(double x) const
const double getIntegrand_dsigmaBox_tau196(double x) const
const double getIntegrand_sigmaWithISR_tau200(double x) const
const double getIntegrand_sigmaWithISR_bottom207(double x) const
const double getIntegrand_dsigmaBox_bottom183(double x) const
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of StandardModel.
bool requireYn
An internal flag to control whether the neutrino Yukawa matrix has to be recomputed.
const double getIntegrand_dsigmaBox_mu161(double x) const
const double eeffsigma(const Particle f, const double pol_e, const double pol_p, const double s, const double cosmin, const double cosmax) const
virtual const double BrHtotautau() const
The Br in the Standard Model.
virtual const double Gamma_muon() const
The computation of the muon decay.
const double getIntegrand_dsigmaBox_up200(double x) const
const double intMLR2eeeets2(const double s, const double t0, const double t1) const
const double getIntegrand_dsigmaBox_tau192(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom207(double x) const
const double getIntegrand_AFBnumeratorWithISR_tau136(double x) const
const double DeltaAlphaTop(const double s) const
Top-quark contribution to the electromagnetic coupling , denoted as .
const double getIntegrand_sigmaWithISR_charm205(double x) const
const double getIntegrand_dsigmaBox_tau189(double x) const
virtual const double BrHtogaga() const
The Br in the Standard Model.
const double getIntegrand_AFBnumeratorWithISR_charm207(double x) const
gsl_integration_workspace * w_GSL1
virtual const double SigmaeeZH(const double sqrt_s, const double Pe, const double Pp) const
The in the Standard Model.
virtual const gslpp::complex kappaZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
gslpp::matrix< gslpp::complex > Yn
The Yukawa matrix of the neutrinos.
const double getIntegrand_AFBnumeratorWithISR_charm202(double x) const
EWSMTwoFermionsLEP2 * myTwoFermionsLEP2
A pointer to an object of type EWSMTwoFermionsLEP2.
Matching< StandardModelMatching, StandardModel > SMM
An object of type Matching.
virtual const double Gamma_had() const
The hadronic decay width of the boson, .
const double getIntegrand_sigmaWithISR_charm207(double x) const
const double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell scheme.
virtual void computeYukawas()
The method to compute the Yukawas matrix.
virtual const double rho_GammaW(const Particle fi, const Particle fj) const
EW radiative corrections to the width of , denoted as .
const double AleWithInit(double mu, double alsi, double mu_i, orders order) const
const double getIntegrand_sigmaWithISR_bottom136(double x) const
const double getIntegrand_sigmaWithISR_charm202(double x) const
gslpp::matrix< gslpp::complex > Yu
The Yukawa matrix of the up-type quarks.
virtual const double LEP2AFBcharm(const double s) const
std::string FlagMw
A string for the model flag Mw.
const double Integrand_sigmaWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
const double getIntegrand_AFBnumeratorWithISR_tau183(double x) const
virtual const double GammaHtogg() const
The in the Standard Model.
double delsigma0H
The theoretical uncertainty in , denoted as in nb.
virtual const double BrHtobb() const
The Br in the Standard Model.
virtual const gslpp::complex gA_f(const Particle f) const
The effective leptonic neutral-current axial-vector coupling in the SM.
const double getIntegrand_sigmaWithISR_bottom130(double x) const
const double getIntegrand_sigmaWithISR_charm161(double x) const
const double getIntegrand_sigmaWithISR_mu207(double x) const
virtual const double GammaHtoZga() const
The in the Standard Model.
const double getIntegrand_sigmaWithISR_bottom192(double x) const
virtual const double alrmoller(const double q2, const double y) const
The computation of the parity violating asymmetry in Moller scattering.
double rhob
The CKM parameter in the Wolfenstein parameterization.
Particle leptons[6]
An array of Particle objects for the leptons.
const double Integrand_AFBnumeratorWithISR_q(double x, const QCD::quark q_flavor, const double s) const
const double getIntegrand_sigmaWithISR_charm172(double x) const
const double getIntegrand_sigmaWithISR_charm200(double x) const
const double getIntegrand_dsigmaBox_up167(double x) const
const double getIntegrand_dsigmaBox_mu183(double x) const
const double eeffsigmaEbin(const double pol_e, const double pol_p, const double s, const double cosmin, const double cosmax) const
double delSin2th_l
The theoretical uncertainty in , denoted as .
const double getIntegrand_dsigmaBox_charm167(double x) const
virtual const double RWc() const
The ratio .
const double getIntegrand_sigmaWithISR_mu172(double x) const
const double getIntegrand_sigmaWithISR_mu136(double x) const
const double sigma_NoISR_q(const QCD::quark q_flavor, const double s) const
bool FlagMWinput
A boolean for the model flag MWinput.
virtual const double Ruc() const
const double getIntegrand_dsigmaBox_strange200(double x) const
const double getIntegrand_dsigmaBox_mu172(double x) const
const double getIntegrand_sigmaWithISR_bottom196(double x) const
virtual const double sigma0_had() const
The hadronic cross section for at the -pole, .
virtual const double GammaW() const
The total width of the boson, .
const double intMLRtilde2eeeest2(const double s, const double t0, const double t1) const
const double getIntegrand_dsigmaBox_strange196(double x) const
const double s02() const
The square of the sine of the weak mixing angle defined without weak radiative corrections.
Flavour SMFlavour
An object of type Flavour.
gslpp::complex g_triangle(const double tau) const
Loop function entering in the calculation of the effective coupling.
const double getIntegrand_dsigmaBox_up207(double x) const
const double getIntegrand_sigmaWithISR_charm133(double x) const
bool FlagWithoutNonUniversalVC
A boolean for the model flag WithoutNonUniversalVC.
const double getIntegrand_sigmaWithISR_down200(double x) const
bool FlagSMAux
A boolean for the model flag SMAux.
const double getIntegrand_sigmaWithISR_charm130(double x) const
const double getIntegrand_sigmaWithISR_down196(double x) const
const double getIntegrand_sigmaWithISR_bottom172(double x) const
gslpp::matrix< gslpp::complex > Yd
The Yukawa matrix of the down-type quarks.
const double getIntegrand_sigmaWithISR_up133(double x) const
virtual const double LEP2AFBmu(const double s) const
virtual const double BrW(const Particle fi, const Particle fj) const
The branching ratio of the boson decaying into a SM fermion pair, .
const double getIntegrand_dsigmaBox_down189(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom200(double x) const
const double getIntegrand_sigmaWithISR_charm167(double x) const
const double Integrand_dsigmaBox_l(double cosTheta, const QCD::lepton l_flavor, const double s) const
EWSMOneLoopEW * myOneLoopEW
A pointer to an object of type EWSMOneLoopEW.
double delR0c
The theoretical uncertainty in , denoted as .
virtual const double epsilon2() const
The SM contribution to the epsilon parameter .
const double getIntegrand_dsigmaBox_charm205(double x) const
const double getIntegrand_sigmaWithISR_up172(double x) const
virtual const double LEP2dsigmadcosMu(const double s, const double cos) const
const double getIntegrand_dsigmaBox_up161(double x) const
virtual const double Qwemoller(const double q2, const double y) const
The computation of the electron's weak charge.
const double getIntegrand_dsigmaBox_tau202(double x) const
virtual const double DeltaR() const
The SM prediction for derived from that for the boson mass.
std::string FlagKappaZ
A string for the model flag KappaZ.
const double getIntegrand_dsigmaBox_charm183(double x) const
const double getIntegrand_dsigmaBox_bottom196(double x) const
virtual const double LEP2dsigmadcosBinE(const double s, const double cos, const double cosmin, const double cosmax) const
const double getIntegrand_sigmaWithISR_strange205(double x) const
const double getIntegrand_dsigmaBox_bottom172(double x) const
virtual const double Gamma_Z() const
The total decay width of the boson, .
const double getIntegrand_dsigmaBox_down133(double x) const
const double getIntegrand_dsigmaBox_mu192(double x) const
const double getIntegrand_dsigmaBox_down167(double x) const
const double getIntegrand_dsigmaBox_mu196(double x) const
virtual const double gRnuN2() const
The effective neutrino nucleon RH coupling: gRnuN2.
const double getIntegrand_sigmaWithISR_strange133(double x) const
const bool IsFlagWithoutNonUniversalVC() const
A method to retrieve the model flag WithoutNonUniversalVC.
const double getIntegrand_sigmaWithISR_tau189(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom205(double x) const
double GF
The Fermi constant in .
const double getIntegrand_sigmaWithISR_down130(double x) const
const double getIntegrand_sigmaWithISR_strange192(double x) const
virtual const double epsilonb() const
The SM contribution to the epsilon parameter .
EWSMApproximateFormulae * myApproximateFormulae
A pointer to an object of type EWSMApproximateFormulae.
virtual const gslpp::complex deltaRhoZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
const double getIntegrand_dsigmaBox_bottom130(double x) const
virtual const double GammaHtocc() const
The in the Standard Model.
const double getIntegrand_sigmaWithISR_strange130(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom189(double x) const
const double getIntegrand_dsigmaBox_tau172(double x) const
const double intMRR2eeeeus2(const double s, const double t0, const double t1) const
double resumKappaZ(const double DeltaRho[orders_EW_size], const double deltaKappa_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effetvive coupling from , and .
virtual const double TauLFU_gtaugmuK() const
The computation of the LFU ratio .
const double getIntegrand_dsigmaBox_strange161(double x) const
virtual const double LEP2sigmaE(const double s) const
const double getIntegrand_sigmaWithISR_down136(double x) const
const double Beta_s(int nm, unsigned int nf) const
QCD beta function coefficients including QED corrections - eq. (36) hep-ph/0512066.
const double AFB_NoISR_q(const QCD::quark q_flavor, const double s) const
virtual const double BrHtoWWstar() const
The Br in the Standard Model.
const double getIntegrand_sigmaWithISR_bottom205(double x) const
const double getIntegrand_dsigmaBox_tau200(double x) const
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
const double getIntegrand_sigmaWithISR_up192(double x) const
virtual const double A_f(const Particle f) const
The left-right asymmetry in at the -pole, .
const double MRR2eeff(const Particle f, const double s, const double t) const
double Mw_cache
A cache of the value of .
double DeltaAlphaLepton_cache
A cache of the value of .
const double getIntegrand_AFBnumeratorWithISR_mu205(double x) const
const double getIntegrand_dsigmaBox_bottom133(double x) const
const double getIntegrand_dsigmaBox_strange205(double x) const
virtual const gslpp::complex deltaKappaZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
const double getIntegrand_AFBnumeratorWithISR_tau202(double x) const
const double getIntegrand_dsigmaBox_bottom167(double x) const
virtual const double amuon() const
The computation of the anomalous magnetic moment of the muon .
virtual const double BrHtoZga() const
The Br in the Standard Model.
gslpp::complex I_triangle_1(const double tau, const double lambda) const
Loop function entering in the calculation of the effective coupling.
virtual const double epsilon1() const
The SM contribution to the epsilon parameter .
double delSin2th_q
The theoretical uncertainty in , denoted as .
bool FlagUseVud
A boolean for the model flag UseVud.
const double getIntegrand_sigmaWithISR_bottom133(double x) const
const double getIntegrand_sigmaWithISR_mu161(double x) const
double Mzbar() const
The -boson mass in the complex-pole/fixed-width scheme.
static const double Mw_error
The target accuracy of the iterative calculation of the -boson mass in units of GeV.
static const int NSMvars
The number of the model parameters in StandardModel.
const double getIntegrand_dsigmaBox_mu202(double x) const
const double getIntegrand_sigmaWithISR_up200(double x) const
const double sigma_NoISR_l(const QCD::lepton l_flavor, const double s) const
const double Integrand_sigmaWithISR_q(double x, const QCD::quark q_flavor, const double s) const
const double getIntegrand_dsigmaBox_up183(double x) const
virtual const double LEP2Rcharm(const double s) const
double SMparamsForEWPO_cache[NumSMParamsForEWPO]
bool FlagNoApproximateGammaZ
A boolean for the model flag NoApproximateGammaZ.
const double getIntegrand_sigmaWithISR_bottom202(double x) const
const double getIntegrand_sigmaWithISR_mu130(double x) const
const double getIntegrand_dsigmaBox_strange183(double x) const
gslpp::complex kappaZ_f_cache[12]
A cache of the value of .
const double getIntegrand_dsigmaBox_up133(double x) const
virtual const double GammaHtoss() const
The in the Standard Model.
double lambda
The CKM parameter in the Wolfenstein parameterization.
const double getIntegrand_sigmaWithISR_strange172(double x) const
virtual const double Qwn() const
The computation of the neutron weak charge: Qwn.
double als_cache[11][CacheSize]
Cache for .
const double getIntegrand_AFBnumeratorWithISR_mu189(double x) const
void ComputeDeltaR_rem(const double Mw_i, double DeltaR_rem[orders_EW_size]) const
A method to collect computed via subclasses.
const double getIntegrand_AFBnumeratorWithISR_bottom202(double x) const
const double getIntegrand_dsigmaBox_strange202(double x) const
const double getIntegrand_sigmaWithISR_mu202(double x) const
const double Integrand_AFBnumeratorWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
const double getIntegrand_sigmaWithISR_up189(double x) const
const double getIntegrand_dsigmaBox_down172(double x) const
const double getIntegrand_dsigmaBox_tau161(double x) const
const double getIntegrand_sigmaWithISR_tau192(double x) const
virtual const double RZlilj(const Particle li, const Particle lj) const
The lepton universality ratio .
const double getIntegrand_dsigmaBox_strange136(double x) const
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.
const double getIntegrand_AFBnumeratorWithISR_charm189(double x) const
const double getIntegrand_sigmaWithISR_up136(double x) const
const double Beta_e(int nm, unsigned int nf) const
QED beta function coefficients - eq. (36) hep-ph/0512066.
const double getIntegrand_dsigmaBox_bottom192(double x) const
double Vcb
used as an input for FlagWolfenstein = FALSE
const double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
virtual const double LEP2sigmaMu(const double s) const
const double getIntegrand_dsigmaBox_mu205(double x) const
const double getIntegrand_sigmaWithISR_strange196(double x) const
const double getIntegrand_sigmaWithISR_tau136(double x) const
virtual const double R0_f(const Particle f) const
The ratio .
const double getIntegrand_dsigmaBox_up205(double x) const
const double Mw_tree() const
The tree-level mass of the boson, .
const double AlsE(double mu, orders order, bool Nf_thr) const
const double getIntegrand_AFBnumeratorWithISR_mu200(double x) const
const double getIntegrand_sigmaWithISR_up202(double x) const
bool useDeltaAlphaLepton_cache
virtual const double TauLFU_gtauge() const
The computation of the LFU ratio .
double etab
The CKM parameter in the Wolfenstein parameterization.
const double getIntegrand_sigmaWithISR_down167(double x) const
const double getIntegrand_sigmaWithISR_mu205(double x) const
virtual const double SigmaeeHee(const double sqrt_s, const double Pe, const double Pp) const
The in the Standard Model.
const double getIntegrand_sigmaWithISR_down133(double x) const
virtual const double BrHtogg() const
The Br in the Standard Model.
EWSMcache * myEWSMcache
A pointer to an object of type EWSMcache.
gslpp::complex rhoZ_f_cache[12]
A cache of the value of .
const double getIntegrand_AFBnumeratorWithISR_tau207(double x) const
const double AFB_NoISR_l(const QCD::lepton l_flavor, const double s) const
virtual const double epsilon3() const
The SM contribution to the epsilon parameter .
LeptonFlavour * myLeptonFlavour
A pointer to an object of the type LeptonFlavour.
double ale_cache[10][CacheSize]
Cache for .
const double getIntegrand_sigmaWithISR_charm136(double x) const
const double getIntegrand_dsigmaBox_down130(double x) const
virtual const double Dalpha5hMz() const
The 5-quark contribution to the running of the em constant to the pole. .
double resumRhoZ(const double DeltaRho[orders_EW_size], const double deltaRho_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effective coupling from , and .
gslpp::complex I_triangle_2(const double tau, const double lambda) const
Loop function entering in the calculation of the effective coupling.
virtual const double TauLFU_gtaugmu() const
The computation of the LFU ratio .
const double getIntegrand_dsigmaBox_strange192(double x) const
virtual const double N_nu() const
The number of neutrinos obtained indirectly from the measurements at the Z pole, .
const double getIntegrand_sigmaWithISR_down189(double x) const
virtual const double TauLFU_gmuge() const
The computation of the LFU ratio .
virtual const double ThetaLnuN() const
The effective neutrino nucleon LH parameter: ThetaLnuN.
const double getIntegrand_dsigmaBox_charm196(double x) const
bool checkSMparamsForEWPO()
A method to check whether the parameters relevant to the EWPO are updated.
const double getIntegrand_dsigmaBox_bottom161(double x) const
virtual const double BrHtoss() const
The Br in the Standard Model.
const double getIntegrand_sigmaWithISR_up207(double x) const
const double Alstilde5(const double mu) const
The value of at any scale with the number of flavours and full EW corrections.
const double getIntegrand_sigmaWithISR_charm196(double x) const
const double getIntegrand_AFBnumeratorWithISR_tau205(double x) const
const double getIntegrand_sigmaWithISR_mu189(double x) const
const double getIntegrand_sigmaWithISR_mu196(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom167(double x) const
const double getIntegrand_sigmaWithISR_tau202(double x) const
double Mw_inp
The mass of the boson in GeV used as input for FlagMWinput = TRUE.
const double getIntegrand_dsigmaBox_charm172(double x) const
orders_EW
An enumerated type representing perturbative orders of radiative corrections to EW precision observab...
@ orders_EW_size
The size of this enum.
const double getIntegrand_dsigmaBox_charm136(double x) const
double mHl
The Higgs mass in GeV.
const double getIntegrand_sigmaWithISR_up205(double x) const
const double getIntegrand_AFBnumeratorWithISR_charm196(double x) const
gslpp::complex AH_W(const double tau) const
W loop function entering in the calculation of the effective coupling.
double SchemeToDouble(const std::string scheme) const
A method to convert a given scheme name in string form into a floating-point number with double preci...
const double getIntegrand_sigmaWithISR_bottom167(double x) const
const double getIntegrand_dsigmaBox_charm133(double x) const
const double getIntegrand_dsigmaBox_charm192(double x) const
const double getIntegrand_dsigmaBox_tau207(double x) const
double ale
The fine-structure constant .
bool flagLEP2[NUMofLEP2RCs]
const double DeltaAlphaL5q() const
The sum of the leptonic and the five-flavour hadronic corrections to the electromagnetic coupling at...
const double getIntegrand_sigmaWithISR_bottom183(double x) const
double AlsMz
The strong coupling constant at the Z-boson mass, .
double delGammaZ
The theoretical uncertainty in , denoted as , in GeV.
const double getIntegrand_AFBnumeratorWithISR_mu161(double x) const
gslpp::matrix< gslpp::complex > Ye
The Yukawa matrix of the charged leptons.
const double getIntegrand_dsigmaBox_down196(double x) const
virtual bool PostUpdate()
The post-update method for StandardModel.
const double getIntegrand_dsigmaBox_charm189(double x) const
const double sW2_ND() const
The square of the sine of the weak mixing angle in the MSbar-ND scheme (w/o decoupling $\alpha\ln(m_t...
double muw
A matching scale around the weak scale in GeV.
double RVh() const
The singlet vector corrections to the hadronic -boson width, denoted as .
virtual const double alphaMz() const
The electromagnetic coupling at the -mass scale, .
double delR0b
The theoretical uncertainty in , denoted as .
const double getIntegrand_AFBnumeratorWithISR_bottom133(double x) const
const double DeltaAlpha() const
The total corrections to the electromagnetic coupling at the -mass scale, denoted as .
const double getIntegrand_sigmaWithISR_up161(double x) const
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
gslpp::complex f_triangle(const double tau) const
Loop function entering in the calculation of the effective and couplings.
const double getIntegrand_dsigmaBox_mu130(double x) const
const double getIntegrand_sigmaWithISR_mu200(double x) const
const double getIntegrand_dsigmaBox_charm207(double x) const
static const int CacheSize
Defines the depth of the cache.
const double getIntegrand_AFBnumeratorWithISR_tau189(double x) const
static const int NumSMParamsForEWPO
The number of the SM parameters that are relevant to the EW precision observables.
const double getIntegrand_sigmaWithISR_tau172(double x) const
double Vus
used as an input for FlagWolfenstein = FALSE
virtual const double GammaHtoWWstar() const
The in the Standard Model.
const double getIntegrand_AFBnumeratorWithISR_charm167(double x) const
const double getIntegrand_sigmaWithISR_mu183(double x) const
EWSMTwoLoopQCD * myTwoLoopQCD
A pointer to an object of type EWSMTwoLoopQCD.
virtual const double LEP2dsigmadcosTau(const double s, const double cos) const
virtual const double GammaHtomumu() const
The in the Standard Model.
const double getIntegrand_AFBnumeratorWithISR_tau161(double x) const
static const double GeVminus2_to_nb
bool FlagWolfenstein
A boolean for the model flag Wolfenstein.
const double getIntegrand_sigmaWithISR_down172(double x) const
virtual const double LEP2sigmaBottom(const double s) const
virtual const double getmq(const QCD::quark q, const double mu) const
The MSbar running quark mass computed at NLO.
const double getIntegrand_dsigmaBox_tau130(double x) const
virtual const double DeltaRbar() const
The SM prediction for derived from that for the -boson mass.
const double getIntegrand_dsigmaBox_strange133(double x) const
const double getIntegrand_dsigmaBox_tau205(double x) const
bool requireYe
An internal flag to control whether the charged-lepton Yukawa matrix has to be recomputed.
EWSMThreeLoopEW2QCD * myThreeLoopEW2QCD
A pointer to an object of type EWSMThreeLoopEW2QCD.
const double getIntegrand_dsigmaBox_charm200(double x) const
const double v() const
The Higgs vacuum expectation value.
const double getIntegrand_sigmaWithISR_up196(double x) const
const double getIntegrand_dsigmaBox_up196(double x) const
const double getIntegrand_sigmaWithISR_bottom189(double x) const
const double getIntegrand_AFBnumeratorWithISR_bottom183(double x) const
virtual const double LEP2dsigmadcosE(const double s, const double cos) const
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for StandardModel.
const double getIntegrand_sigmaWithISR_bottom161(double x) const
gslpp::complex AHZga_f(const double tau, const double lambda) const
Fermionic loop function entering in the calculation of the effective coupling.
const double getIntegrand_sigmaWithISR_mu192(double x) const
const double getIntegrand_dsigmaBox_up189(double x) const
const double MwbarFromMw(const double Mw) const
A method to convert the -boson mass in the experimental/running-width scheme to that in the complex-p...
const double getIntegrand_AFBnumeratorWithISR_mu183(double x) const
const double getIntegrand_dsigmaBox_up136(double x) const
bool useKappaZ_f_cache[12]
const double getIntegrand_dsigmaBox_charm202(double x) const
virtual const double ThetaRnuN() const
The effective neutrino nucleon RH parameter: ThetaRnuN.
const double intMLL2eeeeus2(const double s, const double t0, const double t1) const
const double DeltaAlphaLepton(const double s) const
Leptonic contribution to the electromagnetic coupling , denoted as .
const double getIntegrand_sigmaWithISR_charm189(double x) const
const double getIntegrand_sigmaWithISR_down205(double x) const
virtual const gslpp::complex gV_f(const Particle f) const
The effective leptonic neutral-current vector coupling in the SM.
const double getIntegrand_dsigmaBox_up172(double x) const
const double getIntegrand_sigmaWithISR_up130(double x) const
const double MLR2eeff(const Particle f, const double s) const
virtual const double gAnue() const
The effective (muon) neutrino-electron axial-vector coupling: gAnue.
bool FlagCacheInStandardModel
A flag for caching (true by default).
bool SMSuccess
A boolean for the success of the Standard Model update and matching.
virtual bool InitializeModel()
A method to initialize the model.
double resumMw(const double Mw_i, const double DeltaRho[orders_EW_size], const double DeltaR_rem[orders_EW_size]) const
A method to compute the -boson mass from and .
const double getIntegrand_AFBnumeratorWithISR_charm192(double x) const
const double getIntegrand_dsigmaBox_down205(double x) const
virtual const double cW2() const
const double getIntegrand_dsigmaBox_down192(double x) const
virtual const double GammaHTot() const
The total Higgs width in the Standard Model.
virtual const double LEP2AFBbottom(const double s) const
double DeltaAlpha_cache
A cache of the value of .
virtual const double gVnue() const
The effective (muon) neutrino-electron vector coupling: gVnue.
const double AlsEWithInit(double mu, double alsi, double mu_i, const int nf_i, orders order) const
double delR0l
The theoretical uncertainty in , denoted as .
virtual const double LEP2dsigmadcosBinMu(const double s, const double cos, const double cosmin, const double cosmax) const
const double getIntegrand_sigmaWithISR_down161(double x) const
const double getIntegrand_dsigmaBox_bottom136(double x) const
An observable class for the relative deviation from the SM of the EM coupling .
A class for , the pole mass of the top quark.
An observable class for the leptonic effective weak mixing angle at the pole. To be used for the el...
A class for , relevant for mesons mixing in the Standard Model.
orders
An enum type for orders in QCD.