38mculeptonnu(5,
NDR,
LO),
58 for (
int j = 0; j < 10; j++) {
61 CWbnlepArrayLOqcd[j] = 0.;
62 CWbnlepArrayNLOqcd[j] = 0.;
63 CWbnlepArrayLOew[j] = 0.;
64 CWbnlepArrayNLOew[j] = 0.;
68 for (
int j = 0; j < 19; j++) {
69 CWBMllArrayLO[j] = 0.;
70 CWBMllArrayNLO[j] = 0.;
73 for (
int j = 0; j < 8; j++) {
75 CWbsgArrayNLO[j] = 0.;
76 CWbsgArrayNNLO[j] = 0.;
77 CWprimebsgArrayLO[j] = 0.;
78 CWprimebsgArrayNLO[j] = 0.;
81 for (
int j = 0; j < 8; j++) {
82 CWBsmmArrayNNLOqcd[j] = 0.;
83 CWBsmmArrayNLOqcd[j] = 0.;
84 CWBsmmArrayLOqcd[j] = 0.;
85 CWBsmmArrayNLOewt4[j] = 0.;
86 CWBsmmArrayNLOewt2[j] = 0.;
87 CWBsmmArrayNLOew[j] = 0.;
90 for (
int j = 0; j < 8; j++) {
91 CWBdmmArrayNNLOqcd[j] = 0.;
92 CWBdmmArrayNLOqcd[j] = 0.;
93 CWBdmmArrayLOqcd[j] = 0.;
94 CWBdmmArrayNLOewt4[j] = 0.;
95 CWBdmmArrayNLOewt2[j] = 0.;
96 CWBdmmArrayNLOew[j] = 0.;
102 gamma0 = 6. * (Nc - 1.) / Nc;
103 J5 =
SM.Beta1(5) * gamma0 / 2. /
SM.Beta0(5) /
SM.Beta0(5) - ((Nc - 1.) / (2. * Nc) * (-21. + 57. / Nc - 19. / 3. * Nc + 20. / 3.)) / 2. /
SM.Beta0(5);
104 BtNDR = 5. * (Nc - 1.) / 2. / Nc + 3. * CF;
114 Mt_muw =
SM.Mrun(Muw,
SM.getQuarks(
QCD::TOP).getMass_scale(),
116 Mt_mut =
SM.Mrun(Mut,
SM.getQuarks(
QCD::TOP).getMass_scale(),
118 alstilde =
SM.Als(Muw,
FULLNNNLO,
true,
true) / 4. / M_PI;
119 aletilde =
SM.Ale(Muw,
FULLNLO) / 4. / M_PI;
121 Mw_tree =
SM.Mw_tree();
135 lam_t =
SM.getCKM().computelamt();
136 L = 2. * log(Muw /
Mw);
137 Lz = 2. * log(Muw /
SM.getMz());
141const double StandardModelMatching::x_c(
const double mu,
const orders order)
const {
144 return mc * mc /
Mw /
Mw;
147const double StandardModelMatching::x_t(
const double mu,
const orders order)
const {
155 mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
159 return mt * mt /
Mw /
Mw;
162const double StandardModelMatching::mt2omh2(
const double mu,
const orders order)
const {
163 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
165 return (mt /
SM.getMHl())*(mt /
SM.getMHl());
168const double StandardModelMatching::S0(
double x)
const {
172const double StandardModelMatching::S0(
double x,
double y)
const
174 if (fabs(1. - y / x) < LEPS){
175 return ((x * (-4. + 15. * x - 12. * x * x + x * x * x +
176 6. * x * x * log(x))) / (4. * pow(-1. + x, 3.)));
178 return (x * y * ((1. / 4. + 3. / 2. / (1. - x) - 3. / 4. / pow(1. - x, 2.)) *
180 (1. / 4. + 3. / 2. / (1. - y) - 3. / 4. / pow(1. - y, 2.)) *
182 3. / 4. / (1. - x) / (1. - y)));
185const double StandardModelMatching::S0p(
double x)
const {
187 return (x * (4. - 22. * x + 15. * x2 + 2. * x2 * x + x2 * x2 - 18. * x2 * log(x)) / 4. / pow(x - 1., 4.));
190const double StandardModelMatching::S11(
double x)
const {
194 double xm3 = (x - 1.) * (x - 1.) * (x - 1.);
195 double xm4 = xm3 * (x - 1);
197 return (x * (4. - 39. * x + 168. * x2 + 11. * x3) / 4. / xm3
198 + 3. * x3 * gslpp_special_functions::dilog(1. - x) * (5. + x) / xm3
199 + 3. * x * log(x)*(-4. + 24. * x - 36. * x2 - 7. * x3 - x4) / 2.
200 / xm4 + 3. * x3 * pow(log(x), 2.) * (13. + 4. * x + x2) / 2.
204const double StandardModelMatching::S18(
double x)
const {
208 double xm2 = (x - 1.) * (x - 1.);
209 double xm3 = xm2 * (x - 1.);
210 return ((-64. + 68. * x + 17. * x2 - 11. * x3) / 4. / xm2
211 + pow(M_PI, 2.) * 8. / 3. / x + 2. * gslpp_special_functions::dilog(1. - x) * (8. - 24. * x
212 + 20. * x2 - x3 + 7. * x4 - x4 * x) / (x * xm3)
213 + log(x)*(-32. + 68. * x - 32. * x2 + 28. * x3 - 3. * x4)
214 / (2. * xm3) + x2 * pow(log(x), 2.) * (4. - 7. * x + 7. * x2
215 - 2. * x3) / (2. * xm2 * xm2));
218const double StandardModelMatching::S1(
double x)
const {
219 return (CF * S11(x) + (Nc - 1.) / 2. / Nc * S18(x));
230const double StandardModelMatching::A0t(
double x)
const {
234 return ((-3. * x3 + 2. * x2) / (2. * pow(1. - x, 4.)) * log(x) +
235 (22. * x3 - 153. * x2 + 159. * x - 46.) / (36. * pow(1. - x, 3.)));
238const double StandardModelMatching::B0t(
double x)
const {
239 return ( x / (4. * (1. - x) * (1. - x)) * log(x) + 1. / (4. * (1. - x)));
242const double StandardModelMatching::C0t(
double x)
const {
243 return ( (3. * x * x + 2. * x) / (8. * (1. - x) * (1. - x)) * log(x) + (-x * x + 6. * x) / (8. * (1. - x)));
246const double StandardModelMatching::D0t(
double x)
const {
251 return ( (-3. * x4 + 30. * x3 - 54. * x2 + 32. * x - 8.) / (18. * pow(1. - x, 4)) * log(x)
252 + (-47. * x3 + 237. * x2 - 312. * x + 104.) / (108. * pow(1. - x, 3.)));
255const double StandardModelMatching::E0t(
double x)
const {
258 return (-9. * x * x + 16. * x - 4.) / (6. * pow((1. - x), 4)) * log(x) + (-7. * x * x * x - 21. * x * x + 42. * x + 4.) / (36 * pow((1. - x), 3));
262const double StandardModelMatching::F0t(
double x)
const {
264 double xm3 = (1. - x)*(1. - x)*(1. - x);
266 return ((3. * x2) / (2. * xm3 * (1. - x)) * log(x) + (5. * x2 * x - 9. * x2 + 30. * x - 8.) /
270const double StandardModelMatching::A1t(
double x,
double mu)
const {
272 double x3 = x * x * x;
273 double x4 = x * x * x * x;
274 double xm2 = pow(1. - x, 2);
275 double xm3 = xm2 * (1. - x);
276 double xm4 = xm3 * (1. - x);
277 double xm5 = xm4 * (1. - x);
278 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
281 return ((32. * x4 + 244. * x3 - 160. * x2 + 16. * x) / 9. / xm4 * gslpp_special_functions::dilog(1. - 1. / x) +
282 (-774. * x4 - 2826. * x3 + 1994. * x2 - 130. * x + 8.) / 81. / xm5 * log(x) +
283 (-94. * x4 - 18665. * x3 + 20682. * x2 - 9113. * x + 2006.) / 243. / xm4 +
284 ((-12. * x4 - 92. * x3 + 56. * x2) / 3. / (1. - x) / xm4 * log(x) +
285 (-68. * x4 - 202. * x3 - 804. * x2 + 794. * x - 152.) / 27. / xm4) * 2. * log(mu / mt));
288const double StandardModelMatching::B1t(
double x,
double mu)
const {
290 double xm2 = pow(1. - x, 2);
291 double xm3 = pow(1. - x, 3);
292 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
295 return (-2. * x) / xm2 * gslpp_special_functions::dilog(1. - 1. / x) + (-x2 + 17. * x) / (3. * xm3) * log(x) + (13. * x + 3.) / (3. * xm2) +
296 ((2. * x2 + 2. * x) / xm3 * log(x) + (4. * x) / xm2) * 2. * log(mu / mt);
301const double StandardModelMatching::C1t(
double x,
double mu)
const {
304 double xm2 = pow(1. - x, 2);
305 double xm3 = pow(1. - x, 3);
306 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
309 return (-x3 - 4. * x) / xm2 * gslpp_special_functions::dilog(1. - 1. / x) + (3. * x3 + 14. * x2 + 23 * x) / (3. * xm3) * log(x) +
310 (4. * x3 + 7. * x2 + 29. * x) / (3. * xm2) + ((8. * x2 + 2. * x) / xm3 * log(x) + (x3 + x2 + 8. * x) / xm2) * 2. * log(mu / mt);
316const double StandardModelMatching::D1t(
double x,
double mu)
const {
320 double xm4 = pow(1. - x, 4);
321 double xm5 = pow(1. - x, 5);
322 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
325 return (380. * x4 - 1352. * x3 + 1656. * x2 - 784. * x + 256.) / (81. * xm4) * gslpp_special_functions::dilog(1. - 1. / x) +
326 (304. * x4 + 1716. * x3 - 4644. * x2 + 2768. * x - 720.) / (81. * xm5) * log(x) +
327 (-6175. * x4 + 41608. * x3 - 66723. * x2 + 33106. * x - 7000.) / (729. * xm4) +
328 ((648. * x4 - 720. * x3 - 232. * x2 - 160. * x + 32.) / (81. * xm5) * log(x) +
329 (-352. * x4 + 4912. * x3 - 8280. * x2 + 3304. * x - 880.) / (243. * xm4)) * 2. * log(mu / mt);
332const double StandardModelMatching::F1t(
double x,
double mu)
const {
336 double xm4 = pow(1. - x, 4);
337 double xm5 = pow(1. - x, 5);
338 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
341 return ((4. * x4 - 40. * x3 - 41. * x2 - x) / 3. / xm4 * gslpp_special_functions::dilog(1. - 1. / x) +
342 (-144. * x4 + 3177. * x3 + 3661. * x2 + 250. * x - 32.) / 108. / xm5 * log(x)
343 + (-247. * x4 + 11890. * x3 + 31779. * x2 - 2966. * x + 1016.) / 648. / xm4
344 + ((17. * x3 + 31. * x2) / xm5 * log(x) + (-35. * x4 + 170. * x3 + 447. * x2
345 + 338. * x - 56.) / 18. / xm4)* 2. * log(mu / mt));
348const double StandardModelMatching::E1t(
double x,
double mu)
const
353 double xm4 = pow(1. - x, 4);
354 double xm5 = pow(1. - x, 5);
355 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
359 return (515. * x4 - 614. * x3 - 81. * x2 - 190. * x + 40.) / (54. * xm4) * gslpp_special_functions::dilog(1. - 1. / x) +
360 (-1030. * x4 + 435. * x3 + 1373. * x2 + 1950. * x - 424.) / (108. * xm5) * log(x) +
361 (-29467. * x4 + 45604. * x3 - 30237. * x2 + 66532. * x - 10960.) / (1944. * xm4) +
362 ((-1125. * x3 + 1685. * x2 + 380. * x - 76.) / (54. * xm5) * log(x) +
363 (133. * x4 - 2758. * x3 - 2061. * x2 + 11522. * x - 1652.) / (324. * xm4)) * 2. * log(mu / mt);
366const double StandardModelMatching::G1t(
double x,
double mu)
const
371 double xm3 = pow(1. - x, 3);
372 double xm4 = pow(1. - x, 4);
374 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
377 return (10. * x4 - 100. * x3 + 30. * x2 + 160. * x - 40.) / (27. * xm4) * gslpp_special_functions::dilog(1. - 1. / x) +
378 (30. * x3 - 42. * x2 - 332. * x + 68.) / (81. * xm4) * log(x) +
379 (-6. * x3 - 293. * x2 + 161. * x + 42.) / (81. * xm3) +
380 ((90. * x2 - 160. * x + 40.) / (27. * xm4) * log(x) +
381 (35. * x3 + 105. * x2 - 210. * x - 20.) / (81. * xm3)) * 2. * log(mu / mt);
384const double StandardModelMatching::C7c_3L_at_mW(
double x)
const
387 return (1.525 - 0.1165 * z + 0.01975 * z * log(z) + 0.06283 * z * z + 0.005349 * z * z * log(z) + 0.01005 * z * z * log(z) * log(z)
388 - 0.04202 * z * z * z + 0.01535 * z * z * z * log(z) - 0.00329 * z * z * z * log(z) * log(z) + 0.002372 * z * z * z * z - 0.0007910 * z * z * z * z * log(z));
391const double StandardModelMatching::C7t_3L_at_mt(
double x)
const
394 return (12.06 + 12.93 * z + 3.013 * z * log(z) + 96.71 * z * z + 52.73 * z * z * log(z)
395 + 147.9 * z * z * z + 187.7 * z * z * z * log(z) - 144.9 * z * z * z * z + 236.1 * z * z * z * z * log(z));
398const double StandardModelMatching::C7t_3L_func(
double x,
double mu)
const
404 double xm1to5 = (x - 1.)*(x - 1.)*(x - 1.)*(x - 1.)*(x - 1.);
405 double xm1to6 = xm1to5 * (x - 1.);
407 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
410 return ( 2. * log(mu / mt) * (gslpp_special_functions::dilog(1. - 1. / x) * (-592. * x5 - 22. * x4 + 12814. * x3 - 6376. * x2 + 512. * x) / 27. / xm1to5
411 + log(x) * (-26838. * x5 + 25938. * x4 + 627367. * x3 - 331956. * x2 + 16989. * x - 460.) / 729. / xm1to6
412 + (34400. * x5 + 276644. * x4 - 2668324. * x3 + 1694437. * x2 - 323354. * x + 53077.) / 2187. / xm1to5)
413 + 4. * log(mu / mt) * log(mu / mt) * (log(x)*(-63. * x5 + 532. * x4 + 2089. * x3 - 1118. * x2) / 9. / xm1to6
414 + (1186. * x5 - 2705. * x4 - 24791. * x3 - 16099. * x2 + 19229. * x - 2740.) / 162. / xm1to5));
418const double StandardModelMatching::C8c_3L_at_mW(
double x)
const
421 return (-1.870 + 0.1010 * z - 0.1218 * z * log(z) + 0.1045 * z * z - 0.03748 * z * z * log(z)
422 + 0.01151 * z * z * log(z) * log(z) - 0.01023 * z * z * z + 0.004342 * z * z * z * log(z)
423 + 0.0003031 * z * z * z * log(z) * log(z) - 0.001537 * z * z * z * z + 0.0007532 * z * z * z * z * log(z));
426const double StandardModelMatching::C8t_3L_at_mt(
double x)
const
429 return (-0.8954 - 7.043 * z - 98.34 * z * z - 46.21 * z * z * log(z) - 127.1 * z * z * z
430 - 181.6 * z * z * z * log(z) + 535.8 * z * z * z * z - 76.76 * z * z * z * z * log(z));
433const double StandardModelMatching::C8t_3L_func(
double x,
double mu)
const
439 double xm1to5 = (x - 1.)*(x - 1.)*(x - 1.)*(x - 1.)*(x - 1.);
440 double xm1to6 = xm1to5 * (x - 1.);
442 double mt =
SM.Mrun(mu,
SM.getQuarks(
QCD::TOP).getMass_scale(),
445 return ( 2. * log(mu / mt) * (gslpp_special_functions::dilog(1. - 1. / x) * (-148. * x5 + 1052. * x4 - 4811. * x3 - 3520. * x2 - 61. * x) / 18. / xm1to5
446 + log(x) * (-15984. * x5 + 152379. * x4 - 1358060. * x3 - 1201653. * x2 - 74190. * x + 9188.) / 1944. / xm1to6
447 + (109669. * x5 - 1112675. * x4 + 6239377. * x3 + 8967623. * x2 + 768722. * x - 42796.) / 11664. / xm1to5)
448 + 4. * log(mu / mt) * log(mu / mt) * (log(x) * (-139. * x4 - 2938. * x3 - 2683. * x2) / 12. / xm1to6
449 + (1295. * x5 - 7009. * x4 + 29495. * x3 + 64513. * x2 + 17458. * x - 2072.) / 216. / xm1to5));
453const double StandardModelMatching::Tt(
double x)
const {
454 return ((-(16. * x + 8.) * sqrt(4. * x - 1.) * gslpp_special_functions::clausen(2. * asin(1. / 2. / sqrt(x)))) +((16. * x + 20. / 3.) * log(x)) + (32. * x) + (112. / 9.));
457const double StandardModelMatching::Wt(
double x)
const {
459 double x3 = x * x * x;
460 double x4 = x * x * x * x;
461 double xm2 = pow(1. - x, 2);
462 double xm3 = xm2 * (1. - x);
463 double xm4 = xm3 * (1. - x);
465 return ((-32. * x4 + 38. * x3 + 15. * x2 - 18. * x) / 18. / xm4 * log(x) -
466 (-18. * x4 + 163. * x3 - 259. * x2 + 108. * x) / 36. / xm3);
469const double StandardModelMatching::Eet(
double x)
const {
471 double xm2 = pow(1. - x, 2);
472 double xm3 = xm2 * (1. - x);
473 double xm4 = xm3 * (1. - x);
475 return ((x * (18. - 11. * x - x2)) / (12. * xm3) +
476 (log(x) * (x2 * (15. - 16. * x + 4. * x2)) / (6. * xm4)) - 2. * log(x) / 3.);
479const double StandardModelMatching::Rest(
double x,
double mu)
const
483 return (-37.01364013973161 + 7.870950908767437 * mt -
484 0.0015295355176062242 * mt * mt + 2.41071411865951 *
Mw -
485 0.20348320015672194 * mt *
Mw - 0.02858827491583899 *
Mw *
Mw +
486 0.001422822903303167 * mt *
Mw *
Mw + (4.257050684362808 + 0.17719711396626878 * mt -
487 0.8190947921716011 *
Mw - 0.002315407459561656 * mt *
Mw + 0.008797408866807221 *
Mw *
Mw) * log(
488 mu) + (0.49627858125619595 - pow(5.784745743815408, -8) * mt +
489 0.031869225004473686 *
Mw - 0.00041193393986696286 *
Mw *
Mw) * log(
493const double StandardModelMatching::Y0(
double x)
const {
494 return ( x / 8. * ((4 - 5 * x + x * x + 3 * x * log(x)) / pow(x - 1., 2.)));
497const double StandardModelMatching::Y1(
double x,
double mu)
const {
501 double logx = log(x);
503 double xm2 = xm * xm;
504 double xm3 = xm2 * xm;
506 return ((10. * x + 10. * x2 + 4. * x3) / (3 * xm2) - (2. * x - 8. * x2 - x3 - x4) / xm3 * logx
507 + (2. * x - 14. * x2 + x3 - x4) / (2. * xm3) * pow(logx, 2.)
508 + (2. * x + x3) / xm2 * gslpp_special_functions::dilog(1. - x)
509 + 16. * x * (-4. + 3. * x + x3 - 6. * x * logx) / (8. * -xm3) * log(mu /
Mw));
512const double StandardModelMatching::C7LOeff(
double x)
const {
516 return ( (3. * x3 - 2. * x2) / (4. * pow(x - 1., 4.)) * log(x) + (-8. * x3 - 5. * x2 +
517 7. * x) / (24. * pow(x - 1., 3.)));
520const double StandardModelMatching::C8LOeff(
double x)
const {
521 return ( -3. * x * x / (4. * pow(x - 1., 4.)) * log(x) + (-x * x * x + 5. * x * x + 2. * x) / (8. * pow(x - 1., 3)));
524const double StandardModelMatching::C7NLOeff(
double x)
const {
528 double xm4 = pow(x - 1., 4.);
529 double xm5 = xm4 * (x - 1);
530 double logx = log(x);
532 double Li2 = gslpp_special_functions::dilog(1. - 1. / x);
533 return (
Li2 * (-16. * x4 - 122. * x3 + 80. * x2 - 8. * x) / (9. * xm4) +
534 (6. * x4 + 46. * x3 - 28. * x2) / (3. * xm5) * logx * logx +
535 (-102. * x4 * x - 588. * x4 - 2262. * x3 + 3244. * x2 - 1364. * x + 208.) / (81. * xm5) * logx +
536 (1646. * x4 + 12205. * x3 - 10740. * x2 + 2509. * x - 436.) / (486. * xm4));
539const double StandardModelMatching::C8NLOeff(
double x)
const {
543 double xm4 = pow(x - 1., 4.);
544 double xm5 = xm4 * (x - 1);
545 double logx = log(x);
547 double Li2 = gslpp_special_functions::dilog(1. - 1. / x);
548 return (
Li2 * (-4. * x4 + 40. * x3 + 41. * x2 + x) / (6. * xm4) +
549 (-17. * x3 - 31. * x2) / (2. * xm5) * logx * logx +
550 (-210. * x * x4 + 1086. * x4 + 4893. * x3 + 2857. * x2 - 1994. * x + 280.) / (216. * xm5) * logx +
551 (737. * x4 - 14102. * x3 - 28209. * x2 + 610. * x - 508.) / (1296. * xm4));
564const double StandardModelMatching::B0b(
double x)
const {
565 return ( 0.25 * (x / (1. - x) + x / (x * x - 2. * x + 1.) * log(x)));
568const double StandardModelMatching::C0b(
double x)
const {
569 return ( x / 8. * ((x - 6.) / (x - 1.) + (3. * x + 2.) / (x * x - 2. * x + 1.) * log(x)));
572const double StandardModelMatching::D0b(
double x)
const {
574 return ( -4. / 9. * log(x) + (-19. * x2 * x + 25. * x2) / (36. * (x2 * x - 3. * x2 + 3. * x - 1.))
575 + (x2 * (5. * x2 - 2. * x - 6.)) / (18. * pow(x - 1., 4.)) * log(x));
578const double StandardModelMatching::D0b_tilde(
double x)
const {
579 return (D0b(x) - 4. / 9.);
582const double StandardModelMatching::E0b(
double x)
const {
585 return ( -2. / 3. * log(x) + (18. * x - 11. * x2 - x2 * x) / (12. * (-x2 * x + 3. * x2 - 3. * x + 1.)) +
586 (x2 * (15. - 16. * x + 4. * x2)) / (6. * pow(1. - x, 4.)) * log(x));
593const double StandardModelMatching::B1d(
double x,
double mu)
const {
595 double dilog1mx = gslpp_special_functions::dilog(1. - x);
596 double mut =
SM.getQuarks(
QCD::TOP).getMass_scale();
597 double xmut = mut * mut /
Mw /
Mw;
603 logxw = 2. * log(mu /
Mw);
605 return (-(8. - 183. * x + 47. * x * x) / 24. / xmo / xmo - (8. + 27. * x + 93. * x * x) / 24. / xmo / xmo / xmo * log(x) +
606 (27. * x + 71. * x * x - 2. * x * x * x) / 24. / xmo / xmo / xmo * log(x) * log(x) - (2. - 3. * x - 9. * x * x + x * x * x) / 6. / x / xmo / xmo * dilog1mx +
607 (2. + x) / 36. / x * M_PI * M_PI + B0b(x)*(19. / 6. - logxw) + 4. * x / xmo / xmo * log(xmut) -
608 (2. * x + 2. * x * x) / xmo / xmo / xmo * log(x) * log(xmut));
611const double StandardModelMatching::B1d_tilde(
double x,
double mu)
const {
613 double dilog1mx = gslpp_special_functions::dilog(1. - x);
619 logxw = 2. * log(mu /
Mw);
621 return (-(8. - 23. * x) / 8. / xmo - (8. - 5. * x) / 8. / xmo / xmo * log(x) + (3. * x + 2. * x * x) / 8. / xmo / xmo * log(x) * log(x) +
622 (2. - 3. * x + 3. * x * x + x * x * x) / 2. / x / xmo / xmo * dilog1mx - (2. + x) / 12. / x * M_PI * M_PI + B0b(x)*(5. / 2. + 3. * logxw));
625const double StandardModelMatching::B1u(
double x,
double mu)
const {
627 double dilog1mx = gslpp_special_functions::dilog(1. - x);
628 double mut =
SM.getQuarks(
QCD::TOP).getMass_scale();
629 double xmut = mut * mut /
Mw /
Mw;
635 logxw = 2. * log(mu /
Mw);
637 return (-(46. * x + 18. * x * x) / 3. / xmo / xmo - (16. * x - 80. * x * x) / 3. / xmo / xmo / xmo * log(x) -
638 (9. * x + 23. * x * x) / 2. / xmo / xmo / xmo * log(x) * log(x) - 6. * x / xmo / xmo * dilog1mx +
639 B0b(x)*(-38. / 3. + 4. * logxw) - 16. * x / xmo / xmo * log(xmut) + (8. * x + 8. * x * x) / xmo / xmo / xmo * log(x) * log(xmut));
642const double StandardModelMatching::B1u_tilde(
double x,
double mu)
const {
644 double logx = log(x);
645 double dilog1mx = gslpp_special_functions::dilog(1. - x);
651 logxw = 2. * log(mu /
Mw);
653 return (-6. * x / xmo - 3. * x * logx * logx / 2. / xmo / xmo - 6. * x * dilog1mx / xmo / xmo - B0b(x)*(10. + 12. * logxw));
656const double StandardModelMatching::C1ew(
double x)
const {
658 double dilog1mx = gslpp_special_functions::dilog(1. - x);
659 double mut =
SM.getQuarks(
QCD::TOP).getMass_scale();
660 double xmut = mut * mut /
Mw /
Mw;
662 return ((29. * x + 7. * x * x + 4. * x * x * x) / 3. / xmo / xmo + (x - 35. * x * x - 3. * x * x * x - 3. * x * x * x * x) / 3. / xmo / xmo / xmo * log(x) +
663 (20. * x * x - x * x * x + x * x * x * x) / 2. / xmo / xmo / xmo * log(x) * log(x) + (4. * x + x * x * x) / xmo / xmo * dilog1mx +
664 (8. * x + x * x + x * x * x) / xmo / xmo * log(xmut) - (2. * x + 8. * x * x) / xmo / xmo / xmo * log(x) * log(xmut));
667const double StandardModelMatching::Zew(
double xt,
double xz)
const {
670 z0ew = 5.1795 + 0.038 * (Mt_muw - 166.) + 0.015 * (
Mw - 80.394);
671 z1ew = -2.1095 + 0.0067 * (Mt_muw - 166.) + 0.026 * (
Mw - 80.394);
677 double xtmo = xt - 1.;
678 double xzmo = xz - 1.;
679 double dilog1mxt = gslpp_special_functions::dilog(1. - xt);
680 double dilog1mxz = gslpp_special_functions::dilog(1. - xz);
681 z0ew = -xt * (20. - 20. * xt2 - 457. * xz + 19. * xt * xz + 8. * xz2) / 32. / xtmo / xz +
682 xt * (10. * xt3 - 11. * xt2 * xz - xt * (30. - 16. * xz) + 4. * (5. - 17. * xz + xz2)) / 16. / xtmo / xtmo / xz * log(xt) +
683 xt * (10. - 10. * xt2 - 17. * xz - xt * xz - 4. * xz2) / 16. / xtmo / xz * log(xz) -
684 xz * (10. * xt2 - xt * (4. - xz) + 8. * xz) / 32. / xtmo / xtmo * log(xt) * log(xt) - xz2 / 4. * log(xz) * log(xz) -
685 ((8. + 12. * xt + xt2) / 4. / xz - 5. * xtmo * xtmo * (2. + xt) / 16. / xz2 -
686 (12. - 3. * xt3 - 3. * xt2 * (4. - xz) + 4. * xt * (3. - xz) + 4. * xz - xz2) / 8. / xtmo / xtmo) * log(xt) * log(xz) -
687 ((8. + 12. * xt + xt2) / 2. / xz - 5. * xtmo * xtmo * (2. + xt) / 8. / xz2 - 3. * (4. + 8. * xt + 2. * xt2 - xt3) / 4. / xtmo / xtmo) * dilog1mxt +
688 xzmo * xzmo * (5. - 6. * xz - 5. * xz2) / 4. / xz2 * dilog1mxz - (5. - 16. * xz + 12. * xz2 + 2 * xz3 * xz) / 24. / xz2 * M_PI * M_PI +
689 xt * (4. - xz)*(88. - 30. * xz - 25. * xz2 - 2. * xt * (44. - 5. * xz - 6. * xz2)) / 32. / xtmo / xtmo / xz * phi_z(xz / 4.) +
690 (16. * xt3 * xt - xt * (20. - xz) * xz2 + 8. * xz3 - 8. * xt3 * (14. + 5. * xz) + 8. * xt2 * (12. - 7. * xz + xz2)) / 32. / xtmo / xtmo / xz * phi_z(xz / 4. / xt) -
691 ((22. + 33. * xt - xt2) / 16. / xtmo / xz - 5. * xtmo * (2. + xt) / 16. / xz2 +
692 (2. + 5. * xt2 + 10. * xz + xt * (15. + xz)) / 16. / xtmo / xtmo) * phi_xy(xt, xz);
694 z1ew = xt * (20. - 20. * xt2 - 265. * xz + 67. * xt * xz + 8. * xz2) / 48. / xtmo / xz -
695 xt * (10. * xt3 - 15. * xt2 * xz + 4. * (5. - 7. * xz + 2. * xz2) - xt * (30. + 20. * xz + 4. * xz2)) / 24. / xtmo / xtmo / xz * log(xt) -
696 xt * (10. - 10. * xt2 - 33. * xz + 15. * xt * xz - 4. * xz2) / 24. / xtmo / xz * log(xz) +
697 xz * (8. - 16. * xt + 2. * xt2 + 10. * xz + 7. * xt * xz) / 48. / xtmo / xtmo * log(xt) * log(xt) + xz * (4. + 5. * xz) / 24. * log(xz) * log(xz) +
698 ((20. + 6. * xt + xt2) / 12. / xz - 5. * xtmo * xtmo * (2. + xt) / 24. / xz2 +
699 (3. * xt3 + 2. * xt2 * (12. - xz) - xt * (18. - 16. * xz + xz2) - 2. * (9. + 4. * xz - xz2)) / 12. / xtmo / xtmo) * log(xt) * log(xz) +
700 ((20. + 6. * xt + xt2) / 6. / xz - 5. * xtmo * xtmo * (2. + xt) / 12. / xz2 - (6. + 6. * xt - 8. * xt2 - xt3) / 2. / xtmo / xtmo) * dilog1mxt -
701 xzmo * xzmo * (5. - 10. * xz - 7. * xz2) / 6. / xz2 * dilog1mxz + (10. - 40. * xz + 36. * xz2 + 4. * xz3 + 5. * xz3 * xz) / 72. / xz2 * M_PI * M_PI +
702 xt * (xz - 4.)*(24. - 26. * xz - 13. * xz2 - 6. * xt * (4. - xz - xz2)) / 16. / xtmo / xtmo / xz * phi_z(xz / 4.) - (2. * xt2 * (2. + xt) / 3. / xtmo / xz -
703 (24. * xt3 + 12. * xt2 * (14. + xz) - 2. * xz * (4. + 5. * xz) - xt * (80. - 36. * xz + 7. * xz2)) / 48. / xtmo / xtmo) * phi_z(xz / 4. / xt) +
704 ((10. - xt - xt2) / 8. / xtmo / xz - 5 * xtmo * (2. + xt) / 24. / xz2 + (6. + 3. * xt2 + 14. * xz + 5. * xt * (7. - xz)) / 24. / xtmo / xtmo) * phi_xy(xt, xz);
706 return (z0ew + sW2 * z1ew);
709const double StandardModelMatching::Gew(
double xt,
double xz,
double mu)
const {
710 double xmuw = mu * mu /
Mw /
Mw;
712 return (Zew(xt, xz) + 5. * C0b(xt) + 6. * C0b(xt) * log(xmuw));
715const double StandardModelMatching::Hew(
double xt,
double xz,
double mu)
const {
716 double xmuw = mu * mu /
Mw /
Mw;
718 return (Zew(xt, xz) - 7. * C0b(xt) + 6. * C0b(xt) * log(xmuw));
726const double StandardModelMatching::X0t(
double x)
const {
727 return ((x / 8.) * ((x + 2.) / (x - 1.) + (3. * x - 6.) / ((x - 1.) * (x - 1.)) * log(x)));
730const double StandardModelMatching::X1t(
double x)
const {
735 double xm3 = (1. - x) * (1. - x) * (1. - x);
736 double logx = log(x);
738 return (-(29. * x - x2 - 4. * x3) / (3. * (1. - x) * (1. - x))
739 - logx * (x + 9. * x2 - x3 - x4) / xm3
740 + logx * logx * (8. * x + 4. * x2 + x3 - x4) / (2. * xm3)
741 - gslpp_special_functions::dilog(1. - x) * (4. * x - x3) / ((1. - x) * (1. - x))
742 - 8. * x * log(Mut * Mut / Muw / Muw) * (8. - 9. * x + x3 + 6. * logx) / (8. * xm3));
745const double StandardModelMatching::Xewt(
double x,
double a,
double mu)
const {
747 double swsq =
SM.sW2_ND();
758 double M_PI2 = M_PI * M_PI;
764 double xm2 = (x - 1.) * (x - 1.);
765 double xm3 = xm2 * (x - 1.);
766 double axm = a * x - 1.;
767 double logx = log(x);
768 double loga = log(a);
770 A[0] = (16. - 48. * a) * M_PI2 + (288. * a - (32. - 88. * a) * M_PI2) * x
771 + (2003. * a + 4. * (4. - 6. * a - a2) * M_PI2) * x2
772 + (9. * a * (93. + 28. * a) - 4. * a * (3. - 2. * a + 8. * a2) * M_PI2) * x3
773 + (3. * a * (172. - 49. * a - 32. * a2) + 4. * a * (20. - a + 16. * a2) * M_PI2) * x4
774 - (3. * a * (168. + 11. * a - 24. * a2) + 4. * a * (45. + 8. * a2) * M_PI2) * x5
775 + 96. * a * M_PI2 * x6;
777 A[1] = -768. * x - (525. - 867. * a) * x2 + (303. + 318. * a) * x3 - 195. * a * x4;
779 A[2] = -8. * (95. - 67. * a + 11. * a2) * x2 + 2. * (662. - 78. * a - 177. * a2 + 40. * a3) * x3
780 - (608. + 476. * a - 595. * a2 + 114. * a3) * x4
781 + (44. + 188. * a - 321. * a2 + 103. * a3 - 8. * a4) * x5
782 - a * (28. - 72. * a + 33. * a2 - 4. * a3) * x6;
784 A[3] = +48. - 10. * (57. + 4. * a) * x + 51. * (29. + 10. * a) * x2 -
785 (841. + 1265. * a) * x3 + (308. + 347. * a) * x4
786 - (28. - 40. * a) * x5 + 12. * a * x6;
788 A[4] = +768. + (816. - 768. * a) * x + (1240. - 1232. * a) * x2
789 - 4. * (415. + 2. * a) * x3 + (311. + 722. * a) * x4
790 + (145. - 267. * a) * x5 - (36. + 51. * a) * x6 + 20. * a * x7;
792 A[5] = +328. * x - (536. + 900. * a) * x2 + (208. + 1584. * a + 670. * a2) * x3
793 - a * (668. + 1161. * a + 225. * a2) * x4
794 + a2 * (479. + 362. * a + 28. * a2) * x5
795 - a3 * (143. + 42. * a) * x6 + 16. * a4 * x7;
797 A[6] = +32. - 4. * (44. - 9. * a) * x + (384. - 322. * a - 400. * a2) * x2
798 - (400. - 869. * a - 1126. * a2 - 696. * a3) * x3
799 + 2. * (80. - 488. * a - 517. * a2 - 631. * a3 - 264. * a4) * x4
800 + (48. + 394. * a + 269. * a2 + 190. * a3 + 882. * a4 + 196. * a5) * x5
801 - (64. - 58. * a - 89. * a2 - 95. * a3 + 34. * a4 + 296. * a5 + 32. * a6) * x6
802 + (16. - 59. * a - 79. * a2 + 256. * a3 - 239. * a4
803 + 57. * a5 + 48. * a6) * x7
804 + (1. - a) * (1. - a) * (1. - a) * a2 * (29. + 16. * a) * x8;
806 A[7] = +28. * a2 * x2 - 32. * a3 * x3;
808 A[8] = -288. + 36. * (1. + 8. * a) * x + 6. * (647. + 87. * a) * x2 + 5. * (55. - 927. * a - 132. * a2) * x3
809 - (1233. + 98. * a - 879. * a2 - 192. * a3) * x4
810 + (360. + 1371. * a - 315. * a2 - 264. * a3) * x5
811 - 24. * a * (17. - 4. * a2) * x6;
813 A[9] = +32. + 4. * (-44. + 29. * a) * x - 12. * (-32. + 77. * a + 31. * a2) * x2
814 + 2. * (-200. + 837. * a + 767. * a2 + 182. * a3) * x3
815 - 2. * (-80. + 625. * a + 905. * a2 + 520. * a3 + 82. * a4) * x4
816 + (48. + 1079. * a + 590. * a2 + 1002. * a3 + 462. * a4 + 32. * a5) * x5
817 + (-64. - 1160. * a - 501. * a2 - 364. * a3 - 486. * a4 - 72. * a5) * x6
818 + (16. + 729. * a + 1038. * a2 + 38. * a3 + 238. * a4 + 52. * a5) * x7
819 - a * (192. + 743. * a + 50. * a3 + 12. * a4) * x8 + 192. * a2 * x8 * x;
821 A[10] = +16. * x + 324. * x2 - 36. * x4;
823 A[11] = +216. * x - 672. * x2 + 152. * x3;
825 A[12] = -16. * x + (16. - 42. * a) * x2 + (16. + 21. * a + 60. * a2) * x3
826 - (16 - 21. * a + 45. * a2 + 32. * a3) * x4 - a2 * (7. - 24. * a) * x5;
828 A[13] = -32. + (144. - 68. * a) * x + (-240. + 334. * a + 332. * a2) * x2
829 + (160. - 551. * a - 660. * a2 - 364. * a3) * x3
830 + a * (329. + 451. * a + 650. * a2 + 164. * a3) * x4
831 + (-48. - a - 59. * a2 - 523. * a3 - 316. * a4 - 32. * a5) * x5
832 + (16. - 43. * a - 93. * a2 + 255. * a3 + 287. * a4 + 32. * a5) * x6
833 - a2 * (-29. + 42. * a + 103. * a2 + 8. * a3) * x7;
835 A[14] = -144. * (1. - a)*(1. - a) * x2 + 144. * (1. - a) * (1. - a) * x3 - 36. * (1. - a) * (1. - a) * x4;
837 A[15] = -32. + 96. * a + (48. - 32. * a) * x - 176. * a * x2 - (16. - 74. * a) * x3 + 212. * a * x4;
839 A[16] = -32. + (64. - 100. * a) * x - 8. * (4. - 34. * a - 29. * a2) * x2
840 - 4. * a * (34. + 170. * a + 33. * a2) * x3
841 + 8. * a2 * (47. + 51. * a + 4. * a2) * x4 - 16. * a3 * (15. + 4. * a) * x5
844 C[0] = 1. / (3. * a * xm2 * x);
846 C[1] = phi1(0.25) / (xm3 * axm);
848 C[2] = phi1(0.25 * a) / (2. * xm3 * axm);
850 C[3] = phi1(1. / 4. / x) / (2. * xm3 * axm);
852 C[4] = phi1(0.25 * x) / (2. * xm3 * axm);
854 C[5] = phi1(a * x * 0.25) / (xm3 * axm);
856 C[6] = phi2(1. / a / x, 1. / a) / (2. * a2 * x2 * xm3 * axm);
858 C[7] = loga * log(a) / axm;
860 C[8] = logx / (xm3 * axm * 3.);
862 C[9] = logx * logx / ((x - 1.) * xm3 * axm * 2. * a * x);
864 C[10] = 2. * log(mu /
Mw) / xm2;
866 C[11] = logx * 2. * log(mu /
Mw) / xm3;
868 C[12] = loga / (xm2 * axm);
870 C[13] = logx * loga / (2. * a * xm3 * x * axm);
872 C[14] = gslpp_special_functions::dilog(1. - a) / xm2;
874 C[15] = gslpp_special_functions::dilog(1. - x) / a / x;
876 C[16] = gslpp_special_functions::dilog(1. - a * x) / (a * x * xm2);
878 for (
int i=0; i<17; i++){
882 return (b / 128. / swsq);
885const double StandardModelMatching::phi1(
double z)
const {
888 return(4. * sqrt(z / (1. - z)) * gslpp_special_functions::clausen(2. * asin(sqrt(z))));
891 return((1. / sqrt(1. - 1. / z)) * (2. * log(0.5 * ( 1. - sqrt(1. - 1. / z) )) * log(0.5 * ( 1. - sqrt(1. - 1. / z) ))- 4. * gslpp_special_functions::dilog(0.5 * ( 1. - sqrt(1. - 1. / z) )) - log(4. * z) * log(4. * z)
892 + M_PI * M_PI / 3.));
895 std::stringstream out;
897 throw std::runtime_error(
"StandardModelMatching::phi1(double z)" + out.str() +
" <0");
902const double StandardModelMatching::phi2(
double x,
double y)
const{
904 double l2 = (1. - x - y) * (1. - x - y) - 4. * x * y;
906 if ( l2 >= 0. and (sqrt(x) + sqrt(y)) <= 1.){
908 return( 1. / l * (M_PI * M_PI/3. + 2. * log(0.5 * (1. + x - y - l)) * log(0.5 * (1. - x + y - l)) - log(x) * log(y) - 2. * gslpp_special_functions::dilog(0.5 * (1. + x - y - l)) - 2. * gslpp_special_functions::dilog(0.5 * (1. -x + y - l))));
910 else if(l2 < 0. and (sqrt(x) + sqrt(y)) > 1.){
911 return(2./sqrt( -l2) * (gslpp_special_functions::clausen(2. * acos((-1. + x + y)/(2. * sqrt(x * y))))
912 +gslpp_special_functions::clausen(2. * acos((1. + x - y) / (2. * sqrt(x))))
913 +gslpp_special_functions::clausen(2. * acos((1. - x + y) / (2. * sqrt(y))))));
916 std::stringstream out;
918 std::cout <<
"Error in StandardModelMatching::phi2(double x, double y): wrong input " << out.str() << std::endl;
919 SM.setSMSuccess(
false);
924const double StandardModelMatching::phi_z(
double z)
const {
925 double beta = sqrt(1. - 1. / z);
926 double clausen = gslpp_special_functions::clausen(2. * asin(sqrt(z)));
927 double dilog = gslpp_special_functions::dilog((1. - beta) / 2.);
931 return (4. * sqrt(z / (1. - z)) * clausen);
933 return (1. / beta * (2. * log((1. - beta) / 2.) * log((1. - beta) / 2.) - 4. * dilog - log(4. * z) * log(4. * z) + M_PI * M_PI / 3.));
936 std::stringstream out;
938 throw std::runtime_error(
"StandardModelMatching::phi_z(double z)" + out.str() +
" <0");
942const double StandardModelMatching::phi_xy(
double x,
double y)
const {
943 double lambda = sqrt((1. - x - y)*(1. - x - y) - 4. * x * y);
944 double diloga = gslpp_special_functions::dilog((1. + x - y - lambda) / 2.);
945 double dilogb = gslpp_special_functions::dilog((1. - x + y - lambda) / 2.);
946 double clausenxy = gslpp_special_functions::clausen(2. * acos((-1. + x + y) / 2. / sqrt(x * y)));
947 double clausenx = gslpp_special_functions::clausen(2. * acos((1. + x - y) / 2. / sqrt(x)));
948 double clauseny = gslpp_special_functions::clausen(2. * acos((1. - x + y) / 2. / sqrt(y)));
950 if ((lambda * lambda) >= 0.) {
951 return (lambda * (2. * log((1. + x - y - lambda) / 2.) * log((1. - x + y - lambda) / 2.) - log(x) * log(y) -
952 2. * diloga - 2. * dilogb + M_PI * M_PI / 3.));
953 }
else if ((lambda * lambda) < 0.) {
954 return (-2. * sqrt(-lambda * lambda)*(clausenxy + clausenx + clauseny));
956 std::stringstream out;
958 throw std::runtime_error(
"StandardModelMatching::phi_xy(double x, double y) wrong" + out.str());
967 double gammam = 6. * CF;
971 double xt = x_t(Mut);
972 gslpp::complex co = GF / 4. / M_PI *
Mw *
SM.getCKM().computelamt_d();
976 switch (mcdbd2.getScheme()) {
983 std::stringstream out;
984 out << mcdbd2.getScheme();
985 throw std::runtime_error(
"StandardModelMatching::CMdb2(): scheme " + out.str() +
"not implemented");
990 switch (mcdbd2.getOrder()) {
993 mcdbd2.setCoeff(0, co * co * 4. * (
SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
994 (Bt + gamma0 * log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) * log(Mut /
Mw))),
NLO);
996 std::cout <<
"Mw = " <<
Mw <<
" mt(mut=" << Mut <<
")= " << Mt_mut <<
" xt(mut=" << Mut <<
")= " << xt <<
"matching of DB=2: S0(xt) = " << S0(xt) <<
997 ", S1(xt) = " << S1(xt) +
998 (Bt + gamma0 * log(Muw /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) * log(Muw /
Mw)
999 <<
", lambdat_d^2 = " <<
SM.getCKM().computelamt_d() *
SM.getCKM().computelamt_d()
1003 mcdbd2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1006 std::stringstream out;
1007 out << mcdbd2.getOrder();
1008 throw std::runtime_error(
"StandardModelMatching::CMdbd2(): order " + out.str() +
"not implemented");
1012 vmcdb.push_back(mcdbd2);
1017 double gammam = 6. * CF;
1019 double xt = x_t(Mut);
1020 gslpp::complex co = GF / 4. / M_PI *
Mw *
SM.getCKM().computelamt_s();
1024 switch (mcdbs2.getScheme()) {
1031 std::stringstream out;
1032 out << mcdbs2.getScheme();
1033 throw std::runtime_error(
"StandardModelMatching::CMdbs2(): scheme " + out.str() +
"not implemented");
1038 switch (mcdbs2.getOrder()) {
1041 mcdbs2.setCoeff(0, co * co * 4. * (
SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
1042 (Bt + gamma0 * log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) * log(Mut /
Mw))),
NLO);
1044 mcdbs2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1047 std::stringstream out;
1048 out << mcdbs2.getOrder();
1049 throw std::runtime_error(
"StandardModelMatching::CMdbs2(): order " + out.str() +
"not implemented");
1052 vmcds.push_back(mcdbs2);
1062std::vector<WilsonCoefficient>& StandardModelMatching::CMdk2() {
1067 switch (mcdk2.getOrder()) {
1070 mcdk2.setCoeff(0, 0.,
NLO);
1072 mcdk2.setCoeff(0, 0.,
LO);
1075 std::stringstream out;
1076 out << mcdk2.getOrder();
1077 throw std::runtime_error(
"StandardModelMatching::CMdk2(): order " + out.str() +
"not implemented");
1080 vmck2.push_back(mcdk2);
1087 switch (mcd1Buras.getScheme()) {
1093 std::stringstream out;
1094 out << mcd1Buras.getScheme();
1095 throw std::runtime_error(
"StandardModelMatching::CMd1Buras(): scheme " + out.str() +
"not implemented");
1098 mcd1Buras.setMu(Muw);
1100 switch (mcd1Buras.getOrder()) {
1103 mcd1Buras.setCoeff(0,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * 11. / 2.,
NLO);
1104 mcd1Buras.setCoeff(1,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * (-11. / 6.),
NLO);
1105 for (
int j = 2; j < 10; j++) {
1106 mcd1Buras.setCoeff(j, 0.,
NLO);
1109 mcd1Buras.setCoeff(0, 0.,
LO);
1110 mcd1Buras.setCoeff(1, 1.,
LO);
1111 for (
int j = 2; j < 10; j++) {
1112 mcd1Buras.setCoeff(j, 0.,
LO);
1116 std::stringstream out;
1117 out << mcd1Buras.getOrder();
1118 throw std::runtime_error(
"StandardModelMatching::CMd1Buras(): order " + out.str() +
"not implemented");
1121 vmcd1Buras.push_back(mcd1Buras);
1123 return (vmcd1Buras);
1130 switch (mcd1.getScheme()) {
1136 std::stringstream out;
1137 out << mcd1.getScheme();
1138 throw std::runtime_error(
"StandardModelMatching::CMd1(): scheme " + out.str() +
"not implemented");
1143 switch (mcd1.getOrder()) {
1146 mcd1.setCoeff(0,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * 15.,
NLO);
1147 for (
int j = 1; j < 10; j++) {
1148 mcd1.setCoeff(j, 0.,
NLO);
1151 mcd1.setCoeff(0, 0.,
LO);
1152 mcd1.setCoeff(1, 1.,
LO);
1153 for (
int j = 2; j < 10; j++) {
1154 mcd1.setCoeff(j, 0.,
LO);
1158 std::stringstream out;
1159 out << mcd1.getOrder();
1160 throw std::runtime_error(
"StandardModelMatching::CMd1(): order " + out.str() +
"not implemented");
1163 vmcd1.push_back(mcd1);
1172 switch (mcdd2.getScheme()) {
1178 std::stringstream out;
1179 out << mcdd2.getScheme();
1180 throw std::runtime_error(
"StandardModelMatching::CMdd2(): scheme " + out.str() +
"not implemented");
1185 switch (mcdd2.getOrder()) {
1188 for (
int i = 0; i < 5; i++)
1189 mcdd2.setCoeff(i, 0.,
NLO);
1191 for (
int j = 0; j < 5; j++)
1192 mcdd2.setCoeff(j, 0.,
LO);
1195 std::stringstream out;
1196 out << mcdd2.getOrder();
1197 throw std::runtime_error(
"StandardModelMatching::CMdd2(): order " + out.str() +
"not implemented");
1200 vmcd2.push_back(mcdd2);
1204std::vector<WilsonCoefficient>& StandardModelMatching::CMK() {
1206 double xt = x_t(Muw);
1210 switch (mck.getScheme()) {
1216 std::stringstream out;
1217 out << mck.getScheme();
1218 throw "StandardModel::CMK(): scheme " + out.str() +
"not implemented";
1223 switch (mck.getOrder()) {
1226 for (
int j = 0; j < 10; j++) {
1227 mck.setCoeff(j,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * setWCbnlep(j, xt,
NLO),
NLO);
1228 mck.setCoeff(j, Ale / 4. / M_PI * setWCbnlepEW(j, xt),
NLO_QED11);
1231 for (
int j = 0; j < 10; j++) {
1232 mck.setCoeff(j, setWCbnlep(j, xt,
LO),
LO);
1233 mck.setCoeff(j, 0.,
LO_QED);
1237 std::stringstream out;
1238 out << mck.getOrder();
1239 throw "StandardModelMatching::CMK(): order " + out.str() +
"not implemented";
1242 vmck.push_back(mck);
1250std::vector<WilsonCoefficient>& StandardModelMatching::CMKCC() {
1252 double xt = x_t(Muw);
1256 switch (mckcc.getScheme()) {
1262 std::stringstream out;
1263 out << mckcc.getScheme();
1264 throw "StandardModelMatching::CMKCC(): scheme " + out.str() +
"not implemented";
1269 switch (mckcc.getOrder()) {
1272 for (
int j = 0; j < 2; j++) {
1273 mckcc.setCoeff(j,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * setWCbnlep(j, xt,
NLO),
NLO);
1274 mckcc.setCoeff(j, Ale / 4. / M_PI * setWCbnlepEW(j, xt),
NLO_QED11);
1276 for (
int j = 2; j < 10; j++) {
1277 mckcc.setCoeff(j, 0.,
NLO);
1281 for (
int j = 0; j < 2; j++) {
1282 mckcc.setCoeff(j, setWCbnlep(j, xt,
LO),
LO);
1283 mckcc.setCoeff(j, 0.,
LO_QED);
1285 for (
int j = 2; j < 10; j++) {
1286 mckcc.setCoeff(j, 0.,
LO);
1287 mckcc.setCoeff(j, 0.,
LO_QED);
1291 std::stringstream out;
1292 out << mckcc.getOrder();
1293 throw "StandardModelMatching::CMKCC(): order " + out.str() +
"not implemented";
1296 vmckcc.push_back(mckcc);
1307 double xt = x_t(Muw);
1311 switch (mcbsg.getScheme()) {
1317 std::stringstream out;
1318 out << mcbsg.getScheme();
1319 throw std::runtime_error(
"StandardModelMatching::CMbsg(): scheme " + out.str() +
"not implemented");
1323 double alSo4pi =
SM.Alstilde5(Muw);
1325 switch (mcbsg.getOrder()) {
1327 for (
int j = 0; j < 8; j++) {
1328 mcbsg.setCoeff(j, alSo4pi * alSo4pi * setWCbsg(j, xt,
NNLO),
NNLO);
1331 for (
int j = 0; j < 8; j++) {
1332 mcbsg.setCoeff(j, alSo4pi * setWCbsg(j, xt,
NLO),
NLO);
1335 for (
int j = 0; j < 8; j++) {
1336 mcbsg.setCoeff(j, setWCbsg(j, xt,
LO),
LO);
1340 std::stringstream out;
1341 out << mcbsg.getOrder();
1342 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
1345 vmcbsg.push_back(mcbsg);
1350 vmcprimebsg.clear();
1352 switch (mcprimebsg.getScheme()) {
1358 std::stringstream out;
1359 out << mcprimebsg.getScheme();
1360 throw std::runtime_error(
"StandardModelMatching::CMprimebsg(): scheme " + out.str() +
"not implemented");
1363 mcprimebsg.setMu(Muw);
1365 switch (mcprimebsg.getOrder()) {
1367 for (
int j = 0; j < 8; j++) {
1368 mcprimebsg.setCoeff(j, 0.,
NNLO);
1371 for (
int j = 0; j < 8; j++) {
1372 mcprimebsg.setCoeff(j, 0.,
NLO);
1375 for (
int j = 0; j < 8; j++) {
1376 mcprimebsg.setCoeff(j, 0.,
LO);
1380 std::stringstream out;
1381 out << mcprimebsg.getOrder();
1382 throw std::runtime_error(
"StandardModelMatching::CMprimebsg(): order " + out.str() +
"not implemented");
1385 vmcprimebsg.push_back(mcprimebsg);
1386 return (vmcprimebsg);
1393double StandardModelMatching::setWCbsg(
int i,
double x,
orders order) {
1396 if (swf == sw && xcachef == x) {
1399 return ( CWbsgArrayNNLO[i]);
1402 return ( CWbsgArrayNLO[i]);
1405 return ( CWbsgArrayLO[i]);
1408 std::stringstream out;
1410 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1420 CWbsgArrayNNLO[0] = -Tt(x) + 7987. / 72. + 17. / 3. * M_PI * M_PI + 475. / 6. * L + 17. * L*L;
1421 CWbsgArrayNNLO[1] = 127. / 18. + 4. / 3. * M_PI * M_PI + 46. / 3. * L + 4. * L*L;
1422 CWbsgArrayNNLO[2] = G1t(x, Muw) - 680. / 243. - 20. / 81. * M_PI * M_PI - 68. / 81. * L - 20. / 27 * L*L;
1423 CWbsgArrayNNLO[3] = E1t(x, Muw) + 950. / 243. + 10. / 81. * M_PI * M_PI + 124. / 27. * L + 10. / 27. * L*L;
1424 CWbsgArrayNNLO[4] = -0.1 * G1t(x, Muw) + 2. / 15. * E0t(x) + 68. / 243. + 2. / 81. * M_PI * M_PI + 14. / 81. * L + 2. / 27. * L*L;
1425 CWbsgArrayNNLO[5] = -3. / 16. * G1t(x, Muw) + 0.25 * E0t(x) + 85. / 162. + 5. / 108. * M_PI * M_PI + 35. / 108. * L + 5. / 36 * L*L;
1427 CWbsgArrayNNLO[6] = (C7t_3L_at_mt(x) + C7t_3L_func(x, Muw)-(C7c_3L_at_mW(x) + 13763. / 2187. * L + 814. / 729. * L * L)) - 1. / 3. * CWbsgArrayNNLO[2] - 4. / 9. * CWbsgArrayNNLO[3] - 20. / 3. * CWbsgArrayNNLO[4] - 80. / 9. * CWbsgArrayNNLO[5];
1428 CWbsgArrayNNLO[7] = (C8t_3L_at_mt(x) + C8t_3L_func(x, Muw)-(C8c_3L_at_mW(x) + 16607. / 5832. * L + 397. / 486. * L * L)) + CWbsgArrayNNLO[2] - 1. / 6. * CWbsgArrayNNLO[3] - 20. * CWbsgArrayNNLO[4] - 10. / 3. * CWbsgArrayNNLO[5];
1430 CWbsgArrayNLO[0] = 15. + 6 * L;
1431 CWbsgArrayNLO[3] = E0t(x) - 7. / 9. + 2. / 3. * L;
1432 CWbsgArrayNLO[6] = -0.5 * A1t(x, Muw) + 713. / 243. + 4. / 81. * L - 4. / 9. * CWbsgArrayNLO[3];
1433 CWbsgArrayNLO[7] = -0.5 * F1t(x, Muw) + 91. / 324. - 4. / 27. * L - 1. / 6. * CWbsgArrayNLO[3];
1435 CWbsgArrayLO[1] = 1.;
1436 CWbsgArrayLO[6] = -0.5 * A0t(x) - 23. / 36.;
1437 CWbsgArrayLO[7] = -0.5 * F0t(x) - 1. / 3.;
1440 std::stringstream out;
1442 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1447 return ( CWbsgArrayNNLO[i]);
1450 return ( CWbsgArrayNLO[i]);
1453 return ( CWbsgArrayLO[i]);
1456 std::stringstream out;
1458 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1470 double xt = x_t(Muw);
1474 switch (mcBMll.getScheme()) {
1480 std::stringstream out;
1481 out << mcBMll.getScheme();
1482 throw std::runtime_error(
"StandardModelMatching::CMBMll(): scheme " + out.str() +
"not implemented");
1487 switch (mcBMll.getOrder()) {
1490 for (
int j = 0; j < 13; j++) {
1491 mcBMll.setCoeff(j,
SM.Als(Muw,
FULLNNLO) / 4. / M_PI * setWCBMll(j, xt,
NLO),
NLO);
1494 for (
int j = 0; j < 13; j++) {
1495 mcBMll.setCoeff(j, setWCBMll(j, xt,
LO),
LO);
1499 std::stringstream out;
1500 out << mcBMll.getOrder();
1501 throw std::runtime_error(
"StandardModelMatching::CMBMll(): order " + out.str() +
"not implemented");
1504 vmcBMll.push_back(mcBMll);
1512double StandardModelMatching::setWCBMll(
int i,
double x,
orders order) {
1515 if (swa == sw && xcachea == x) {
1519 return ( CWBMllArrayNLO[i]);
1522 return ( CWBMllArrayLO[i]);
1525 std::stringstream out;
1527 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1537 CWBMllArrayNLO[0] = 15. + 6 * L;
1538 CWBMllArrayNLO[3] = E0t(x) - (7. / 9.) + (2. / 3. * L);
1539 CWBMllArrayNLO[6] = -0.5 * A1t(x, Muw) + 713. / 243. + 4. / 81. * L - 4. / 9. * CWBMllArrayNLO[3];
1540 CWBMllArrayNLO[7] = -0.5 * F1t(x, Muw) + 91. / 324. - 4. / 27. * L - 1. / 6. * CWBMllArrayNLO[3];
1541 CWBMllArrayNLO[8] = (1 - 4. * sW2) / (sW2) * C1t(x, Muw) - 1. / (sW2) * B1t(x, Muw) - D1t(x, Muw) + 1. / sW2 + 524. / 729. -
1542 128. * M_PI * M_PI / 243. - 16. * L / 3. - 128. * L * L / 81.;
1543 CWBMllArrayNLO[9] = (B1t(x, Muw) - C1t(x, Muw)) / sW2 - 1. / sW2;
1545 CWBMllArrayLO[1] = 1.;
1546 CWBMllArrayLO[6] = -0.5 * A0t(x) - 23. / 36.;
1547 CWBMllArrayLO[7] = -0.5 * F0t(x) - 1. / 3.;
1548 CWBMllArrayLO[8] = (1 - 4. * sW2) / (sW2) * C0t(x) - 1. / (sW2) * B0t(x) - D0t(x) + 38. / 27. + 1. / (4. * sW2) - (4. / 9.) * L + 8. / 9. * log(
SM.getMuw() / mu_b);
1549 CWBMllArrayLO[9] = 1. / (sW2) * (B0t(x) - C0t(x)) - 1. / (4. * sW2);
1552 std::stringstream out;
1554 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1560 return ( CWBMllArrayNLO[i]);
1563 return ( CWBMllArrayLO[i]);
1566 std::stringstream out;
1568 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1580 vmcprimeBMll.clear();
1581 mcprimeBMll.setMu(Muw);
1582 switch (mcprimeBMll.getOrder()) {
1585 for (
int j = 0; j < 13; j++) {
1586 mcprimeBMll.setCoeff(j, 0.,
NLO);
1589 for (
int j = 0; j < 13; j++) {
1590 mcprimeBMll.setCoeff(j, 0.,
LO);
1594 std::stringstream out;
1595 out << mcprimeBMll.getOrder();
1596 throw std::runtime_error(
"StandardModelMatching::CMprimeBMll(): order " + out.str() +
"not implemented");
1598 vmcprimeBMll.push_back(mcprimeBMll);
1599 return (vmcprimeBMll);
1612std::vector<WilsonCoefficient>& StandardModelMatching::CMbsmm() {
1616 double xt = x_t(Muw);
1622 switch (mcbsmm.getScheme()) {
1628 std::stringstream out;
1629 out << mcbsmm.getScheme();
1630 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): scheme " + out.str() +
"not implemented");
1635 switch (mcbsmm.getOrder()) {
1638 for (
int j = 0; j < 8; j++) {
1640 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) *
1646 for (
int j = 0; j < 8; j++) {
1648 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) *
1649 setWCBsmm(j, xt,
NLO),
NLO);
1653 for (
int j = 0; j < 8; j++) {
1655 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * setWCBsmm(j, xt,
LO),
LO);
1659 std::stringstream out;
1660 out << mcbsmm.getOrder();
1661 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order " + out.str() +
"not implemented");
1664 switch (mcbsmm.getOrder_qed()) {
1667 for (
int j = 0; j < 8; j++) {
1669 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * setWCBsmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1673 for (
int j = 0; j < 8; j++) {
1675 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * 0.,
NLO_QED12);
1679 for (
int j = 0; j < 8; j++) {
1681 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * setWCBsmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1684 for (
int j = 0; j < 8; j++) {
1686 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * 0.,
NLO_QED02);
1689 for (
int j = 0; j < 8; j++) {
1691 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * setWCBsmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1695 for (
int j = 0; j < 8; j++) {
1697 mcbsmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 1)) * 0.,
LO_QED);
1701 std::stringstream out;
1702 out << mcbsmm.getOrder_qed();
1703 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order_qed " + out.str() +
"not implemented");
1705 vmcbsmm.push_back(mcbsmm);
1717std::vector<WilsonCoefficient>& StandardModelMatching::CMbdmm() {
1721 double xt = x_t(Muw);
1727 switch (mcbdmm.getScheme()) {
1733 std::stringstream out;
1734 out << mcbdmm.getScheme();
1735 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): scheme " + out.str() +
"not implemented");
1740 switch (mcbdmm.getOrder()) {
1743 for (
int j = 0; j < 8; j++) {
1745 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) *
1750 for (
int j = 0; j < 8; j++) {
1752 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) *
1753 setWCBdmm(j, xt,
NLO),
NLO);
1757 for (
int j = 0; j < 8; j++) {
1759 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * setWCBdmm(j, xt,
LO),
LO);
1763 std::stringstream out;
1764 out << mcbdmm.getOrder();
1765 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order " + out.str() +
"not implemented");
1768 switch (mcbdmm.getOrder_qed()) {
1771 for (
int j = 0; j < 8; j++) {
1773 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * setWCBdmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1777 for (
int j = 0; j < 8; j++) {
1779 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * 0.,
NLO_QED12);
1783 for (
int j = 0; j < 8; j++) {
1785 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * setWCBdmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1788 for (
int j = 0; j < 8; j++) {
1790 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * 0.,
NLO_QED02);
1793 for (
int j = 0; j < 8; j++) {
1795 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * setWCBdmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1799 for (
int j = 0; j < 8; j++) {
1801 mcbdmm.setCoeff(j, (Vckm(2, 2).conjugate() * Vckm(2, 0)) * 0.,
LO_QED);
1805 std::stringstream out;
1806 out << mcbdmm.getOrder_qed();
1807 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order_qed " + out.str() +
"not implemented");
1809 vmcbdmm.push_back(mcbdmm);
1817std::vector<WilsonCoefficient>& StandardModelMatching::CMdiujleptonknu(
int i,
int j,
int k) {
1819 vmculeptonnu.clear();
1821 mculeptonnu.setMu(Muw);
1823 switch (mculeptonnu.getOrder()) {
1827 mculeptonnu.setCoeff(0, 4. * GF * Vckm(j, i) / sqrt(2.),
LO);
1830 std::stringstream out;
1831 out << mculeptonnu.getOrder();
1832 throw std::runtime_error(
"StandardModelMatching::CMuleptonnu(): order " + out.str() +
"not implemented");
1835 vmculeptonnu.push_back(mculeptonnu);
1836 return (vmculeptonnu);
1851 gslpp::complex lambda;
1854 case 0: lambda =
SM.getCKM().computelamt_d();
1856 case 1: lambda =
SM.getCKM().computelamt_s();
1859 std::stringstream out;
1861 throw std::runtime_error(
"case" + out.str() +
"not implemented; implemented i=0,1,2,3");
1864 double xt = x_t(Muw);
1865 double co = (GF / sqrt(2));
1869 switch (mcbnlep.getScheme()) {
1875 std::stringstream out;
1876 out << mcbnlep.getScheme();
1877 throw std::runtime_error(
"StandardModelMatching::CMbnlep(): scheme " + out.str() +
"not implemented");
1882 switch (mcbnlep.getOrder()) {
1885 for (
int j = 0; j < 10; j++) {
1886 mcbnlep.setCoeff(j, co * lambda *
SM.Als(Muw,
FULLNLO) / 4. / M_PI *
1887 setWCbnlep(j, xt,
NLO),
NLO);
1888 mcbnlep.setCoeff(j, co * lambda * Ale / 4. / M_PI *
1892 for (
int j = 0; j < 10; j++) {
1893 mcbnlep.setCoeff(j, co * lambda * setWCbnlep(j, xt,
LO),
LO);
1894 mcbnlep.setCoeff(j, 0.,
LO_QED);
1898 std::stringstream out;
1899 out << mcbnlep.getOrder();
1900 throw std::runtime_error(
"StandardModelMatching::CMbnlep(): order " + out.str() +
"not implemented");
1903 vmcbnlep.push_back(mcbnlep);
1918 case 0:
lambda1 =
SM.getCKM().computelamu_d();
1920 case 1:
lambda1 =
SM.getCKM().computelamu_s();
1922 case 2:
lambda1 = Vckm(0, 2).conjugate() * Vckm(1, 0);
1924 case 3:
lambda1 = Vckm(1, 2).conjugate() * Vckm(0, 0);
1926 case 4:
lambda1 = Vckm(0, 2).conjugate() * Vckm(1, 1);
1928 case 5:
lambda1 = Vckm(1, 2).conjugate() * Vckm(2, 1);
1931 std::stringstream out;
1933 throw std::runtime_error(
"case" + out.str() +
" not existing; implemented i=0,1,2,3");
1936 double xt = x_t(Muw);
1937 double co = (GF / sqrt(2));
1941 switch (mcbnlepCC.getScheme()) {
1947 std::stringstream out;
1948 out << mcbnlepCC.getScheme();
1949 throw std::runtime_error(
"StandardModelMatching::CMbnlepCC(): scheme " + out.str() +
"not implemented");
1952 mcbnlepCC.setMu(Muw);
1954 switch (mcbnlepCC.getOrder()) {
1957 for (
int j = 0; j < 2; j++) {
1958 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
NLO),
NLO);
1960 for (
int j = 2; j < 10; j++) {
1961 mcbnlepCC.setCoeff(j, 0.,
NLO);
1964 for (
int j = 0; j < 2; j++) {
1965 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
LO),
LO);
1967 for (
int j = 2; j < 10; j++) {
1968 mcbnlepCC.setCoeff(j, 0.,
LO);
1972 std::stringstream out;
1973 out << mcbnlepCC.getOrder();
1974 throw std::runtime_error(
"StandardModelMatching::CMbnlepCC(): order " + out.str() +
"not implemented");
1977 vmcbnlepCC.push_back(mcbnlepCC);
1978 return (vmcbnlepCC);
1981std::vector<WilsonCoefficient>& StandardModelMatching::CMkpnn() {
1983 double co = 4. * GF / sqrt(2.) *
SM.alphaMz() / 2. / M_PI /
SM.sW2_ND() ;
1990 switch (mckpnn.getOrder()) {
1993 mckpnn.setCoeff(0, co * lam_t *
SM.Als(Mut,
FULLNLO) / 4. / M_PI * X1t(xt),
NLO);
1995 mckpnn.setCoeff(0, co * lam_t * X0t(xt),
LO);
1998 std::stringstream out;
1999 out << mckpnn.getOrder();
2000 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): order " + out.str() +
" not implemented");
2003 switch (mckpnn.getOrder_qed()) {
2005 mckpnn.setCoeff(0, co * lam_t *
SM.Ale(Mut,
FULLNLO) / 4. / M_PI * Xewt(xt,
SM.getMHl() *
SM.getMHl() / getMt_mut() / getMt_mut(), Mut),
NLO_QED11);
2007 mckpnn.setCoeff(0, 0. ,
LO_QED);
2010 std::stringstream out;
2011 out << mckpnn.getOrder_qed();
2012 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): qed order " + out.str() +
" not implemented");
2015 vmckpnn.push_back(mckpnn);
2020std::vector<WilsonCoefficient>& StandardModelMatching::CMkmm() {
2024 double xt = x_t(Muw);
2030 switch (mckmm.getOrder()) {
2033 mckmm.setCoeff(0,
SM.Als(Muw,
FULLNLO) / 4. / M_PI * lam_t.real() * Y1(xt, Muw) /
SM.getCKM().getLambda(),
NLO);
2035 mckmm.setCoeff(0, lam_t.real() * Y0(xt) /
SM.getCKM().getLambda(),
LO);
2038 std::stringstream out;
2039 out << mckmm.getOrder();
2040 throw std::runtime_error(
"StandardModelMatching::CMkmm(): order " + out.str() +
"not implemented");
2043 vmckmm.push_back(mckmm);
2057 switch (mcbsnn.getOrder()) {
2060 mcbsnn.setCoeff(0, -1/sw2 *
SM.Als(Mut,
FULLNLO) / 4. / M_PI * X1t(xt),
NLO);
2061 mcbsnn.setCoeff(1, 0.,
NLO);
2063 mcbsnn.setCoeff(0, -1/sw2 * X0t(xt),
LO);
2064 mcbsnn.setCoeff(1, 0.,
LO);
2067 std::stringstream out;
2068 out << mcbsnn.getOrder();
2069 throw std::runtime_error(
"StandardModelMatching::CMXsnn(): order " + out.str() +
"not implemented");
2072 switch (mcbsnn.getOrder_qed()) {
2074 mcbsnn.setCoeff(0, -1/sw2 *
SM.Ale(Mut,
FULLNLO) / 4. / M_PI * Xewt(xt,
SM.getMHl() *
SM.getMHl() / getMt_mut() / getMt_mut(), Mut),
NLO_QED11);
2077 mcbsnn.setCoeff(0, 0.,
LO_QED);
2078 mcbsnn.setCoeff(1, 0.,
LO_QED);
2081 std::stringstream out;
2082 out << mcbsnn.getOrder_qed();
2083 throw std::runtime_error(
"StandardModelMatching::CMXsnn(): qed order " + out.str() +
" not implemented");
2086 vmcbsnn.push_back(mcbsnn);
2091std::vector<WilsonCoefficient>& StandardModelMatching::CMBXdnn() {
2100 switch (mcbdnn.getOrder()) {
2103 mcbdnn.setCoeff(0, -1/sw2 *
SM.Als(Mut,
FULLNLO) / 4. / M_PI * X1t(xt),
NLO);
2105 mcbdnn.setCoeff(0, -1/sw2 * X0t(xt),
LO);
2108 std::stringstream out;
2109 out << mcbdnn.getOrder();
2110 throw std::runtime_error(
"StandardModelMatching::CXdnn(): order " + out.str() +
"not implemented");
2113 switch (mcbdnn.getOrder_qed()) {
2115 mcbdnn.setCoeff(0, -1/sw2 *
SM.Ale(Mut,
FULLNLO) / 4. / M_PI * Xewt(xt,
SM.getMHl() *
SM.getMHl() / getMt_mut() / getMt_mut(), Mut),
NLO_QED11);
2117 mcbdnn.setCoeff(0, 0.,
LO_QED);
2120 std::stringstream out;
2121 out << mcbdnn.getOrder_qed();
2122 throw std::runtime_error(
"StandardModelMatching::CXdnn(): qed order " + out.str() +
" not implemented");
2125 vmcbdnn.push_back(mcbdnn);
2133double StandardModelMatching::setWCBsmm(
int i,
double x,
orders order) {
2135 sw2 = (M_PI * Ale) / (sqrt(2.) * GF *
Mw *
Mw);
2137 if (sw2d == sw2 && xcached == x) {
2140 return (CWBsmmArrayNNLOqcd[i]);
2143 return (CWBsmmArrayNLOqcd[i]);
2146 return (CWBsmmArrayLOqcd[i]);
2149 std::stringstream out;
2151 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2160 CWBsmmArrayNNLOqcd[0] = sw2 * (-Tt(x) + 7987. / 72. + 17. * M_PI * M_PI / 3. + 475. * L / 6. + 17. * L * L);
2161 CWBsmmArrayNNLOqcd[1] = sw2 * (127. / 18. + 4. * M_PI * M_PI / 3. + 46. * L / 3. + 4. * L * L);
2162 CWBsmmArrayNNLOqcd[2] = sw2 * (G1t(x, Muw) - 680. / 243. - 20. * M_PI * M_PI / 81. - 68. * L / 81. - 20. * L * L / 27.);
2163 CWBsmmArrayNNLOqcd[3] = sw2 * (E1t(x, Muw) + 950. / 243. + 10. * M_PI * M_PI / 81. + 124. * L / 27. + 10. * L * L / 27.);
2164 CWBsmmArrayNNLOqcd[4] = sw2 * (-G1t(x, Muw) / 10. + 2. * E0t(x) / 15. + 68. / 243. + 2. * M_PI * M_PI / 81. + 14. * L / 81. + 2. * L * L / 27.);
2165 CWBsmmArrayNNLOqcd[5] = sw2 * (-3. * G1t(x, Muw) / 16. + E0t(x) / 4. + 85. / 162. + 5. * M_PI * M_PI / 108. + 35. * L / 108. + 5. * L * L / 36.);
2168 CWBsmmArrayNLOqcd[0] = sw2 * (15. + 6. * L);
2169 CWBsmmArrayNLOqcd[3] = sw2 * (Eet(x) - 2. / 3. + 2. * L / 3.);
2172 CWBsmmArrayLOqcd[1] = sw2 * 1.;
2176 std::stringstream out;
2178 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2182 return (CWBsmmArrayNNLOqcd[i]);
2186 return (CWBsmmArrayNLOqcd[i]);
2190 return (CWBsmmArrayLOqcd[i]);
2194 std::stringstream out;
2196 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2200double StandardModelMatching::setWCBsmmEW(
int i,
double x,
orders_qed order_qed) {
2201 sw2 = (M_PI * Ale) / (sqrt(2.) * GF *
Mw *
Mw);
2203 double mt =
SM.Mrun(Muw,
SM.getQuarks(
QCD::TOP).getMass_scale(),
2206 if (sw2e == sw2 && xcachee == x) {
2207 switch (order_qed) {
2209 return (CWBsmmArrayNLOewt4[i]);
2212 return (CWBsmmArrayNLOewt2[i]);
2215 return (CWBsmmArrayNLOew[i]);
2218 std::stringstream out;
2220 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2232 switch (order_qed) {
2236 CWBsmmArrayNLOewt4[7] = sw2 * (1. / (sw2)) * Rest(x, Muw);
2248 CWBsmmArrayNLOewt2[6] = sw2 * ((1. - 4. * sw2) * C1t(x, Muw) / (sw2) - B1t(x, Muw) / (sw2)
2249 - D1t(x, Muw) + 1. / (sw2) + 524. / 729. - 128. * M_PI * M_PI / 243.
2250 - 16. * L / 3. - 128. * L * L / 81.);
2251 CWBsmmArrayNLOewt2[7] = sw2 * ((1. / (sw2)) * (B1t(x, Muw) - C1t(x, Muw)) - 1. / (sw2));
2257 CWBsmmArrayNLOew[6] = sw2 * (Y0(x) / (sw2) + Wt(x) + 4. / 9. - 4. * 2 * log(Muw / mt) / 9.);
2258 CWBsmmArrayNLOew[7] = sw2 * (-Y0(x) / (sw2));
2262 std::stringstream out;
2264 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2267 switch (order_qed) {
2269 return (CWBsmmArrayNLOewt4[i]);
2272 return (CWBsmmArrayNLOewt2[i]);
2275 return (CWBsmmArrayNLOew[i]);
2278 std::stringstream out;
2280 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2287double StandardModelMatching::setWCBdmm(
int i,
double x,
orders order) {
2289 sw2 = (M_PI * Ale) / (sqrt(2.) * GF *
Mw *
Mw);
2291 if (sw2b == sw2 && xcacheb == x) {
2294 return (CWBdmmArrayNNLOqcd[i]);
2297 return (CWBdmmArrayNLOqcd[i]);
2300 return (CWBdmmArrayLOqcd[i]);
2303 std::stringstream out;
2305 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2314 CWBdmmArrayNNLOqcd[0] = sw2 * (-Tt(x) + 7987. / 72. + 17. * M_PI * M_PI / 3. + 475. * L / 6. + 17. * L * L);
2315 CWBdmmArrayNNLOqcd[1] = sw2 * (127. / 18. + 4. * M_PI * M_PI / 3. + 46. * L / 3. + 4. * L * L);
2316 CWBdmmArrayNNLOqcd[2] = sw2 * (G1t(x, Muw) - 680. / 243. - 20. * M_PI * M_PI / 81. - 68. * L / 81. - 20. * L * L / 27.);
2317 CWBdmmArrayNNLOqcd[3] = sw2 * (E1t(x, Muw) + 950. / 243. + 10. * M_PI * M_PI / 81. + 124. * L / 27. + 10. * L * L / 27.);
2318 CWBdmmArrayNNLOqcd[4] = sw2 * (-G1t(x, Muw) / 10. + 2. * E0t(x) / 15. + 68. / 243. + 2. * M_PI * M_PI / 81. + 14. * L / 81. + 2. * L * L / 27.);
2319 CWBdmmArrayNNLOqcd[5] = sw2 * (-3. * G1t(x, Muw) / 16. + E0t(x) / 4. + 85. / 162. + 5. * M_PI * M_PI / 108. + 35. * L / 108. + 5. * L * L / 36.);
2322 CWBdmmArrayNLOqcd[0] = sw2 * (15. + 6. * L);
2323 CWBdmmArrayNLOqcd[3] = sw2 * (Eet(x) - 2. / 3. + 2. * L / 3.);
2326 CWBdmmArrayLOqcd[1] = sw2 * 1.;
2330 std::stringstream out;
2332 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2336 return (CWBdmmArrayNNLOqcd[i]);
2340 return (CWBdmmArrayNLOqcd[i]);
2344 return (CWBdmmArrayLOqcd[i]);
2348 std::stringstream out;
2350 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2354double StandardModelMatching::setWCBdmmEW(
int i,
double x,
orders_qed order_qed) {
2355 sw2 = (M_PI * Ale) / (sqrt(2.) * GF *
Mw *
Mw);
2357 double mt =
SM.Mrun(Muw,
SM.getQuarks(
QCD::TOP).getMass_scale(),
2360 if (sw2c == sw2 && xcachec == x) {
2361 switch (order_qed) {
2363 return (CWBdmmArrayNLOewt4[i]);
2366 return (CWBdmmArrayNLOewt2[i]);
2369 return (CWBdmmArrayNLOew[i]);
2372 std::stringstream out;
2374 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2383 switch (order_qed) {
2385 CWBdmmArrayNLOewt4[7] = sw2 * (1. / (sw2)) * Rest(x, Muw);
2388 CWBdmmArrayNLOewt2[6] = sw2 * ((1. - 4. * sw2) * C1t(x, Muw) / (sw2) - B1t(x, Muw) / (sw2)
2389 - D1t(x, Muw) + 1. / (sw2) + 524. / 729. - 128. * M_PI * M_PI / 243.
2390 - 16. * L / 3. - 128. * L * L / 81.);
2391 CWBdmmArrayNLOewt2[7] = sw2 * ((1. / (sw2)) * (B1t(x, Muw) - C1t(x, Muw)) - 1. / (sw2));
2394 CWBdmmArrayNLOew[6] = sw2 * (Y0(x) / (sw2) + Wt(x) + 4. / 9. - 4. * 2 * log(Muw / mt) / 9.);
2395 CWBdmmArrayNLOew[7] = sw2 * (-Y0(x) / (sw2));
2399 std::stringstream out;
2401 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2404 switch (order_qed) {
2406 return (CWBdmmArrayNLOewt4[i]);
2409 return (CWBdmmArrayNLOewt2[i]);
2412 return (CWBdmmArrayNLOew[i]);
2415 std::stringstream out;
2417 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2424double StandardModelMatching::setWCbnlep(
int i,
double x,
orders order) {
2429 return (CWbnlepArrayNLOqcd[i]);
2432 return (CWbnlepArrayLOqcd[i]);
2435 std::stringstream out;
2437 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2446 CWbnlepArrayNLOqcd[0] = 11. / 2.;
2447 CWbnlepArrayNLOqcd[1] = -11. / 6.;
2448 CWbnlepArrayNLOqcd[2] = -1. / 6. * (E0b(x) - 2. / 3.);
2449 CWbnlepArrayNLOqcd[3] = 0.5 * (E0b(x) - 2. / 3.);
2450 CWbnlepArrayNLOqcd[4] = -1. / 6. * (E0b(x) - 2. / 3.);
2451 CWbnlepArrayNLOqcd[5] = 0.5 * (E0b(x) - 2. / 3.);
2453 CWbnlepArrayLOqcd[1] = 1.;
2456 std::stringstream out;
2458 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2464 return (CWbnlepArrayNLOqcd[i]);
2467 return (CWbnlepArrayLOqcd[i]);
2470 std::stringstream out;
2472 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2476double StandardModelMatching::setWCbnlepEW(
int i,
double x) {
2477 sw2 = (M_PI * Ale) / (sqrt(2) * GF *
Mw *
Mw);
2479 if (sw2b == sw2 && xcacheb == x) {
2480 return (CWbnlepArrayNLOew[i]);
2486 CWbnlepArrayNLOew[1] = -35. / 18.;
2487 CWbnlepArrayNLOew[2] = 2. / (3. * sw2) * (2. * B0b(x) + C0b(x));
2488 CWbnlepArrayNLOew[6] = 2. / 3. * (4. * C0b(x) + D0b(x) - 4. / 9.);
2489 CWbnlepArrayNLOew[8] = 2. / 3. * (4. * C0b(x) + D0b(x) - 4. / 9. + (1. / (sw2)) *
2490 (10. * B0b(x) - 4. * C0b(x)));
2492 return (CWbnlepArrayNLOew[i]);
2495gslpp::complex StandardModelMatching::S0c()
const {
2496 double xc = x_c(
SM.getMuc());
2497 gslpp::complex co = GF / 2. / M_PI *
Mw *
SM.getCKM().computelamc().conjugate();
2498#if SUSYFIT_DEBUG & 2
2499 std::cout <<
"im lambdac = " << (
SM.getCKM().computelamc() *
SM.getCKM().computelamc()).imag() << std::endl;
2501 return (co * co * S0(xc, xc));
2504gslpp::complex StandardModelMatching::S0ct()
const {
2509 double co = GF / 2. / M_PI *
Mw;
2510#if SUSYFIT_DEBUG & 2
2511 std::cout <<
"im lamc lamt = " << (
SM.getCKM().computelamc() *
SM.getCKM().computelamt()).imag() << std::endl;
2514 return ( co * co * 2. *
SM.getCKM().computelamc().conjugate() * lam_t.conjugate() * S0(xc, xt));
2517gslpp::complex StandardModelMatching::S0tt()
const {
2518 double xt = x_t(Mut);
2519 gslpp::complex co = GF / 2. / M_PI *
Mw * lam_t.conjugate();
2520#if SUSYFIT_DEBUG & 2
2523 std::cout <<
"mt(" << Mut <<
")" << pino << std::endl;
2524 double poldo = pino * pino /
SM.Mw() /
SM.Mw();
2525 std::cout <<
"S0(" << poldo <<
") = " << S0(poldo, poldo) << std::endl;
2526 std::cout <<
"S0(" << xt <<
") = " << S0(xt, xt) << std::endl;
2527 std::cout <<
"im lamt = " << (
SM.getCKM().computelamt() *
SM.getCKM().computelamt()).imag() << std::endl;
2530 return ( co * co * S0(xt, xt));
2537std::vector<WilsonCoefficient>& StandardModelMatching::CMDLij(
int li_lj) {
2543 switch (mcDLij.getOrder()) {
2547 mcDLij.setCoeff(0, 0.,
LO);
2548 mcDLij.setCoeff(1, 0.,
LO);
2551 std::stringstream out;
2552 out << mcDLij.getOrder();
2553 throw std::runtime_error(
"StandardModelMatching::CMDLij(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2556 vmcDLij.push_back(mcDLij);
2561std::vector<WilsonCoefficient>& StandardModelMatching::CMDLi3j(
int li_lj) {
2567 switch (mcDLi3j.getOrder()) {
2571 mcDLi3j.setCoeff(0, 0.,
LO);
2572 mcDLi3j.setCoeff(1, 0.,
LO);
2573 mcDLi3j.setCoeff(2, 0.,
LO);
2574 mcDLi3j.setCoeff(3, 0.,
LO);
2575 mcDLi3j.setCoeff(4, 0.,
LO);
2576 mcDLi3j.setCoeff(5, 0.,
LO);
2577 mcDLi3j.setCoeff(6, 0.,
LO);
2578 mcDLi3j.setCoeff(7, 0.,
LO);
2579 mcDLi3j.setCoeff(8, 0.,
LO);
2580 mcDLi3j.setCoeff(9, 0.,
LO);
2581 mcDLi3j.setCoeff(10, 0.,
LO);
2582 mcDLi3j.setCoeff(11, 0.,
LO);
2583 mcDLi3j.setCoeff(12, 0.,
LO);
2584 mcDLi3j.setCoeff(13, 0.,
LO);
2585 mcDLi3j.setCoeff(14, 0.,
LO);
2586 mcDLi3j.setCoeff(15, 0.,
LO);
2587 mcDLi3j.setCoeff(16, 0.,
LO);
2588 mcDLi3j.setCoeff(17, 0.,
LO);
2589 mcDLi3j.setCoeff(18, 0.,
LO);
2590 mcDLi3j.setCoeff(19, 0.,
LO);
2593 std::stringstream out;
2594 out << mcDLi3j.getOrder();
2595 throw std::runtime_error(
"StandardModelMatching::CMDLi3j(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2598 vmcDLi3j.push_back(mcDLi3j);
2603std::vector<WilsonCoefficient>& StandardModelMatching::CMmueconv() {
2607 mcmueconv.setMu(Muw);
2609 switch (mcmueconv.getOrder()) {
2613 mcmueconv.setCoeff(0, 0.,
LO);
2614 mcmueconv.setCoeff(1, 0.,
LO);
2615 mcmueconv.setCoeff(2, 0.,
LO);
2616 mcmueconv.setCoeff(3, 0.,
LO);
2617 mcmueconv.setCoeff(4, 0.,
LO);
2618 mcmueconv.setCoeff(5, 0.,
LO);
2619 mcmueconv.setCoeff(6, 0.,
LO);
2620 mcmueconv.setCoeff(7, 0.,
LO);
2623 std::stringstream out;
2624 out << mcmueconv.getOrder();
2625 throw std::runtime_error(
"StandardModelMatching::CMmueconv(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2628 vmcmueconv.push_back(mcmueconv);
2629 return (vmcmueconv);
2633std::vector<WilsonCoefficient>& StandardModelMatching::CMgminus2mu() {
2635 vmcgminus2mu.clear();
2637 mcgminus2mu.setMu(Muw);
2639 switch (mcgminus2mu.getOrder()) {
2642 mcgminus2mu.setCoeff(0, 0.,
NLO);
2643 mcgminus2mu.setCoeff(1, 0.,
NLO);
2646 mcgminus2mu.setCoeff(0, 0.,
LO);
2647 mcgminus2mu.setCoeff(1, 0.,
LO);
2650 std::stringstream out;
2651 out << mcgminus2mu.getOrder();
2652 throw std::runtime_error(
"StandardModelMatching::CMgminus2mu(): order " + out.str() +
" not implemented.");
2655 vmcgminus2mu.push_back(mcgminus2mu);
2656 return (vmcgminus2mu);
2661 switch (mcC.getScheme()) {
2667 std::stringstream out;
2668 out << mcC.getScheme();
2669 throw "StandardModel::mc_C(): scheme " + out.str() +
"not implemented";
2674 switch (mcC.getOrder_QED()) {
2677 switch (mcC.getOrder_QCD()) {
2680 mcC.setCoeff(1, aletilde * (-22. / 9. - 4. / 3. * Lz + 1. / 9.),
QCD1,
QED1);
2684 std::stringstream out;
2685 out << mcC.getOrder_QCD();
2686 throw "StandardModelMatching::mc_C(): order " + out.str() +
" not implemented";
2689 switch (mcC.getOrder_QCD()) {
2691 mcC.setCoeff(0, alstilde * alstilde * (-Tt(x_t(Muw)) + 7987. / 72. + 17. / 3. * M_PI * M_PI +
2692 L * 475. / 6. + 17. * L * L),
QCD2,
QED0);
2693 mcC.setCoeff(1, alstilde * alstilde * (127. / 18. + 4. / 3. * M_PI * M_PI + 46. / 3. * L + 4. * L * L),
2696 mcC.setCoeff(0, alstilde * (15. + 6. * L),
QCD1,
QED0);
2701 std::stringstream out;
2702 out << mcC.getOrder_QCD();
2703 throw "StandardModelMatching::mc_C(): order " + out.str() +
" not implemented";
2707 std::stringstream out;
2708 out << mcC.getOrder_QED();
2709 throw "StandardModelMatching::mc_C(): order " + out.str() +
"not implemented";
2715double StandardModelMatching::C3funNNLO(
double x) {
2716 return (G1t(x, Muw) - 680. / 243. - 20. / 81. * M_PI * M_PI - 68. / 81. * L - 20. / 27 * L * L);
2719double StandardModelMatching::C4fun(
double x,
orders ord) {
2722 return (E1t(x, Muw) + 950. / 243. + 10. / 81. * M_PI * M_PI + 124. / 27. * L + 10. / 27. * L * L);
2724 return (E0t(x) - 7. / 9. + 2. / 3. * L);
2726 std::stringstream out;
2728 throw "StandardModelMatching::C4fun(): order " + out.str() +
"not implemented";
2733double StandardModelMatching::C5funNNLO(
double x) {
2734 return (-0.1 * G1t(x, Muw) + 2. / 15. * E0t(x) + 68. / 243. + 2. / 81. * M_PI * M_PI + 14. / 81. * L + 2. / 27. * L * L);
2737double StandardModelMatching::C6funNNLO(
double x) {
2738 return (-3. / 16. * G1t(x, Muw) + 0.25 * E0t(x) + 85. / 162. + 5. / 108. * M_PI * M_PI + 35. / 108. * L + 5. / 36 * L * L);
2743 double xt = x_t(Muw);
2744 double xz =
SM.getMz() *
SM.getMz() /
Mw /
Mw;
2746 switch (mcP.getScheme()) {
2752 std::stringstream out;
2753 out << mcP.getScheme();
2754 throw "StandardModelMatching::mc_P(): scheme " + out.str() +
"not implemented";
2759 switch (mcP.getOrder_QED()) {
2762 switch (mcP.getOrder_QCD()) {
2776 mcP.setCoeff(0, aletilde * alstilde * (1. / sW2 * (
2777 4. / 9. * B1d(xt, Muw) + 4. / 27. * B1d_tilde(xt, Muw) +
2778 2. / 9. * B1u(xt, Muw) + 2. / 27. * B1u_tilde(xt, Muw) -
2779 2. / 9. * C1ew(xt) + 320. / 27. * B0b(xt) + 160. / 27. * C0b(xt))),
QCD2,
QED1);
2780 mcP.setCoeff(1, aletilde * alstilde * (1. / sW2 * (
2781 8. / 9. * B1d_tilde(xt, Muw) + 4. / 9. * B1u_tilde(xt, Muw) -
2782 2. / 9. * Gew(xt, xz, Muw) - 88. / 9. * B0b(xt) - 56. / 27. * C0b(xt))),
QCD2,
QED1);
2783 mcP.setCoeff(2, aletilde * alstilde * (1. / sW2 * (
2784 -1. / 9. * B1d(xt, Muw) - 1. / 27. * B1d_tilde(xt, Muw) -
2785 1. / 18. * B1u(xt, Muw) - 1. / 54. * B1u_tilde(xt, Muw) +
2786 1. / 18. * C1ew(xt) - 32. / 27. * B0b(xt) - 16. / 27. * C0b(xt))),
QCD2,
QED1);
2787 mcP.setCoeff(3, aletilde * alstilde * (1. / sW2 * (
2788 -2. / 9. * B1d_tilde(xt, Muw) - 1. / 9. * B1u_tilde(xt, Muw) +
2789 1. / 18. * Gew(xt, xz, Muw) + 4. / 3. * B0b(xt) + 2. / 3. * C0b(xt))),
QCD2,
QED1);
2791 mcP.setCoeff(0, aletilde * (-2. / 9. / sW2 * (2. * B0b(xt) + C0b(xt))),
QCD1,
QED1);
2793 mcP.setCoeff(2, aletilde * (1. / 9. / sW2 * (B0b(xt) + 1. / 2. * C0b(xt))),
QCD1,
QED1);
2798 std::stringstream out;
2799 out << mcP.getOrder_QCD();
2800 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2803 switch (mcP.getOrder_QCD()) {
2805 mcP.setCoeff(0, alstilde * alstilde * C3funNNLO(xt),
QCD2,
QED0);
2806 mcP.setCoeff(1, alstilde * alstilde * C4fun(xt,
NNLO),
QCD2,
QED0);
2807 mcP.setCoeff(2, alstilde * alstilde * C5funNNLO(xt),
QCD2,
QED0);
2808 mcP.setCoeff(3, alstilde * alstilde * C6funNNLO(xt),
QCD2,
QED0);
2810 mcP.setCoeff(1, alstilde * C4fun(xt,
NLO),
QCD1,
QED0);
2814 std::stringstream out;
2815 out << mcP.getOrder_QCD();
2816 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2820 std::stringstream out;
2821 out << mcP.getOrder_QED();
2822 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2828double StandardModelMatching::C7funLO(
double x) {
2829 return (-0.5 * A0t(x) - 23. / 36.);
2832double StandardModelMatching::C8funLO(
double x) {
2833 return (-0.5 * F0t(x) - 1. / 3.);
2837 double xt = x_t(Muw);
2838 double mH =
SM.getMHl();
2840 switch (mcM.getScheme()) {
2846 std::stringstream out;
2847 out << mcM.getScheme();
2848 throw "StandardModelMatching::mc_M(): scheme " + out.str() +
"not implemented";
2853 switch (mcM.getOrder_QED()) {
2856 switch (mcM.getOrder_QCD()) {
2859 mcM.setCoeff(0, aletilde * (1. / sW2 * (1.11 - 1.15 * (1. - Mt_muw * Mt_muw / 170. / 170.) - 0.444 * log(mH / 100.) -
2860 0.21 * log(mH / 100.) * log(mH / 100.) - 0.513 * log(mH / 100.) * log(Mt_muw / 170.)) +
2861 (8. / 9. * C7funLO(xt) - 104. / 243.) * L),
QCD1,
QED1);
2862 mcM.setCoeff(1, aletilde * (1. / sW2 * (-0.143 + 0.156 * (1. - Mt_muw * Mt_muw / 170. / 170.) - 0.129 * log(mH / 100.) -
2863 0.0244 * log(mH / 100.) * log(mH / 100.) - 0.037 * log(mH / 100.) * log(Mt_muw / 170.)) +
2864 (4. / 9. * C8funLO(xt) - 4. / 3. * C7funLO(xt) - 58. / 81.) * L),
QCD1,
QED1);
2868 std::stringstream out;
2869 out << mcM.getOrder_QCD();
2870 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2874 switch (mcM.getOrder_QCD()) {
2876 mcM.setCoeff(0, alstilde * alstilde * (C7t_3L_at_mt(xt) + C7t_3L_func(xt, Muw)-(C7c_3L_at_mW(xt) + 13763. / 2187. * L + 814. / 729. * L * L)
2877 - 1. / 3. * C3funNNLO(xt) - 4. / 9. * C4fun(xt,
NNLO) - 20. / 3. * C5funNNLO(xt) - 80. / 9. * C6funNNLO(xt)),
QCD2,
QED0);
2878 mcM.setCoeff(1, alstilde * alstilde * (C8t_3L_at_mt(xt) + C8t_3L_func(xt, Muw)-(C8c_3L_at_mW(xt) + 16607. / 5832. * L + 397. / 486. * L * L)
2879 + C3funNNLO(xt) - 1. / 6. * C4fun(xt,
NNLO) - 20. * C5funNNLO(xt) - 10. / 3. * C6funNNLO(xt)),
QCD2,
QED0);
2881 mcM.setCoeff(0, alstilde * (-0.5 * A1t(xt, Muw) + 713. / 243. + 4. / 81. * L - 4. / 9. * C4fun(xt,
NLO)),
QCD1,
QED0);
2882 mcM.setCoeff(1, alstilde * (-0.5 * F1t(xt, Muw) + 91. / 324. - 4. / 27. * L - 1. / 6. * C4fun(xt,
NLO)),
QCD1,
QED0);
2884 mcM.setCoeff(0, C7funLO(xt),
QCD0,
QED0);
2885 mcM.setCoeff(1, C8funLO(xt),
QCD0,
QED0);
2888 std::stringstream out;
2889 out << mcM.getOrder_QCD();
2890 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2895 std::stringstream out;
2896 out << mcM.getOrder_QED();
2897 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2903double StandardModelMatching::fbb(
double x)
2905 return (-0.0380386 - 2.24502 * x + 3.8472 * x * x - 7.80586 * x * x * x + 10.0763 * x * x * x * x - 6.9751 * x * x * x * x * x
2906 + 1.95163 * x * x * x * x * x * x - 0.00550335 * log(x));
2909double StandardModelMatching::gbb(
double x)
2912 return (sqrt(x - 4.) * log((1. - sqrt(1. - 4. / x)) / (1. + sqrt(1. - 4. / x))));
2914 return (2. * sqrt(4. - x) * acos(sqrt(x / 4.)));
2916 throw "StandardModelMatching::gbb(): defined for non-negative argument only.";
2919double StandardModelMatching::taub2(
double x)
2922 return ( 9. - 13. / 4. * x - 2. * x * x - x / 4. * (19. + 6. * x) * ll - x * x / 4. * (7. - 6. * x) * ll * ll - (1. / 4. + 7. / 2. * x * x - 3. * x * x * x) * M_PI * M_PI / 6. +
2923 (x / 2. - 2.) * sqrt(x) * gbb(x)+(x - 1.)*(x - 1.)*(4. * x - 7. / 4.) * gslpp_special_functions::dilog(1. - x)-(x * x * x - 33. / 4. * x * x +
2924 18. * x - 7.) * fbb(x));
2927double StandardModelMatching::C10_OS1(
double x,
double mu) {
2928 double Mw_2 =
Mw *
Mw;
2929 double mt_2 = x * Mw_2;
2930 double mt = sqrt(mt_2);
2932 double a1 = 69354.0995830457;
2933 double b1 = 114.072536156018;
2934 double c1 = -1802.9029763021;
2935 double d1 = -0.6880489462364;
2936 double e1 = 11.7037717083906;
2937 double f1 = -1.422845251416;
2938 double g1 = 0.00856609262141;
2939 double h1 = 0.00005469961928;
2940 double a2 = 4144.6231891191;
2941 double b2 = 0.1706756075896;
2942 double c2 = -104.32434492409;
2943 double d2 = 0.00072836578577;
2944 double e2 = 0.65260451121855;
2945 double f2 = -0.0007261241908;
2946 double a3 = -218.96716792134;
2947 double b3 = -0.039653543101;
2948 double c3 = 5.57241334587797;
2949 double d3 = 2.8289915e-6;
2950 double e3 = -0.0351477930751;
2951 double f3 = 0.00048165797959;
2953 return (a1 + b1 * mt + c1 *
Mw + d1 * mt_2 + e1 * Mw_2 + f1 * mt *
Mw + g1 * mt_2 *
Mw + h1 * mt_2 * mt +
2954 (a2 + b2 * mt + c2 *
Mw + d2 * mt_2 + e2 * Mw_2 + f2 * mt *
Mw) * log(mu) +
2955 (a3 + b3 * mt + c3 *
Mw + d3 * mt_2 + e3 * Mw_2 + f3 * mt *
Mw) * log(mu) * log(mu));
2958double StandardModelMatching::Delta_t(
double mu,
double x)
2960 return (18. * log(mu / Mt_muw) + 11. - x / 2. + x * (x - 6.) / 2. * log(x)+(x - 4.) / 2. * sqrt(x) * gbb(x));
2965 double xt = x_t(Muw);
2969 switch (mcL.getScheme()) {
2975 std::stringstream out;
2976 out << mcL.getScheme();
2977 throw "StandardModel::mc_L(): scheme " + out.str() +
"not implemented";
2982 switch (mcL.getOrder_QED()) {
2984 switch (mcL.getOrder_QCD()) {
2992 mcL.setCoeff(1, aletilde * aletilde * C10_OS1(xt, Muw),
QCD2,
QED2);
2997 std::stringstream out;
2998 out << mcL.getOrder_QCD();
2999 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3003 switch (mcL.getOrder_QCD()) {
3005 mcL.setCoeff(0, aletilde * alstilde * ((1. - 4. * sW2) / sW2 * C1t(xt, Muw) - 1. / sW2 * B1t(xt, Muw) - D1t(xt, Muw) + 1. / sW2 +
3006 524. / 729. - 128. / 243. * M_PI * M_PI - 16. / 3. * L - 128. / 81. * L * L),
QCD2,
QED1);
3007 mcL.setCoeff(1, aletilde * alstilde * (1. / sW2 * (B1t(xt, Muw) - C1t(xt, Muw)) - 1. / sW2),
QCD2,
QED1);
3009 mcL.setCoeff(0, aletilde * (1. / sW2 * Y0(xt) + Wt(xt) + 4. / 9. - 4. / 9. * 2. * log(Muw / Mt_muw)),
QCD1,
QED1);
3010 mcL.setCoeff(1, aletilde * (-1. / sW2 * Y0(xt)),
QCD1,
QED1);
3014 std::stringstream out;
3015 out << mcL.getOrder_QCD();
3016 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3023 std::stringstream out;
3024 out << mcL.getOrder_QED();
3025 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3033 double xt = x_t(Muw);
3034 double xz =
SM.getMz() *
SM.getMz() /
Mw /
Mw;
3036 switch (mcQ.getScheme()) {
3042 std::stringstream out;
3043 out << mcQ.getScheme();
3044 throw "StandardModel::mc_Q(): scheme " + out.str() +
"not implemented";
3049 switch (mcQ.getOrder_QED()) {
3052 switch (mcQ.getOrder_QCD()) {
3069 mcQ.setCoeff(0, aletilde * alstilde * (4. * C1ew(xt) + D1t(xt, Muw) + 1. / sW2 * (
3070 -2. / 3. * B1d(xt, Muw) - 2. / 9. * B1d_tilde(xt, Muw) +
3071 2. / 3. * B1u(xt, Muw) + 2. / 9. * B1u_tilde(xt, Muw) +
3072 4. / 3. * C1ew(xt) + 800. / 9. * B0b(xt) - 320. / 9. * C0b(xt))),
QCD2,
QED1);
3073 mcQ.setCoeff(1, aletilde * alstilde * (-4. / 3. * Gew(xt, xz, Muw) - 16. / 3. * Hew(xt, xz, Muw) -
3074 80. / 3. * C0b(xt) + 1. / sW2 * (-4. / 3. * B1d_tilde(xt, Muw) + 4. / 3. * B1u_tilde(xt, Muw) +
3075 4. / 3. * Gew(xt, xz, Muw) - 80. * B0b(xt) + 32. * C0b(xt))),
QCD2,
QED1);
3076 mcQ.setCoeff(2, aletilde * alstilde * (1. / sW2 * (1. / 6. * B1d(xt, Muw) + 1. / 18. * B1d_tilde(xt, Muw) -
3077 1. / 6. * B1u(xt, Muw) - 1. / 18. * B1u_tilde(xt, Muw) -
3078 1. / 3. * C1ew(xt) - 80. / 9. * B0b(xt) + 32. / 9. * C0b(xt))),
QCD2,
QED1);
3079 mcQ.setCoeff(3, aletilde * alstilde * (1. / 3. * Gew(xt, xz, Muw) + 1. / 3. * Hew(xt, xz, Muw) +
3080 8. / 3. * C0b(xt) + 1. / sW2 * (1. / 3. * B1d_tilde(xt, Muw) - 1. / 3. * B1u_tilde(xt, Muw) -
3081 1. / 3. * Gew(xt, xz, Muw) + 10. * B0b(xt) - 4. * C0b(xt))),
QCD2,
QED1);
3083 mcQ.setCoeff(0, aletilde * (4. * C0b(xt) + D0b_tilde(xt) + 4. / 9. * L - 1. / sW2 * (10. / 3. * B0b(xt) - 4. / 3. * C0b(xt))),
QCD1,
QED1);
3084 mcQ.setCoeff(2, aletilde * (1. / sW2 * (5. / 6. * B0b(xt) - 1. / 3. * C0b(xt))),
QCD1,
QED1);
3088 std::stringstream out;
3089 out << mcQ.getOrder_QCD();
3090 throw "StandardModelMatching::mc_Q(): order " + out.str() +
"not implemented";
3097 std::stringstream out;
3098 out << mcQ.getOrder_QED();
3099 throw "StandardModelMatching::mc_Q(): order " + out.str() +
"not implemented";
3107 double xt = x_t(Muw);
3109 switch (mcB.getScheme()) {
3115 std::stringstream out;
3116 out << mcB.getScheme();
3117 throw "StandardModelMatching::mc_B(): scheme " + out.str() +
"not implemented";
3122 switch (mcB.getOrder_QED()) {
3125 switch (mcB.getOrder_QCD()) {
3128 mcB.setCoeff(0, aletilde * (-1. / 2. / sW2 * S0(xt)),
QCD1,
QED1);
3132 std::stringstream out;
3133 out << mcB.getOrder_QCD();
3134 throw "StandardModelMatching::mc_B(): order " + out.str() +
"not implemented";
3141 std::stringstream out;
3142 out << mcB.getOrder_QED();
3143 throw "StandardModelMatching::mc_B(): order " + out.str() +
"not implemented";
3152 unsigned int j, nops = DF1block.
getSize();
3156 for (j = 0; j < nops; j++)
3157 CMDF1.setCoeff(j + tot, DF1block.
getCoeff(ord_qcd, ord_qed)(j), ord_qcd, ord_qed);
3159 return (nops + tot);
3163 unsigned int tot = 0;
3164 schemes scheme = mcC.getScheme();
3171 std::vector< std::pair<std::string, BlockM> > Methods = {
3172 std::make_pair(
"C", &StandardModelMatching::mc_C),
3173 std::make_pair(
"P", &StandardModelMatching::mc_P),
3174 std::make_pair(
"M", &StandardModelMatching::mc_M),
3175 std::make_pair(
"L", &StandardModelMatching::mc_L),
3176 std::make_pair(
"Q", &StandardModelMatching::mc_Q),
3177 std::make_pair(
"B", &StandardModelMatching::mc_B)
3182 for (std::vector< std::pair<std::string, BlockM> >::iterator it = Methods.begin(); it != Methods.end(); it++)
3183 if (blocks.find(it->first) != std::string::npos)
3184 tot = setCMDF1(mcDF1, (this->*(it->second))(), tot, scheme, order_qcd, order_qed);
3186 vmcDF1.push_back(mcDF1);
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMBXsnn(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficientNew > & CMDF1(std::string blocks, unsigned int nops)=0
virtual std::vector< WilsonCoefficient > & CMd1()=0
virtual std::vector< WilsonCoefficient > & CMd1Buras()=0
virtual std::vector< WilsonCoefficient > & CMprimebsg()=0
virtual std::vector< WilsonCoefficient > & CMbnlep(int a)=0
virtual std::vector< WilsonCoefficient > & CMbnlepCC(const int a)=0
virtual std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMbsg()=0
An observable class for the -boson mass.
lepton
An enum type for leptons.
A model class for the Standard Model.
void updateSMParameters()
Updates to new Standard Model parameter sets.
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
virtual ~StandardModelMatching()
StandardModelMatching(const StandardModel &SM_i)
virtual std::vector< WilsonCoefficient > & CMdd2()
,
A class for the Wilson coefficients.
gslpp::vector< gslpp::complex > getCoeff(qcd_orders order_qcd_i, qed_orders order_qed_i=QED0) const
unsigned int getSize() const
parameter of the Higgs potential
orders
An enum type for orders in QCD.
schemes
An enum type for regularization schemes.
qed_orders
An enum type for qed_orders in electroweak.
orders_qed
An enum type for orders in electroweak.
qcd_orders
An enum type for qcd_orders in QCD.