14#include <gsl/gsl_integration.h>
17#include <TFitResultPtr.h>
18#include <gsl/gsl_spline.h>
22#define NFPOLARBASIS_MVLL false
23#define COMPUTECP false
24#define GSL_INTERP_DIM 10
25#define GSL_INTERP_DIM_DC 10
27#define FULLNLOQCDF_MVll false
382 double beta (
double q2);
392 return (2. *
MM * sqrt(q2))/sqrt(lambda(q2)) * V_0t(q2);
424 return twoMM3/sqrt(q2 * lambda(q2)) * T_0t(q2);
457 return S_L_pre/sqrt(lambda(q2)) * S_L(q2);
516 gslpp::complex
h_lambda(
int hel,
double q2);
560 gslpp::complex
H_V_0(
double q2,
bool bar);
567 gslpp::complex
H_V_p(
double q2,
bool bar);
574 gslpp::complex
H_V_m(
double q2,
bool bar);
581 gslpp::complex
H_A_0(
double q2,
bool bar);
588 gslpp::complex
H_A_p(
double q2,
bool bar);
595 gslpp::complex
H_A_m(
double q2,
bool bar);
602 gslpp::complex
H_S(
double q2,
bool bar);
609 gslpp::complex
H_P(
double q2,
bool bar);
685 return (
getQCDf_1(cutoff) * cutoff).abs();
691 return (
getQCDf_2(cutoff) * cutoff).abs();
697 return (
getQCDf_3(cutoff) * cutoff).abs();
708 return C2_inv * (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * (
h_lambda(2,q2)-
h_lambda(1,q2))).real()/q2;
719 return C2_inv * (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * (
h_lambda(2,q2)-
h_lambda(1,q2))).imag()/q2;
730 return C2_inv * (gtilde_2_pre/A_1(q2) * (
h_lambda(1,q2)+
h_lambda(2,q2))).real()/q2;
741 return C2_inv * (gtilde_2_pre/A_1(q2) * (
h_lambda(1,q2)+
h_lambda(2,q2))).imag()/q2;
752 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*
h_lambda(0,q2)/q2-
764 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*
h_lambda(0,q2)/q2-
775 return (sixteenM_PI2MM2 *
h_lambda(0,q2)/q2).real();
785 return (sixteenM_PI2MM2 *
h_lambda(0,q2)/q2).imag();
804 return (sixteenM_PI2MM2 *
h_lambda(1,q2)/q2).real();
814 return (sixteenM_PI2MM2 *
h_lambda(1,q2)/q2).imag();
833 return (sixteenM_PI2MM2 *
h_lambda(2,q2)/q2).real();
843 return (sixteenM_PI2MM2 *
h_lambda(2,q2)/q2).imag();
894 gslpp::complex lambda_t;
895 gslpp::complex lambda_u;
897 gslpp::complex
h_0[3];
898 gslpp::complex h_1[3];
899 gslpp::complex h_2[3];
900 gslpp::complex SU3_breaking;
902 gslpp::complex beta_0[7];
903 gslpp::complex beta_1[7];
904 gslpp::complex beta_2[7];
917 double twoalphaBtoKst;
964 double ninetysixM_PI3MM3;
967 double sixteenM_PI2MM2;
969 gslpp::complex H_0_pre;
977 gslpp::complex H_0_WC;
978 gslpp::complex H_c_WC;
979 gslpp::complex H_b_WC;
984 gslpp::complex ihalfMPI;
992 gslpp::complex NN_conjugate;
1000 gslpp::complex ubar;
1001 gslpp::complex arg1;
1008 gslpp::complex L1xp;
1009 gslpp::complex L1xm;
1010 gslpp::complex L1yp;
1011 gslpp::complex L1ym;
1012 gslpp::complex F87_0;
1013 gslpp::complex F87_1;
1014 gslpp::complex F87_2;
1015 gslpp::complex F87_3;
1088 gslpp::vector<gslpp::complex> ** allcoeff;
1089 gslpp::vector<gslpp::complex> ** allcoeffh;
1090 gslpp::vector<gslpp::complex> ** allcoeffprime;
1092 gslpp::vector<gslpp::complex> ** allcoeff_noSM;
1094 gslpp::vector<gslpp::complex> ** allcoeff_nu;
1096 gslpp::vector<gslpp::complex> ** allcoeff_noSM_nu;
1099 gslpp::complex C_1L_bar;
1100 gslpp::complex C_1Lh_bar;
1102 gslpp::complex C_2L_bar;
1103 gslpp::complex C_2Lh_bar;
1110 gslpp::complex C_8L;
1111 gslpp::complex C_8Lh;
1113 gslpp::complex C_10;
1117 gslpp::complex C_7p;
1118 gslpp::complex C_9p;
1119 gslpp::complex C_10p;
1120 gslpp::complex C_Sp;
1121 gslpp::complex C_Pp;
1123 gslpp::complex C_L_nunu_e;
1124 gslpp::complex C_R_nunu_e;
1125 gslpp::complex C_L_nunu_mu;
1126 gslpp::complex C_R_nunu_mu;
1127 gslpp::complex C_L_nunu_tau;
1128 gslpp::complex C_R_nunu_tau;
1130 std::vector<double> Re_T_perp;
1131 std::vector<double> Im_T_perp;
1132 std::vector<double> Re_T_para;
1133 std::vector<double> Im_T_para;
1135 gsl_interp_accel *acc_Re_T_perp;
1136 gsl_interp_accel *acc_Im_T_perp;
1137 gsl_interp_accel *acc_Re_T_para;
1138 gsl_interp_accel *acc_Im_T_para;
1140 gsl_spline *spline_Re_T_perp;
1141 gsl_spline *spline_Im_T_perp;
1142 gsl_spline *spline_Re_T_para;
1143 gsl_spline *spline_Im_T_para;
1145 gsl_interp_accel *acc_Re_deltaC7_QCDF;
1146 gsl_interp_accel *acc_Im_deltaC7_QCDF;
1147 gsl_interp_accel *acc_Re_deltaC9_QCDF;
1148 gsl_interp_accel *acc_Im_deltaC9_QCDF;
1150 gsl_spline *spline_Re_deltaC7_QCDF;
1151 gsl_spline *spline_Im_deltaC7_QCDF;
1152 gsl_spline *spline_Re_deltaC9_QCDF;
1153 gsl_spline *spline_Im_deltaC9_QCDF;
1156 std::vector<double> Re_T_perp_conj;
1157 std::vector<double> Im_T_perp_conj;
1158 std::vector<double> Re_T_para_conj;
1159 std::vector<double> Im_T_para_conj;
1161 gsl_interp_accel *acc_Re_T_perp_conj;
1162 gsl_interp_accel *acc_Im_T_perp_conj;
1163 gsl_interp_accel *acc_Re_T_para_conj;
1164 gsl_interp_accel *acc_Im_T_para_conj;
1166 gsl_interp_accel *acc_Re_deltaC7_QCDF_conj;
1167 gsl_interp_accel *acc_Im_deltaC7_QCDF_conj;
1168 gsl_interp_accel *acc_Re_deltaC9_QCDF_conj;
1169 gsl_interp_accel *acc_Im_deltaC9_QCDF_conj;
1171 gsl_spline *spline_Re_T_perp_conj;
1172 gsl_spline *spline_Im_T_perp_conj;
1173 gsl_spline *spline_Re_T_para_conj;
1174 gsl_spline *spline_Im_T_para_conj;
1176 gsl_spline *spline_Re_deltaC7_QCDF_conj;
1177 gsl_spline *spline_Im_deltaC7_QCDF_conj;
1178 gsl_spline *spline_Re_deltaC9_QCDF_conj;
1179 gsl_spline *spline_Im_deltaC9_QCDF_conj;
1182 std::vector<double> myq2;
1184 TFitResultPtr Re_T_perp_res;
1185 TFitResultPtr Im_T_perp_res;
1186 TFitResultPtr Re_T_para_res;
1187 TFitResultPtr Im_T_para_res;
1189 TFitResultPtr Re_T_perp_res_conj;
1190 TFitResultPtr Im_T_perp_res_conj;
1191 TFitResultPtr Re_T_para_res_conj;
1192 TFitResultPtr Im_T_para_res_conj;
1204 double avaSigmaTree;
1208 double errSigmaTree;
1213 gsl_integration_cquad_workspace * w_sigma;
1214 gsl_integration_cquad_workspace * w_delta;
1215 gsl_integration_cquad_workspace * w_sigmaTree;
1217 gsl_error_handler_t * old_handler;
1219 std::map<std::pair<double, double>, gslpp::complex > cacheI1;
1221 std::map<std::pair<double, double>,
double > cacheSigma0;
1222 std::map<std::pair<double, double>,
double > cacheSigma1;
1223 std::map<std::pair<double, double>,
double > cacheSigma2;
1224 std::map<std::pair<double, double>,
double > cacheSigma3;
1225 std::map<std::pair<double, double>,
double > cacheSigma4;
1226 std::map<std::pair<double, double>,
double > cacheSigma5;
1227 std::map<std::pair<double, double>,
double > cacheSigma6;
1228 std::map<std::pair<double, double>,
double > cacheSigma7;
1229 std::map<std::pair<double, double>,
double > cacheSigma8;
1230 std::map<std::pair<double, double>,
double > cacheSigma9;
1231 std::map<std::pair<double, double>,
double > cacheSigma10;
1232 std::map<std::pair<double, double>,
double > cacheSigma11;
1234 std::map<std::pair<double, double>,
double > cacheDelta0;
1235 std::map<std::pair<double, double>,
double > cacheDelta1;
1236 std::map<std::pair<double, double>,
double > cacheDelta2;
1237 std::map<std::pair<double, double>,
double > cacheDelta3;
1238 std::map<std::pair<double, double>,
double > cacheDelta6;
1239 std::map<std::pair<double, double>,
double > cacheDelta7;
1240 std::map<std::pair<double, double>,
double > cacheDelta8;
1241 std::map<std::pair<double, double>,
double > cacheDelta10;
1242 std::map<std::pair<double, double>,
double > cacheDelta11;
1244 std::map<std::pair<double, double>,
double > cacheSigmaTree;
1246 unsigned int N_updated;
1247 gslpp::vector<double> N_cache;
1248 gslpp::complex Nc_cache;
1250 unsigned int V_updated;
1251 gslpp::vector<double> V_cache;
1253 unsigned int A0_updated;
1254 gslpp::vector<double> A0_cache;
1256 unsigned int A1_updated;
1257 gslpp::vector<double> A1_cache;
1259 unsigned int T1_updated;
1260 gslpp::vector<double> T1_cache;
1262 unsigned int T2_updated;
1263 gslpp::vector<double> T2_cache;
1265 unsigned int k2_updated;
1266 gslpp::vector<double> k2_cache;
1268 unsigned int z_updated;
1270 unsigned int lambda_updated;
1272 unsigned int beta_updated;
1275 unsigned int F_updated;
1277 unsigned int VL1_updated;
1278 unsigned int VL2_updated;
1280 unsigned int TL1_updated;
1281 unsigned int TL2_updated;
1283 unsigned int VR1_updated;
1284 unsigned int VR2_updated;
1286 unsigned int TR1_updated;
1287 unsigned int TR2_updated;
1289 unsigned int VL0_updated;
1290 gslpp::vector<double> VL0_cache;
1292 unsigned int TL0_updated;
1293 gslpp::vector<double> TL0_cache;
1295 unsigned int VR0_updated;
1297 unsigned int TR0_updated;
1299 unsigned int Mb_Ms_updated;
1301 unsigned int SL_updated;
1302 gslpp::vector<double> SL_cache;
1304 unsigned int SR_updated;
1306 unsigned int C_1_updated;
1307 gslpp::complex C_1_cache;
1309 unsigned int C_2_updated;
1310 gslpp::complex C_2_cache;
1312 unsigned int C_3_updated;
1313 gslpp::complex C_3_cache;
1315 unsigned int C_4_updated;
1316 gslpp::complex C_4_cache;
1318 unsigned int C_5_updated;
1319 gslpp::complex C_5_cache;
1321 unsigned int C_6_updated;
1322 gslpp::complex C_6_cache;
1324 unsigned int C_7_updated;
1325 gslpp::complex C_7_cache;
1327 unsigned int C_9_updated;
1328 gslpp::complex C_9_cache;
1330 unsigned int C_10_updated;
1331 gslpp::complex C_10_cache;
1333 unsigned int C_7p_updated;
1334 gslpp::complex C_7p_cache;
1336 unsigned int C_9p_updated;
1337 gslpp::complex C_9p_cache;
1339 unsigned int C_10p_updated;
1340 gslpp::complex C_10p_cache;
1342 unsigned int C_S_updated;
1343 gslpp::complex C_S_cache;
1345 unsigned int C_P_updated;
1346 gslpp::complex C_P_cache;
1348 unsigned int C_Sp_updated;
1349 gslpp::complex C_Sp_cache;
1351 unsigned int C_Pp_updated;
1352 gslpp::complex C_Pp_cache;
1354 unsigned int C_2Lh_updated;
1355 gslpp::complex C_2Lh_cache;
1357 unsigned int C_8Lh_updated;
1358 gslpp::complex C_8Lh_cache;
1360 unsigned int C_L_nunu_e_updated;
1361 unsigned int C_L_nunu_mu_updated;
1362 unsigned int C_L_nunu_tau_updated;
1363 gslpp::complex C_L_nunu_e_cache;
1364 gslpp::complex C_L_nunu_mu_cache;
1365 gslpp::complex C_L_nunu_tau_cache;
1367 unsigned int C_R_nunu_e_updated;
1368 unsigned int C_R_nunu_mu_updated;
1369 unsigned int C_R_nunu_tau_updated;
1370 gslpp::complex C_R_nunu_e_cache;
1371 gslpp::complex C_R_nunu_mu_cache;
1372 gslpp::complex C_R_nunu_tau_cache;
1374 unsigned int Yupdated;
1375 gslpp::vector<double> Ycache;
1377 gslpp::complex h0Ccache[4];
1378 gslpp::complex h1Ccache[4];
1379 gslpp::complex h2Ccache[4];
1381 gslpp::complex beta0Ccache[8];
1382 gslpp::complex beta1Ccache[8];
1383 gslpp::complex beta2Ccache[8];
1385 unsigned int h0_updated;
1386 unsigned int h1_updated;
1387 unsigned int h2_updated;
1389 unsigned int H_V0updated;
1390 gslpp::vector<double> H_V0cache;
1392 unsigned int H_V1updated;
1393 gslpp::vector<double> H_V1cache;
1395 unsigned int H_V2updated;
1396 gslpp::vector<double> H_V2cache;
1398 unsigned int H_A0updated;
1399 unsigned int H_A1updated;
1400 unsigned int H_A2updated;
1402 unsigned int H_Supdated;
1403 gslpp::vector<double> H_Scache;
1405 unsigned int H_Pupdated;
1406 gslpp::vector<double> H_Pcache;
1408 unsigned int I0_updated;
1409 unsigned int I1_updated;
1410 unsigned int I2_updated;
1411 unsigned int I3_updated;
1412 unsigned int I4_updated;
1413 unsigned int I5_updated;
1414 unsigned int I6_updated;
1415 unsigned int I7_updated;
1416 unsigned int I8_updated;
1417 unsigned int I9_updated;
1418 unsigned int I10_updated;
1419 unsigned int I11_updated;
1421 unsigned int Itree_updated;
1422 gslpp::vector<double> Itree_cache;
1424 std::map<std::pair<double, double>,
unsigned int > I1Cached;
1426 std::map<std::pair<double, double>,
unsigned int > sigma0Cached;
1427 std::map<std::pair<double, double>,
unsigned int > sigma1Cached;
1428 std::map<std::pair<double, double>,
unsigned int > sigma2Cached;
1429 std::map<std::pair<double, double>,
unsigned int > sigma3Cached;
1430 std::map<std::pair<double, double>,
unsigned int > sigma4Cached;
1431 std::map<std::pair<double, double>,
unsigned int > sigma5Cached;
1432 std::map<std::pair<double, double>,
unsigned int > sigma6Cached;
1433 std::map<std::pair<double, double>,
unsigned int > sigma7Cached;
1434 std::map<std::pair<double, double>,
unsigned int > sigma8Cached;
1435 std::map<std::pair<double, double>,
unsigned int > sigma9Cached;
1436 std::map<std::pair<double, double>,
unsigned int > sigma10Cached;
1437 std::map<std::pair<double, double>,
unsigned int > sigma11Cached;
1439 std::map<std::pair<double, double>,
unsigned int > delta0Cached;
1440 std::map<std::pair<double, double>,
unsigned int > delta1Cached;
1441 std::map<std::pair<double, double>,
unsigned int > delta2Cached;
1442 std::map<std::pair<double, double>,
unsigned int > delta3Cached;
1443 std::map<std::pair<double, double>,
unsigned int > delta6Cached;
1444 std::map<std::pair<double, double>,
unsigned int > delta7Cached;
1445 std::map<std::pair<double, double>,
unsigned int > delta8Cached;
1446 std::map<std::pair<double, double>,
unsigned int > delta10Cached;
1447 std::map<std::pair<double, double>,
unsigned int > delta11Cached;
1449 std::map<std::pair<double, double>,
unsigned int > sigmaTreeCached;
1451 std::map<double, unsigned int> deltaTparpCached;
1452 std::map<double, unsigned int> deltaTparmCached;
1453 std::map<double, unsigned int> deltaTperpCached;
1455 std::map<double, gslpp::complex> cacheDeltaTparp;
1456 std::map<double, gslpp::complex> cacheDeltaTparm;
1457 std::map<double, gslpp::complex> cacheDeltaTperp;
1459 unsigned int deltaTparpupdated;
1460 unsigned int deltaTparmupdated;
1461 unsigned int deltaTperpupdated;
1463 unsigned int T_updated;
1464 gslpp::vector<double> T_cache;
1469 void updateParameters();
1481 double z(
double q2);
1488 double z_DM(
double q2);
1496 double phi_f(
double q2,
double MRf_2);
1504 double phi_g(
double q2,
double MRg_2);
1512 double phi_F1(
double q2,
double MRF1_2);
1520 double phi_F2(
double q2,
double MRF2_2);
1528 double phi_T0(
double q2,
double MRT0_2);
1536 double phi_T1(
double q2,
double MRT1_2);
1544 double phi_T2(
double q2,
double MRT2_2);
1555 double f_DM(
double q2,
double a_0f,
double a_1f,
double a_2f,
double MRf_2);
1566 double g_DM(
double q2,
double a_0g,
double a_1g,
double a_2g,
double MRg_2);
1577 double F1_DM(
double q2,
double a_0F1,
double a_1F1,
double a_2F1,
double MRF1_2);
1588 double F2_DM(
double q2,
double a_0F2,
double a_1F2,
double a_2F2,
double MRF2_2);
1599 double T0_DM(
double q2,
double a_0T0,
double a_1T0,
double a_2T0,
double MRT0_2);
1610 double T1_DM(
double q2,
double a_0T1,
double a_1T1,
double a_2T1,
double MRT1_2);
1621 double T2_DM(
double q2,
double a_0T2,
double a_1T2,
double a_2T2,
double MRT2_2);
1628 double V(
double q2);
1636 double A_0(
double q2);
1644 double A_1(
double q2);
1651 double A_2(
double q2);
1658 double T_1(
double q2);
1666 double T_2(
double q2);
1673 double V_0t(
double q2);
1680 double V_p(
double q2);
1687 double V_m(
double q2);
1694 double T_0t(
double q2);
1701 double T_p(
double q2);
1708 double T_m(
double q2);
1715 double S_L(
double q2);
1722 gslpp::complex H_0(
double q2);
1731 gslpp::complex H(
double q2,
double m2,
double mu2);
1738 gslpp::complex Y(
double q2);
1740 gslpp::complex funct_g(
double q2);
1742 gslpp::complex DeltaC9_KD(
double q2,
int com);
1749 gslpp::complex zh(
double q2);
1756 gslpp::complex P(
double q2);
1763 gslpp::complex Phi_1(
double q2);
1770 gslpp::complex Phi_1_st(
double q2);
1777 gslpp::complex Phi_2(
double q2);
1784 gslpp::complex Phi_2_st(
double q2);
1791 gslpp::complex Phi_3(
double q2);
1798 gslpp::complex Phi_3_st(
double q2);
1805 gslpp::complex Phi_4(
double q2);
1812 gslpp::complex Phi_4_st(
double q2);
1819 gslpp::complex Phi_5(
double q2);
1826 gslpp::complex Phi_5_st(
double q2);
1833 gslpp::complex Phi_6(
double q2);
1840 gslpp::complex Phi_6_st(
double q2);
1846 gslpp::complex p0();
1853 gslpp::complex p1(
double q2);
1860 gslpp::complex p2(
double q2);
1867 gslpp::complex p3(
double q2);
1874 gslpp::complex p4(
double q2);
1881 gslpp::complex p5(
double q2);
1888 gslpp::complex p6(
double q2);
1895 gslpp::complex phi_1(
double q2);
1902 gslpp::complex phi_2(
double q2);
1909 gslpp::complex phi_3(
double q2);
1916 gslpp::complex phi_4(
double q2);
1924 gslpp::complex DeltaC9_zExpansion(
double q2,
int tran);
1931 double k2 (
double q2);
1938 double beta2 (
double q2);
1945 double lambda(
double q2);
1953 double F(
double q2,
double b_i);
1961 double I_1c(
double q2,
bool bar);
1969 double I_1s(
double q2,
bool bar);
1977 double I_2c(
double q2,
bool bar);
1985 double I_2s(
double q2,
bool bar);
1993 double I_3(
double q2,
bool bar);
2001 double I_4(
double q2,
bool bar);
2009 double I_5(
double q2,
bool bar);
2017 double I_6c(
double q2,
bool bar);
2025 double I_6s(
double q2,
bool bar);
2033 double I_7(
double q2,
bool bar);
2041 double I_8(
double q2,
bool bar);
2049 double I_9(
double q2,
bool bar);
2057 double h_1s(
double q2,
bool bar);
2065 double h_1c(
double q2,
bool bar);
2073 double h_2s(
double q2,
bool bar);
2081 double h_2c(
double q2,
bool bar);
2089 double h_3(
double q2,
bool bar);
2097 double h_4(
double q2,
bool bar);
2105 double h_7(
double q2,
bool bar);
2113 double s_5(
double q2,
bool bar);
2121 double s_6s(
double q2,
bool bar);
2129 double s_6c(
double q2,
bool bar);
2137 double s_8(
double q2,
bool bar);
2145 double s_9(
double q2,
bool bar);
2152 double getSigma1c(
double q2)
2156 return (I_1c(q2, 0) + I_1c(q2, 1))/2.;
2159 return (I_1c(q2, 0) + I_1c(q2, 1))/2.;
2162 return (I_1c(q2, 0) + I_1c(q2, 1) -
ys * h_1c(q2, 0) )/2.;
2165 std::stringstream out;
2167 throw std::runtime_error(
"MVll::getSigma1c : vector " + out.str() +
" not implemented");
2176 double getSigma1s(
double q2)
2180 return (I_1s(q2, 0) + I_1s(q2, 1))/2.;
2183 return (I_1s(q2, 0) + I_1s(q2, 1))/2.;
2186 return (I_1s(q2, 0) + I_1s(q2, 1) -
ys * h_1s(q2, 0))/2.;
2189 std::stringstream out;
2191 throw std::runtime_error(
"MVll::getSigma1s : vector " + out.str() +
" not implemented");
2200 double getSigma2c(
double q2)
2204 return (I_2c(q2, 0) + I_2c(q2, 1))/2.;
2207 return (I_2c(q2, 0) + I_2c(q2, 1))/2.;
2210 return (I_2c(q2, 0) + I_2c(q2, 1) -
ys * h_2c(q2, 0))/2.;
2213 std::stringstream out;
2215 throw std::runtime_error(
"MVll::getSigma2c : vector " + out.str() +
" not implemented");
2224 double getSigma2s(
double q2)
2228 return (I_2s(q2, 0) + I_2s(q2, 1))/2.;
2231 return (I_2s(q2, 0) + I_2s(q2, 1))/2.;
2234 return (I_2s(q2, 0) + I_2s(q2, 1) -
ys * h_2s(q2, 0))/2.;
2237 std::stringstream out;
2239 throw std::runtime_error(
"MVll::getSigma2s : vector " + out.str() +
" not implemented");
2248 double getSigma3(
double q2)
2252 return (I_3(q2, 0) + I_3(q2, 1))/2.;
2255 return (I_3(q2, 0) + I_3(q2, 1))/2.;
2258 return (I_3(q2, 0) + I_3(q2, 1) -
ys * h_3(q2, 0))/2.;
2261 std::stringstream out;
2263 throw std::runtime_error(
"MVll::getSigma3 : vector " + out.str() +
" not implemented");
2272 double getSigma4(
double q2)
2276 return (I_4(q2, 0) + I_4(q2, 1))/2.;
2279 return (I_4(q2, 0) + I_4(q2, 1))/2.;
2282 return (I_4(q2, 0) + I_4(q2, 1) -
ys * h_4(q2, 0))/2.;
2285 std::stringstream out;
2287 throw std::runtime_error(
"MVll::getSigma4 : vector " + out.str() +
" not implemented");
2296 double getSigma5(
double q2)
2298 return (I_5(q2, 0) + I_5(q2, 1))/2.;
2306 double getSigma6s(
double q2)
2308 return (I_6s(q2, 0) + I_6s(q2, 1))/2.;
2316 double getSigma6c(
double q2)
2318 return (I_6c(q2, 0) + I_6c(q2, 1))/2.;
2326 double getSigma7(
double q2)
2330 return (I_7(q2, 0) + I_7(q2, 1))/2.;
2333 return (I_7(q2, 0) + I_7(q2, 1))/2.;
2336 return (I_7(q2, 0) + I_7(q2, 1) -
ys * h_7(q2, 0))/2.;
2339 std::stringstream out;
2341 throw std::runtime_error(
"MVll::getSigma7 : vector " + out.str() +
" not implemented");
2350 double getSigma8(
double q2)
2352 return (I_8(q2, 0) + I_8(q2, 1))/2.;
2360 double getSigma9(
double q2)
2362 return (I_9(q2, 0) + I_9(q2, 1))/2.;
2370 double getDelta1c(
double q2)
2372 return (I_1c(q2, 0) - I_1c(q2, 1)) / 2.;
2380 double getDelta1s(
double q2)
2382 return (I_1s(q2, 0) - I_1s(q2, 1)) / 2.;
2390 double getDelta2c(
double q2)
2392 return (I_2c(q2, 0) - I_2c(q2, 1)) / 2.;
2400 double getDelta2s(
double q2)
2402 return (I_2s(q2, 0) - I_2s(q2, 1))/2.;
2410 double getDelta3(
double q2)
2412 return (I_3(q2, 0) - I_3(q2, 1))/2.;
2420 double getDelta4(
double q2)
2422 return (I_4(q2, 0) - I_4(q2, 1))/2.;
2430 double getDelta5(
double q2)
2434 return (I_5(q2, 0) - I_5(q2, 1))/2.;
2437 return (I_5(q2, 0) - I_5(q2, 1))/2.;
2440 return (1. -
ys*
ys)/(1. +
xs*
xs) * (I_5(q2, 0) - I_5(q2, 1) -
xs * s_5(q2, 0))/2.;
2443 std::stringstream out;
2445 throw std::runtime_error(
"MVll::getDelta5 : vector " + out.str() +
" not implemented");
2454 double getDelta6s(
double q2)
2458 return (I_6s(q2, 0) - I_6s(q2, 1))/2.;
2461 return (I_6s(q2, 0) - I_6s(q2, 1))/2.;
2464 return (1. -
ys*
ys)/(1. +
xs*
xs) * (I_6s(q2, 0) - I_6s(q2, 1) -
xs * s_6s(q2, 0))/2.;
2467 std::stringstream out;
2469 throw std::runtime_error(
"MVll::getDelta6s : vector " + out.str() +
" not implemented");
2478 double getDelta6c(
double q2)
2482 return (I_6c(q2, 0) - I_6c(q2, 1))/2.;
2485 return (I_6c(q2, 0) - I_6c(q2, 1))/2.;
2488 return (1. -
ys*
ys)/(1. +
xs*
xs) * (I_6c(q2, 0) - I_6c(q2, 1) -
xs * s_6c(q2, 0))/2.;
2491 std::stringstream out;
2493 throw std::runtime_error(
"MVll::getDelta6c : vector " + out.str() +
" not implemented");
2502 double getDelta7(
double q2)
2504 return (I_7(q2, 0) - I_7(q2, 1))/2.;
2512 double getDelta8(
double q2)
2516 return (I_8(q2, 0) - I_8(q2, 1))/2.;
2519 return (I_8(q2, 0) - I_8(q2, 1))/2.;
2522 return (1. -
ys*
ys)/(1. +
xs*
xs) * (I_8(q2, 0) - I_8(q2, 1) -
xs * s_8(q2, 0))/2.;
2525 std::stringstream out;
2527 throw std::runtime_error(
"MVll::getDelta8 : vector " + out.str() +
" not implemented");
2536 double getDelta9(
double q2)
2540 return (I_9(q2, 0) - I_9(q2, 1))/2.;
2543 return (I_9(q2, 0) - I_9(q2, 1))/2.;
2546 return (1. -
ys*
ys)/(1. +
xs*
xs) * (I_9(q2, 0) - I_9(q2, 1) -
xs * s_9(q2, 0))/2.;
2549 std::stringstream out;
2551 throw std::runtime_error(
"MVll::getDelta9 : vector " + out.str() +
" not implemented");
2568 gslpp::complex
A_Seidel(
double q2,
double mb2);
2570 gslpp::complex
B_Seidel(
double q2,
double mb2);
2572 gslpp::complex
C_Seidel(
double q2);
2579 gslpp::complex
deltaC7_QCDF(
double q2,
bool conjugate,
bool spline =
false);
2586 gslpp::complex
deltaC9_QCDF(
double q2,
bool conjugate,
bool spline =
false);
2593 gslpp::complex
Cq34(
bool conjugate);
2634 gslpp::complex
t_perp(
double q2,
double u,
double m2);
2642 gslpp::complex
t_para(
double q2,
double u,
double m2);
2644 gslpp::complex
I1(
double q2,
double u,
double m2);
2646 gslpp::complex
B0diff(
double q2,
double u,
double m2);
2648 gslpp::complex
B0(
double s,
double m2);
2650 gslpp::complex
h_func(
double s,
double m2);
2681 double phi_V(
double u);
2692 double T_perp_real(
double q2,
double u,
bool conjugate);
2701 double T_perp_imag(
double q2,
double u,
bool conjugate);
2710 double T_para_real(
double q2,
double u,
bool conjugate);
2719 double T_para_imag(
double q2,
double u,
bool conjugate);
2759 gslpp::complex
T_minus(
double q2,
bool conjugate);
2761 gslpp::complex
T_0(
double q2,
bool conjugate);
2772 double FF_fit(
double q2,
double a_0,
double a_1,
double a_2,
double MR2);
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
gslpp::complex getQCDf_1(double q2)
gslpp::complex deltaC7_QCDF(double q2, bool conjugate, bool spline=false)
QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et....
std::vector< std::string > mvllParameters
const StandardModel & mySM
double getDelta_C9_zExp_p()
The non-pertubative ccbar contributions to the helicity amplitudes.
double getgtilde_2_re(double q2)
The real part of .
double getS(double q2)
The form factor .
double phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
double getQCDfC9_2(double q2, double cutoff)
double getQCDfC9p_1(double cutoff)
gslpp::complex H_m_nunu(double q2, bool bar, QCD::lepton lep)
The helicity amplitude for the invisible decay .
double getDelta_C9_zExp_m()
The non-pertubative ccbar contributions to the helicity amplitudes.
gslpp::complex t_para(double q2, double u, double m2)
QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.
gslpp::complex B_Seidel(double q2, double mb2)
double geth_0_re(double q2)
The real part of .
double geth_p_im(double q2)
The imaginary part of .
gslpp::complex H_A_p(double q2, bool bar)
The helicity amplitude .
gslpp::complex T_perp_plus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
double T_para_real(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
gslpp::complex T_perp_WA_1()
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
double getMlep()
The mass of the lepton l.
gslpp::complex deltaC9_QCDF(double q2, bool conjugate, bool spline=false)
QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et....
std::unique_ptr< F_2 > myF_2
gslpp::complex Cq34(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Part of Weak Annihilation.
double QCDF_fit_func(double *x, double *p)
double T_perp_real(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
double getgtilde_2_im(double q2)
The immaginary part of .
double geth_m_im(double q2)
The imaginary part of .
gslpp::complex T_para_plus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
gslpp::complex getQCDf_2(double q2)
double getVm(double q2)
The form factor .
double get_unitarity_bound_g()
The unitarity constraints on form factors .
gslpp::complex T_para_minus_O8(double q2, double u)
QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribut...
gslpp::complex C_Seidel(double q2)
double getVp(double q2)
The form factor .
gslpp::complex H_S(double q2, bool bar)
The helicity amplitude .
std::vector< std::string > initializeMVllParameters()
A method for initializing the parameters necessary for MVll.
std::unique_ptr< F_1 > myF_1
double integrateDelta(int i, double q_min, double q_max)
The integral of from to .
double getgtilde_3_im(double q2)
The imaginary part of .
double getTm(double q2)
The form factor .
gslpp::complex H_V_0(double q2, bool bar)
The helicity amplitude .
double T_para_imag(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
double getT0(double q2)
The form factor .
virtual ~MVll()
Destructor.
double T_perp_imag(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
gslpp::complex h_func(double s, double m2)
gslpp::complex T_minus(double q2, bool conjugate)
double getSigma(int i, double q_2)
The value of from to .
gslpp::complex geth_p_0()
.
gslpp::complex H_V_p(double q2, bool bar)
The helicity amplitude .
double getgtilde_3_re(double q2)
The real part of .
gslpp::complex getQCDf_3(double q2)
gslpp::complex lambda_B_minus(double q2)
double getwidth()
The width of the meson M.
gslpp::complex T_0(double q2, bool conjugate)
double get_unitarity_bound_T1()
The unitarity constraints on form factors .
double getV0(double q2)
The form factor .
double get_unitarity_bound_T2_T0()
The unitarity constraints on form factors and .
gslpp::complex h_lambda(int hel, double q2)
The non-pertubative ccbar contributions to the helicity amplitudes.
gslpp::complex exp_Phase[3]
double getDelta_C9_zExp_0()
The non-pertubative ccbar contributions to the helicity amplitudes.
gslpp::complex geth_m_0()
.
double geth_p_re(double q2)
The real part of .
double getintegratedSigmaTree()
The integral of from 0 to .
double integrateSigmaTree(double q_min, double q_max)
The integral of from to (arxiv/2301.06990)
gslpp::complex T_para_minus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
double geth_0_im(double q2)
The imaginary part of .
double getTp(double q2)
The form factor .
gslpp::complex T_perp_WA_2(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
gslpp::complex H_p_nunu(double q2, bool bar, QCD::lepton lep)
The helicity amplitude for the invisible decay .
double FF_fit(double q2, double a_0, double a_1, double a_2, double MR2)
The fit function from , .
gslpp::complex t_perp(double q2, double u, double m2)
QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.
MVll(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
gslpp::complex H_V_m(double q2, bool bar)
The helicity amplitude .
gslpp::complex A_Seidel(double q2, double mb2)
gslpp::complex AmpMVpsi_zExpansion(double mpsi, int tran)
Polarization amplitudes for M to V psi, Eq. B.16 of arXiv:2206.03797.
double get_unitarity_bound_F2()
The unitarity constraints on form factors .
gslpp::complex B0diff(double q2, double u, double m2)
double Delta_C9_zExp(int hel)
The non-pertubative ccbar contributions to the helicity amplitudes.
double geth_m_re(double q2)
The real part of .
gslpp::complex H_A_0(double q2, bool bar)
The helicity amplitude .
double getQCDfC9p_2(double cutoff)
double SigmaTree(double q2)
double getQCDfC9p_3(double cutoff)
gslpp::complex H_0_nunu(double q2, bool bar, QCD::lepton lep)
The helicity amplitude for the invisible decay .
gslpp::complex I1(double q2, double u, double m2)
double getgtilde_1_im(double q2)
The immaginary part of .
double getQCDfC9_1(double q2, double cutoff)
gslpp::complex B0(double s, double m2)
gslpp::complex H_A_m(double q2, bool bar)
The helicity amplitude .
gslpp::complex T_perp_plus_O8(double q2, double u)
QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribut...
gslpp::complex H_P(double q2, bool bar)
The helicity amplitude .
double integrateSigma(int i, double q_min, double q_max)
The integral of from to .
double getQCDfC9_3(double q2, double cutoff)
double beta(double q2)
The factor used in the angular coefficients .
double getgtilde_1_re(double q2)
The real part of .
double get_unitarity_bound_f_F1()
The unitarity constraints on form factors and .
meson
An enum type for mesons.
lepton
An enum type for leptons.
A model class for the Standard Model.
A class for the correction in .
A class for the unitarity constraints on form factors .
A class for the unitarity constraints on form factors .
A class for the unitarity constraints on form factors and .
A class for the unitarity constraints on form factors and .
A class for the unitarity constraints on form factors .