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",
"delGammaWlv",
"delGammaWqq",
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) {
151 w_GSL1 = gsl_integration_workspace_alloc (200);
200 for (std::map<std::string, double>::const_iterator it =
DPars.begin(); it !=
DPars.end(); it++)
201 if (it->first.compare(
"AlsM") == 0 || it->first.compare(
"MAls") == 0)
202 throw std::runtime_error(
"ERROR: inappropriate parameter " + it->first
203 +
" in model initialization");
205 throw std::runtime_error(
"ERROR: cannot use " + it->first
206 +
" when FlagFixMuwMut is true: use only muw");
208 std::map<std::string, double> myDPars(
DPars);
209 myDPars[
"AlsM"] = myDPars.at(
"AlsMz");
210 myDPars[
"MAls"] = myDPars.at(
"Mz");
212 myDPars[
"mut"] = myDPars.at(
"muw") * 163. / 80.4 ;
233 for (std::map<std::string, double>::const_iterator it =
DPars.begin(); it !=
DPars.end(); it++)
266 for (
int i = 0; i < 12; ++i) {
282 if (
name.compare(
"Mz") == 0) {
285 }
else if (
name.compare(
"AlsMz") == 0) {
288 }
else if (
name.compare(
"GF") == 0)
290 else if (
name.compare(
"ale") == 0)
296 else if (
name.compare(
"mHl") == 0)
298 else if (
name.compare(
"delMw") == 0)
300 else if (
name.compare(
"delSin2th_l") == 0)
302 else if (
name.compare(
"delSin2th_q") == 0)
304 else if (
name.compare(
"delSin2th_b") == 0)
306 else if (
name.compare(
"delGammaZ") == 0)
308 else if (
name.compare(
"delsigma0H") == 0)
310 else if (
name.compare(
"delR0l") == 0)
312 else if (
name.compare(
"delR0c") == 0)
314 else if (
name.compare(
"delR0b") == 0)
316 else if (
name.compare(
"delGammaWlv") == 0)
318 else if (
name.compare(
"delGammaWqq") == 0)
320 else if (
name.compare(
"mneutrino_1") == 0)
322 else if (
name.compare(
"mneutrino_2") == 0)
324 else if (
name.compare(
"mneutrino_3") == 0)
326 else if (
name.compare(
"melectron") == 0)
328 else if (
name.compare(
"mmu") == 0)
330 else if (
name.compare(
"mtau") == 0)
359 }
else if (
name.compare(
"muw") == 0) {
372 for (
int i = 0; i <
NSMvars; i++) {
374 std::cout <<
"ERROR: missing mandatory SM parameter " <<
SMvars[i] << std::endl;
420 for (
int i = 0; i < 3; i++) {
421 Yu.assign(i, i, this->
getmq(
quark(
UP + 2 * i),
v()/ sqrt(2.))/
v() * sqrt(2.));
429 for (
int i = 0; i < 3; i++) {
435 Ye = gslpp::matrix<gslpp::complex>::Id(3);
436 for (
int i = 0; i < 3; i++)
437 Ye.assign(i, i, this->leptons[
ELECTRON + 2 * i].getMass() /
v() * sqrt(2.));
440 Yn = gslpp::matrix<gslpp::complex>::Id(3);
441 for (
int i = 0; i < 3; i++)
442 Yn.assign(i, i, this->leptons[
NEUTRINO_1 + 2 * i].getMass() /
v() * sqrt(2.));
452 if (
name.compare(
"CacheInStandardModel") == 0) {
455 }
else if (
name.compare(
"CacheInEWSMcache") == 0) {
458 }
else if (
name.compare(
"Wolfenstein") == 0) {
472 }
else if (
name.compare(
"WithoutNonUniversalVC") == 0) {
475 }
else if (
name.compare(
"NoApproximateGammaZ") == 0) {
478 }
else if (
name.compare(
"MWinput") == 0) {
485 FlagMw =
"APPROXIMATEFORMULA";
490 }
else if (
name.compare(
"SMAux") == 0) {
493 }
else if (
name.compare(
"FixMuwMut") == 0) {
496 }
else if (
name.compare(
"UseVud") == 0) {
499 throw std::runtime_error(
"UseVud can only be used when Wolfenstein is false");
517 if (
name.compare(
"Mw") == 0) {
522 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
523 +
name +
"=" + value);
525 }
else if (
name.compare(
"RhoZ") == 0) {
530 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
531 +
name +
"=" + value);
532 }
else if (
name.compare(
"KappaZ") == 0) {
537 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
538 +
name +
"=" + value);
545 FlagMw =
"APPROXIMATEFORMULA";
591 delMw,
delSin2th_l,
delSin2th_q,
delSin2th_b,
delGammaZ,
delsigma0H,
delR0l,
delR0c,
delR0b,
delGammaWlv,
delGammaWqq,
598 bool bNotUpdated =
true;
602 bNotUpdated &=
false;
614 throw std::runtime_error(
"out of range in StandardModel::ale_OS()");
616 double N = 20.0 / 3.0;
617 double beta1 = N / 3.0;
618 double beta2 = N / 4.0;
620 double v = 1.0 + 2.0 * beta1 * alpha_ini / M_PI * log(
Mz / mu);
624 return ( alpha_ini /
v);
626 return ( alpha_ini /
v * (1.0 - beta2 / beta1 * alpha_ini / M_PI * log(
v) /
v));
628 throw std::runtime_error(
"Error in StandardModel::ale_OS()");
634 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
635 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
636 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
637 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
642 return(
Beta0((
double) nf));
644 return(
Beta1((
double) nf));
646 return(
Beta2((
double) nf));
648 return(
Beta3((
double) nf));
650 return(-4. *
TF * Qbar2 );
652 return((4. *
CF - 8. *
CA) *
TF * Qbar2 );
654 return(11./3. *
TF * Qbar2 *
Beta_e(00, nf) + 2. *
TF * Qbar4);
656 throw std::runtime_error(
"StandardModel::Beta_s(): case not implemented");
662 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
663 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
664 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
665 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
670 return(4./3. * (Qbar2 *
Nc + 3.));
672 return(4. * (Qbar4 *
Nc + 3.));
674 return(4. *
CF *
Nc * Qbar2);
676 throw std::runtime_error(
"StandardModel::Beta_e(): case not implemented");
688 throw std::runtime_error(
"StandardModel::AlsE(): " +
orderToString(order) +
" is not implemented.");
694 int i, nfAls = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAls;
695 double als, alstmp, mutmp;
716 for (i = nfAls - 1; i > nfmu; i--) {
728 for (i = nfAls + 1; i < nfmu; i++) {
751 throw std::runtime_error(
"StandardModel::AlsEByOrder(): " +
orderToString(order) +
" is not implemented.");
757 double nf = (double) nf_i, alei =
Ale(mu_i,
FULLNLO);
759 double v = 1. + b00s * alsi / 2. / M_PI * log(mu / mu_i);
760 double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
761 double logv = log(
v), logve = log(ve);
762 double rho = 1. / (1. + b00e * alei / b00s / alsi);
763 double als =
AlsWithInit(mu, alsi, mu_i, nf, order);
764 double b01s =
Beta_s(01,nf), b01s00e = b01s / b00e;
769 als += alsi * alsi * alei / 4. / 4. / M_PI / M_PI /
v /
v / ve * (
Beta_s(02, nf) / b00e *
770 (ve - 1.) +
Beta_s(11, nf) / b00s * rho * ve * (logve - logv) + b01s00e *
Beta_e(10, nf) /
771 b00e * (logve - ve + 1.) + b01s *
Beta_s(10, nf) / b00s / b00s * rho * logv +
772 b01s00e *
Beta_e(01, nf) / b00s * (rho * ve * (logv - logve) - logv));
775 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));
777 throw std::runtime_error(
"StandardModel::AlsEWithInit(): " +
orderToString(order) +
" is not implemented.");
785 int i, nfAle = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAle;
800 return (
Ale(mu,
LO, Nf_thr) +
Ale(mu,
NLO, Nf_thr));
818 for (i = nfAle - 1; i > nfmu; i--) {
830 for (i = nfAle + 1; i < nfmu; i++) {
852 throw std::runtime_error(
"StandardModel::Ale(): " +
orderToString(order) +
" is not implemented.");
858 if (fabs(mu - mu_i) < MEPS)
return(alei);
862 double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
863 double logv = log(1. + b00s * alsi / 2. / M_PI * log(mu / mu_i)), logve = log(ve);
870 return (- alei * alei / 4. / M_PI / ve / ve * (
Beta_e(10, nf) / b00e * logve -
Beta_e(01, nf) / b00s * logv) );
875 throw std::runtime_error(
"StandardModel::AleWithInit(): " +
orderToString(order) +
" is not implemented.");
886 double DeltaAlphaL = 0.0;
954 double alphatilde_e =
alphaMz()/4./M_PI;
955 double alphatilde_s =
AlsMz/4./M_PI;
958 double B00S =
Beta0(nf), B10S =
Beta1(nf), B20S =
Beta2(nf), B30S = gsl_sf_zeta_int(3) * 352864./81. - 598391./1458,
959 B01S = -22./9., B11S = -308./27., B02S = 4945./243.;
961 double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
963 double B10soB00s = B10S / B00S;
964 double B01soB00e = B01S/B00E;
966 double vs= 1. + 2. * B00S * alphatilde_s * log(mu/ mu_0);
967 double ve= 1. - 2. * B00E * alphatilde_e * log(mu/ mu_0);
968 double ps= B00S * alphatilde_s /(B00S * alphatilde_s + B00E * alphatilde_e);
970 double logve = log(ve);
971 double logvs = log(vs);
972 double logeos = log(ve/vs);
973 double logsoe = log(vs/ve);
974 double asovs = alphatilde_s/vs;
975 double aeove = alphatilde_e/ve;
979 result = asovs - pow(asovs, 2) * (logvs * B10soB00s - logve * B01soB00e)
980 + pow(asovs, 3) * ((1. - vs) * B20S / B00S + B10soB00s * B10soB00s * (logvs * logvs - logvs
981 + vs - 1.) + B01soB00e * B01soB00e * logve * logve + (-2. * logvs * logve
982 + ps * ve * logve) * B01S * B10S/(B00E * B00S))
983 + pow(asovs, 4) * (0.5 * B30S *(1. - vs * vs)/ B00S + ((2. * vs - 3.) * logvs + vs * vs
984 - vs) * B20S * B10soB00s /(B00S) + B10soB00s * B10soB00s * B10soB00s * (- pow(logvs,3)
985 + 5. * pow(logvs,2) / 2. + 2. * (1. - vs) * logvs - (vs - 1.) * (vs - 1.)* 0.5))
986 + pow(asovs, 2) * (aeove) * ((ve - 1.) * B02S / B00E
987 + ps * ve * logeos * B11S /B00S +(logve - ve + 1.) * B01soB00e * B10E/(B00E)
988 + logvs * ps * B01S * B10soB00s/(B00S) +(logsoe * ve * ps - logvs) * B01soB00e * B01E/( B00S));
997 return ( 1. / sqrt(sqrt(2.) *
GF));
1008 return (
Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - 4.0 * M_PI *
ale / sqrt(2.0) /
GF /
Mz /
Mz)));
1013 double tmp = 1.0 - 4.0 * M_PI *
alphaMz() / sqrt(2.0) /
GF /
Mz /
Mz;
1015 throw std::runtime_error(
"Error in s02()");
1017 return ( (1.0 - sqrt(tmp)) / 2.0);
1022 return ( 1.0 -
s02());
1041 if (
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1084 return ( Mw_i * Mw_i /
Mz /
Mz);
1089 return (
cW2(
Mw()));
1095 return ( 1.0 -
cW2(Mw_i));
1100 return ( 1.0 -
cW2());
1106 return (
sW2()*1.0351 );
1122 double sW2 = 1.0 - myMw * myMw /
Mz /
Mz;
1123 double tmp = sqrt(2.0) *
GF *
sW2 * myMw * myMw / M_PI /
ale;
1124 if (
FlagMw.compare(
"NORESUM") == 0
1125 ||
FlagMw.compare(
"APPROXIMATEFORMULA") == 0) {
1128 return (1.0 - 1.0 / tmp);
1133 double DeltaRho[orders_EW_size])
const
1138 DeltaRho[
EW1] = 0.0;
1150 DeltaRho[
EW2] = 0.0;
1158 DeltaRho[
EW3] = 0.0;
1162 double DeltaR_rem[orders_EW_size])
const
1167 DeltaR_rem[
EW1] = 0.0;
1179 DeltaR_rem[
EW2] = 0.0;
1187 DeltaR_rem[
EW3] = 0.0;
1195 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1197 double Gz = 6.0 * G0;
1198 Gz += 3.0 * G0 * (pow(1.0 - 4.0 * sW2tree, 2.0) + 1.0);
1199 Gz += 6.0 * G0 * (pow(1.0 - 8.0 / 3.0 * sW2tree, 2.0) + 1.0)
1200 * (1.0 +
AlsMz / M_PI);
1201 Gz += 9.0 * G0 * (pow(1.0 - 4.0 / 3.0 * sW2tree, 2.0) + 1.0)
1202 * (1.0 +
AlsMz / M_PI);
1207 return (
Mz - Gz * Gz / 2.0 /
Mz);
1213 double Gw_SM = 3.0 *
GF * pow(
Mw, 3.0) / 2.0 / sqrt(2.0) / M_PI
1214 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1216 return (
Mw - Gw_SM * Gw_SM / 2.0 /
Mw);
1222 double Gw_SM = 3.0 *
GF * pow(Mwbar, 3.0) / 2.0 / sqrt(2.0) / M_PI
1223 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1225 return (Mwbar + Gw_SM * Gw_SM / 2.0 / Mwbar);
1231 double sW2bar = 1.0 - Mwbar_SM * Mwbar_SM /
Mzbar() /
Mzbar();
1232 double tmp = sqrt(2.0) *
GF * sW2bar * Mwbar_SM * Mwbar_SM / M_PI /
ale;
1251 throw std::runtime_error(
"Error in StandardModel::GammaW()");
1253 double G0 =
GF * pow(
Mw(), 3.0) / 6.0 / sqrt(2.0) / M_PI;
1254 gslpp::complex V(0.0, 0.0,
false);
1260 V = gslpp::complex(1.0, 0.0,
false);
1262 V = gslpp::complex(0.0, 0.0,
false);
1264 if (fi.
is(
"LEPTON"))
1278 double GammaWtmp = 0.;
1280 for (
int i = 0; i < 6; i += 2)
1292 double GammWij =
GammaW(fi, fj);
1294 return GammWij/GammW;
1300 double GammWli, GammWlj;
1302 if (li.
is(
"ELECTRON"))
1304 else if (li.
is(
"MU"))
1306 else if (li.
is(
"TAU"))
1309 throw std::runtime_error(
"Error in StandardModel::RWlilj. li must be a charged lepton");
1311 if (lj.
is(
"ELECTRON"))
1313 else if (lj.
is(
"MU"))
1315 else if (lj.
is(
"TAU"))
1318 throw std::runtime_error(
"Error in StandardModel::RWlilj. lj must be a charged lepton");
1320 return GammWli/GammWlj;
1330 double GammWcX, GammWhad;
1340 return GammWcX/GammWhad;
1347 double Re_kappa =
kappaZ_f(f).real();
1348 double Re_gV_over_gA = 1.0 - 4.0 * fabs(f.
getCharge()) * Re_kappa *
sW2();
1349 return ( 2.0 * Re_gV_over_gA / (1.0 + pow(Re_gV_over_gA, 2.0)));
1359 double Re_kappa =
kappaZ_f(f).real();
1360 return ( Re_kappa *
sW2());
1371 if (f.
is(
"NEUTRINO_1") || f.
is(
"NEUTRINO_2") || f.
is(
"NEUTRINO_3"))
1373 else if (f.
is(
"ELECTRON") || f.
is(
"MU"))
1375 else if (f.
is(
"TAU"))
1377 else if (f.
is(
"UP"))
1379 else if (f.
is(
"CHARM"))
1381 else if (f.
is(
"DOWN") || f.
is(
"STRANGE"))
1383 else if (f.
is(
"BOTTOM"))
1386 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1389 gslpp::complex myrhoZ_f =
rhoZ_f(f);
1390 gslpp::complex gV_over_gA =
gV_f(f) /
gA_f(f);
1391 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1392 if (f.
is(
"LEPTON")) {
1396 Gamma = G0 * myrhoZ_f.abs() * sqrt(1.0 - 4.0 * xl)
1397 * ((1.0 + 2.0 * xl)*(gV_over_gA.abs2() + 1.0) - 6.0 * xl)
1398 * (1.0 + 3.0 / 4.0 * myalphaMz / M_PI * pow(Q, 2.0));
1399 }
else if (f.
is(
"QUARK")) {
1405 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1419 double Gamma_had_tmp = 0.0;
1432 double G0 =
GF * pow(
Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1433 Gamma_had_tmp += 4.0 * 3.0 * G0 *
RVh();
1435 return Gamma_had_tmp;
1455 double GammZli, GammZlj;
1457 if ( li.
is(
"ELECTRON") || li.
is(
"MU") || li.
is(
"TAU") )
1460 throw std::runtime_error(
"Error in StandardModel::RZlilj. li must be a charged lepton");
1462 if ( lj.
is(
"ELECTRON") || lj.
is(
"MU") || lj.
is(
"TAU") )
1465 throw std::runtime_error(
"Error in StandardModel::RZlilj. lj must be a charged lepton");
1467 return GammZli/GammZlj;
1488 if (f.
is(
"ELECTRON")) {
1494 }
else if (f.
is(
"MU")) {
1500 }
else if (f.
is(
"TAU")) {
1506 }
else if (f.
is(
"NEUTRINO_1")) {
1512 }
else if (f.
is(
"NEUTRINO_2")) {
1518 }
else if (f.
is(
"NEUTRINO_3")) {
1524 }
else if (f.
is(
"UP")) {
1531 }
else if (f.
is(
"STRANGE")) {
1538 }
else if (f.
is(
"CHARM")) {
1545 }
else if (f.
is(
"BOTTOM")) {
1552 }
else throw std::runtime_error(
"StandardModel::R0_f called with wrong argument");
1572 Nnu = sqrt( 12.0 * M_PI * Rl /
Mz /
Mz /
sigma0_had() ) - Rl -3.0;
1596 if (f.
getName().compare(
"TOP") == 0)
return (gslpp::complex(0.0, 0.0,
false));
1597 if (
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1598 throw std::runtime_error(
"No approximate formula is available for rhoZ^f");
1613 deltaRho_remf[
EW1] = gslpp::complex(0.0, 0.0,
false);
1614 deltaRho_remf[
EW1QCD1] = gslpp::complex(0.0, 0.0,
false);
1615 deltaRho_remf[
EW1QCD2] = gslpp::complex(0.0, 0.0,
false);
1616 deltaRho_remf[
EW2] = gslpp::complex(0.0, 0.0,
false);
1617 deltaRho_remf[
EW2QCD1] = gslpp::complex(0.0, 0.0,
false);
1618 deltaRho_remf[
EW3] = gslpp::complex(0.0, 0.0,
false);
1622#ifdef WITHIMTWOLOOPQCD
1638 double DeltaRbar_rem = 0.0;
1645 deltaRho_rem_f_real[j] = deltaRho_remf[j].real();
1646 double ReRhoZf =
resumRhoZ(DeltaRho, deltaRho_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1649 double ImRhoZf = 0.0;
1651 ImRhoZf += deltaRho_remf[j].imag();
1655 return (gslpp::complex(ReRhoZf, ImRhoZf,
false));
1661 if (f.
is(
"TOP"))
return (gslpp::complex(0.0, 0.0,
false));
1669 double ReKappaZf = 0.0, ImKappaZf = 0.0;
1670 if (
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0) {
1673 if ( f.
is(
"BOTTOM") ){
1675 }
else if ( f.
is(
"ELECTRON") || f.
is(
"MU") || f.
is(
"TAU") ) {
1682#ifdef WITHIMTWOLOOPQCD
1695 deltaKappa_remf[
EW1] = gslpp::complex(0.0, 0.0,
false);
1696 deltaKappa_remf[
EW1QCD1] = gslpp::complex(0.0, 0.0,
false);
1697 deltaKappa_remf[
EW1QCD2] = gslpp::complex(0.0, 0.0,
false);
1698 deltaKappa_remf[
EW2] = gslpp::complex(0.0, 0.0,
false);
1699 deltaKappa_remf[
EW2QCD1] = gslpp::complex(0.0, 0.0,
false);
1700 deltaKappa_remf[
EW3] = gslpp::complex(0.0, 0.0,
false);
1704#ifdef WITHIMTWOLOOPQCD
1720 double DeltaRbar_rem = 0.0;
1727 deltaKappa_rem_f_real[j] = deltaKappa_remf[j].real();
1729 ReKappaZf =
resumKappaZ(DeltaRho, deltaKappa_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1733 *(1.0 - 8.0 / 3.0 * ReKappaZf *
sW2());
1737 ImKappaZf += deltaKappa_remf[j].imag();
1742 return (gslpp::complex(ReKappaZf, ImKappaZf,
false));
1749 if (f.
is(
"TOP") || f.
is(
"ELECTRON"))
return (gslpp::complex(0.0, 0.0,
false));
1765 gslpp::complex dRho = 2.0 * (uf - ul);
1766 dRho *=
ale / 4.0 / M_PI /
sW2;
1774 if (f.
is(
"TOP") || f.
is(
"ELECTRON"))
return (gslpp::complex(0.0, 0.0,
false));
1791 gslpp::complex dKappa = (deltaf * deltaf - deltal * deltal) / 4.0 /
cW2 *
myOneLoopEW->
FZ(
Mz*
Mz, myMw)
1793 dKappa *=
ale / 4.0 / M_PI /
sW2;
1803 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1805 return DeltaRhoPrime;
1812 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1816 return (
c02() * DeltaRhoPrime +
s02() * DeltaRW / (
c02() -
s02())
1817 - 2.0 *
s02() * DeltaKappaPrime);
1824 double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1827 return (
c02() * DeltaRhoPrime + (
c02() -
s02()) * DeltaKappaPrime);
1845 return ( kappaZe.real() / kappaZb.real() - 1.0);
1848 / kappaZb.real() - 1.0);
1877 const double DeltaR_rem[orders_EW_size])
const
1879 if ((
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1880 || (DeltaR_rem[
EW2QCD1] != 0.0)
1881 || (DeltaR_rem[
EW3] != 0.0))
1882 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1885 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1887 double cW2_TMP = Mw_i * Mw_i /
Mz /
Mz;
1888 double sW2_TMP = 1.0 - cW2_TMP;
1890 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G = 0.0;
1891 if (
FlagMw.compare(
"NORESUM") == 0) {
1893 DeltaRho_sum += DeltaRho[(
orders_EW) j];
1897 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0) * sW2_TMP * cW2_TMP / M_PI /
ale;
1898 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1899 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1900 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1901 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1902 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
1903 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1904 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1908 double DeltaR_rem_sum = 0.0;
1909 double DeltaR_EW1 = 0.0, DeltaR_EW2_rem = 0.0;
1910 if (
FlagMw.compare(
"NORESUM") == 0) {
1912 DeltaR_rem_sum += DeltaR_rem[(
orders_EW) j];
1915 DeltaR_EW1 = -cW2_TMP / sW2_TMP * DeltaRho[
EW1] + DeltaR_rem[
EW1];
1921 DeltaRho_sum -= DeltaRho[
EW2];
1922 DeltaR_rem_sum -= DeltaR_rem[
EW2];
1925 R = 1.0 +
DeltaAlphaL5q() - cW2_TMP / sW2_TMP * DeltaRho_sum
1929 }
else if (
FlagMw.compare(
"OMSI") == 0) {
1931 R = 1.0 / (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1934 }
else if (
FlagMw.compare(
"INTERMEDIATE") == 0) {
1936 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1939 }
else if (
FlagMw.compare(
"OMSII") == 0) {
1941 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)*(1.0 -
DeltaAlphaL5q())
1942 - (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G) * DeltaR_rem[
EW1]
1945 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1947 if (
FlagMw.compare(
"NORESUM") == 0) {
1951 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1952 double Mwbar =
Mzbar() / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R));
1956 double tmp = 4.0 * M_PI *
ale / sqrt(2.0) /
GF /
Mz /
Mz;
1957 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1959 return (
Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R)));
1964 const double deltaRho_rem[orders_EW_size],
1965 const double DeltaRbar_rem,
bool bool_Zbb)
const
1967 if ((
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1968 || (deltaRho_rem[
EW1QCD2] != 0.0)
1969 || (deltaRho_rem[
EW2QCD1] != 0.0)
1970 || (deltaRho_rem[
EW3] != 0.0))
1971 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1974 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1976 double Mw_TMP =
Mw();
1977 double cW2_TMP =
cW2();
1978 double sW2_TMP =
sW2();
1980 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
1981 double DeltaRbar_rem_G, deltaRho_rem_G, deltaRho_rem_G2;
1983 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0)
1984 * sW2_TMP * cW2_TMP / M_PI /
ale;
1985 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1986 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1987 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1988 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1989 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
1990 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1991 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1992 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
1993 deltaRho_rem_G = f_AlphaToGF * (deltaRho_rem[
EW1]
1995 deltaRho_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaRho_rem[
EW2];
2000 if (
FlagRhoZ.compare(
"OMSI") == 0) {
2001 rhoZ = (1.0 + deltaRho_rem_G + deltaRho_rem_G2)
2002 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
2003 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
2004 rhoZ = (1.0 + deltaRho_rem_G)
2005 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2007 }
else if (
FlagRhoZ.compare(
"NORESUM") == 0
2008 ||
FlagRhoZ.compare(
"OMSII") == 0) {
2009 rhoZ = 1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2010 + DeltaRho_G * DeltaRho_G
2011 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2;
2013 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2016 double OnePlusTaub = 1.0 +
taub();
2017 double OnePlusTaub2 = OnePlusTaub*OnePlusTaub;
2019 deltaRho_rem_G += f_AlphaToGF *
ale / 4.0 / M_PI / sW2_TMP
2020 * pow(
mtpole / Mw_TMP, 2.0);
2021 if (
FlagRhoZ.compare(
"NORESUM") == 0) {
2022 rhoZ = (1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2023 + DeltaRho_G * DeltaRho_G
2024 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2)
2026 }
else if (
FlagRhoZ.compare(
"OMSI") == 0) {
2027 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2028 rhoZ = rhoZbL / (1.0 - rhoZbL * deltaRho_rem_G);
2029 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
2030 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2031 rhoZ = rhoZbL * (1.0 + rhoZbL * deltaRho_rem_G);
2032 }
else if (
FlagRhoZ.compare(
"OMSII") == 0) {
2033 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2034 rhoZ = rhoZbL * (1.0 + deltaRho_rem_G);
2036 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2043 const double deltaKappa_rem[orders_EW_size],
2044 const double DeltaRbar_rem,
const bool bool_Zbb)
const
2046 if ((
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0)
2047 || (deltaKappa_rem[
EW2QCD1] != 0.0)
2048 || (deltaKappa_rem[
EW3] != 0.0))
2049 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2052 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2054 double Mw_TMP =
Mw();
2055 double cW2_TMP =
cW2();
2056 double sW2_TMP =
sW2();
2058 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
2059 double DeltaRbar_rem_G, deltaKappa_rem_G, deltaKappa_rem_G2;
2061 f_AlphaToGF = sqrt(2.0) *
GF * pow(
Mz, 2.0)
2062 * sW2_TMP * cW2_TMP / M_PI /
ale;
2063 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
2064 + f_AlphaToGF * DeltaRho[
EW1QCD1]
2065 + f_AlphaToGF * DeltaRho[
EW1QCD2]
2066 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
2067 + pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2QCD1]
2068 + pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
2069 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
2070 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
2071 deltaKappa_rem_G = f_AlphaToGF * (deltaKappa_rem[
EW1]
2074 deltaKappa_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaKappa_rem[
EW2];
2080 kappaZ = (1.0 + deltaKappa_rem_G + deltaKappa_rem_G2)
2081 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
2082 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0) {
2083 kappaZ = (1.0 + deltaKappa_rem_G)
2084 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2085 + deltaKappa_rem_G2;
2086 }
else if (
FlagKappaZ.compare(
"NORESUM") == 0
2088 kappaZ = 1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2089 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2090 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2091 + deltaKappa_rem_G2;
2093 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2096 double OnePlusTaub = 1.0 +
taub();
2098 deltaKappa_rem_G -= f_AlphaToGF *
ale / 8.0 / M_PI / sW2_TMP
2099 * pow(
mtpole / Mw_TMP, 2.0);
2101 kappaZ = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2102 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2103 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2104 + deltaKappa_rem_G2) / OnePlusTaub;
2105 }
else if (
FlagKappaZ.compare(
"OMSI") == 0) {
2106 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2107 kappaZ = kappaZbL * (1.0 + deltaKappa_rem_G);
2108 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0
2110 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2111 kappaZ = kappaZbL + deltaKappa_rem_G;
2113 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2121 double taub_tmp = 0.0;
2124 taub_tmp += -2.0 * Xt;
2144 return ( -0.000113);
2149 return ( -0.000160);
2151 return ( -0.000040);
2153 throw std::runtime_error(
"Error in StandardModel::Delta_EWQCD");
2170 double Qf2 = pow(
quarks[q].getCharge(), 2.0);
2176 double mcMz2 = mcMz*mcMz;
2177 double mbMz2 = mbMz*mbMz;
2178 double mqMz2, mqdash4;
2182 mqdash4 = mbMz2*mbMz2;
2186 mqdash4 = mcMz2*mcMz2;
2196 double log_t = log(MtPole * MtPole /
s);
2197 double log_c = log(mcMz2 /
s);
2198 double log_b = log(mbMz2 /
s);
2203 log_q = log(mqMz2 /
s);
2220 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2221 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2222 + 275.0 / 6.0 * zeta5
2223 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2224 - 25.0 / 9.0 * zeta5) * nf
2225 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2226 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2232 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2234 double C22V = 253.0 / 2.0 - 13.0 / 3.0 * nf;
2235 double C23V = 2522.0 - 855.0 / 2.0 *
zeta2 + 310.0 / 3.0 *
zeta3 - 5225.0 / 6.0 * zeta5
2236 + (-4942.0 / 27.0 + 34.0 *
zeta2 - 394.0 / 27.0 *
zeta3
2237 + 1045.0 / 27.0 * zeta5) * nf
2238 + (125.0 / 54.0 - 2.0 / 3.0 *
zeta2) * nf*nf;
2241 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2243 double C41V = -22.0;
2244 double C42V = -3029.0 / 12.0 + 162.0 *
zeta2 + 112.0 *
zeta3
2245 + (143.0 / 18.0 - 4.0 *
zeta2 - 8.0 / 3.0 *
zeta3) * nf;
2246 double C42VL = -11.0 / 2.0 + nf / 3.0;
2250 double xt =
s / MtPole / MtPole;
2251 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2254 double AlsMzPi =
AlsMz / M_PI;
2255 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2256 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2257 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2264 RVf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2265 + (C02 + C2t) * AlsMzPi2 + C03 * AlsMzPi3 + C04 * AlsMzPi4
2266 + (mcMz2 + mbMz2) /
s * C23 * AlsMzPi3
2267 + mqMz2 /
s * (C21V * AlsMzPi + C22V * AlsMzPi2 + C23V * AlsMzPi3)
2268 + mcMz2 * mcMz2 /
s /
s * (C42 - log_c) * AlsMzPi2
2269 + mbMz2 * mbMz2 /
s /
s * (C42 - log_b) * AlsMzPi2
2270 + mqMz2 * mqMz2 /
s /
s * (C40V + C41V * AlsMzPi + (C42V + C42VL * log_q) * AlsMzPi2)
2271 + 12.0 * mqdash4 /
s /
s * AlsMzPi2
2272 - mqMz2 * mqMz2 * mqMz2 /
s /
s /
s
2273 * (8.0 + 16.0 / 27.0 * (155.0 + 6.0 * log_q) * AlsMzPi);
2292 double Qf2 = pow(
quarks[q].getCharge(), 2.0);
2298 double mcMz2 = mcMz*mcMz;
2299 double mbMz2 = mbMz*mbMz;
2300 double mqMz2, mqdash4;
2304 mqdash4 = mbMz2*mbMz2;
2308 mqdash4 = mcMz2*mcMz2;
2318 double log_t = log(MtPole * MtPole /
s);
2319 double log_c = log(mcMz2 /
s);
2320 double log_b = log(mbMz2 /
s);
2325 log_q = log(mqMz2 /
s);
2342 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2343 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2344 + 275.0 / 6.0 * zeta5
2345 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2346 - 25.0 / 9.0 * zeta5) * nf
2347 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2348 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2354 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2356 double C21A = -22.0;
2357 double C22A = -8221.0 / 24.0 + 57.0 *
zeta2 + 117.0 *
zeta3
2358 + (151.0 / 12.0 - 2.0 *
zeta2 - 4.0 *
zeta3) * nf;
2359 double C23A = -4544045.0 / 864.0 + 1340.0 *
zeta2 + 118915.0 / 36.0 *
zeta3
2361 + (71621.0 / 162.0 - 209.0 / 2.0 *
zeta2 - 216.0 *
zeta3
2362 + 5.0 * zeta4 + 55.0 * zeta5) * nf
2363 + (-13171.0 / 1944.0 + 16.0 / 9.0 *
zeta2 + 26.0 / 9.0 *
zeta3) * nf*nf;
2366 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2369 double C42A = 3389.0 / 12.0 - 162.0 *
zeta2 - 220.0 *
zeta3
2370 + (-41.0 / 6.0 + 4.0 *
zeta2 + 16.0 / 3.0 *
zeta3) * nf;
2371 double C42AL = 77.0 / 2.0 - 7.0 / 3.0 * nf;
2375 double xt =
s / MtPole / MtPole;
2376 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2379 double I2 = -37.0 / 12.0 + (-log_t) + 7.0 / 81.0 * xt + 0.0132 * xt*xt;
2380 double I3 = -5075.0 / 216.0 + 23.0 / 6.0 *
zeta2 +
zeta3 + 67.0 / 18.0 * (-log_t)
2381 + 23.0 / 12.0 * log_t*log_t;
2382 double I4 = 49.0309 - 17.6637 * (-log_t) + 14.6597 * log_t * log_t
2383 + 3.6736 * (-log_t * log_t * log_t);
2386 double AlsMzPi =
AlsMz / M_PI;
2387 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2388 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2389 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2396 RAf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2397 + (C02 + C2t - 2.0 * I3q * I2) * AlsMzPi2
2398 + (C03 - 2.0 * I3q * I3) * AlsMzPi3
2399 + (C04 - 2.0 * I3q * I4) * AlsMzPi4
2400 + (mcMz2 + mbMz2) /
s * C23 * AlsMzPi3
2401 + mqMz2 /
s * (C20A + C21A * AlsMzPi + C22A * AlsMzPi2
2402 + 6.0 * (3.0 + log_t) * AlsMzPi2 + C23A * AlsMzPi3)
2404 - 10.0 * mqMz2 / MtPole / MtPole
2405 * (8.0 / 81.0 + log_t / 54.0) * AlsMzPi2
2406 + mcMz2 * mcMz2 /
s /
s * (C42 - log_c) * AlsMzPi2
2407 + mbMz2 * mbMz2 /
s /
s * (C42 - log_b) * AlsMzPi2
2408 + mqMz2 * mqMz2 /
s /
s * (C40A + C41A * AlsMzPi
2409 + (C42A + C42AL * log_q) * AlsMzPi2)
2410 - 12.0 * mqdash4 /
s /
s*AlsMzPi2;
2417 double AlsMzPi =
AlsMz / M_PI;
2418 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2419 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2420 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2422 gslpp::complex gV_sum(0.0, 0.0);
2423 gslpp::complex gV_q;
2424 for (
int q = 0; q < 6; q++) {
2432 return ( gV_sum.abs2()*(-0.4132 * AlsMzPi3 - 4.9841 * AlsMzPi4));
2449 double amuqed,alfa0pi;
2452 double amuew,amuew1,amuew2b,amuew2f,amuew2,amuew3,cft,cf,corr1amuew2, corr2amuew2,corrwaamuew2,al,aq,b1;
2455 double amuhad,amuhhovp,amuhholbl,amuhho,amuhlo;
2459 const double sn2=0.2604341;
2465 const double umass=0.3;
2466 const double dmass=0.3;
2467 const double smass=0.5;
2485 double a2l[4]={0.,0.,0.,0.},b2l[4]={0.,0.,0.,0.},sw2l[4]={0.,0.,0.,0.};
2488 double c2lren[6]={0.,0.,0.,0.,0.,0.};
2493 s2=1.0 - MwSM*MwSM/
Mz/
Mz;
2499 amuqed=alfa0pi*(0.5+alfa0pi*(0.765857410+alfa0pi*(24.05050964+
2500 + alfa0pi*(130.8055+663.0*alfa0pi))));
2505 amuew1=5.0*
GF*mum*mum/(24.0*sqrt(2.0)*M_PI*M_PI)*(1.0+
2506 + 0.2*(1.0-4.0*s2)*(1.0-4.0*s2));
2517 aqed = 1.0/
ale + 2.0 * log(fermmass[0]/mum)/3.0/M_PI;
2525 a2l[0]=19.0/36.0-99.0*sn2/8.0-1.0*2.0*log(
mHl/MwSM)/24.0;
2527 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;
2531 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;
2533 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;
2537 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;
2539 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;
2543 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;
2545 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;
2553 for (
int i = 0; i < 4; ++i) {
2554 amuew2b=amuew2b+a2l[i]*sw2l[i]+(MwSM*MwSM/
mHl/
mHl)*b2l[i]*sw2l[i];
2558 amuew2b=mum*mum*aqed*
GF*amuew2b/(8.0*sqrt(2.0)*M_PI*M_PI*M_PI);
2565 cft=-104.0/45.0-16.0*2.0*log(
mtpole/
mHl)/15.0;
2568 + 8.0/5.0*pow(2.0*log(
mHl/
mtpole)-1.0,2));
2570 cft=-(32.0/5.0)*(1.0-9.0*sn2/4.0);
2573 cf=pow((umass*cqm*
Mz),(4.0/3.0));
2575 cf=cf/(pow((dmass*smass*bqm),(1.0/3.0))*mum*mum*taum);
2577 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;
2580 amuew2f=5.0*
GF*mum*mum*cf*aqed/(24.0*sqrt(2.0)*M_PI*M_PI*M_PI);
2586 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);
2588 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);
2595 corrwaamuew2=-43.0*31.0*(1.0-4.0*s2)*(1.0-4.0*s2)/(215.0*3.0)*log(
Mz/mum);
2597 c2lren[0]=(72.0/135.0)*(-1.0+2.0*s2)*(1.0-4.0*s2);
2598 c2lren[1]=(72.0/135.0)*(-1.0+2.0*s2/3.0)*(1.0-4.0*s2);
2599 c2lren[2]=-(144.0/135.0)*(1.0-4.0*s2/3.0)*(1.0-4.0*s2);
2600 c2lren[3]=c2lren[1];
2601 c2lren[4]=c2lren[2];
2602 c2lren[5]=c2lren[1];
2604 for (
int i = 2; i < 8; ++i) {
2605 corrwaamuew2=corrwaamuew2+c2lren[i-2]*log(
Mz/fermmass[i]);
2608 corrwaamuew2=5*
GF*mum*mum*aqed/(24.0*sqrt(2.0)*M_PI*M_PI*M_PI)*corrwaamuew2;
2611 corrwaamuew2=corrwaamuew2-0.2e-11;
2615 amuew2=amuew2b+amuew2f+corr1amuew2+corr2amuew2+corrwaamuew2;
2620 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;
2622 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;
2624 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;
2632 amuew3=amuew1*(
ale*
ale/M_PI/M_PI)*(al+aq+b1);
2637 amuew=amuew1+amuew2+amuew3;
2651 amuhho=amuhhovp+amuhholbl;
2655 amuhad=amuhlo+amuhho;
2660 amu=amuqed+amuew+amuhad;
2677 double MwSM,f1,fy,f2,af2;
2678 const double mpion=134.9766e-3;
2682 double dalfos, dalfms, alfams;
2683 double rhoNC, kappa0, s2MSbar,c2MSbar;
2685 double leptk0,quarkk0;
2707 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2709 alfams=
ale/(1.0-dalfms);
2715 c2MSbar=1.0-s2MSbar;
2720 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)));
2726 leptk0=((-0.5)*(-1)-2.0*s2MSbar)*2.0*(log(elm/
Mz)+log(mum/
Mz)+log(taum/
Mz))/3.0;
2731 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));
2739 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)));
2741 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);
2752 af2=sqrt(1.0+4.0*mpion*mpion/q2);
2753 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);
2758 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));
2792 double MwSM,alfapi,asMw,dkappa5h,s2MSbar0,
deltae,deltaep,boxpww,boxpzz,boxpaz;
2794 const double lambda=775.49e-3;
2795 const double caz=1.5;
2801 double dalfos, dalfms, alfams;
2802 double rhoNC, s2MSbar,c2MSbar;
2830 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2832 alfams=
ale/(1.0-dalfms);
2838 c2MSbar=1.0-s2MSbar;
2843 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)));
2855 for (
int i = 0; i < 3; ++i) {
2856 s2MSbar0=s2MSbar0+2.0*log(
Mz/mlept[i]);
2859 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);
2867 deltaep=-alfapi/3.0*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/elm)+1.0/6.0);
2874 boxpww=alfams*(2.0+5.0*(1.0-asMw/M_PI))/(4.0*M_PI*s2MSbar);
2878 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);
2880 boxpaz=5.0*alfams*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/
lambda)+caz)/(2.0*M_PI);
2888 qwproton=(rhoNC+
deltae)*(1.0-4.0*s2MSbar0+deltaep)+boxpww+boxpzz+boxpaz;
2900 double MwSM,alfapi,asMw,dkappa5h,s2MSbar0,
deltae,deltaep,boxnww,boxnzz,boxnaz;
2902 const double lambda=775.49e-3;
2903 const double caz=1.5;
2909 double dalfos, dalfms, alfams;
2910 double rhoNC, s2MSbar,c2MSbar;
2938 dalfms=dalfos+
ale/M_PI*(100.0/27.0-1.0/6.0-7.0*2.0*log(
Mz/MwSM)/4.0);
2940 alfams=
ale/(1.0-dalfms);
2946 c2MSbar=1.0-s2MSbar;
2951 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)));
2963 for (
int i = 0; i < 3; ++i) {
2964 s2MSbar0=s2MSbar0+2.0*log(
Mz/mlept[i]);
2967 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);
2975 deltaep=-alfapi/3.0*(1.0-4.0*s2MSbar)*(2.0*log(
Mz/elm)+1.0/6.0);
2982 boxnww=alfams*(-2.0+4.0*(1.0-asMw/M_PI))/(4.0*M_PI*s2MSbar);
2986 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);
2989 boxnaz=alfams*(4.0-16.0*s2MSbar)*(2.0*log(
Mz/
lambda)+caz)/(2.0*M_PI);
2996 qwneutron=-(rhoNC+
deltae)*(1.0+deltaep)+boxnww+boxnzz+boxnaz;
3016 throw std::runtime_error(
"ERROR: StandardModel::gLnuN2, prediction implemented only via semianalytical approximate formula. Check flags!");
3030 throw std::runtime_error(
"ERROR: StandardModel::gRnuN2, prediction implemented only via semianalytical approximate formula. Check flags!");
3043 throw std::runtime_error(
"ERROR: StandardModel::ThetaLnuN, prediction implemented only via semianalytical approximate formula. Check flags!");
3057 throw std::runtime_error(
"ERROR: StandardModel::ThetaRnuN, prediction implemented only via semianalytical approximate formula. Check flags!");
3070 throw std::runtime_error(
"ERROR: StandardModel::gVnue, prediction implemented only via semianalytical approximate formula. Check flags!");
3083 throw std::runtime_error(
"ERROR: StandardModel::gAnue, prediction implemented only via semianalytical approximate formula. Check flags!");
3097 double me, mmu, x, Fx, H1x, H2x, H3x,
zeta3;
3106 Fx = 1. - 8. * x + 8. * x*x*x - x*x*x*x -12. * x*x * log(x);
3108 H1x = 25./8. - pi2/2. - (9. + 4. *pi2 + 12. * log(x) )*x + 16. * pi2 * pow(x,3./2.);
3110 zeta3 = 1.2020569031595942;
3112 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);
3117 alpha = 1./
ale - log(x)/3./M_PI;
3121 rEW = 1. + H1x * alpha/M_PI + H2x * alpha*alpha/pi2 + H3x * alpha * alpha *alpha/pi2/M_PI;
3124 Gamma =
GF*
GF*pow(mmu,5)*Fx*rEW/192./pow(M_PI,3);
3137 double ml, mtau, x, Fx, H1x, H2x, H3x,
zeta3;
3145 x = ml*ml/mtau/mtau;
3146 Fx = 1. - 8. * x + 8. * x*x*x - x*x*x*x -12. * x*x * log(x);
3148 H1x = 25./8. - pi2/2. - (9. + 4. *pi2 + 12. * log(x) )*x + 16. * pi2 * pow(x,3./2.);
3150 zeta3 = 1.2020569031595942;
3152 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);
3160 rEW = 1. + H1x * alpha/M_PI + H2x * alpha*alpha/pi2 + H3x * alpha * alpha *alpha/pi2/M_PI;
3163 Gamma =
GF*
GF*pow(mtau,5)*Fx*rEW/192./pow(M_PI,3);
3175 double me, mmu, mtau, xe, Fxe, xmu, Fxmu;
3181 xe = me*me/mtau/mtau;
3182 Fxe = 1. - 8. * xe + 8. * xe*xe*xe - xe*xe*xe*xe -12. * xe*xe * log(xe);
3184 xmu = mmu*mmu/mtau/mtau;
3185 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3189 g2LFU = g2LFU * (Fxe/Fxmu);
3198 double me, mmu, mtau, xtau, Fxtau, xmu, Fxmu;
3204 xtau = me*me/mtau/mtau;
3205 Fxtau = 1. - 8. * xtau + 8. * xtau*xtau*xtau - xtau*xtau*xtau*xtau -12. * xtau*xtau * log(xtau);
3207 xmu = me*me/mmu/mmu;
3208 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3212 g2LFU = g2LFU * (pow(mmu,5)*Fxmu/pow(mtau,5)/Fxtau);
3221 double me, mmu, mtau, xtau, Fxtau, xmu, Fxmu;
3227 xtau = mmu*mmu/mtau/mtau;
3228 Fxtau = 1. - 8. * xtau + 8. * xtau*xtau*xtau - xtau*xtau*xtau*xtau -12. * xtau*xtau * log(xtau);
3230 xmu = me*me/mmu/mmu;
3231 Fxmu = 1. - 8. * xmu + 8. * xmu*xmu*xmu - xmu*xmu*xmu*xmu -12. * xmu*xmu * log(xmu);
3235 g2LFU = g2LFU * (pow(mmu,5)*Fxmu/pow(mtau,5)/Fxtau);
3265 tmp = asin(1.0 / sqrt(tau));
3268 tmp = log((1.0 + sqrt(1.0 - tau)) / (1.0 - sqrt(1.0 - tau))) - M_PI * gslpp::complex::i();
3269 return (-0.25 * tmp * tmp);
3276 tmp = sqrt(tau - 1.0) * asin(1.0 / sqrt(tau));
3279 tmp = sqrt(1.0 - tau) * (log((1.0 + sqrt(1.0 - tau)) / (1.0 - sqrt(1.0 - tau))) - M_PI * gslpp::complex::i());
3289 tmp = tau *
lambda * (1.0 + tmp) / (2.0 * (tau -
lambda));
3303 return (2.0 * tau * (1.0 + (1.0 - tau) *
f_triangle(tau)));
3307 return -(2.0 + 3.0 * tau + 3.0 * tau * (2.0 - tau) *
f_triangle(tau));
3317 double tan2w =
sW2() /
cW2();
3321 tmp = tmp + ((1.0 + 2.0 / tau) * tan2w - (5.0 + 2.0 / tau)) *
I_triangle_1(tau,
lambda);
3323 return sqrt(
cW2()) * tmp;
3331 double gL,gR,lam,fact;
3332 double s = sqrt_s*sqrt_s;
3342 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 );
3344 xsLH = 32.0 * gL * gL * fact;
3345 xsRH = 32.0 * gR * gR * fact;
3347 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3352 double xsLH=1.0, xsRH=0.0;
3354 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3359 double xsLH=0.0, xsRH=0.0;
3361 return 0.25*( (1.0 - Pe)*(1.0 + Pp)*xsLH + (1.0 + Pe)*(1.0 - Pp)*xsRH );
3375 double asMH,LH,Lt,nl,h0,h1,h2, h3,G0;
3386 h0 = (95./4.) + (11./2.)*LH + nl*(-7./6. - LH/3.);
3387 h1 = 5803./540. + 77.*LH/30. -14.*Lt/15. + nl * (-29./60. - 7. * LH / 45.);
3388 h2 = 1029839./189000. + 16973.*LH/12600. - 1543.*Lt/1575. + nl * ( - 89533./378000 - 1543.*LH/18900. );
3389 h3 = 9075763./2976750. + 1243*LH/1575. - 452.*Lt/575. + nl * ( - 3763./28350. -226. * LH / 4725. );
3390 G0 =
GF * pow(
mHl,3.0)/(36.*M_PI*sqrt(2.));
3392 gamma = asMH*asMH * (4.0 *
GF /sqrt(2.0)) * (
mHl*
mHl*
mHl /64.0/pow(M_PI,3.0)) *
3395 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 );
3404 double g2 = 4.0 * sqrt(2.0) *
GF *
Mz *
Mz;
3407 fx = -fabs(1.0-x*x)*( 47.0*x*x/2.0 - 13.0/2.0 +1.0/x/x ) +
3408 3.0*( 1.0 - 6.0*x*x + 4.0*x*x*x*x )*fabs(log(x)) +
3409 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);
3411 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);
3420 double g2 = 4.0 * sqrt(2.0) *
GF * pow(
Mw(),2);
3423 fx = -fabs(1.0-x*x)*( 47.0*x*x/2.0 - 13.0/2.0 +1.0/x/x ) +
3424 3.0*( 1.0 - 6.0*x*x + 4.0*x*x*x*x )*fabs(log(x)) +
3425 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);
3427 gamma = 3.0 * g2*g2 *
mHl * fx / 512.0 / pow(M_PI,3.0);
3443 double M_w_2 = pow(
Mw(),2.0);
3452 double tau_t = 4.0 * m_t * m_t /
mHl /
mHl;
3453 double tau_b = 4.0 * m_b * m_b /
mHl /
mHl;
3454 double tau_c = 4.0 * m_c * m_c /
mHl /
mHl;
3455 double tau_s = 4.0 * m_s * m_s /
mHl /
mHl;
3456 double tau_tau = 4.0 * m_tau * m_tau /
mHl /
mHl;
3457 double tau_mu = 4.0 * m_mu * m_mu /
mHl /
mHl;
3458 double tau_W = 4.0 * M_w_2 /
mHl /
mHl;
3460 double lambda_t = 4.0 * m_t * m_t /
Mz /
Mz;
3461 double lambda_b = 4.0 * m_b * m_b /
Mz /
Mz;
3462 double lambda_c = 4.0 * m_c * m_c /
Mz /
Mz;
3463 double lambda_s = 4.0 * m_s * m_s /
Mz /
Mz;
3464 double lambda_tau = 4.0 * m_tau * m_tau /
Mz /
Mz;
3465 double lambda_mu = 4.0 * m_mu * m_mu /
Mz /
Mz;
3466 double lambda_W = 4.0 * M_w_2 /
Mz /
Mz;
3468 double sc = sqrt(
sW2()*
cW2());
3478 MSM = (
ale/4.0/M_PI) * ((3.0 * vSMt * Qt *
AHZga_f(tau_t, lambda_t) +
3479 3.0 * vSMb * Qb *
AHZga_f(tau_b, lambda_b) +
3480 3.0 * vSMc * Qc *
AHZga_f(tau_c, lambda_c) +
3481 3.0 * vSMs * Qs *
AHZga_f(tau_s, lambda_s) +
3482 vSMtau * Qtau *
AHZga_f(tau_tau, lambda_tau) +
3483 vSMmu * Qmu *
AHZga_f(tau_mu, lambda_mu)) +
3502 double M_w_2 = pow(
Mw(),2.0);
3511 double tau_t = 4.0 * m_t * m_t /
mHl /
mHl;
3512 double tau_b = 4.0 * m_b * m_b /
mHl /
mHl;
3513 double tau_c = 4.0 * m_c * m_c /
mHl /
mHl;
3514 double tau_s = 4.0 * m_s * m_s /
mHl /
mHl;
3515 double tau_tau = 4.0 * m_tau * m_tau /
mHl /
mHl;
3516 double tau_mu = 4.0 * m_mu * m_mu /
mHl /
mHl;
3517 double tau_W = 4.0 * M_w_2 /
mHl /
mHl;
3521 MSM =
ale * (3.0 * Qt * Qt *
AH_f(tau_t) +
3522 3.0 * Qb * Qb *
AH_f(tau_b) +
3523 3.0 * Qc * Qc *
AH_f(tau_c) +
3524 3.0 * Qs * Qs *
AH_f(tau_s) +
3525 Qtau * Qtau *
AH_f(tau_tau) +
3526 Qmu * Qmu *
AH_f(tau_mu) +
3529 gamma = (4.0*
GF/sqrt(2)) * (MSM.abs2()) * pow(
mHl,3.0)/512.0/pow(M_PI,3);
3537 double beta=1.0-4.0*mf*mf/
mHl/
mHl;
3541 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta;
3549 double beta=1.0-4.0*mf*mf/
mHl/
mHl;
3553 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta;
3564 double asMH,DeltaQCD,Deltamt,NF;
3571 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3575 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) ) );
3577 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) );
3579 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3590 double asMH,DeltaQCD,Deltamt,NF;
3597 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3601 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) ) );
3603 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) );
3605 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3616 double asMH,DeltaQCD,Deltamt,NF;
3623 beta=1.0-4.0*mf*mf/
mHl/
mHl;
3627 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) ) );
3629 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) );
3631 gamma =
Nc * (4.0*
GF/sqrt(2.0)) * (mf*mf/16.0/M_PI) *
mHl * beta*beta*beta * (DeltaQCD + Deltamt);
3712 double Qf, geLSM, gfRSM, is2c2, GZ, Mz2s;
3720 is2c2 = 1. /
s02() /
c02();
3726 if (f.
is(
"ELECTRON")) {
3728 gfRSM = - Qf *
s02();
3729 }
else if (f.
is(
"MU")) {
3731 gfRSM = - Qf *
s02();
3732 }
else if (f.
is(
"TAU")) {
3734 gfRSM = - Qf *
s02();
3735 }
else if (f.
is(
"UP")) {
3737 gfRSM = - Qf *
s02();
3738 }
else if (f.
is(
"CHARM")) {
3740 gfRSM = - Qf *
s02();
3741 }
else if (f.
is(
"DOWN")) {
3743 gfRSM = - Qf *
s02();
3744 }
else if (f.
is(
"STRANGE")) {
3746 gfRSM = - Qf *
s02();
3747 }
else if (f.
is(
"BOTTOM")) {
3749 gfRSM = - Qf *
s02();
3751 throw std::runtime_error(
"StandardModel::MLR2eeff: wrong argument");
3755 + (is2c2 * is2c2 * (geLSM * geLSM * gfRSM * gfRSM) *
s *
s
3756 + 2.0 * Qf * is2c2 * (geLSM * gfRSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3763 double Qf, geRSM, gfLSM, is2c2, GZ, Mz2s;
3771 is2c2 = 1. /
s02() /
c02();
3777 if (f.
is(
"ELECTRON")) {
3780 }
else if (f.
is(
"MU")) {
3783 }
else if (f.
is(
"TAU")) {
3786 }
else if (f.
is(
"UP")) {
3789 }
else if (f.
is(
"CHARM")) {
3792 }
else if (f.
is(
"DOWN")) {
3795 }
else if (f.
is(
"STRANGE")) {
3798 }
else if (f.
is(
"BOTTOM")) {
3802 throw std::runtime_error(
"StandardModel::MRL2eeff: wrong argument");
3806 + (is2c2 * is2c2 * (geRSM * geRSM * gfLSM * gfLSM) *
s *
s
3807 + 2.0 * Qf * is2c2 * (geRSM * gfLSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3815 double Qf, geLSM, gfLSM, is2c2, GZ, Mz2s;
3823 is2c2 = 1. /
s02() /
c02();
3829 if (f.
is(
"ELECTRON")) {
3832 }
else if (f.
is(
"MU")) {
3835 }
else if (f.
is(
"TAU")) {
3838 }
else if (f.
is(
"UP")) {
3841 }
else if (f.
is(
"CHARM")) {
3844 }
else if (f.
is(
"DOWN")) {
3847 }
else if (f.
is(
"STRANGE")) {
3850 }
else if (f.
is(
"BOTTOM")) {
3854 throw std::runtime_error(
"StandardModel::MLL2eeff: wrong argument");
3858 + (is2c2 * is2c2 * (geLSM * geLSM * gfLSM * gfLSM) *
s *
s
3859 + 2.0 * Qf * is2c2 * (geLSM * gfLSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3867 double Qf, geRSM, gfRSM, is2c2, GZ, Mz2s;
3875 is2c2 = 1. /
s02() /
c02();
3881 if (f.
is(
"ELECTRON")) {
3883 gfRSM = - Qf *
s02();
3884 }
else if (f.
is(
"MU")) {
3886 gfRSM = - Qf *
s02();
3887 }
else if (f.
is(
"TAU")) {
3889 gfRSM = - Qf *
s02();
3890 }
else if (f.
is(
"UP")) {
3892 gfRSM = - Qf *
s02();
3893 }
else if (f.
is(
"CHARM")) {
3895 gfRSM = - Qf *
s02();
3896 }
else if (f.
is(
"DOWN")) {
3898 gfRSM = - Qf *
s02();
3899 }
else if (f.
is(
"STRANGE")) {
3901 gfRSM = - Qf *
s02();
3902 }
else if (f.
is(
"BOTTOM")) {
3904 gfRSM = - Qf *
s02();
3906 throw std::runtime_error(
"StandardModel::MRR2eeff: wrong argument");
3910 + (is2c2 * is2c2 * (geRSM * geRSM * gfRSM * gfRSM) *
s *
s
3911 + 2.0 * Qf * is2c2 * (geRSM * gfRSM) * Mz2s *
s) / (Mz2s * Mz2s +
Mz *
Mz * GZ * GZ);
3919 return 0.25 * (cosmax * (1.0 - cosmax * (1.0 - cosmax / 3.0)) - cosmin * (1.0 - cosmin * (1.0 - cosmin / 3.0)));
3923 return 0.25 * (cosmax * (1.0 + cosmax * (1.0 + cosmax / 3.0)) - cosmin * (1.0 + cosmin * (1.0 + cosmin / 3.0)));
3936 double propZSM2,propZSMRe,MeeLR2SM;
3945 propZSM2 = s2/((
s - Mz2)*(
s - Mz2) + Mz2*GammaZSM*GammaZSM);
3946 propZSMRe = (
s*(
s - Mz2))/((
s - Mz2)*(
s - Mz2) + Mz2*GammaZSM*GammaZSM);
3948 MeeLR2SM = 1.0 + (gLeSM*gLeSM*gReSM*gReSM/(sw2cw2*sw2cw2))*propZSM2 + 2.0*(gLeSM*gReSM/sw2cw2)*propZSMRe;
3950 intM2 = MeeLR2SM*(t1*t1*t1 - t0*t0*t0)/(3.0*
s*
s);
3967 intM2 =
s*
s*(((gLeSM*gLeSM*gReSM*gReSM)/sw2cw2/sw2cw2)*(1.0/(Mz2 - t1) - 1.0/(Mz2 - t0)) - 1.0/t1 + 1.0/t0 +
3968 (2.0*gLeSM*gReSM*(-log(t1/t0) + log((-Mz2 + t1)/(-Mz2 + t0))))/(Mz2*sw2cw2));
3979 double Mz2, Mz4, s2;
3988 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)) +
3989 ((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)) +
3990 (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)) ) +
3991 (2.0*(gLeSM*gLeSM) )/(Mz2*sw2cw2)*(Mz2 *(t1 - t0) - s2*log(t1/t0) + (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0))) +
3992 (-(s2/t1) + s2/t0 + t1 - t0 + 2.0*
s*log(t1/t0)) +
3993 (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)));
4004 double Mz2, Mz4, s2;
4013 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)) +
4014 ((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)) +
4015 (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)) ) +
4016 (2.0*(gReSM*gReSM) )/(Mz2*sw2cw2)*(Mz2 *(t1 - t0) - s2*log(t1/t0) + (Mz2 +
s)*(Mz2 +
s)*log((-Mz2 + t1)/(-Mz2 + t0))) +
4017 (-(s2/t1) + s2/t0 + t1 - t0 + 2.0*
s*log(t1/t0)) +
4018 (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)));
4027 double sumM2, sigma;
4028 double topb = 0.3894e+9;
4029 double t0, t1, lambdaK;
4034 pLH = (1.0 - pol_e) * (1.0 + pol_p);
4035 pRH = (1.0 + pol_e) * (1.0 - pol_p);
4037 pLLH = (1.0 - pol_e) * (1.0 - pol_p);
4038 pRRH = (1.0 + pol_e) * (1.0 + pol_p);
4041 t0 = 0.5 *
s * ( -1.0 + cosmin );
4042 t1 = 0.5 *
s * ( -1.0 + cosmax );
4055 return topb * sigma;
4062 double sumM2, sigma;
4064 double topb = 0.3894e+9;
4073 pLH = (1.0 - pol_e) * (1.0 + pol_p);
4074 pRH = (1.0 + pol_e) * (1.0 - pol_p);
4076 if (f.
is(
"LEPTON")) {
4087 return topb * sigma;
4101 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4102 double relerr = 1.e-8;
4103 double abserr = 1.e-20;
4133 }
else if (
s == 136.*136.) {
4152 }
else if (
s == 161.*161.){
4171 }
else if (
s == 172.*172.) {
4190 }
else if (
s == 183.*183.) {
4209 }
else if (
s == 189.*189.) {
4228 }
else if (
s == 192.*192.) {
4247 }
else if (
s == 196.*196.) {
4266 }
else if (
s == 200.*200.) {
4285 }
else if (
s == 202.*202.) {
4304 }
else if (
s == 205.*205.) {
4323 }
else if (
s == 207.*207.) {
4343 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBmu!");
4348 gsl_set_error_handler(old_handler);
4359 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4360 double relerr = 1.e-7;
4361 double abserr = 1.e-17;
4391 }
else if (
s == 136.*136.) {
4410 }
else if (
s == 161.*161.){
4429 }
else if (
s == 172.*172.) {
4448 }
else if (
s == 183.*183.) {
4467 }
else if (
s == 189.*189.) {
4486 }
else if (
s == 192.*192.) {
4505 }
else if (
s == 196.*196.) {
4524 }
else if (
s == 200.*200.) {
4543 }
else if (
s == 202.*202.) {
4562 }
else if (
s == 205.*205.) {
4581 }
else if (
s == 207.*207.) {
4601 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaTau!");
4606 gsl_set_error_handler(old_handler);
4616 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4617 double relerr = 1.e-8;
4618 double abserr = 1.e-20;
4640 }
else if (
s == 167.*167.){
4659 }
else if (
s == 183.*183.) {
4678 }
else if (
s == 189.*189.) {
4697 }
else if (
s == 192.*192.) {
4716 }
else if (
s == 196.*196.) {
4735 }
else if (
s == 200.*200.) {
4754 }
else if (
s == 202.*202.) {
4773 }
else if (
s == 205.*205.) {
4792 }
else if (
s == 207.*207.) {
4812 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaCharm!");
4818 gsl_set_error_handler(old_handler);
4827 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4828 double relerr = 1.e-8;
4829 double abserr = 1.e-20;
4851 }
else if (
s == 167.*167.){
4870 }
else if (
s == 183.*183.) {
4889 }
else if (
s == 189.*189.) {
4908 }
else if (
s == 192.*192.) {
4927 }
else if (
s == 196.*196.) {
4946 }
else if (
s == 200.*200.) {
4965 }
else if (
s == 202.*202.) {
4984 }
else if (
s == 205.*205.) {
5003 }
else if (
s == 207.*207.) {
5023 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaBottom!");
5029 gsl_set_error_handler(old_handler);
5038 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5039 double relerr = 1.e-8;
5040 double abserr = 1.e-20;
5124 }
else if (
s == 133.*133.) {
5196 }
else if (
s == 136.*136.) {
5268 }
else if (
s == 161.*161.){
5340 }
else if (
s == 167.*167.) {
5413 }
else if (
s == 172.*172.) {
5485 }
else if (
s == 183.*183.) {
5557 }
else if (
s == 189.*189.) {
5629 }
else if (
s == 192.*192.) {
5703 }
else if (
s == 196.*196.) {
5776 }
else if (
s == 200.*200.) {
5848 }
else if (
s == 202.*202.) {
5950 }
else if (
s == 205.*205.) {
6052 }
else if (
s == 207.*207.) {
6155 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaHadron!");
6160 gsl_set_error_handler(old_handler);
6172 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6173 double relerr = 1.e-7;
6174 double abserr = 1.e-17;
6177 double AFB_noBox, sigma = 0.0;
6190 AFB_noBox = numerator/sigma;
6215 }
else if (
s == 167.*167.){
6216 double AFB_noBox, sigma = 0.0;
6229 AFB_noBox = numerator/sigma;
6254 }
else if (
s == 183.*183.) {
6255 double AFB_noBox, sigma = 0.0;
6268 AFB_noBox = numerator/sigma;
6293 }
else if (
s == 189.*189.) {
6294 double AFB_noBox, sigma = 0.0;
6307 AFB_noBox = numerator/sigma;
6332 }
else if (
s == 192.*192.) {
6333 double AFB_noBox, sigma = 0.0;
6346 AFB_noBox = numerator/sigma;
6371 }
else if (
s == 196.*196.) {
6372 double AFB_noBox, sigma = 0.0;
6385 AFB_noBox = numerator/sigma;
6410 }
else if (
s == 200.*200.) {
6411 double AFB_noBox, sigma = 0.0;
6424 AFB_noBox = numerator/sigma;
6449 }
else if (
s == 202.*202.) {
6450 double AFB_noBox, sigma = 0.0;
6463 AFB_noBox = numerator/sigma;
6488 }
else if (
s == 205.*205.) {
6489 double AFB_noBox, sigma = 0.0;
6502 AFB_noBox = numerator/sigma;
6527 }
else if (
s == 207.*207.) {
6528 double AFB_noBox, sigma = 0.0;
6541 AFB_noBox = numerator/sigma;
6567 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBbottom!");
6572 gsl_set_error_handler(old_handler);
6583 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6584 double relerr = 1.e-7;
6585 double abserr = 1.e-17;
6588 double AFB_noBox, sigma = 0.0;
6601 AFB_noBox = numerator/sigma;
6626 }
else if (
s == 167.*167.){
6627 double AFB_noBox, sigma = 0.0;
6640 AFB_noBox = numerator/sigma;
6665 }
else if (
s == 183.*183.) {
6666 double AFB_noBox, sigma = 0.0;
6679 AFB_noBox = numerator/sigma;
6704 }
else if (
s == 189.*189.) {
6705 double AFB_noBox, sigma = 0.0;
6718 AFB_noBox = numerator/sigma;
6743 }
else if (
s == 192.*192.) {
6744 double AFB_noBox, sigma = 0.0;
6757 AFB_noBox = numerator/sigma;
6782 }
else if (
s == 196.*196.) {
6783 double AFB_noBox, sigma = 0.0;
6796 AFB_noBox = numerator/sigma;
6821 }
else if (
s == 200.*200.) {
6822 double AFB_noBox, sigma = 0.0;
6835 AFB_noBox = numerator/sigma;
6860 }
else if (
s == 202.*202.) {
6861 double AFB_noBox, sigma = 0.0;
6874 AFB_noBox = numerator/sigma;
6899 }
else if (
s == 205.*205.) {
6900 double AFB_noBox, sigma = 0.0;
6913 AFB_noBox = numerator/sigma;
6938 }
else if (
s == 207.*207.) {
6939 double AFB_noBox, sigma = 0.0;
6952 AFB_noBox = numerator/sigma;
6978 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBcharm!");
6983 gsl_set_error_handler(old_handler);
6998 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
6999 double relerr = 1.e-7;
7000 double abserr = 1.e-17;
7011 double AFB_noBox, sigma = 0.0;
7024 AFB_noBox = numerator/sigma;
7049 }
else if (
s == 136.*136.){
7050 double AFB_noBox, sigma = 0.0;
7063 AFB_noBox = numerator/sigma;
7088 }
else if (
s == 161.*161.){
7089 double AFB_noBox, sigma = 0.0;
7102 AFB_noBox = numerator/sigma;
7127 }
else if (
s == 172.*172.){
7128 double AFB_noBox, sigma = 0.0;
7141 AFB_noBox = numerator/sigma;
7166 }
else if (
s == 183.*183.) {
7167 double AFB_noBox, sigma = 0.0;
7180 AFB_noBox = numerator/sigma;
7205 }
else if (
s == 189.*189.) {
7206 double AFB_noBox, sigma = 0.0;
7219 AFB_noBox = numerator/sigma;
7244 }
else if (
s == 192.*192.) {
7245 double AFB_noBox, sigma = 0.0;
7258 AFB_noBox = numerator/sigma;
7283 }
else if (
s == 196.*196.) {
7284 double AFB_noBox, sigma = 0.0;
7297 AFB_noBox = numerator/sigma;
7322 }
else if (
s == 200.*200.) {
7323 double AFB_noBox, sigma = 0.0;
7336 AFB_noBox = numerator/sigma;
7361 }
else if (
s == 202.*202.) {
7362 double AFB_noBox, sigma = 0.0;
7375 AFB_noBox = numerator/sigma;
7400 }
else if (
s == 205.*205.) {
7401 double AFB_noBox, sigma = 0.0;
7414 AFB_noBox = numerator/sigma;
7439 }
else if (
s == 207.*207.) {
7440 double AFB_noBox, sigma = 0.0;
7453 AFB_noBox = numerator/sigma;
7479 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::AFBmu!");
7484 gsl_set_error_handler(old_handler);
7495 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
7496 double relerr = 1.e-7;
7497 double abserr = 1.e-17;
7508 double AFB_noBox, sigma = 0.0;
7521 AFB_noBox = numerator/sigma;
7546 }
else if (
s == 136.*136.){
7547 double AFB_noBox, sigma = 0.0;
7560 AFB_noBox = numerator/sigma;
7585 }
else if (
s == 161.*161.){
7586 double AFB_noBox, sigma = 0.0;
7599 AFB_noBox = numerator/sigma;
7624 }
else if (
s == 172.*172.){
7625 double AFB_noBox, sigma = 0.0;
7638 AFB_noBox = numerator/sigma;
7663 }
else if (
s == 183.*183.) {
7664 double AFB_noBox, sigma = 0.0;
7677 AFB_noBox = numerator/sigma;
7702 }
else if (
s == 189.*189.) {
7703 double AFB_noBox, sigma = 0.0;
7716 AFB_noBox = numerator/sigma;
7741 }
else if (
s == 192.*192.) {
7742 double AFB_noBox, sigma = 0.0;
7755 AFB_noBox = numerator/sigma;
7780 }
else if (
s == 196.*196.) {
7781 double AFB_noBox, sigma = 0.0;
7794 AFB_noBox = numerator/sigma;
7819 }
else if (
s == 200.*200.) {
7820 double AFB_noBox, sigma = 0.0;
7833 AFB_noBox = numerator/sigma;
7858 }
else if (
s == 202.*202.) {
7859 double AFB_noBox, sigma = 0.0;
7872 AFB_noBox = numerator/sigma;
7897 }
else if (
s == 205.*205.) {
7898 double AFB_noBox, sigma = 0.0;
7911 AFB_noBox = numerator/sigma;
7936 }
else if (
s == 207.*207.) {
7937 double AFB_noBox, sigma = 0.0;
7950 AFB_noBox = numerator/sigma;
7976 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBtau!");
7981 gsl_set_error_handler(old_handler);
8026 double mq =
m_q(q_flavor, sqrt(
s));
8049 double mq =
m_q(q_flavor, sqrt(
s));
8060 double sprime = (1.0 - x)*
s;
8075 double s = 130. * 130.;
8081 double s = 136. * 136.;
8087 double s = 161. * 161.;
8093 double s = 172. * 172.;
8099 double s = 183. * 183.;
8105 double s = 189. * 189.;
8111 double s = 192. * 192.;
8117 double s = 196. * 196.;
8123 double s = 200. * 200.;
8129 double s = 202. * 202.;
8135 double s = 205. * 205.;
8141 double s = 207. * 207.;
8148 double s = 130. * 130.;
8154 double s = 136. * 136.;
8160 double s = 161. * 161.;
8166 double s = 172. * 172.;
8172 double s = 183. * 183.;
8178 double s = 189. * 189.;
8184 double s = 192. * 192.;
8190 double s = 196. * 196.;
8196 double s = 200. * 200.;
8202 double s = 202. * 202.;
8208 double s = 205. * 205.;
8214 double s = 207. * 207.;
8220 double sprime = (1.0 - x)*
s;
8221 double mq =
m_q(q_flavor, sqrt(
s));
8244 double s = 130. * 130.;
8250 double s = 133. * 133.;
8256 double s = 136. * 136.;
8262 double s = 161. * 161.;
8268 double s = 167. * 167.;
8274 double s = 172. * 172.;
8280 double s = 183. * 183.;
8286 double s = 189. * 189.;
8292 double s = 192. * 192.;
8298 double s = 196. * 196.;
8304 double s = 200. * 200.;
8310 double s = 202. * 202.;
8316 double s = 205. * 205.;
8322 double s = 207. * 207.;
8331 double s = 130. * 130.;
8337 double s = 133. * 133.;
8344 double s = 136. * 136.;
8350 double s = 161. * 161.;
8356 double s = 167. * 167.;
8362 double s = 172. * 172.;
8368 double s = 183. * 183.;
8374 double s = 189. * 189.;
8380 double s = 192. * 192.;
8386 double s = 196. * 196.;
8392 double s = 200. * 200.;
8398 double s = 202. * 202.;
8404 double s = 205. * 205.;
8410 double s = 207. * 207.;
8420 double s = 130. * 130.;
8426 double s = 133. * 133.;
8432 double s = 136. * 136.;
8438 double s = 161. * 161.;
8444 double s = 167. * 167.;
8450 double s = 172. * 172.;
8456 double s = 183. * 183.;
8462 double s = 189. * 189.;
8468 double s = 192. * 192.;
8474 double s = 196. * 196.;
8480 double s = 200. * 200.;
8486 double s = 202. * 202.;
8492 double s = 205. * 205.;
8498 double s = 207. * 207.;
8508 double s = 130. * 130.;
8514 double s = 133. * 133.;
8520 double s = 136. * 136.;
8526 double s = 161. * 161.;
8532 double s = 167. * 167.;
8538 double s = 172. * 172.;
8544 double s = 183. * 183.;
8550 double s = 189. * 189.;
8556 double s = 192. * 192.;
8562 double s = 196. * 196.;
8568 double s = 200. * 200.;
8574 double s = 202. * 202.;
8580 double s = 205. * 205.;
8586 double s = 207. * 207.;
8596 double s = 130. * 130.;
8602 double s = 133. * 133.;
8608 double s = 136. * 136.;
8614 double s = 161. * 161.;
8620 double s = 167. * 167.;
8626 double s = 172. * 172.;
8632 double s = 183. * 183.;
8638 double s = 189. * 189.;
8644 double s = 192. * 192.;
8650 double s = 196. * 196.;
8656 double s = 200. * 200.;
8662 double s = 202. * 202.;
8668 double s = 205. * 205.;
8674 double s = 207. * 207.;
8690 double s = 130. * 130.;
8696 double s = 136. * 136.;
8702 double s = 161. * 161.;
8708 double s = 172. * 172.;
8714 double s = 183. * 183.;
8720 double s = 189. * 189.;
8726 double s = 192. * 192.;
8732 double s = 196. * 196.;
8738 double s = 200. * 200.;
8744 double s = 202. * 202.;
8750 double s = 205. * 205.;
8756 double s = 207. * 207.;
8766 double s = 130. * 130.;
8772 double s = 136. * 136.;
8778 double s = 161. * 161.;
8784 double s = 172. * 172.;
8790 double s = 183. * 183.;
8796 double s = 189. * 189.;
8802 double s = 192. * 192.;
8808 double s = 196. * 196.;
8814 double s = 200. * 200.;
8820 double s = 202. * 202.;
8826 double s = 205. * 205.;
8832 double s = 207. * 207.;
8843 double mq =
m_q(q_flavor, sqrt(
s));
8855 double s = 130. * 130.;
8861 double s = 133. * 133.;
8867 double s = 136. * 136.;
8873 double s = 161. * 161.;
8879 double s = 167. * 167.;
8885 double s = 172. * 172.;
8891 double s = 183. * 183.;
8897 double s = 189. * 189.;
8903 double s = 192. * 192.;
8909 double s = 196. * 196.;
8915 double s = 200. * 200.;
8921 double s = 202. * 202.;
8927 double s = 205. * 205.;
8933 double s = 207. * 207.;
8942 double s = 130. * 130.;
8948 double s = 133. * 133.;
8954 double s = 136. * 136.;
8960 double s = 161. * 161.;
8966 double s = 167. * 167.;
8972 double s = 172. * 172.;
8978 double s = 183. * 183.;
8984 double s = 189. * 189.;
8990 double s = 192. * 192.;
8996 double s = 196. * 196.;
9002 double s = 200. * 200.;
9008 double s = 202. * 202.;
9014 double s = 205. * 205.;
9020 double s = 207. * 207.;
9030 double s = 130. * 130.;
9036 double s = 133. * 133.;
9042 double s = 136. * 136.;
9048 double s = 161. * 161.;
9054 double s = 167. * 167.;
9060 double s = 172. * 172.;
9066 double s = 183. * 183.;
9072 double s = 189. * 189.;
9078 double s = 192. * 192.;
9084 double s = 196. * 196.;
9090 double s = 200. * 200.;
9096 double s = 202. * 202.;
9102 double s = 205. * 205.;
9108 double s = 207. * 207.;
9118 double s = 130. * 130.;
9124 double s = 133. * 133.;
9130 double s = 136. * 136.;
9136 double s = 161. * 161.;
9142 double s = 167. * 167.;
9150 double s = 172. * 172.;
9156 double s = 183. * 183.;
9162 double s = 189. * 189.;
9168 double s = 192. * 192.;
9174 double s = 196. * 196.;
9180 double s = 200. * 200.;
9186 double s = 202. * 202.;
9192 double s = 205. * 205.;
9198 double s = 207. * 207.;
9208 double s = 130. * 130.;
9214 double s = 133. * 133.;
9220 double s = 136. * 136.;
9226 double s = 161. * 161.;
9232 double s = 167. * 167.;
9238 double s = 172. * 172.;
9244 double s = 183. * 183.;
9250 double s = 189. * 189.;
9256 double s = 192. * 192.;
9262 double s = 196. * 196.;
9268 double s = 200. * 200.;
9274 double s = 202. * 202.;
9280 double s = 205. * 205.;
9286 double s = 207. * 207.;
9304 double sprime = (1.0 - x)*
s;
9310 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
9316 double s = 130. * 130.;
9322 double s = 136. * 136.;
9328 double s = 161. * 161.;
9334 double s = 172. * 172.;
9340 double s = 183. * 183.;
9346 double s = 189. * 189.;
9352 double s = 192. * 192.;
9358 double s = 196. * 196.;
9364 double s = 200. * 200.;
9370 double s = 202. * 202.;
9376 double s = 205. * 205.;
9382 double s = 207. * 207.;
9389 double s = 130. * 130.;
9395 double s = 136. * 136.;
9401 double s = 161. * 161.;
9407 double s = 172. * 172.;
9413 double s = 183. * 183.;
9419 double s = 189. * 189.;
9425 double s = 192. * 192.;
9431 double s = 196. * 196.;
9437 double s = 200. * 200.;
9443 double s = 202. * 202.;
9449 double s = 205. * 205.;
9455 double s = 207. * 207.;
9463 double sprime = (1.0 - x)*
s;
9465 double mq =
m_q(q_flavor, sqrt(
s));
9472 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
9478 double s = 133. * 133.;
9484 double s = 167. * 167.;
9490 double s = 172. * 172.;
9496 double s = 183. * 183.;
9502 double s = 189. * 189.;
9508 double s = 192. * 192.;
9514 double s = 196. * 196.;
9520 double s = 200. * 200.;
9526 double s = 202. * 202.;
9532 double s = 205. * 205.;
9538 double s = 207. * 207.;
9547 double s = 133. * 133.;
9553 double s = 167. * 167.;
9559 double s = 172. * 172.;
9565 double s = 183. * 183.;
9571 double s = 189. * 189.;
9577 double s = 192. * 192.;
9583 double s = 196. * 196.;
9589 double s = 200. * 200.;
9595 double s = 202. * 202.;
9601 double s = 205. * 205.;
9607 double s = 207. * 207.;
9624 throw std::runtime_error(
"ERROR: StandardModel::LEP2dsigmadcosE only implemented via semi-analytical approx");
9637 throw std::runtime_error(
"ERROR: StandardModel::LEP2dsigmadcosMu only implemented via semi-analytical approx");
9650 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 .
double delGammaWlv
The theoretical uncertainty in , denoted as .
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
virtual 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.
double delGammaWqq
The theoretical uncertainty in , denoted as .
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.