12 #define UpperBoundForApproximateFormulae 1000.0
26 double Mw0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11;
56 std::stringstream out;
58 throw std::runtime_error(
"ApproximateFormulae::Mw(): mh=" + out.str() +
" is out of range");
68 return (Mw0 - c1 * dH - c2 * dH * dH + c3 *
pow(dH, 4.0)
69 + c4 * (dh - 1.0) - c5 * dalphae + c6 * dt - c7 * dt * dt
70 - c8 * dH * dt + c9 * dh * dt - c10 * dalphas + c11 * dZ
78 std::stringstream out;
80 throw std::runtime_error(
"ApproximateFormulae::sin2thetaEff_l(): mh=" + out.str() +
" is out of range");
83 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
92 d4 = -1.85 * 0.000001;
96 d8 = -9.71 * 0.000001;
106 d3 = 3.85 * 0.000001;
107 d4 = -1.85 * 0.000001;
111 d8 = -9.74 * 0.000001;
116 throw std::runtime_error(
"Error in ApproximateFormulae::sin2thetaEff_l()");
126 return (s0 + d1 * L_H + d2 * L_H * L_H + d3 *
pow(L_H, 4.0)
127 + d4 * (Delta_H * Delta_H - 1.0) + d5 * Delta_ale + d6 * Delta_t
128 + d7 * Delta_t * Delta_t + d8 * Delta_t * (Delta_H - 1.0)
129 + d9 * Delta_alphas + d10 * Delta_Z
137 std::stringstream out;
139 throw std::runtime_error(
"ApproximateFormulae::sin2thetaEff_q(): mh=" + out.str() +
" is out of range");
142 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
143 double ThError = 0.0;
151 d3 = 3.85 * 0.000001;
152 d4 = -1.85 * 0.000001;
156 d8 = -9.73 * 0.000001;
166 d3 = 3.85 * 0.000001;
167 d4 = -1.85 * 0.000001;
171 d8 = -9.73 * 0.000001;
182 d3 = 3.94 * 0.000001;
183 d4 = -1.84 * 0.000001;
187 d8 = -7.61 * 0.000001;
199 throw std::runtime_error(
"Error in ApproximateFormulae::sin2thetaEff_q()");
209 return (s0 + d1 * L_H + d2 * L_H * L_H + d3 *
pow(L_H, 4.0)
210 + d4 * (Delta_H * Delta_H - 1.0) + d5 * Delta_ale + d6 * Delta_t
211 + d7 * Delta_t * Delta_t + d8 * Delta_t * (Delta_H - 1.0)
212 + d9 * Delta_alphas + d10 * Delta_Z
220 std::stringstream out;
222 throw std::runtime_error(
"ApproximateFormulae::sin2thetaEff_b(): mh=" + out.str() +
" is out of range");
225 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9;
231 d4 = -9.733 * 0.0001;
244 return (s0 + d1 * L_H + d2 * L_H * L_H
246 + d4 * Delta_t + d5 * Delta_t * Delta_t + d6 * Delta_t * L_H
247 + d7 * Delta_alphas + d8 * Delta_t * Delta_alphas
256 std::stringstream out;
258 throw std::runtime_error(
"ApproximateFormulae::DeltaR_TwoLoopEW_rem(): mh=" + out.str() +
" is out of range");
261 double r0 = 0.003354;
262 double r1 = -0.000209;
263 double r2 = 0.0000254;
264 double r3 = -0.00000785;
265 double r4 = -0.00000233;
268 double r7 = -0.00000989;
280 double Delta_W =
Mw / 80.404 - 1.0;
282 return ( r0 + r1 * L_H + r2 * L_H * L_H + r3 *
pow(L_H, 4.0)
283 + r4 * (Delta_H * Delta_H - 1.0) + r5 * Delta_t
284 + r6 * Delta_t * Delta_t + r7 * Delta_t * L_H + r8 * Delta_W
285 + r9 * Delta_W * Delta_t + r10 * Delta_Z);
292 std::stringstream out;
294 throw std::runtime_error(
"ApproximateFormulae::DeltaKappa_l_TwoLoopEW_rem(): mh=" + out.str() +
" is out of range");
297 double k0 = -0.002711;
298 double k1 = -0.0000312;
299 double k2 = -0.0000412;
300 double k3 = 0.00000528;
301 double k4 = 0.00000375;
302 double k5 = -0.00516;
303 double k6 = -0.00206;
304 double k7 = -0.000232;
313 double Delta_W = Mw_i / 80.404 - 1.0;
315 return ( k0 + k1 * L_H + k2 * L_H * L_H + k3 *
pow(L_H, 4.0)
316 + k4 * (Delta_H * Delta_H - 1.0) + k5 * Delta_t
317 + k6 * Delta_t * Delta_t + k7 * Delta_t * L_H
318 + k8 * Delta_W + k9 * Delta_W * Delta_t + k10 * Delta_Z);
325 std::stringstream out;
327 throw std::runtime_error(
"ApproximateFormulae::DeltaKappa_b_TwoLoopEW_rem(): mh=" + out.str() +
" is out of range");
330 double k0 = -0.002666;
331 double k1 = -0.0000592;
332 double k2 = -0.00000329;
333 double k3 = 0.00000349;
334 double k4 = 0.00000283;
335 double k5 = -0.00534;
336 double k6 = -0.00210;
337 double k7 = -0.000219;
346 double Delta_W = Mw_i / 80.404 - 1.0;
348 return ( k0 + k1 * L_H + k2 * L_H * L_H + k3 *
pow(L_H, 4.0)
349 + k4 * (Delta_H * Delta_H - 1.0) + k5 * Delta_t
350 + k6 * Delta_t * Delta_t + k7 * Delta_t * L_H
351 + k8 * Delta_W + k9 * Delta_W * Delta_t + k10 * Delta_Z);
358 std::stringstream out;
360 throw std::runtime_error(
"ApproximateFormulae::R0_bottom(): mh=" + out.str() +
" is out of range");
420 double Rb00 = 0.2154940;
421 double c1 = 1.88 *
pow(10.0, -5.);
422 double c2 = 2.0 *
pow(10.0, -6.);
423 double c3 = -6.0 *
pow(10.0, -7.);
424 double c4 = 8.53 *
pow(10.0, -8.);
425 double c5 = 7.05 *
pow(10.0, -4.);
426 double c6 = -3.159 *
pow(10.0, -3.);
427 double c7 = 6.65 *
pow(10.0, -5.);
428 double c8 = -1.704 *
pow(10.0, -3.);
429 double c9 = -9.30 *
pow(10.0, -4.);
430 double c10 = 6.26 *
pow(10.0, -2.);
452 return (Rb00 + c1 * L_H + c2 * L_H * L_H + c3 *
pow(L_H, 4.0)
453 + c4 * (Delta_H * Delta_H - 1.0) + c5 * Delta_ale + c6 * Delta_t
454 + c7 * Delta_t * L_H + c8 * Delta_alphas + c9 * Delta_alphas * Delta_alphas
463 std::stringstream out;
465 throw std::runtime_error(
"ApproximateFormulae::Gu_over_Gb(): mh=" + out.str() +
" is out of range");
486 double R = 0.7997930;
487 double c1 = -1.7991e-4;
488 double c2 = -1.980e-5;
490 double c4 = -0.9829e-6;
491 double c5 = -8.200e-3;
492 double c6 = 1.657e-4;
493 double c7 = 1.6476e-2;
494 double c8 = 4.463e-3;
495 double c9 = -3.187e-4;
496 double c10 = 1.8113e-2;
497 double c11 = 1.0720e-2;
507 return ( R + c1 * LH + c2 * LH * LH + c3 *
pow(LH, 4.0) + c4 * DH + c5 * Dal + c6 * LH * Dal
508 + c7 * Dt + c8 * Dt * Dt + c9 * LH * Dt + c10 * Das + c11 * Das * Das + c12 * Dmz);
515 std::stringstream out;
517 throw std::runtime_error(
"ApproximateFormulae::Gd_over_Gb(): mh=" + out.str() +
" is out of range");
538 double R = 1.0204024;
539 double c1 = -2.242e-5;
540 double c2 = -1.70e-6;
544 double c6 = 0.999e-4;
545 double c7 = 1.7539e-2;
546 double c8 = 7.138e-3;
547 double c9 = -4.041e-4;
548 double c10 = 2.290e-4;
549 double c11 = -8.0e-6;
559 return ( R + c1 * LH + c2 * LH * LH + c3 *
pow(LH, 4.0) + c4 * DH + c5 * Dal + c6 * LH * Dal
560 + c7 * Dt + c8 * Dt * Dt + c9 * LH * Dt + c10 * Das + c11 * Das * Das + c12 * Dmz);
571 double X0, c1, c2, c3, c4, c5, c6, c7;
572 if (observable.compare(
"Gamma_nu") == 0) {
581 }
else if (observable.compare(
"Gamma_e_mu") == 0) {
590 }
else if (observable.compare(
"Gamma_tau") == 0) {
599 }
else if (observable.compare(
"Gamma_u") == 0) {
608 }
else if (observable.compare(
"Gamma_c") == 0) {
617 }
else if (observable.compare(
"Gamma_d_s") == 0) {
626 }
else if (observable.compare(
"Gamma_b") == 0) {
635 }
else if (observable.compare(
"GammaZ") == 0) {
644 }
else if (observable.compare(
"sigmaHadron") == 0) {
653 }
else if (observable.compare(
"R0_lepton") == 0) {
662 }
else if (observable.compare(
"R0_charm") == 0) {
671 }
else if (observable.compare(
"R0_bottom") == 0) {
681 throw std::runtime_error(
"ApproximateFormulae::X(): " + observable +
" is not defined");
684 * (X0 + c1 * LH + c2 * Dt + c3 * Das + c4 * Das * Das + c5 * Das * Dt + c6 * Dal + c7 * DZ));
696 double X0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15;
697 double ThError = 0.0;
698 if (observable.compare(
"Gamma_nu") == 0) {
715 }
else if (observable.compare(
"Gamma_e_mu") == 0) {
732 }
else if (observable.compare(
"Gamma_tau") == 0) {
749 }
else if (observable.compare(
"Gamma_u") == 0) {
766 }
else if (observable.compare(
"Gamma_c") == 0) {
783 }
else if (observable.compare(
"Gamma_d_s") == 0) {
800 }
else if (observable.compare(
"Gamma_b") == 0) {
817 }
else if (observable.compare(
"Gamma_had") == 0) {
854 }
else if (observable.compare(
"GammaZ") == 0) {
872 }
else if (observable.compare(
"sigmaHadron") == 0) {
890 }
else if (observable.compare(
"R0_lepton") == 0) {
908 }
else if (observable.compare(
"R0_electron") == 0) {
912 }
else if (observable.compare(
"R0_muon") == 0) {
916 }
else if (observable.compare(
"R0_tau") == 0) {
920 }
else if (observable.compare(
"R0_up") == 0) {
924 }
else if (observable.compare(
"R0_strange") == 0) {
928 }
else if (observable.compare(
"R0_charm") == 0) {
946 }
else if (observable.compare(
"R0_bottom") == 0) {
965 throw std::runtime_error(
"ApproximateFormulae::X_extended(): " + observable +
" is not defined");
968 * (X0 + a1 * LH + a2 * LH * LH + a3 * DH + a4 * DH * DH + a5 * Dt + a6 * Dt * Dt
969 + a7 * Dt * LH + a8 * Dt * LH * LH + a9 * Das + a10 * Das * Das + a11 * Das * LH
970 + a12 * Das * Dt + a13 * Dal + a14 * Dal * LH + a15 * DZ) + ThError);
991 double X0, c1, c2, c3, c4, c5, c6, c7;
992 double ThError = 0.0;
993 if (observable.compare(
"Gamma_nu") == 0) {
1003 }
else if (observable.compare(
"Gamma_e_mu") == 0) {
1013 }
else if (observable.compare(
"Gamma_tau") == 0) {
1023 }
else if (observable.compare(
"Gamma_u") == 0) {
1033 }
else if (observable.compare(
"Gamma_c") == 0) {
1043 }
else if (observable.compare(
"Gamma_d_s") == 0) {
1053 }
else if (observable.compare(
"Gamma_b") == 0) {
1063 }
else if (observable.compare(
"Gamma_had") == 0) {
1075 }
else if (observable.compare(
"GammaZ") == 0) {
1086 }
else if (observable.compare(
"sigmaHadron") == 0) {
1097 }
else if (observable.compare(
"R0_lepton") == 0) {
1108 }
else if (observable.compare(
"R0_electron") == 0) {
1112 }
else if (observable.compare(
"R0_muon") == 0) {
1116 }
else if (observable.compare(
"R0_tau") == 0) {
1120 }
else if (observable.compare(
"R0_neutrino") == 0) {
1124 }
else if (observable.compare(
"R0_up") == 0) {
1128 }
else if (observable.compare(
"R0_strange") == 0) {
1132 }
else if (observable.compare(
"R0_charm") == 0) {
1143 }
else if (observable.compare(
"R0_bottom") == 0) {
1155 throw std::runtime_error(
"ApproximateFormulae::X_full_2_loop(): " + observable +
" is not defined");
1158 * (X0 + c1 * LH + c2 * Dt
1159 + c3 * Das + c4 * Das * Das
1160 + c5 * Das * Dt + c6 * Dal + c7 * DZ) + ThError);
1171 double LH2 = LH * LH;
1183 double X0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16;
1185 double ThError = 0.0;
1187 if (observable.compare(
"Gamma_e_mu") == 0) {
1206 }
else if (observable.compare(
"Gamma_tau") == 0) {
1225 }
else if (observable.compare(
"Gamma_nu") == 0) {
1244 }
else if (observable.compare(
"Gamma_u") == 0) {
1263 }
else if (observable.compare(
"Gamma_c") == 0) {
1282 }
else if (observable.compare(
"Gamma_d_s") == 0) {
1301 }
else if (observable.compare(
"Gamma_b") == 0) {
1320 }
else if (observable.compare(
"Gamma_had") == 0) {
1341 }
else if (observable.compare(
"GammaZ") == 0) {
1361 }
else if (observable.compare(
"sigmaHadron") == 0) {
1381 }
else if (observable.compare(
"R0_lepton") == 0) {
1401 }
else if (observable.compare(
"R0_electron") == 0) {
1403 return X_full(
"Gamma_had")/
X_full(
"Gamma_e_mu") + ThError;
1405 }
else if (observable.compare(
"R0_muon") == 0) {
1407 return X_full(
"Gamma_had")/
X_full(
"Gamma_e_mu") + ThError;
1409 }
else if (observable.compare(
"R0_tau") == 0) {
1411 return X_full(
"Gamma_had")/
X_full(
"Gamma_tau") + ThError;
1413 }
else if (observable.compare(
"R0_neutrino") == 0) {
1415 return X_full(
"Gamma_nu")/
X_full(
"Gamma_had") + ThError;
1417 }
else if (observable.compare(
"R0_up") == 0) {
1419 return X_full(
"Gamma_u")/
X_full(
"Gamma_had") + ThError;
1421 }
else if (observable.compare(
"R0_strange") == 0) {
1423 return X_full(
"Gamma_d_s")/
X_full(
"Gamma_had") + ThError;
1425 }
else if (observable.compare(
"R0_charm") == 0) {
1445 }
else if (observable.compare(
"R0_bottom") == 0) {
1466 throw std::runtime_error(
"ApproximateFormulae::X_full(): " + observable +
" is not defined");
1469 * ( X0 + a1 * LH + a2 * LH2 + a3 * LH2 * LH2 + a4 *DH
1470 + a5 * Dt + a6 * Dt*Dt + a7 * Dt*LH + a8 * Dt * LH2
1471 + a9 * Das + a10 * Das * Das + a11 * Das*DH + a12*Das*Dt
1472 + a13 * Dal + a14 * Dal * DH + a15 * Dal * Dt
1473 + a16 * DZ ) + ThError);
1489 double LH2 = LH * LH;
1501 double X0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
1503 double ThError = 0.0;
1519 return ( 0.0001*( X0 + d1 * LH + d2 * LH2 + d3 * LH2 * LH2
1521 + d5 * Dt + d6 * Dt * Dt
1523 + d8 * Das + d9 * Das * Dt
1524 + d10 * DZ ) + ThError);
1540 double LH2 = LH * LH;
1552 double X0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
1554 double ThError = 0.0;
1570 return ( 0.0001*( X0 + d1 * LH + d2 * LH2 + d3 * LH2 * LH2
1572 + d5 * Dt + d6 * Dt * Dt
1574 + d8 * Das + d9 * Das * Dt
1575 + d10 * DZ ) + ThError);