13#define EW_SUBLEADING_ALPHA2
16: cache(cache_i), myOneLoopEW(cache_i)
34 log_l[0] = log(xl[0]);
35 log_l[1] = log(xl[1]);
36 log_l[2] = log(xl[2]);
40 for (
int i = 0; i < 3; i++) {
42 + 3.0 / xl[i] * log_l[i];
46 *(twoLoop[0] + twoLoop[1] + twoLoop[2]));
63#ifndef EW_SUBLEADING_ALPHA2
83 double DeltaRrem = 0.0;
85#ifdef EW_SUBLEADING_ALPHA2
98 if (f.
is(
"TOP"))
return ( gslpp::complex(0.0, 0.0,
false));
100 gslpp::complex dRho = gslpp::complex(0.0, 0.0,
false);
102#ifdef EW_SUBLEADING_ALPHA2
117 if (f.
is(
"TOP"))
return ( gslpp::complex(0.0, 0.0,
false));
119 gslpp::complex dKappa = gslpp::complex(0.0, 0.0,
false);
121#ifdef EW_SUBLEADING_ALPHA2
140 if (a <= 0.0)
throw std::runtime_error(
"a is out of range in EWSMTwoLoopEW::rho_2");
142 double f_a_0 =
f0(a);
143 double f_a_1 =
f1(a);
145 return ( 25.0 - 4.0 * a + 0.5 * (a * a - 12.0 * a - 12.0) * log_a
146 + (a - 2.0) / 2.0 / a * M_PI * M_PI + 0.5 * (a - 4.0) * sqrt(a) * g_a
147 - 3.0 / a * (a - 1.0)*(a - 1.0)*(a - 2.0) * f_a_0
148 + 3.0 * (a * a - 6.0 * a + 10.0) * f_a_1);
154 if (a <= 0.0)
throw std::runtime_error(
"a is out of range in EWSMTwoLoopEW::tau_2");
156 double f_a_0 =
f0(a);
157 double f_a_1 =
f1(a);
159 return ( 9.0 - 13.0 / 4.0 * a - 2.0 * a * a - a / 4.0 * (19.0 + 6.0 * a) * log_a
160 - a * a / 4.0 * (7.0 - 6.0 * a) * log_a * log_a
161 - (1.0 / 4.0 + 7.0 / 2.0 * a * a - 3.0 * a * a * a) * M_PI * M_PI / 6.0
162 + (a / 2.0 - 2.0) * sqrt(a) * g_a
163 + (a - 1.0)*(a - 1.0)*(4.0 * a - 7.0 / 4.0) * f_a_0
164 - (a * a * a - 33.0 / 4.0 * a * a + 18.0 * a - 7.0) * f_a_1);
169 if (a >= 0.0 && a <= 4.0) {
170 double phi = 2.0 * asin(sqrt(a / 4.0));
171 return ( sqrt(4.0 - a)*(M_PI -
phi));
172 }
else if (a > 4.0) {
174 double xi = (sqrt(1.0 - y) - 1.0) / (sqrt(1.0 - y) + 1.0);
175 return ( sqrt(a - 4.0) * log(-
xi));
177 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::g()");
185 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::f0()");
190 if (a >= 0.0 && a <= 4.0) {
192 double phi = 2.0 * asin(sqrt(a / 4.0));
194 }
else if (a > 4.0) {
196 double xi = (sqrt(1.0 - y) - 1.0) / (sqrt(1.0 - y) + 1.0);
200 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::f1()");
207 double ht = mh * mh / Mt / Mt;
211 rho2 = -15.642 + 0.036382 * Mt + pow(ht, 1.0 / 4.0)*(2.301 - 0.01343 * Mt)
212 + sqrt(ht)*(0.01809 * Mt - 9.953) + ht * (5.687 - 0.01568 * Mt)
213 + pow(ht, 3.0 / 2.0)*(0.005369 * Mt - 1.647)
214 + ht * ht * (0.1852 - 0.000646 * Mt);
218 double Mz2 = Mz*Mz, Mw2 =
Mw*
Mw, Mt2 = Mt*Mt;
220 double cW4 = cW2*cW2, cW6 = cW4*cW2;
221 double zt = Mz * Mz / Mt / Mt;
222 double ht2 = ht*ht, ht3 = ht2*ht, ht4 = ht3*ht, ht5 = ht4*ht, ht6 = ht5*ht;
225 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
226 double B0_Mt2_Mw2_Mw2_Mz2 =
cache.
getPV().
B0(Mt2, Mw2, Mw2, Mz2).real();
229 return ( 25.0 - 4.0 * ht + (1.0 / 2.0 - 1.0 / ht) * M_PI * M_PI
230 + (ht - 4.0) * sqrt(ht) *
g(ht) / 2.0
231 + (-6.0 - 6.0 * ht + ht2 / 2.0) * log(ht)
232 + (6.0 / ht - 15.0 + 12.0 * ht - 3.0 * ht2) * Li21mht
233 + 3.0 / 2.0 * (-10.0 + 6.0 * ht - ht2) *
phi(ht / 4.0)
234 + zt * (1.0 / (54.0 * cW2 * (ht - 4.0) * ht)
236 + (72.0 - 6250.0 * cW2 - 3056.0 * cW4 + 3696.0 * cW6) * ht
237 + (-18.0 + 1283.0 * cW2 + 1371.0 * cW4 - 1436.0 * cW6) * ht2
238 + (68.0 * cW2 - 124.0 * cW4 + 128.0 * cW6) * ht3)
239 + (6.0 * cW2 * ht - 37.0 * cW2 - 119.0 * ht2 + 56.0 * cW2 * ht2)
240 * M_PI * M_PI / 27.0 / ht2
241 + (32.0 * cW4 / 3.0 - 2.0 / 3.0 - 12.0 * cW2) * B0_Mt2_Mz2_Mw2_Mw2
242 + (20.0 / 3.0 + 1.0 / 3.0 / cW2 - 8.0 * cW2) * B0_Mt2_Mw2_Mw2_Mz2
243 + (17.0 - 58.0 * cW2 + 32.0 * cW4)*(4.0 - ht) * sqrt(ht) *
g(ht) / 27.0
244 - 40.0 * sW2 * (4.0 - ht) *
Lambda(ht) / 3.0 / ht
245 + 2.0 * cW2 * (37.0 - 6.0 * ht - 12.0 * ht2 - 22.0 * ht3 + 9.0 * ht4)
246 * Li21mht / 9.0 / ht2
247 - (1.0 + 14.0 * cW2 + 16.0 * cW4) * log(cW2) / 3.0
248 + (11520.0 - 15072.0 * cW2
249 - (7170.0 - 8928.0 * cW2 - 768.0 * cW4) * ht
250 + (3411.0 - 7062.0 * cW2 + 3264.0 * cW4) * ht2
251 - (1259.0 - 3547.0 * cW2 + 2144.0 * cW4) * ht3
252 + (238.0 - 758.0 * cW2 + 448.0 * cW4) * ht4
253 - (17.0 - 58.0 * cW2 + 32.0 * cW4) * ht5)
254 * log(ht) / 27.0 / (ht - 4.0) / (ht - 4.0) / ht
255 + 8.0 / 9.0 * (4.0 - 26.0 * cW2 - 5.0 * cW4) * log(Mt * Mt / mu / mu)
256 + (3.0 + 5.0 * cW2 - 26.0 * cW4 - 48.0 * cW6) * log(zt) / 9.0 / cW2
257 + (3840.0 * sW2 - (4310.0 - 4224.0 * cW2 - 256.0 * cW4) * ht
258 + (1706.0 - 1312.0 * cW2 - 320.0 * cW4) * ht2
259 - (315.0 + 476.0 * cW2 - 64.0 * cW4) * ht3
260 + (24.0 + 454.0 * cW2) * ht4 - 112.0 * cW2 * ht5
262 *
phi(ht / 4.0) / 9.0 / (ht - 4.0) / (ht - 4.0) / ht2));
270 double Mw = Mw_i, Mw2 =
Mw*
Mw;
272 double cW4 = cW2*cW2, cW6 = cW4*cW2;
274 double zt = Mz2 / Mt2;
277 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
278 double B0_Mt2_Mw2_0_Mw2 =
cache.
getPV().
B0(Mt2, Mw2, 0.0, Mw2).real();
279 double B0_Mt2_Mw2_Mw2_Mz2 =
cache.
getPV().
B0(Mt2, Mw2, Mw2, Mz2).real();
281 double dRho2add = 542.0 / 27.0 - 2.0 / 3.0 / cW2 - 800.0 * cW2 / 27.0
282 + 1.0 / 3.0 * (1.0 + 26.0 * cW2 + 24.0 * cW4) * B0_Mt2_Mz2_Mw2_Mw2
283 + 4.0 * cW2 * B0_Mt2_Mw2_0_Mw2
284 - (11.0 / 3.0 + 1.0 / 3.0 / cW2 + 4.0 * cW2) * B0_Mt2_Mw2_Mw2_Mz2
285 - (2.0 / 3.0 + 4.0 * cW2 / 3.0 - 8.0 * cW4) * log(cW2)
286 + (1.0 / cW2 - 38.0 / 3.0 + 34.0 * cW2 / 3.0) * log(Mt2 / mu / mu)
287 + 2.0 * (3.0 - 62.0 * cW2 + 74.0 * cW4 + 36.0 * cW6) * log(zt) / 9.0 / cW2;
294 double Mw = Mw_i, Mw2 =
Mw*
Mw;
296 double cW4 = cW2*cW2, cW6 = cW4*cW2;
299 double zt = Mz2 / Mt2;
301 double ht = mh2 / Mt2;
302 double ht2 = ht*ht, ht3 = ht2*ht, ht4 = ht3*ht, ht5 = ht4*ht;
307 double B0_Mt2_Mw2_mh2_Mw2 =
cache.
getPV().
B0(Mt2, Mw2, mh2, Mw2).real();
308 double B0_Mt2_Mw2_Mw2_Mz2 =
cache.
getPV().
B0(Mt2, Mw2, Mw2, Mz2).real();
309 dRw2 = -13.0 / 144.0 - 1.0 / 48.0 / cW4 - 41.0 / 96.0 / cW2 + 61.0 * cW2 / 72.0
310 + (7.0 - 16.0 * cW2) / 27.0 * M_PI * sqrt(ht) - M_PI * M_PI / 36.0
311 - 5.0 * ht2 / 144.0 / cW4 / zt2 + 35.0 * ht / 288.0 / cW2 / zt
312 + 5.0 / 12.0 * (1.0 + ht2 / 12.0 / cW4 / zt2 - ht / 3.0 / cW2 / zt) * B0_Mt2_Mw2_mh2_Mw2
313 + (1.0 + 20.0 * cW2 - 24.0 * cW4) / 48.0 / cW4 * B0_Mt2_Mw2_Mw2_Mz2
314 - (5.0 * sW2 * ht2 + 3.0 * ht * zt + 48.0 * cW2 * ht * zt - 60.0 * cW4 * ht * zt
315 - 3.0 * cW2 * zt2 - 8.0 * cW4 * zt2 + 20.0 * cW6 * zt2) * log(cW2)
316 / 144.0 / cW2 / sW2 / zt / (ht - cW2 * zt)
317 + 5.0 * ht * (ht2 - 4.0 * cW2 * ht * zt + 12.0 * cW4 * zt2) * log(ht)
318 / 144.0 / cW4 / zt2 / (ht - cW2 * zt)
319 + (17.0 / 36.0 - 13.0 * cW2 / 18.0) * log(Mt2 / mu / mu)
320 - (5.0 * cW2 * ht2 - 3.0 * ht * zt - 60.0 * cW2 * ht * zt + 60.0 * cW4 * ht * zt
321 + (3.0 * cW2 + 60.0 * cW4 - 20.0 * cW6) * zt2) * log(zt)
322 / 144.0 / cW4 / zt / (ht - cW2 * zt);
324 double B0_Mt2_Mw2_Mw2_Mz2 =
cache.
getPV().
B0(Mt2, Mw2, Mw2, Mz2).real();
325 dRw2 = -121.0 / 288.0 - 1.0 / 48.0 / cW4 - 41.0 / 96.0 / cW2 + 77.0 * cW2 / 12.0
326 + 19.0 / 72.0 / ht + (41.0 / 216.0 - 4.0 * cW2 / 27.0) * ht
327 - (19.0 + 21.0 * ht) * M_PI * M_PI / 432.0 / ht2
328 - (1.0 / 2.0 - 1.0 / 48.0 / cW4 - 5.0 / 12.0 / cW2) * B0_Mt2_Mw2_Mw2_Mz2
329 + (16.0 * cW2 - 7.0) / 216.0 * (ht - 4.0) * sqrt(ht) *
g(ht)
330 - (1.0 / 12.0 - 1.0 / 3.0 / ht) *
Lambda(ht)
331 + (19.0 + 21.0 * ht - 12.0 * ht2 - 31.0 * ht3 + 9.0 * ht4) / 72.0 / ht2
333 - (1.0 + 21.0 * cW2 - 25.0 * cW4) * log(cW2) / 48.0 / cW2 / sW2
334 + (17.0 / 36.0 - 13.0 * cW2 / 18.0) * log(Mt2 / mu / mu)
335 + (1.0 + 20.0 * cW2 - 25.0 * cW4) * log(zt) / 48.0 / cW4
336 + (372.0 + (96.0 * cW2 - 213.0) * ht + (432.0 * cW2 - 318.0) * ht2
337 + (97.0 - 160.0 * cW2) * ht3 - (7.0 - 16.0 * cW2) * ht4)
338 / 216.0 / (ht - 4.0) / ht * log(ht)
339 + (96.0 - (384.0 - 64.0 * cW2) * ht - (2.0 + 64.0 * cW2) * ht2 + 231.0 * ht3
340 - 85.0 * ht4 + 9.0 * ht5) / 144.0 / (ht - 4.0) / ht2 *
phi(ht / 4.0);
349 double ht = mh2 / Mt2;
350 double ht2 = ht*ht, ht3 = ht2*ht;
355 dEoE2 = 61.0 / 72.0 - 16.0 * sqrt(ht) * M_PI / 27.0 - 13.0 / 18.0 * log(Mt2 / mu / mu);
357 dEoE2 = (231.0 - 32.0 * ht) / 216.0 - 2.0 / 27.0 * (4.0 - ht) * sqrt(ht) *
g(ht)
358 + 2.0 * (6.0 + 27.0 * ht - 10.0 * ht2 + ht3) / 27.0 / (ht - 4.0) * log(ht)
359 - 13.0 / 18.0 * log(Mt2 / mu / mu)
360 - 4.0 * (ht - 1.0) / 9.0 / (ht - 4.0) / ht *
phi(ht / 4.0);
368 double Mw = Mw_i, Mw2 =
Mw*
Mw;
371 double zt = Mz2 / Mt2;
373 double B0_Mt2_Mw2_0_Mw2 =
cache.
getPV().
B0(Mt2, Mw2, 0.0, Mw2).real();
374 double B0_Mt2_Mw2_Mw2_Mz2 =
cache.
getPV().
B0(Mt2, Mw2, Mw2, Mz2).real();
376 double f2a = 10.0 / 3.0 + 1.0 / 3.0 / cW2 + 4.0 * cW2 * B0_Mt2_Mw2_0_Mw2
377 - (11.0 / 3.0 + 1.0 / 3.0 / cW2 + 4.0 * cW2) * B0_Mt2_Mw2_Mw2_Mz2
378 + (11.0 - 8.0 * cW2) * log(cW2) / 6.0 / sW2
379 - (11.0 / 3.0 + 1.0 / 3.0 / cW2) * log(zt);
386 double Mw = Mw_i, Mw2 =
Mw*
Mw;
388 double cW4 = cW2*cW2, cW6 = cW4*cW2;
391 double zt = Mz2 / Mt2;
392 double zt2 = zt*zt, zt3 = zt2*zt;
393 double ht = mh2 / Mt2;
394 double ht2 = ht*ht, ht3 = ht2*ht, ht4 = ht3*ht, ht5 = ht4*ht;
398 if (mh < 0.57 * Mt) {
399 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
400 double B0_Mt2_Mz2_mh2_Mz2 =
cache.
getPV().
B0(Mt2, Mz2, mh2, Mz2).real();
401 dEta2 = (ht3 - 6.0 * ht2 * zt + 11.0 * ht * zt2) / 9.0 / cW2 / (ht - 4.0 * zt) / zt2
402 + (49.0 - 289.0 * cW2 - 349.0 * cW4 + 292.0 * cW6) / 216.0 / cW2 / (1.0 - 4.0 * cW2)
403 + (1.0 + 18.0 * cW2 - 16.0 * cW4) / 12.0 / (1.0 - 4.0 * cW2) * log(cW2)
404 - (17.0 - 40.0 * cW2 + 32.0 * cW4) / 54.0 / cW2 * (sqrt(ht) * M_PI - 2.0)
405 + (11.0 * ht2 * zt - 2.0 * ht3 - 24.0 * ht * zt2 + 24.0 * zt3)
406 / 18.0 / cW2 / (ht - 4.0 * zt) / zt2 * log(ht)
407 + (1.0 - 4.0 * cW2 + 44.0 * cW4 - 32.0 * cW6) / 24.0 / cW2 / (1.0 - 4.0 * cW2)
409 + (13.0 * ht2 * zt - 2.0 * ht3 - 32.0 * ht * zt2 + 36.0 * zt3)
410 / 18.0 / cW2 / (ht - 4.0 * zt) / zt2 * B0_Mt2_Mz2_mh2_Mz2
411 - (17.0 - 34.0 * cW2 + 26.0 * cW4) / 36.0 / cW2 * log(Mt2 / mu / mu)
412 + (ht * (2.0 * ht - 5.0 * zt) / 18.0 / cW2 / zt / (ht - 4.0 * zt)
413 + (10.0 - 39.0 * cW2 - 70.0 * cW4 + 48.0 * cW6) / 36.0 / cW2 / (4.0 * cW2 - 1.0))
416 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
417 dEta2 = (-17.0 + 40.0 * cW2 - 32.0 * cW4) * ht / 216.0 / cW2
418 + 5.0 / 144.0 / cW2 / (ht - 4.0)
419 + (707.0 - 4720.0 * cW2 + 5900.0 * cW4 - 3696.0 * cW6) / 864.0 / cW2 / (1.0 - 4.0 * cW2)
420 + (10.0 / 27.0 - 17.0 / 108.0 / cW2 - 8.0 * cW2 / 27.0)*(1.0 - ht / 4.0) * sqrt(ht) *
g(ht)
421 + (1.0 + 18.0 * cW2 - 16.0 * cW4) / 12.0 / (1.0 - 4.0 * cW2) * log(cW2)
422 + (4.0 - ht) / 12.0 / cW2 / ht *
Lambda(ht)
423 + (2.0 - 7.0 * cW2 - 70.0 * cW4 + 48.0 * cW6) / 36.0 / cW2 / (4.0 * cW2 - 1.0) * log(zt)
424 + (1.0 - 4.0 * cW2 + 44.0 * cW4 - 32.0 * cW6) / 24.0 / cW2 / (1.0 - 4.0 * cW2) * B0_Mt2_Mz2_Mw2_Mw2
425 - (17.0 - 34.0 * cW2 + 26.0 * cW4) / 36.0 / cW2 * log(Mt2 / mu / mu)
426 + ((4.0 * cW2 - 5.0)*(6.0 + 27.0 * ht - 10.0 * ht2 + ht3) / 54.0 / (ht - 4.0)
427 - (1152.0 + 606.0 * ht + 1467.0 * ht2 - 1097.0 * ht3 + 238.0 * ht4 - 17.0 * ht5)
428 / 432.0 / cW2 / (ht - 4.0) / (ht - 4.0) / ht) * log(ht)
429 + ((5.0 - 4.0 * cW2)*(ht - 1.0) / 9.0 / (ht - 4.0) / ht
430 - (384.0 + 10.0 * ht - 238.0 * ht2 + 63.0 * ht3 - 3.0 * ht4)
431 / 144.0 / cW2 / (ht - 4.0) / (ht - 4.0) / ht2) *
phi(ht / 4.0);
437 const double Mw_i)
const
440 double Mw = Mw_i, Mw2 =
Mw*
Mw;
442 double cW4 = cW2*cW2, cW6 = cW4*cW2;
444 double zt = Mz2 / Mt2;
447 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
449 gslpp::complex dEta2add = 16.0 * M_PI * M_PI *
DeltaEtaf1(I3f, Qf, Mw_i) +
Vadd(I3f, Qf, Mw_i)
450 - (197.0 - 1378.0 * cW2 + 1064.0 * cW4) / 27.0 / (1.0 - 4.0 * cW2)
451 - (1.0 + 16.0 * cW2 - 20.0 * cW4 + 48.0 * cW6) / 3.0 / (1.0 - 4.0 * cW2)
453 - 2.0 * cW2 * (1.0 + 26.0 * cW2 + 24.0 * cW4) / 3.0 / (1.0 - 4.0 * cW2)
455 + (41.0 / 3.0 - 46.0 * cW2 / 3.0) * log(Mt2 / mu / mu)
456 + 2.0 * (50.0 - 283.0 * cW2 + 242.0 * cW4 - 72.0 * cW6)
457 / 9.0 / (1.0 - 4.0 * cW2) * log(zt);
471 double Mw = Mw_i, Mw2 =
Mw*
Mw;
475 double zt = Mz2 / Mt2;
476 double ht = mh2 / Mt2;
477 double ht2 = ht*ht, ht3 = ht2*ht;
480 double B0_Mt2_Mz2_Mw2_Mw2 =
cache.
getPV().
B0(Mt2, Mz2, Mw2, Mw2).real();
483 if (mh < 0.57 * Mt) {
484 dKappa2 = (-175.0 + 366.0 * sW2) / 432.0
485 + (3.0 / 8.0 - sW2 / 3.0) * B0_Mt2_Mz2_Mw2_Mw2 - cW2 / 6.0 * log(cW2)
486 - 2.0 * M_PI / 27.0 * sqrt(ht)*(8.0 * sW2 - 3.0)
487 - (1.0 / 4.0 + 2.0 / 9.0 * sW2) * log(Mt2 / mu / mu)
488 + (3.0 * sW2 - 2.0) / 18.0 * log(zt);
490 dKappa2 = (-211.0 + 24.0 * ht + 462.0 * sW2 - 64.0 * ht * sW2) / 432.0
491 + (3.0 / 8.0 - sW2 / 3.0) * B0_Mt2_Mz2_Mw2_Mw2
492 - cW2 / 6.0 * log(cW2)
493 + (ht - 4.0) * sqrt(ht)*(8.0 * sW2 - 3.0) *
g(ht) / 108.0
494 - (6.0 + 27.0 * ht - 10.0 * ht2 + ht3)*(3.0 - 8.0 * sW2)
495 / 108.0 / (ht - 4.0) * log(ht)
496 - (1.0 / 4.0 + 2.0 / 9.0 * sW2) * log(Mt2 / mu / mu)
497 + (3.0 * sW2 - 2.0) / 18.0 * log(zt)
498 + (ht - 1.0)*(8.0 * sW2 - 3.0) / 18.0 / (4.0 - ht) / ht *
phi(ht / 4.0);
504 const double Mw_i)
const
509 double cW4 = cW2*cW2;
511 double zt = Mz2 / Mt2;
514 gslpp::complex i = gslpp::complex::i();
516 gslpp::complex dKappa2add = -238.0 * cW2 / 27.0 + 8.0 * cW4
517 - 2.0 * cW2 * sqrt(4.0 * cW2 - 1.0)*(3.0 + 4.0 * cW2)
518 * atan(1.0 / sqrt(4.0 * cW2 - 1.0))
519 - 16.0 / 9.0 * cW2 * log(zt)
520 + (1.0 - 12.0 * I3f * Qf + 8.0 * Qf * Qf - 8.0 * cW4 * Qf * Qf)
522 + 4.0 * cW2 *
GV(1.0 / cW2) - 7.0 * cW2 * log(cW2)
523 - 17.0 / 3.0 * cW2 * log(mu * mu / Mz2)
524 + cW2 * (1.0 - 2.0 * Qf * I3f) *
FV(1.0 / cW2)
525 - i * 80.0 / 9.0 * M_PI;
537 const double Mw_i)
const
539 double Mw = Mw_i, Mw2 =
Mw*
Mw;
544 gslpp::complex V = 8.0 * cW2 * log(Mw2 / mu / mu)
545 + 3.0 * (2.0 * I3f * Qf - 4.0 * sW2 * Qf * Qf) *
FV(1.0)
546 - 16.0 * cW2 *
GV(1.0 / cW2)
547 + (1.0 - 4.0 * cW2 - 4.0 * (1.0 - 2.0 * cW2) * I3f * Qf) *
FV(1.0 / cW2);
552 const double Mw_i)
const
561 gslpp::complex dEtaf1 = 1.0 / 16.0 / M_PI / M_PI
562 * (-SigmaPrime_ZZ / cW2 - 4.0 * cW2 * log(cW2) +
Vfi(I3f, Qf, Mz2,
Mw));
567 const double q2,
const double Mw_i)
const
571 double I3aQaQa = I3i * Qi * Qi + I3f * Qf*Qf;
572 double I3aQa = I3i * Qi + I3f*Qf;
573 double QaQa = Qi * Qi + Qf*Qf;
575 double Mw = Mw_i, Mw2 =
Mw*
Mw;
578 gslpp::complex V = (1.0 - sW2 * (2.0 - 2.0 * I3aQaQa)) *
FV(q2 / Mw2)
579 + 8.0 * cW2 *
GV(q2 / Mw2)
580 - (1.0 - 6.0 * sW2 * I3aQa + 6.0 * sW2 * QaQa) / 2.0 / cW2 *
FV(q2 / Mz2);
586 if (x >= 0.0 && x <= 4.0) {
587 return ( -1.0 / 2.0 / sqrt(x) *
g(x) + M_PI / 2.0 * sqrt(4.0 / x - 1.0));
588 }
else if (x > 4.0) {
589 return ( -1.0 / 2.0 / sqrt(x) *
g(x));
591 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::Lambda()");
596 if (x >= 0.0 && x <= 1.0) {
598 }
else if (x > 1.0) {
599 double lambda = sqrt(1.0 - 1.0 / x);
601 + 2.0 * pow(log((1.0 - lambda) / 2.0), 2.0)
602 - pow(log(4.0 * x), 2.0) + M_PI * M_PI / 3.0));
604 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::phi()");
610 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::FV()");
612 gslpp::complex i = gslpp::complex::i();
614 return ( i * M_PI * (2.0 / x + 3.0 - 2.0 * (1.0 + 1.0 / x)*(1.0 + 1.0 / x) * log(1.0 + x))
615 + 2.0 / x + 7.0 / 2.0 - (3.0 + 2.0 / x) * log(x)
616 + (1.0 + 1.0 / x)*(1.0 + 1.0 / x)
618 - M_PI * M_PI / 3.0 + pow(log(1.0 + x), 2.0)));
623 if (x <= 0.0 || x >= 4.0)
624 throw std::runtime_error(
"Out of range in EWSMTwoLoopEW::GV()");
626 double atanX = atan(sqrt(x / (4.0 - x)));
628 return ( (sqrt((4.0 - x) / x) * atanX - 1.0)*(1.0 / x + 1.0 / 2.0) + 9.0 / 8.0
629 + 1.0 / 2.0 / x - (1.0 + 1.0 / 2.0 / x)*4.0 / x * atanX * atanX);
double Cl2(const double phi) const
The Clausen function of index 2, .
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_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_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...
gslpp::complex FV(const double x) const
The auxiliary function .
gslpp::complex GV(const double x) const
The auxiliary function .
double deltaEoverE2() const
The auxiliary function .
double DeltaKappa2(const double Mw_i) const
The auxiliary function .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
double DeltaRho2Add(const double Mw_i) const
The auxiliary function .
gslpp::complex DeltaEtaf1(const double I3f, const double Qf, const double Mw_i) const
The auxiliary function .
gslpp::complex DeltaEta2Add_tmp(const double I3f, const double Qf, const double Mw_i) const
The auxiliary function .
double f2Add(const double Mw_i) const
The auxiliary function .
gslpp::complex Vfi(const double I3f, const double Qf, const double q2, const double Mw_i) const
The auxiliary function .
double DeltaRho(const double Mw_i) const
Leading two-loop contribution of to , denoted as .
double f1(const double a) const
The auxiliary function .
double g(const double a) const
The auxiliary function .
double DeltaRw2(const double Mw_i) const
The auxiliary function .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double f0(const double a) const
The auxiliary function .
gslpp::complex DeltaEta2Add_f(const Particle f, const double Mw_i) const
The auxiliary function for .
const EWSMOneLoopEW myOneLoopEW
An object of type EWSMOneLoopEW.
double tau_2() const
The function .
double phi(const double x) const
The auxiliary function .
gslpp::complex DeltaKappa2Add_tmp(const double I3f, const double Qf, const double Mw_i) const
The auxiliary function .
double Lambda(const double x) const
The auxiliary function .
EWSMTwoLoopEW(const EWSMcache &cache_i)
Constructor.
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
double DeltaRho2(const double Mw_i) const
The auxiliary function .
gslpp::complex Vadd(const double I3f, const double Qf, const double Mw_i) const
The auxiliary function .
double rho_2() const
The function .
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
double DeltaEta2(const double Mw_i) const
The auxiliary function .
const EWSMcache & cache
A reference to an object of type EWSMcache.
gslpp::complex DeltaKappa2Add_f(const Particle f, const double Mw_i) const
The auxiliary function for .
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 cache variables used in computing radiative corrections to the EW precision observables.
double Xt_alpha(const double Mw_i) const
The quantity with the coupling .
double logMTOPtoMH() const
A cache method.
const ClausenFunctions getClausen() const
A get method to access the member object of type ClausenFunctions.
const Polylogarithms getPolyLog() const
A get method to access the member object of type Polylogarithms.
double logMZtoMTAU() const
A cache method.
double logMZtoME() const
A cache method.
double logMZtoMMU() 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...
double getZeta3() const
A get method to access the value of the zeta function .
double Q_f(const Particle f) const
The charge of an SM fermion .
double mf(const Particle f, const double mu=0.0, const orders order=FULLNNLO) const
The mass of an SM fermion.
double I3_f(const Particle f) const
The isospin of an SM fermion .
const StandardModel & getSM() const
An observable class for the -boson mass.
gslpp::complex B0(const double mu2, const double p2, const double m02, const double m12) const
.
bool is(std::string name_i) const
gslpp::complex Li2(const double x) const
The dilogarithm with a real argument, .
const double getMtpole() const
A get method to access the pole mass of the top quark.
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 .
A class for , relevant for mesons mixing in the Standard Model.