41 mcmueconv(8,
NDR,
LO),
59 for (
int j=0; j<10; j++) {
62 CWbnlepArrayLOqcd[j] = 0.;
63 CWbnlepArrayNLOqcd[j] = 0.;
64 CWbnlepArrayLOew[j] = 0.;
65 CWbnlepArrayNLOew[j] = 0.;
69 for(
int j=0; j<19; j++){
70 CWBMllArrayLO[j] = 0.;
71 CWBMllArrayNLO[j] = 0.;
74 for(
int j=0; j<8; j++){
76 CWbsgArrayNLO[j] = 0.;
77 CWbsgArrayNNLO[j] = 0.;
78 CWprimebsgArrayLO[j] = 0.;
79 CWprimebsgArrayNLO[j] = 0.;
82 for(
int j=0; j<8; j++){
83 CWBsmmArrayNNLOqcd[j] = 0.;
84 CWBsmmArrayNLOqcd[j] = 0.;
85 CWBsmmArrayLOqcd[j] = 0.;
86 CWBsmmArrayNLOewt4[j] = 0.;
87 CWBsmmArrayNLOewt2[j] = 0.;
88 CWBsmmArrayNLOew[j] = 0.;
91 for(
int j=0; j<8; j++){
92 CWBdmmArrayNNLOqcd[j] = 0.;
93 CWBdmmArrayNLOqcd[j] = 0.;
94 CWBdmmArrayLOqcd[j] = 0.;
95 CWBdmmArrayNLOewt4[j] = 0.;
96 CWBdmmArrayNLOewt2[j] = 0.;
97 CWBdmmArrayNLOew[j] = 0.;
103 gamma0 = 6. * (Nc - 1.) / Nc;
104 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);
105 BtNDR = 5. * (Nc - 1.) / 2. / Nc + 3. * CF;
116 Mt_muw = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
118 Mt_mut = SM.Mrun(Mut, SM.getQuarks(
QCD::TOP).getMass_scale(),
120 alstilde = SM.Als(Muw,
FULLNNNLO,
true) / 4. / M_PI;
121 aletilde = SM.Ale(Muw,
FULLNLO) / 4. / M_PI;
123 Mw_tree = SM.Mw_tree();
137 lam_t = SM.getCKM().computelamt();
139 Lz = 2*
log(Muw/SM.getMz());
143 double StandardModelMatching::x_c(
const double mu,
const orders order)
const
145 double mc = SM.Mrun(mu, SM.getQuarks(
QCD::CHARM).getMass_scale(),
150 double StandardModelMatching::x_t(
const double mu,
const orders order)
const
159 mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
160 SM.getQuarks(
QCD::TOP).getMass(), order);
167 double StandardModelMatching::mt2omh2(
const double mu,
const orders order)
const
169 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
170 SM.getQuarks(
QCD::TOP).getMass(), order);
171 return (mt / SM.getMHl())*(mt / SM.getMHl());
174 double StandardModelMatching::S0(
double x)
const
179 double StandardModelMatching::S0(
double x,
double y)
const
181 if (fabs(1. - y / x) < LEPS){
182 return ((x * (-4. + 15. * x - 12. * x * x + x * x * x +
183 6. * x * x *
log(x))) / (4. *
pow(-1. + x, 3.)));
186 return (x * y * ((1./4. + 3./2. / (1. - x) - 3./4. /
pow(1. - x, 2.)) *
188 (1./4. + 3./2. / (1. - y) - 3./4. /
pow(1. - y, 2.)) *
190 3./4. / (1. - x) / (1. - y)));
193 double StandardModelMatching::S0p(
double x)
const
196 return (x * (4. - 22. * x + 15. * x2 + 2. * x2 * x + x2 * x2 - 18. * x2 *
log(x)) / 4. /
pow(x - 1., 4.));
199 double StandardModelMatching::S11(
double x)
const
204 double xm3 = (x - 1.) * (x - 1.) * (x - 1.);
205 double xm4 = xm3 * (x - 1);
207 return (x * (4. - 39. * x + 168. * x2 + 11. * x3) / 4. / xm3
209 + 3. * x *
log(x)*(-4. + 24. * x - 36. * x2 - 7. * x3 - x4) / 2.
210 / xm4 + 3. * x3 *
pow(
log(x), 2.) * (13. + 4. * x + x2) / 2.
214 double StandardModelMatching::S18(
double x)
const
219 double xm2 = (x - 1.) * (x - 1.);
220 double xm3 = xm2 * (x - 1.);
221 return ((-64. + 68. * x + 17. * x2 - 11. * x3) / 4. / xm2
223 + 20. * x2 - x3 + 7. * x4 - x4 * x) / (x * xm3)
224 +
log(x)*(-32. + 68. * x - 32. * x2 + 28. * x3 - 3. * x4)
225 / (2. * xm3) + x2 *
pow(
log(x), 2.) * (4. - 7. * x + 7. * x2
226 - 2. * x3) / (2. * xm2 * xm2));
229 double StandardModelMatching::S1(
double x)
const
231 return (CF * S11(x) + (Nc - 1.) / 2. / Nc * S18(x));
242 double StandardModelMatching::A0t(
double x)
const
247 return ((-3. * x3 + 2. * x2)/(2. *
pow(1. - x, 4.)) *
log(x) +
248 (22. * x3 - 153. * x2 + 159. * x - 46.)/(36. *
pow(1. - x, 3.)));
251 double StandardModelMatching::B0t(
double x)
const
253 return( x / (4.* (1. - x) * (1. - x)) *
log(x) + 1. / (4. * (1. - x)) );
256 double StandardModelMatching::C0t(
double x)
const
258 return( (3. * x * x + 2. * x) / (8. * (1. - x) * (1. - x)) *
log(x) + (-x * x + 6. * x) / (8. * (1. - x)) );
261 double StandardModelMatching::D0t(
double x)
const
267 return( (-3. * x4 + 30. * x3 - 54. * x2 + 32.* x - 8.) / (18.*
pow(1. - x, 4)) *
log(x)
268 + (-47. * x3 + 237. * x2 - 312. * x + 104.) / (108. *
pow(1.- x, 3.)) );
271 double StandardModelMatching::E0t(
double x)
const
275 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));
279 double StandardModelMatching::F0t(
double x)
const
282 double xm3 = (1. - x)*(1. - x)*(1. - x);
284 return ((3. * x2) / (2. * xm3 * (1. - x)) *
log(x) + ( 5. * x2 * x - 9. * x2 + 30. * x - 8.)/
288 double StandardModelMatching::A1t(
double x,
double mu)
const
291 double x3 = x * x * x;
292 double x4 = x * x * x * x;
293 double xm2 =
pow(1. - x, 2);
294 double xm3 = xm2 * (1. - x);
295 double xm4 = xm3 * (1. - x);
296 double xm5 = xm4 * (1. - x);
297 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
301 (-774. * x4 - 2826. * x3 + 1994. *x2 - 130. * x + 8.)/81./xm5 *
log(x) +
302 (-94. * x4 - 18665. * x3 + 20682. * x2 - 9113. * x + 2006.)/243./xm4 +
303 ((-12. * x4 - 92. * x3 + 56. * x2)/3./(1.-x)/xm4 *
log(x) +
304 (-68. * x4 - 202. * x3 - 804. * x2 + 794. * x - 152.)/27./xm4) * 2. *
log(mu/mt));
307 double StandardModelMatching::B1t(
double x,
double mu)
const
310 double xm2 =
pow(1. - x, 2);
311 double xm3 =
pow(1. - x, 3);
312 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
316 ( (2. * x2 + 2. * x)/xm3*
log(x) + (4. * x)/xm2 ) * 2. *
log(mu / mt);
321 double StandardModelMatching::C1t(
double x,
double mu)
const
325 double xm2 =
pow(1. - x, 2);
326 double xm3 =
pow(1. - x, 3);
327 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
331 (4. * x3 + 7. * x2 + 29. * x)/(3. * xm2) + ( (8. * x2 + 2. * x)/xm3*
log(x) + (x3 + x2 + 8. * x)/xm2) * 2. *
log(mu / mt);
337 double StandardModelMatching::D1t(
double x,
double mu)
const
342 double xm4 =
pow(1. - x, 4);
343 double xm5 =
pow(1. - x, 5);
344 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
348 (304. * x4 + 1716. * x3 - 4644. * x2 + 2768. * x - 720.)/(81. * xm5)*
log(x) +
349 (-6175. * x4 + 41608. * x3 - 66723. * x2 + 33106. * x - 7000.)/(729. * xm4) +
350 ( (648. * x4 - 720. * x3 - 232. * x2 - 160. * x + 32.)/(81. * xm5)*
log(x) +
351 (-352. * x4 + 4912. * x3 - 8280. * x2 + 3304. * x - 880.)/(243. * xm4) ) * 2. *
log(mu / mt);
354 double StandardModelMatching::F1t(
double x,
double mu)
const
359 double xm4 =
pow(1. - x, 4);
360 double xm5 =
pow(1. - x, 5);
361 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
365 (-144. * x4 + 3177. * x3 + 3661. * x2 + 250. * x - 32.)/108./xm5 *
log(x)
366 + (-247. * x4 + 11890. * x3 + 31779. * x2 - 2966. * x + 1016.)/648./xm4
367 + ((17. * x3 + 31. * x2)/xm5 *
log(x) + (- 35. * x4 + 170. * x3 + 447. * x2
368 + 338. * x - 56.)/18./xm4)* 2. *
log(mu/mt));
371 double StandardModelMatching::E1t(
double x,
double mu)
const
377 double xm4 =
pow(1. - x, 4);
378 double xm5 =
pow(1. - x, 5);
379 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
384 (-1030. * x4 + 435. * x3 + 1373. * x2 + 1950. * x - 424.)/(108. * xm5) *
log(x) +
385 (-29467. * x4 + 45604. * x3 - 30237. * x2 + 66532. * x - 10960.)/(1944. * xm4) +
386 ( (-1125. * x3 + 1685. * x2 + 380. * x - 76.)/(54. * xm5)*
log(x) +
387 (133. * x4 - 2758. * x3 - 2061. * x2 + 11522. * x - 1652.)/(324. * xm4) ) * 2. *
log(mu / mt);
390 double StandardModelMatching::G1t(
double x,
double mu)
const
396 double xm3 =
pow(1. - x, 3);
397 double xm4 =
pow(1. - x, 4);
399 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
403 (30. * x3 - 42. * x2 - 332. * x + 68.)/(81. * xm4)*
log(x) +
404 (-6. * x3 - 293. * x2 + 161. * x + 42.)/(81. * xm3) +
405 ( (90. * x2 - 160. * x + 40.)/(27. * xm4)*
log(x) +
406 (35. * x3 + 105. * x2 - 210. * x - 20.)/(81. * xm3) ) * 2. *
log(mu / mt);
409 double StandardModelMatching::C7c_3L_at_mW(
double x)
const
413 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)
414 - 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));
417 double StandardModelMatching::C7t_3L_at_mt(
double x)
const
421 return (12.06 + 12.93*z + 3.013*z*
log(z) + 96.71*z*z + 52.73*z*z*
log(z)
422 + 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));
425 double StandardModelMatching::C7t_3L_func(
double x,
double mu)
const
432 double xm1to5 = (x-1.)*(x-1.)*(x-1.)*(x-1.)*(x-1.);
433 double xm1to6 = xm1to5*(x-1.);
435 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
439 +
log(x) * (-26838. * x5 + 25938. * x4 + 627367. * x3 - 331956. * x2 + 16989. * x - 460.)/729./xm1to6
440 + (34400. * x5 + 276644.*x4 - 2668324. * x3 + 1694437.*x2 - 323354.*x + 53077.)/2187./xm1to5)
441 + 4.*
log(mu/mt)*
log(mu/mt) * (
log(x)*(-63. * x5 + 532. * x4 + 2089. * x3 - 1118. * x2)/9./xm1to6
442 + (1186.*x5 - 2705.*x4 - 24791.*x3 - 16099.*x2 + 19229.*x - 2740.)/162./xm1to5) );
446 double StandardModelMatching::C8c_3L_at_mW(
double x)
const
450 return (- 1.870 + 0.1010*z - 0.1218*z*
log(z) + 0.1045*z*z - 0.03748*z*z*
log(z)
451 + 0.01151*z*z*
log(z)*
log(z) - 0.01023*z*z*z + 0.004342*z*z*z*
log(z)
452 + 0.0003031*z*z*z*
log(z)*
log(z) - 0.001537*z*z*z*z + 0.0007532*z*z*z*z*
log(z));
455 double StandardModelMatching::C8t_3L_at_mt(
double x)
const
459 return (- 0.8954 - 7.043*z - 98.34*z*z - 46.21*z*z*
log(z) - 127.1*z*z*z
460 - 181.6*z*z*z*
log(z) + 535.8*z*z*z*z - 76.76*z*z*z*z*
log(z));
463 double StandardModelMatching::C8t_3L_func(
double x,
double mu)
const
470 double xm1to5 = (x-1.)*(x-1.)*(x-1.)*(x-1.)*(x-1.);
471 double xm1to6 = xm1to5*(x-1.);
473 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
477 +
log(x) * (-15984. * x5 + 152379. * x4 - 1358060. * x3 - 1201653. * x2 - 74190. * x + 9188.)/1944./xm1to6
478 + (109669. * x5 - 1112675. * x4 + 6239377. * x3 + 8967623. * x2 + 768722. * x - 42796.)/11664./xm1to5)
479 + 4. *
log(mu/mt) *
log(mu/mt) * (
log(x) * (-139. * x4 - 2938. * x3 - 2683. * x2)/12./xm1to6
480 + (1295. * x5 - 7009. * x4 + 29495. * x3 + 64513. * x2 + 17458. * x - 2072.)/216./xm1to5) );
484 double StandardModelMatching::Tt(
double x)
const
489 double StandardModelMatching::Wt(
double x)
const
492 double x3 = x * x * x;
493 double x4 = x * x * x * x;
494 double xm2 =
pow(1. - x, 2);
495 double xm3 = xm2 * (1. - x);
496 double xm4 = xm3 * (1. - x);
498 return ((-32. * x4 + 38. * x3 + 15. * x2 - 18. * x)/18./xm4 *
log(x) -
499 (-18. * x4 + 163. * x3 - 259. *x2 + 108. * x)/36./xm3 );
502 double StandardModelMatching::Eet(
double x)
const
505 double xm2 =
pow(1. - x, 2);
506 double xm3 = xm2 * (1. - x);
507 double xm4 = xm3 * (1. - x);
509 return ((x * (18. - 11. * x - x2))/(12. * xm3) +
510 (
log(x) * (x2 * (15. - 16. * x + 4. * x2))/(6. * xm4)) - 2. *
log(x) /3.);
513 double StandardModelMatching::Rest(
double x,
double mu)
const
518 return (-37.01364013973161 + 7.870950908767437 * mt -
519 0.0015295355176062242 * mt * mt + 2.41071411865951 *
Mw -
520 0.20348320015672194 * mt *
Mw - 0.02858827491583899 *
Mw *
Mw +
521 0.001422822903303167 * mt *
Mw *
Mw + (4.257050684362808 + 0.17719711396626878 * mt -
522 0.8190947921716011 *
Mw - 0.002315407459561656 * mt *
Mw + 0.008797408866807221 *
Mw *
Mw) *
log(
523 mu) + (0.49627858125619595 -
pow(5.784745743815408,-8) *mt +
524 0.031869225004473686 *
Mw - 0.00041193393986696286 *
Mw *
Mw) *
log(
528 double StandardModelMatching::Y0(
double x)
const
530 return( x/8. * ((4 - 5 * x + x * x + 3 * x *
log(x))/
pow(x - 1., 2.)) );
533 double StandardModelMatching::Y1(
double x,
double mu)
const
538 double logx =
log(x);
540 double xm2 = xm * xm;
541 double xm3 = xm2 * xm;
543 return ((10. * x + 10. * x2 + 4. * x3)/(3 * xm2) - (2. * x - 8. * x2 - x3 - x4)/xm3 * logx
544 + (2. * x - 14. * x2 + x3 - x4)/(2. * xm3) *
pow(logx, 2.)
546 + 16. * x * (-4. + 3. * x + x3 - 6. * x * logx)/(8. * -xm3) *
log(mu /
Mw));
549 double StandardModelMatching::C7LOeff(
double x)
const
554 return( (3. * x3 - 2. * x2) / (4. *
pow(x - 1., 4.)) *
log(x) + (-8. * x3 - 5. * x2 +
555 7. * x) / (24. *
pow(x-1.,3.)));
558 double StandardModelMatching::C8LOeff(
double x)
const
560 return( -3. * x * x / (4. *
pow( x - 1., 4.)) *
log(x) + (-x * x * x + 5. * x * x + 2. * x) / (8. *
pow(x - 1., 3)) );
563 double StandardModelMatching::C7NLOeff(
double x)
const
568 double xm4 =
pow(x-1.,4.);
569 double xm5 = xm4 * (x - 1);
570 double logx =
log(x);
573 return(
Li2 * ( -16. * x4 - 122. * x3 + 80. * x2 - 8. * x) / (9. * xm4) +
574 (6. * x4 + 46. * x3 -28. * x2) / (3. * xm5) * logx * logx +
575 (-102. * x4 * x - 588. * x4 - 2262. * x3 + 3244. * x2 - 1364. * x + 208.) / (81. * xm5) * logx +
576 (1646. * x4 + 12205. * x3 - 10740. * x2 + 2509. * x - 436.) / (486. * xm4));
579 double StandardModelMatching::C8NLOeff(
double x)
const
584 double xm4 =
pow(x-1.,4.);
585 double xm5 = xm4 * (x - 1);
586 double logx =
log(x);
589 return(
Li2 * ( -4. * x4 + 40. * x3 + 41. * x2 + x) / (6. * xm4) +
590 (-17. * x3 - 31. * x2) / (2. * xm5) * logx * logx +
591 (-210. * x * x4 + 1086. * x4 + 4893. * x3 + 2857. * x2 - 1994. * x + 280.)/(216. * xm5) * logx +
592 (737. * x4 - 14102. * x3 - 28209. * x2 + 610. * x - 508.) / (1296. * xm4));
605 double StandardModelMatching::B0b(
double x)
const
607 return ( 0.25 * ( x / (1. - x) + x / (x * x - 2. * x + 1.) *
log(x) ) );
610 double StandardModelMatching::C0b(
double x)
const
612 return ( x / 8. * ( (x - 6.) / (x - 1.) + (3. * x + 2.) / ( x * x - 2. * x + 1.) *
log(x) ) );
615 double StandardModelMatching::D0b(
double x)
const
618 return ( -4. / 9. *
log(x) + (-19. * x2 * x + 25. * x2) / (36. * (x2 * x - 3. * x2 + 3. * x - 1.))
619 + (x2 * (5. * x2 - 2. * x - 6.) ) / (18. *
pow(x - 1.,4.)) *
log(x) );
622 double StandardModelMatching::D0b_tilde(
double x)
const
624 return (D0b(x) - 4./9.);
627 double StandardModelMatching::E0b(
double x)
const
631 return ( -2./3. *
log(x) + (18. * x - 11. * x2 - x2 * x) / (12.* (- x2 * x +3. * x2 -3. * x +1.)) +
632 (x2 * (15. - 16. * x +4. * x2))/(6.*
pow(1.-x,4.)) *
log(x) );
636 double StandardModelMatching::B1d(
double x,
double mu)
const
640 double xmuw = mu*mu/
Mw/
Mw;
641 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
642 double xmut = mut*mut/
Mw/
Mw;
644 return (-(8.-183.*x+47.*x*x)/24./xmo/xmo - (8.+27.*x+93.*x*x)/24./xmo/xmo/xmo*
log(x) +
645 (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 +
646 (2.+x)/36./x*M_PI*M_PI + 19./6.*B0b(x) - B0b(x)*
log(xmuw) + 4.*x/xmo/xmo*
log(xmut) -
647 (2.*x+2.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
650 double StandardModelMatching::B1d_tilde(
double x,
double mu)
const
654 double xmuw = mu*mu/
Mw/
Mw;
656 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) +
657 (2.-3.*x+3.*x*x+x*x*x)/2./x/xmo/xmo*dilog1mx - (2.+x)/12./x*M_PI*M_PI + 5./2.*B0b(x) +
658 3.*B0b(x)*
log(xmuw));
661 double StandardModelMatching::B1u(
double x,
double mu)
const
665 double xmuw = mu*mu/
Mw/
Mw;
666 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
667 double xmut = mut*mut/
Mw/
Mw;
669 return (-(46.*x+18.*x*x)/3./xmo/xmo - (16.*x-80.*x*x)/3./xmo/xmo/xmo*
log(x) -
670 (9.*x+23.*x*x)/2./xmo/xmo/xmo*
log(x)*
log(x) - 6.*x/xmo/xmo*dilog1mx - 38./3.*B0b(x) +
671 4.*B0b(x)*
log(xmuw) - 16.*x/xmo/xmo*
log(xmut) + (8.*x+8.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
674 double StandardModelMatching::B1u_tilde(
double x,
double mu)
const
677 double logx =
log(x);
680 return (-6.*x/xmo - 3.*x*logx*logx/2./xmo/xmo - 6.*x*dilogomx - B0b(x)*(10. + 12.*L));
683 double StandardModelMatching::C1ew(
double x)
const
687 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
688 double xmut = mut*mut/
Mw/
Mw;
690 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) +
691 (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 +
692 (8.*x+x*x+x*x*x)/xmo/xmo*
log(xmut) + (2.*x+8.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
695 double StandardModelMatching::Zew(
double xt,
double xz)
const
699 z0ew = 5.1795 + 0.038*(Mt_muw-166.) + 0.015*(
Mw-80.394);
700 z1ew = -2.1095 + 0.0067*(Mt_muw-166.) + 0.026*(
Mw-80.394);
706 double xtmo = xt - 1.;
707 double xzmo = xz - 1.;
710 z0ew = -xt*(20.-20.*xt2-457.*xz+19.*xt*xz+8.*xz2)/32./xtmo/xz +
711 xt*(10.*xt3-11.*xt2*xz-xt*(30.-16.*xz)+4.*(5.-17.*xz+xz2))/16./xtmo/xtmo/xz*
log(xt) +
712 xt*(10.-10.*xt2-17.*xz-xt*xz-4.*xz2)/16./xtmo/xz*
log(xz) -
713 xz*(10.*xt2-xt*(4.-xz)+8.*xz)/32./xtmo/xtmo*
log(xt)*
log(xt) - xz2/4.*
log(xz)*
log(xz) -
714 ((8.+12.*xt+xt2)/4./xz - 5.*xtmo*xtmo*(2.+xt)/16./xz2 -
715 (12.-3.*xt3-3.*xt2*(4.-xz)+4.*xt*(3.-xz)+4.*xz-xz2)/8./xtmo/xtmo)*
log(xt)*
log(xz) -
716 ((8.+12.*xt+xt2)/2./xz - 5.*xtmo*xtmo*(2.+xt)/8./xz2 - 3.*(4.+8.*xt+2.*xt2-xt3)/4./xtmo/xtmo)*dilog1mxt +
717 xzmo*xzmo*(5.-6.*xz-5.*xz2)/4./xz2*dilog1mxz - (5.-16.*xz+12.*xz2+2*xz3*xz)/24./xz2*M_PI*M_PI +
718 xt*(4.-xz)*(88.-30.*xz-25.*xz2-2.*xt*(44.-5.*xz-6.*xz2))/32./xtmo/xtmo/xz*phi_z(xz/4.) +
719 (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) -
720 ((22.+33.*xt-xt2)/16./xtmo/xz - 5.*xtmo*(2.+xt)/16./xz2 +
721 (2.+5.*xt2+10.*xz+xt*(15.+xz))/16./xtmo/xtmo)*phi_xy(xt,xz);
723 z1ew = xt*(20.-20.*xt2-265.*xz+67.*xt*xz+8.*xz2)/48./xtmo/xz -
724 xt*(10.*xt3-15.*xt2*xz+4.*(5.-7.*xz+2.*xz2)-xt*(30.+20.*xz+4.*xz2))/24./xtmo/xtmo/xz*
log(xt) -
725 xt*(10.-10.*xt2-33.*xz+15.*xt*xz-4.*xz2)/24./xtmo/xz*
log(xz) +
726 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) +
727 ((20.+6.*xt+xt2)/12./xz - 5.*xtmo*xtmo*(2.+xt)/24./xz2 +
728 (3.*xt3+2.*xt2*(12.-xz)-xt*(18.-16.*xz+xz2)-2.*(9.+4.*xz-xz2))/12./xtmo/xtmo)*
log(xt)*
log(xz) +
729 ((20.+6.*xt+xt2)/6./xz - 5.*xtmo*xtmo*(2.+xt)/12./xz2 - (6.+6.*xt-8.*xt2-xt3)/2./xtmo/xtmo)*dilog1mxt -
730 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 +
731 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 -
732 (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) +
733 ((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);
735 return(z0ew+sW2*z1ew);
739 double StandardModelMatching::Gew(
double xt,
double xz,
double mu)
const
741 double xmuw = mu*mu/
Mw/
Mw;
743 return (Zew(xt,xz) + 5.*C0b(xt) + 6.*C0b(xt)*
log(xmuw));
746 double StandardModelMatching::Hew(
double xt,
double xz,
double mu)
const
748 double xmuw = mu*mu/
Mw/
Mw;
750 return (Zew(xt,xz) - 7.*C0b(xt) + 6.*C0b(xt)*
log(xmuw));
757 double StandardModelMatching::X0t(
double x)
const{
758 return((x/8.)*((x+2.)/(x-1.)+(3.*x -6)/(x-1.)/(x-1.)*
log(x)));
761 double StandardModelMatching::X1t(
double x)
const{
766 double xm3 =
pow(1.-x,3.);
767 double logx =
log(x);
769 return (-(29. * x - x2 -4. * x3) / (3. * (1. - x) * (1. - x))
770 - logx * (x + 9. * x2 - x3 - x4) / xm3
771 + logx * logx * (8. * x + 4. * x2 + x3 - x4) / (2. * xm3)
773 - 8. * x *
log(Mut*Mut/Muw/Muw) * (8. - 9. * x + x3 + 6. * logx)/8./xm3 );
776 double StandardModelMatching::Xewt(
double x,
double a,
double mu)
const{
779 double swsq = (M_PI * Ale )/(
sqrt(2) * GF *
Mw *
Mw);
790 double M_PI2 = M_PI * M_PI;
796 double xm2 = (x - 1.) * (x - 1.);
797 double xm3 = xm2 * (x - 1.);
798 double axm = a * x - 1.;
799 double logx =
log(x);
800 double loga =
log(a);
802 A[0] = (16. - 48. * a) * M_PI2 + (288. * a - (32. - 88. * a) * M_PI2 ) * x
803 + (2003. * a + 4. * (4. - 6. * a - a2 ) * M_PI2 )* x2
804 + (9. * a * (93. + 28. * a) - 4. * a * (3. - 2. * a + 8. * a2) * M_PI2 ) * x3
805 + (3. * a * (172. - 49. * a - 32. * a2) + 4. * a * (20. - a + 16. * a2 ) * M_PI2 ) * x4
806 - (3. * a * (168. + 11. * a - 24. * a2 ) + 4. * a * (45. + 8. *a2) * M_PI2) * x5
807 + 96. * a * M_PI2 * x6;
809 A[1] = -768. * x - (525. - 867. * a) * x2 + (303. + 318. * a) * x3 - 195. * a * x4;
811 A[2] = -8.*(95. - 67. * a + 11. * a2 ) * x2 + 2. * (662. - 78. * a - 177. * a2 + 40. * a3 ) * x3
812 - (608. + 476. * a - 595. * a2 + 114. * a3 ) * x4
813 + (44. + 188. * a - 321. * a2 + 103. * a3 - 8. * a4 ) * x5
814 - a*(28. - 72. * a + 33. * a2 - 4. * a3 ) * x6;
816 A[3] = +48. - 10.*(57. + 4. * a) * x+ 51.*(29. + 10. * a) * x2 -
817 (841. + 1265. * a) * x3 + (308. + 347. * a) * x4
818 - (28. - 40. * a) * x5 + 12. * a * x6 ;
820 A[4] = + 768. + (816. - 768. * a) * x+ (1240. - 1232. * a) * x2
821 - 4.*(415. + 2. * a) * x3 + (311. + 722. * a) * x4
822 + (145. - 267. * a) * x5 - (36. + 51. * a) * x6 + 20. * a * x7 ;
824 A[5] = + 328. * x- (536. + 900. * a) * x2 + (208. + 1584. * a + 670. * a2 ) * x3
825 - a * (668. + 1161. * a + 225. * a2 ) * x4
826 + a2 * (479. + 362. * a + 28. * a2 ) * x5
827 - a3 *(143. + 42. * a) * x6 + 16. * a4 * x7;
829 A[6] = + 32. - 4.*(44. - 9. * a) * x + (384. - 322. * a - 400. * a2 ) * x2
830 - (400. - 869. * a - 1126. * a2 - 696. * a3 ) * x3
831 + 2.*(80. - 488. * a - 517. * a2 - 631. * a3 - 264. * a4 ) * x4
832 + (48. + 394. * a + 269. * a2 + 190. * a3 + 882. * a4 + 196. * a5 ) * x5
833 - (64. - 58. * a - 89. * a2 - 95. * a3 + 34. * a4 + 296. * a5 + 32. * a6 ) * x6
834 + (16. - 59. * a - 79. * a2 + 256. * a3 - 239. * a4
835 + 57. * a5 + 48. * a6 ) * x7
836 + (1. - a) * (1. - a) * (1. - a) * a2 * (29. + 16. * a) * x8 ;
838 A[7] = + 28. * a2 * x2 - 32. * a3 * x3;
840 A[8] = - 288. + 36.*(1. + 8. * a) * x + 6.*(647. + 87. * a) * x2 + 5.*(55. - 927. * a - 132. * a2 ) * x3
841 - (1233. + 98. * a - 879. * a2 - 192. * a3 ) * x4
842 + (360. + 1371. * a - 315. * a2 - 264. * a3 ) * x5
843 - 24. * a * (17. - 4. * a2) * x6;
845 A[9] = + 32. + 4.*(-44. + 29. * a) * x- 12.*(-32. + 77. * a + 31. * a2 ) * x2
846 + 2.*(-200. + 837. * a + 767. * a2 + 182. * a3 ) * x3
847 - 2.*(-80. + 625. * a + 905. * a2 + 520. * a3 + 82. * a4 ) * x4
848 + (48. + 1079. * a + 590. * a2 + 1002. * a3 + 462. * a4 + 32. * a5 ) * x5
849 + (-64. - 1160. * a - 501. * a2 - 364. * a3 - 486. * a4 - 72. * a5 ) * x6
850 + (16. + 729. * a + 1038. * a2 + 38. * a3 + 238. * a4 + 52. * a5 ) * x7
851 - a*(192. + 743. * a + 50. * a3 + 12. * a4 ) * x8 + 192. * a2 * x8 * x;
853 A[10] = + 16. * x + 324. * x2 - 36. * x4;
855 A[11] = + 216. * x - 672. * x2 + 152. * x3;
857 A[12] = - 16. * x + (16. - 42. * a) * x2 + (16. + 21. * a + 60. * a2 ) * x3
858 - (16 - 21. * a + 45. * a2 + 32. * a3 ) * x4 - a2 * (7. - 24. * a) * x5;
860 A[13] = - 32. + (144. - 68. * a) * x + (-240. + 334. * a + 332. * a2 ) * x2
861 + (160. - 551. * a - 660. * a2 - 364. * a3 ) * x3
862 + a * (329. + 451. * a + 650. * a2 + 164. * a3 ) * x4
863 + (-48. - a - 59. * a2 - 523. * a3 - 316. * a4 - 32. * a5 ) * x5
864 + (16. - 43. * a -93. * a2 + 255. * a3 + 287. * a4 + 32. * a5 ) * x6
865 - a2 * (-29. + 42. * a + 103. * a2 + 8. * a3 ) * x7;
867 A[14] = - 144.*(1. - a)*(1. - a) * x2 + 144. * (1. - a) * (1. - a) * x3 - 36. * (1. - a) * (1. - a) * x4;
869 A[15] = - 32. + 96. * a + (48. - 32. * a) * x - 176. * a * x2 - (16. - 74. * a) * x3 + 212. * a * x4;
871 A[16] = - 32. + (64. - 100. * a) * x- 8.*(4. - 34. * a -29. * a2 ) * x2
872 - 4. * a * (34. + 170. * a + 33. * a2 ) * x3
873 + 8. * a2 * (47. + 51. * a + 4. * a2) * x4 - 16. * a3 * (15. + 4. * a) * x5
876 C[0] = 1. / (3.* a * xm2 * x);
878 C[1] = phi1(0.25) / (xm3 * axm);
880 C[2] = phi1(0.25 * a) / (2. * xm3 * axm);
882 C[3] = phi1(1. / 4. / x) / (2. * xm3 * axm);
884 C[4] = phi1(0.25 * x) / (2. * xm3 * axm);
886 C[5] = phi1(a * x * 0.25) / (xm3 * axm);
888 C[6] = phi2(1. / a / x, 1. / a) / (2. * a2 * x2 * xm3 * axm);
890 C[7] = loga *
log(a) / axm;
892 C[8] = logx / (xm3 * axm * 3.);
894 C[9] = logx * logx / ((x-1.) * xm3 * axm * 2. * a * x);
896 C[10] = 2. *
log(mu/
Mw) / xm2;
898 C[11] = logx * 2. *
log(mu/
Mw) / xm3;
900 C[12] = loga / (xm2 * axm);
902 C[13] = logx * loga / (2. * a * xm3 * x * axm);
910 for (
int i=0; i<10; i++){
914 return (b/128./swsq);
917 double StandardModelMatching::phi1(
double z)
const{
924 + M_PI * M_PI / 3.));
928 std::stringstream out;
930 throw std::runtime_error(
"StandardModelMatching::phi1(double z)" + out.str() +
" <0");
935 double StandardModelMatching::phi2(
double x,
double y)
const{
936 double l =
sqrt((1. - x - y) * (1. - x - y) - 4. * x * y);
938 if ((l * l) >= 0. || (
sqrt(x) +
sqrt(y)) <= 1.){
941 else if((l * l) < 0. || (
sqrt(x) +
sqrt(y)) > 1.){
947 std::stringstream out;
949 throw std::runtime_error(
"StandardModelMatching::phi2(double x, double y) wrong" + out.str());
954 double StandardModelMatching::phi_z(
double z)
const
956 double beta =
sqrt(1.-1./z);
965 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.));
969 std::stringstream out;
971 throw std::runtime_error(
"StandardModelMatching::phi_z(double z)" + out.str() +
" <0");
975 double StandardModelMatching::phi_xy(
double x,
double y)
const
977 double lambda =
sqrt((1.-x-y)*(1.-x-y) - 4.*x*y);
984 if ((lambda*lambda) >= 0.){
985 return(lambda*(2.*
log((1.+x-y-lambda)/2.)*
log((1.-x+y-lambda)/2.) -
log(x)*
log(y) -
986 2.*diloga - 2.*dilogb + M_PI*M_PI/3.));
988 else if((lambda*lambda) < 0.){
989 return(-2.*
sqrt(-lambda*lambda)*(clausenxy + clausenx + clauseny));
992 std::stringstream out;
994 throw std::runtime_error(
"StandardModelMatching::phi_xy(double x, double y) wrong" + out.str());
1004 double gammam = 6. * CF;
1008 double xt = x_t(Mut);
1013 switch (mcdbd2.getScheme()) {
1020 std::stringstream out;
1021 out << mcdbd2.getScheme();
1022 throw std::runtime_error(
"StandardModel::CMdb2(): scheme " + out.str() +
"not implemented");
1027 switch (mcdbd2.getOrder()) {
1030 mcdbd2.setCoeff(0, co * co * 4. * (SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
1031 (Bt + gamma0 *
log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Mut /
Mw))),
NLO);
1032 #if SUSYFIT_DEBUG & 1
1033 std::cout <<
"Mw = " <<
Mw <<
" mt(mut=" << Mut <<
")= " << Mt_mut <<
" xt(mut=" << Mut <<
")= " << xt <<
"matching of DB=2: S0(xt) = " << S0(xt) <<
1034 ", S1(xt) = " << S1(xt) +
1035 (Bt + gamma0 *
log(Muw /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Muw /
Mw)
1036 <<
", lambdat_d^2 = " << SM.getCKM().computelamt_d()*SM.getCKM().computelamt_d() << std::endl;
1039 mcdbd2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1042 std::stringstream out;
1043 out << mcdbd2.getOrder();
1044 throw std::runtime_error(
"StandardModelMatching::CMdbd2(): order " + out.str() +
"not implemented");
1048 vmcdb.push_back(mcdbd2);
1054 double gammam = 6. * CF;
1056 double xt = x_t(Mut);
1061 switch (mcdbs2.getScheme()) {
1068 std::stringstream out;
1069 out << mcdbs2.getScheme();
1070 throw std::runtime_error(
"StandardModel::CMdbs2(): scheme " + out.str() +
"not implemented");
1075 switch (mcdbs2.getOrder()) {
1078 mcdbs2.setCoeff(0, co * co * 4. * (SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
1079 (Bt + gamma0 *
log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Mut /
Mw))),
NLO);
1081 mcdbs2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1084 std::stringstream out;
1085 out << mcdbs2.getOrder();
1086 throw std::runtime_error(
"StandardModelMatching::CMdbs2(): order " + out.str() +
"not implemented");
1089 vmcds.push_back(mcdbs2);
1099 std::vector<WilsonCoefficient>& StandardModelMatching::CMdk2()
1105 switch (mcdk2.getOrder()) {
1108 mcdk2.setCoeff(0, 0.,
NLO);
1110 mcdk2.setCoeff(0, 0.,
LO);
1113 std::stringstream out;
1114 out << mcdk2.getOrder();
1115 throw std::runtime_error(
"StandardModelMatching::CMdk2(): order " + out.str() +
"not implemented");
1118 vmck2.push_back(mcdk2);
1126 switch (mcd1Buras.getScheme()) {
1132 std::stringstream out;
1133 out << mcd1Buras.getScheme();
1134 throw std::runtime_error(
"StandardModel::CMd1Buras(): scheme " + out.str() +
"not implemented");
1137 mcd1Buras.setMu(Muw);
1139 switch (mcd1Buras.getOrder()) {
1142 mcd1Buras.setCoeff(0, SM.Als(Muw,
FULLNLO) / 4. / M_PI * 11./2. ,
NLO);
1143 mcd1Buras.setCoeff(1, SM.Als(Muw,
FULLNLO) / 4. / M_PI * (-11./6.) ,
NLO);
1144 for (
int j=2; j<10; j++){
1145 mcd1Buras.setCoeff(j, 0.,
NLO);
1148 mcd1Buras.setCoeff(0, 0.,
LO);
1149 mcd1Buras.setCoeff(1, 1.,
LO);
1150 for (
int j=2; j<10; j++){
1151 mcd1Buras.setCoeff(j, 0.,
LO);
1155 std::stringstream out;
1156 out << mcd1Buras.getOrder();
1157 throw std::runtime_error(
"StandardModelMatching::CMd1Buras(): order " + out.str() +
"not implemented");
1160 vmcd1Buras.push_back(mcd1Buras);
1170 switch (mcd1.getScheme()) {
1176 std::stringstream out;
1177 out << mcd1.getScheme();
1178 throw std::runtime_error(
"StandardModel::CMd1(): scheme " + out.str() +
"not implemented");
1183 switch (mcd1.getOrder()) {
1186 mcd1.setCoeff(0, SM.Als(Muw,
FULLNLO) / 4. / M_PI * 15. ,
NLO);
1187 for (
int j=1; j<10; j++){
1188 mcd1.setCoeff(j, 0.,
NLO);
1191 mcd1.setCoeff(0, 0. ,
LO);
1192 mcd1.setCoeff(1, 1. ,
LO);
1193 for (
int j=2; j<10; j++){
1194 mcd1.setCoeff(j, 0.,
LO);
1198 std::stringstream out;
1199 out << mcd1.getOrder();
1200 throw std::runtime_error(
"StandardModelMatching::CMd1(): order " + out.str() +
"not implemented");
1203 vmcd1.push_back(mcd1);
1213 switch (mcdd2.getScheme()) {
1219 std::stringstream out;
1220 out << mcdd2.getScheme();
1221 throw std::runtime_error(
"StandardModel::CMdd2(): scheme " + out.str() +
"not implemented");
1226 switch (mcdd2.getOrder()) {
1229 for(
int i=0; i<5; i++)
1230 mcdd2.setCoeff(i, 0.,
NLO);
1232 for(
int j=0; j<5; j++)
1233 mcdd2.setCoeff(j, 0.,
LO);
1236 std::stringstream out;
1237 out << mcdd2.getOrder();
1238 throw std::runtime_error(
"StandardModelMatching::CMdd2(): order " + out.str() +
"not implemented");
1241 vmcd2.push_back(mcdd2);
1245 std::vector<WilsonCoefficient>& StandardModelMatching::CMK()
1248 double xt = x_t(Muw);
1252 switch (mck.getScheme()) {
1258 std::stringstream out;
1259 out << mck.getScheme();
1260 throw "StandardModel::CMK(): scheme " + out.str() +
"not implemented";
1265 switch (mck.getOrder()) {
1268 for (
int j=0; j<10; j++){
1269 mck.setCoeff(j, lam_t * SM.Als(Muw,
FULLNLO) / 4. / M_PI *
1270 setWCbnlep(j, xt,
NLO),
NLO);
1271 mck.setCoeff(j, lam_t * Ale / 4. / M_PI *
1275 for (
int j=0; j<10; j++){
1276 mck.setCoeff(j, lam_t * setWCbnlep(j, xt,
LO),
LO);
1277 mck.setCoeff(j, 0.,
LO_QED);
1281 std::stringstream out;
1282 out << mck.getOrder();
1283 throw "StandardModelMatching::CMK(): order " + out.str() +
"not implemented";
1286 vmck.push_back(mck);
1294 std::vector<WilsonCoefficient>& StandardModelMatching::CMKCC()
1297 double xt = x_t(Muw);
1301 switch (mckcc.getScheme()) {
1307 std::stringstream out;
1308 out << mckcc.getScheme();
1309 throw "StandardModel::CMKCC(): scheme " + out.str() +
"not implemented";
1314 switch (mckcc.getOrder()) {
1317 for (
int j=0; j<2; j++){
1318 mckcc.setCoeff(j, lam_t * setWCbnlep(j, xt,
NLO),
NLO);
1320 for (
int j=2; j<10; j++){
1321 mckcc.setCoeff(j, 0. ,
NLO);
1324 for (
int j=0; j<2; j++){
1325 mckcc.setCoeff(j, lam_t * setWCbnlep(j, xt,
LO),
LO);
1327 for (
int j=2; j<10; j++){
1328 mckcc.setCoeff(j, 0. ,
LO);
1332 std::stringstream out;
1333 out << mckcc.getOrder();
1334 throw "StandardModelMatching::CMKCC(): order " + out.str() +
"not implemented";
1337 vmckcc.push_back(mckcc);
1350 double xt = x_t(Muw);
1354 switch (mcbsg.getScheme()) {
1360 std::stringstream out;
1361 out << mcbsg.getScheme();
1362 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
1366 double alSo4pi = SM.Alstilde5(Muw);
1368 switch (mcbsg.getOrder()) {
1370 for (
int j=0; j<8; j++){
1371 mcbsg.setCoeff(j, alSo4pi * alSo4pi * setWCbsg(j, xt,
NNLO) ,
NNLO);
1374 for (
int j=0; j<8; j++){
1375 mcbsg.setCoeff(j, alSo4pi * setWCbsg(j, xt,
NLO) ,
NLO);
1378 for (
int j=0; j<8; j++){
1379 mcbsg.setCoeff(j, setWCbsg(j, xt,
LO),
LO);
1383 std::stringstream out;
1384 out << mcbsg.getOrder();
1385 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
1388 vmcbsg.push_back(mcbsg);
1395 vmcprimebsg.clear();
1397 switch (mcprimebsg.getScheme()) {
1403 std::stringstream out;
1404 out << mcprimebsg.getScheme();
1405 throw std::runtime_error(
"StandardModel::CMprimebsg(): scheme " + out.str() +
"not implemented");
1408 mcprimebsg.setMu(Muw);
1410 switch (mcprimebsg.getOrder()) {
1412 for (
int j=0; j<8; j++){
1413 mcprimebsg.setCoeff(j, 0.,
NNLO);
1416 for (
int j=0; j<8; j++){
1417 mcprimebsg.setCoeff(j, 0.,
NLO);
1420 for (
int j=0; j<8; j++){
1421 mcprimebsg.setCoeff(j, 0.,
LO);
1425 std::stringstream out;
1426 out << mcprimebsg.getOrder();
1427 throw std::runtime_error(
"StandardModelMatching::CMprimebsg(): order " + out.str() +
"not implemented");
1430 vmcprimebsg.push_back(mcprimebsg);
1431 return(vmcprimebsg);
1438 double StandardModelMatching::setWCbsg(
int i,
double x,
orders order)
1442 if ( swf == sw && xcachef == x){
1445 return ( CWbsgArrayNNLO[i] );
1448 return ( CWbsgArrayNLO[i] );
1451 return ( CWbsgArrayLO[i] );
1454 std::stringstream out;
1456 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1460 swf = sw; xcachef = x;
1465 CWbsgArrayNNLO[0] = -Tt(x)+7987./72.+17./3.*M_PI*M_PI+475./6.*L+17.*L*L;
1466 CWbsgArrayNNLO[1] = 127./18.+4./3.*M_PI*M_PI+46./3.*L+4.*L*L;
1467 CWbsgArrayNNLO[2] = G1t(x,Muw)-680./243.-20./81.*M_PI*M_PI-68./81.*L-20./27*L*L;
1468 CWbsgArrayNNLO[3] = E1t(x,Muw)+950./243.+10./81.*M_PI*M_PI+124./27.*L+10./27.*L*L;
1469 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;
1470 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;
1472 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];
1473 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];
1475 CWbsgArrayNLO[0] = 15. + 6*L;
1476 CWbsgArrayNLO[3] = E0t(x) - 7./9. + 2./3.* L;
1477 CWbsgArrayNLO[6] = -0.5*A1t(x,Muw) + 713./243. + 4./81.*L - 4./9.*CWbsgArrayNLO[3];
1478 CWbsgArrayNLO[7] = -0.5*F1t(x,Muw) + 91./324. - 4./27.*L - 1./6.*CWbsgArrayNLO[3];
1480 CWbsgArrayLO[1] = 1.;
1481 CWbsgArrayLO[6] = -0.5*A0t(x) - 23./36.;
1482 CWbsgArrayLO[7] = -0.5*F0t(x) - 1./3.;
1485 std::stringstream out;
1487 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1492 return ( CWbsgArrayNNLO[i] );
1495 return ( CWbsgArrayNLO[i] );
1498 return ( CWbsgArrayLO[i] );
1501 std::stringstream out;
1503 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1516 double xt = x_t(Muw);
1520 switch (mcBMll.getScheme()) {
1526 std::stringstream out;
1527 out << mcBMll.getScheme();
1528 throw std::runtime_error(
"StandardModel::CMBKstrall(): scheme " + out.str() +
"not implemented");
1533 switch (mcBMll.getOrder()) {
1536 for (
int j=0; j<13; j++){
1537 mcBMll.setCoeff(j, SM.Als(Muw,
FULLNNLO) / 4. / M_PI * setWCBMll(j, xt,
NLO) ,
NLO);
1540 for (
int j=0; j<13; j++){
1541 mcBMll.setCoeff(j, setWCBMll(j, xt,
LO),
LO);
1545 std::stringstream out;
1546 out << mcBMll.getOrder();
1547 throw std::runtime_error(
"StandardModelMatching::CMBKstrall(): order " + out.str() +
"not implemented");
1550 vmcBMll.push_back(mcBMll);
1558 double StandardModelMatching::setWCBMll(
int i,
double x,
orders order)
1562 if ( swa == sw && xcachea == x){
1566 return ( CWBMllArrayNLO[i] );
1569 return ( CWBMllArrayLO[i] );
1572 std::stringstream out;
1574 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1578 swa = sw; xcachea = x;
1583 CWBMllArrayNLO[0] = 15. + 6*L;
1584 CWBMllArrayNLO[3] = E0t(x) - (7./9.) + (2./3.* L);
1585 CWBMllArrayNLO[6] = -0.5*A1t(x,Muw) + 713./243. + 4./81.*L - 4./9.*CWBMllArrayNLO[3];
1586 CWBMllArrayNLO[7] = -0.5*F1t(x,Muw) + 91./324. - 4./27.*L - 1./6.*CWBMllArrayNLO[3];
1587 CWBMllArrayNLO[8] = (1-4.*sW2) / (sW2) *C1t(x,Muw) - 1./(sW2) * B1t(x,Muw) - D1t(x,Muw) + 1./sW2 + 524./729. -
1588 128.*M_PI*M_PI/243. - 16.*L/3. -128.*L*L/81.;
1589 CWBMllArrayNLO[9] = (B1t(x,Muw) - C1t(x,Muw)) / sW2 - 1./sW2;
1591 CWBMllArrayLO[1] = 1.;
1592 CWBMllArrayLO[6] = -0.5*A0t(x) - 23./36.;
1593 CWBMllArrayLO[7] = -0.5*F0t(x) - 1./3.;
1594 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);
1595 CWBMllArrayLO[9] = 1./(sW2) * (B0t(x) - C0t(x)) -1./(4.*sW2);
1598 std::stringstream out;
1600 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1606 return ( CWBMllArrayNLO[i] );
1609 return ( CWBMllArrayLO[i] );
1612 std::stringstream out;
1614 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1627 vmcprimeBMll.clear();
1628 mcprimeBMll.setMu(Muw);
1629 switch (mcprimeBMll.getOrder()) {
1632 for (
int j=0; j<13; j++){
1633 mcprimeBMll.setCoeff(j, 0.,
NLO);
1636 for (
int j=0; j<13; j++){
1637 mcprimeBMll.setCoeff(j, 0.,
LO);
1641 std::stringstream out;
1642 out << mcprimeBMll.getOrder();
1643 throw std::runtime_error(
"StandardModelMatching::CMBKstrall(): order " + out.str() +
"not implemented");
1645 vmcprimeBMll.push_back(mcprimeBMll);
1646 return(vmcprimeBMll);
1659 std::vector<WilsonCoefficient>& StandardModelMatching::CMbsmm()
1664 double xt = x_t(Muw);
1670 switch (mcbsmm.getScheme()) {
1676 std::stringstream out;
1677 out << mcbsmm.getScheme();
1678 throw std::runtime_error(
"StandardModel::CMbsmm(): scheme " + out.str() +
"not implemented");
1683 switch (mcbsmm.getOrder()) {
1686 for (
int j=0; j<8; j++){
1688 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) *
1694 for (
int j=0; j<8; j++){
1696 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) *
1697 setWCBsmm(j, xt,
NLO),
NLO);
1701 for (
int j=0; j<8; j++){
1703 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmm(j, xt,
LO),
LO);
1707 std::stringstream out;
1708 out << mcbsmm.getOrder();
1709 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order " + out.str() +
"not implemented");
1712 switch (mcbsmm.getOrder_qed()) {
1715 for (
int j=0; j<8; j++){
1717 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1721 for (
int j=0; j<8; j++){
1723 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
NLO_QED12);
1727 for (
int j=0; j<8; j++){
1729 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1732 for (
int j=0; j<8; j++){
1734 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
NLO_QED02);
1737 for (
int j=0; j<8; j++){
1739 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1743 for (
int j=0; j<8; j++){
1745 mcbsmm.setCoeff(j,(Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
LO_QED);
1749 std::stringstream out;
1750 out << mcbsmm.getOrder_qed();
1751 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order_qed " + out.str() +
"not implemented");
1753 vmcbsmm.push_back(mcbsmm);
1765 std::vector<WilsonCoefficient>& StandardModelMatching::CMbdmm()
1770 double xt = x_t(Muw);
1776 switch (mcbdmm.getScheme()) {
1782 std::stringstream out;
1783 out << mcbdmm.getScheme();
1784 throw std::runtime_error(
"StandardModel::CMbdmm(): scheme " + out.str() +
"not implemented");
1789 switch (mcbdmm.getOrder()) {
1792 for (
int j=0; j<8; j++){
1794 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) *
1799 for (
int j=0; j<8; j++){
1801 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) *
1802 setWCBdmm(j, xt,
NLO),
NLO);
1806 for (
int j=0; j<8; j++){
1808 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmm(j, xt,
LO),
LO);
1812 std::stringstream out;
1813 out << mcbdmm.getOrder();
1814 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order " + out.str() +
"not implemented");
1817 switch (mcbdmm.getOrder_qed()) {
1820 for (
int j=0; j<8; j++){
1822 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1826 for (
int j=0; j<8; j++){
1828 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
NLO_QED12);
1832 for (
int j=0; j<8; j++){
1834 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1837 for (
int j=0; j<8; j++){
1839 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
NLO_QED02);
1842 for (
int j=0; j<8; j++){
1844 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1848 for (
int j=0; j<8; j++){
1850 mcbdmm.setCoeff(j,(Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
LO_QED);
1854 std::stringstream out;
1855 out << mcbdmm.getOrder_qed();
1856 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order_qed " + out.str() +
"not implemented");
1858 vmcbdmm.push_back(mcbdmm);
1867 std::vector<WilsonCoefficient>& StandardModelMatching::CMbtaunu(
QCD::meson meson_i)
1872 mcbtaunu.setMu(Muw);
1874 switch (mcbtaunu.getOrder()) {
1878 if (meson_i ==
QCD::B_P) mcbtaunu.setCoeff(0, 4.*GF * Vckm(0,2) /
sqrt(2.) ,
LO);
1879 else if (meson_i ==
QCD::B_C) mcbtaunu.setCoeff(0, 4.*GF * Vckm(1,2) /
sqrt(2.) ,
LO);
1880 else throw std::runtime_error(
"StandardModelMatching::CMbtaunu(): meson not implemented");
1883 std::stringstream out;
1884 out << mcbtaunu.getOrder();
1885 throw std::runtime_error(
"StandardModelMatching::CMbtaunu(): order " + out.str() +
"not implemented");
1888 vmcbtaunu.push_back(mcbtaunu);
1909 case 0: lambda = SM.getCKM().computelamt_d();
1911 case 1: lambda = SM.getCKM().computelamt_s();
1914 std::stringstream out;
1916 throw std::runtime_error(
"case" + out.str() +
"not implemented; implemented i=0,1,2,3");
1919 double xt = x_t(Muw);
1920 double co = ( GF /
sqrt(2));
1924 switch (mcbnlep.getScheme()) {
1930 std::stringstream out;
1931 out << mcbnlep.getScheme();
1932 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
1937 switch (mcbnlep.getOrder()) {
1940 for (
int j=0; j<10; j++){
1941 mcbnlep.setCoeff(j,co * lambda * SM.Als(Muw,
FULLNLO) / 4. / M_PI *
1942 setWCbnlep(j, xt,
NLO),
NLO);
1943 mcbnlep.setCoeff(j, co * lambda * Ale / 4. / M_PI *
1947 for (
int j=0; j<10; j++){
1948 mcbnlep.setCoeff(j, co * lambda * setWCbnlep(j, xt,
LO),
LO);
1949 mcbnlep.setCoeff(j, 0.,
LO_QED);
1953 std::stringstream out;
1954 out << mcbnlep.getOrder();
1955 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
1958 vmcbnlep.push_back(mcbnlep);
1974 case 0:
lambda1 = SM.getCKM().computelamu_d();
1976 case 1:
lambda1 = SM.getCKM().computelamu_s();
1978 case 2:
lambda1 = Vckm(0,2).conjugate()*Vckm(1,0);
1980 case 3:
lambda1 = Vckm(1,2).conjugate()*Vckm(0,0);
1982 case 4:
lambda1 = Vckm(0,2).conjugate()*Vckm(1,1);
1984 case 5:
lambda1 = Vckm(1,2).conjugate()*Vckm(2,1);
1987 std::stringstream out;
1989 throw std::runtime_error(
"case" + out.str() +
" not existing; implemented i=0,1,2,3");
1992 double xt = x_t(Muw);
1993 double co = ( GF /
sqrt(2));
1997 switch (mcbnlepCC.getScheme()) {
2003 std::stringstream out;
2004 out << mcbnlepCC.getScheme();
2005 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
2008 mcbnlepCC.setMu(Muw);
2010 switch (mcbnlepCC.getOrder()) {
2013 for (
int j=0; j<2; j++){
2014 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
NLO),
NLO);
2016 for (
int j=2; j<10; j++){
2017 mcbnlepCC.setCoeff(j, 0. ,
NLO);
2020 for (
int j=0; j<2; j++){
2021 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
LO),
LO); }
2022 for (
int j=2; j<10; j++){
2023 mcbnlepCC.setCoeff(j, 0. ,
LO); }
2026 std::stringstream out;
2027 out << mcbnlepCC.getOrder();
2028 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
2031 vmcbnlepCC.push_back(mcbnlepCC);
2035 std::vector<WilsonCoefficient>& StandardModelMatching::CMkpnn() {
2039 double xt = x_t(SM.getMut());
2040 double a = 1./mt2omh2(Muw);
2041 double lambda5 = SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda();
2047 switch (mckpnn.getOrder()) {
2050 mckpnn.setCoeff(0, SM.Als(SM.getMut(),
FULLNLO)/4./M_PI*lam_t.imag()*X1t(xt)/
lambda5,
NLO);
2052 mckpnn.setCoeff(0, lam_t.imag()*X0t(xt)/
lambda5,
LO);
2055 std::stringstream out;
2056 out << mckpnn.getOrder();
2057 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): order " + out.str() +
"not implemented");
2060 switch (mckpnn.getOrder_qed()) {
2062 mckpnn.setCoeff(0, Ale/4./M_PI*lam_t.imag()*Xewt(xt, a, Muw)/
lambda5,
NLO_QED11);
2066 std::stringstream out;
2067 out << mckpnn.getOrder();
2068 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): order " + out.str() +
"not implemented");
2071 vmckpnn.push_back(mckpnn);
2076 std::vector<WilsonCoefficient>& StandardModelMatching::CMkmm() {
2080 double xt = x_t(Muw);
2086 switch (mckmm.getOrder()) {
2089 mckmm.setCoeff(0, SM.Als(Muw,
FULLNLO)/4./M_PI*lam_t.real()*Y1(xt, Muw)/SM.getCKM().getLambda(),
NLO);
2091 mckmm.setCoeff(0, lam_t.real()*Y0(xt)/SM.getCKM().getLambda(),
LO);
2094 std::stringstream out;
2095 out << mckmm.getOrder();
2096 throw std::runtime_error(
"StandardModelMatching::CMkmm(): order " + out.str() +
"not implemented");
2099 vmckmm.push_back(mckmm);
2104 std::vector<WilsonCoefficient>& StandardModelMatching::CMBXsnn() {
2106 double xt = x_t(Muw);
2112 switch (mcbsnn.getOrder()) {
2115 mcbsnn.setCoeff(0, (Vckm(2,1).abs() / Vckm(1,2).abs())*
2118 mcbsnn.setCoeff(0, (Vckm(2,1).abs() / Vckm(1,2).abs())*
2122 std::stringstream out;
2123 out << mcbsnn.getOrder();
2124 throw std::runtime_error(
"StandardModelMatching::CMXsnn(): order " + out.str() +
"not implemented");
2127 vmcbsnn.push_back(mcbsnn);
2132 std::vector<WilsonCoefficient>& StandardModelMatching::CMBXdnn() {
2134 double xt = x_t(Muw);
2140 switch (mcbdnn.getOrder()) {
2143 mcbsnn.setCoeff(0, (Vckm(2,2).abs() / Vckm(1,2).abs()) *
2146 mcbsnn.setCoeff(0, (Vckm(2,2).abs() / Vckm(1,2).abs()) *
2150 std::stringstream out;
2151 out << mcbdnn.getOrder();
2152 throw std::runtime_error(
"StandardModelMatching::CXdnn(): order " + out.str() +
"not implemented");
2155 vmcbdnn.push_back(mcbdnn);
2163 double StandardModelMatching::setWCBsmm(
int i,
double x,
orders order)
2166 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) );
2168 if ( swd == sw && xcached == x){
2171 return (CWBsmmArrayNNLOqcd[i]);
2174 return (CWBsmmArrayNLOqcd[i]);
2177 return (CWBsmmArrayLOqcd[i]);
2180 std::stringstream out;
2182 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2186 swd = sw; xcached = x;
2190 CWBsmmArrayNNLOqcd[0] = sw * sw * (-Tt(x) + 7987./72. + 17. * M_PI * M_PI/3. + 475. * L/6. + 17. * L * L);
2191 CWBsmmArrayNNLOqcd[1] = sw * sw * (127./18. + 4. * M_PI * M_PI /3. + 46. * L/3. + 4. * L * L);
2192 CWBsmmArrayNNLOqcd[2] = sw * sw * (G1t(x, Muw) - 680./243. - 20. * M_PI * M_PI /81. - 68. * L/81. - 20. * L* L/27.);
2193 CWBsmmArrayNNLOqcd[3] = sw * sw * (E1t(x, Muw) + 950./243. + 10.* M_PI * M_PI /81. + 124. * L/27. + 10. * L * L/27.);
2194 CWBsmmArrayNNLOqcd[4] = sw * sw * (-G1t(x, Muw)/10. + 2. * E0t(x)/15. + 68./243. + 2. * M_PI * M_PI /81. + 14.* L/81. + 2. * L * L/27.);
2195 CWBsmmArrayNNLOqcd[5] = sw * sw * (-3. * G1t(x, Muw)/16. + E0t(x)/4. + 85./162. + 5. * M_PI * M_PI/108. + 35. * L/108. + 5. * L * L/36.);
2198 CWBsmmArrayNLOqcd[0] = sw * sw * (15. + 6. * L);
2199 CWBsmmArrayNLOqcd[3] = sw * sw * (Eet(x) - 2./3. + 2. * L/3.);
2202 CWBsmmArrayLOqcd[1] = sw * sw * 1.;
2206 std::stringstream out;
2208 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2212 return (CWBsmmArrayNNLOqcd[i]);
2216 return (CWBsmmArrayNLOqcd[i]);
2220 return (CWBsmmArrayLOqcd[i]);
2224 std::stringstream out;
2226 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2230 double StandardModelMatching::setWCBsmmEW(
int i,
double x,
orders_qed order_qed)
2232 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) ) ;
2234 double mt = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
2237 if ( swe == sw && xcachee == x){
2240 return (CWBsmmArrayNLOewt4[i]);
2243 return (CWBsmmArrayNLOewt2[i]);
2246 return (CWBsmmArrayNLOew[i]);
2249 std::stringstream out;
2251 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2257 swe = sw; xcachee = x;
2266 CWBsmmArrayNLOewt4[7] = sw * sw * (1./(sw * sw)) * Rest(x, Muw) ;
2278 CWBsmmArrayNLOewt2[6] = sw * sw * ((1. - 4. * sw * sw) * C1t(x, Muw) / (sw * sw) - B1t(x, Muw)/(sw * sw)
2279 - D1t(x, Muw) + 1./ (sw * sw) + 524./729. - 128. * M_PI * M_PI / 243.
2280 - 16. * L / 3. - 128. * L * L /81. ) ;
2281 CWBsmmArrayNLOewt2[7] = sw * sw * ((1./(sw * sw)) * (B1t(x, Muw) - C1t(x, Muw)) - 1./(sw * sw)) ;
2287 CWBsmmArrayNLOew[6] = sw * sw * (Y0(x)/(sw * sw) + Wt(x) + 4./9. - 4. * 2 *
log(Muw/mt)/9.);
2288 CWBsmmArrayNLOew[7] = sw * sw * (-Y0(x)/(sw * sw));
2292 std::stringstream out;
2294 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2299 return (CWBsmmArrayNLOewt4[i]);
2302 return (CWBsmmArrayNLOewt2[i]);
2305 return (CWBsmmArrayNLOew[i]);
2308 std::stringstream out;
2310 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2320 double StandardModelMatching::setWCBdmm(
int i,
double x,
orders order)
2323 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) );
2325 if ( swb == sw && xcacheb == x){
2328 return (CWBdmmArrayNNLOqcd[i]);
2331 return (CWBdmmArrayNLOqcd[i]);
2334 return (CWBdmmArrayLOqcd[i]);
2337 std::stringstream out;
2339 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2343 swb = sw; xcacheb = x;
2347 CWBdmmArrayNNLOqcd[0] = sw * sw * (-Tt(x) + 7987./72. + 17. * M_PI * M_PI/3. + 475. * L/6. + 17. * L * L);
2348 CWBdmmArrayNNLOqcd[1] = sw * sw * (127./18. + 4. * M_PI * M_PI /3. + 46. * L/3. + 4. * L * L);
2349 CWBdmmArrayNNLOqcd[2] = sw * sw * (G1t(x, Muw) - 680./243. - 20. * M_PI * M_PI /81. - 68. * L/81. - 20. * L* L/27.);
2350 CWBdmmArrayNNLOqcd[3] = sw * sw * (E1t(x, Muw) + 950./243. + 10.* M_PI * M_PI /81. + 124. * L/27. + 10. * L * L/27.);
2351 CWBdmmArrayNNLOqcd[4] = sw * sw * (-G1t(x, Muw)/10. + 2. * E0t(x)/15. + 68./243. + 2. * M_PI * M_PI /81. + 14.* L/81. + 2. * L * L/27.);
2352 CWBdmmArrayNNLOqcd[5] = sw * sw * (-3. * G1t(x, Muw)/16. + E0t(x)/4. + 85./162. + 5. * M_PI * M_PI/108. + 35. * L/108. + 5. * L * L/36.);
2355 CWBdmmArrayNLOqcd[0] = sw * sw * (15. + 6. * L);
2356 CWBdmmArrayNLOqcd[3] = sw * sw * (Eet(x) - 2./3. + 2. * L/3.);
2359 CWBdmmArrayLOqcd[1] = sw * sw * 1.;
2363 std::stringstream out;
2365 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2369 return (CWBdmmArrayNNLOqcd[i]);
2373 return (CWBdmmArrayNLOqcd[i]);
2377 return (CWBdmmArrayLOqcd[i]);
2381 std::stringstream out;
2383 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2387 double StandardModelMatching::setWCBdmmEW(
int i,
double x,
orders_qed order_qed)
2389 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) ) ;
2391 double mt = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
2394 if ( swc == sw && xcachec == x){
2397 return (CWBdmmArrayNLOewt4[i]);
2400 return (CWBdmmArrayNLOewt2[i]);
2403 return (CWBdmmArrayNLOew[i]);
2406 std::stringstream out;
2408 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2414 swc = sw; xcachec = x;
2418 CWBdmmArrayNLOewt4[7] = sw * sw * (1./(sw * sw)) * Rest(x, Muw) ;
2421 CWBdmmArrayNLOewt2[6] = sw * sw * ((1. - 4. * sw * sw) * C1t(x, Muw) / (sw * sw) - B1t(x, Muw)/(sw * sw)
2422 - D1t(x, Muw) + 1./ (sw * sw) + 524./729. - 128. * M_PI * M_PI / 243.
2423 - 16. * L / 3. - 128. * L * L /81. ) ;
2424 CWBdmmArrayNLOewt2[7] = sw * sw * ((1./(sw * sw)) * (B1t(x, Muw) - C1t(x, Muw)) - 1./(sw * sw)) ;
2427 CWBdmmArrayNLOew[6] = sw * sw * (Y0(x)/(sw * sw) + Wt(x) + 4./9. - 4. * 2 *
log(Muw/mt)/9.);
2428 CWBdmmArrayNLOew[7] = sw * sw * (-Y0(x)/(sw * sw));
2432 std::stringstream out;
2434 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2439 return (CWBdmmArrayNLOewt4[i]);
2442 return (CWBdmmArrayNLOewt2[i]);
2445 return (CWBdmmArrayNLOew[i]);
2448 std::stringstream out;
2450 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2458 double StandardModelMatching::setWCbnlep(
int i,
double x,
orders order)
2460 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2) * GF *
Mw *
Mw) );
2462 if ( swb == sw && xcacheb == x){
2466 return (CWbnlepArrayNLOqcd[i]);
2469 return (CWbnlepArrayLOqcd[i]);
2472 std::stringstream out;
2474 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2478 swb = sw; xcacheb = x;
2483 CWbnlepArrayNLOqcd[0] = 11./2.;
2484 CWbnlepArrayNLOqcd[1] = -11./6.;
2485 CWbnlepArrayNLOqcd[2] = -1./6. * (E0b(x) - 2./3.);
2486 CWbnlepArrayNLOqcd[3] = 0.5 * (E0b(x) - 2./3.);
2487 CWbnlepArrayNLOqcd[4] = -1./6. * (E0b(x) - 2./3.);
2488 CWbnlepArrayNLOqcd[5] = 0.5 * (E0b(x) - 2./3.);
2490 CWbnlepArrayLOqcd[1] = 1.;
2493 std::stringstream out;
2495 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2501 return (CWbnlepArrayNLOqcd[i]);
2504 return (CWbnlepArrayLOqcd[i]);
2507 std::stringstream out;
2509 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2513 double StandardModelMatching::setWCbnlepEW(
int i,
double x)
2515 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2) * GF *
Mw *
Mw) ) ;
2517 if ( swb == sw && xcacheb == x){
2518 return (CWbnlepArrayNLOew[i]);
2521 swc = sw; xcachec = x;
2523 CWbnlepArrayNLOew[1] = -35./18.;
2524 CWbnlepArrayNLOew[2] = 2. / (3. * sw * sw) * ( 2. * B0b(x) + C0b(x) );
2525 CWbnlepArrayNLOew[6] = 2./3. * (4. * C0b(x) + D0b(x) - 4./9.);
2526 CWbnlepArrayNLOew[8] = 2./3. * (4. * C0b(x) + D0b(x) - 4./9. + (1. / (sw * sw)) *
2527 (10. * B0b(x) - 4. * C0b(x)) );
2529 return (CWbnlepArrayNLOew[i]);
2534 double xc = x_c(SM.getMuc());
2535 gslpp::complex co = GF / 2. / M_PI *
Mw * SM.getCKM().computelamc().conjugate();
2536 #if SUSYFIT_DEBUG & 2
2537 std::cout <<
"im lambdac = " << (SM.getCKM().computelamc()*SM.getCKM().computelamc()).imag() << std::endl;
2539 return(co * co * S0(xc, xc));
2544 double xc = SM.Mrun4(SM.getMuc(),SM.getQuarks(
QCD::CHARM).getMass_scale(),SM.getQuarks(
QCD::CHARM).getMass())/
Mw;
2546 double xt = SM.Mrun4(SM.getMuw(),SM.getQuarks(
QCD::TOP).getMass_scale(),SM.getQuarks(
QCD::TOP).getMass())/
Mw;
2548 double co = GF / 2. / M_PI *
Mw;
2549 #if SUSYFIT_DEBUG & 2
2550 std::cout <<
"im lamc lamt = " << (SM.getCKM().computelamc()*SM.getCKM().computelamt()).imag() << std::endl;
2553 return( co * co * 2. * SM.getCKM().computelamc().conjugate() * lam_t.conjugate() * S0(xc, xt) );
2558 double xt = x_t(Mut);
2560 #if SUSYFIT_DEBUG & 2
2561 double pino = SM.Mrun(Mut, SM.Mp2Mbar(SM.getMtpole(),
FULLNNLO),
2563 std::cout <<
"mt(" << Mut<<
")" << pino << std::endl;
2564 double poldo = pino*pino/SM.
Mw()/SM.Mw() ;
2565 std::cout <<
"S0(" << poldo <<
") = " << S0(poldo,poldo) << std::endl;
2566 std::cout <<
"S0(" << xt <<
") = " << S0(xt,xt) << std::endl;
2567 std::cout <<
"im lamt = " << (SM.getCKM().computelamt()*SM.getCKM().computelamt()).imag() << std::endl;
2570 return ( co * co * S0(xt, xt) );
2577 std::vector<WilsonCoefficient>& StandardModelMatching::CMDLij(
int li_lj)
2584 switch (mcDLij.getOrder()) {
2588 mcDLij.setCoeff(0, 0.,
LO);
2589 mcDLij.setCoeff(1, 0.,
LO);
2592 std::stringstream out;
2593 out << mcDLij.getOrder();
2594 throw std::runtime_error(
"StandardModelMatching::CMDLij(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2597 vmcDLij.push_back(mcDLij);
2602 std::vector<WilsonCoefficient>& StandardModelMatching::CMDLi3j(
int li_lj)
2609 switch (mcDLi3j.getOrder()) {
2613 mcDLi3j.setCoeff(0, 0.,
LO);
2614 mcDLi3j.setCoeff(1, 0.,
LO);
2615 mcDLi3j.setCoeff(2, 0.,
LO);
2616 mcDLi3j.setCoeff(3, 0.,
LO);
2617 mcDLi3j.setCoeff(4, 0.,
LO);
2618 mcDLi3j.setCoeff(5, 0.,
LO);
2619 mcDLi3j.setCoeff(6, 0.,
LO);
2620 mcDLi3j.setCoeff(7, 0.,
LO);
2621 mcDLi3j.setCoeff(8, 0.,
LO);
2622 mcDLi3j.setCoeff(9, 0.,
LO);
2623 mcDLi3j.setCoeff(10, 0.,
LO);
2624 mcDLi3j.setCoeff(11, 0.,
LO);
2625 mcDLi3j.setCoeff(12, 0.,
LO);
2626 mcDLi3j.setCoeff(13, 0.,
LO);
2627 mcDLi3j.setCoeff(14, 0.,
LO);
2628 mcDLi3j.setCoeff(15, 0.,
LO);
2629 mcDLi3j.setCoeff(16, 0.,
LO);
2630 mcDLi3j.setCoeff(17, 0.,
LO);
2631 mcDLi3j.setCoeff(18, 0.,
LO);
2632 mcDLi3j.setCoeff(19, 0.,
LO);
2635 std::stringstream out;
2636 out << mcDLi3j.getOrder();
2637 throw std::runtime_error(
"StandardModelMatching::CMDLi3j(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2640 vmcDLi3j.push_back(mcDLi3j);
2645 std::vector<WilsonCoefficient>& StandardModelMatching::CMmueconv()
2650 mcmueconv.setMu(Muw);
2652 switch (mcmueconv.getOrder()) {
2656 mcmueconv.setCoeff(0, 0.,
LO);
2657 mcmueconv.setCoeff(1, 0.,
LO);
2658 mcmueconv.setCoeff(2, 0.,
LO);
2659 mcmueconv.setCoeff(3, 0.,
LO);
2660 mcmueconv.setCoeff(4, 0.,
LO);
2661 mcmueconv.setCoeff(5, 0.,
LO);
2662 mcmueconv.setCoeff(6, 0.,
LO);
2663 mcmueconv.setCoeff(7, 0.,
LO);
2666 std::stringstream out;
2667 out << mcmueconv.getOrder();
2668 throw std::runtime_error(
"StandardModelMatching::CMmueconv(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2671 vmcmueconv.push_back(mcmueconv);
2676 std::vector<WilsonCoefficient>& StandardModelMatching::CMgminus2mu()
2679 vmcgminus2mu.clear();
2681 mcgminus2mu.setMu(Muw);
2683 switch (mcgminus2mu.getOrder()) {
2686 mcgminus2mu.setCoeff(0, 0.,
NLO);
2687 mcgminus2mu.setCoeff(1, 0.,
NLO);
2690 mcgminus2mu.setCoeff(0, 0.,
LO);
2691 mcgminus2mu.setCoeff(1, 0.,
LO);
2694 std::stringstream out;
2695 out << mcgminus2mu.getOrder();
2696 throw std::runtime_error(
"StandardModelMatching::CMgminus2mu(): order " + out.str() +
" not implemented.");
2699 vmcgminus2mu.push_back(mcgminus2mu);
2700 return(vmcgminus2mu);
2705 switch (mcC.getScheme()) {
2711 std::stringstream out;
2712 out << mcC.getScheme();
2713 throw "StandardModel::mc_C(): scheme " + out.str() +
"not implemented";
2718 switch (mcC.getOrder_QED()) {
2721 switch (mcC.getOrder_QCD()) {
2724 mcC.setCoeff(1, aletilde * (-22. / 9. - 4. / 3. * Lz + 1. / 9.),
QCD1,
QED1);
2728 std::stringstream out;
2729 out << mcC.getOrder_QCD();
2730 throw "StandardModelMatching::mc_C(): order " + out.str() +
" not implemented";
2733 switch (mcC.getOrder_QCD()) {
2735 mcC.setCoeff(0, alstilde * alstilde * (-Tt(x_t(Muw)) + 7987. / 72. + 17. / 3. * M_PI * M_PI +
2736 L * 475. / 6. + 17. * L * L),
QCD2,
QED0);
2737 mcC.setCoeff(1, alstilde * alstilde * (127. / 18. + 4. / 3. * M_PI * M_PI + 46. / 3. * L + 4. * L * L),
2740 mcC.setCoeff(0, alstilde * (15. + 6. * L),
QCD1,
QED0);
2745 std::stringstream out;
2746 out << mcC.getOrder_QCD();
2747 throw "StandardModelMatching::mc_C(): order " + out.str() +
" not implemented";
2751 std::stringstream out;
2752 out << mcC.getOrder_QED();
2753 throw "StandardModelMatching::mc_C(): order " + out.str() +
"not implemented";
2759 double StandardModelMatching::C3funNNLO(
double x)
2761 return(G1t(x,Muw)-680./243.-20./81.*M_PI*M_PI-68./81.*L-20./27*L*L);
2764 double StandardModelMatching::C4fun(
double x,
orders ord)
2768 return(E1t(x,Muw)+950./243.+10./81.*M_PI*M_PI+124./27.*L+10./27.*L*L);
2770 return(E0t(x)- 7./9.+2./3.* L);
2772 std::stringstream out;
2774 throw "StandardModelMatching::C4fun(): order " + out.str() +
"not implemented";
2779 double StandardModelMatching::C5funNNLO(
double x)
2781 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);
2784 double StandardModelMatching::C6funNNLO(
double x)
2786 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);
2791 double xt = x_t(Muw);
2792 double xz = SM.getMz() * SM.getMz() /
Mw /
Mw;
2794 switch (mcP.getScheme()) {
2800 std::stringstream out;
2801 out << mcP.getScheme();
2802 throw "StandardModel::mc_P(): scheme " + out.str() +
"not implemented";
2807 switch (mcP.getOrder_QED()) {
2810 switch (mcP.getOrder_QCD()) {
2824 mcP.setCoeff(0, aletilde * alstilde * (1. / sW2 * (
2825 4. / 9. * B1d(xt, Muw) + 4. / 27. * B1d_tilde(xt, Muw) +
2826 2. / 9. * B1u(xt, Muw) + 2. / 27. * B1u_tilde(xt, Muw) -
2827 2. / 9. * C1ew(xt) + 320. / 27. * B0b(xt) + 160. / 27. * C0b(xt))),
QCD2,
QED1);
2828 mcP.setCoeff(1, aletilde * alstilde * (1. / sW2 * (
2829 8. / 9. * B1d_tilde(xt, Muw) + 4. / 9. * B1u_tilde(xt, Muw) -
2830 2. / 9. * Gew(xt, xz, Muw) - 88. / 9. * B0b(xt) - 56. / 27. * C0b(xt))),
QCD2,
QED1);
2831 mcP.setCoeff(2, aletilde * alstilde * (1. / sW2 * (
2832 -1. / 9. * B1d(xt, Muw) - 1. / 27. * B1d_tilde(xt, Muw) -
2833 1. / 18. * B1u(xt, Muw) - 1. / 54. * B1u_tilde(xt, Muw) +
2834 1. / 18. * C1ew(xt) - 32. / 27. * B0b(xt) - 16. / 27. * C0b(xt))),
QCD2,
QED1);
2835 mcP.setCoeff(3, aletilde * alstilde * (1. / sW2 * (
2836 -2. / 9. * B1d_tilde(xt, Muw) - 1. / 9. * B1u_tilde(xt, Muw) +
2837 1. / 18. * Gew(xt, xz, Muw) + 4. / 3. * B0b(xt) + 2. / 3. * C0b(xt))),
QCD2,
QED1);
2839 mcP.setCoeff(0, aletilde * (-2. / 9. / sW2 * (2. * B0b(xt) + C0b(xt))),
QCD1,
QED1);
2841 mcP.setCoeff(2, aletilde * (1. / 9. / sW2 * (B0b(xt) + 1. / 2. * C0b(xt))),
QCD1,
QED1);
2846 std::stringstream out;
2847 out << mcP.getOrder_QCD();
2848 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2851 switch (mcP.getOrder_QCD()) {
2853 mcP.setCoeff(0, alstilde * alstilde * C3funNNLO(xt),
QCD2,
QED0);
2854 mcP.setCoeff(1, alstilde * alstilde * C4fun(xt,
NNLO),
QCD2,
QED0);
2855 mcP.setCoeff(2, alstilde * alstilde * C5funNNLO(xt),
QCD2,
QED0);
2856 mcP.setCoeff(3, alstilde * alstilde * C6funNNLO(xt),
QCD2,
QED0);
2858 mcP.setCoeff(1, alstilde * C4fun(xt,
NLO),
QCD1,
QED0);
2862 std::stringstream out;
2863 out << mcP.getOrder_QCD();
2864 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2868 std::stringstream out;
2869 out << mcP.getOrder_QED();
2870 throw "StandardModelMatching::mc_P(): order " + out.str() +
"not implemented";
2877 double StandardModelMatching::C7funLO(
double x)
2879 return(-0.5*A0t(x) - 23./36.);
2882 double StandardModelMatching::C8funLO(
double x)
2884 return(-0.5*F0t(x) - 1./3.);
2888 double xt = x_t(Muw);
2889 double mH = SM.getMHl();
2891 switch (mcM.getScheme()) {
2897 std::stringstream out;
2898 out << mcM.getScheme();
2899 throw "StandardModel::mc_M(): scheme " + out.str() +
"not implemented";
2904 switch (mcM.getOrder_QED()) {
2907 switch (mcM.getOrder_QCD()) {
2910 mcM.setCoeff(0, aletilde * (1. / sW2 * (1.11 - 1.15 * (1. - Mt_muw * Mt_muw / 170. / 170.) - 0.444 *
log(mH / 100.) -
2911 0.21 *
log(mH / 100.) *
log(mH / 100.) - 0.513 *
log(mH / 100.) *
log(Mt_muw / 170.)) +
2912 (8. / 9. * C7funLO(xt) - 104. / 243.) * L),
QCD1,
QED1);
2913 mcM.setCoeff(1, aletilde * (1. / sW2 * (-0.143 + 0.156 * (1. - Mt_muw * Mt_muw / 170. / 170.) - 0.129 *
log(mH / 100.) -
2914 0.0244 *
log(mH / 100.) *
log(mH / 100.) - 0.037 *
log(mH / 100.) *
log(Mt_muw / 170.)) +
2915 (4. / 9. * C8funLO(xt) - 4. / 3. * C7funLO(xt) - 58. / 81.) * L),
QCD1,
QED1);
2919 std::stringstream out;
2920 out << mcM.getOrder_QCD();
2921 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2925 switch (mcM.getOrder_QCD()) {
2927 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)
2928 - 1. / 3. * C3funNNLO(xt) - 4. / 9. * C4fun(xt,
NNLO) - 20. / 3. * C5funNNLO(xt) - 80. / 9. * C6funNNLO(xt)),
QCD2,
QED0);
2929 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)
2930 + C3funNNLO(xt) - 1. / 6. * C4fun(xt,
NNLO) - 20. * C5funNNLO(xt) - 10. / 3. * C6funNNLO(xt)),
QCD2,
QED0);
2932 mcM.setCoeff(0, alstilde * (-0.5 * A1t(xt, Muw) + 713. / 243. + 4. / 81. * L - 4. / 9. * C4fun(xt,
NLO)),
QCD1,
QED0);
2933 mcM.setCoeff(1, alstilde * (-0.5 * F1t(xt, Muw) + 91. / 324. - 4. / 27. * L - 1. / 6. * C4fun(xt,
NLO)),
QCD1,
QED0);
2935 mcM.setCoeff(0, C7funLO(xt),
QCD0,
QED0);
2936 mcM.setCoeff(1, C8funLO(xt),
QCD0,
QED0);
2939 std::stringstream out;
2940 out << mcM.getOrder_QCD();
2941 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2946 std::stringstream out;
2947 out << mcM.getOrder_QED();
2948 throw "StandardModelMatching::mc_M(): order " + out.str() +
"not implemented";
2954 double StandardModelMatching::fbb(
double x)
2956 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
2957 +1.95163*x*x*x*x*x*x-0.00550335*
log(x));
2960 double StandardModelMatching::gbb(
double x)
2965 return(2.*
sqrt(4.-x)*acos(
sqrt(x/4.)));
2967 throw "StandardModelMatching::gbb(): defined for non-negative argument only.";
2970 double StandardModelMatching::taub2(
double x)
2973 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.+
2978 double StandardModelMatching::C10_OS1(
double x,
double mu)
2980 double Mw_2 =
Mw *
Mw;
2981 double mt_2 = x * Mw_2;
2982 double mt =
sqrt(mt_2);
2984 double a1 = 69354.0995830457;
2985 double b1 = 114.072536156018;
2986 double c1 = -1802.9029763021;
2987 double d1 = -0.6880489462364;
2988 double e1 = 11.7037717083906;
2989 double f1 = -1.422845251416;
2990 double g1 = 0.00856609262141;
2991 double h1 = 0.00005469961928;
2992 double a2 = 4144.6231891191;
2993 double b2 = 0.1706756075896;
2994 double c2 = -104.32434492409;
2995 double d2 = 0.00072836578577;
2996 double e2 = 0.65260451121855;
2997 double f2 = -0.0007261241908;
2998 double a3 = -218.96716792134;
2999 double b3 = -0.039653543101;
3000 double c3 = 5.57241334587797;
3001 double d3 = 2.8289915e-6;
3002 double e3 = -0.0351477930751;
3003 double f3 = 0.00048165797959;
3005 return (a1 + b1 * mt + c1 *
Mw + d1 * mt_2 + e1 * Mw_2 + f1 * mt *
Mw + g1 * mt_2 *
Mw + h1 * mt_2 * mt +
3006 (a2 + b2 * mt + c2 *
Mw + d2 * mt_2 + e2 * Mw_2 + f2 * mt *
Mw) *
log(mu) +
3007 (a3 + b3 * mt + c3 *
Mw + d3 * mt_2 + e3 * Mw_2 + f3 * mt *
Mw) *
log(mu) *
log (mu));
3010 double StandardModelMatching::Delta_t(
double mu,
double x)
3012 return(18.*
log(mu/Mt_muw)+11.-x/2.+x*(x-6.)/2.*
log(x)+(x-4.)/2.*
sqrt(x)*gbb(x));
3017 double xt = x_t(Muw);
3018 double xht = SM.getMHl() * SM.getMHl() / Mt_muw / Mt_muw;
3021 switch (mcL.getScheme()) {
3027 std::stringstream out;
3028 out << mcL.getScheme();
3029 throw "StandardModel::mc_L(): scheme " + out.str() +
"not implemented";
3034 switch (mcL.getOrder_QED()) {
3036 switch (mcL.getOrder_QCD()) {
3044 mcL.setCoeff(1, aletilde * aletilde * C10_OS1(xt, Muw),
QCD2,
QED2);
3049 std::stringstream out;
3050 out << mcL.getOrder_QCD();
3051 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3055 switch (mcL.getOrder_QCD()) {
3057 mcL.setCoeff(0, aletilde * alstilde * ((1. - 4. * sW2) / sW2 * C1t(xt, Muw) - 1. / sW2 * B1t(xt, Muw) - D1t(xt, Muw) + 1. / sW2 +
3058 524. / 729. - 128. / 243. * M_PI * M_PI - 16. / 3. * L - 128. / 81. * L * L),
QCD2,
QED1);
3059 mcL.setCoeff(1, aletilde * alstilde * (1. / sW2 * (B1t(xt, Muw) - C1t(xt, Muw)) - 1. / sW2),
QCD2,
QED1);
3061 mcL.setCoeff(0, aletilde * (1. / sW2 * Y0(xt) + Wt(xt) + 4. / 9. - 4. / 9. * 2. *
log(Muw / Mt_muw)),
QCD1,
QED1);
3062 mcL.setCoeff(1, aletilde * (-1. / sW2 * Y0(xt)),
QCD1,
QED1);
3066 std::stringstream out;
3067 out << mcL.getOrder_QCD();
3068 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3075 std::stringstream out;
3076 out << mcL.getOrder_QED();
3077 throw "StandardModelMatching::mc_L(): order " + out.str() +
"not implemented";
3085 double xt = x_t(Muw);
3086 double xz = SM.getMz() * SM.getMz() /
Mw /
Mw;
3088 switch (mcQ.getScheme()) {
3094 std::stringstream out;
3095 out << mcQ.getScheme();
3096 throw "StandardModel::mc_Q(): scheme " + out.str() +
"not implemented";
3101 switch (mcQ.getOrder_QED()) {
3104 switch (mcQ.getOrder_QCD()) {
3121 mcQ.setCoeff(0, aletilde * alstilde * (4. * C1ew(xt) + D1t(xt, Muw) + 1. / sW2 * (
3122 -2. / 3. * B1d(xt, Muw) - 2. / 9. * B1d_tilde(xt, Muw) +
3123 2. / 3. * B1u(xt, Muw) + 2. / 9. * B1u_tilde(xt, Muw) +
3124 4. / 3. * C1ew(xt) + 800. / 9. * B0b(xt) - 320. / 9. * C0b(xt))),
QCD2,
QED1);
3125 mcQ.setCoeff(1, aletilde * alstilde * (-4. / 3. * Gew(xt, xz, Muw) - 16. / 3. * Hew(xt, xz, Muw) -
3126 80. / 3. * C0b(xt) + 1. / sW2 * (-4. / 3. * B1d_tilde(xt, Muw) + 4. / 3. * B1u_tilde(xt, Muw) +
3127 4. / 3. * Gew(xt, xz, Muw) - 80. * B0b(xt) + 32. * C0b(xt))),
QCD2,
QED1);
3128 mcQ.setCoeff(2, aletilde * alstilde * (1. / sW2 * (1. / 6. * B1d(xt, Muw) + 1. / 18. * B1d_tilde(xt, Muw) -
3129 1. / 6. * B1u(xt, Muw) - 1. / 18. * B1u_tilde(xt, Muw) -
3130 1. / 3. * C1ew(xt) - 80. / 9. * B0b(xt) + 32. / 9. * C0b(xt))),
QCD2,
QED1);
3131 mcQ.setCoeff(3, aletilde * alstilde * (1. / 3. * Gew(xt, xz, Muw) + 1. / 3. * Hew(xt, xz, Muw) +
3132 8. / 3. * C0b(xt) + 1. / sW2 * (1. / 3. * B1d_tilde(xt, Muw) - 1. / 3. * B1u_tilde(xt, Muw) -
3133 1. / 3. * Gew(xt, xz, Muw) + 10. * B0b(xt) - 4. * C0b(xt))),
QCD2,
QED1);
3135 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);
3136 mcQ.setCoeff(2, aletilde * (1. / sW2 * (5. / 6. * B0b(xt) - 1. / 3. * C0b(xt))),
QCD1,
QED1);
3140 std::stringstream out;
3141 out << mcQ.getOrder_QCD();
3142 throw "StandardModelMatching::mc_Q(): order " + out.str() +
"not implemented";
3149 std::stringstream out;
3150 out << mcQ.getOrder_QED();
3151 throw "StandardModelMatching::mc_Q(): order " + out.str() +
"not implemented";
3159 double xt = x_t(Muw);
3161 switch (mcB.getScheme()) {
3167 std::stringstream out;
3168 out << mcB.getScheme();
3169 throw "StandardModel::mc_B(): scheme " + out.str() +
"not implemented";
3174 switch (mcB.getOrder_QED()) {
3177 switch (mcB.getOrder_QCD()) {
3180 mcB.setCoeff(0, aletilde * (-1. / 2. / sW2 * S0(xt)),
QCD1,
QED1);
3184 std::stringstream out;
3185 out << mcB.getOrder_QCD();
3186 throw "StandardModelMatching::mc_B(): order " + out.str() +
"not implemented";
3193 std::stringstream out;
3194 out << mcB.getOrder_QED();
3195 throw "StandardModelMatching::mc_B(): order " + out.str() +
"not implemented";
3204 unsigned int j, nops = DF1block.
getSize();
3208 for (j = 0; j < nops; j++)
3209 CMDF1.setCoeff(j + tot, DF1block.
getCoeff(ord_qcd, ord_qed)(j), ord_qcd, ord_qed);
3211 return (nops + tot);
3215 unsigned int tot = 0;
3216 schemes scheme = mcC.getScheme();
3223 std::vector< std::pair<std::string, BlockM> > Methods = {
3224 std::make_pair(
"C", &StandardModelMatching::mc_C),
3225 std::make_pair(
"P", &StandardModelMatching::mc_P),
3226 std::make_pair(
"M", &StandardModelMatching::mc_M),
3227 std::make_pair(
"L", &StandardModelMatching::mc_L),
3228 std::make_pair(
"Q", &StandardModelMatching::mc_Q),
3229 std::make_pair(
"B", &StandardModelMatching::mc_B)
3234 for (std::vector< std::pair<std::string, BlockM> >::iterator it = Methods.begin(); it != Methods.end(); it++)
3235 if (blocks.find(it->first) != std::string::npos)
3236 tot = setCMDF1(mcDF1, (this->*(it->second))(), tot, scheme, order_qcd, order_qed);
3238 vmcDF1.push_back(mcDF1);