32 * (oneLoop[0] + oneLoop[1] + oneLoop[2]));
38 double tmp = 1.0 + xt * 0.1071;
64 double DR_rem = -2.0 / 3.0 * sW2 + sW2 * PiGammaGamma_t_0
66 + (4.0 - 25.0 / 4.0 * cW2 + 3.0 / 4.0 * cW2 * cW2 + 9.0 * cW2 / 4.0 / sW2)
68 + 11.0 / 2.0 - 5.0 / 8.0 * cW2 * (1.0 + cW2);
84 + (4.0 - 25.0 / 4.0 * cW2 + 3.0 / 4.0 * cW2 * cW2 + 9.0 * cW2 / 4.0 / sW2)
86 + 11.0 / 2.0 - 5.0 / 8.0 * cW2 * (1.0 + cW2);
92 const double Mw_i)
const
102 gslpp::complex dRho_rem(0.0, 0.0,
false);
106 - (1.0 / 6.0 / cW2 - 1.0 / 3.0 + 3.0 / 4.0 * cW2 * (1.0 + cW2) + 9.0 * cW2 / 4.0 / sW2)
108 - 11.0 / 2.0 + 5.0 / 8.0 * cW2 * (1.0 + cW2);
115 if (f.
is(
"TOP"))
return ( gslpp::complex(0.0, 0.0,
false));
125 const double Mw_i)
const
135 gslpp::complex dKappa_rem(0.0, 0.0,
false);
137 + deltaf * deltaf / 4.0 / cW2 *
FZ(Mz*Mz,
Mw) - uf
138 + (1.0 / 12.0 / cW2 + 4.0 / 3.0) * log_cW2;
145 if (f.
is(
"TOP"))
return ( gslpp::complex(0.0, 0.0,
false));
156 const double Mw_i)
const
170 double V2 = -2.0 * (2.0 + cW2) * Mz * Mz * C0_Mw2_Mw2_0_Mz2.real()
171 - (1.0 / 12.0 / cW2 / cW2 + 5.0 / 3.0 / cW2 + 1.0) * B0_Mw2_Mw2_Mz2_Mw2.real()
172 + (1.0 / 12.0 / cW2 / cW2 + 1.0 / cW2 + 1.0) * log_cW2
173 + 1.0 / 12.0 / cW2 / cW2 + 13.0 / 12.0 / cW2 + 59.0 / 18.0;
175 double deltafij_W, deltafij_QED;
179 + 5.0 / 8.0 * cW2 * (1.0 + cW2) - 11.0 / 2.0 - 9.0 * cW2 / 4.0 / sW2 * log_cW2
180 + (-1.0 + 1.0 / 2.0 / cW2 + 2.0 * sW2 * sW2 / cW2 * QiQj)*(V1 + 3.0 / 2.0)
181 + 2.0 * cW2 * (V2 + 3.0 / 2.0);
184 deltafij_QED = 85.0 / 18.0 - M_PI * M_PI / 3.0 + 3.0 / 4.0 * QiQj;
187 return ( 1.0 + deltafij_W + deltafij_QED);
192 if (!((fi.
is(
"NEUTRINO_1") && fj.
is(
"ELECTRON")) || (fi.
is(
"NEUTRINO_2") && fj.
is(
"MU"))
193 || (fi.
is(
"NEUTRINO_3") && fj.
is(
"TAU")) || (fi.
is(
"UP") && fj.
is(
"DOWN"))
194 || (fi.
is(
"CHARM") && fj.
is(
"STRANGE")) || (fi.
is(
"TOP") && fj.
is(
"BOTTOM"))))
195 throw std::runtime_error(
"EWSMOneLoopEW::rho_GammaW(): Wrong arguments");
214 double cW4 = cW2*cW2;
215 double RW = pow(
Mw, 2.0) /
s;
218 double rw = pow(mh /
Mw, 2.0);
221 double A0_Mw2, A0_Mz2, A0_mh2;
222 gslpp::complex B0_s_Mz2_Mw2, B0_s_0_Mw2, B0_s_mh2_Mw2;
223 gslpp::complex B0p_s_Mz2_Mw2, B0p_s_mh2_Mw2;
224 if (mu == Mz &&
s == 0.0) {
233 }
else if (mu == Mz &&
s == Mw2) {
251 gslpp::complex Sigma(0.0, 0.0,
false);
253 Sigma = Mw2 * (2.0 / 3.0 * (1.0 / cW2 - 4.0 - 4.0 * cW2 + cW4) * B0_s_Mz2_Mw2
254 + (1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 - 3.0 / 2.0
255 + 2.0 / 3.0 * cW2 + 1.0 / 12.0 * cW4) * Mw2 * B0p_s_Mz2_Mw2
256 - 17.0 * sW2 / 6.0 * B0_s_0_Mw2 + 5.0 / 12.0 * sW2
257 - 1.0 / 12.0 * (-10.0 + 2.0 * rw) * B0_s_mh2_Mw2
258 + 1.0 / 12.0 * pow(1.0 - rw, 2.0) * Mw2 * B0p_s_mh2_Mw2
259 - 1.0 / 12.0 * (24.0 - 2.0 * cW2 + cW4) * A0_Mw2 / Mw2
260 - 1.0 / 6.0 * A0_mh2 / Mw2
261 - 1.0 / 12.0 * (1.0 + 14.0 * cW2 + 9.0 * cW4) * A0_Mz2 / Mw2
262 - 1.0 / 6.0 * (1.0 / cW2 + 22.0 + cW2 + cW4 + rw));
264 Sigma = Mw2 * (((1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 - 3.0 / 2.0 + 2.0 / 3.0 * cW2
265 + 1.0 / 12.0 * cW4) * RW
266 + 2.0 / 3.0 * (1.0 / cW2 - 4.0 - 4.0 * cW2 + cW4)
267 - (3.0 / 2.0 + 8.0 / 3.0 * cW2 + 3.0 / 2.0 * cW4) / RW
268 + 2.0 / 3.0 * cW2 * (1.0 + cW2) / RW2 + 1.0 / 12.0 * cW4 / RW3) * B0_s_Mz2_Mw2
269 - sW2 / 6.0 * (-5.0 * RW + 17.0 + 17.0 / RW - 5.0 / RW2) * B0_s_0_Mw2
270 - 1.0 / 12.0 * (-pow(1.0 - rw, 2.0) * RW - 10.0 + 2.0 * rw - 1.0 / RW)
272 - 1.0 / 12.0 * ((1.0 / cW2 - 2.0 + cW2 - cW4 + rw) * RW
273 + 24.0 - 2.0 * cW2 + cW4
274 + (-10.0 + cW2 + cW4) / RW - cW4 / RW2) * A0_Mw2 / Mw2
275 - 1.0 / 12.0 * (-(1.0 / cW2 + 9.0 - 9.0 * cW2 - cW4) * RW
276 + 1.0 + 14.0 * cW2 + 9.0 * cW4
277 + cW2 / RW * (1.0 - 9.0 * cW2) - cW4 / RW2) * A0_Mz2 / Mw2
278 + 1.0 / 12.0 * ((mh2 - Mw2) /
s - 2.0) * A0_mh2 / Mw2
279 - 1.0 / 6.0 * (1.0 / cW2 + 22.0 + cW2 + cW4 + rw)
280 + 1.0 / 9.0 * ((6.0 + 3.0 * cW2 + 7.0 / 2.0 * cW4) / RW
281 - (1.0 + 3.0 / 2.0 * cW2 + 5.0 / 2.0 * cW4) / RW2
289 double ml2[6], mq2[6];
290 for (
int i = 0; i < 6; i++) {
300 gslpp::complex B1_s_ml2_mlprime2[3], B1_s_mq2_mqprime2[3];
301 gslpp::complex B1_s_mlprime2_ml2[3], B1_s_mqprime2_mq2[3];
302 gslpp::complex Bf_s_mlprime2_ml2[3], Bf_s_mqprime2_mq2[3];
303 if (mu == Mz &&
s == 0.0) {
304 for (
int gen = 0; gen < 3; gen++) {
312 }
else if (mu == Mz &&
s == Mw2) {
313 for (
int gen = 0; gen < 3; gen++) {
322 for (
int gen = 0; gen < 3; gen++) {
323 B1_s_ml2_mlprime2[gen] =
cache.
getPV().
B1(mu2,
s, ml2[2 * gen], ml2[2 * gen + 1]);
324 B1_s_mq2_mqprime2[gen] =
cache.
getPV().
B1(mu2,
s, mq2[2 * gen], mq2[2 * gen + 1]);
325 B1_s_mlprime2_ml2[gen] =
cache.
getPV().
B1(mu2,
s, ml2[2 * gen + 1], ml2[2 * gen]);
326 B1_s_mqprime2_mq2[gen] =
cache.
getPV().
B1(mu2,
s, mq2[2 * gen + 1], mq2[2 * gen]);
327 Bf_s_mlprime2_ml2[gen] =
cache.
getPV().
Bf(mu2,
s, ml2[2 * gen + 1], ml2[2 * gen]);
328 Bf_s_mqprime2_mq2[gen] =
cache.
getPV().
Bf(mu2,
s, mq2[2 * gen + 1], mq2[2 * gen]);
332 gslpp::complex Sigma(0.0, 0.0,
false);
333 double mf2, mfprime2;
334 for (
int gen = 0; gen < 3; gen++) {
336 mfprime2 = ml2[2 * gen + 1];
337 if (
s != 0.0) Sigma += -
s * Bf_s_mlprime2_ml2[gen];
338 Sigma += mfprime2 * B1_s_ml2_mlprime2[gen] + mf2 * B1_s_mlprime2_ml2[gen];
341 mfprime2 = mq2[2 * gen + 1];
342 if (
s != 0.0) Sigma += 3.0 * (-
s * Bf_s_mqprime2_mq2[gen]);
343 Sigma += 3.0 * (mfprime2 * B1_s_mq2_mqprime2[gen] + mf2 * B1_s_mqprime2_mq2[gen]);
358 double cW4 = cW2*cW2;
359 double RW = pow(
Mw, 2.0) /
s;
362 double rw = pow(mh /
Mw, 2.0);
365 double A0_Mw2, A0_Mz2, A0_mh2;
366 gslpp::complex B0_s_Mw2_Mw2, B0_s_mh2_Mz2;
367 if (mu == Mz &&
s == Mz2) {
381 gslpp::complex Sigma(0.0, 0.0,
false);
383 throw std::runtime_error(
"EWSMOneLoopEW::SigmabarZZ_bos(): Undefined for s=0.0");
385 Sigma = Mw2 * (-cW4 * (4.0 + 17.0 / 3.0 / RW - 4.0 / 3.0 / RW2 - 1.0 / 12.0 / RW3)
387 + 1.0 / 12.0 * ((1.0 / cW4 - 2.0 / cW2 * rw + rw * rw) * RW
388 + 10.0 / cW2 - 2.0 * rw + 1.0 / RW) * B0_s_mh2_Mz2
389 - cW2 * (4.0 - 4.0 / 3.0 / RW - 1.0 / 6.0 / RW2) * A0_Mw2 / Mz2
390 + 1.0 / 12.0 * ((Mz2 - mh2) /
s + 1.0)*(A0_Mz2 - A0_mh2) / cW2 / Mz2
391 - 1.0 / 12.0 * A0_mh2 / cW2 / Mz2
392 - (1.0 / 6.0 / cW2 + 4.0 * cW4 + 1.0 / 6.0 * rw
393 - (1.0 / 18.0 + 4.0 / 3.0 * cW4) / RW
394 + 1.0 / 9.0 * cW4 * (5.0 - 1.0 / 2.0 / RW) / RW2));
401 double ml2[6], mq2[6];
402 for (
int i = 0; i < 6; i++) {
412 gslpp::complex Bf_s_ml2_ml2[6], Bf_s_mq2_mq2[6];
413 gslpp::complex B0_s_ml2_ml2[6], B0_s_mq2_mq2[6];
414 if (mu == Mz &&
s == Mz2) {
415 for (
int i = 0; i < 6; i++) {
422 for (
int i = 0; i < 6; i++) {
430 gslpp::complex Sigma(0.0, 0.0,
false);
432 throw std::runtime_error(
"EWSMOneLoopEW::SigmaZZ_fer(): Undefined for s=0.0");
434 double mf2, vf2, af2;
435 for (
int i = 0; i < 6; i++) {
439 if (
s != 0.0) Sigma += -(vf2 + af2) *
s * Bf_s_ml2_ml2[i];
440 Sigma += -2.0 * af2 * mf2 * B0_s_ml2_ml2[i];
445 if (
s != 0.0) Sigma += -3.0 * (vf2 + af2) *
s * Bf_s_mq2_mq2[i];
446 Sigma += -3.0 * 2.0 * af2 * mf2 * B0_s_mq2_mq2[i];
459 double RW = pow(
Mw, 2.0) /
s;
465 gslpp::complex B0_s_Mw2_Mw2;
466 if (mu == Mz &&
s == Mz2) {
474 gslpp::complex Pi(0.0, 0.0,
false);
476 Pi = 7.0 * log(Mw2 / mu / mu) - 2.0 / 3.0;
478 Pi = -RW * ((4.0 + 17.0 / 3.0 / RW - 4.0 / 3.0 / RW2 - 1.0 / 12.0 / RW3) * B0_s_Mw2_Mw2
479 + (4.0 - 4.0 / 3.0 / RW - 1.0 / 6.0 / RW2)*(A0_Mw2 / Mw2 + 1.0)
480 - 1.0 / 18.0 / RW2 * (1.0 / RW - 13.0));
488 if (f.
is(
"NEUTRINO_1") || f.
is(
"NEUTRINO_2")
489 || f.
is(
"NEUTRINO_3"))
498 gslpp::complex Bf_s_mf2_mf2;
499 if (mu == Mz &&
s == Mz2) {
505 }
else if (mu == Mz &&
s == 0.0) {
520 double colorfactor = (f.
is(
"QUARK") ? 3. : 1.);
521 return ( -4.0 * colorfactor * Qf * Qf * Bf_s_mf2_mf2);
526 gslpp::complex Pi(0.0, 0.0,
false);
527 for (
int i = 0; i < 6; i++) {
543 double ml2[6], mq2[6];
544 for (
int i = 0; i < 6; i++) {
555 gslpp::complex Bf_s_ml2_ml2[6], Bf_s_mq2_mq2[6];
556 if (mu == Mz &&
s == Mz2) {
557 for (
int i = 0; i < 6; i++) {
558 if (i == 0 || i == 2 || i == 4)
559 Bf_s_ml2_ml2[i] = 0.0;
565 for (
int i = 0; i < 6; i++) {
566 if (i == 0 || i == 2 || i == 4)
567 Bf_s_ml2_ml2[i] = 0.0;
574 gslpp::complex Pi(0.0, 0.0,
false);
576 for (
int i = 0; i < 6; i++) {
578 Pi += -(fabs(Ql) - 4.0 * sW2 * Ql * Ql) * Bf_s_ml2_ml2[i];
581 Pi += -3.0 * (fabs(Qq) - 4.0 * sW2 * Qq * Qq) * Bf_s_mq2_mq2[i];
600 double cW4 = cW2*cW2;
601 double rw = mh2 / Mw2;
605 double A0_Mw2, A0_Mz2, A0_mh2;
606 gslpp::complex B0_Mw2_Mz2_Mw2, B0_Mw2_0_Mw2, B0_Mw2_mh2_Mw2;
607 gslpp::complex B0p_Mw2_Mz2_Mw2, B0p_Mw2_0_Mw2, B0p_Mw2_mh2_Mw2;
630 gslpp::complex Sigma(0.0, 0.0,
false);
631 Sigma = -(1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 + 2.0 * cW2) * B0_Mw2_Mz2_Mw2
632 + (1.0 / 12.0 / cW4 + 4.0 / 3.0 / cW2 - 17.0 / 3.0 - 4.0 * cW2) * Mw2 * B0p_Mw2_Mz2_Mw2
633 - 2.0 * sW2 * B0_Mw2_0_Mw2 - 4.0 * sW2 * Mw2 * B0p_Mw2_0_Mw2
634 + rw / 6.0 * (1.0 - rw / 2.0) * B0_Mw2_mh2_Mw2
635 + (1.0 - rw / 3.0 + rw * rw / 12.0) * Mw2 * B0p_Mw2_mh2_Mw2
636 + (1.0 / cW2 + 8.0 + rw) / 12.0 * A0_Mw2 / Mw2
637 - (1.0 / cW2 + 9.0 - 8.0 * cW2 - 12.0 * cW4) / 12.0 * A0_Mz2 / Mw2
638 - (rw - 1.0) / 12.0 * A0_mh2 / Mw2 + 4.0 / 9.0;
644 double ml2[6], mq2[6];
645 for (
int i = 0; i < 6; i++) {
654 gslpp::complex Bf_Mw2_mlprime2_ml2[3], Bf_Mw2_mqprime2_mq2[3];
655 gslpp::complex Bfp_Mw2_mlprime2_ml2[3], Bfp_Mw2_mqprime2_mq2[3];
656 gslpp::complex B1p_Mw2_mlprime2_ml2[3], B1p_Mw2_mqprime2_mq2[3];
657 gslpp::complex B1p_Mw2_ml2_mlprime2[3], B1p_Mw2_mq2_mqprime2[3];
659 for (
int gen = 0; gen < 3; gen++) {
670 for (
int gen = 0; gen < 3; gen++) {
671 Bf_Mw2_mlprime2_ml2[gen] =
cache.
getPV().
Bf(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
672 Bf_Mw2_mqprime2_mq2[gen] =
cache.
getPV().
Bf(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
673 Bfp_Mw2_mlprime2_ml2[gen] =
cache.
getPV().
Bfp(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
674 Bfp_Mw2_mqprime2_mq2[gen] =
cache.
getPV().
Bfp(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
675 B1p_Mw2_ml2_mlprime2[gen] =
cache.
getPV().
B1p(mu2, Mw2, ml2[2 * gen], ml2[2 * gen + 1]);
676 B1p_Mw2_mq2_mqprime2[gen] =
cache.
getPV().
B1p(mu2, Mw2, mq2[2 * gen], mq2[2 * gen + 1]);
677 B1p_Mw2_mlprime2_ml2[gen] =
cache.
getPV().
B1p(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
678 B1p_Mw2_mqprime2_mq2[gen] =
cache.
getPV().
B1p(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
682 gslpp::complex Sigma(0.0, 0.0,
false);
683 double mf2, mfprime2;
684 for (
int gen = 0; gen < 3; gen++) {
686 mfprime2 = ml2[2 * gen + 1];
687 Sigma += -(Bf_Mw2_mlprime2_ml2[gen] + Mw2 * Bfp_Mw2_mlprime2_ml2[gen]);
688 Sigma += mfprime2 * B1p_Mw2_ml2_mlprime2[gen] + mf2 * B1p_Mw2_mlprime2_ml2[gen];
691 mfprime2 = mq2[2 * gen + 1];
692 Sigma += -3.0 * (Bf_Mw2_mqprime2_mq2[gen] + Mw2 * Bfp_Mw2_mqprime2_mq2[gen]);
693 Sigma += 3.0 * (mfprime2 * B1p_Mw2_mq2_mqprime2[gen] + mf2 * B1p_Mw2_mqprime2_mq2[gen]);
708 double cW4 = cW2*cW2;
709 double rw = mh2 / Mw2;
710 double rz = mh2 / Mz2;
713 double A0_Mw2, A0_Mz2, A0_mh2;
714 gslpp::complex B0_Mz2_Mw2_Mw2, B0_Mz2_mh2_Mz2;
715 gslpp::complex B0p_Mz2_Mw2_Mw2, B0p_Mz2_mh2_Mz2;
734 gslpp::complex Sigma(0.0, 0.0,
false);
735 Sigma = (1.0 / 4.0 / cW2 + 8.0 / 3.0 - 17.0 / 3.0 * cW2) * B0_Mz2_Mw2_Mw2
736 + (1.0 / 12.0 / cW2 + 4.0 / 3.0 - 17.0 / 3.0 * cW2 - 4.0 * cW4) * Mz2 * B0p_Mz2_Mw2_Mw2
737 + rw / 6.0 * (1.0 - rz / 2.0) * B0_Mz2_mh2_Mz2
738 + (1.0 - rz / 3.0 + rz * rz / 12.0) * Mz2 / cW2 * B0p_Mz2_mh2_Mz2
739 + (1.0 + 4.0 * cW2) / 3.0 / cW2 * A0_Mw2 / Mz2
740 - (1.0 - rz) / 12.0 / cW2 * (A0_Mz2 - A0_mh2) / Mz2
741 + 2.0 / 9.0 / cW2 - 10.0 / 9.0 + 4.0 / 3.0 * cW2;
748 double ml2[6], mq2[6];
749 for (
int i = 0; i < 6; i++) {
759 gslpp::complex Bf_Mz2_ml2_ml2[6], Bf_Mz2_mq2_mq2[6];
760 gslpp::complex Bfp_Mz2_ml2_ml2[6], Bfp_Mz2_mq2_mq2[6];
761 gslpp::complex B0p_Mz2_ml2_ml2[6], B0p_Mz2_mq2_mq2[6];
763 for (
int i = 0; i < 6; i++) {
772 for (
int i = 0; i < 6; i++) {
773 Bf_Mz2_ml2_ml2[i] =
cache.
getPV().
Bf(mu2, Mz2, ml2[i], ml2[i]);
774 Bf_Mz2_mq2_mq2[i] =
cache.
getPV().
Bf(mu2, Mz2, mq2[i], mq2[i]);
775 Bfp_Mz2_ml2_ml2[i] =
cache.
getPV().
Bfp(mu2, Mz2, ml2[i], ml2[i]);
776 Bfp_Mz2_mq2_mq2[i] =
cache.
getPV().
Bfp(mu2, Mz2, mq2[i], mq2[i]);
777 B0p_Mz2_ml2_ml2[i] =
cache.
getPV().
B0p(mu2, Mz2, ml2[i], ml2[i]);
778 B0p_Mz2_mq2_mq2[i] =
cache.
getPV().
B0p(mu2, Mz2, mq2[i], mq2[i]);
782 gslpp::complex Sigma(0.0, 0.0,
false);
783 double mf2, vf2, af2;
784 for (
int i = 0; i < 6; i++) {
788 Sigma += -(vf2 + af2)*(Bf_Mz2_ml2_ml2[i] + Mz2 * Bfp_Mz2_ml2_ml2[i])
789 - 2.0 * af2 * mf2 * B0p_Mz2_ml2_ml2[i];
794 Sigma += -3.0 * (vf2 + af2)*(Bf_Mz2_mq2_mq2[i] + Mz2 * Bfp_Mz2_mq2_mq2[i])
795 - 6.0 * af2 * mf2 * B0p_Mz2_mq2_mq2[i];
830 double cW4 = cW2*cW2;
831 double rw = pow(mh /
Mw, 2.0);
832 double rz = pow(mh / Mz, 2.0);
844 DRhobar = -(1.0 / 12.0 / cW2 + 4.0 / 3.0 - 17.0 / 3.0 * cW2 - 4.0 * cW4)
845 *(B0_Mw2_Mz2_Mw2_Mw2.real() - 1.0 / cW2 * B0_Mw2_Mw2_Mz2_Mw2.real())
846 + (1.0 - 1.0 / 3.0 * rw + 1.0 / 12.0 * rw * rw) * B0_Mw2_Mw2_mh2_Mw2.real()
847 - (1.0 - 1.0 / 3.0 * rz + 1.0 / 12.0 * rz * rz) / cW2 * B0_Mw2_Mz2_mh2_Mz2.real()
848 + 1.0 / 12.0 * sW2 * rw * rw * (log(rw) - 1.0)
849 - (1.0 / 12.0 / cW4 + 1.0 / 2.0 / cW2 - 2.0 + 1.0 / 12.0 * rw) * log_cW2
850 - 1.0 / 12.0 / cW4 - 19.0 / 36.0 / cW2 - 133.0 / 18.0 + 8.0 * cW2;
859 double cW4 = cW2*cW2;
861 double rw = pow(mh /
Mw, 2.0);
871 DRhobarW = -(1.0 / 12.0 / cW4 + 4.0 / 3.0 / cW2 - 17.0 / 3.0 - 4.0 * cW2) * B0_Mw2_Mz2_Mw2.real()
872 - (1.0 - 1.0 / 3.0 * rw + 1.0 / 12.0 * rw * rw) * B0_Mw2_mh2_Mw2.real()
873 + (3.0 / 4.0 / (1.0 - rw) + 1.0 / 4.0 - 1.0 / 12.0 * rw) * rw * log(rw)
874 + (1.0 / 12.0 / cW4 + 17.0 / 12.0 / cW2 - 3.0 / sW2 + 1.0 / 4.0) * log_cW2
875 + 1.0 / 12.0 / cW4 + 11.0 / 8.0 / cW2 + 139.0 / 36.0 - 177.0 / 24.0 * cW2
876 + 5.0 / 8.0 * cW4 - 1.0 / 12.0 * rw * (7.0 / 2.0 - rw);
887 double Rz = Mz * Mz /
s;
891 gslpp::complex C0_s_0_Mz2_0;
895 }
else if (
s ==
Mw *
Mw) {
903 gslpp::complex FZa(0.0, 0.0,
false);
904 FZa = 2.0 * pow((Rz + 1.0), 2.0) *
s * C0_s_0_Mz2_0
905 - (2.0 * Rz + 3.0)*(log_Rz + M_PI * gslpp::complex::i()) - 2.0 * Rz - 7.0 / 2.0;
913 double Rw =
Mw *
Mw /
s;
917 gslpp::complex C0_s_0_Mw2_0;
926 gslpp::complex FWa(0.0, 0.0,
false);
927 FWa = 2.0 * pow((Rw + 1.0), 2.0) *
s * C0_s_0_Mw2_0
928 - (2.0 * Rw + 3.0)*(log_Rw + M_PI * gslpp::complex::i()) - 2.0 * Rw - 7.0 / 2.0;
934 return ( gslpp::complex(0.0, 0.0,
false));
942 double Rw =
Mw *
Mw /
s;
945 gslpp::complex B0_Mw_s_Mw2_Mw2;
946 gslpp::complex C0_s_Mw2_0_Mw2;
955 gslpp::complex FWn(0.0, 0.0,
false);
956 FWn = -2.0 * (Rw + 2.0) *
Mw *
Mw * C0_s_Mw2_0_Mw2
957 - (2.0 * Rw + 7.0 / 3.0 - 3.0 / 2.0 / Rw - 1.0 / 12.0 / Rw / Rw) * B0_Mw_s_Mw2_Mw2
958 + 2.0 * Rw + 9.0 / 2.0 - 11.0 / 18.0 / Rw + 1.0 / 18.0 / Rw / Rw;
967 double Rw =
Mw *
Mw /
s;
970 double wt = Mt2 / Mw2;
975 gslpp::complex B0_Mw2_s_Mt2_Mt2;
976 gslpp::complex C0_s_Mt2_Mw2_Mt2, C0_s_0_Mw2_0;
989 gslpp::complex FWa(0.0, 0.0,
false);
990 FWa = 2.0 * (Rw + 1.0)*(Rw + 1.0) *
s * (C0_s_Mt2_Mw2_Mt2 - C0_s_0_Mw2_0)
991 + (2.0 * Rw + 3.0)*(-B0_Mw2_s_Mt2_Mt2 + log_Rw + M_PI * gslpp::complex::i() + 2.0)
992 - wt * ((3.0 * Rw + 2.0 - wt - wt * wt * Rw) *
Mw *
Mw * C0_s_Mt2_Mw2_Mt2
993 + (Rw + 1.0 / 2.0 + wt * Rw)*(1.0 - B0_Mw2_s_Mt2_Mt2)
994 - (2.0 * Rw + 1.0 / 2.0 - 2.0 / (wt - 1.0)
995 + 3.0 / 2.0 / (wt - 1.0) / (wt - 1.0) + wt * Rw) * log_wt
996 + 3.0 / 2.0 / (wt - 1.0) + 3.0 / 4.0);
1005 double Rw =
Mw *
Mw /
s;
1008 double wt = Mt2 / Mw2;
1012 gslpp::complex B0_Mw2_s_Mt2_Mt2;
1013 gslpp::complex C0_s_Mt2_Mw2_Mt2;
1022 gslpp::complex FbarWa(0.0, 0.0,
false);
1023 FbarWa = -wt * ((Rw + 2.0 - wt * (2.0 - wt) * Rw) *
Mw *
Mw * C0_s_Mt2_Mw2_Mt2
1024 - (1.0 / 2.0 - Rw + wt * Rw)*(-B0_Mw2_s_Mt2_Mt2 + 1.0)
1025 + wt * Rw * log_wt);
1034 double Rw =
Mw *
Mw /
s;
1037 double wt = Mt2 / Mw2;
1041 gslpp::complex B0_Mw2_s_Mw2_Mw2;
1042 gslpp::complex C0_s_Mw2_Mt2_Mw2, C0_s_Mw2_0_Mw2;
1053 gslpp::complex FWn(0.0, 0.0,
false);
1054 FWn = -2.0 * (Rw + 2.0) *
Mw *
Mw * (C0_s_Mw2_Mt2_Mw2 - C0_s_Mw2_0_Mw2)
1055 + wt * ((3.0 * Rw + 5.0 / 2.0 - 2.0 / Rw - wt * (2.0 - 1.0 / 2.0 / Rw)
1056 + wt * wt * (1.0 / 2.0 - Rw)) *
Mw *
Mw * C0_s_Mw2_Mt2_Mw2
1057 + (Rw + 1.0 - 1.0 / 4.0 / Rw - wt * (1.0 / 2.0 - Rw))*(B0_Mw2_s_Mw2_Mw2 - 1.0)
1058 + (2.0 * Rw + 1.0 / 2.0 - 2.0 / (wt - 1.0)
1059 + 3.0 / 2.0 / (wt - 1.0) / (wt - 1.0) - wt * (1.0 / 2.0 - Rw)) * log_wt
1060 - 3.0 / 2.0 / (wt - 1.0) + 1.0 / 4.0
1067 return (
FZa_0(
s, Mw_i));
1075 if (f.
is(
"LEPTON")) {
1077 if (f.
is(
"NEUTRINO_1"))
1079 else if (f.
is(
"NEUTRINO_2"))
1081 else if (f.
is(
"NEUTRINO_3"))
1083 else if (f.
is(
"ELECTRON"))
1085 else if (f.
is(
"MU"))
1087 else if (f.
is(
"TAU"))
1090 throw std::runtime_error(
"EWSMOneLoopEW::FW(): " + f.
getName() +
" is not allowed");
1093 }
else if (f.
is(
"QUARK")) {
1097 else if (f.
is(
"DOWN"))
1099 else if (f.
is(
"CHARM"))
1101 else if (f.
is(
"STRANGE"))
1103 else if (f.
is(
"BOTTOM"))
1106 throw std::runtime_error(
"EWSMOneLoopEW::FW(): TOP is not allowed");
1107 gslpp::complex
FW(0.0, 0.0,
false);
1115 throw std::runtime_error(
"EWSMOneLoopEW::FW_q(): Wrong argument");
1125 double Rw = Mw2 /
s;
1127 double wf = mf2 / Mw2;
1130 double log_wf = log(wf);
1133 gslpp::complex B0_Mw2_s_Mw2_Mw2 =
cache.
getPV().
B0(Mw2,
s, Mw2, Mw2);
1134 gslpp::complex B0_Mw2_0_mf2_Mw2 =
cache.
getPV().
B0(Mw2, 0.0, mf2, Mw2);
1135 gslpp::complex C0_s_Mw2_mf2_Mw2 =
cache.
getPV().
C0(
s, Mw2, mf2, Mw2);
1138 gslpp::complex FWn(0.0, 0.0,
false);
1140 FWn = ((2.0 + wf)*(1.0 - wf)*(1.0 - wf) * Rw + 4.0 - 5.0 / 2.0 * wf + 2.0 * wf * wf
1141 - wf * wf * wf / 2.0 + wf * (2.0 - wf / 2.0) / Rw) *
Mw *
Mw * C0_s_Mw2_mf2_Mw2
1142 - (-(2.0 + wf)*(1.0 - wf) * Rw - 3.0 + 3.0 / 2.0 * wf - wf * wf / 2.0)
1143 *(B0_Mw2_s_Mw2_Mw2 - B0_Mw2_0_mf2_Mw2)
1144 - (2.0 / 3.0 - wf / 2.0 + (3.0 / 2.0 - wf / 4.0) / Rw + 1.0 / 12.0 / Rw / Rw) * B0_Mw2_s_Mw2_Mw2
1145 - A0_mf2 /
Mw /
Mw - (2.0 / 3.0 + 1.0 / 6.0 / Rw) * A0_Mw2 /
Mw /
Mw
1146 - 2.0 / 3.0 - wf / 2.0 + (4.0 / 9.0 + wf / 4.0) / Rw - 1.0 / 18.0 / Rw / Rw;
1153 wW = 5.0 / 4.0 * wf + 3.0 * (1.0 - wf / 2.0) * wf * wf / (wf - 1.0) / (wf - 1.0) * log_wf
1154 - 3.0 / 2.0 / (wf - 1.0);
1157 return ( -FWn + wW);
double rho_GammaW_tmp(const double Qi, const double Qj, const double Mw_i) const
EW radiative corrections to the widths of , 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 TEST_FWn(const double s, const double mf, const double Mw_i) const
A test function for with a finite fermion mass.
gslpp::complex SigmabarWW_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex PibarGammaGamma_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the photon in the Unitary gauge, .
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
.
gslpp::complex SigmabarZZ_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the boson in the Unitary gauge, .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
const EWSMcache & cache
A reference to an object of type EWSMcache.
gslpp::complex FZa_0(const double s, const double Mw_i) const
The form factor .
gslpp::complex FZ(const double s, const double Mw_i) const
The unified form factor .
gslpp::complex FWn_t(const double s, const double Mw_i) const
The form factor .
double TEST_DeltaRhobar_bos(const double Mw_i) const
A test function.
gslpp::complex SigmabarWW_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex FbarWa_0(const double s) const
The form factor .
gslpp::complex FWn_0(const double s, const double Mw_i) const
The form factor .
gslpp::complex deltaRho_rem_tmp(const gslpp::complex u_f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaRhobarW(const double mu, const double Mw_i) const
.
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double TEST_DeltaRhobarW_bos(const double Mw_i) const
A test function.
gslpp::complex FWa_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex deltaKappa_rem_tmp(const double deltaf, const gslpp::complex uf, const double Mw_i) const
Remainder contribution of to the effective couplings , 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 SigmabarPrime_ZZ_bos_Mz2(const double mu, const double Mw_i) const
The derivative of the bosonic contribution to the self-energy of the boson for in the Unitary gauge...
gslpp::complex PibarZgamma_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the - mixing in the Unitary gauge,...
gslpp::complex FbarWa_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex PibarGammaGamma_fer(const double mu, const double s, const Particle f) const
The fermionic contribution to the self-energy of the photon in the Unitary gauge, associated with loo...
gslpp::complex FWa_0(const double s, const double Mw_i) const
The form factor .
EWSMOneLoopEW(const EWSMcache &cache_i)
Constructor.
double DeltaRhobar(const double mu, const double Mw_i) const
.
gslpp::complex SigmabarZZ_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex SigmabarPrime_WW_bos_Mw2(const double mu, const double Mw_i) const
The derivative of the bosonic contribution to the self-energy of the boson for in the Unitary gauge...
gslpp::complex FW(const double s, const Particle f, const double Mw_i) const
The unified form factor for .
gslpp::complex PibarZgamma_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the - mixing in the Unitary gauge,...
gslpp::complex SigmabarPrime_WW_fer_Mw2(const double mu, const double Mw_i) const
The derivative of the fermionic contribution to the self-energy of the boson for in the Unitary gau...
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
gslpp::complex SigmabarPrime_ZZ_fer_Mz2(const double mu, const double Mw_i) const
The derivative of the fermionic contribution to the self-energy of the boson for in the Unitary gau...
A class for cache variables used in computing radiative corrections to the EW precision observables.
gslpp::complex B1_Mz2_Mw2_mf2_mfprime2(const int gen, const double Mw_i) const
A cache method.
double a_f(const Particle f) const
The tree-level axial-vector coupling for , denoted as .
gslpp::complex C0_Mw2_0_Mz2_0(const double Mw_i) const
A cache method.
double sigma_f(const Particle f, const double Mw_i) const
.
gslpp::complex B0_Mw2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B1p_Mw2_Mw2_mf2_mfprime2(const int gen, const double Mw_i) const
A cache method.
gslpp::complex B0p_Mz2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex Bf_Mz2_0_mf2_mf2(const Particle f) const
A cache method.
double A0_Mz2_mh2() const
A cache method.
gslpp::complex Bf_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
gslpp::complex B1_Mz2_0_mf2_mfprime2(const int gen) const
A cache method.
gslpp::complex B0p_Mz2_0_mh2_Mw2(const double Mw_i) const
A cache method.
double log_cW2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mw2_Mz2_Mt2_Mt2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_0_0_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B1p_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
gslpp::complex C0_Mz2_0_Mz2_0() const
A cache method.
gslpp::complex B0_Mw2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex Bfp_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
double A0_Mz2_Mw2(const double Mw_i) const
A cache method.
double v_f(const Particle f, const double Mw_i) const
The tree-level vector coupling for , denoted as .
gslpp::complex B0p_Mz2_0_Mz2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0p_Mz2_Mz2_mh2_Mz2() const
A cache method.
double A0_Mz2_Mz2() const
A cache method.
gslpp::complex B0_Mz2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex C0_Mz2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B1_Mz2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
double delta_f(const Particle f, const double Mw_i) const
.
gslpp::complex C0_Mz2_0_Mw2_0(const double Mw_i) const
A cache method.
gslpp::complex B0p_Mw2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex Bfp_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
gslpp::complex B0p_Mw2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0p_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
double logMZtoMTOP() const
A cache method.
gslpp::complex C0_Mz2_Mt2_Mw2_Mt2(const double Mw_i) const
A cache method.
const PVfunctions getPV() const
A get method to access the member reference to the object of type StandardModel passed to the constru...
gslpp::complex Bf_Mz2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_0_mh2_Mw2(const double Mw_i) const
A cache method.
double Q_f(const Particle f) const
The charge of an SM fermion .
double A0_Mw2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex C0_Mz2_Mw2_Mt2_Mw2(const double Mw_i) const
A cache method.
double mf2(const Particle f, const double mu=0.0, const orders order=FULLNNLO) const
The mass squared of an SM fermion.
gslpp::complex B0_Mz2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mw2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_Mz2_mh2_Mz2() const
A cache method.
gslpp::complex C0_Mw2_Mw2_0_Mz2(const double Mw_i) const
A cache method.
double A0_Mw2_mh2(const double Mw_i) const
A cache method.
gslpp::complex Bf_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
gslpp::complex Bf_Mz2_0_mfprime2_mf2(const int gen) const
A cache method.
gslpp::complex B1_Mz2_0_mfprime2_mf2(const int gen) const
A cache method.
gslpp::complex B0_Mw2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0_Mz2_0_Mz2_Mw2(const double Mw_i) const
A cache method.
gslpp::complex B0p_Mw2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
double A0_Mw2_Mz2(const double Mw_i) const
A cache method.
const StandardModel & getSM() const
An observable class for the -boson mass.
gslpp::complex B1(const double mu2, const double p2, const double m02, const double m12) const
.
gslpp::complex B0(const double mu2, const double p2, const double m02, const double m12) const
.
gslpp::complex B0p(const double muIR2, const double p2, const double m02, const double m12) const
.
gslpp::complex Bfp(const double mu2, const double p2, const double m02, const double m12) const
.
gslpp::complex Bf(const double mu2, const double p2, const double m02, const double m12) const
.
double A0(const double mu2, const double m2) const
.
gslpp::complex C0(const double p2, const double m02, const double m12, const double m22) const
.
gslpp::complex B1p(const double mu2, const double p2, const double m02, const double m12) const
.
bool is(std::string name_i) const
std::string getName() const
quark
An enum type for quarks.
const double getMtpole() const
A get method to access the pole mass of the top quark.
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 Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double getMz() const
A get method to access the mass of the boson .
virtual const double getMHl() const
A get method to retrieve the Higgs mass .
virtual const double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
virtual const double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .
const double getAle() const
A get method to retrieve the fine-structure constant .