12 #include <gsl/gsl_sf_zeta.h>
28 #include <boost/bind.hpp>
32 "lambda",
"A",
"rhob",
"etab",
"Mz",
"AlsMz",
"GF",
"ale",
"dAle5Mz",
"mHl",
33 "delMw",
"delSin2th_l",
"delSin2th_q",
"delSin2th_b",
"delGammaZ",
"delsigma0H",
"delR0l",
"delR0c",
"delR0b",
34 "mneutrino_1",
"mneutrino_2",
"mneutrino_3",
"melectron",
"mmu",
"mtau",
"muw"
41 :
QCD(), Yu(3, 3, 0.), Yd(3, 3, 0.), Yn(3, 3, 0.),
42 Ye(3, 3, 0.), SMM(*this), SMFlavour(*this)
46 FlagMw =
"APPROXIMATEFORMULA";
81 for (
int i = 0; i < 12; ++i) {
138 w_GSL1 = gsl_integration_workspace_alloc (200);
187 for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
188 if (it->first.compare(
"AlsM") == 0 || it->first.compare(
"MAls") == 0)
189 throw std::runtime_error(
"ERROR: inappropriate parameter " + it->first
190 +
" in model initialization");
192 std::map<std::string, double> myDPars(DPars);
193 myDPars[
"AlsM"] = myDPars.at(
"AlsMz");
194 myDPars[
"MAls"] = myDPars.at(
"Mz");
215 for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
243 for (
int i = 0; i < 12; ++i) {
259 if (
name.compare(
"Mz") == 0) {
262 }
else if (
name.compare(
"AlsMz") == 0) {
265 }
else if (
name.compare(
"GF") == 0)
267 else if (
name.compare(
"ale") == 0)
269 else if (
name.compare(
"dAle5Mz") == 0)
271 else if (
name.compare(
"mHl") == 0)
273 else if (
name.compare(
"delMw") == 0)
275 else if (
name.compare(
"delSin2th_l") == 0)
277 else if (
name.compare(
"delSin2th_q") == 0)
279 else if (
name.compare(
"delSin2th_b") == 0)
281 else if (
name.compare(
"delGammaZ") == 0)
283 else if (
name.compare(
"delsigma0H") == 0)
285 else if (
name.compare(
"delR0l") == 0)
287 else if (
name.compare(
"delR0c") == 0)
289 else if (
name.compare(
"delR0b") == 0)
291 else if (
name.compare(
"mneutrino_1") == 0) {
294 }
else if (
name.compare(
"mneutrino_2") == 0) {
297 }
else if (
name.compare(
"mneutrino_3") == 0) {
300 }
else if (
name.compare(
"melectron") == 0) {
303 }
else if (
name.compare(
"mmu") == 0) {
306 }
else if (
name.compare(
"mtau") == 0) {
333 }
else if (
name.compare(
"muw") == 0)
341 for (
int i = 0; i <
NSMvars; i++) {
342 if (DPars.find(
SMvars[i]) == DPars.end()) {
343 std::cout <<
"ERROR: missing mandatory SM parameter " <<
SMvars[i] << std::endl;
378 for (
int i = 0; i < 3; i++)
379 Yu.assign(i, i, this->quarks[
UP + 2 * i].getMass() /
v() *
sqrt(2.));
384 for (
int i = 0; i < 3; i++)
385 Yd.assign(i, i, this->quarks[
DOWN + 2 * i].getMass() /
v() *
sqrt(2.));
389 for (
int i = 0; i < 3; i++)
390 Ye.assign(i, i, this->leptons[
ELECTRON + 2 * i].getMass() /
v() *
sqrt(2.));
394 for (
int i = 0; i < 3; i++)
407 if (
name.compare(
"CacheInStandardModel") == 0) {
410 }
else if (
name.compare(
"CacheInEWSMcache") == 0) {
413 }
else if (
name.compare(
"Wolfenstein") == 0) {
427 }
else if (
name.compare(
"WithoutNonUniversalVC") == 0) {
430 }
else if (
name.compare(
"NoApproximateGammaZ") == 0) {
433 }
else if (
name.compare(
"SMAux") == 0) {
447 if (
name.compare(
"Mw") == 0) {
452 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
453 +
name +
"=" + value);
455 }
else if (
name.compare(
"RhoZ") == 0) {
460 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
461 +
name +
"=" + value);
462 }
else if (
name.compare(
"KappaZ") == 0) {
467 throw std::runtime_error(
"StandardModel::setFlagStr(): Invalid flag "
468 +
name +
"=" + value);
520 bool bNotUpdated =
true;
524 bNotUpdated &=
false;
536 throw std::runtime_error(
"out of range in StandardModel::ale_OS()");
538 double N = 20.0 / 3.0;
539 double beta1 = N / 3.0;
540 double beta2 = N / 4.0;
542 double v = 1.0 + 2.0 * beta1 * alpha_ini / M_PI *
log(
Mz / mu);
546 return ( alpha_ini /
v);
548 return ( alpha_ini /
v * (1.0 - beta2 / beta1 * alpha_ini / M_PI *
log(
v) /
v));
550 throw std::runtime_error(
"Error in StandardModel::ale_OS()");
556 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
557 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
558 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
559 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
564 return(
Beta0((
double) nf));
566 return(
Beta1((
double) nf));
568 return(
Beta2((
double) nf));
570 return(
Beta3((
double) nf));
572 return(-4. *
TF * Qbar2 );
574 return((4. *
CF - 8. *
CA) *
TF * Qbar2 );
576 return(11./3. *
TF * Qbar2 *
Beta_e(00, nf) + 2. *
TF * Qbar4);
578 throw std::runtime_error(
"StandardModel::Beta_s(): case not implemented");
584 unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
585 unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
586 double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
587 Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
592 return(4./3. * (Qbar2 *
Nc + 3.));
594 return(4. * (Qbar4 *
Nc + 3.));
596 return(4. *
CF *
Nc * Qbar2);
598 throw std::runtime_error(
"StandardModel::Beta_e(): case not implemented");
617 return (
AlsByOrder(mu,
LO, qed_flag, Nf_thr) +
AlsByOrder(mu,
NLO, qed_flag, Nf_thr) +
AlsByOrder(mu,
NNLO, qed_flag, Nf_thr) +
AlsByOrder(mu,
NNNLO, qed_flag, Nf_thr));
619 throw std::runtime_error(
"StandardModel::Als(): " +
orderToString(order) +
" is not implemented.");
625 int i, nfAls = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAls;
626 double als, alstmp, mutmp;
650 for (i = nfAls - 1; i > nfmu; i--) {
662 for (i = nfAls + 1; i < nfmu; i++) {
685 throw std::runtime_error(
"StandardModel::Als(): " +
orderToString(order) +
" is not implemented.");
693 double v = 1. + b00s * alsi / 2. / M_PI *
log(mu / mu_i);
694 double ve = 1. - b00e * alei / 2. / M_PI *
log(mu / mu_i);
695 double logv =
log(
v), logve =
log(ve);
696 double rho = 1. / (1. + b00e * alei / b00s / alsi);
698 double b01s =
Beta_s(01,nf), b01s00e = b01s / b00e;
706 als += alsi * alsi / 4. / M_PI /
v /
v * b01s00e * logve;
709 als += alsi * alsi * alsi / 4. / 4. / M_PI / M_PI /
v /
v /
v * (
710 b01s00e * b01s00e * logve * logve + b01s00e *
Beta_s(10, nf) / b00s *
711 (-2. * logv * logve + rho * ve * logve));
714 als += alsi * alsi * alei / 4. / 4. / M_PI / M_PI /
v /
v / ve * (
Beta_s(02, nf) / b00e *
715 (ve - 1.) +
Beta_s(11, nf) / b00s * rho * ve * (logve - logv) + b01s00e *
Beta_e(10, nf) /
716 b00e * (logve - ve + 1.) + b01s *
Beta_s(10, nf) / b00s / b00s * rho * logv +
717 b01s00e *
Beta_e(01, nf) / b00s * (rho * ve * (logv - logve) - logv));
722 return (
AlsWithInit(mu, alsi, mu_i,
LO,
true) +
AlsWithInit(mu, alsi, mu_i,
NLO,
true)+
AlsWithInit(mu, alsi, mu_i,
NNLO,
true));
724 return (
AlsWithInit(mu, alsi, mu_i,
LO,
true) +
AlsWithInit(mu, alsi, mu_i,
NLO,
true)+
AlsWithInit(mu, alsi, mu_i,
NNLO,
true) +
AlsWithInit(mu, alsi, mu_i,
NNNLO,
true));
726 throw std::runtime_error(
"StandardModel::AlsWithInit(): " +
orderToString(order) +
" is not implemented.");
734 int i, nfAle = (int)
Nf(
Mz), nfmu = Nf_thr ? (int)
Nf(mu) : nfAle;
749 return (
Ale(mu,
LO, Nf_thr) +
Ale(mu,
NLO, Nf_thr));
767 for (i = nfAle - 1; i > nfmu; i--) {
779 for (i = nfAle + 1; i < nfmu; i++) {
801 throw std::runtime_error(
"StandardModel::Ale(): " +
orderToString(order) +
" is not implemented.");
807 if (fabs(mu - mu_i) < MEPS)
return(alei);
811 double ve = 1. - b00e * alei / 2. / M_PI *
log(mu / mu_i);
812 double logv =
log(1. + b00s * alsi / 2. / M_PI *
log(mu / mu_i)), logve =
log(ve);
819 return (- alei * alei / 4. / M_PI / ve / ve * (
Beta_e(10, nf) / b00e * logve -
Beta_e(01, nf) / b00s * logv) );
824 throw std::runtime_error(
"StandardModel::AleWithInit(): " +
orderToString(order) +
" is not implemented.");
835 double DeltaAlphaL = 0.0;
902 double alphatilde_e =
alphaMz()/4./M_PI;
903 double alphatilde_s =
AlsMz/4./M_PI;
906 double B00S =
Beta0(nf), B10S =
Beta1(nf), B20S =
Beta2(nf), B30S = gsl_sf_zeta_int(3) * 352864./81. - 598391./1458,
907 B01S = -22./9., B11S = -308./27., B02S = 4945./243.;
909 double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
911 double B10soB00s = B10S / B00S;
912 double B01soB00e = B01S/B00E;
914 double vs= 1. + 2. * B00S * alphatilde_s *
log(mu/ mu_0);
915 double ve= 1. - 2. * B00E * alphatilde_e *
log(mu/ mu_0);
916 double ps= B00S * alphatilde_s /(B00S * alphatilde_s + B00E * alphatilde_e);
918 double logve =
log(ve);
919 double logvs =
log(vs);
920 double logeos =
log(ve/vs);
921 double logsoe =
log(vs/ve);
922 double asovs = alphatilde_s/vs;
923 double aeove = alphatilde_e/ve;
927 result = asovs -
pow(asovs, 2) * (logvs * B10soB00s - logve * B01soB00e)
928 +
pow(asovs, 3) * ((1. - vs) * B20S / B00S + B10soB00s * B10soB00s * (logvs * logvs - logvs
929 + vs - 1.) + B01soB00e * B01soB00e * logve * logve + (-2. * logvs * logve
930 + ps * ve * logve) * B01S * B10S/(B00E * B00S))
931 +
pow(asovs, 4) * (0.5 * B30S *(1. - vs * vs)/ B00S + ((2. * vs - 3.) * logvs + vs * vs
932 - vs) * B20S * B10soB00s /(B00S) + B10soB00s * B10soB00s * B10soB00s * (-
pow(logvs,3)
933 + 5. *
pow(logvs,2) / 2. + 2. * (1. - vs) * logvs - (vs - 1.) * (vs - 1.)* 0.5))
934 +
pow(asovs, 2) * (aeove) * ((ve - 1.) * B02S / B00E
935 + ps * ve * logeos * B11S /B00S +(logve - ve + 1.) * B01soB00e * B10E/(B00E)
936 + logvs * ps * B01S * B10soB00s/(B00S) +(logsoe * ve * ps - logvs) * B01soB00e * B01E/( B00S));
960 throw std::runtime_error(
"Error in s02()");
962 return ( (1.0 -
sqrt(tmp)) / 2.0);
967 return ( 1.0 -
s02());
983 if (
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1017 return ( Mw_i * Mw_i /
Mz /
Mz);
1022 return (
cW2(
Mw()));
1028 return ( 1.0 -
cW2(Mw_i));
1033 return ( 1.0 -
cW2());
1040 double sW2 = 1.0 - myMw * myMw /
Mz /
Mz;
1041 double tmp =
sqrt(2.0) *
GF *
sW2 * myMw * myMw / M_PI /
ale;
1042 if (
FlagMw.compare(
"NORESUM") == 0
1043 ||
FlagMw.compare(
"APPROXIMATEFORMULA") == 0) {
1046 return (1.0 - 1.0 / tmp);
1051 double DeltaRho[orders_EW_size])
const
1056 DeltaRho[
EW1] = 0.0;
1068 DeltaRho[
EW2] = 0.0;
1076 DeltaRho[
EW3] = 0.0;
1080 double DeltaR_rem[orders_EW_size])
const
1085 DeltaR_rem[
EW1] = 0.0;
1097 DeltaR_rem[
EW2] = 0.0;
1105 DeltaR_rem[
EW3] = 0.0;
1113 double G0 =
GF *
pow(
Mz, 3.0) / 24.0 /
sqrt(2.0) / M_PI;
1115 double Gz = 6.0 * G0;
1116 Gz += 3.0 * G0 * (
pow(1.0 - 4.0 * sW2tree, 2.0) + 1.0);
1117 Gz += 6.0 * G0 * (
pow(1.0 - 8.0 / 3.0 * sW2tree, 2.0) + 1.0)
1118 * (1.0 +
AlsMz / M_PI);
1119 Gz += 9.0 * G0 * (
pow(1.0 - 4.0 / 3.0 * sW2tree, 2.0) + 1.0)
1120 * (1.0 +
AlsMz / M_PI);
1125 return (
Mz - Gz * Gz / 2.0 /
Mz);
1131 double Gw_SM = 3.0 *
GF *
pow(
Mw, 3.0) / 2.0 /
sqrt(2.0) / M_PI
1132 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1134 return (
Mw - Gw_SM * Gw_SM / 2.0 /
Mw);
1140 double Gw_SM = 3.0 *
GF *
pow(Mwbar, 3.0) / 2.0 /
sqrt(2.0) / M_PI
1141 * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1143 return (Mwbar + Gw_SM * Gw_SM / 2.0 / Mwbar);
1149 double sW2bar = 1.0 - Mwbar_SM * Mwbar_SM /
Mzbar() /
Mzbar();
1150 double tmp =
sqrt(2.0) *
GF * sW2bar * Mwbar_SM * Mwbar_SM / M_PI /
ale;
1169 throw std::runtime_error(
"Error in StandardModel::GammaW()");
1171 double G0 =
GF *
pow(
Mw(), 3.0) / 6.0 /
sqrt(2.0) / M_PI;
1182 if (fi.
is(
"LEPTON"))
1186 return ( 3.0 * V.
abs2() * G0 *
rho_GammaW(fi, fj)*(1.0 + AlsMw / M_PI));
1196 double GammaWtmp = 0.;
1198 for (
int i = 0; i < 6; i += 2)
1212 double Re_gV_over_gA = 1.0 - 4.0 * fabs(f.
getCharge()) * Re_kappa *
sW2();
1213 return ( 2.0 * Re_gV_over_gA / (1.0 +
pow(Re_gV_over_gA, 2.0)));
1224 return ( Re_kappa *
sW2());
1239 if (f.
is(
"NEUTRINO_1") || f.
is(
"NEUTRINO_2") || f.
is(
"NEUTRINO_3"))
1241 else if (f.
is(
"ELECTRON") || f.
is(
"MU"))
1243 else if (f.
is(
"TAU"))
1245 else if (f.
is(
"UP"))
1247 else if (f.
is(
"CHARM"))
1249 else if (f.
is(
"DOWN") || f.
is(
"STRANGE"))
1251 else if (f.
is(
"BOTTOM"))
1254 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1261 if (f.
is(
"NEUTRINO_1") || f.
is(
"NEUTRINO_2") || f.
is(
"NEUTRINO_3"))
1263 else if (f.
is(
"ELECTRON") || f.
is(
"MU"))
1265 else if (f.
is(
"TAU"))
1267 else if (f.
is(
"UP"))
1269 else if (f.
is(
"CHARM"))
1271 else if (f.
is(
"DOWN") || f.
is(
"STRANGE"))
1273 else if (f.
is(
"BOTTOM"))
1276 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1283 double G0 =
GF *
pow(
Mz, 3.0) / 24.0 /
sqrt(2.0) / M_PI;
1284 if (f.
is(
"LEPTON")) {
1288 Gamma = G0 * myrhoZ_f.
abs() *
sqrt(1.0 - 4.0 * xl)
1289 * ((1.0 + 2.0 * xl)*(gV_over_gA.
abs2() + 1.0) - 6.0 * xl)
1290 * (1.0 + 3.0 / 4.0 * myalphaMz / M_PI *
pow(Q, 2.0));
1291 }
else if (f.
is(
"QUARK")) {
1297 throw std::runtime_error(
"Error in StandardModel::GammaZ()");
1311 double Gamma_had_tmp = 0.0;
1337 double G0 =
GF *
pow(
Mz, 3.0) / 24.0 /
sqrt(2.0) / M_PI;
1338 Gamma_had_tmp += 4.0 * 3.0 * G0 *
RVh();
1340 return Gamma_had_tmp;
1402 if (f.
is(
"ELECTRON")) {
1408 }
else if (f.
is(
"MU")) {
1414 }
else if (f.
is(
"TAU")) {
1420 }
else if (f.
is(
"NEUTRINO_1")) {
1426 }
else if (f.
is(
"NEUTRINO_2")) {
1432 }
else if (f.
is(
"NEUTRINO_3")) {
1438 }
else if (f.
is(
"UP")) {
1445 }
else if (f.
is(
"STRANGE")) {
1452 }
else if (f.
is(
"CHARM")) {
1459 }
else if (f.
is(
"BOTTOM")) {
1466 }
else throw std::runtime_error(
"StandardModel::R0_f called with wrong argument");
1472 if (f.
is(
"ELECTRON")) {
1478 }
else if (f.
is(
"MU")) {
1484 }
else if (f.
is(
"TAU")) {
1490 }
else if (f.
is(
"NEUTRINO_1")) {
1496 }
else if (f.
is(
"NEUTRINO_2")) {
1502 }
else if (f.
is(
"NEUTRINO_3")) {
1508 }
else if (f.
is(
"UP")) {
1515 }
else if (f.
is(
"STRANGE")) {
1522 }
else if (f.
is(
"CHARM")) {
1529 }
else if (f.
is(
"BOTTOM")) {
1536 }
else throw std::runtime_error(
"StandardModel::R0_f called with wrong argument");
1582 if (
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1583 throw std::runtime_error(
"No approximate formula is available for rhoZ^f");
1607 #ifdef WITHIMTWOLOOPQCD
1623 double DeltaRbar_rem = 0.0;
1630 deltaRho_rem_f_real[j] = deltaRho_remf[j].real();
1631 double ReRhoZf =
resumRhoZ(DeltaRho, deltaRho_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1634 double ImRhoZf = 0.0;
1636 ImRhoZf += deltaRho_remf[j].imag();
1654 double ReKappaZf = 0.0, ImKappaZf = 0.0;
1655 if (
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0) {
1660 }
else if (
FlagSMAux && (f.
is(
"ELECTRON") || f.
is(
"MUON") || f.
is(
"TAU") ) ) {
1667 #ifdef WITHIMTWOLOOPQCD
1689 #ifdef WITHIMTWOLOOPQCD
1705 double DeltaRbar_rem = 0.0;
1712 deltaKappa_rem_f_real[j] = deltaKappa_remf[j].real();
1714 ReKappaZf =
resumKappaZ(DeltaRho, deltaKappa_rem_f_real, DeltaRbar_rem, f.
is(
"BOTTOM"));
1718 *(1.0 - 8.0 / 3.0 * ReKappaZf *
sW2());
1722 ImKappaZf += deltaKappa_remf[j].imag();
1751 dRho *=
ale / 4.0 / M_PI /
sW2;
1778 dKappa *=
ale / 4.0 / M_PI /
sW2;
1788 double DeltaRhoPrime = 2.0 * (
sqrt(rhoZe) - 1.0);
1790 return DeltaRhoPrime;
1797 double DeltaRhoPrime = 2.0 * (
sqrt(rhoZe) - 1.0);
1801 return (
c02() * DeltaRhoPrime +
s02() * DeltaRW / (
c02() -
s02())
1802 - 2.0 *
s02() * DeltaKappaPrime);
1809 double DeltaRhoPrime = 2.0 * (
sqrt(rhoZe) - 1.0);
1812 return (
c02() * DeltaRhoPrime + (
c02() -
s02()) * DeltaKappaPrime);
1830 return ( kappaZe.
real() / kappaZb.
real() - 1.0);
1833 / kappaZb.
real() - 1.0);
1862 const double DeltaR_rem[orders_EW_size])
const
1864 if ((
FlagMw.compare(
"APPROXIMATEFORMULA") == 0)
1865 || (DeltaR_rem[
EW2QCD1] != 0.0)
1866 || (DeltaR_rem[
EW3] != 0.0))
1867 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1870 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1872 double cW2_TMP = Mw_i * Mw_i /
Mz /
Mz;
1873 double sW2_TMP = 1.0 - cW2_TMP;
1875 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G = 0.0;
1876 if (
FlagMw.compare(
"NORESUM") == 0) {
1878 DeltaRho_sum += DeltaRho[(
orders_EW) j];
1882 f_AlphaToGF =
sqrt(2.0) *
GF *
pow(
Mz, 2.0) * sW2_TMP * cW2_TMP / M_PI /
ale;
1883 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1884 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1885 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1886 +
pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1888 +
pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1889 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1893 double DeltaR_rem_sum = 0.0;
1894 double DeltaR_EW1 = 0.0, DeltaR_EW2_rem = 0.0;
1895 if (
FlagMw.compare(
"NORESUM") == 0) {
1897 DeltaR_rem_sum += DeltaR_rem[(
orders_EW) j];
1900 DeltaR_EW1 = -cW2_TMP / sW2_TMP * DeltaRho[
EW1] + DeltaR_rem[
EW1];
1906 DeltaRho_sum -= DeltaRho[
EW2];
1907 DeltaR_rem_sum -= DeltaR_rem[
EW2];
1910 R = 1.0 +
DeltaAlphaL5q() - cW2_TMP / sW2_TMP * DeltaRho_sum
1914 }
else if (
FlagMw.compare(
"OMSI") == 0) {
1916 R = 1.0 / (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1919 }
else if (
FlagMw.compare(
"INTERMEDIATE") == 0) {
1921 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1924 }
else if (
FlagMw.compare(
"OMSII") == 0) {
1926 R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)*(1.0 -
DeltaAlphaL5q())
1927 - (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G) * DeltaR_rem[
EW1]
1930 throw std::runtime_error(
"Error in StandardModel::resumMw()");
1932 if (
FlagMw.compare(
"NORESUM") == 0) {
1936 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1942 if (tmp * R > 1.0)
throw std::runtime_error(
"StandardModel::resumMw(): Negative (1-tmp*R)");
1949 const double deltaRho_rem[orders_EW_size],
1950 const double DeltaRbar_rem,
const bool bool_Zbb)
const
1952 if ((
FlagRhoZ.compare(
"APPROXIMATEFORMULA") == 0)
1953 || (deltaRho_rem[
EW1QCD2] != 0.0)
1954 || (deltaRho_rem[
EW2QCD1] != 0.0)
1955 || (deltaRho_rem[
EW3] != 0.0))
1956 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1959 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
1961 double Mw_TMP =
Mw();
1962 double cW2_TMP =
cW2();
1963 double sW2_TMP =
sW2();
1965 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
1966 double DeltaRbar_rem_G, deltaRho_rem_G, deltaRho_rem_G2;
1969 * sW2_TMP * cW2_TMP / M_PI /
ale;
1970 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
1971 + f_AlphaToGF * DeltaRho[
EW1QCD1]
1972 + f_AlphaToGF * DeltaRho[
EW1QCD2]
1973 +
pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
1975 +
pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
1976 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
1977 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
1978 deltaRho_rem_G = f_AlphaToGF * (deltaRho_rem[
EW1]
1980 deltaRho_rem_G2 =
pow(f_AlphaToGF, 2.0) * deltaRho_rem[
EW2];
1985 if (
FlagRhoZ.compare(
"OMSI") == 0) {
1986 rhoZ = (1.0 + deltaRho_rem_G + deltaRho_rem_G2)
1987 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
1988 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
1989 rhoZ = (1.0 + deltaRho_rem_G)
1990 / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
1992 }
else if (
FlagRhoZ.compare(
"NORESUM") == 0
1993 ||
FlagRhoZ.compare(
"OMSII") == 0) {
1994 rhoZ = 1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
1995 + DeltaRho_G * DeltaRho_G
1996 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2;
1998 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2001 double OnePlusTaub = 1.0 +
taub();
2002 double OnePlusTaub2 = OnePlusTaub*OnePlusTaub;
2004 deltaRho_rem_G += f_AlphaToGF *
ale / 4.0 / M_PI / sW2_TMP
2006 if (
FlagRhoZ.compare(
"NORESUM") == 0) {
2007 rhoZ = (1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2008 + DeltaRho_G * DeltaRho_G
2009 + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2)
2011 }
else if (
FlagRhoZ.compare(
"OMSI") == 0) {
2012 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2013 rhoZ = rhoZbL / (1.0 - rhoZbL * deltaRho_rem_G);
2014 }
else if (
FlagRhoZ.compare(
"INTERMEDIATE") == 0) {
2015 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2016 rhoZ = rhoZbL * (1.0 + rhoZbL * deltaRho_rem_G);
2017 }
else if (
FlagRhoZ.compare(
"OMSII") == 0) {
2018 rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2019 rhoZ = rhoZbL * (1.0 + deltaRho_rem_G);
2021 throw std::runtime_error(
"Error in StandardModel::resumRhoZ()");
2028 const double deltaKappa_rem[orders_EW_size],
2029 const double DeltaRbar_rem,
const bool bool_Zbb)
const
2031 if ((
FlagKappaZ.compare(
"APPROXIMATEFORMULA") == 0)
2032 || (deltaKappa_rem[
EW2QCD1] != 0.0)
2033 || (deltaKappa_rem[
EW3] != 0.0))
2034 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2037 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2039 double Mw_TMP =
Mw();
2040 double cW2_TMP =
cW2();
2041 double sW2_TMP =
sW2();
2043 double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
2044 double DeltaRbar_rem_G, deltaKappa_rem_G, deltaKappa_rem_G2;
2047 * sW2_TMP * cW2_TMP / M_PI /
ale;
2048 DeltaRho_sum = f_AlphaToGF * DeltaRho[
EW1]
2049 + f_AlphaToGF * DeltaRho[
EW1QCD1]
2050 + f_AlphaToGF * DeltaRho[
EW1QCD2]
2051 +
pow(f_AlphaToGF, 2.0) * DeltaRho[
EW2]
2053 +
pow(f_AlphaToGF, 3.0) * DeltaRho[
EW3];
2054 DeltaRho_G = f_AlphaToGF * DeltaRho[
EW1];
2055 DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
2056 deltaKappa_rem_G = f_AlphaToGF * (deltaKappa_rem[
EW1]
2059 deltaKappa_rem_G2 =
pow(f_AlphaToGF, 2.0) * deltaKappa_rem[
EW2];
2065 kappaZ = (1.0 + deltaKappa_rem_G + deltaKappa_rem_G2)
2066 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
2067 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0) {
2068 kappaZ = (1.0 + deltaKappa_rem_G)
2069 *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2070 + deltaKappa_rem_G2;
2071 }
else if (
FlagKappaZ.compare(
"NORESUM") == 0
2073 kappaZ = 1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2074 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2075 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2076 + deltaKappa_rem_G2;
2078 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2081 double OnePlusTaub = 1.0 +
taub();
2083 deltaKappa_rem_G -= f_AlphaToGF *
ale / 8.0 / M_PI / sW2_TMP
2086 kappaZ = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2087 - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2088 + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2089 + deltaKappa_rem_G2) / OnePlusTaub;
2090 }
else if (
FlagKappaZ.compare(
"OMSI") == 0) {
2091 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2092 kappaZ = kappaZbL * (1.0 + deltaKappa_rem_G);
2093 }
else if (
FlagKappaZ.compare(
"INTERMEDIATE") == 0
2095 kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2096 kappaZ = kappaZbL + deltaKappa_rem_G;
2098 throw std::runtime_error(
"Error in StandardModel::resumKappaZ()");
2106 double taub_tmp = 0.0;
2109 taub_tmp += -2.0 * Xt;
2129 return ( -0.000113);
2134 return ( -0.000160);
2136 return ( -0.000040);
2138 throw std::runtime_error(
"Error in StandardModel::Delta_EWQCD");
2155 double Qf2 =
pow(
quarks[q].getCharge(), 2.0);
2161 double mcMz2 = mcMz*mcMz;
2162 double mbMz2 = mbMz*mbMz;
2163 double mqMz2, mqdash4;
2167 mqdash4 = mbMz2*mbMz2;
2171 mqdash4 = mcMz2*mcMz2;
2181 double log_t =
log(MtPole * MtPole / s);
2182 double log_c =
log(mcMz2 / s);
2183 double log_b =
log(mbMz2 / s);
2188 log_q =
log(mqMz2 / s);
2205 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2206 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2207 + 275.0 / 6.0 * zeta5
2208 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2209 - 25.0 / 9.0 * zeta5) * nf
2210 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2211 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2217 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2219 double C22V = 253.0 / 2.0 - 13.0 / 3.0 * nf;
2220 double C23V = 2522.0 - 855.0 / 2.0 *
zeta2 + 310.0 / 3.0 *
zeta3 - 5225.0 / 6.0 * zeta5
2221 + (-4942.0 / 27.0 + 34.0 *
zeta2 - 394.0 / 27.0 *
zeta3
2222 + 1045.0 / 27.0 * zeta5) * nf
2223 + (125.0 / 54.0 - 2.0 / 3.0 *
zeta2) * nf*nf;
2226 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2228 double C41V = -22.0;
2229 double C42V = -3029.0 / 12.0 + 162.0 *
zeta2 + 112.0 *
zeta3
2230 + (143.0 / 18.0 - 4.0 *
zeta2 - 8.0 / 3.0 *
zeta3) * nf;
2231 double C42VL = -11.0 / 2.0 + nf / 3.0;
2235 double xt = s / MtPole / MtPole;
2236 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2239 double AlsMzPi =
AlsMz / M_PI;
2240 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2241 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2242 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2249 RVf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2250 + (C02 + C2t) * AlsMzPi2 + C03 * AlsMzPi3 + C04 * AlsMzPi4
2251 + (mcMz2 + mbMz2) / s * C23 * AlsMzPi3
2252 + mqMz2 / s * (C21V * AlsMzPi + C22V * AlsMzPi2 + C23V * AlsMzPi3)
2253 + mcMz2 * mcMz2 / s / s * (C42 - log_c) * AlsMzPi2
2254 + mbMz2 * mbMz2 / s / s * (C42 - log_b) * AlsMzPi2
2255 + mqMz2 * mqMz2 / s / s * (C40V + C41V * AlsMzPi + (C42V + C42VL * log_q) * AlsMzPi2)
2256 + 12.0 * mqdash4 / s / s * AlsMzPi2
2257 - mqMz2 * mqMz2 * mqMz2 / s / s / s
2258 * (8.0 + 16.0 / 27.0 * (155.0 + 6.0 * log_q) * AlsMzPi);
2277 double Qf2 =
pow(
quarks[q].getCharge(), 2.0);
2283 double mcMz2 = mcMz*mcMz;
2284 double mbMz2 = mbMz*mbMz;
2285 double mqMz2, mqdash4;
2289 mqdash4 = mbMz2*mbMz2;
2293 mqdash4 = mcMz2*mcMz2;
2303 double log_t =
log(MtPole * MtPole / s);
2304 double log_c =
log(mcMz2 / s);
2305 double log_b =
log(mbMz2 / s);
2310 log_q =
log(mqMz2 / s);
2327 double C02 = 365.0 / 24.0 - 11.0 *
zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 *
zeta3) * nf;
2328 double C03 = 87029.0 / 288.0 - 121.0 / 8.0 *
zeta2 - 1103.0 / 4.0 *
zeta3
2329 + 275.0 / 6.0 * zeta5
2330 + (-7847.0 / 216.0 + 11.0 / 6.0 *
zeta2 + 262.0 / 9.0 *
zeta3
2331 - 25.0 / 9.0 * zeta5) * nf
2332 + (151.0 / 162.0 -
zeta2 / 18.0 - 19.0 / 27.0 *
zeta3) * nf*nf;
2333 double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2339 double C23 = -80.0 + 60.0 *
zeta3 + (32.0 / 9.0 - 8.0 / 3.0 *
zeta3) * nf;
2341 double C21A = -22.0;
2342 double C22A = -8221.0 / 24.0 + 57.0 *
zeta2 + 117.0 *
zeta3
2343 + (151.0 / 12.0 - 2.0 *
zeta2 - 4.0 *
zeta3) * nf;
2344 double C23A = -4544045.0 / 864.0 + 1340.0 *
zeta2 + 118915.0 / 36.0 *
zeta3
2346 + (71621.0 / 162.0 - 209.0 / 2.0 *
zeta2 - 216.0 *
zeta3
2347 + 5.0 * zeta4 + 55.0 * zeta5) * nf
2348 + (-13171.0 / 1944.0 + 16.0 / 9.0 *
zeta2 + 26.0 / 9.0 *
zeta3) * nf*nf;
2351 double C42 = 13.0 / 3.0 - 4.0 *
zeta3;
2354 double C42A = 3389.0 / 12.0 - 162.0 *
zeta2 - 220.0 *
zeta3
2355 + (-41.0 / 6.0 + 4.0 *
zeta2 + 16.0 / 3.0 *
zeta3) * nf;
2356 double C42AL = 77.0 / 2.0 - 7.0 / 3.0 * nf;
2360 double xt = s / MtPole / MtPole;
2361 double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2364 double I2 = -37.0 / 12.0 + (-log_t) + 7.0 / 81.0 * xt + 0.0132 * xt*xt;
2365 double I3 = -5075.0 / 216.0 + 23.0 / 6.0 *
zeta2 +
zeta3 + 67.0 / 18.0 * (-log_t)
2366 + 23.0 / 12.0 * log_t*log_t;
2367 double I4 = 49.0309 - 17.6637 * (-log_t) + 14.6597 * log_t * log_t
2368 + 3.6736 * (-log_t * log_t * log_t);
2371 double AlsMzPi =
AlsMz / M_PI;
2372 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2373 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2374 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2381 RAf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2382 + (C02 + C2t - 2.0 * I3q * I2) * AlsMzPi2
2383 + (C03 - 2.0 * I3q * I3) * AlsMzPi3
2384 + (C04 - 2.0 * I3q * I4) * AlsMzPi4
2385 + (mcMz2 + mbMz2) / s * C23 * AlsMzPi3
2386 + mqMz2 / s * (C20A + C21A * AlsMzPi + C22A * AlsMzPi2
2387 + 6.0 * (3.0 + log_t) * AlsMzPi2 + C23A * AlsMzPi3)
2389 - 10.0 * mqMz2 / MtPole / MtPole
2390 * (8.0 / 81.0 + log_t / 54.0) * AlsMzPi2
2391 + mcMz2 * mcMz2 / s / s * (C42 - log_c) * AlsMzPi2
2392 + mbMz2 * mbMz2 / s / s * (C42 - log_b) * AlsMzPi2
2393 + mqMz2 * mqMz2 / s / s * (C40A + C41A * AlsMzPi
2394 + (C42A + C42AL * log_q) * AlsMzPi2)
2395 - 12.0 * mqdash4 / s / s*AlsMzPi2;
2402 double AlsMzPi =
AlsMz / M_PI;
2403 double AlsMzPi2 = AlsMzPi*AlsMzPi;
2404 double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2405 double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2409 for (
int q = 0; q < 6; q++) {
2417 return ( gV_sum.
abs2()*(-0.4132 * AlsMzPi3 - 4.9841 * AlsMzPi4));
2427 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2428 double relerr = 1.e-8;
2429 double abserr = 1.e-20;
2451 }
else if (s == 136.*136.) {
2470 }
else if (s == 161.*161.){
2489 }
else if (s == 172.*172.) {
2508 }
else if (s == 183.*183.) {
2527 }
else if (s == 189.*189.) {
2546 }
else if (s == 192.*192.) {
2565 }
else if (s == 196.*196.) {
2584 }
else if (s == 200.*200.) {
2603 }
else if (s == 202.*202.) {
2622 }
else if (s == 205.*205.) {
2641 }
else if (s == 207.*207.) {
2661 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBmu!");
2667 gsl_set_error_handler(old_handler);
2677 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2678 double relerr = 1.e-7;
2679 double abserr = 1.e-17;
2701 }
else if (s == 136.*136.) {
2720 }
else if (s == 161.*161.){
2739 }
else if (s == 172.*172.) {
2758 }
else if (s == 183.*183.) {
2777 }
else if (s == 189.*189.) {
2796 }
else if (s == 192.*192.) {
2815 }
else if (s == 196.*196.) {
2834 }
else if (s == 200.*200.) {
2853 }
else if (s == 202.*202.) {
2872 }
else if (s == 205.*205.) {
2891 }
else if (s == 207.*207.) {
2911 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaTau!");
2917 gsl_set_error_handler(old_handler);
2926 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2927 double relerr = 1.e-8;
2928 double abserr = 1.e-20;
2950 }
else if (s == 167.*167.){
2969 }
else if (s == 183.*183.) {
2988 }
else if (s == 189.*189.) {
3007 }
else if (s == 192.*192.) {
3026 }
else if (s == 196.*196.) {
3045 }
else if (s == 200.*200.) {
3064 }
else if (s == 202.*202.) {
3083 }
else if (s == 205.*205.) {
3102 }
else if (s == 207.*207.) {
3122 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaCharm!");
3128 gsl_set_error_handler(old_handler);
3137 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
3138 double relerr = 1.e-8;
3139 double abserr = 1.e-20;
3161 }
else if (s == 167.*167.){
3180 }
else if (s == 183.*183.) {
3199 }
else if (s == 189.*189.) {
3218 }
else if (s == 192.*192.) {
3237 }
else if (s == 196.*196.) {
3256 }
else if (s == 200.*200.) {
3275 }
else if (s == 202.*202.) {
3294 }
else if (s == 205.*205.) {
3313 }
else if (s == 207.*207.) {
3333 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaBottom!");
3339 gsl_set_error_handler(old_handler);
3348 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
3349 double relerr = 1.e-8;
3350 double abserr = 1.e-20;
3426 }
else if (s == 133.*133.) {
3498 }
else if (s == 136.*136.) {
3570 }
else if (s == 161.*161.){
3642 }
else if (s == 167.*167.) {
3715 }
else if (s == 172.*172.) {
3787 }
else if (s == 183.*183.) {
3859 }
else if (s == 189.*189.) {
3931 }
else if (s == 192.*192.) {
4005 }
else if (s == 196.*196.) {
4078 }
else if (s == 200.*200.) {
4150 }
else if (s == 202.*202.) {
4252 }
else if (s == 205.*205.) {
4354 }
else if (s == 207.*207.) {
4457 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaHadron!");
4463 gsl_set_error_handler(old_handler);
4474 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4475 double relerr = 1.e-7;
4476 double abserr = 1.e-17;
4479 double AFB_noBox, sigma = 0.0;
4492 AFB_noBox = numerator/sigma;
4517 }
else if (s == 167.*167.){
4518 double AFB_noBox, sigma = 0.0;
4531 AFB_noBox = numerator/sigma;
4556 }
else if (s == 183.*183.) {
4557 double AFB_noBox, sigma = 0.0;
4570 AFB_noBox = numerator/sigma;
4595 }
else if (s == 189.*189.) {
4596 double AFB_noBox, sigma = 0.0;
4609 AFB_noBox = numerator/sigma;
4634 }
else if (s == 192.*192.) {
4635 double AFB_noBox, sigma = 0.0;
4648 AFB_noBox = numerator/sigma;
4673 }
else if (s == 196.*196.) {
4674 double AFB_noBox, sigma = 0.0;
4687 AFB_noBox = numerator/sigma;
4712 }
else if (s == 200.*200.) {
4713 double AFB_noBox, sigma = 0.0;
4726 AFB_noBox = numerator/sigma;
4751 }
else if (s == 202.*202.) {
4752 double AFB_noBox, sigma = 0.0;
4765 AFB_noBox = numerator/sigma;
4790 }
else if (s == 205.*205.) {
4791 double AFB_noBox, sigma = 0.0;
4804 AFB_noBox = numerator/sigma;
4829 }
else if (s == 207.*207.) {
4830 double AFB_noBox, sigma = 0.0;
4843 AFB_noBox = numerator/sigma;
4869 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBbottom!");
4875 gsl_set_error_handler(old_handler);
4886 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4887 double relerr = 1.e-7;
4888 double abserr = 1.e-17;
4891 double AFB_noBox, sigma = 0.0;
4904 AFB_noBox = numerator/sigma;
4929 }
else if (s == 167.*167.){
4930 double AFB_noBox, sigma = 0.0;
4943 AFB_noBox = numerator/sigma;
4968 }
else if (s == 183.*183.) {
4969 double AFB_noBox, sigma = 0.0;
4982 AFB_noBox = numerator/sigma;
5007 }
else if (s == 189.*189.) {
5008 double AFB_noBox, sigma = 0.0;
5021 AFB_noBox = numerator/sigma;
5046 }
else if (s == 192.*192.) {
5047 double AFB_noBox, sigma = 0.0;
5060 AFB_noBox = numerator/sigma;
5085 }
else if (s == 196.*196.) {
5086 double AFB_noBox, sigma = 0.0;
5099 AFB_noBox = numerator/sigma;
5124 }
else if (s == 200.*200.) {
5125 double AFB_noBox, sigma = 0.0;
5138 AFB_noBox = numerator/sigma;
5163 }
else if (s == 202.*202.) {
5164 double AFB_noBox, sigma = 0.0;
5177 AFB_noBox = numerator/sigma;
5202 }
else if (s == 205.*205.) {
5203 double AFB_noBox, sigma = 0.0;
5216 AFB_noBox = numerator/sigma;
5241 }
else if (s == 207.*207.) {
5242 double AFB_noBox, sigma = 0.0;
5255 AFB_noBox = numerator/sigma;
5281 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBcharm!");
5287 gsl_set_error_handler(old_handler);
5298 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5299 double relerr = 1.e-7;
5300 double abserr = 1.e-17;
5303 double AFB_noBox, sigma = 0.0;
5316 AFB_noBox = numerator/sigma;
5341 }
else if (s == 136.*136.){
5342 double AFB_noBox, sigma = 0.0;
5355 AFB_noBox = numerator/sigma;
5380 }
else if (s == 161.*161.){
5381 double AFB_noBox, sigma = 0.0;
5394 AFB_noBox = numerator/sigma;
5419 }
else if (s == 172.*172.){
5420 double AFB_noBox, sigma = 0.0;
5433 AFB_noBox = numerator/sigma;
5458 }
else if (s == 183.*183.) {
5459 double AFB_noBox, sigma = 0.0;
5472 AFB_noBox = numerator/sigma;
5497 }
else if (s == 189.*189.) {
5498 double AFB_noBox, sigma = 0.0;
5511 AFB_noBox = numerator/sigma;
5536 }
else if (s == 192.*192.) {
5537 double AFB_noBox, sigma = 0.0;
5550 AFB_noBox = numerator/sigma;
5575 }
else if (s == 196.*196.) {
5576 double AFB_noBox, sigma = 0.0;
5589 AFB_noBox = numerator/sigma;
5614 }
else if (s == 200.*200.) {
5615 double AFB_noBox, sigma = 0.0;
5628 AFB_noBox = numerator/sigma;
5653 }
else if (s == 202.*202.) {
5654 double AFB_noBox, sigma = 0.0;
5667 AFB_noBox = numerator/sigma;
5692 }
else if (s == 205.*205.) {
5693 double AFB_noBox, sigma = 0.0;
5706 AFB_noBox = numerator/sigma;
5731 }
else if (s == 207.*207.) {
5732 double AFB_noBox, sigma = 0.0;
5745 AFB_noBox = numerator/sigma;
5771 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::AFBmu!");
5777 gsl_set_error_handler(old_handler);
5788 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5789 double relerr = 1.e-7;
5790 double abserr = 1.e-17;
5793 double AFB_noBox, sigma = 0.0;
5806 AFB_noBox = numerator/sigma;
5831 }
else if (s == 136.*136.){
5832 double AFB_noBox, sigma = 0.0;
5845 AFB_noBox = numerator/sigma;
5870 }
else if (s == 161.*161.){
5871 double AFB_noBox, sigma = 0.0;
5884 AFB_noBox = numerator/sigma;
5909 }
else if (s == 172.*172.){
5910 double AFB_noBox, sigma = 0.0;
5923 AFB_noBox = numerator/sigma;
5948 }
else if (s == 183.*183.) {
5949 double AFB_noBox, sigma = 0.0;
5962 AFB_noBox = numerator/sigma;
5987 }
else if (s == 189.*189.) {
5988 double AFB_noBox, sigma = 0.0;
6001 AFB_noBox = numerator/sigma;
6026 }
else if (s == 192.*192.) {
6027 double AFB_noBox, sigma = 0.0;
6040 AFB_noBox = numerator/sigma;
6065 }
else if (s == 196.*196.) {
6066 double AFB_noBox, sigma = 0.0;
6079 AFB_noBox = numerator/sigma;
6104 }
else if (s == 200.*200.) {
6105 double AFB_noBox, sigma = 0.0;
6118 AFB_noBox = numerator/sigma;
6143 }
else if (s == 202.*202.) {
6144 double AFB_noBox, sigma = 0.0;
6157 AFB_noBox = numerator/sigma;
6182 }
else if (s == 205.*205.) {
6183 double AFB_noBox, sigma = 0.0;
6196 AFB_noBox = numerator/sigma;
6221 }
else if (s == 207.*207.) {
6222 double AFB_noBox, sigma = 0.0;
6235 AFB_noBox = numerator/sigma;
6261 throw std::runtime_error(
"ERROR: wrong LEP2 energy in StandardModel::LEP2AFBtau!");
6267 gsl_set_error_handler(old_handler);
6312 double mq =
m_q(q_flavor,
sqrt(s));
6335 double mq =
m_q(q_flavor,
sqrt(s));
6346 double sprime = (1.0 - x)*s;
6361 double s = 130. * 130.;
6367 double s = 136. * 136.;
6373 double s = 161. * 161.;
6379 double s = 172. * 172.;
6385 double s = 183. * 183.;
6391 double s = 189. * 189.;
6397 double s = 192. * 192.;
6403 double s = 196. * 196.;
6409 double s = 200. * 200.;
6415 double s = 202. * 202.;
6421 double s = 205. * 205.;
6427 double s = 207. * 207.;
6434 double s = 130. * 130.;
6440 double s = 136. * 136.;
6446 double s = 161. * 161.;
6452 double s = 172. * 172.;
6458 double s = 183. * 183.;
6464 double s = 189. * 189.;
6470 double s = 192. * 192.;
6476 double s = 196. * 196.;
6482 double s = 200. * 200.;
6488 double s = 202. * 202.;
6494 double s = 205. * 205.;
6500 double s = 207. * 207.;
6506 double sprime = (1.0 - x)*s;
6507 double mq =
m_q(q_flavor,
sqrt(s));
6530 double s = 130. * 130.;
6536 double s = 133. * 133.;
6542 double s = 136. * 136.;
6548 double s = 161. * 161.;
6554 double s = 167. * 167.;
6560 double s = 172. * 172.;
6566 double s = 183. * 183.;
6572 double s = 189. * 189.;
6578 double s = 192. * 192.;
6584 double s = 196. * 196.;
6590 double s = 200. * 200.;
6596 double s = 202. * 202.;
6602 double s = 205. * 205.;
6608 double s = 207. * 207.;
6617 double s = 130. * 130.;
6623 double s = 133. * 133.;
6630 double s = 136. * 136.;
6636 double s = 161. * 161.;
6642 double s = 167. * 167.;
6648 double s = 172. * 172.;
6654 double s = 183. * 183.;
6660 double s = 189. * 189.;
6666 double s = 192. * 192.;
6672 double s = 196. * 196.;
6678 double s = 200. * 200.;
6684 double s = 202. * 202.;
6690 double s = 205. * 205.;
6696 double s = 207. * 207.;
6706 double s = 130. * 130.;
6712 double s = 133. * 133.;
6718 double s = 136. * 136.;
6724 double s = 161. * 161.;
6730 double s = 167. * 167.;
6736 double s = 172. * 172.;
6742 double s = 183. * 183.;
6748 double s = 189. * 189.;
6754 double s = 192. * 192.;
6760 double s = 196. * 196.;
6766 double s = 200. * 200.;
6772 double s = 202. * 202.;
6778 double s = 205. * 205.;
6784 double s = 207. * 207.;
6794 double s = 130. * 130.;
6800 double s = 133. * 133.;
6806 double s = 136. * 136.;
6812 double s = 161. * 161.;
6818 double s = 167. * 167.;
6824 double s = 172. * 172.;
6830 double s = 183. * 183.;
6836 double s = 189. * 189.;
6842 double s = 192. * 192.;
6848 double s = 196. * 196.;
6854 double s = 200. * 200.;
6860 double s = 202. * 202.;
6866 double s = 205. * 205.;
6872 double s = 207. * 207.;
6882 double s = 130. * 130.;
6888 double s = 133. * 133.;
6894 double s = 136. * 136.;
6900 double s = 161. * 161.;
6906 double s = 167. * 167.;
6912 double s = 172. * 172.;
6918 double s = 183. * 183.;
6924 double s = 189. * 189.;
6930 double s = 192. * 192.;
6936 double s = 196. * 196.;
6942 double s = 200. * 200.;
6948 double s = 202. * 202.;
6954 double s = 205. * 205.;
6960 double s = 207. * 207.;
6976 double s = 130. * 130.;
6982 double s = 136. * 136.;
6988 double s = 161. * 161.;
6994 double s = 172. * 172.;
7000 double s = 183. * 183.;
7006 double s = 189. * 189.;
7012 double s = 192. * 192.;
7018 double s = 196. * 196.;
7024 double s = 200. * 200.;
7030 double s = 202. * 202.;
7036 double s = 205. * 205.;
7042 double s = 207. * 207.;
7052 double s = 130. * 130.;
7058 double s = 136. * 136.;
7064 double s = 161. * 161.;
7070 double s = 172. * 172.;
7076 double s = 183. * 183.;
7082 double s = 189. * 189.;
7088 double s = 192. * 192.;
7094 double s = 196. * 196.;
7100 double s = 200. * 200.;
7106 double s = 202. * 202.;
7112 double s = 205. * 205.;
7118 double s = 207. * 207.;
7129 double mq =
m_q(q_flavor,
sqrt(s));
7141 double s = 130. * 130.;
7147 double s = 133. * 133.;
7153 double s = 136. * 136.;
7159 double s = 161. * 161.;
7165 double s = 167. * 167.;
7171 double s = 172. * 172.;
7177 double s = 183. * 183.;
7183 double s = 189. * 189.;
7189 double s = 192. * 192.;
7195 double s = 196. * 196.;
7201 double s = 200. * 200.;
7207 double s = 202. * 202.;
7213 double s = 205. * 205.;
7219 double s = 207. * 207.;
7228 double s = 130. * 130.;
7234 double s = 133. * 133.;
7240 double s = 136. * 136.;
7246 double s = 161. * 161.;
7252 double s = 167. * 167.;
7258 double s = 172. * 172.;
7264 double s = 183. * 183.;
7270 double s = 189. * 189.;
7276 double s = 192. * 192.;
7282 double s = 196. * 196.;
7288 double s = 200. * 200.;
7294 double s = 202. * 202.;
7300 double s = 205. * 205.;
7306 double s = 207. * 207.;
7316 double s = 130. * 130.;
7322 double s = 133. * 133.;
7328 double s = 136. * 136.;
7334 double s = 161. * 161.;
7340 double s = 167. * 167.;
7346 double s = 172. * 172.;
7352 double s = 183. * 183.;
7358 double s = 189. * 189.;
7364 double s = 192. * 192.;
7370 double s = 196. * 196.;
7376 double s = 200. * 200.;
7382 double s = 202. * 202.;
7388 double s = 205. * 205.;
7394 double s = 207. * 207.;
7404 double s = 130. * 130.;
7410 double s = 133. * 133.;
7416 double s = 136. * 136.;
7422 double s = 161. * 161.;
7428 double s = 167. * 167.;
7436 double s = 172. * 172.;
7442 double s = 183. * 183.;
7448 double s = 189. * 189.;
7454 double s = 192. * 192.;
7460 double s = 196. * 196.;
7466 double s = 200. * 200.;
7472 double s = 202. * 202.;
7478 double s = 205. * 205.;
7484 double s = 207. * 207.;
7494 double s = 130. * 130.;
7500 double s = 133. * 133.;
7506 double s = 136. * 136.;
7512 double s = 161. * 161.;
7518 double s = 167. * 167.;
7524 double s = 172. * 172.;
7530 double s = 183. * 183.;
7536 double s = 189. * 189.;
7542 double s = 192. * 192.;
7548 double s = 196. * 196.;
7554 double s = 200. * 200.;
7560 double s = 202. * 202.;
7566 double s = 205. * 205.;
7572 double s = 207. * 207.;
7590 double sprime = (1.0 - x)*s;
7596 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
7602 double s = 130. * 130.;
7608 double s = 136. * 136.;
7614 double s = 161. * 161.;
7620 double s = 172. * 172.;
7626 double s = 183. * 183.;
7632 double s = 189. * 189.;
7638 double s = 192. * 192.;
7644 double s = 196. * 196.;
7650 double s = 200. * 200.;
7656 double s = 202. * 202.;
7662 double s = 205. * 205.;
7668 double s = 207. * 207.;
7675 double s = 130. * 130.;
7681 double s = 136. * 136.;
7687 double s = 161. * 161.;
7693 double s = 172. * 172.;
7699 double s = 183. * 183.;
7705 double s = 189. * 189.;
7711 double s = 192. * 192.;
7717 double s = 196. * 196.;
7723 double s = 200. * 200.;
7729 double s = 202. * 202.;
7735 double s = 205. * 205.;
7741 double s = 207. * 207.;
7749 double sprime = (1.0 - x)*s;
7751 double mq =
m_q(q_flavor,
sqrt(s));
7758 return ( M_PI*
ale*
ale*Ncf*H*G3prime/sprime );
7764 double s = 133. * 133.;
7770 double s = 167. * 167.;
7776 double s = 172. * 172.;
7782 double s = 183. * 183.;
7788 double s = 189. * 189.;
7794 double s = 192. * 192.;
7800 double s = 196. * 196.;
7806 double s = 200. * 200.;
7812 double s = 202. * 202.;
7818 double s = 205. * 205.;
7824 double s = 207. * 207.;
7833 double s = 133. * 133.;
7839 double s = 167. * 167.;
7845 double s = 172. * 172.;
7851 double s = 183. * 183.;
7857 double s = 189. * 189.;
7863 double s = 192. * 192.;
7869 double s = 196. * 196.;
7875 double s = 200. * 200.;
7881 double s = 202. * 202.;
7887 double s = 205. * 205.;
7893 double s = 207. * 207.;