41 mcmueconv(8,
NDR,
LO),
53 for (
int j=0; j<10; j++) {
56 CWbnlepArrayLOqcd[j] = 0.;
57 CWbnlepArrayNLOqcd[j] = 0.;
58 CWbnlepArrayLOew[j] = 0.;
59 CWbnlepArrayNLOew[j] = 0.;
63 for(
int j=0; j<19; j++){
64 CWBMllArrayLO[j] = 0.;
65 CWBMllArrayNLO[j] = 0.;
68 for(
int j=0; j<8; j++){
70 CWbsgArrayNLO[j] = 0.;
71 CWbsgArrayNNLO[j] = 0.;
72 CWprimebsgArrayLO[j] = 0.;
73 CWprimebsgArrayNLO[j] = 0.;
76 for(
int j=0; j<8; j++){
77 CWBsmmArrayNNLOqcd[j] = 0.;
78 CWBsmmArrayNLOqcd[j] = 0.;
79 CWBsmmArrayLOqcd[j] = 0.;
80 CWBsmmArrayNLOewt4[j] = 0.;
81 CWBsmmArrayNLOewt2[j] = 0.;
82 CWBsmmArrayNLOew[j] = 0.;
85 for(
int j=0; j<8; j++){
86 CWBdmmArrayNNLOqcd[j] = 0.;
87 CWBdmmArrayNLOqcd[j] = 0.;
88 CWBdmmArrayLOqcd[j] = 0.;
89 CWBdmmArrayNLOewt4[j] = 0.;
90 CWBdmmArrayNLOewt2[j] = 0.;
91 CWBdmmArrayNLOew[j] = 0.;
97 gamma0 = 6. * (Nc - 1.) / Nc;
98 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);
99 BtNDR = 5. * (Nc - 1.) / 2. / Nc + 3. * CF;
110 Mt_muw = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
112 Mt_mut = SM.Mrun(Mut, SM.getQuarks(
QCD::TOP).getMass_scale(),
114 alstilde = SM.Als(Muw,
FULLNNNLO,
true) / 4. / M_PI;
115 aletilde = SM.Ale(Muw,
FULLNLO) / 4. / M_PI;
117 Mw_tree = SM.Mw_tree();
131 lam_t = SM.getCKM().computelamt();
133 Lz = 2*
log(Muw/SM.getMz());
137 double StandardModelMatching::x_c(
const double mu,
const orders order)
const
139 double mc = SM.Mrun(mu, SM.getQuarks(
QCD::CHARM).getMass_scale(),
144 double StandardModelMatching::x_t(
const double mu,
const orders order)
const
153 mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
154 SM.getQuarks(
QCD::TOP).getMass(), order);
161 double StandardModelMatching::mt2omh2(
const double mu,
const orders order)
const
163 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
164 SM.getQuarks(
QCD::TOP).getMass(), order);
165 return (mt / SM.getMHl())*(mt / SM.getMHl());
168 double StandardModelMatching::S0(
double x)
const
173 double StandardModelMatching::S0(
double x,
double y)
const
175 if (fabs(1. - y / x) < LEPS){
176 return ((x * (-4. + 15. * x - 12. * x * x + x * x * x +
177 6. * x * x *
log(x))) / (4. *
pow(-1. + x, 3.)));
180 return (x * y * ((1./4. + 3./2. / (1. - x) - 3./4. /
pow(1. - x, 2.)) *
182 (1./4. + 3./2. / (1. - y) - 3./4. /
pow(1. - y, 2.)) *
184 3./4. / (1. - x) / (1. - y)));
187 double StandardModelMatching::S0p(
double x)
const
190 return (x * (4. - 22. * x + 15. * x2 + 2. * x2 * x + x2 * x2 - 18. * x2 *
log(x)) / 4. /
pow(x - 1., 4.));
193 double StandardModelMatching::S11(
double x)
const
198 double xm3 = (x - 1.) * (x - 1.) * (x - 1.);
199 double xm4 = xm3 * (x - 1);
201 return (x * (4. - 39. * x + 168. * x2 + 11. * x3) / 4. / xm3
203 + 3. * x *
log(x)*(-4. + 24. * x - 36. * x2 - 7. * x3 - x4) / 2.
204 / xm4 + 3. * x3 *
pow(
log(x), 2.) * (13. + 4. * x + x2) / 2.
208 double StandardModelMatching::S18(
double x)
const
213 double xm2 = (x - 1.) * (x - 1.);
214 double xm3 = xm2 * (x - 1.);
215 return ((-64. + 68. * x + 17. * x2 - 11. * x3) / 4. / xm2
217 + 20. * x2 - x3 + 7. * x4 - x4 * x) / (x * xm3)
218 +
log(x)*(-32. + 68. * x - 32. * x2 + 28. * x3 - 3. * x4)
219 / (2. * xm3) + x2 *
pow(
log(x), 2.) * (4. - 7. * x + 7. * x2
220 - 2. * x3) / (2. * xm2 * xm2));
223 double StandardModelMatching::S1(
double x)
const
225 return (CF * S11(x) + (Nc - 1.) / 2. / Nc * S18(x));
236 double StandardModelMatching::A0t(
double x)
const
241 return ((-3. * x3 + 2. * x2)/(2. *
pow(1. - x, 4.)) *
log(x) +
242 (22. * x3 - 153. * x2 + 159. * x - 46.)/(36. *
pow(1. - x, 3.)));
245 double StandardModelMatching::B0t(
double x)
const
247 return( x / (4.* (1. - x) * (1. - x)) *
log(x) + 1. / (4. * (1. - x)) );
250 double StandardModelMatching::C0t(
double x)
const
252 return( (3. * x * x + 2. * x) / (8. * (1. - x) * (1. - x)) *
log(x) + (-x * x + 6. * x) / (8. * (1. - x)) );
255 double StandardModelMatching::D0t(
double x)
const
261 return( (-3. * x4 + 30. * x3 - 54. * x2 + 32.* x - 8.) / (18.*
pow(1. - x, 4)) *
log(x)
262 + (-47. * x3 + 237. * x2 - 312. * x + 104.) / (108. *
pow(1.- x, 3.)) );
265 double StandardModelMatching::E0t(
double x)
const
269 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));
273 double StandardModelMatching::F0t(
double x)
const
276 double xm3 = (1. - x)*(1. - x)*(1. - x);
278 return ((3. * x2) / (2. * xm3 * (1. - x)) *
log(x) + ( 5. * x2 * x - 9. * x2 + 30. * x - 8.)/
282 double StandardModelMatching::A1t(
double x,
double mu)
const
285 double x3 = x * x * x;
286 double x4 = x * x * x * x;
287 double xm2 =
pow(1. - x, 2);
288 double xm3 = xm2 * (1. - x);
289 double xm4 = xm3 * (1. - x);
290 double xm5 = xm4 * (1. - x);
291 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
295 (-774. * x4 - 2826. * x3 + 1994. *x2 - 130. * x + 8.)/81./xm5 *
log(x) +
296 (-94. * x4 - 18665. * x3 + 20682. * x2 - 9113. * x + 2006.)/243./xm4 +
297 ((-12. * x4 - 92. * x3 + 56. * x2)/3./(1.-x)/xm4 *
log(x) +
298 (-68. * x4 - 202. * x3 - 804. * x2 + 794. * x - 152.)/27./xm4) * 2. *
log(mu/mt));
301 double StandardModelMatching::B1t(
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(),
310 ( (2. * x2 + 2. * x)/xm3*
log(x) + (4. * x)/xm2 ) * 2. *
log(mu / mt);
315 double StandardModelMatching::C1t(
double x,
double mu)
const
319 double xm2 =
pow(1. - x, 2);
320 double xm3 =
pow(1. - x, 3);
321 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
325 (4. * x3 + 7. * x2 + 29. * x)/(3. * xm2) + ( (8. * x2 + 2. * x)/xm3*
log(x) + (x3 + x2 + 8. * x)/xm2) * 2. *
log(mu / mt);
331 double StandardModelMatching::D1t(
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(),
342 (304. * x4 + 1716. * x3 - 4644. * x2 + 2768. * x - 720.)/(81. * xm5)*
log(x) +
343 (-6175. * x4 + 41608. * x3 - 66723. * x2 + 33106. * x - 7000.)/(729. * xm4) +
344 ( (648. * x4 - 720. * x3 - 232. * x2 - 160. * x + 32.)/(81. * xm5)*
log(x) +
345 (-352. * x4 + 4912. * x3 - 8280. * x2 + 3304. * x - 880.)/(243. * xm4) ) * 2. *
log(mu / mt);
348 double StandardModelMatching::F1t(
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 (-144. * x4 + 3177. * x3 + 3661. * x2 + 250. * x - 32.)/108./xm5 *
log(x)
360 + (-247. * x4 + 11890. * x3 + 31779. * x2 - 2966. * x + 1016.)/648./xm4
361 + ((17. * x3 + 31. * x2)/xm5 *
log(x) + (- 35. * x4 + 170. * x3 + 447. * x2
362 + 338. * x - 56.)/18./xm4)* 2. *
log(mu/mt));
365 double StandardModelMatching::E1t(
double x,
double mu)
const
371 double xm4 =
pow(1. - x, 4);
372 double xm5 =
pow(1. - x, 5);
373 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
378 (-1030. * x4 + 435. * x3 + 1373. * x2 + 1950. * x - 424.)/(108. * xm5) *
log(x) +
379 (-29467. * x4 + 45604. * x3 - 30237. * x2 + 66532. * x - 10960.)/(1944. * xm4) +
380 ( (-1125. * x3 + 1685. * x2 + 380. * x - 76.)/(54. * xm5)*
log(x) +
381 (133. * x4 - 2758. * x3 - 2061. * x2 + 11522. * x - 1652.)/(324. * xm4) ) * 2. *
log(mu / mt);
384 double StandardModelMatching::G1t(
double x,
double mu)
const
390 double xm3 =
pow(1. - x, 3);
391 double xm4 =
pow(1. - x, 4);
393 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
397 (30. * x3 - 42. * x2 - 332. * x + 68.)/(81. * xm4)*
log(x) +
398 (-6. * x3 - 293. * x2 + 161. * x + 42.)/(81. * xm3) +
399 ( (90. * x2 - 160. * x + 40.)/(27. * xm4)*
log(x) +
400 (35. * x3 + 105. * x2 - 210. * x - 20.)/(81. * xm3) ) * 2. *
log(mu / mt);
403 double StandardModelMatching::C7c_3L_at_mW(
double x)
const
407 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)
408 - 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));
411 double StandardModelMatching::C7t_3L_at_mt(
double x)
const
415 return (12.06 + 12.93*z + 3.013*z*
log(z) + 96.71*z*z + 52.73*z*z*
log(z)
416 + 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));
419 double StandardModelMatching::C7t_3L_func(
double x,
double mu)
const
426 double xm1to5 = (x-1.)*(x-1.)*(x-1.)*(x-1.)*(x-1.);
427 double xm1to6 = xm1to5*(x-1.);
429 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
433 +
log(x) * (-26838. * x5 + 25938. * x4 + 627367. * x3 - 331956. * x2 + 16989. * x - 460.)/729./xm1to6
434 + (34400. * x5 + 276644.*x4 - 2668324. * x3 + 1694437.*x2 - 323354.*x + 53077.)/2187./xm1to5)
435 + 4.*
log(mu/mt)*
log(mu/mt) * (
log(x)*(-63. * x5 + 532. * x4 + 2089. * x3 - 1118. * x2)/9./xm1to6
436 + (1186.*x5 - 2705.*x4 - 24791.*x3 - 16099.*x2 + 19229.*x - 2740.)/162./xm1to5) );
440 double StandardModelMatching::C8c_3L_at_mW(
double x)
const
444 return (- 1.870 + 0.1010*z - 0.1218*z*
log(z) + 0.1045*z*z - 0.03748*z*z*
log(z)
445 + 0.01151*z*z*
log(z)*
log(z) - 0.01023*z*z*z + 0.004342*z*z*z*
log(z)
446 + 0.0003031*z*z*z*
log(z)*
log(z) - 0.001537*z*z*z*z + 0.0007532*z*z*z*z*
log(z));
449 double StandardModelMatching::C8t_3L_at_mt(
double x)
const
453 return (- 0.8954 - 7.043*z - 98.34*z*z - 46.21*z*z*
log(z) - 127.1*z*z*z
454 - 181.6*z*z*z*
log(z) + 535.8*z*z*z*z - 76.76*z*z*z*z*
log(z));
457 double StandardModelMatching::C8t_3L_func(
double x,
double mu)
const
464 double xm1to5 = (x-1.)*(x-1.)*(x-1.)*(x-1.)*(x-1.);
465 double xm1to6 = xm1to5*(x-1.);
467 double mt = SM.Mrun(mu, SM.getQuarks(
QCD::TOP).getMass_scale(),
471 +
log(x) * (-15984. * x5 + 152379. * x4 - 1358060. * x3 - 1201653. * x2 - 74190. * x + 9188.)/1944./xm1to6
472 + (109669. * x5 - 1112675. * x4 + 6239377. * x3 + 8967623. * x2 + 768722. * x - 42796.)/11664./xm1to5)
473 + 4. *
log(mu/mt) *
log(mu/mt) * (
log(x) * (-139. * x4 - 2938. * x3 - 2683. * x2)/12./xm1to6
474 + (1295. * x5 - 7009. * x4 + 29495. * x3 + 64513. * x2 + 17458. * x - 2072.)/216./xm1to5) );
478 double StandardModelMatching::Tt(
double x)
const
483 double StandardModelMatching::Wt(
double x)
const
486 double x3 = x * x * x;
487 double x4 = x * x * x * x;
488 double xm2 =
pow(1. - x, 2);
489 double xm3 = xm2 * (1. - x);
490 double xm4 = xm3 * (1. - x);
492 return ((-32. * x4 + 38. * x3 + 15. * x2 - 18. * x)/18./xm4 *
log(x) -
493 (-18. * x4 + 163. * x3 - 259. *x2 + 108. * x)/36./xm3 );
496 double StandardModelMatching::Eet(
double x)
const
499 double xm2 =
pow(1. - x, 2);
500 double xm3 = xm2 * (1. - x);
501 double xm4 = xm3 * (1. - x);
503 return ((x * (18. - 11. * x - x2))/(12. * xm3) +
504 (
log(x) * (x2 * (15. - 16. * x + 4. * x2))/(6. * xm4)) - 2. *
log(x) /3.);
507 double StandardModelMatching::Rest(
double x,
double mu)
const
512 return (-37.01364013973161 + 7.870950908767437 * mt -
513 0.0015295355176062242 * mt * mt + 2.41071411865951 *
Mw -
514 0.20348320015672194 * mt *
Mw - 0.02858827491583899 *
Mw *
Mw +
515 0.001422822903303167 * mt *
Mw *
Mw + (4.257050684362808 + 0.17719711396626878 * mt -
516 0.8190947921716011 *
Mw - 0.002315407459561656 * mt *
Mw + 0.008797408866807221 *
Mw *
Mw) *
log(
517 mu) + (0.49627858125619595 -
pow(5.784745743815408,-8) *mt +
518 0.031869225004473686 *
Mw - 0.00041193393986696286 *
Mw *
Mw) *
log(
522 double StandardModelMatching::Y0(
double x)
const
524 return( x/8. * ((4 - 5 * x + x * x + 3 * x *
log(x))/
pow(x - 1., 2.)) );
527 double StandardModelMatching::Y1(
double x,
double mu)
const
532 double logx =
log(x);
534 double xm2 = xm * xm;
535 double xm3 = xm2 * xm;
537 return ((10. * x + 10. * x2 + 4. * x3)/(3 * xm2) - (2. * x - 8. * x2 - x3 - x4)/xm3 * logx
538 + (2. * x - 14. * x2 + x3 - x4)/(2. * xm3) *
pow(logx, 2.)
540 + 16. * x * (-4. + 3. * x + x3 - 6. * x * logx)/(8. * -xm3) *
log(mu /
Mw));
543 double StandardModelMatching::C7LOeff(
double x)
const
548 return( (3. * x3 - 2. * x2) / (4. *
pow(x - 1., 4.)) *
log(x) + (-8. * x3 - 5. * x2 +
549 7. * x) / (24. *
pow(x-1.,3.)));
552 double StandardModelMatching::C8LOeff(
double x)
const
554 return( -3. * x * x / (4. *
pow( x - 1., 4.)) *
log(x) + (-x * x * x + 5. * x * x + 2. * x) / (8. *
pow(x - 1., 3)) );
557 double StandardModelMatching::C7NLOeff(
double x)
const
562 double xm4 =
pow(x-1.,4.);
563 double xm5 = xm4 * (x - 1);
564 double logx =
log(x);
567 return(
Li2 * ( -16. * x4 - 122. * x3 + 80. * x2 - 8. * x) / (9. * xm4) +
568 (6. * x4 + 46. * x3 -28. * x2) / (3. * xm5) * logx * logx +
569 (-102. * x4 * x - 588. * x4 - 2262. * x3 + 3244. * x2 - 1364. * x + 208.) / (81. * xm5) * logx +
570 (1646. * x4 + 12205. * x3 - 10740. * x2 + 2509. * x - 436.) / (486. * xm4));
573 double StandardModelMatching::C8NLOeff(
double x)
const
578 double xm4 =
pow(x-1.,4.);
579 double xm5 = xm4 * (x - 1);
580 double logx =
log(x);
583 return(
Li2 * ( -4. * x4 + 40. * x3 + 41. * x2 + x) / (6. * xm4) +
584 (-17. * x3 - 31. * x2) / (2. * xm5) * logx * logx +
585 (-210. * x * x4 + 1086. * x4 + 4893. * x3 + 2857. * x2 - 1994. * x + 280.)/(216. * xm5) * logx +
586 (737. * x4 - 14102. * x3 - 28209. * x2 + 610. * x - 508.) / (1296. * xm4));
599 double StandardModelMatching::B0b(
double x)
const
601 return ( 0.25 * ( x / (1. - x) + x / (x * x - 2. * x + 1.) *
log(x) ) );
604 double StandardModelMatching::C0b(
double x)
const
606 return ( x / 8. * ( (x - 6.) / (x - 1.) + (3. * x + 2.) / ( x * x - 2. * x + 1.) *
log(x) ) );
609 double StandardModelMatching::D0b(
double x)
const
612 return ( -4. / 9. *
log(x) + (-19. * x2 * x + 25. * x2) / (36. * (x2 * x - 3. * x2 + 3. * x - 1.))
613 + (x2 * (5. * x2 - 2. * x - 6.) ) / (18. *
pow(x - 1.,4.)) *
log(x) );
616 double StandardModelMatching::D0b_tilde(
double x)
const
618 return (D0b(x) - 4./9.);
621 double StandardModelMatching::E0b(
double x)
const
625 return ( -2./3. *
log(x) + (18. * x - 11. * x2 - x2 * x) / (12.* (- x2 * x +3. * x2 -3. * x +1.)) +
626 (x2 * (15. - 16. * x +4. * x2))/(6.*
pow(1.-x,4.)) *
log(x) );
630 double StandardModelMatching::B1d(
double x,
double mu)
const
634 double xmuw = mu*mu/
Mw/
Mw;
635 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
636 double xmut = mut*mut/
Mw/
Mw;
638 return (-(8.-183.*x+47.*x*x)/24./xmo/xmo - (8.+27.*x+93.*x*x)/24./xmo/xmo/xmo*
log(x) +
639 (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 +
640 (2.+x)/36./x*M_PI*M_PI + 19./6.*B0b(x) - B0b(x)*
log(xmuw) + 4.*x/xmo/xmo*
log(xmut) -
641 (2.*x+2.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
644 double StandardModelMatching::B1d_tilde(
double x,
double mu)
const
648 double xmuw = mu*mu/
Mw/
Mw;
650 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) +
651 (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) +
652 3.*B0b(x)*
log(xmuw));
655 double StandardModelMatching::B1u(
double x,
double mu)
const
659 double xmuw = mu*mu/
Mw/
Mw;
660 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
661 double xmut = mut*mut/
Mw/
Mw;
663 return (-(46.*x+18.*x*x)/3./xmo/xmo - (16.*x-80.*x*x)/3./xmo/xmo/xmo*
log(x) -
664 (9.*x+23.*x*x)/2./xmo/xmo/xmo*
log(x)*
log(x) - 6.*x/xmo/xmo*dilog1mx - 38./3.*B0b(x) +
665 4.*B0b(x)*
log(xmuw) - 16.*x/xmo/xmo*
log(xmut) + (8.*x+8.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
668 double StandardModelMatching::B1u_tilde(
double x,
double mu)
const
671 double logx =
log(x);
674 return (-6.*x/xmo - 3.*x*logx*logx/2./xmo/xmo - 6.*x*dilogomx - B0b(x)*(10. + 12.*L));
677 double StandardModelMatching::C1ew(
double x)
const
681 double mut = SM.getQuarks(
QCD::TOP).getMass_scale();
682 double xmut = mut*mut/
Mw/
Mw;
684 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) +
685 (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 +
686 (8.*x+x*x+x*x*x)/xmo/xmo*
log(xmut) + (2.*x+8.*x*x)/xmo/xmo/xmo*
log(x)*
log(xmut));
689 double StandardModelMatching::Zew(
double xt,
double xz)
const
693 z0ew = 5.1795 + 0.038*(Mt_muw-166.) + 0.015*(
Mw-80.394);
694 z1ew = -2.1095 + 0.0067*(Mt_muw-166.) + 0.026*(
Mw-80.394);
700 double xtmo = xt - 1.;
701 double xzmo = xz - 1.;
704 z0ew = -xt*(20.-20.*xt2-457.*xz+19.*xt*xz+8.*xz2)/32./xtmo/xz +
705 xt*(10.*xt3-11.*xt2*xz-xt*(30.-16.*xz)+4.*(5.-17.*xz+xz2))/16./xtmo/xtmo/xz*
log(xt) +
706 xt*(10.-10.*xt2-17.*xz-xt*xz-4.*xz2)/16./xtmo/xz*
log(xz) -
707 xz*(10.*xt2-xt*(4.-xz)+8.*xz)/32./xtmo/xtmo*
log(xt)*
log(xt) - xz2/4.*
log(xz)*
log(xz) -
708 ((8.+12.*xt+xt2)/4./xz - 5.*xtmo*xtmo*(2.+xt)/16./xz2 -
709 (12.-3.*xt3-3.*xt2*(4.-xz)+4.*xt*(3.-xz)+4.*xz-xz2)/8./xtmo/xtmo)*
log(xt)*
log(xz) -
710 ((8.+12.*xt+xt2)/2./xz - 5.*xtmo*xtmo*(2.+xt)/8./xz2 - 3.*(4.+8.*xt+2.*xt2-xt3)/4./xtmo/xtmo)*dilog1mxt +
711 xzmo*xzmo*(5.-6.*xz-5.*xz2)/4./xz2*dilog1mxz - (5.-16.*xz+12.*xz2+2*xz3*xz)/24./xz2*M_PI*M_PI +
712 xt*(4.-xz)*(88.-30.*xz-25.*xz2-2.*xt*(44.-5.*xz-6.*xz2))/32./xtmo/xtmo/xz*phi_z(xz/4.) +
713 (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) -
714 ((22.+33.*xt-xt2)/16./xtmo/xz - 5.*xtmo*(2.+xt)/16./xz2 +
715 (2.+5.*xt2+10.*xz+xt*(15.+xz))/16./xtmo/xtmo)*phi_xy(xt,xz);
717 z1ew = xt*(20.-20.*xt2-265.*xz+67.*xt*xz+8.*xz2)/48./xtmo/xz -
718 xt*(10.*xt3-15.*xt2*xz+4.*(5.-7.*xz+2.*xz2)-xt*(30.+20.*xz+4.*xz2))/24./xtmo/xtmo/xz*
log(xt) -
719 xt*(10.-10.*xt2-33.*xz+15.*xt*xz-4.*xz2)/24./xtmo/xz*
log(xz) +
720 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) +
721 ((20.+6.*xt+xt2)/12./xz - 5.*xtmo*xtmo*(2.+xt)/24./xz2 +
722 (3.*xt3+2.*xt2*(12.-xz)-xt*(18.-16.*xz+xz2)-2.*(9.+4.*xz-xz2))/12./xtmo/xtmo)*
log(xt)*
log(xz) +
723 ((20.+6.*xt+xt2)/6./xz - 5.*xtmo*xtmo*(2.+xt)/12./xz2 - (6.+6.*xt-8.*xt2-xt3)/2./xtmo/xtmo)*dilog1mxt -
724 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 +
725 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 -
726 (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) +
727 ((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);
729 return(z0ew+sW2*z1ew);
733 double StandardModelMatching::Gew(
double xt,
double xz,
double mu)
const
735 double xmuw = mu*mu/
Mw/
Mw;
737 return (Zew(xt,xz) + 5.*C0b(xt) + 6.*C0b(xt)*
log(xmuw));
740 double StandardModelMatching::Hew(
double xt,
double xz,
double mu)
const
742 double xmuw = mu*mu/
Mw/
Mw;
744 return (Zew(xt,xz) - 7.*C0b(xt) + 6.*C0b(xt)*
log(xmuw));
751 double StandardModelMatching::X0t(
double x)
const{
752 return((x/8.)*((x+2.)/(x-1.)+(3.*x -6)/(x-1.)/(x-1.)*
log(x)));
755 double StandardModelMatching::X1t(
double x)
const{
760 double xm3 =
pow(1.-x,3.);
761 double logx =
log(x);
763 return (-(29. * x - x2 -4. * x3) / (3. * (1. - x) * (1. - x))
764 - logx * (x + 9. * x2 - x3 - x4) / xm3
765 + logx * logx * (8. * x + 4. * x2 + x3 - x4) / (2. * xm3)
767 - 8. * x *
log(Mut*Mut/Muw/Muw) * (8. - 9. * x + x3 + 6. * logx)/8./xm3 );
770 double StandardModelMatching::Xewt(
double x,
double a,
double mu)
const{
773 double swsq = (M_PI * Ale )/(
sqrt(2) * GF *
Mw *
Mw);
784 double M_PI2 = M_PI * M_PI;
790 double xm2 = (x - 1.) * (x - 1.);
791 double xm3 = xm2 * (x - 1.);
792 double axm = a * x - 1.;
793 double logx =
log(x);
794 double loga =
log(a);
796 A[0] = (16. - 48. * a) * M_PI2 + (288. * a - (32. - 88. * a) * M_PI2 ) * x
797 + (2003. * a + 4. * (4. - 6. * a - a2 ) * M_PI2 )* x2
798 + (9. * a * (93. + 28. * a) - 4. * a * (3. - 2. * a + 8. * a2) * M_PI2 ) * x3
799 + (3. * a * (172. - 49. * a - 32. * a2) + 4. * a * (20. - a + 16. * a2 ) * M_PI2 ) * x4
800 - (3. * a * (168. + 11. * a - 24. * a2 ) + 4. * a * (45. + 8. *a2) * M_PI2) * x5
801 + 96. * a * M_PI2 * x6;
803 A[1] = -768. * x - (525. - 867. * a) * x2 + (303. + 318. * a) * x3 - 195. * a * x4;
805 A[2] = -8.*(95. - 67. * a + 11. * a2 ) * x2 + 2. * (662. - 78. * a - 177. * a2 + 40. * a3 ) * x3
806 - (608. + 476. * a - 595. * a2 + 114. * a3 ) * x4
807 + (44. + 188. * a - 321. * a2 + 103. * a3 - 8. * a4 ) * x5
808 - a*(28. - 72. * a + 33. * a2 - 4. * a3 ) * x6;
810 A[3] = +48. - 10.*(57. + 4. * a) * x+ 51.*(29. + 10. * a) * x2 -
811 (841. + 1265. * a) * x3 + (308. + 347. * a) * x4
812 - (28. - 40. * a) * x5 + 12. * a * x6 ;
814 A[4] = + 768. + (816. - 768. * a) * x+ (1240. - 1232. * a) * x2
815 - 4.*(415. + 2. * a) * x3 + (311. + 722. * a) * x4
816 + (145. - 267. * a) * x5 - (36. + 51. * a) * x6 + 20. * a * x7 ;
818 A[5] = + 328. * x- (536. + 900. * a) * x2 + (208. + 1584. * a + 670. * a2 ) * x3
819 - a * (668. + 1161. * a + 225. * a2 ) * x4
820 + a2 * (479. + 362. * a + 28. * a2 ) * x5
821 - a3 *(143. + 42. * a) * x6 + 16. * a4 * x7;
823 A[6] = + 32. - 4.*(44. - 9. * a) * x + (384. - 322. * a - 400. * a2 ) * x2
824 - (400. - 869. * a - 1126. * a2 - 696. * a3 ) * x3
825 + 2.*(80. - 488. * a - 517. * a2 - 631. * a3 - 264. * a4 ) * x4
826 + (48. + 394. * a + 269. * a2 + 190. * a3 + 882. * a4 + 196. * a5 ) * x5
827 - (64. - 58. * a - 89. * a2 - 95. * a3 + 34. * a4 + 296. * a5 + 32. * a6 ) * x6
828 + (16. - 59. * a - 79. * a2 + 256. * a3 - 239. * a4
829 + 57. * a5 + 48. * a6 ) * x7
830 + (1. - a) * (1. - a) * (1. - a) * a2 * (29. + 16. * a) * x8 ;
832 A[7] = + 28. * a2 * x2 - 32. * a3 * x3;
834 A[8] = - 288. + 36.*(1. + 8. * a) * x + 6.*(647. + 87. * a) * x2 + 5.*(55. - 927. * a - 132. * a2 ) * x3
835 - (1233. + 98. * a - 879. * a2 - 192. * a3 ) * x4
836 + (360. + 1371. * a - 315. * a2 - 264. * a3 ) * x5
837 - 24. * a * (17. - 4. * a2) * x6;
839 A[9] = + 32. + 4.*(-44. + 29. * a) * x- 12.*(-32. + 77. * a + 31. * a2 ) * x2
840 + 2.*(-200. + 837. * a + 767. * a2 + 182. * a3 ) * x3
841 - 2.*(-80. + 625. * a + 905. * a2 + 520. * a3 + 82. * a4 ) * x4
842 + (48. + 1079. * a + 590. * a2 + 1002. * a3 + 462. * a4 + 32. * a5 ) * x5
843 + (-64. - 1160. * a - 501. * a2 - 364. * a3 - 486. * a4 - 72. * a5 ) * x6
844 + (16. + 729. * a + 1038. * a2 + 38. * a3 + 238. * a4 + 52. * a5 ) * x7
845 - a*(192. + 743. * a + 50. * a3 + 12. * a4 ) * x8 + 192. * a2 * x8 * x;
847 A[10] = + 16. * x + 324. * x2 - 36. * x4;
849 A[11] = + 216. * x - 672. * x2 + 152. * x3;
851 A[12] = - 16. * x + (16. - 42. * a) * x2 + (16. + 21. * a + 60. * a2 ) * x3
852 - (16 - 21. * a + 45. * a2 + 32. * a3 ) * x4 - a2 * (7. - 24. * a) * x5;
854 A[13] = - 32. + (144. - 68. * a) * x + (-240. + 334. * a + 332. * a2 ) * x2
855 + (160. - 551. * a - 660. * a2 - 364. * a3 ) * x3
856 + a * (329. + 451. * a + 650. * a2 + 164. * a3 ) * x4
857 + (-48. - a - 59. * a2 - 523. * a3 - 316. * a4 - 32. * a5 ) * x5
858 + (16. - 43. * a -93. * a2 + 255. * a3 + 287. * a4 + 32. * a5 ) * x6
859 - a2 * (-29. + 42. * a + 103. * a2 + 8. * a3 ) * x7;
861 A[14] = - 144.*(1. - a)*(1. - a) * x2 + 144. * (1. - a) * (1. - a) * x3 - 36. * (1. - a) * (1. - a) * x4;
863 A[15] = - 32. + 96. * a + (48. - 32. * a) * x - 176. * a * x2 - (16. - 74. * a) * x3 + 212. * a * x4;
865 A[16] = - 32. + (64. - 100. * a) * x- 8.*(4. - 34. * a -29. * a2 ) * x2
866 - 4. * a * (34. + 170. * a + 33. * a2 ) * x3
867 + 8. * a2 * (47. + 51. * a + 4. * a2) * x4 - 16. * a3 * (15. + 4. * a) * x5
870 C[0] = 1. / (3.* a * xm2 * x);
872 C[1] = phi1(0.25) / (xm3 * axm);
874 C[2] = phi1(0.25 * a) / (2. * xm3 * axm);
876 C[3] = phi1(1. / 4. / x) / (2. * xm3 * axm);
878 C[4] = phi1(0.25 * x) / (2. * xm3 * axm);
880 C[5] = phi1(a * x * 0.25) / (xm3 * axm);
882 C[6] = phi2(1. / a / x, 1. / a) / (2. * a2 * x2 * xm3 * axm);
884 C[7] = loga *
log(a) / axm;
886 C[8] = logx / (xm3 * axm * 3.);
888 C[9] = logx * logx / ((x-1.) * xm3 * axm * 2. * a * x);
890 C[10] = 2. *
log(mu/
Mw) / xm2;
892 C[11] = logx * 2. *
log(mu/
Mw) / xm3;
894 C[12] = loga / (xm2 * axm);
896 C[13] = logx * loga / (2. * a * xm3 * x * axm);
904 for (
int i=0; i<10; i++){
908 return (b/128./swsq);
911 double StandardModelMatching::phi1(
double z)
const{
918 + M_PI * M_PI / 3.));
922 std::stringstream out;
924 throw std::runtime_error(
"StandardModelMatching::phi1(double z)" + out.str() +
" <0");
929 double StandardModelMatching::phi2(
double x,
double y)
const{
930 double l =
sqrt((1. - x - y) * (1. - x - y) - 4. * x * y);
932 if ((l * l) >= 0. || (
sqrt(x) +
sqrt(y)) <= 1.){
935 else if((l * l) < 0. || (
sqrt(x) +
sqrt(y)) > 1.){
941 std::stringstream out;
943 throw std::runtime_error(
"StandardModelMatching::phi2(double x, double y) wrong" + out.str());
948 double StandardModelMatching::phi_z(
double z)
const
950 double beta =
sqrt(1.-1./z);
959 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.));
963 std::stringstream out;
965 throw std::runtime_error(
"StandardModelMatching::phi_z(double z)" + out.str() +
" <0");
969 double StandardModelMatching::phi_xy(
double x,
double y)
const
971 double lambda =
sqrt((1.-x-y)*(1.-x-y) - 4.*x*y);
978 if ((lambda*lambda) >= 0.){
979 return(lambda*(2.*
log((1.+x-y-lambda)/2.)*
log((1.-x+y-lambda)/2.) -
log(x)*
log(y) -
980 2.*diloga - 2.*dilogb + M_PI*M_PI/3.));
982 else if((lambda*lambda) < 0.){
983 return(-2.*
sqrt(-lambda*lambda)*(clausenxy + clausenx + clauseny));
986 std::stringstream out;
988 throw std::runtime_error(
"StandardModelMatching::phi_xy(double x, double y) wrong" + out.str());
998 double gammam = 6. * CF;
1002 double xt = x_t(Mut);
1007 switch (mcdbd2.getScheme()) {
1014 std::stringstream out;
1015 out << mcdbd2.getScheme();
1016 throw std::runtime_error(
"StandardModel::CMdb2(): scheme " + out.str() +
"not implemented");
1021 switch (mcdbd2.getOrder()) {
1024 mcdbd2.setCoeff(0, co * co * 4. * (SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
1025 (Bt + gamma0 *
log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Mut /
Mw))),
NLO);
1026 #if SUSYFIT_DEBUG & 1
1027 std::cout <<
"Mw = " <<
Mw <<
" mt(mut=" << Mut <<
")= " << Mt_mut <<
" xt(mut=" << Mut <<
")= " << xt <<
"matching of DB=2: S0(xt) = " << S0(xt) <<
1028 ", S1(xt) = " << S1(xt) +
1029 (Bt + gamma0 *
log(Muw /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Muw /
Mw)
1030 <<
", lambdat_d^2 = " << SM.getCKM().computelamt_d()*SM.getCKM().computelamt_d() << std::endl;
1033 mcdbd2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1036 std::stringstream out;
1037 out << mcdbd2.getOrder();
1038 throw std::runtime_error(
"StandardModelMatching::CMdbd2(): order " + out.str() +
"not implemented");
1042 vmcdb.push_back(mcdbd2);
1048 double gammam = 6. * CF;
1050 double xt = x_t(Mut);
1055 switch (mcdbs2.getScheme()) {
1062 std::stringstream out;
1063 out << mcdbs2.getScheme();
1064 throw std::runtime_error(
"StandardModel::CMdbs2(): scheme " + out.str() +
"not implemented");
1069 switch (mcdbs2.getOrder()) {
1072 mcdbs2.setCoeff(0, co * co * 4. * (SM.Als(Mut,
FULLNLO) / 4. / M_PI * (S1(xt) +
1073 (Bt + gamma0 *
log(Mut /
Mw)) * S0(xt, xt) + 2. * gammam * S0p(xt) *
log(Mut /
Mw))),
NLO);
1075 mcdbs2.setCoeff(0, co * co * 4. * (S0(xt, xt)),
LO);
1078 std::stringstream out;
1079 out << mcdbs2.getOrder();
1080 throw std::runtime_error(
"StandardModelMatching::CMdbs2(): order " + out.str() +
"not implemented");
1083 vmcds.push_back(mcdbs2);
1093 std::vector<WilsonCoefficient>& StandardModelMatching::CMdk2()
1099 switch (mcdk2.getOrder()) {
1102 mcdk2.setCoeff(0, 0.,
NLO);
1104 mcdk2.setCoeff(0, 0.,
LO);
1107 std::stringstream out;
1108 out << mcdk2.getOrder();
1109 throw std::runtime_error(
"StandardModelMatching::CMdk2(): order " + out.str() +
"not implemented");
1112 vmck2.push_back(mcdk2);
1120 switch (mcd1Buras.getScheme()) {
1126 std::stringstream out;
1127 out << mcd1Buras.getScheme();
1128 throw std::runtime_error(
"StandardModel::CMd1Buras(): scheme " + out.str() +
"not implemented");
1131 mcd1Buras.setMu(Muw);
1133 switch (mcd1Buras.getOrder()) {
1136 mcd1Buras.setCoeff(0, SM.Als(Muw,
FULLNLO) / 4. / M_PI * 11./2. ,
NLO);
1137 mcd1Buras.setCoeff(1, SM.Als(Muw,
FULLNLO) / 4. / M_PI * (-11./6.) ,
NLO);
1138 for (
int j=2; j<10; j++){
1139 mcd1Buras.setCoeff(j, 0.,
NLO);
1142 mcd1Buras.setCoeff(0, 0.,
LO);
1143 mcd1Buras.setCoeff(1, 1.,
LO);
1144 for (
int j=2; j<10; j++){
1145 mcd1Buras.setCoeff(j, 0.,
LO);
1149 std::stringstream out;
1150 out << mcd1Buras.getOrder();
1151 throw std::runtime_error(
"StandardModelMatching::CMd1Buras(): order " + out.str() +
"not implemented");
1154 vmcd1Buras.push_back(mcd1Buras);
1164 switch (mcd1.getScheme()) {
1170 std::stringstream out;
1171 out << mcd1.getScheme();
1172 throw std::runtime_error(
"StandardModel::CMd1(): scheme " + out.str() +
"not implemented");
1177 switch (mcd1.getOrder()) {
1180 mcd1.setCoeff(0, SM.Als(Muw,
FULLNLO) / 4. / M_PI * 15. ,
NLO);
1181 for (
int j=1; j<10; j++){
1182 mcd1.setCoeff(j, 0.,
NLO);
1185 mcd1.setCoeff(0, 0. ,
LO);
1186 mcd1.setCoeff(1, 1. ,
LO);
1187 for (
int j=2; j<10; j++){
1188 mcd1.setCoeff(j, 0.,
LO);
1192 std::stringstream out;
1193 out << mcd1.getOrder();
1194 throw std::runtime_error(
"StandardModelMatching::CMd1(): order " + out.str() +
"not implemented");
1197 vmcd1.push_back(mcd1);
1207 switch (mcdd2.getScheme()) {
1213 std::stringstream out;
1214 out << mcdd2.getScheme();
1215 throw std::runtime_error(
"StandardModel::CMdd2(): scheme " + out.str() +
"not implemented");
1220 switch (mcdd2.getOrder()) {
1223 for(
int i=0; i<5; i++)
1224 mcdd2.setCoeff(i, 0.,
NLO);
1226 for(
int j=0; j<5; j++)
1227 mcdd2.setCoeff(j, 0.,
LO);
1230 std::stringstream out;
1231 out << mcdd2.getOrder();
1232 throw std::runtime_error(
"StandardModelMatching::CMdd2(): order " + out.str() +
"not implemented");
1235 vmcd2.push_back(mcdd2);
1239 std::vector<WilsonCoefficient>& StandardModelMatching::CMK()
1242 double xt = x_t(Muw);
1246 switch (mck.getScheme()) {
1252 std::stringstream out;
1253 out << mck.getScheme();
1254 throw "StandardModel::CMK(): scheme " + out.str() +
"not implemented";
1259 switch (mck.getOrder()) {
1262 for (
int j=0; j<10; j++){
1263 mck.setCoeff(j, lam_t * SM.Als(Muw,
FULLNLO) / 4. / M_PI *
1264 setWCbnlep(j, xt,
NLO),
NLO);
1265 mck.setCoeff(j, lam_t * Ale / 4. / M_PI *
1269 for (
int j=0; j<10; j++){
1270 mck.setCoeff(j, lam_t * setWCbnlep(j, xt,
LO),
LO);
1271 mck.setCoeff(j, 0.,
LO_QED);
1275 std::stringstream out;
1276 out << mck.getOrder();
1277 throw "StandardModelMatching::CMK(): order " + out.str() +
"not implemented";
1280 vmck.push_back(mck);
1288 std::vector<WilsonCoefficient>& StandardModelMatching::CMKCC()
1291 double xt = x_t(Muw);
1295 switch (mckcc.getScheme()) {
1301 std::stringstream out;
1302 out << mckcc.getScheme();
1303 throw "StandardModel::CMKCC(): scheme " + out.str() +
"not implemented";
1308 switch (mckcc.getOrder()) {
1311 for (
int j=0; j<2; j++){
1312 mckcc.setCoeff(j, lam_t * setWCbnlep(j, xt,
NLO),
NLO);
1314 for (
int j=2; j<10; j++){
1315 mckcc.setCoeff(j, 0. ,
NLO);
1318 for (
int j=0; j<2; j++){
1319 mckcc.setCoeff(j, lam_t * setWCbnlep(j, xt,
LO),
LO);
1321 for (
int j=2; j<10; j++){
1322 mckcc.setCoeff(j, 0. ,
LO);
1326 std::stringstream out;
1327 out << mckcc.getOrder();
1328 throw "StandardModelMatching::CMKCC(): order " + out.str() +
"not implemented";
1331 vmckcc.push_back(mckcc);
1344 double xt = x_t(Muw);
1348 switch (mcbsg.getScheme()) {
1354 std::stringstream out;
1355 out << mcbsg.getScheme();
1356 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
1360 double alSo4pi = SM.Alstilde5(Muw);
1362 switch (mcbsg.getOrder()) {
1364 for (
int j=0; j<8; j++){
1365 mcbsg.setCoeff(j, alSo4pi * alSo4pi * setWCbsg(j, xt,
NNLO) ,
NNLO);
1368 for (
int j=0; j<8; j++){
1369 mcbsg.setCoeff(j, alSo4pi * setWCbsg(j, xt,
NLO) ,
NLO);
1372 for (
int j=0; j<8; j++){
1373 mcbsg.setCoeff(j, setWCbsg(j, xt,
LO),
LO);
1377 std::stringstream out;
1378 out << mcbsg.getOrder();
1379 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
1382 vmcbsg.push_back(mcbsg);
1389 vmcprimebsg.clear();
1391 switch (mcprimebsg.getScheme()) {
1397 std::stringstream out;
1398 out << mcprimebsg.getScheme();
1399 throw std::runtime_error(
"StandardModel::CMprimebsg(): scheme " + out.str() +
"not implemented");
1402 mcprimebsg.setMu(Muw);
1404 switch (mcprimebsg.getOrder()) {
1406 for (
int j=0; j<8; j++){
1407 mcprimebsg.setCoeff(j, 0.,
NNLO);
1410 for (
int j=0; j<8; j++){
1411 mcprimebsg.setCoeff(j, 0.,
NLO);
1414 for (
int j=0; j<8; j++){
1415 mcprimebsg.setCoeff(j, 0.,
LO);
1419 std::stringstream out;
1420 out << mcprimebsg.getOrder();
1421 throw std::runtime_error(
"StandardModelMatching::CMprimebsg(): order " + out.str() +
"not implemented");
1424 vmcprimebsg.push_back(mcprimebsg);
1425 return(vmcprimebsg);
1432 double StandardModelMatching::setWCbsg(
int i,
double x,
orders order)
1436 if ( swf == sw && xcachef == x){
1439 return ( CWbsgArrayNNLO[i] );
1442 return ( CWbsgArrayNLO[i] );
1445 return ( CWbsgArrayLO[i] );
1448 std::stringstream out;
1450 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1454 swf = sw; xcachef = x;
1459 CWbsgArrayNNLO[0] = -Tt(x)+7987./72.+17./3.*M_PI*M_PI+475./6.*L+17.*L*L;
1460 CWbsgArrayNNLO[1] = 127./18.+4./3.*M_PI*M_PI+46./3.*L+4.*L*L;
1461 CWbsgArrayNNLO[2] = G1t(x,Muw)-680./243.-20./81.*M_PI*M_PI-68./81.*L-20./27*L*L;
1462 CWbsgArrayNNLO[3] = E1t(x,Muw)+950./243.+10./81.*M_PI*M_PI+124./27.*L+10./27.*L*L;
1463 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;
1464 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;
1466 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];
1467 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];
1469 CWbsgArrayNLO[0] = 15. + 6*L;
1470 CWbsgArrayNLO[3] = E0t(x) - 7./9. + 2./3.* L;
1471 CWbsgArrayNLO[6] = -0.5*A1t(x,Muw) + 713./243. + 4./81.*L - 4./9.*CWbsgArrayNLO[3];
1472 CWbsgArrayNLO[7] = -0.5*F1t(x,Muw) + 91./324. - 4./27.*L - 1./6.*CWbsgArrayNLO[3];
1474 CWbsgArrayLO[1] = 1.;
1475 CWbsgArrayLO[6] = -0.5*A0t(x) - 23./36.;
1476 CWbsgArrayLO[7] = -0.5*F0t(x) - 1./3.;
1479 std::stringstream out;
1481 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1486 return ( CWbsgArrayNNLO[i] );
1489 return ( CWbsgArrayNLO[i] );
1492 return ( CWbsgArrayLO[i] );
1495 std::stringstream out;
1497 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1510 double xt = x_t(Muw);
1514 switch (mcBMll.getScheme()) {
1520 std::stringstream out;
1521 out << mcBMll.getScheme();
1522 throw std::runtime_error(
"StandardModel::CMBKstrall(): scheme " + out.str() +
"not implemented");
1527 switch (mcBMll.getOrder()) {
1530 for (
int j=0; j<13; j++){
1531 mcBMll.setCoeff(j, SM.Als(Muw,
FULLNNLO) / 4. / M_PI * setWCBMll(j, xt,
NLO) ,
NLO);
1534 for (
int j=0; j<13; j++){
1535 mcBMll.setCoeff(j, setWCBMll(j, xt,
LO),
LO);
1539 std::stringstream out;
1540 out << mcBMll.getOrder();
1541 throw std::runtime_error(
"StandardModelMatching::CMBKstrall(): order " + out.str() +
"not implemented");
1544 vmcBMll.push_back(mcBMll);
1552 double StandardModelMatching::setWCBMll(
int i,
double x,
orders order)
1556 if ( swa == sw && xcachea == x){
1560 return ( CWBMllArrayNLO[i] );
1563 return ( CWBMllArrayLO[i] );
1566 std::stringstream out;
1568 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1572 swa = sw; xcachea = x;
1577 CWBMllArrayNLO[0] = 15. + 6*L;
1578 CWBMllArrayNLO[3] = E0t(x) - (7./9.) + (2./3.* L);
1579 CWBMllArrayNLO[6] = -0.5*A1t(x,Muw) + 713./243. + 4./81.*L - 4./9.*CWBMllArrayNLO[3];
1580 CWBMllArrayNLO[7] = -0.5*F1t(x,Muw) + 91./324. - 4./27.*L - 1./6.*CWBMllArrayNLO[3];
1581 CWBMllArrayNLO[8] = (1-4.*sW2) / (sW2) *C1t(x,Muw) - 1./(sW2) * B1t(x,Muw) - D1t(x,Muw) + 1./sW2 + 524./729. -
1582 128.*M_PI*M_PI/243. - 16.*L/3. -128.*L*L/81.;
1583 CWBMllArrayNLO[9] = (B1t(x,Muw) - C1t(x,Muw)) / sW2 - 1./sW2;
1585 CWBMllArrayLO[1] = 1.;
1586 CWBMllArrayLO[6] = -0.5*A0t(x) - 23./36.;
1587 CWBMllArrayLO[7] = -0.5*F0t(x) - 1./3.;
1588 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);
1589 CWBMllArrayLO[9] = 1./(sW2) * (B0t(x) - C0t(x)) -1./(4.*sW2);
1592 std::stringstream out;
1594 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1600 return ( CWBMllArrayNLO[i] );
1603 return ( CWBMllArrayLO[i] );
1606 std::stringstream out;
1608 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1621 vmcprimeBMll.clear();
1622 mcprimeBMll.setMu(Muw);
1623 switch (mcprimeBMll.getOrder()) {
1626 for (
int j=0; j<13; j++){
1627 mcprimeBMll.setCoeff(j, 0.,
NLO);
1630 for (
int j=0; j<13; j++){
1631 mcprimeBMll.setCoeff(j, 0.,
LO);
1635 std::stringstream out;
1636 out << mcprimeBMll.getOrder();
1637 throw std::runtime_error(
"StandardModelMatching::CMBKstrall(): order " + out.str() +
"not implemented");
1639 vmcprimeBMll.push_back(mcprimeBMll);
1640 return(vmcprimeBMll);
1653 std::vector<WilsonCoefficient>& StandardModelMatching::CMbsmm()
1658 double xt = x_t(Muw);
1664 switch (mcbsmm.getScheme()) {
1670 std::stringstream out;
1671 out << mcbsmm.getScheme();
1672 throw std::runtime_error(
"StandardModel::CMbsmm(): scheme " + out.str() +
"not implemented");
1677 switch (mcbsmm.getOrder()) {
1680 for (
int j=0; j<8; j++){
1682 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) *
1688 for (
int j=0; j<8; j++){
1690 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) *
1691 setWCBsmm(j, xt,
NLO),
NLO);
1695 for (
int j=0; j<8; j++){
1697 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmm(j, xt,
LO),
LO);
1701 std::stringstream out;
1702 out << mcbsmm.getOrder();
1703 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order " + out.str() +
"not implemented");
1706 switch (mcbsmm.getOrder_qed()) {
1709 for (
int j=0; j<8; j++){
1711 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1715 for (
int j=0; j<8; j++){
1717 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
NLO_QED12);
1721 for (
int j=0; j<8; j++){
1723 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1726 for (
int j=0; j<8; j++){
1728 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
NLO_QED02);
1731 for (
int j=0; j<8; j++){
1733 mcbsmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,1)) * setWCBsmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1737 for (
int j=0; j<8; j++){
1739 mcbsmm.setCoeff(j,(Vckm(2,2).conjugate() * Vckm(2,1)) * 0.,
LO_QED);
1743 std::stringstream out;
1744 out << mcbsmm.getOrder_qed();
1745 throw std::runtime_error(
"StandardModelMatching::CMbsmm(): order_qed " + out.str() +
"not implemented");
1747 vmcbsmm.push_back(mcbsmm);
1759 std::vector<WilsonCoefficient>& StandardModelMatching::CMbdmm()
1764 double xt = x_t(Muw);
1770 switch (mcbdmm.getScheme()) {
1776 std::stringstream out;
1777 out << mcbdmm.getScheme();
1778 throw std::runtime_error(
"StandardModel::CMbdmm(): scheme " + out.str() +
"not implemented");
1783 switch (mcbdmm.getOrder()) {
1786 for (
int j=0; j<8; j++){
1788 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) *
1793 for (
int j=0; j<8; j++){
1795 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) *
1796 setWCBdmm(j, xt,
NLO),
NLO);
1800 for (
int j=0; j<8; j++){
1802 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmm(j, xt,
LO),
LO);
1806 std::stringstream out;
1807 out << mcbdmm.getOrder();
1808 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order " + out.str() +
"not implemented");
1811 switch (mcbdmm.getOrder_qed()) {
1814 for (
int j=0; j<8; j++){
1816 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED22),
NLO_QED22);
1820 for (
int j=0; j<8; j++){
1822 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
NLO_QED12);
1826 for (
int j=0; j<8; j++){
1828 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED21),
NLO_QED21);
1831 for (
int j=0; j<8; j++){
1833 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
NLO_QED02);
1836 for (
int j=0; j<8; j++){
1838 mcbdmm.setCoeff(j, (Vckm(2,2).conjugate() * Vckm(2,0)) * setWCBdmmEW(j, xt,
NLO_QED11),
NLO_QED11);
1842 for (
int j=0; j<8; j++){
1844 mcbdmm.setCoeff(j,(Vckm(2,2).conjugate() * Vckm(2,0)) * 0.,
LO_QED);
1848 std::stringstream out;
1849 out << mcbdmm.getOrder_qed();
1850 throw std::runtime_error(
"StandardModelMatching::CMbdmm(): order_qed " + out.str() +
"not implemented");
1852 vmcbdmm.push_back(mcbdmm);
1861 std::vector<WilsonCoefficient>& StandardModelMatching::CMbtaunu(
QCD::meson meson_i)
1866 mcbtaunu.setMu(Muw);
1868 switch (mcbtaunu.getOrder()) {
1872 if (meson_i ==
QCD::B_P) mcbtaunu.setCoeff(0, 4.*GF * Vckm(0,2) /
sqrt(2.) ,
LO);
1873 else if (meson_i ==
QCD::B_C) mcbtaunu.setCoeff(0, 4.*GF * Vckm(1,2) /
sqrt(2.) ,
LO);
1874 else throw std::runtime_error(
"StandardModelMatching::CMbtaunu(): meson not implemented");
1877 std::stringstream out;
1878 out << mcbtaunu.getOrder();
1879 throw std::runtime_error(
"StandardModelMatching::CMbtaunu(): order " + out.str() +
"not implemented");
1882 vmcbtaunu.push_back(mcbtaunu);
1903 case 0: lambda = SM.getCKM().computelamt_d();
1905 case 1: lambda = SM.getCKM().computelamt_s();
1908 std::stringstream out;
1910 throw std::runtime_error(
"case" + out.str() +
"not implemented; implemented i=0,1,2,3");
1913 double xt = x_t(Muw);
1914 double co = ( GF /
sqrt(2));
1918 switch (mcbnlep.getScheme()) {
1924 std::stringstream out;
1925 out << mcbnlep.getScheme();
1926 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
1931 switch (mcbnlep.getOrder()) {
1934 for (
int j=0; j<10; j++){
1935 mcbnlep.setCoeff(j,co * lambda * SM.Als(Muw,
FULLNLO) / 4. / M_PI *
1936 setWCbnlep(j, xt,
NLO),
NLO);
1937 mcbnlep.setCoeff(j, co * lambda * Ale / 4. / M_PI *
1941 for (
int j=0; j<10; j++){
1942 mcbnlep.setCoeff(j, co * lambda * setWCbnlep(j, xt,
LO),
LO);
1943 mcbnlep.setCoeff(j, 0.,
LO_QED);
1947 std::stringstream out;
1948 out << mcbnlep.getOrder();
1949 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
1952 vmcbnlep.push_back(mcbnlep);
1968 case 0:
lambda1 = SM.getCKM().computelamu_d();
1970 case 1:
lambda1 = SM.getCKM().computelamu_s();
1972 case 2:
lambda1 = Vckm(0,2).conjugate()*Vckm(1,0);
1974 case 3:
lambda1 = Vckm(1,2).conjugate()*Vckm(0,0);
1976 case 4:
lambda1 = Vckm(0,2).conjugate()*Vckm(1,1);
1978 case 5:
lambda1 = Vckm(1,2).conjugate()*Vckm(2,1);
1981 std::stringstream out;
1983 throw std::runtime_error(
"case" + out.str() +
" not existing; implemented i=0,1,2,3");
1986 double xt = x_t(Muw);
1987 double co = ( GF /
sqrt(2));
1991 switch (mcbnlepCC.getScheme()) {
1997 std::stringstream out;
1998 out << mcbnlepCC.getScheme();
1999 throw std::runtime_error(
"StandardModel::CMbsg(): scheme " + out.str() +
"not implemented");
2002 mcbnlepCC.setMu(Muw);
2004 switch (mcbnlepCC.getOrder()) {
2007 for (
int j=0; j<2; j++){
2008 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
NLO),
NLO);
2010 for (
int j=2; j<10; j++){
2011 mcbnlepCC.setCoeff(j, 0. ,
NLO);
2014 for (
int j=0; j<2; j++){
2015 mcbnlepCC.setCoeff(j, co *
lambda1 * setWCbnlep(j, xt,
LO),
LO); }
2016 for (
int j=2; j<10; j++){
2017 mcbnlepCC.setCoeff(j, 0. ,
LO); }
2020 std::stringstream out;
2021 out << mcbnlepCC.getOrder();
2022 throw std::runtime_error(
"StandardModelMatching::CMbsg(): order " + out.str() +
"not implemented");
2025 vmcbnlepCC.push_back(mcbnlepCC);
2029 std::vector<WilsonCoefficient>& StandardModelMatching::CMkpnn() {
2033 double xt = x_t(SM.getMut());
2034 double a = 1./mt2omh2(Muw);
2035 double lambda5 = SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda()*SM.getCKM().getLambda();
2041 switch (mckpnn.getOrder()) {
2044 mckpnn.setCoeff(0, SM.Als(SM.getMut(),
FULLNLO)/4./M_PI*lam_t.imag()*X1t(xt)/
lambda5,
NLO);
2046 mckpnn.setCoeff(0, lam_t.imag()*X0t(xt)/
lambda5,
LO);
2049 std::stringstream out;
2050 out << mckpnn.getOrder();
2051 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): order " + out.str() +
"not implemented");
2054 switch (mckpnn.getOrder_qed()) {
2056 mckpnn.setCoeff(0, Ale/4./M_PI*lam_t.imag()*Xewt(xt, a, Muw)/
lambda5,
NLO_QED11);
2060 std::stringstream out;
2061 out << mckpnn.getOrder();
2062 throw std::runtime_error(
"StandardModelMatching::CMkpnn(): order " + out.str() +
"not implemented");
2065 vmckpnn.push_back(mckpnn);
2070 std::vector<WilsonCoefficient>& StandardModelMatching::CMkmm() {
2074 double xt = x_t(Muw);
2080 switch (mckmm.getOrder()) {
2083 mckmm.setCoeff(0, SM.Als(Muw,
FULLNLO)/4./M_PI*lam_t.real()*Y1(xt, Muw)/SM.getCKM().getLambda(),
NLO);
2085 mckmm.setCoeff(0, lam_t.real()*Y0(xt)/SM.getCKM().getLambda(),
LO);
2088 std::stringstream out;
2089 out << mckmm.getOrder();
2090 throw std::runtime_error(
"StandardModelMatching::CMkmm(): order " + out.str() +
"not implemented");
2093 vmckmm.push_back(mckmm);
2098 std::vector<WilsonCoefficient>& StandardModelMatching::CMBXsnn() {
2100 double xt = x_t(Muw);
2106 switch (mcbsnn.getOrder()) {
2109 mcbsnn.setCoeff(0, (Vckm(2,1).abs() / Vckm(1,2).abs())*
2112 mcbsnn.setCoeff(0, (Vckm(2,1).abs() / Vckm(1,2).abs())*
2116 std::stringstream out;
2117 out << mcbsnn.getOrder();
2118 throw std::runtime_error(
"StandardModelMatching::CMXsnn(): order " + out.str() +
"not implemented");
2121 vmcbsnn.push_back(mcbsnn);
2126 std::vector<WilsonCoefficient>& StandardModelMatching::CMBXdnn() {
2128 double xt = x_t(Muw);
2134 switch (mcbdnn.getOrder()) {
2137 mcbsnn.setCoeff(0, (Vckm(2,2).abs() / Vckm(1,2).abs()) *
2140 mcbsnn.setCoeff(0, (Vckm(2,2).abs() / Vckm(1,2).abs()) *
2144 std::stringstream out;
2145 out << mcbdnn.getOrder();
2146 throw std::runtime_error(
"StandardModelMatching::CXdnn(): order " + out.str() +
"not implemented");
2149 vmcbdnn.push_back(mcbdnn);
2157 double StandardModelMatching::setWCBsmm(
int i,
double x,
orders order)
2160 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) );
2162 if ( swd == sw && xcached == x){
2165 return (CWBsmmArrayNNLOqcd[i]);
2168 return (CWBsmmArrayNLOqcd[i]);
2171 return (CWBsmmArrayLOqcd[i]);
2174 std::stringstream out;
2176 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2180 swd = sw; xcached = x;
2184 CWBsmmArrayNNLOqcd[0] = sw * sw * (-Tt(x) + 7987./72. + 17. * M_PI * M_PI/3. + 475. * L/6. + 17. * L * L);
2185 CWBsmmArrayNNLOqcd[1] = sw * sw * (127./18. + 4. * M_PI * M_PI /3. + 46. * L/3. + 4. * L * L);
2186 CWBsmmArrayNNLOqcd[2] = sw * sw * (G1t(x, Muw) - 680./243. - 20. * M_PI * M_PI /81. - 68. * L/81. - 20. * L* L/27.);
2187 CWBsmmArrayNNLOqcd[3] = sw * sw * (E1t(x, Muw) + 950./243. + 10.* M_PI * M_PI /81. + 124. * L/27. + 10. * L * L/27.);
2188 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.);
2189 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.);
2192 CWBsmmArrayNLOqcd[0] = sw * sw * (15. + 6. * L);
2193 CWBsmmArrayNLOqcd[3] = sw * sw * (Eet(x) - 2./3. + 2. * L/3.);
2196 CWBsmmArrayLOqcd[1] = sw * sw * 1.;
2200 std::stringstream out;
2202 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2206 return (CWBsmmArrayNNLOqcd[i]);
2210 return (CWBsmmArrayNLOqcd[i]);
2214 return (CWBsmmArrayLOqcd[i]);
2218 std::stringstream out;
2220 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2224 double StandardModelMatching::setWCBsmmEW(
int i,
double x,
orders_qed order_qed)
2226 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) ) ;
2228 double mt = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
2231 if ( swe == sw && xcachee == x){
2234 return (CWBsmmArrayNLOewt4[i]);
2237 return (CWBsmmArrayNLOewt2[i]);
2240 return (CWBsmmArrayNLOew[i]);
2243 std::stringstream out;
2245 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2251 swe = sw; xcachee = x;
2260 CWBsmmArrayNLOewt4[7] = sw * sw * (1./(sw * sw)) * Rest(x, Muw) ;
2272 CWBsmmArrayNLOewt2[6] = sw * sw * ((1. - 4. * sw * sw) * C1t(x, Muw) / (sw * sw) - B1t(x, Muw)/(sw * sw)
2273 - D1t(x, Muw) + 1./ (sw * sw) + 524./729. - 128. * M_PI * M_PI / 243.
2274 - 16. * L / 3. - 128. * L * L /81. ) ;
2275 CWBsmmArrayNLOewt2[7] = sw * sw * ((1./(sw * sw)) * (B1t(x, Muw) - C1t(x, Muw)) - 1./(sw * sw)) ;
2281 CWBsmmArrayNLOew[6] = sw * sw * (Y0(x)/(sw * sw) + Wt(x) + 4./9. - 4. * 2 *
log(Muw/mt)/9.);
2282 CWBsmmArrayNLOew[7] = sw * sw * (-Y0(x)/(sw * sw));
2286 std::stringstream out;
2288 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2293 return (CWBsmmArrayNLOewt4[i]);
2296 return (CWBsmmArrayNLOewt2[i]);
2299 return (CWBsmmArrayNLOew[i]);
2302 std::stringstream out;
2304 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2314 double StandardModelMatching::setWCBdmm(
int i,
double x,
orders order)
2317 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) );
2319 if ( swb == sw && xcacheb == x){
2322 return (CWBdmmArrayNNLOqcd[i]);
2325 return (CWBdmmArrayNLOqcd[i]);
2328 return (CWBdmmArrayLOqcd[i]);
2331 std::stringstream out;
2333 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2337 swb = sw; xcacheb = x;
2341 CWBdmmArrayNNLOqcd[0] = sw * sw * (-Tt(x) + 7987./72. + 17. * M_PI * M_PI/3. + 475. * L/6. + 17. * L * L);
2342 CWBdmmArrayNNLOqcd[1] = sw * sw * (127./18. + 4. * M_PI * M_PI /3. + 46. * L/3. + 4. * L * L);
2343 CWBdmmArrayNNLOqcd[2] = sw * sw * (G1t(x, Muw) - 680./243. - 20. * M_PI * M_PI /81. - 68. * L/81. - 20. * L* L/27.);
2344 CWBdmmArrayNNLOqcd[3] = sw * sw * (E1t(x, Muw) + 950./243. + 10.* M_PI * M_PI /81. + 124. * L/27. + 10. * L * L/27.);
2345 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.);
2346 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.);
2349 CWBdmmArrayNLOqcd[0] = sw * sw * (15. + 6. * L);
2350 CWBdmmArrayNLOqcd[3] = sw * sw * (Eet(x) - 2./3. + 2. * L/3.);
2353 CWBdmmArrayLOqcd[1] = sw * sw * 1.;
2357 std::stringstream out;
2359 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2363 return (CWBdmmArrayNNLOqcd[i]);
2367 return (CWBdmmArrayNLOqcd[i]);
2371 return (CWBdmmArrayLOqcd[i]);
2375 std::stringstream out;
2377 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2381 double StandardModelMatching::setWCBdmmEW(
int i,
double x,
orders_qed order_qed)
2383 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2.) * GF *
Mw *
Mw) ) ;
2385 double mt = SM.Mrun(Muw, SM.getQuarks(
QCD::TOP).getMass_scale(),
2388 if ( swc == sw && xcachec == x){
2391 return (CWBdmmArrayNLOewt4[i]);
2394 return (CWBdmmArrayNLOewt2[i]);
2397 return (CWBdmmArrayNLOew[i]);
2400 std::stringstream out;
2402 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2408 swc = sw; xcachec = x;
2412 CWBdmmArrayNLOewt4[7] = sw * sw * (1./(sw * sw)) * Rest(x, Muw) ;
2415 CWBdmmArrayNLOewt2[6] = sw * sw * ((1. - 4. * sw * sw) * C1t(x, Muw) / (sw * sw) - B1t(x, Muw)/(sw * sw)
2416 - D1t(x, Muw) + 1./ (sw * sw) + 524./729. - 128. * M_PI * M_PI / 243.
2417 - 16. * L / 3. - 128. * L * L /81. ) ;
2418 CWBdmmArrayNLOewt2[7] = sw * sw * ((1./(sw * sw)) * (B1t(x, Muw) - C1t(x, Muw)) - 1./(sw * sw)) ;
2421 CWBdmmArrayNLOew[6] = sw * sw * (Y0(x)/(sw * sw) + Wt(x) + 4./9. - 4. * 2 *
log(Muw/mt)/9.);
2422 CWBdmmArrayNLOew[7] = sw * sw * (-Y0(x)/(sw * sw));
2426 std::stringstream out;
2428 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2433 return (CWBdmmArrayNLOewt4[i]);
2436 return (CWBdmmArrayNLOewt2[i]);
2439 return (CWBdmmArrayNLOew[i]);
2442 std::stringstream out;
2444 throw std::runtime_error(
"order_qed" + out.str() +
"not implemeted");
2452 double StandardModelMatching::setWCbnlep(
int i,
double x,
orders order)
2454 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2) * GF *
Mw *
Mw) );
2456 if ( swb == sw && xcacheb == x){
2460 return (CWbnlepArrayNLOqcd[i]);
2463 return (CWbnlepArrayLOqcd[i]);
2466 std::stringstream out;
2468 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2472 swb = sw; xcacheb = x;
2477 CWbnlepArrayNLOqcd[0] = 11./2.;
2478 CWbnlepArrayNLOqcd[1] = -11./6.;
2479 CWbnlepArrayNLOqcd[2] = -1./6. * (E0b(x) - 2./3.);
2480 CWbnlepArrayNLOqcd[3] = 0.5 * (E0b(x) - 2./3.);
2481 CWbnlepArrayNLOqcd[4] = -1./6. * (E0b(x) - 2./3.);
2482 CWbnlepArrayNLOqcd[5] = 0.5 * (E0b(x) - 2./3.);
2484 CWbnlepArrayLOqcd[1] = 1.;
2487 std::stringstream out;
2489 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2495 return (CWbnlepArrayNLOqcd[i]);
2498 return (CWbnlepArrayLOqcd[i]);
2501 std::stringstream out;
2503 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
2507 double StandardModelMatching::setWCbnlepEW(
int i,
double x)
2509 sw =
sqrt( (M_PI * Ale ) / (
sqrt(2) * GF *
Mw *
Mw) ) ;
2511 if ( swb == sw && xcacheb == x){
2512 return (CWbnlepArrayNLOew[i]);
2515 swc = sw; xcachec = x;
2517 CWbnlepArrayNLOew[1] = -35./18.;
2518 CWbnlepArrayNLOew[2] = 2. / (3. * sw * sw) * ( 2. * B0b(x) + C0b(x) );
2519 CWbnlepArrayNLOew[6] = 2./3. * (4. * C0b(x) + D0b(x) - 4./9.);
2520 CWbnlepArrayNLOew[8] = 2./3. * (4. * C0b(x) + D0b(x) - 4./9. + (1. / (sw * sw)) *
2521 (10. * B0b(x) - 4. * C0b(x)) );
2523 return (CWbnlepArrayNLOew[i]);
2528 double xc = x_c(SM.getMuc());
2529 gslpp::complex co = GF / 2. / M_PI *
Mw * SM.getCKM().computelamc().conjugate();
2530 #if SUSYFIT_DEBUG & 2
2531 std::cout <<
"im lambdac = " << (SM.getCKM().computelamc()*SM.getCKM().computelamc()).imag() << std::endl;
2533 return(co * co * S0(xc, xc));
2538 double xc = SM.Mrun4(SM.getMuc(),SM.getQuarks(
QCD::CHARM).getMass_scale(),SM.getQuarks(
QCD::CHARM).getMass())/
Mw;
2540 double xt = SM.Mrun4(SM.getMuw(),SM.getQuarks(
QCD::TOP).getMass_scale(),SM.getQuarks(
QCD::TOP).getMass())/
Mw;
2542 double co = GF / 2. / M_PI *
Mw;
2543 #if SUSYFIT_DEBUG & 2
2544 std::cout <<
"im lamc lamt = " << (SM.getCKM().computelamc()*SM.getCKM().computelamt()).imag() << std::endl;
2547 return( co * co * 2. * SM.getCKM().computelamc().conjugate() * lam_t.conjugate() * S0(xc, xt) );
2552 double xt = x_t(Mut);
2554 #if SUSYFIT_DEBUG & 2
2555 double pino = SM.Mrun(Mut, SM.Mp2Mbar(SM.getMtpole(),
FULLNNLO),
2557 std::cout <<
"mt(" << Mut<<
")" << pino << std::endl;
2558 double poldo = pino*pino/SM.
Mw()/SM.Mw() ;
2559 std::cout <<
"S0(" << poldo <<
") = " << S0(poldo,poldo) << std::endl;
2560 std::cout <<
"S0(" << xt <<
") = " << S0(xt,xt) << std::endl;
2561 std::cout <<
"im lamt = " << (SM.getCKM().computelamt()*SM.getCKM().computelamt()).imag() << std::endl;
2564 return ( co * co * S0(xt, xt) );
2571 std::vector<WilsonCoefficient>& StandardModelMatching::CMDLij(
int li_lj)
2578 switch (mcDLij.getOrder()) {
2582 mcDLij.setCoeff(0, 0.,
LO);
2583 mcDLij.setCoeff(1, 0.,
LO);
2586 std::stringstream out;
2587 out << mcDLij.getOrder();
2588 throw std::runtime_error(
"StandardModelMatching::CMDLij(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2591 vmcDLij.push_back(mcDLij);
2596 std::vector<WilsonCoefficient>& StandardModelMatching::CMDLi3j(
int li_lj)
2603 switch (mcDLi3j.getOrder()) {
2607 mcDLi3j.setCoeff(0, 0.,
LO);
2608 mcDLi3j.setCoeff(1, 0.,
LO);
2609 mcDLi3j.setCoeff(2, 0.,
LO);
2610 mcDLi3j.setCoeff(3, 0.,
LO);
2611 mcDLi3j.setCoeff(4, 0.,
LO);
2612 mcDLi3j.setCoeff(5, 0.,
LO);
2613 mcDLi3j.setCoeff(6, 0.,
LO);
2614 mcDLi3j.setCoeff(7, 0.,
LO);
2615 mcDLi3j.setCoeff(8, 0.,
LO);
2616 mcDLi3j.setCoeff(9, 0.,
LO);
2617 mcDLi3j.setCoeff(10, 0.,
LO);
2618 mcDLi3j.setCoeff(11, 0.,
LO);
2619 mcDLi3j.setCoeff(12, 0.,
LO);
2620 mcDLi3j.setCoeff(13, 0.,
LO);
2621 mcDLi3j.setCoeff(14, 0.,
LO);
2622 mcDLi3j.setCoeff(15, 0.,
LO);
2623 mcDLi3j.setCoeff(16, 0.,
LO);
2624 mcDLi3j.setCoeff(17, 0.,
LO);
2625 mcDLi3j.setCoeff(18, 0.,
LO);
2626 mcDLi3j.setCoeff(19, 0.,
LO);
2629 std::stringstream out;
2630 out << mcDLi3j.getOrder();
2631 throw std::runtime_error(
"StandardModelMatching::CMDLi3j(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2634 vmcDLi3j.push_back(mcDLi3j);
2639 std::vector<WilsonCoefficient>& StandardModelMatching::CMmueconv()
2644 mcmueconv.setMu(Muw);
2646 switch (mcmueconv.getOrder()) {
2650 mcmueconv.setCoeff(0, 0.,
LO);
2651 mcmueconv.setCoeff(1, 0.,
LO);
2652 mcmueconv.setCoeff(2, 0.,
LO);
2653 mcmueconv.setCoeff(3, 0.,
LO);
2654 mcmueconv.setCoeff(4, 0.,
LO);
2655 mcmueconv.setCoeff(5, 0.,
LO);
2656 mcmueconv.setCoeff(6, 0.,
LO);
2657 mcmueconv.setCoeff(7, 0.,
LO);
2660 std::stringstream out;
2661 out << mcmueconv.getOrder();
2662 throw std::runtime_error(
"StandardModelMatching::CMmueconv(): order " + out.str() +
" not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
2665 vmcmueconv.push_back(mcmueconv);
2670 std::vector<WilsonCoefficient>& StandardModelMatching::CMgminus2mu()
2673 vmcgminus2mu.clear();
2675 mcgminus2mu.setMu(Muw);
2677 switch (mcgminus2mu.getOrder()) {
2680 mcgminus2mu.setCoeff(0, 0.,
NLO);
2681 mcgminus2mu.setCoeff(1, 0.,
NLO);
2684 mcgminus2mu.setCoeff(0, 0.,
LO);
2685 mcgminus2mu.setCoeff(1, 0.,
LO);
2688 std::stringstream out;
2689 out << mcgminus2mu.getOrder();
2690 throw std::runtime_error(
"StandardModelMatching::CMgminus2mu(): order " + out.str() +
" not implemented.");
2693 vmcgminus2mu.push_back(mcgminus2mu);
2694 return(vmcgminus2mu);
2698 double StandardModelMatching::C3funNNLO(
double x)
2700 return(G1t(x,Muw)-680./243.-20./81.*M_PI*M_PI-68./81.*L-20./27*L*L);
2703 double StandardModelMatching::C4fun(
double x,
orders ord)
2707 return(E1t(x,Muw)+950./243.+10./81.*M_PI*M_PI+124./27.*L+10./27.*L*L);
2709 return(E0t(x)- 7./9.+2./3.* L);
2711 std::stringstream out;
2713 throw "StandardModelMatching::C4fun(): order " + out.str() +
"not implemented";
2718 double StandardModelMatching::C5funNNLO(
double x)
2720 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);
2723 double StandardModelMatching::C6funNNLO(
double x)
2725 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);
2728 double StandardModelMatching::C7funLO(
double x)
2730 return(-0.5*A0t(x) - 23./36.);
2733 double StandardModelMatching::C8funLO(
double x)
2735 return(-0.5*F0t(x) - 1./3.);
2738 double StandardModelMatching::fbb(
double x)
2740 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
2741 +1.95163*x*x*x*x*x*x-0.00550335*
log(x));
2744 double StandardModelMatching::gbb(
double x)
2749 return(2.*
sqrt(4.-x)*acos(
sqrt(x/4.)));
2751 throw "StandardModelMatching::gbb(): defined for non-negative argument only.";
2754 double StandardModelMatching::taub2(
double x)
2757 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.+
2762 double StandardModelMatching::C10_OS1(
double x,
double mu)
2764 double Mw_2 =
Mw *
Mw;
2765 double mt_2 = x * Mw_2;
2766 double mt =
sqrt(mt_2);
2768 double a1 = 69354.0995830457;
2769 double b1 = 114.072536156018;
2770 double c1 = -1802.9029763021;
2771 double d1 = -0.6880489462364;
2772 double e1 = 11.7037717083906;
2773 double f1 = -1.422845251416;
2774 double g1 = 0.00856609262141;
2775 double h1 = 0.00005469961928;
2776 double a2 = 4144.6231891191;
2777 double b2 = 0.1706756075896;
2778 double c2 = -104.32434492409;
2779 double d2 = 0.00072836578577;
2780 double e2 = 0.65260451121855;
2781 double f2 = -0.0007261241908;
2782 double a3 = -218.96716792134;
2783 double b3 = -0.039653543101;
2784 double c3 = 5.57241334587797;
2785 double d3 = 2.8289915e-6;
2786 double e3 = -0.0351477930751;
2787 double f3 = 0.00048165797959;
2789 return (a1 + b1 * mt + c1 *
Mw + d1 * mt_2 + e1 * Mw_2 + f1 * mt *
Mw + g1 * mt_2 *
Mw + h1 * mt_2 * mt +
2790 (a2 + b2 * mt + c2 *
Mw + d2 * mt_2 + e2 * Mw_2 + f2 * mt *
Mw) *
log(mu) +
2791 (a3 + b3 * mt + c3 *
Mw + d3 * mt_2 + e3 * Mw_2 + f3 * mt *
Mw) *
log(mu) *
log (mu));
2794 double StandardModelMatching::Delta_t(
double mu,
double x)
2796 return(18.*
log(mu/Mt_muw)+11.-x/2.+x*(x-6.)/2.*
log(x)+(x-4.)/2.*
sqrt(x)*gbb(x));