8 #include <gsl/gsl_sf.h>
10 #include <boost/bind.hpp>
17 #define MPI2 (M_PI * M_PI)
20 : mySM(SM_i), myF_1(), myF_2(), myHeff(
"CPMLQB", SM_i,
QCD2,
QED2), WC(15, 9, 0.)
24 w_H = gsl_integration_cquad_workspace_alloc(100);
26 phi1 = 50./3. - 8. * MPI2 / 3.;
30 - 104480. / 729. * MPI2 + 1571095. / 1458. - 848. / 27. * MPI2 *
log(2.);
104 for(
unsigned int qed_ord =
QED0; qed_ord <=
QED2; qed_ord++)
105 for(
unsigned int qcd_ord =
QCD0; qcd_ord <=
QCD2; qcd_ord++)
108 for (
unsigned int i = 0; i < 15; i++)
109 if (i != 8 && i != 9 && qed_ord < 2 && qcd_ord * qed_ord < 2)
159 double ash = asin(
sqrt(sh)/2.);
162 return (4.*M_PI*M_PI/27.*(2.+sh)/umsh/umsh/umsh/umsh-4./9.*(11.-16.*sh+8.*sh*sh)/umsh/umsh-
163 8./9.*
sqrt(sh*(4.-sh))/umsh/umsh/umsh*(9.-5.*sh+2.*sh*sh)*ash-16./3.*(2+sh)/
164 umsh/umsh/umsh/umsh*ash*ash-8./9.*sh/umsh*
log(sh)-32./9.*
log(
muh)-i*8./9.*M_PI);
169 double ash = asin(
sqrt(sh)/2.);
172 return (-8.*M_PI*M_PI/27.*(4.-sh)/umsh/umsh/umsh/umsh+8./9.*(5.-2.*sh)/umsh/umsh+
173 16./9.*
sqrt((4.-sh)/sh)/umsh/umsh/umsh*(4.+3.*sh-sh*sh)*ash+32./3.*(4.-sh)/
174 umsh/umsh/umsh/umsh*ash*ash+16./9./umsh*
log(sh));
252 if (gsl_integration_cquad(&
FH, sh_min, sh_max, 1.e-5, 1.e-4,
w_H, &
aveH, &
errH, NULL) != 0)
253 return std::numeric_limits<double>::quiet_NaN();
270 else if (obs ==
"TL")
274 throw std::runtime_error(
"BXqll::getH: Angular observable not implemented");
282 for(
unsigned int i = 0; i < 2; i++)
283 for(
unsigned int j = 0; j < 15; j++)
295 for (
unsigned int i = 0; i < 7; i++)
297 for (
unsigned int j = i; j < 7; j++)
306 return pre * Phi_ll_u;
314 for(
unsigned int i = 0; i < 2; i++)
315 for(
unsigned int j = 0; j < 15; j++)
327 for (
unsigned int i = 0; i < 7; i++)
329 for (
unsigned int j = i; j < 7; j++)
338 return pre * Phi_ll_u;
358 return pre * Phi_ll_u;
369 for (
unsigned int j = 0; j < 15; j++)
371 for (
unsigned int i = 0; i <= j; i++)
384 Hij_T.push_back(Hij);
390 for (
unsigned int j = 0; j < 15; j++)
392 for (
unsigned int i = 0; i <= j; i++)
405 Hij_T.push_back(Hij);
411 for (
unsigned int j = 0; j < 15; j++)
413 for (
unsigned int i = 0; i <= j; i++)
426 Hij_T.push_back(Hij);
431 Hij_T.push_back(Hij);
435 for (
unsigned int j = 0; j < 15; j++)
437 for (
unsigned int i = 0; i <= j; i++)
453 Hij_T.push_back(Hij);
459 for (
unsigned int j = 0; j < 15; j++)
461 for (
unsigned int i = 0; i <= j; i++)
485 Hij_T.push_back(Hij);
490 Hij_T.push_back(Hij);
491 Hij_T.push_back(Hij);
495 for (
unsigned int j = 0; j < 15; j++)
497 for (
unsigned int i = 0; i <= j; i++)
514 Hij_T.push_back(Hij);
518 Hij_T.push_back(Hij);
529 for (
unsigned int j = 0; j < 15; j++)
531 for (
unsigned int i = 0; i <= j; i++)
544 Hij_L.push_back(Hij);
550 for (
unsigned int j = 0; j < 15; j++)
552 for (
unsigned int i = 0; i <= j; i++)
565 Hij_L.push_back(Hij);
571 for (
unsigned int j = 0; j < 15; j++)
573 for (
unsigned int i = 0; i <= j; i++)
586 Hij_L.push_back(Hij);
591 Hij_L.push_back(Hij);
595 for (
unsigned int j = 0; j < 15; j++)
597 for (
unsigned int i = 0; i <= j; i++)
613 Hij_L.push_back(Hij);
619 for (
unsigned int j = 0; j < 15; j++)
621 for (
unsigned int i = 0; i <= j; i++)
645 Hij_L.push_back(Hij);
650 Hij_L.push_back(Hij);
651 Hij_L.push_back(Hij);
655 for (
unsigned int j = 0; j < 15; j++)
657 for (
unsigned int i = 0; i <= j; i++)
674 Hij_L.push_back(Hij);
678 Hij_L.push_back(Hij);
689 for (
unsigned int j = 0; j < 15; j++)
691 for (
unsigned int i = 0; i <= j; i++)
698 Hij_A.push_back(Hij);
704 for (
unsigned int j = 0; j < 15; j++)
706 for (
unsigned int i = 0; i <= j; i++)
713 Hij_A.push_back(Hij);
719 for (
unsigned int j = 0; j < 15; j++)
721 for (
unsigned int i = 0; i <= j; i++)
728 Hij_A.push_back(Hij);
733 Hij_A.push_back(Hij);
737 for (
unsigned int j = 0; j < 15; j++)
739 for (
unsigned int i = 0; i <= j; i++)
748 Hij_A.push_back(Hij);
754 for (
unsigned int j = 0; j < 15; j++)
756 for (
unsigned int i = 0; i <= j; i++)
769 Hij_A.push_back(Hij);
774 Hij_A.push_back(Hij);
775 Hij_A.push_back(Hij);
776 Hij_A.push_back(Hij);
778 Hij_A.push_back(Hij);
817 M9i.assign(0,
aletilde *
f_Huber(sh, -32./27., 4./3., 0., 0., -16./27.));
819 M9i.assign(2,
aletilde *
f_Huber(sh, -16./9., 6., -7./2., 2./9., 2./27.));
820 M9i.assign(3,
aletilde *
f_Huber(sh, 32./27., 0., -2./3., 8./27., 8./81.));
821 M9i.assign(4,
aletilde *
f_Huber(sh, -112./9., 60., -38., 32./9., -136./27.));
822 M9i.assign(5,
aletilde *
f_Huber(sh, 512./27., 0., -32./3., 128./27., 320./81.));
823 M9i.assign(10,
aletilde *
f_Huber(sh, -272./27., 4., 7./6., -74./27., 358./81.));
824 M9i.assign(11,
aletilde *
f_Huber(sh, -32./81., 0., 2./9., -8./81., -8./243.));
825 M9i.assign(12,
aletilde *
f_Huber(sh, -2768./27., 40., 38./3., -752./27., 1144./81.));
826 M9i.assign(13,
aletilde *
f_Huber(sh, -512./81., 0., 32./9., -128./81., -320./243.));
840 M_10.push_back(M10i);
845 M_10.push_back(M10i);
850 double umsh = 1. - sh;
851 double sigma = 8.*umsh*umsh/sh;
852 double chi_1 = 4.*umsh*(5.*sh + 3.)/3./sh;
853 double chi_2 = 4.*(3.*sh*sh + 2.*sh - 9.)/sh;
859 return sigma + deltaMb2;
863 throw std::runtime_error(
"BXqll::S77_T: order not implemented");
869 double umsh = 1. - sh;
870 double sigma = 8.*umsh*umsh;
871 double chi_1 = 4.*umsh*umsh;
872 double chi_2 = 4.*(9.*sh*sh - 6.*sh - 7.);
878 return sigma + deltaMb2;
882 throw std::runtime_error(
"BXqll::S79_T: order not implemented");
888 double umsh = 1. - sh;
889 double sigma = 2.*sh*umsh*umsh;
890 double chi_1 = -sh*umsh*(3.*sh + 5.)/3.;
891 double chi_2 = sh*(15.*sh*sh - 14.*sh - 5.);
894 136.374*umsh*umsh*umsh + 119.344*umsh*umsh - 15.6175*umsh - 31.1706;
899 return sigma + deltaMb2;
905 throw std::runtime_error(
"BXqll::S99_T: order not implemented");
911 return S99_T(sh,order);
916 double umsh = 1. - sh;
917 double sigma = 4.*umsh*umsh;
918 double chi_1 = -2.*umsh*(3.*sh + 13.)/3.;
919 double chi_2 = 2.*(15.*sh*sh - 6.*sh - 13.);
925 return sigma + deltaMb2;
929 throw std::runtime_error(
"BXqll::S77_L: order not implemented");
935 double umsh = 1. - sh;
936 double sigma = 4.*umsh*umsh;
937 double chi_1 = 2.*umsh*umsh;
938 double chi_2 = 2.*(3.*sh*sh - 6.*sh - 1.);
944 return sigma + deltaMb2;
948 throw std::runtime_error(
"BXqll::S79_L: order not implemented");
954 double umsh = 1. - sh;
955 double sigma = umsh*umsh;
956 double chi_1 = umsh*(13.*sh + 3.)/6.;
957 double chi_2 = (-17.*sh*sh + 10.*sh + 3.)/2.;
960 11.7493*umsh*umsh + 12.2293*umsh - 38.6457;
965 return sigma + deltaMb2;
971 throw std::runtime_error(
"BXqll::S99_L: order not implemented");
977 return S99_L(sh,order);
982 double umsh = 1. - sh;
983 double sigma = -8.*umsh*umsh;
984 double chi_1 = -4.*(3.*sh*sh + 2.*sh + 3.)/3.;
985 double chi_2 = -4.*(9.*sh*sh - 10.*sh - 7.);
991 return sigma + deltaMb2;
995 throw std::runtime_error(
"BXqll::S710_A: order not implemented");
1001 double umsh = 1. - sh;
1002 double sigma = -4.*umsh*umsh;
1003 double chi_1 = -2.*sh*(3.*sh*sh + 2.*sh + 3.)/3.;
1004 double chi_2 = -2.*sh*(15.*sh*sh - 14.*sh - 9.);
1007 183.885*umsh*umsh*umsh + 158.739*umsh*umsh - 29.0124*umsh - 30.8056;
1012 return sigma + deltaMb2;
1018 throw std::runtime_error(
"BXqll::S910_A: order not implemented");
1024 double umsh = 1. - sh, uptsh = 1. + 3.*sh;
1036 if (i == 0 && j == 1) {
1043 if (i == 0 && j == 1) {
1049 throw std::runtime_error(
"BXqll::cij_T: order not implemented");
1052 if ((i == 1 && j >= i) || 10*(i+1) + j+1 == 12)
1053 return (-
pre * umsh * umsh * uptsh * F_M7_M9);
1055 return (
pre / 6. * umsh * umsh * uptsh * F_M7_M9);
1062 double umsh = 1. - sh, tmsh = 3. - sh;
1074 if (i == 0 && j == 1) {
1081 if (i == 0 && j == 1) {
1087 throw std::runtime_error(
"BXqll::cij_L: order not implemented");
1090 if ((i == 1 && j >= i) || 10*(i+1) + j+1 == 12)
1091 return (-
pre * umsh * umsh * tmsh * F_M7_M9);
1093 return (
pre / 6. * umsh * umsh * tmsh * F_M7_M9);
1100 unsigned int ij = 100*(i + 1) + (j + 1);
1101 double umsh = 1. - sh, uptsh = 1. + 3.*sh;
1118 double umsh = (1. - sh);
1119 double sigma77_T = 8.*umsh*umsh/sh, sigma79_T = 8.*umsh*umsh, sigma99_T = 2.*sh*umsh*umsh;
1122 ij = 100*(i + 1) + (j + 1);
1124 ij = 10*(i + 1) + (j + 1);
1158 double umsh = (1. - sh);
1159 double sigma77_L = 4.*umsh*umsh, sigma79_L = 4.*umsh*umsh, sigma99_L = umsh*umsh;
1162 ij = 100* (i + 1) + (j + 1);
1164 ij = 10*(i + 1) + (j + 1);
1198 double umsh = (1. - sh);
1199 double sigma710_A = -8.*umsh*umsh, sigma910_A = -4.*sh*umsh*umsh;
1202 ij = 100*(i + 1) + (j + 1);
1204 ij = 10*(i + 1) + (j + 1);
1223 double umsh = 1.-sh;
1224 double umsqrt = 1.-
sqrt(sh);
1229 dilog_umsh/6./umsh/umsh + 2.*
sqrt(sh)*(sh*sh-6.*sh-3.)*dilog_umsqrt/3./umsh/umsh -
1230 M_PI*M_PI*(3.*
pow(sh,1.5)+22.*sh+23.*
sqrt(sh)+16.)*umsqrt*umsqrt/36./umsh/umsh +
1231 (5.*sh*sh*sh-54.*sh*sh+57.*sh-8.)/18./umsh/umsh -
log(umsh) +
1232 sh*(5.*sh+1.)*
log(sh)/3./umsh/umsh + 2./3.*
log(umsh)*
log(sh));
1237 double umsh = 1.-sh;
1238 double umsqrt = 1.-
sqrt(sh);
1242 return (-4./3.*
log(
muh) - 2.*
sqrt(sh)*(sh+3.)*dilog_umsqrt/3./umsh/umsh - M_PI*M_PI*
1243 (16.*sh+29.*
sqrt(sh)+19.)*umsqrt*umsqrt/36./umsh/umsh + (sh*sh-6.*sh+5.)/6./umsh/umsh +
1244 (
sqrt(sh)+1.)*(
sqrt(sh)+1.)*(8.*sh-15.*
sqrt(sh)+9.)*dilog_umsh/6./umsh/umsh - (5.*sh+1.)*
1245 log(umsh)/6./sh + sh*(3.*sh+1.)*
log(sh)/6./umsh/umsh + 2./3.*
log(umsh)*
log(sh));
1250 double umsh = 1.-sh;
1251 double umsqrt = 1.-
sqrt(sh);
1255 return ((
sqrt(sh)+1.)*(
sqrt(sh)+1.)*(8.*
pow(sh,1.5)-15.*sh+4.*
sqrt(sh)-5.)*dilog_umsh/
1256 6./umsh/umsh/
sqrt(sh) - 2.*(sh*sh-12.*sh-5.)*dilog_umsqrt/3./umsh/umsh/
sqrt(sh) -
1257 M_PI*M_PI*(16.*
pow(sh,1.5)+29.*sh+4.*
sqrt(sh)+15.)*umsqrt*umsqrt/36./umsh/umsh/
sqrt(sh) +
1258 (2.*sh*sh-7.*sh-5.)*
log(sh)/3./umsh/umsh + (sh*sh+18.*sh-19.)/6./umsh/umsh -
1259 (2.*sh+1)*
log(umsh)/3./sh + 2./3.*
log(umsh)*
log(sh));
1264 double umsh = 1.-sh;
1265 double umsqrt = 1.-
sqrt(sh);
1270 dilog_umsh/3./umsh/umsh/
sqrt(sh) - (9.*sh*sh-38.*sh+29.)/6./umsh/umsh -
1271 4.*(sh*sh-6.*sh-3.)*dilog_umsqrt/3./umsh/umsh/
sqrt(sh) - M_PI*M_PI*
1272 (8.*
pow(sh,1.5)+13.*sh+2.*
sqrt(sh)+9.)*umsqrt*umsqrt/18./umsh/umsh/
sqrt(sh) - (sh*sh*sh-3.*sh+2.)*
1273 log(umsh)/3./umsh/umsh/sh + 2.*(sh*sh-3.*sh-3.)*
log(sh)/3./umsh/umsh + 2./3.*
log(umsh)*
log(sh));
1278 double umsh = 1.-sh;
1279 double umsqrt = 1.-
sqrt(sh);
1283 return (-4./3.*
log(
muh) + 4.*
sqrt(sh)*(sh+3.)*dilog_umsqrt/3./umsh/umsh + (
sqrt(sh)+1.)*
1284 (
sqrt(sh)+1.)*(4.*sh-9.*
sqrt(sh)+3.)*dilog_umsh/3./umsh/umsh + (7.*sh*sh-2.*sh-5.)/
1285 6./umsh/umsh - M_PI*M_PI*(8.*sh+19.*
sqrt(sh)+5.)*umsqrt*umsqrt/18./umsh/umsh -
1286 (2.*sh+1.)*
log(umsh)/3./sh + (sh-7.)*sh*
log(sh)/3./umsh/umsh + 2./3.*
log(umsh)*
log(sh));
1291 double umsh = 1.-sh;
1292 double umsqrt = 1.-
sqrt(sh);
1296 return (-(
sqrt(sh)+1.)*(
sqrt(sh)+1.)*(
pow(sh,1.5)-8.*sh+3.*
sqrt(sh)-4.)*dilog_umsh/
1297 3./umsh/umsh + 4.*
sqrt(sh)*(sh*sh-12.*sh-5.)*dilog_umsqrt/3./umsh/umsh -
1298 M_PI*M_PI*(3.*
pow(sh,1.5)+20.*sh+
sqrt(sh)+8.)*umsqrt*umsqrt/18./umsh/umsh +
1299 (4.*sh*sh*sh-51.*sh*sh+42.*sh+5.)/6./umsh/umsh -
log(umsh) +
1300 8.*sh*(2.*sh+1.)*
log(sh)/3./umsh/umsh + + 2./3.*
log(umsh)*
log(sh));
1305 double umsh = 1.-sh;
1306 double num = 3.*umsh*umsh;
1307 double umsqrt = 1.-
sqrt(sh);
1311 return (-4./3.*
log(
muh) + 2.*(4.*sh*sh-13.*sh-1.)*dilog_umsqrt/num - (2.*sh*sh-9.*sh-3.)*dilog_umsh/num -
1312 (3.*sh*sh-16.*sh+13.)*
log(umsqrt)/num + (4.*sh*sh-13.*sh-1.)*
log(umsqrt)*
log(sh)/num -
1313 (2.*sh*sh-9.*sh-3.)*
log(umsh)*
log(sh)/num + (sh*sh*sh-23.*sh*sh+23.*sh-1.)*
log(umsh)/2./num/sh +
1314 (sh-20.*
sqrt(sh)+5.)*umsqrt*umsqrt/2./num - M_PI*M_PI/3.);
1319 double umsh = 1.-sh;
1320 double num = 3.*umsh*umsh;
1321 double umsqrt = 1.-
sqrt(sh);
1325 return (-2.*(sh*sh-3.*sh-1.)*dilog_umsh/num - 4.*(5.-2.*sh)*sh*dilog_umsqrt/num -
1326 (4.*
sqrt(sh)-3.)*umsqrt*umsqrt/num - 2.*(2.*sh*sh-7.*sh+5.)*
log(umsqrt)/num -
1327 2.*(sh*sh-3.*sh-1.)*
log(umsh)*
log(sh)/num + (2.*sh*sh*sh-11.*sh*sh+10.*sh-1.)*
1328 log(umsh)/num/sh + 2.*sh*(2.*sh-5.)*
log(umsqrt)*
log(sh)/num - M_PI*M_PI/3.);
1333 double umsh = 1. - sh;
1335 return (
Lbl*(1.54986 - 1703.72*sh*sh*sh*sh*sh + 1653.38*sh*sh*sh*sh - 683.608*sh*sh*sh +
1336 179.279*sh*sh - 35.5047*sh)/8./umsh/umsh);
1341 double umsh = 1. - sh;
1343 return (
Lbl*(19.063 + 2158.03*sh*sh*sh*sh - 2062.92*sh*sh*sh + 830.53*sh*sh -
1344 186.12*sh + 0.324236/sh)/8./umsh/umsh);
1349 double umsh = 1. - sh;
1351 return (
Lbl*(2.2596 + 157.984*sh*sh*sh*sh - 141.281*sh*sh*sh + 52.8914*sh*sh -
1352 13.5377*sh + 0.0284049/sh)/2./sh/umsh/umsh);
1357 double umsh = 1. - sh;
1360 return (
Lbl*((2.84257 + 269.974*sh*sh*sh*sh - 194.443*sh*sh*sh + 48.4535*sh*sh -
1361 8.24929*sh + 0.0111118/sh)/2./sh/umsh/umsh +
1362 Lmub*4.*(4.54727 + 330.182*sh*sh*sh*sh - 258.194*sh*sh*sh + 79.8713*sh*sh -
1363 19.6855*sh + 0.0371348/sh)/9./sh/umsh/umsh) +
1369 double umsh = 1. - sh;
1373 return (
Lbl*((21.5291 + 3044.94*sh*sh*sh*sh - 2563.05*sh*sh*sh + 874.074*sh*sh -
1374 175.874*sh + 0.121398/sh)/8./umsh/umsh +
1375 i*(2.49475 + 598.376*sh*sh*sh*sh - 456.831*sh*sh*sh + 117.683*sh*sh -
1376 9.90525*sh - 0.0116501/sh)/8./umsh/umsh) +
1382 double umsh = 1. - sh;
1386 return (
Lbl*((4.54727 + 330.182*sh*sh*sh*sh - 258.194*sh*sh*sh + 79.8713*sh*sh -
1387 19.6855*sh + 0.0371348/sh)/2./sh/umsh/umsh +
1388 i*(73.9149*sh*sh*sh*sh - 61.1338*sh*sh*sh + 14.6517*sh*sh - 0.102331*sh +
1389 0.710037)/2./sh/umsh/umsh) +
1395 double umsh = 1. - sh;
1397 return (
Lbl*(9.73761 + 647.747*sh*sh*sh*sh - 642.637*sh*sh*sh + 276.839*sh*sh -
1398 68.3562*sh - 1.6755/sh)/4./umsh/umsh);
1403 double umsh = 1. - sh;
1405 return (
Lbl*(-6.03641 - 896.643*sh*sh*sh*sh + 807.349*sh*sh*sh - 278.559*sh*sh +
1406 47.6636*sh - 0.190701/sh)/4./umsh/umsh);
1411 double umsh = 1. - sh;
1413 return (
Lbl*(-0.768521 - 80.8068*sh*sh*sh*sh + 70.0821*sh*sh*sh - 21.2787*sh*sh +
1414 2.9335*sh - 0.0180809/sh)/umsh/umsh);
1419 double umsh = 1. - sh;
1422 return (
Lbl*((-1.71832 - 234.11*sh*sh*sh*sh + 162.126*sh*sh*sh - 37.2361*sh*sh +
1423 6.29949*sh - 0.00810233/sh)/umsh/umsh +
1424 Lmub*8.*(224.662*sh*sh*sh - 2.27221 - 298.369*sh*sh*sh*sh - 65.1375*sh*sh +
1425 11.5686*sh - 0.0233098/sh)/9./umsh/umsh) +
1431 double umsh = 1. - sh;
1435 return (
Lbl*((-8.01684 - 1121.13*sh*sh*sh*sh + 882.711*sh*sh*sh - 280.866*sh*sh +
1436 54.1943*sh - 0.128988/sh)/4./umsh/umsh +
1437 i*(-2.14058 - 588.771*sh*sh*sh*sh + 483.997*sh*sh*sh - 124.579*sh*sh +
1438 12.3282*sh + 0.0145059/sh)/4./umsh/umsh) +
1444 double umsh = 1. - sh;
1448 return (
Lbl*((-2.27221 - 298.369*sh*sh*sh*sh + 224.662*sh*sh*sh - 65.1375*sh*sh +
1449 11.5686*sh - 0.0233098/sh)/umsh/umsh +
1450 i*(-0.666157 - 120.303*sh*sh*sh*sh + 109.315*sh*sh*sh - 28.2734*sh*sh +
1451 2.44527*sh + 0.00279781/sh)/umsh/umsh) +
1457 double umsh = 1. - sh;
1459 return (
Lbl*((7. - 16.*
sqrt(sh) + 9.*sh)/4./umsh +
log(1. -
sqrt(sh)) +
1460 (1. + 3.*sh)/umsh*
log((1. +
sqrt(sh))/2.) - sh*
log(sh)/umsh));
1465 double umsh = 1. - sh;
1467 return (
Lbl*(
log(1. -
sqrt(sh)) - (5. - 16.*
sqrt(sh) + 11.*sh)/4./umsh +
1468 (1. - 5.*sh)/umsh*
log((1. +
sqrt(sh))/2.) - (1. - 3.*sh)*
log(sh)/umsh));
1473 double umsh = 1. - sh;
1475 double shma = sh - a;
1479 omega =
Lbl*((-351.322*sh*sh*sh*sh + 378.173*sh*sh*sh - 160.158*sh*sh + 24.2096*sh +
1480 0.305176)/24./sh/umsh/umsh) +
1483 omega +=
Lbl*i*(7.98625 + 238.507*shma - 766.869*shma*shma)*shma/24./sh/umsh/umsh;
1497 rho_b *
g_Huber(4./sh) + rho_0 * (
log(sh) - i*M_PI) + rho_num);
1508 8./3. * (
log(sh) - i*M_PI) - 40./9.);
1516 g_y = -2./9.*(2.+y)*
sqrt(fabs(1.-y));
1518 g_y *=
log(fabs((1.+
sqrt(1.-y))/(1.-
sqrt(1.-y))))-i*M_PI;
1520 g_y *= 2.*atan(1./
sqrt(y-1.));
1522 g_y += 20./27. + 4./9.*y;
1535 kscc =
KS_aux(sh, 3.097, 0.088e-3, 6.0e-2, 0.877);
1536 kscc +=
KS_aux(sh, 3.686, 0.277e-3, 8.3e-3, 0.9785);
1543 kscc += (i * M_PI * 1.02 -
log(1. - sh / 4. /
z)) / 3.;
1551 double Gamma_had = Br_had * Gamma /
Mb_pole;
1554 double sqrtb =
sqrt(b);
1555 double amsh = a - sh;
1556 double am4z = a - 4. *
z;
1558 return (Br_ll * Gamma /
Mb_pole * Gamma_had * ((M_PI * amsh + 2. * amsh * atan(am4z / sqrtb) +
1559 sqrtb * (
log(b + am4z * am4z) - 2. *
log(4. *
z - sh))) /
1560 (2. * sqrtb * (b + amsh * amsh)) + i * M_PI / (amsh * amsh + b)));
1567 if(r > 0. && r < 1.)
1568 return (1.5 / r * (atan(
sqrt(r / (1. - r))) /
sqrt(r - r*r) - 1.));
1570 return (1.5 / r * ((
log((1. -
sqrt(1. - 1./r)) / (1. +
sqrt(1. - 1./r))) + i * M_PI) /
1571 2. /
sqrt(r*r - r) - 1.));
1573 throw std::runtime_error(
"BXqll::F_BIR(): 1/mc^2 corrections diverge at q^2 = 4*mc^2");
1592 throw std::runtime_error(
"BXqll::Phi_u(): order not implemented.");
1606 throw std::runtime_error(
"BXqll::Phi_u(): order not implemented.");
1613 double phi00_2 = phi00 * phi00;
1614 double phi10 =
phi1;
1618 if (ord_qcd ==
QCD0 && ord_qed ==
QED0)
1619 return (1. / phi00);
1620 else if (ord_qcd ==
QCD1 && ord_qed ==
QED0)
1621 return (
alstilde * (- phi10 / phi00_2));
1622 else if (ord_qcd ==
QCD2 && ord_qed ==
QED0)
1623 return (
alstilde *
alstilde * (phi10 * phi10 / phi00_2 / phi00 - phi20 / phi00_2));
1624 else if (ord_qcd ==
QCD0 && ord_qed ==
QED1)
1625 return (
kappa * (- phi01 / phi00_2));
1626 else if (ord_qcd ==
QCD1 && ord_qed ==
QED1)
1627 return (
alstilde *
kappa * 2. * phi10 * phi01 / phi00_2 / phi00);
1628 else if (ord_qcd ==
QCD2 && ord_qed ==
QED1)
1630 3. * phi10 * phi10 * phi01 / phi00_2 / phi00_2));
1643 double Phi_ll_u = 0.;
1647 for(
unsigned int j = 0; j < 15; j++)
1648 for(
unsigned int i = 0; i <= j; i++)
1649 for(
unsigned int qcd_u =
QCD0; qcd_u <=
QCD2; qcd_u++)
1650 for(
unsigned int qed_u =
QED0; qed_u <=
QED1; qed_u++)
1651 for(
unsigned int qcd_a =
QCD0; qcd_a <=
QCD2; qcd_a++)
1652 for(
unsigned int qed_a =
QED0; qed_a <=
QED2; qed_a++)
1653 for(
unsigned int qcd_b =
QCD0; qcd_b <=
QCD2; qcd_b++)
1654 for(
unsigned int qed_b =
QED0; qed_b <=
QED2; qed_b++)
1656 for(
unsigned int qcd_c =
QCD0; qcd_c <=
QCD2; qcd_c++)
1657 for(
unsigned int qed_c =
QED0; qed_c <=
QED2; qed_c++)
1659 if (qcd_a + qcd_b + qcd_c + qcd_u <=
QCD_max && qed_a + qed_b + qed_c + qed_u <=
QED_max)
1660 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1661 Hij[qcd_c + 3*qed_c](i,j) ).real() *
Phi_u_inv(qcd_u, qed_u);
1664 if (qcd_a + qcd_b + 3 + qcd_u <=
QCD_max && qed_a + qed_b + 2 + qed_u <=
QED_max)
1665 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1678 for(
unsigned int j = 0; j < 15; j++)
1683 for(
unsigned int i = 0; i <= j; i++)
1686 Hij[
LO](i,j) + Hij[
NLO](i,j) + Hij[
NNLO](i,j) +
1690 Phi_ll += (FULLWC(i) * FULLWC (j).conjugate() * FULLHij(i,j) ).real();
1848 std::cout <<
"mu_b = " <<
mu_b << std::endl;
1849 std::cout <<
"mu_c = " <<
mu_c << std::endl;
1850 std::cout <<
"Mb = " <<
Mb << std::endl;
1851 std::cout <<
"Mc = " <<
Mc << std::endl;
1852 std::cout <<
"Mb_pole = " <<
Mb_pole << std::endl;
1853 std::cout <<
"Mc_pole = " <<
Mc_pole << std::endl;
1854 std::cout <<
"Ms = " <<
Ms << std::endl;
1855 std::cout <<
"m_e = " <<
Mlep << std::endl;
1856 std::cout <<
"alstilde = " <<
alstilde << std::endl;
1857 std::cout <<
"aletilde = " <<
aletilde << std::endl;
1858 std::cout <<
"1/ale_MZ = " << 1./
mySM.
alphaMz() << std::endl;
1860 std::cout <<
"BXcenu = " <<
BR_BXcenu << std::endl;
1861 std::cout <<
"C = " <<
C_ratio << std::endl;
1862 std::cout <<
"pre = " <<
pre << std::endl;
1863 std::cout <<
"lambda_1 = " <<
lambda_1 << std::endl;
1864 std::cout <<
"lambda_2 = " <<
lambda_2 << std::endl;
1868 std::cout << std::endl;
1869 std::cout <<
"H_T = " <<
getH(
"T", 0.05) << std::endl;
1870 std::cout <<
"H_T = " <<
getH(
"T", 0.15) << std::endl;
1871 std::cout <<
"H_T = " <<
getH(
"T", 0.25) << std::endl;
1872 std::cout <<
"H_L = " <<
getH(
"L", 0.05) << std::endl;
1873 std::cout <<
"H_L = " <<
getH(
"L", 0.15) << std::endl;
1874 std::cout <<
"H_L = " <<
getH(
"L", 0.25) << std::endl;
1875 std::cout <<
"H_A = " <<
getH(
"A", 0.05) << std::endl;
1876 std::cout <<
"H_A = " <<
getH(
"A", 0.15) << std::endl;
1877 std::cout <<
"H_A = " <<
getH(
"A", 0.25) << std::endl;
2085 double c88, c11, c12, c22;
2088 double ctau1 = (3. * 3. - 1.) / 8. / 3. / 3. / 3.;
2089 double ctau2 = - (3. * 3. - 1.) / 4. / 3. / 3.;
2091 c78 =
CF *
WC(6,
LO) *
WC(7,
LO).conjugate();
2093 c88 =
CF *
WC(7,
LO).abs2();
2095 c11 = ctau1 *
WC(0,
LO).abs2();
2096 c12 = ctau2 * 2. * (
WC(0,
LO) *
WC(1,
LO).conjugate()).real();
2097 c22 =
CF *
WC(1,
LO).abs2();
2099 c17 = ctau2 *
WC(0,
LO) *
WC(6,
LO).conjugate();
2100 c18 = ctau2 *
WC(0,
LO) *
WC(7,
LO).conjugate();
2102 c27 =
CF *
WC(1,
LO) *
WC(6,
LO).conjugate();
2103 c28 =
CF *
WC(1,
LO) *
WC(7,
LO).conjugate();
2106 Brems_a = 2. * (c78 *
tau78(sh) + c89 *
tau89(sh)).real() + c88 *
tau88(sh);
2122 32./27. *
WC(3,
LO) - 112./9. *
WC(4,
LO) + 512./27. *
WC(5,
LO);
2125 A9 += 4./3. *
WC(2,
LO) + 64./9. *
WC(4,
LO) + 64./27. *
WC(5,
LO);
2127 return (A9 + T9 *
h_z(
z, sh) + U9 *
h_z(1., sh) + W9 *
h_z(0., sh));
2137 h_z = 8./27.-4./9.*(
log(sh)-i*M_PI);
2141 h_z = -2./9.*(2.+4./sh*zed)*
sqrt(std::abs(4.*zed-sh)/sh);
2145 h_z *= 2.*atan(
sqrt(sh/(4.*zed-sh)));
2147 h_z += -4./9.*
log(zed)+8./27.+16./9.*zed/sh;
2156 double dmsh = 2.-sh;
2157 double qmsh = 4.-sh;
2159 return (8./9./sh*(25.-2.*M_PI*M_PI-27.*sh+3.*sh*sh-sh*sh*sh+12.*(sh+sh*sh)*
log(sh)+
2160 6.*(M_PI/2.-atan((2.-4.*sh+sh*sh)/dmsh/
sqrt(sh)/
sqrt(qmsh)))*
2161 (M_PI/2.-atan((2.-4.*sh+sh*sh)/dmsh/
sqrt(sh)/
sqrt(qmsh)))-
2169 double dmsh = 2.-sh;
2170 double qmsh = 4.-sh;
2172 return (2./3.*(sh*qmsh-3.-4.*
log(sh)*(1.-sh-sh*sh)-8.*(
dilog(sh/2.+i*
sqrt(sh)*
sqrt(qmsh)/2.)-
2173 dilog((sh*qmsh-2.)/2.+i*dmsh*
sqrt(sh)*
sqrt(qmsh)/2.)).real()+
2174 4.*(sh*sh*
sqrt(qmsh/sh)+2.*atan(
sqrt(sh)*
sqrt(qmsh)/dmsh))*(atan(
sqrt(qmsh/sh))-
2181 double umsh = 1.-sh;
2182 double qmsh = 4.-sh;
2184 return (4./27./sh*(-8.*M_PI*M_PI+umsh*(77.-sh-4.*sh*sh)-24.*
dilog((
gslpp::complex) umsh).real()+
2185 3.*(10.-4.*sh-9.*sh*sh+8.*
log(
sqrt(sh)/umsh))*
log(sh)+48.*(
dilog((3.-sh)/2.+
2186 i*umsh*
sqrt(qmsh)/2./
sqrt(sh))).real()-6.*((20.*sh+10.*sh*sh-3.*sh*sh*sh)/
sqrt(sh)/
sqrt(qmsh)
2187 -8.*M_PI+8.*atan(
sqrt(qmsh/sh)))*(atan(
sqrt(qmsh/sh))-atan(
sqrt(sh)*
sqrt(qmsh)/(2.-sh)))));
2195 return (-186.96738127 + 1313.45792139*sh - 8975.40399683*sh*sh + 47018.56440838*sh*sh*sh -
2196 159603.3217871*sh*sh*sh*sh + 309228.13379963*sh*sh*sh*sh*sh - 258317.14719949*sh*sh*sh*sh*sh*sh -
2197 51.2467544*
log(sh));
2198 else if (q2 >= 14.4)
2199 return (-322.73989723 + 4.75813656/sh/sh - 80.36414222/sh + 687.70415138*sh - 491.08241967*sh*sh +
2200 303.28125994*sh*sh*sh - 132.82124268*sh*sh*sh*sh + 35.63127394*sh*sh*sh*sh*sh -
2201 4.36712003*sh*sh*sh*sh*sh*sh - 306.899641*
log(sh));
2203 throw std::runtime_error(
"BXqll::tau22fit: region of q^2 not implemented");
2211 return (-45.40905903+334.92509492*sh-2404.69181358*sh*sh+12847.93973401*sh*sh*sh-
2212 44421.35127703*sh*sh*sh*sh+87786.54536182*sh*sh*sh*sh*sh-75574.96266083*sh*sh*sh*sh*sh*sh-
2213 13.79251644*
log(sh));
2214 else if (q2 >= 14.4)
2215 return (87.43391175-196.67646862*sh+219.51106756*sh*sh-184.44868587*sh*sh*sh+
2216 103.59892754*sh*sh*sh*sh-34.56056777*sh*sh*sh*sh*sh+5.14181565*sh*sh*sh*sh*sh*sh+
2217 38.55667004*
log(sh));
2219 throw std::runtime_error(
"BXqll::tau27fit_Re: region of q^2 not implemented");
2227 return (-189.61083508+1349.85607262*sh-9198.62227938*sh*sh+48104.40980548*sh*sh*sh-
2228 162998.75872037*sh*sh*sh*sh+315224.375522*sh*sh*sh*sh*sh-262649.64320483*sh*sh*sh*sh*sh*sh-
2229 52.52183304*
log(sh));
2230 else if (q2 >= 14.4)
2231 return (523.76263422+49.97156504/sh-1120.42920341*sh+1024.46949612*sh*sh-767.28958612*sh*sh*sh+
2232 393.62561539*sh*sh*sh*sh-120.74162898*sh*sh*sh*sh*sh+16.63110789*sh*sh*sh*sh*sh*sh+
2233 352.74960196*
log(sh));
2235 throw std::runtime_error(
"BXqll::tau27fit_Im: region of q^2 not implemented");
2243 return (8.67757227-85.91172547*sh+666.57779497*sh*sh-3619.65234448*sh*sh*sh+
2244 12475.74303361*sh*sh*sh*sh-24365.45545631*sh*sh*sh*sh*sh+20446.33269814*sh*sh*sh*sh*sh*sh+
2245 1.54278226*
log(sh));
2246 else if (q2 >= 14.4)
2247 return (-4.11234905-0.52681762/sh+8.21844628*sh-6.04601107*sh*sh+3.67099354*sh*sh*sh-
2248 1.57120958*sh*sh*sh*sh+0.41975346*sh*sh*sh*sh*sh-0.05280596*sh*sh*sh*sh*sh*sh-
2249 3.16331567*
log(sh));
2251 throw std::runtime_error(
"BXqll::tau28fit_Re: region of q^2 not implemented");
2259 return (57.88258299-430.77957254*sh+3002.9999511*sh*sh-15808.63980887*sh*sh*sh+
2260 53787.08410769*sh*sh*sh*sh-104360.60205475*sh*sh*sh*sh*sh+87294.84251167*sh*sh*sh*sh*sh*sh+
2261 14.61062129*
log(sh));
2262 else if (q2 >= 14.4)
2263 return (-24.92802842+0.3842418/sh/sh-6.38294139/sh+53.15600599*sh-37.59024636*sh*sh+
2264 23.04316804*sh*sh*sh-10.03556518*sh*sh*sh*sh+2.68088049*sh*sh*sh*sh*sh-
2265 0.32751495*sh*sh*sh*sh*sh*sh-24.01652729*
log(sh));
2267 throw std::runtime_error(
"BXqll::tau28fit_Im: region of q^2 not implemented");
2275 return (0.53834924+0.47775224*sh-16.20063604*sh*sh+101.36668267*sh*sh*sh-
2276 466.94537092*sh*sh*sh*sh+1224.77742613*sh*sh*sh*sh*sh-1469.41817323*sh*sh*sh*sh*sh*sh-
2277 0.01686348*
log(sh));
2278 else if (q2 >= 14.4)
2279 return (4.46985355-6.16130742*sh+0.84917331*sh*sh+1.7696124*sh*sh*sh-1.14453916*sh*sh*sh*sh+
2280 0.24261178*sh*sh*sh*sh*sh-0.02540446*sh*sh*sh*sh*sh*sh+2.67164817*
log(sh));
2282 throw std::runtime_error(
"BXqll::tau29fit_Re: region of q^2 not implemented");
2290 return (0.7688748-0.21680402*sh-1.16934757*sh*sh+8.31833871*sh*sh*sh-4.81289468*sh*sh*sh*sh-
2291 51.53765482*sh*sh*sh*sh*sh+158.06040784*sh*sh*sh*sh*sh*sh-0.00485643*
log(sh));
2292 else if (q2 >= 14.4)
2293 return (-38.80905455+95.60697233*sh-124.04368889*sh*sh+118.64599185*sh*sh*sh-
2294 73.76081228*sh*sh*sh*sh+26.55080999*sh*sh*sh*sh*sh-4.19021877*sh*sh*sh*sh*sh*sh-
2295 16.02711369*
log(sh));
2297 throw std::runtime_error(
"BXqll::tau29fit_Im: region of q^2 not implemented");