10#include <boost/bind/bind.hpp>
11#include "std_make_vector.h"
15#include "gslpp_function_adapter.h"
17using namespace boost::placeholders;
19#define MPI2 (M_PI * M_PI)
22: mySM(SM_i), myF_1(), myF_2(), myHeff(
"CPMLQB", SM_i,
QCD2,
QED2), WC(15, 9, 0.)
26 w_H = gsl_integration_cquad_workspace_alloc(100);
28 phi1 = 50./3. - 8. * MPI2 / 3.;
29 phi2 = 2. * (- 2048. / 9. * gslpp_special_functions::zeta(3) + 16987. / 54. -340. / 81. * MPI2)
30 + 3. * (256. / 9. * gslpp_special_functions::zeta(3) -1009. / 27. + 308. / 81. * MPI2)
31 - 41848. / 81. * gslpp_special_functions::zeta(3) + 578. / 81. * MPI2 * MPI2
32 - 104480. / 729. * MPI2 + 1571095. / 1458. - 848. / 27. * MPI2 * log(2.);
43 BXqllParameters = make_vector<std::string>() <<
"BR_BXcenu" <<
"C_ratio" <<
"BI_lambda1" <<
"BI_lambda2";
122 for(
unsigned int qed_ord =
QED0; qed_ord <=
QED2; qed_ord++)
123 for(
unsigned int qcd_ord =
QCD0; qcd_ord <=
QCD2; qcd_ord++)
126 for (
unsigned int i = 0; i < 15; i++)
127 if (i != 8 && i != 9 && qed_ord < 2 && qcd_ord * qed_ord < 2)
148 gslpp::complex i = gslpp::complex::i();
155 gslpp::complex i = gslpp::complex::i();
162 gslpp::complex i = gslpp::complex::i();
169 gslpp::complex i = gslpp::complex::i();
176 gslpp::complex i = gslpp::complex::i();
177 double ash = asin(sqrt(sh)/2.);
180 return (4.*M_PI*M_PI/27.*(2.+sh)/umsh/umsh/umsh/umsh-4./9.*(11.-16.*sh+8.*sh*sh)/umsh/umsh-
181 8./9.*sqrt(sh*(4.-sh))/umsh/umsh/umsh*(9.-5.*sh+2.*sh*sh)*ash-16./3.*(2+sh)/
182 umsh/umsh/umsh/umsh*ash*ash-8./9.*sh/umsh*log(sh)-32./9.*log(
muh)-i*8./9.*M_PI);
187 double ash = asin(sqrt(sh)/2.);
190 return (-8.*M_PI*M_PI/27.*(4.-sh)/umsh/umsh/umsh/umsh+8./9.*(5.-2.*sh)/umsh/umsh+
191 16./9.*sqrt((4.-sh)/sh)/umsh/umsh/umsh*(4.+3.*sh-sh*sh)*ash+32./3.*(4.-sh)/
192 umsh/umsh/umsh/umsh*ash*ash+16./9./umsh*log(sh));
268 FH = convertToGslFunction(bind(&
BXqll::getH, &(*
this), obs, _1));
270 if (gsl_integration_cquad(&
FH, sh_min, sh_max, 1.e-5, 1.e-4,
w_H, &
aveH, &
errH, NULL) != 0)
271 return std::numeric_limits<double>::quiet_NaN();
289 else if (obs ==
"TL")
293 throw std::runtime_error(
"BXqll::getH: Angular observable not implemented");
301 gslpp::matrix<gslpp::complex> Hij(15, 15, 0.);
307 Hij_T.push_back(Hij);
316 Hij_T.push_back(Hij);
325 Hij_T.push_back(Hij);
330 Hij_T.push_back(Hij);
334 for (
unsigned int j = 0; j < 15; j++)
336 for (
unsigned int i = 0; i <= j; i++)
351 Hij_T.push_back(Hij);
357 for (
unsigned int j = 0; j < 15; j++)
359 for (
unsigned int i = 0; i <= j; i++)
378 Hij_T.push_back(Hij);
383 Hij_T.push_back(Hij);
384 Hij_T.push_back(Hij);
388 for (
unsigned int j = 0; j < 15; j++)
390 for (
unsigned int i = 0; i <= j; i++)
406 Hij_T.push_back(Hij);
412 for (
unsigned int j = 0; j < 15; j++)
414 for (
unsigned int i = 0; i <= j; i++)
431 Hij_T.push_back(Hij);
437 for (
unsigned int j = 0; j < 15; j++)
439 for (
unsigned int i = 0; i <= j; i++)
465 Hij_T.push_back(Hij);
469 Hij_T.push_back(Hij);
472 for(
unsigned int i = 0; i < 2; i++)
473 for(
unsigned int j = 0; j < 15; j++)
481 for(
unsigned int j = 0; j < 7; j++)
482 for(
unsigned int i = 0; i <= j; i++)
485 for(
unsigned int i = 0; i < 7; i++)
500 gslpp::matrix<gslpp::complex> Hij(15, 15, 0.);
506 Hij_L.push_back(Hij);
515 Hij_L.push_back(Hij);
524 Hij_L.push_back(Hij);
529 Hij_L.push_back(Hij);
533 for (
unsigned int j = 0; j < 15; j++)
535 for (
unsigned int i = 0; i <= j; i++)
550 Hij_L.push_back(Hij);
556 for (
unsigned int j = 0; j < 15; j++)
558 for (
unsigned int i = 0; i <= j; i++)
577 Hij_L.push_back(Hij);
582 Hij_L.push_back(Hij);
583 Hij_L.push_back(Hij);
587 for (
unsigned int j = 0; j < 15; j++)
589 for (
unsigned int i = 0; i <= j; i++)
605 Hij_L.push_back(Hij);
611 for (
unsigned int j = 0; j < 15; j++)
613 for (
unsigned int i = 0; i <= j; i++)
630 Hij_L.push_back(Hij);
636 for (
unsigned int j = 0; j < 15; j++)
638 for (
unsigned int i = 0; i <= j; i++)
664 Hij_L.push_back(Hij);
668 Hij_L.push_back(Hij);
671 for(
unsigned int i = 0; i < 2; i++)
672 for(
unsigned int j = 0; j < 15; j++)
680 for(
unsigned int j = 0; j < 7; j++)
681 for(
unsigned int i = 0; i <= j; i++)
684 for(
unsigned int i = 0; i < 7; i++)
699 gslpp::matrix<gslpp::complex> Hij(15, 15, 0.);
705 Hij_A.push_back(Hij);
713 Hij_A.push_back(Hij);
721 Hij_A.push_back(Hij);
726 Hij_A.push_back(Hij);
732 for (
unsigned int i = 0; i < 9; i++)
736 for (
unsigned int j = 10; j < 15; j++)
739 Hij_A.push_back(Hij);
752 for (
unsigned int i = 2; i < 9; i++)
753 if (i != 6 && i != 7)
756 for (
unsigned int j = 10; j < 15; j++)
759 Hij_A.push_back(Hij);
764 Hij_A.push_back(Hij);
765 Hij_A.push_back(Hij);
766 Hij_A.push_back(Hij);
775 for (
unsigned int i = 2; i < 9; i++)
779 for (
unsigned int j = 10; j < 15; j++)
782 Hij_A.push_back(Hij);
786 Hij_A.push_back(Hij);
787 Hij_A.push_back(Hij);
810 gslpp::vector<gslpp::complex> M7i(15, 0.);
811 gslpp::vector<gslpp::complex> M9i(15, 0.);
812 gslpp::vector<gslpp::complex> M10i(15, 0.);
839 M9i.assign(0,
aletilde *
f_Huber(sh, -32./27., 4./3., 0., 0., -16./27.));
841 M9i.assign(2,
aletilde *
f_Huber(sh, -16./9., 6., -7./2., 2./9., 2./27.));
842 M9i.assign(3,
aletilde *
f_Huber(sh, 32./27., 0., -2./3., 8./27., 8./81.));
843 M9i.assign(4,
aletilde *
f_Huber(sh, -112./9., 60., -38., 32./9., -136./27.));
844 M9i.assign(5,
aletilde *
f_Huber(sh, 512./27., 0., -32./3., 128./27., 320./81.));
845 M9i.assign(10,
aletilde *
f_Huber(sh, -272./27., 4., 7./6., -74./27., 358./81.));
846 M9i.assign(11,
aletilde *
f_Huber(sh, -32./81., 0., 2./9., -8./81., -8./243.));
847 M9i.assign(12,
aletilde *
f_Huber(sh, -2768./27., 40., 38./3., -752./27., 1144./81.));
848 M9i.assign(13,
aletilde *
f_Huber(sh, -512./81., 0., 32./9., -128./81., -320./243.));
862 M_10.push_back(M10i);
867 M_10.push_back(M10i);
872 double umsh = 1. - sh;
873 double sigma = 8.*umsh*umsh/sh;
874 double chi_1 = 4.*umsh*(5.*sh + 3.)/3./sh;
875 double chi_2 = 4.*(3.*sh*sh + 2.*sh - 9.)/sh;
881 return sigma + deltaMb2;
885 throw std::runtime_error(
"BXqll::S77_T: order not implemented");
891 double umsh = 1. - sh;
892 double sigma = 8.*umsh*umsh;
893 double chi_1 = 4.*umsh*umsh;
894 double chi_2 = 4.*(9.*sh*sh - 6.*sh - 7.);
900 return sigma + deltaMb2;
904 throw std::runtime_error(
"BXqll::S79_T: order not implemented");
910 double umsh = 1. - sh;
911 double sigma = 2.*sh*umsh*umsh;
912 double chi_1 = -sh*umsh*(3.*sh + 5.)/3.;
913 double chi_2 = sh*(15.*sh*sh - 14.*sh - 5.);
916 136.374*umsh*umsh*umsh + 119.344*umsh*umsh - 15.6175*umsh - 31.1706;
921 return sigma + deltaMb2;
927 throw std::runtime_error(
"BXqll::S99_T: order not implemented");
933 return S99_T(sh,order);
938 double umsh = 1. - sh;
939 double sigma = 4.*umsh*umsh;
940 double chi_1 = -2.*umsh*(3.*sh + 13.)/3.;
941 double chi_2 = 2.*(15.*sh*sh - 6.*sh - 13.);
947 return sigma + deltaMb2;
951 throw std::runtime_error(
"BXqll::S77_L: order not implemented");
957 double umsh = 1. - sh;
958 double sigma = 4.*umsh*umsh;
959 double chi_1 = 2.*umsh*umsh;
960 double chi_2 = 2.*(3.*sh*sh - 6.*sh - 1.);
966 return sigma + deltaMb2;
970 throw std::runtime_error(
"BXqll::S79_L: order not implemented");
976 double umsh = 1. - sh;
977 double sigma = umsh*umsh;
978 double chi_1 = umsh*(13.*sh + 3.)/6.;
979 double chi_2 = (-17.*sh*sh + 10.*sh + 3.)/2.;
982 11.7493*umsh*umsh + 12.2293*umsh - 38.6457;
987 return sigma + deltaMb2;
993 throw std::runtime_error(
"BXqll::S99_L: order not implemented");
999 return S99_L(sh,order);
1004 double umsh = 1. - sh;
1005 double sigma = -8.*umsh*umsh;
1006 double chi_1 = -4.*(3.*sh*sh + 2.*sh + 3.)/3.;
1007 double chi_2 = -4.*(9.*sh*sh - 10.*sh - 7.);
1013 return sigma + deltaMb2;
1017 throw std::runtime_error(
"BXqll::S710_A: order not implemented");
1023 double umsh = 1. - sh;
1024 double sigma = -4.*sh*umsh*umsh;
1025 double chi_1 = -2.*sh*(3.*sh*sh + 2.*sh + 3.)/3.;
1026 double chi_2 = -2.*sh*(15.*sh*sh - 14.*sh - 9.);
1029 183.885*umsh*umsh*umsh + 158.739*umsh*umsh - 29.0124*umsh - 30.8056;
1034 return sigma + deltaMb2;
1040 throw std::runtime_error(
"BXqll::S910_A: order not implemented");
1044gslpp::complex
BXqll::cij_T(
unsigned int i,
unsigned int j,
double sh,
unsigned int ord)
1046 double umsh = 1. - sh, uptsh = 1. + 3.*sh;
1049 gslpp::complex F_M7_M9;
1058 if (i == 0 && j == 1) {
1065 if (i == 0 && j == 1) {
1071 throw std::runtime_error(
"BXqll::cij_T: order not implemented");
1074 if ((i == 1 && j >= i) || 10*(i+1) + j+1 == 12)
1075 return (-
pre * umsh * umsh * uptsh * F_M7_M9);
1077 return (
pre / 6. * umsh * umsh * uptsh * F_M7_M9);
1082gslpp::complex
BXqll::cij_L(
unsigned int i,
unsigned int j,
double sh,
unsigned int ord)
1084 double umsh = 1. - sh, tmsh = 3. - sh;
1087 gslpp::complex F_M7_M9;
1096 if (i == 0 && j == 1) {
1103 if (i == 0 && j == 1) {
1109 throw std::runtime_error(
"BXqll::cij_L: order not implemented");
1112 if ((i == 1 && j >= i) || 10*(i+1) + j+1 == 12)
1113 return (-
pre * umsh * umsh * tmsh * F_M7_M9);
1115 return (
pre / 6. * umsh * umsh * tmsh * F_M7_M9);
1122 unsigned int ij = 100*(i + 1) + (j + 1);
1123 double umsh = 1. - sh, uptsh = 1. + 3.*sh;
1140 double umsh = (1. - sh);
1141 double sigma77_T = 8.*umsh*umsh/sh, sigma79_T = 8.*umsh*umsh, sigma99_T = 2.*sh*umsh*umsh;
1144 ij = 100*(i + 1) + (j + 1);
1146 ij = 10*(i + 1) + (j + 1);
1180 double umsh = (1. - sh);
1181 double sigma77_L = 4.*umsh*umsh, sigma79_L = 4.*umsh*umsh, sigma99_L = umsh*umsh;
1184 ij = 100* (i + 1) + (j + 1);
1186 ij = 10*(i + 1) + (j + 1);
1220 double umsh = (1. - sh);
1221 double sigma710_A = -8.*umsh*umsh, sigma910_A = -4.*sh*umsh*umsh;
1224 ij = 100*(i + 1) + (j + 1);
1226 ij = 10*(i + 1) + (j + 1);
1245 double umsh = 1.-sh;
1246 double umsqrt = 1.-sqrt(sh);
1250 return (-8./3.*log(
muh) - (sqrt(sh)+1.)*(sqrt(sh)+1.)*(pow(sh,1.5)-10.*sh+13.*sqrt(sh)-8.)*
1251 dilog_umsh/6./umsh/umsh + 2.*sqrt(sh)*(sh*sh-6.*sh-3.)*dilog_umsqrt/3./umsh/umsh -
1252 M_PI*M_PI*(3.*pow(sh,1.5)+22.*sh+23.*sqrt(sh)+16.)*umsqrt*umsqrt/36./umsh/umsh +
1253 (5.*sh*sh*sh-54.*sh*sh+57.*sh-8.)/18./umsh/umsh - log(umsh) +
1254 sh*(5.*sh+1.)*log(sh)/3./umsh/umsh + 2./3.*log(umsh)*log(sh));
1259 double umsh = 1.-sh;
1260 double umsqrt = 1.-sqrt(sh);
1264 return (-4./3.*log(
muh) - 2.*sqrt(sh)*(sh+3.)*dilog_umsqrt/3./umsh/umsh - M_PI*M_PI*
1265 (16.*sh+29.*sqrt(sh)+19.)*umsqrt*umsqrt/36./umsh/umsh + (sh*sh-6.*sh+5.)/6./umsh/umsh +
1266 (sqrt(sh)+1.)*(sqrt(sh)+1.)*(8.*sh-15.*sqrt(sh)+9.)*dilog_umsh/6./umsh/umsh - (5.*sh+1.)*
1267 log(umsh)/6./sh + sh*(3.*sh+1.)*log(sh)/6./umsh/umsh + 2./3.*log(umsh)*log(sh));
1272 double umsh = 1.-sh;
1273 double umsqrt = 1.-sqrt(sh);
1277 return ((sqrt(sh)+1.)*(sqrt(sh)+1.)*(8.*pow(sh,1.5)-15.*sh+4.*sqrt(sh)-5.)*dilog_umsh/
1278 6./umsh/umsh/sqrt(sh) - 2.*(sh*sh-12.*sh-5.)*dilog_umsqrt/3./umsh/umsh/sqrt(sh) -
1279 M_PI*M_PI*(16.*pow(sh,1.5)+29.*sh+4.*sqrt(sh)+15.)*umsqrt*umsqrt/36./umsh/umsh/sqrt(sh) +
1280 (2.*sh*sh-7.*sh-5.)*log(sh)/3./umsh/umsh + (sh*sh+18.*sh-19.)/6./umsh/umsh -
1281 (2.*sh+1)*log(umsh)/3./sh + 2./3.*log(umsh)*log(sh));
1286 double umsh = 1.-sh;
1287 double umsqrt = 1.-sqrt(sh);
1291 return (-8./3.*log(
muh) + (sqrt(sh)+1.)*(sqrt(sh)+1.)*(4.*pow(sh,1.5)-7.*sh+2.*sqrt(sh)-3.)*
1292 dilog_umsh/3./umsh/umsh/sqrt(sh) - (9.*sh*sh-38.*sh+29.)/6./umsh/umsh -
1293 4.*(sh*sh-6.*sh-3.)*dilog_umsqrt/3./umsh/umsh/sqrt(sh) - M_PI*M_PI*
1294 (8.*pow(sh,1.5)+13.*sh+2.*sqrt(sh)+9.)*umsqrt*umsqrt/18./umsh/umsh/sqrt(sh) - (sh*sh*sh-3.*sh+2.)*
1295 log(umsh)/3./umsh/umsh/sh + 2.*(sh*sh-3.*sh-3.)*log(sh)/3./umsh/umsh + 2./3.*log(umsh)*log(sh));
1300 double umsh = 1.-sh;
1301 double umsqrt = 1.-sqrt(sh);
1305 return (-4./3.*log(
muh) + 4.*sqrt(sh)*(sh+3.)*dilog_umsqrt/3./umsh/umsh + (sqrt(sh)+1.)*
1306 (sqrt(sh)+1.)*(4.*sh-9.*sqrt(sh)+3.)*dilog_umsh/3./umsh/umsh + (7.*sh*sh-2.*sh-5.)/
1307 6./umsh/umsh - M_PI*M_PI*(8.*sh+19.*sqrt(sh)+5.)*umsqrt*umsqrt/18./umsh/umsh -
1308 (2.*sh+1.)*log(umsh)/3./sh + (sh-7.)*sh*log(sh)/3./umsh/umsh + 2./3.*log(umsh)*log(sh));
1313 double umsh = 1.-sh;
1314 double umsqrt = 1.-sqrt(sh);
1318 return (-(sqrt(sh)+1.)*(sqrt(sh)+1.)*(pow(sh,1.5)-8.*sh+3.*sqrt(sh)-4.)*dilog_umsh/
1319 3./umsh/umsh + 4.*sqrt(sh)*(sh*sh-12.*sh-5.)*dilog_umsqrt/3./umsh/umsh -
1320 M_PI*M_PI*(3.*pow(sh,1.5)+20.*sh+sqrt(sh)+8.)*umsqrt*umsqrt/18./umsh/umsh +
1321 (4.*sh*sh*sh-51.*sh*sh+42.*sh+5.)/6./umsh/umsh - log(umsh) +
1322 8.*sh*(2.*sh+1.)*log(sh)/3./umsh/umsh + + 2./3.*log(umsh)*log(sh));
1327 double umsh = 1.-sh;
1328 double umsqrt = 1.-sqrt(sh);
1341 double upsqrt = 1. + sqrt(sh);
1342 double tdsqrt = 3. - 2. * sqrt(sh);
1346 return ((3. + sh*(9. - 2.*sh)) * dilog_sh / umsh / umsh + (1. - sh*(22. - sh)) * log(umsh) / 2. / sh / umsh -
1347 2.*(1. + sh*(13. - 4.*sh)) * dilog_sqrt / umsh / umsh + (13. - 3.*sh) * log(umsqrt) / umsh +
1348 5.*(1. + sh)*M_PI*M_PI / 6. / umsh / umsh - (sh + tdsqrt*tdsqrt) / 2. / upsqrt / upsqrt)*(-1./3.);
1353 double umsh = 1.-sh;
1354 double num = 3.*umsh*umsh;
1355 double umsqrt = 1.-sqrt(sh);
1359 return (-2.*(sh*sh-3.*sh-1.)*dilog_umsh/num - 4.*(5.-2.*sh)*sh*dilog_umsqrt/num -
1360 (4.*sqrt(sh)-3.)*umsqrt*umsqrt/num - 2.*(2.*sh*sh-7.*sh+5.)*log(umsqrt)/num -
1361 2.*(sh*sh-3.*sh-1.)*log(umsh)*log(sh)/num + (2.*sh*sh*sh-11.*sh*sh+10.*sh-1.)*
1362 log(umsh)/num/sh + 2.*sh*(2.*sh-5.)*log(umsqrt)*log(sh)/num - M_PI*M_PI/3.);
1367 double umsh = 1. - sh;
1369 return (
Lbl*(1.54986 - 1703.72*sh*sh*sh*sh*sh + 1653.38*sh*sh*sh*sh - 683.608*sh*sh*sh +
1370 179.279*sh*sh - 35.5047*sh)/8./umsh/umsh);
1375 double umsh = 1. - sh;
1377 return (
Lbl*(19.063 + 2158.03*sh*sh*sh*sh - 2062.92*sh*sh*sh + 830.53*sh*sh -
1378 186.12*sh + 0.324236/sh)/8./umsh/umsh);
1383 double umsh = 1. - sh;
1385 return (
Lbl*(2.2596 + 157.984*sh*sh*sh*sh - 141.281*sh*sh*sh + 52.8914*sh*sh -
1386 13.5377*sh + 0.0284049/sh)/2./sh/umsh/umsh);
1391 double umsh = 1. - sh;
1392 double Lmub = log(
mu_b/5.);
1394 return (
Lbl*((2.84257 + 269.974*sh*sh*sh*sh - 194.443*sh*sh*sh + 48.4535*sh*sh -
1395 8.24929*sh + 0.0111118/sh)/2./sh/umsh/umsh +
1396 Lmub*4.*(4.54727 + 330.182*sh*sh*sh*sh - 258.194*sh*sh*sh + 79.8713*sh*sh -
1397 19.6855*sh + 0.0371348/sh)/9./sh/umsh/umsh) +
1403 double umsh = 1. - sh;
1404 double Lmub = log(
mu_b/5.);
1405 gslpp::complex i = gslpp::complex::i();
1407 return (
Lbl*((21.5291 + 3044.94*sh*sh*sh*sh - 2563.05*sh*sh*sh + 874.074*sh*sh -
1408 175.874*sh + 0.121398/sh)/8./umsh/umsh +
1409 i*(2.49475 + 598.376*sh*sh*sh*sh - 456.831*sh*sh*sh + 117.683*sh*sh -
1410 9.90525*sh - 0.0116501/sh)/8./umsh/umsh) +
1416 double umsh = 1. - sh;
1417 double Lmub = log(
mu_b/5.);
1418 gslpp::complex i = gslpp::complex::i();
1420 return (
Lbl*((4.54727 + 330.182*sh*sh*sh*sh - 258.194*sh*sh*sh + 79.8713*sh*sh -
1421 19.6855*sh + 0.0371348/sh)/2./sh/umsh/umsh +
1422 i*(73.9149*sh*sh*sh*sh - 61.1338*sh*sh*sh + 14.6517*sh*sh - 0.102331*sh +
1423 0.710037)/2./sh/umsh/umsh) +
1429 double umsh = 1. - sh;
1431 return (
Lbl*(9.73761 + 647.747*sh*sh*sh*sh - 642.637*sh*sh*sh + 276.839*sh*sh -
1432 68.3562*sh - 1.6755/sh)/4./umsh/umsh);
1437 double umsh = 1. - sh;
1439 return (
Lbl*(-6.03641 - 896.643*sh*sh*sh*sh + 807.349*sh*sh*sh - 278.559*sh*sh +
1440 47.6636*sh - 0.190701/sh)/4./umsh/umsh);
1445 double umsh = 1. - sh;
1447 return (
Lbl*(-0.768521 - 80.8068*sh*sh*sh*sh + 70.0821*sh*sh*sh - 21.2787*sh*sh +
1448 2.9335*sh - 0.0180809/sh)/umsh/umsh);
1453 double umsh = 1. - sh;
1454 double Lmub = log(
mu_b/5.);
1456 return (
Lbl*((-1.71832 - 234.11*sh*sh*sh*sh + 162.126*sh*sh*sh - 37.2361*sh*sh +
1457 6.29949*sh - 0.00810233/sh)/umsh/umsh +
1458 Lmub*8.*(224.662*sh*sh*sh - 2.27221 - 298.369*sh*sh*sh*sh - 65.1375*sh*sh +
1459 11.5686*sh - 0.0233098/sh)/9./umsh/umsh) +
1465 double umsh = 1. - sh;
1466 double Lmub = log(
mu_b/5.);
1467 gslpp::complex i = gslpp::complex::i();
1469 return (
Lbl*((-8.01684 - 1121.13*sh*sh*sh*sh + 882.711*sh*sh*sh - 280.866*sh*sh +
1470 54.1943*sh - 0.128988/sh)/4./umsh/umsh +
1471 i*(-2.14058 - 588.771*sh*sh*sh*sh + 483.997*sh*sh*sh - 124.579*sh*sh +
1472 12.3282*sh + 0.0145059/sh)/4./umsh/umsh) +
1478 double umsh = 1. - sh;
1479 double Lmub = log(
mu_b/5.);
1480 gslpp::complex i = gslpp::complex::i();
1482 return (
Lbl*((-2.27221 - 298.369*sh*sh*sh*sh + 224.662*sh*sh*sh - 65.1375*sh*sh +
1483 11.5686*sh - 0.0233098/sh)/umsh/umsh +
1484 i*(-0.666157 - 120.303*sh*sh*sh*sh + 109.315*sh*sh*sh - 28.2734*sh*sh +
1485 2.44527*sh + 0.00279781/sh)/umsh/umsh) +
1491 double umsh = 1. - sh;
1493 return (
Lbl*((7. - 16.*sqrt(sh) + 9.*sh)/4./umsh + log(1. - sqrt(sh)) +
1494 (1. + 3.*sh)/umsh*log((1. + sqrt(sh))/2.) - sh*log(sh)/umsh));
1499 double umsh = 1. - sh;
1501 return (
Lbl*(log(1. - sqrt(sh)) - (5. - 16.*sqrt(sh) + 11.*sh)/4./umsh +
1502 (1. - 5.*sh)/umsh*log((1. + sqrt(sh))/2.) - (1. - 3.*sh)*log(sh)/umsh));
1507 double umsh = 1. - sh;
1509 double shma = sh - a;
1510 double Lmub = log(
mu_b/5.);
1511 gslpp::complex omega, i = gslpp::complex::i();
1513 omega =
Lbl*((-351.322*sh*sh*sh*sh + 378.173*sh*sh*sh - 160.158*sh*sh + 24.2096*sh +
1514 0.305176)/24./sh/umsh/umsh) +
1517 omega +=
Lbl*i*(7.98625 + 238.507*shma - 766.869*shma*shma)*shma*shma/24./sh/umsh/umsh;
1522gslpp::complex
BXqll::f_Huber(
double sh,
double gamma_9,
double rho_c,
double rho_b,
double rho_0,
double rho_num)
1524 gslpp::complex i = gslpp::complex::i();
1530 return (-gamma_9 * log(
muh) + rho_c * (
g_Huber(4.*
z/sh) - 4./9. * log(
z) +
KS_cc(sh)) +
1531 rho_b *
g_Huber(4./sh) + rho_0 * (log(sh) - i*M_PI) + rho_num);
1536 gslpp::complex i = gslpp::complex::i();
1542 8./3. * (log(sh) - i*M_PI) - 40./9.);
1547 gslpp::complex i = gslpp::complex::i();
1550 g_y = -2./9.*(2.+y)*sqrt(fabs(1.-y));
1552 g_y *= log(fabs((1.+sqrt(1.-y))/(1.-sqrt(1.-y))))-i*M_PI;
1554 g_y *= 2.*atan(1./sqrt(y-1.));
1556 g_y += 20./27. + 4./9.*y;
1564 gslpp::complex i = gslpp::complex::i();
1565 gslpp::complex kscc;
1569 kscc =
KS_aux(sh, 3.097, 0.088e-3, 6.0e-2, 0.877);
1570 kscc +=
KS_aux(sh, 3.686, 0.277e-3, 8.3e-3, 0.9785);
1577 kscc += (i * M_PI * 1.02 - log(1. - sh / 4. /
z)) / 3.;
1582gslpp::complex
BXqll::KS_aux(
double sh,
double m,
double Gamma,
double Br_ll,
double Br_had)
1584 gslpp::complex i = gslpp::complex::i();
1585 double Gamma_had = Br_had * Gamma /
Mb_pole;
1588 double sqrtb = sqrt(b);
1589 double amsh = a - sh;
1590 double am4z = a - 4. *
z;
1592 return (Br_ll * Gamma /
Mb_pole * Gamma_had * ((M_PI * amsh + 2. * amsh * atan(am4z / sqrtb) +
1593 sqrtb * (log(b + am4z * am4z) - 2. * log(4. *
z - sh))) /
1594 (2. * sqrtb * (b + amsh * amsh)) + i * M_PI / (amsh * amsh + b)));
1599 gslpp::complex i = gslpp::complex::i();
1601 if(r > 0. && r < 1.)
1602 return (1.5 / r * (atan(sqrt(r / (1. - r))) / sqrt(r - r*r) - 1.));
1604 return (1.5 / r * ((log((1. - sqrt(1. - 1./r)) / (1. + sqrt(1. - 1./r))) + i * M_PI) /
1605 2. / sqrt(r*r - r) - 1.));
1607 throw std::runtime_error(
"BXqll::F_BIR(): 1/mc^2 corrections diverge at q^2 = 4*mc^2");
1626 throw std::runtime_error(
"BXqll::Phi_u(): order not implemented.");
1640 throw std::runtime_error(
"BXqll::Phi_u(): order not implemented.");
1646 if (ord_qcd ==
QCD0 && ord_qed ==
QED0)
1648 else if (ord_qcd ==
QCD1 && ord_qed ==
QED0)
1650 else if (ord_qcd ==
QCD2 && ord_qed ==
QED0)
1652 else if (ord_qcd ==
QCD0 && ord_qed ==
QED1)
1654 else if (ord_qcd ==
QCD1 && ord_qed ==
QED1)
1656 else if (ord_qcd ==
QCD2 && ord_qed ==
QED1)
1670 double Phi_ll_u = 0.;
1674 for(
unsigned int j = 0; j < 15; j++)
1675 for(
unsigned int i = 0; i <= j; i++)
1676 for(
unsigned int qcd_u =
QCD0; qcd_u <=
QCD2; qcd_u++)
1677 for(
unsigned int qed_u =
QED0; qed_u <=
QED1; qed_u++)
1678 for(
unsigned int qcd_a =
QCD0; qcd_a <=
QCD2; qcd_a++)
1679 for(
unsigned int qed_a =
QED0; qed_a <=
QED2; qed_a++)
1680 for(
unsigned int qcd_b =
QCD0; qcd_b <=
QCD2; qcd_b++)
1681 for(
unsigned int qed_b =
QED0; qed_b <=
QED2; qed_b++)
1683 for(
unsigned int qcd_c =
QCD0; qcd_c <=
QCD2; qcd_c++)
1684 for(
unsigned int qed_c =
QED0; qed_c <=
QED2; qed_c++)
1686 if (qcd_a + qcd_b + qcd_c + qcd_u <=
QCD_max && qed_a + qed_b + qed_c + qed_u <=
QED_max)
1687 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1688 Hij[qcd_c + 3*qed_c](i,j) ).real() *
Phi_u_inv(qcd_u, qed_u);
1691 if (qcd_a + qcd_b + 3 + qcd_u <=
QCD_max && qed_a + qed_b + 1 + qed_u <=
QED_max)
1692 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1695 if (qcd_a + qcd_b + 3 + qcd_u <=
QCD_max && qed_a + qed_b + 2 + qed_u <=
QED_max)
1696 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1699 if (qcd_a + qcd_b + 3 + qcd_u <=
QCD_max && qed_a + qed_b + 3 + qed_u <=
QED_max)
1700 Phi_ll_u += (
WC(i, qcd_a + 3*qed_a).conjugate() *
WC(j, qcd_b + 3*qed_b) *
1863 std::cout <<
"mu_b = " <<
mu_b << std::endl;
1864 std::cout <<
"mu_c = " <<
mu_c << std::endl;
1865 std::cout <<
"Mb = " <<
Mb << std::endl;
1866 std::cout <<
"Mc = " <<
Mc << std::endl;
1867 std::cout <<
"Mb_pole = " <<
Mb_pole << std::endl;
1868 std::cout <<
"Mc_pole = " <<
Mc_pole << std::endl;
1869 std::cout <<
"Ms = " <<
Ms << std::endl;
1870 std::cout <<
"m_e = " <<
Mlep << std::endl;
1871 std::cout <<
"m_tau = " <<
Mtau << std::endl;
1872 std::cout <<
"alstilde = " <<
alstilde << std::endl;
1873 std::cout <<
"aletilde = " <<
aletilde << std::endl;
1874 std::cout <<
"1/ale_MZ = " << 1./
mySM.
alphaMz() << std::endl;
1876 std::cout <<
"BXcenu = " <<
BR_BXcenu << std::endl;
1877 std::cout <<
"C = " <<
C_ratio << std::endl;
1878 std::cout <<
"pre = " <<
pre << std::endl;
1879 std::cout <<
"lambda_1 = " <<
lambda_1 << std::endl;
1880 std::cout <<
"lambda_2 = " <<
lambda_2 << std::endl;
1882 std::cout <<
"alsMuw = " <<
mySM.
Als(muw,
FULLNNNLO,
true,
true) << std::endl;
2283 gslpp::complex c78, c89, c17, c27, c18, c28, c19, c29;
2284 double c88, c11, c12, c22;
2287 double ctau1 = (3. * 3. - 1.) / 8. / 3. / 3. / 3.;
2288 double ctau2 = - (3. * 3. - 1.) / 4. / 3. / 3.;
2290 c78 =
CF *
WC(6,
LO) *
WC(7,
LO).conjugate();
2292 c88 =
CF *
WC(7,
LO).abs2();
2294 c11 = ctau1 *
WC(0,
LO).abs2();
2295 c12 = ctau2 * 2. * (
WC(0,
LO) *
WC(1,
LO).conjugate()).real();
2296 c22 =
CF *
WC(1,
LO).abs2();
2298 c17 = ctau2 *
WC(0,
LO) *
WC(6,
LO).conjugate();
2299 c18 = ctau2 *
WC(0,
LO) *
WC(7,
LO).conjugate();
2300 c19 = ctau2 *
WC(0,
LO) *
C9mod(sh).conjugate();
2301 c27 =
CF *
WC(1,
LO) *
WC(6,
LO).conjugate();
2302 c28 =
CF *
WC(1,
LO) *
WC(7,
LO).conjugate();
2305 Brems_a = 2. * (c78 *
tau78(sh) + c89 *
tau89(sh)).real() + c88 *
tau88(sh);
2321 return (factor * ((
WC(7,
LO) * C10mod).real() *
t810(sh) +
2327 gslpp::complex T9 = 4./3. *
WC(0,
LO) +
WC(1,
LO) + 6. *
WC(2,
LO) + 60. *
WC(4,
LO);
2328 gslpp::complex U9 = -7./2. *
WC(2,
LO) - 2./3. *
WC(3,
LO) - 38. *
WC(4,
LO) - 32./3. *
WC(5,
LO);
2329 gslpp::complex W9 = -1./2. *
WC(2,
LO) - 2./3. *
WC(3,
LO) - 8. *
WC(4,
LO) - 32./3. *
WC(5,
LO);
2330 gslpp::complex A9 = -32./27. *
WC(0,
LO) - 8./9. *
WC(1,
LO) - 16./9. *
WC(2,
LO) +
2331 32./27. *
WC(3,
LO) - 112./9. *
WC(4,
LO) + 512./27. *
WC(5,
LO);
2332 A9 *= log(1. /
muh);
2334 A9 += 4./3. *
WC(2,
LO) + 64./9. *
WC(4,
LO) + 64./27. *
WC(5,
LO);
2336 return (A9 + T9 *
h_z(
z, sh) + U9 *
h_z(1., sh) + W9 *
h_z(0., sh));
2341 gslpp::complex i = gslpp::complex::i();
2346 h_z = 8./27.-4./9.*(log(sh)-i*M_PI);
2350 h_z = -2./9.*(2.+4./sh*zed)*sqrt(std::abs(4.*zed-sh)/sh);
2352 h_z *= log((sqrt(sh)+sqrt(sh-4.*zed))/(sqrt(sh)-sqrt(sh-4.*zed)))-i*M_PI;
2354 h_z *= 2.*atan(sqrt(sh/(4.*zed-sh)));
2356 h_z += -4./9.*log(zed)+8./27.+16./9.*zed/sh;
2364 gslpp::complex i = gslpp::complex::i();
2365 double dmsh = 2.-sh;
2366 double qmsh = 4.-sh;
2368 return (8./9./sh*(25.-2.*M_PI*M_PI-27.*sh+3.*sh*sh-sh*sh*sh+12.*(sh+sh*sh)*log(sh)+
2369 6.*(M_PI/2.-atan((2.-4.*sh+sh*sh)/dmsh/sqrt(sh)/sqrt(qmsh)))*
2370 (M_PI/2.-atan((2.-4.*sh+sh*sh)/dmsh/sqrt(sh)/sqrt(qmsh)))-
2371 24.*(dilog((sh-i*sqrt(sh)*sqrt(qmsh))/2.)).real()-12.*((1.-sh)*sqrt(sh)*sqrt(qmsh)-
2372 2.*atan(sqrt(sh)*sqrt(qmsh)/dmsh))*(atan(sqrt(qmsh/sh))-atan(sqrt(sh)*sqrt(qmsh)/dmsh))));
2377 gslpp::complex i = gslpp::complex::i();
2378 double dmsh = 2.-sh;
2379 double qmsh = 4.-sh;
2381 return (2./3.*(sh*qmsh-3.-4.*log(sh)*(1.-sh-sh*sh)-8.*(dilog(sh/2.+i*sqrt(sh)*sqrt(qmsh)/2.)-
2382 dilog((sh*qmsh-2.)/2.+i*dmsh*sqrt(sh)*sqrt(qmsh)/2.)).real()+
2383 4.*(sh*sh*sqrt(qmsh/sh)+2.*atan(sqrt(sh)*sqrt(qmsh)/dmsh))*(atan(sqrt(qmsh/sh))-
2384 atan(sqrt(sh)*sqrt(qmsh)/dmsh))));
2389 gslpp::complex i = gslpp::complex::i();
2390 double umsh = 1.-sh;
2391 double qmsh = 4.-sh;
2393 return (4./27./sh*(-8.*M_PI*M_PI+umsh*(77.-sh-4.*sh*sh)-24.*dilog((gslpp::complex) umsh).real()+
2394 3.*(10.-4.*sh-9.*sh*sh+8.*log(sqrt(sh)/umsh))*log(sh)+48.*(dilog((3.-sh)/2.+
2395 i*umsh*sqrt(qmsh)/2./sqrt(sh))).real()-6.*((20.*sh+10.*sh*sh-3.*sh*sh*sh)/sqrt(sh)/sqrt(qmsh)
2396 -8.*M_PI+8.*atan(sqrt(qmsh/sh)))*(atan(sqrt(qmsh/sh))-atan(sqrt(sh)*sqrt(qmsh)/(2.-sh)))));
2401 double c0, c1, c2, c3, c4, c5, c6, c7;
2404 double sh3 = sh*sh2;
2408 c0 = -85.5881372; c1 = 597.0445584; c2 = -3951.5752864; c3 = 19597.1776773;
2409 c4 = -61781.6106761; c5 = 109385.1435323; c6 = -82410.437659; c7 = -23.4496345;
2411 else if (q2 >= 14.4)
2413 c0 = -606.8557516; c1 = 1655.5780054, c2 = -2473.7140331; c3 = 2628.5002517;
2414 c4 = -1766.6491578; c5 = 674.9172919; c6 = -111.776621; c7 = -230.9832054;
2417 throw std::runtime_error(
"BXqll::tau22fit: region of q^2 not implemented");
2419 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2424 double c0, c1, c2, c3, c4, c5, c6, c7;
2427 double sh3 = sh*sh2;
2431 c0 = -110.2528109; c1 = 778.1558706; c2 = -5200.7693192; c3 = 25864.3213911;
2432 c4 = -81610.5151368; c5 = 144546.094428; c6 = -108930.3093624; c7 = -31.0505015;
2434 else if (q2 >= 14.4)
2436 c0 = 104.4988411; c1 = -236.2534692; c2 = 265.8226647; c3 = -224.7002307;
2437 c4 = 126.6513245; c5 = -42.3215314; c6 = 6.3024015; c7 = 45.8968367;
2440 throw std::runtime_error(
"BXqll::tau27fit_Re: region of q^2 not implemented");
2442 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2447 double c0, c1, c2, c3, c4, c5, c6, c7;
2450 double sh3 = sh*sh2;
2454 c0 = -109.7117334; c1 = 770.3496716; c2 = -5092.660051; c3 = 25238.4761864;
2455 c4 = -79546.8013633; c5 = 140825.6087763; c6 = -106089.2269733; c7 = -30.1707767;
2457 else if (q2 >= 14.4)
2459 c0 = -3232.2938841; c1 = 8748.3523192; c2 = -12941.1559426; c3 = 13657.4529099;
2460 c4 = -9136.8371605; c5 = 3479.428199; c6 = -574.9465146; c7 = -1238.52469;
2463 throw std::runtime_error(
"BXqll::tau27fit_Im: region of q^2 not implemented");
2465 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2470 double c0, c1, c2, c3, c4, c5, c6, c7;
2473 double sh3 = sh*sh2;
2477 c0 = 31.4802423; c1 = -241.0846881; c2 = 1656.2061824; c3 = -8298.8096208;
2478 c4 = 26278.5739013; c5 = -46638.1094866; c6 = 35189.3746188; c7 = 7.7075461;
2480 else if (q2 >= 14.4)
2482 c0 = 4.6900829; c1 = -11.9199517; c2 = 15.9522495; c3 = -15.3178755;
2483 c4 = 9.3880956; c5 = -3.2996681; c6 = 0.5070672; c7 = 1.8726389;
2486 throw std::runtime_error(
"BXqll::tau28fit_Re: region of q^2 not implemented");
2488 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2493 double c0, c1, c2, c3, c4, c5, c6, c7;
2496 double sh3 = sh*sh2;
2500 c0 = 33.7994469; c1 = -246.7751255; c2 = 1660.6205985; c3 = -8272.13013;
2501 c4 = 26130.6171608; c5 = -46315.2850273; c6 = 34917.5988012; c7 = 8.6664919;
2503 else if (q2 >= 14.4)
2505 c0 = -36.7487481; c1 = 99.7027369; c2 = -147.7606619; c3 = 155.8859306;
2506 c4 = -104.1170313; c5 = 39.5573846; c6 = -6.5196117; c7 = -14.0404657;
2509 throw std::runtime_error(
"BXqll::tau28fit_Im: region of q^2 not implemented");
2511 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2516 double c0, c1, c2, c3, c4, c5, c6, c7;
2519 double sh3 = sh*sh2;
2523 c0 = 0.6273561; c1 = -0.6332694; c2 = -2.9264173; c3 = 8.9668433;
2524 c4 = -17.5473592; c5 = 25.1466317; c6 = -19.5875632; c7 = 0.0002596;
2526 else if (q2 >= 14.4)
2528 c0 = 5.6720573; c1 = -8.2946135; c2 = 2.2577422; c3 = 1.1204784;
2529 c4 = -0.9164538; c5 = 0.1768918; c6 = -0.0161023; c7 = 3.2956642;
2532 throw std::runtime_error(
"BXqll::tau29fit_Re: region of q^2 not implemented");
2534 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2539 double c0, c1, c2, c3, c4, c5, c6, c7;
2542 double sh3 = sh*sh2;
2546 c0 = 0.3394312; c1 = -0.2742808; c2 = -0.1496318; c3 = 1.6480602;
2547 c4 = -6.3928038; c5 = 13.9968788; c6 = -11.1080801; c7 = -0.0001847;
2549 else if (q2 >= 14.4)
2551 c0 = -823.7736; c1 = 2231.2869412; c2 = -3306.5226002; c3 = 3497.1579714;
2552 c4 = -2344.7802726; c5 = 894.7382317; c6 = -148.1066909; c7 = -315.648791;
2555 throw std::runtime_error(
"BXqll::tau29fit_Im: region of q^2 not implemented");
2557 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
2562 gslpp::complex i = gslpp::complex::i();
2563 double umsh = 1. - sh;
2564 double shmt = sh - 3.;
2565 double ssh = sqrt(sh);
2566 double sqmsh = sqrt(4. - sh);
2567 double umsqrt = 1. - ssh;
2568 double dmsqrt = 2. - ssh;
2571 double dilog_2 = (i * dilog((-2. + i * sqmsh + ssh) * ssh / (i * sqmsh - ssh))).real();
2572 double dilog_3 = (i * dilog(i * sqmsh * umsh * ssh / 2. - shmt * sh / 2.)).real();
2574 return (3. * (umsqrt * umsqrt * (23. - 6. * ssh - sh) + 4. * umsh * (7. + sh) * log(1. + ssh) +
2575 2. * sh * (1. + sh - log(sh)) * log(sh)) + 2. * (-3. * MPI2 * (1. + 2. * sh) -
2576 6. * shmt * sh * log(dmsqrt) - 36. * (1. + 2. * sh) * dilog_1 - ssh / sqmsh *
2577 (6. * (2. * shmt * sh * atan((2. + ssh) / sqmsh) + 2. * M_PI * log(dmsqrt) -
2578 atan(sqmsh / ssh) * (shmt * sh + 4. * log(dmsqrt)) - atan(ssh * sqmsh / (2. - sh)) *
2579 (shmt * sh - log(sh)) + 4. * dilog_2 - 2. * dilog_3)))) / 6. / umsh / umsh;
2584 double c0, c1, c2, c3, c4, c5, c6, c7;
2587 double sh3 = sh*sh2;
2591 c0 = 0.4853155; c1 = -0.4841452; c2 = 2.1099434; c3 = -17.9649531;
2592 c4 = 69.0927112; c5 = -154.3567398; c6 = 145.5137293; c7 = -0.001321;
2594 else if (q2 >= 14.4)
2596 c0 = 0.84111; c1 = -0.2282341; c2 = -1.3546028; c3 = 1.3081906;
2597 c4 = -0.8150979; c5 = 0.2963146; c6 = -0.0476803; c7 = 1.0777667;
2600 throw std::runtime_error(
"BXqll::t210fit_Re: region of q^2 not implemented");
2602 return (c0 + c1 * sh + c2 * sh2 + c3 * sh3 + c4 * sh2*sh2 + c5 * sh2*sh3 + c6 * sh3*sh3 + c7 * log(sh));
double tau88(double sh)
The finite bremsstrahlung correction from .
double getH(std::string obs, double sh)
Method to obtain each observable as defined in .
double omega22em_T(double sh)
double tau28fit_Re(double sh)
The fit of the real part of finite bremsstrahlung correction from .
gslpp::complex KS_cc(double sh)
Kruger-Sehgal factorizable non-perturbative charm contributions following .
double omega79_L(double sh)
double PhiTL_brems(double sh)
The finite bremsstrahlung corrections to dGamma/ds for from .
gslpp::complex h_z(double zed, double sh)
Auxiliary function from .
std::vector< gslpp::vector< gslpp::complex > > M_10
double Phi_u(orders ord)
Normalization function for from eq. (4.8) of 1503.04849.
double H_A(double sh)
Angular observable as defined in .
double S79_T(double sh, orders order)
gslpp::complex F29(double sh)
The correction from .
double omega77em_T(double sh)
Auxiliary functions from .
gslpp::complex eij_L(unsigned int i, unsigned int j, double sh)
gslpp::complex f_Huber(double sh, double gamma_9, double rho_c, double rho_b, double rho_0, double rho_num)
Auxiliary function from .
BXqll(const StandardModel &SM_i, QCD::quark quark_i, QCD::lepton lep_i)
Constructor.
double F_27re(double muh, double z, double sh, int maxpow=20)
double integrateH(std::string obs, double q_min, double q_max)
The integral of each observable as defined in .
double omega79_T(double sh)
double F_19re(double muh, double z, double sh, int maxpow=20)
double S910_A(double sh, orders order)
double DeltaF_29im(double muh, double z, double sh, int maxpow=20)
double H_T(double sh)
Angular observable as defined in .
gslpp::complex omega27em_T(double sh)
std::vector< gslpp::vector< gslpp::complex > > M_9
double S77_L(double sh, orders order)
Auxiliary functions from .
double S77_T(double sh, orders order)
Auxiliary functions from .
gslpp::complex cij_A(unsigned int i, unsigned int j, double sh)
double H_L(double sh)
Angular observable as defined in .
gslpp::complex F87(double sh)
The correction from .
gslpp::complex g_Huber(double y)
Auxiliary function from .
void computeMi(double sh)
Vectors of auxiliary functions from Table 6 of .
double S99_L(double sh, orders order)
std::vector< gslpp::matrix< gslpp::complex > > Hij_L
double tau27fit_Re(double sh)
The fit of the real part of finite bremsstrahlung correction from .
double tau27fit_Im(double sh)
The fit of the imaginary part of finite bremsstrahlung correction from .
double omega77_L(double sh)
Auxiliary functions from .
void Test_WC_DF1()
Temporary method to test Wilson coefficients with C10_OS1 matching and HeffDF1 evolution.
gslpp::complex F17(double sh)
The correction from .
gslpp::complex eij_T(unsigned int i, unsigned int j, double sh)
Log-enhanced electromagnetic corrections as defined in .
double tau28fit_Im(double sh)
The fit of the imaginary part of finite bremsstrahlung correction from .
double S99_T(double sh, orders order)
void updateParameters()
The update parameter method for BXqll.
double F_27im(double muh, double z, double sh, int maxpow=20)
double t810(double sh)
The finite bremsstrahlung correction from .
gslpp::complex cij_L(unsigned int i, unsigned int j, double sh, unsigned int ord)
gslpp::complex omega29em_L(double sh)
gsl_integration_cquad_workspace * w_H
gslpp::complex C9mod(double sh)
The modified coefficient from .
double omega79em_T(double sh)
double omega79em_L(double sh)
double omega22em_L(double sh)
gslpp::complex cij_T(unsigned int i, unsigned int j, double sh, unsigned int ord)
contributions as defined in
double omega77em_L(double sh)
Auxiliary functions from .
gslpp::complex omega210em_A(double sh)
double CCH_multiplication(std::vector< gslpp::matrix< gslpp::complex > > &Hij)
Auxiliary function that performs the multiplication of Wilson coefficients and matrix elements.
double omega710_A(double sh)
Auxiliary functions from .
double tau78(double sh)
The finite bremsstrahlung correction from .
gslpp::complex KS_aux(double sh, double m, double Gamma, double Br_ll, double Br_had)
Auxiliary function for the Kruger-Sehgal charm contributions.
double F_29im(double muh, double z, double sh, int maxpow=20)
gslpp::complex F19(double sh)
The correction from .
std::vector< gslpp::matrix< gslpp::complex > > Hij_T
double DeltaF_19re(double muh, double z, double sh, int maxpow=20)
double F_17re(double muh, double z, double sh, int maxpow=20)
double tau22fit(double sh)
The fit of the finite bremsstrahlung correction from .
gslpp::matrix< gslpp::complex > WC
double tau89(double sh)
The finite bremsstrahlung correction from .
double S1010_L(double sh, orders order)
double omega99em_T(double sh)
double S79_L(double sh, orders order)
double abslambdat_over_Vcb
std::vector< std::string > BXqllParameters
std::vector< std::string > initializeBXqllParameters()
A method for initializing the parameters necessary for BXqll.
unsigned int int_qed(orders_qed order_qed)
Auxiliary function that matches orders_qed to an integer.
const StandardModel & mySM
double omega77_T(double sh)
Auxiliary functions from .
double DeltaF_19im(double muh, double z, double sh, int maxpow=20)
gslpp::complex omega27em_L(double sh)
double tau29fit_Re(double sh)
The fit of the real part of finite bremsstrahlung correction from .
double omega910em_A(double sh)
gslpp::complex F27(double sh)
The correction from .
double F_19im(double muh, double z, double sh, int maxpow=20)
double F89(double sh)
The correction from .
std::vector< gslpp::vector< gslpp::complex > > M_7
double F_17im(double muh, double z, double sh, int maxpow=20)
double tau29fit_Im(double sh)
The fit of the imaginary part of finite bremsstrahlung correction from .
double S710_A(double sh, orders order)
Auxiliary functions from .
gslpp::complex F_BIR(double r)
Auxiliary function from .
friend double gslpp_special_functions::dilog(double x)
virtual ~BXqll()
Destructor.
double F_29re(double muh, double z, double sh, int maxpow=20)
double getR_LOWQ2(double sh)
dGamma/ds for in the low dilepton invariant mass region.
gslpp::complex eij_A(unsigned int i, unsigned int j, double sh)
double PhiA_brems(double sh)
The finite bremsstrahlung corrections to dAFB/ds for from .
double omega910_A(double sh)
gsl_error_handler_t * old_handler
Expanded< gslpp::vector< gslpp::complex > > allcoeff
gslpp::complex f9pen_Huber(double sh)
Auxiliary function from .
std::vector< gslpp::matrix< gslpp::complex > > Hij_A
double t210fit(double sh)
The fit of finite bremsstrahlung correction from .
double omega99em_L(double sh)
double DeltaF_29re(double muh, double z, double sh, int maxpow=20)
double omega99_L(double sh)
double omega99_T(double sh)
double omega710em_A(double sh)
Auxiliary functions from .
gslpp::complex omega29em_T(double sh)
double Phi_u_inv(unsigned int ord_qcd, unsigned int ord_qed)
Inverse of the normalization function for from eq. (4.8) of 1503.04849.
double S1010_T(double sh, orders order)
const gslpp::complex computelamt_s() const
The product of the CKM elements .
const gslpp::complex getV_cb() const
A member for returning the value of the CKM element .
double F_17im(double muh, double z, double sh, int maxpow=20)
double DeltaF_19re(double muh, double z, double sh, int maxpow=20)
double F_19im(double muh, double z, double sh, int maxpow=20)
double F_19re(double muh, double z, double sh, int maxpow=20)
double F_17re(double muh, double z, double sh, int maxpow=20)
double DeltaF_19im(double muh, double z, double sh, int maxpow=20)
double F_27re(double muh, double z, double sh, int maxpow=20)
double F_27im(double muh, double z, double sh, int maxpow=20)
double DeltaF_29re(double muh, double z, double sh, int maxpow=20)
double DeltaF_29im(double muh, double z, double sh, int maxpow=20)
double F_29re(double muh, double z, double sh, int maxpow=20)
double F_29im(double muh, double z, double sh, int maxpow=20)
virtual Expanded< gslpp::vector< gslpp::complex > > ComputeCoeff(double mu, schemes scheme=NDR)
gslpp::vector< gslpp::complex > LowScaleCoeff(qcd_orders order_qcd, qed_orders order_qed)
const double & getMass() const
A get method to access the particle mass.
const double getMuc() const
A get method to access the threshold between four- and three-flavour theory in GeV.
const double getCF() const
A get method to access the Casimir factor of QCD.
const double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
quark
An enum type for quarks.
const double Beta0(const double nf) const
The coefficient for a certain number of flavours .
lepton
An enum type for leptons.
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
const double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
const double Mbar2Mp(const double mbar, const quark q, const orders order=FULLNNLO) const
Converts the mass to the pole mass.
A model class for the Standard Model.
const double getMuw() const
A get method to retrieve the matching scale around the weak scale.
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double Ale(double mu, orders order, bool Nf_thr=true) const
The running electromagnetic coupling in the scheme.
const CKM & getCKM() const
A get method to retrieve the member object of type CKM.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
const double getGF() const
A get method to retrieve the Fermi constant .
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.
virtual const double alphaMz() const
The electromagnetic coupling at the -mass scale, .
orders
An enum type for orders in QCD.
qed_orders
An enum type for qed_orders in electroweak.
orders_qed
An enum type for orders in electroweak.
qcd_orders
An enum type for qcd_orders in QCD.