10#include "std_make_vector.h"
11#include "gslpp_function_adapter.h"
14#include <gsl/gsl_sf_zeta.h>
15#include <boost/bind/bind.hpp>
17#include <TFitResult.h>
18#include <gsl/gsl_sf_gegenbauer.h>
19#include <gsl/gsl_sf_expint.h>
20using namespace boost::placeholders;
23: mySM(SM_i), myF_1(new
F_1()), myF_2(new
F_2()),
55 mD2 = 1.8648 * 1.8648;
86 deltaTparpupdated = 0;
87 deltaTparmupdated = 0;
88 deltaTperpupdated = 0;
90 w_sigma = gsl_integration_cquad_workspace_alloc(100);
92 w_sigmaTree = gsl_integration_cquad_workspace_alloc(100);
93 w_delta = gsl_integration_cquad_workspace_alloc(100);
95 acc_Re_T_perp = gsl_interp_accel_alloc();
96 acc_Im_T_perp = gsl_interp_accel_alloc();
97 acc_Re_T_para = gsl_interp_accel_alloc();
98 acc_Im_T_para = gsl_interp_accel_alloc();
100 spline_Re_T_perp = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
101 spline_Im_T_perp = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
102 spline_Re_T_para = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
103 spline_Im_T_para = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
106 acc_Re_T_perp_conj = gsl_interp_accel_alloc();
107 acc_Im_T_perp_conj = gsl_interp_accel_alloc();
108 acc_Re_T_para_conj = gsl_interp_accel_alloc();
109 acc_Im_T_para_conj = gsl_interp_accel_alloc();
111 spline_Re_T_perp_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
112 spline_Im_T_perp_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
113 spline_Re_T_para_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
114 spline_Im_T_para_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
117 acc_Re_deltaC7_QCDF = gsl_interp_accel_alloc();
118 acc_Im_deltaC7_QCDF = gsl_interp_accel_alloc();
119 acc_Re_deltaC9_QCDF = gsl_interp_accel_alloc();
120 acc_Im_deltaC9_QCDF = gsl_interp_accel_alloc();
122 spline_Re_deltaC7_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
123 spline_Im_deltaC7_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
124 spline_Re_deltaC9_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
125 spline_Im_deltaC9_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
128 acc_Re_deltaC7_QCDF_conj = gsl_interp_accel_alloc();
129 acc_Im_deltaC7_QCDF_conj = gsl_interp_accel_alloc();
130 acc_Re_deltaC9_QCDF_conj = gsl_interp_accel_alloc();
131 acc_Im_deltaC9_QCDF_conj = gsl_interp_accel_alloc();
133 spline_Re_deltaC7_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
134 spline_Im_deltaC7_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
135 spline_Re_deltaC9_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
136 spline_Im_deltaC9_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
143 F87_1 = (4. / 3. * M_PI2 - 40. / 3.);
144 F87_2 = (32. / 9. * M_PI2 - 316. / 9.);
145 F87_3 = (200. / 27. * M_PI2 - 658. / 9.);
147 F89_0 = (104. / 9. - 32. / 27. * M_PI2);
148 F89_1 = (1184. / 27. - 40. / 9. * M_PI2);
149 F89_2 = (-32. / 3. * M_PI2 + 14212. / 135.);
150 F89_3 = (-560. / 27. * M_PI2 + 193444. / 945.);
171 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
172 <<
"a_1F1phi" <<
"a_2F1phi" <<
"MRF1" <<
"a_1F2phi" <<
"a_2F2phi" <<
"MRF2"
173 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
174 <<
"a_1T0phi" <<
"a_2T0phi" <<
"MRT0"
175 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
176 <<
"absh_0" <<
"absh_p" <<
"absh_m" <<
"argh_0" <<
"argh_p" <<
"argh_m"
177 <<
"absh_0_1" <<
"absh_p_1" <<
"absh_m_1" <<
"argh_0_1" <<
"argh_p_1" <<
"argh_m_1"
178 <<
"absh_p_2" <<
"absh_m_2" <<
"argh_p_2" <<
"argh_m_2" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
180 <<
"a_0Vphi" <<
"a_1Vphi" <<
"a_2Vphi" <<
"MRV" <<
"a_0A0phi" <<
"a_1A0phi" <<
"a_2A0phi" <<
"MRA0"
181 <<
"a_0A1phi" <<
"a_1A1phi" <<
"a_2A1phi" <<
"MRA1" <<
"a_1A12phi" <<
"a_2A12phi" <<
"MRA12"
182 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
183 <<
"a_0T23phi" <<
"a_1T23phi" <<
"a_2T23phi" <<
"MRT23"
184 <<
"absh_0" <<
"absh_p" <<
"absh_m" <<
"argh_0" <<
"argh_p" <<
"argh_m"
185 <<
"absh_0_1" <<
"absh_p_1" <<
"absh_m_1" <<
"argh_0_1" <<
"argh_p_1" <<
"argh_m_1"
186 <<
"absh_p_2" <<
"absh_m_2" <<
"argh_p_2" <<
"argh_m_2" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
189 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
190 <<
"a_1F1" <<
"a_2F1" <<
"MRF1" <<
"a_1F2" <<
"a_2F2" <<
"MRF2"
191 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
192 <<
"a_1T0" <<
"a_2T0" <<
"MRT0"
193 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
194 <<
"absh_0" <<
"absh_p" <<
"absh_m" <<
"argh_0" <<
"argh_p" <<
"argh_m"
195 <<
"absh_0_1" <<
"absh_p_1" <<
"absh_m_1" <<
"argh_0_1" <<
"argh_p_1" <<
"argh_m_1"
196 <<
"absh_p_2" <<
"absh_m_2" <<
"argh_p_2" <<
"argh_m_2";
198 <<
"a_0V" <<
"a_1V" <<
"a_2V" <<
"MRV" <<
"a_0A0" <<
"a_1A0" <<
"a_2A0" <<
"MRA0"
199 <<
"a_0A1" <<
"a_1A1" <<
"a_2A1" <<
"MRA1" <<
"a_1A12" <<
"a_2A12" <<
"MRA12"
200 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
201 <<
"a_0T23" <<
"a_1T23" <<
"a_2T23" <<
"MRT23"
202 <<
"absh_0" <<
"absh_p" <<
"absh_m" <<
"argh_0" <<
"argh_p" <<
"argh_m"
203 <<
"absh_0_1" <<
"absh_p_1" <<
"absh_m_1" <<
"argh_0_1" <<
"argh_p_1" <<
"argh_m_1"
204 <<
"absh_p_2" <<
"absh_m_2" <<
"argh_p_2" <<
"argh_m_2";
208 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
209 <<
"a_1F1phi" <<
"a_2F1phi" <<
"MRF1" <<
"a_1F2phi" <<
"a_2F2phi" <<
"MRF2"
210 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
211 <<
"a_1T0phi" <<
"a_2T0phi" <<
"MRT0"
212 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
213 <<
"reh_0" <<
"reh_p" <<
"reh_m" <<
"imh_0" <<
"imh_p" <<
"imh_m"
214 <<
"reh_0_1" <<
"reh_p_1" <<
"reh_m_1" <<
"imh_0_1" <<
"imh_p_1" <<
"imh_m_1"
215 <<
"reh_p_2" <<
"reh_m_2" <<
"imh_p_2" <<
"imh_m_2" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
217 <<
"a_0Vphi" <<
"a_1Vphi" <<
"a_2Vphi" <<
"MRV" <<
"a_0A0phi" <<
"a_1A0phi" <<
"a_2A0phi" <<
"MRA0"
218 <<
"a_0A1phi" <<
"a_1A1phi" <<
"a_2A1phi" <<
"MRA1" <<
"a_1A12phi" <<
"a_2A12phi" <<
"MRA12"
219 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
220 <<
"a_0T23phi" <<
"a_1T23phi" <<
"a_2T23phi" <<
"MRT23"
221 <<
"reh_0" <<
"reh_p" <<
"reh_m" <<
"imh_0" <<
"imh_p" <<
"imh_m"
222 <<
"reh_0_1" <<
"reh_p_1" <<
"reh_m_1" <<
"imh_0_1" <<
"imh_p_1" <<
"imh_m_1"
223 <<
"reh_p_2" <<
"reh_m_2" <<
"imh_p_2" <<
"imh_m_2" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
226 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
227 <<
"a_1F1" <<
"a_2F1" <<
"MRF1" <<
"a_1F2" <<
"a_2F2" <<
"MRF2"
228 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
229 <<
"a_1T0" <<
"a_2T0" <<
"MRT0"
230 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
231 <<
"reh_0" <<
"reh_p" <<
"reh_m" <<
"imh_0" <<
"imh_p" <<
"imh_m"
232 <<
"reh_0_1" <<
"reh_p_1" <<
"reh_m_1" <<
"imh_0_1" <<
"imh_p_1" <<
"imh_m_1"
233 <<
"reh_p_2" <<
"reh_m_2" <<
"imh_p_2" <<
"imh_m_2";
235 <<
"a_0V" <<
"a_1V" <<
"a_2V" <<
"MRV" <<
"a_0A0" <<
"a_1A0" <<
"a_2A0" <<
"MRA0"
236 <<
"a_0A1" <<
"a_1A1" <<
"a_2A1" <<
"MRA1" <<
"a_1A12" <<
"a_2A12" <<
"MRA12"
237 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
238 <<
"a_0T23" <<
"a_1T23" <<
"a_2T23" <<
"MRT23"
239 <<
"reh_0" <<
"reh_p" <<
"reh_m" <<
"imh_0" <<
"imh_p" <<
"imh_m"
240 <<
"reh_0_1" <<
"reh_p_1" <<
"reh_m_1" <<
"imh_0_1" <<
"imh_p_1" <<
"imh_m_1"
241 <<
"reh_p_2" <<
"reh_m_2" <<
"imh_p_2" <<
"imh_m_2";
244 std::stringstream out;
246 throw std::runtime_error(
"MVll: vector " + out.str() +
" not implemented");
253 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
254 <<
"a_1F1phi" <<
"a_2F1phi" <<
"MRF1" <<
"a_1F2phi" <<
"a_2F2phi" <<
"MRF2"
255 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
256 <<
"a_1T0phi" <<
"a_2T0phi" <<
"MRT0"
257 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
258 <<
"r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1"
259 <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2"
260 <<
"r1_3" <<
"r2_3" <<
"deltaC9_3" <<
"phDC9_3" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
262 <<
"a_0Vphi" <<
"a_1Vphi" <<
"a_2Vphi" <<
"MRV" <<
"a_0A0phi" <<
"a_1A0phi" <<
"a_2A0phi" <<
"MRA0"
263 <<
"a_0A1phi" <<
"a_1A1phi" <<
"a_2A1phi" <<
"MRA1" <<
"a_1A12phi" <<
"a_2A12phi" <<
"MRA12"
264 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
265 <<
"a_0T23phi" <<
"a_1T23phi" <<
"a_2T23phi" <<
"MRT23"
266 <<
"r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1"
267 <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2"
268 <<
"r1_3" <<
"r2_3" <<
"deltaC9_3" <<
"phDC9_3" <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
271 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
272 <<
"a_1F1" <<
"a_2F1" <<
"MRF1" <<
"a_1F2" <<
"a_2F2" <<
"MRF2"
273 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
274 <<
"a_1T0" <<
"a_2T0" <<
"MRT0"
275 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
276 <<
"r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1"
277 <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2"
278 <<
"r1_3" <<
"r2_3" <<
"deltaC9_3" <<
"phDC9_3";
280 <<
"a_0V" <<
"a_1V" <<
"a_2V" <<
"MRV" <<
"a_0A0" <<
"a_1A0" <<
"a_2A0" <<
"MRA0"
281 <<
"a_0A1" <<
"a_1A1" <<
"a_2A1" <<
"MRA1" <<
"a_1A12" <<
"a_2A12" <<
"MRA12"
282 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
283 <<
"a_0T23" <<
"a_1T23" <<
"a_2T23" <<
"MRT23"
284 <<
"r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1"
285 <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2"
286 <<
"r1_3" <<
"r2_3" <<
"deltaC9_3" <<
"phDC9_3";
293 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
294 <<
"a_1F1phi" <<
"a_2F1phi" <<
"MRF1" <<
"a_1F2phi" <<
"a_2F2phi" <<
"MRF2"
295 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
296 <<
"a_1T0phi" <<
"a_2T0phi" <<
"MRT0"
297 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
298 <<
"DeltaC9" <<
"DeltaC10"
299 <<
"re_beta_0_0" <<
"re_beta_0_1" <<
"re_beta_0_2" <<
"re_beta_0_3" <<
"re_beta_0_4" <<
"re_beta_0_5" <<
"re_beta_0_6"
300 <<
"im_beta_0_0" <<
"im_beta_0_1" <<
"im_beta_0_2" <<
"im_beta_0_3" <<
"im_beta_0_4" <<
"im_beta_0_5" <<
"im_beta_0_6"
301 <<
"re_beta_1_0" <<
"re_beta_1_1" <<
"re_beta_1_2" <<
"re_beta_1_3" <<
"re_beta_1_4" <<
"re_beta_1_5" <<
"re_beta_1_6"
302 <<
"im_beta_1_0" <<
"im_beta_1_1" <<
"im_beta_1_2" <<
"im_beta_1_3" <<
"im_beta_1_4" <<
"im_beta_1_5" <<
"im_beta_1_6"
303 <<
"re_beta_2_0" <<
"re_beta_2_1" <<
"re_beta_2_2" <<
"re_beta_2_3" <<
"re_beta_2_4" <<
"re_beta_2_5" <<
"re_beta_2_6"
304 <<
"im_beta_2_0" <<
"im_beta_2_1" <<
"im_beta_2_2" <<
"im_beta_2_3" <<
"im_beta_2_4" <<
"im_beta_2_5" <<
"im_beta_2_6"
305 <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
307 <<
"a_0Vphi" <<
"a_1Vphi" <<
"a_2Vphi" <<
"MRV" <<
"a_0A0phi" <<
"a_1A0phi" <<
"a_2A0phi" <<
"MRA0"
308 <<
"a_0A1phi" <<
"a_1A1phi" <<
"a_2A1phi" <<
"MRA1" <<
"a_1A12phi" <<
"a_2A12phi" <<
"MRA12"
309 <<
"a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
"a_1T2phi" <<
"a_2T2phi" <<
"MRT2"
310 <<
"a_0T23phi" <<
"a_1T23phi" <<
"a_2T23phi" <<
"MRT23" <<
"DeltaC9" <<
"DeltaC10"
311 <<
"re_beta_0_0" <<
"re_beta_0_1" <<
"re_beta_0_2" <<
"re_beta_0_3" <<
"re_beta_0_4" <<
"re_beta_0_5" <<
"re_beta_0_6"
312 <<
"im_beta_0_0" <<
"im_beta_0_1" <<
"im_beta_0_2" <<
"im_beta_0_3" <<
"im_beta_0_4" <<
"im_beta_0_5" <<
"im_beta_0_6"
313 <<
"re_beta_1_0" <<
"re_beta_1_1" <<
"re_beta_1_2" <<
"re_beta_1_3" <<
"re_beta_1_4" <<
"re_beta_1_5" <<
"re_beta_1_6"
314 <<
"im_beta_1_0" <<
"im_beta_1_1" <<
"im_beta_1_2" <<
"im_beta_1_3" <<
"im_beta_1_4" <<
"im_beta_1_5" <<
"im_beta_1_6"
315 <<
"re_beta_2_0" <<
"re_beta_2_1" <<
"re_beta_2_2" <<
"re_beta_2_3" <<
"re_beta_2_4" <<
"re_beta_2_5" <<
"re_beta_2_6"
316 <<
"im_beta_2_0" <<
"im_beta_2_1" <<
"im_beta_2_2" <<
"im_beta_2_3" <<
"im_beta_2_4" <<
"im_beta_2_5" <<
"im_beta_2_6"
317 <<
"xs_phi" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
320 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
321 <<
"a_1F1" <<
"a_2F1" <<
"MRF1" <<
"a_1F2" <<
"a_2F2" <<
"MRF2"
322 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
323 <<
"a_1T0" <<
"a_2T0" <<
"MRT0"
324 <<
"Chi1minus" <<
"Chi1plus" <<
"Chi0plus" <<
"Chi0minus" <<
"ChiTT" <<
"ChiBB"
325 <<
"DeltaC9" <<
"DeltaC10"
326 <<
"re_beta_0_0" <<
"re_beta_0_1" <<
"re_beta_0_2" <<
"re_beta_0_3" <<
"re_beta_0_4" <<
"re_beta_0_5" <<
"re_beta_0_6"
327 <<
"im_beta_0_0" <<
"im_beta_0_1" <<
"im_beta_0_2" <<
"im_beta_0_3" <<
"im_beta_0_4" <<
"im_beta_0_5" <<
"im_beta_0_6"
328 <<
"re_beta_1_0" <<
"re_beta_1_1" <<
"re_beta_1_2" <<
"re_beta_1_3" <<
"re_beta_1_4" <<
"re_beta_1_5" <<
"re_beta_1_6"
329 <<
"im_beta_1_0" <<
"im_beta_1_1" <<
"im_beta_1_2" <<
"im_beta_1_3" <<
"im_beta_1_4" <<
"im_beta_1_5" <<
"im_beta_1_6"
330 <<
"re_beta_2_0" <<
"re_beta_2_1" <<
"re_beta_2_2" <<
"re_beta_2_3" <<
"re_beta_2_4" <<
"re_beta_2_5" <<
"re_beta_2_6"
331 <<
"im_beta_2_0" <<
"im_beta_2_1" <<
"im_beta_2_2" <<
"im_beta_2_3" <<
"im_beta_2_4" <<
"im_beta_2_5" <<
"im_beta_2_6";
333 <<
"a_0V" <<
"a_1V" <<
"a_2V" <<
"MRV" <<
"a_0A0" <<
"a_1A0" <<
"a_2A0" <<
"MRA0"
334 <<
"a_0A1" <<
"a_1A1" <<
"a_2A1" <<
"MRA1" <<
"a_1A12" <<
"a_2A12" <<
"MRA12"
335 <<
"a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
"a_1T2" <<
"a_2T2" <<
"MRT2"
336 <<
"a_0T23" <<
"a_1T23" <<
"a_2T23" <<
"MRT23" <<
"DeltaC9" <<
"DeltaC10"
337 <<
"re_beta_0_0" <<
"re_beta_0_1" <<
"re_beta_0_2" <<
"re_beta_0_3" <<
"re_beta_0_4" <<
"re_beta_0_5" <<
"re_beta_0_6"
338 <<
"im_beta_0_0" <<
"im_beta_0_1" <<
"im_beta_0_2" <<
"im_beta_0_3" <<
"im_beta_0_4" <<
"im_beta_0_5" <<
"im_beta_0_6"
339 <<
"re_beta_1_0" <<
"re_beta_1_1" <<
"re_beta_1_2" <<
"re_beta_1_3" <<
"re_beta_1_4" <<
"re_beta_1_5" <<
"re_beta_1_6"
340 <<
"im_beta_1_0" <<
"im_beta_1_1" <<
"im_beta_1_2" <<
"im_beta_1_3" <<
"im_beta_1_4" <<
"im_beta_1_5" <<
"im_beta_1_6"
341 <<
"re_beta_2_0" <<
"re_beta_2_1" <<
"re_beta_2_2" <<
"re_beta_2_3" <<
"re_beta_2_4" <<
"re_beta_2_5" <<
"re_beta_2_6"
342 <<
"im_beta_2_0" <<
"im_beta_2_1" <<
"im_beta_2_2" <<
"im_beta_2_3" <<
"im_beta_2_4" <<
"im_beta_2_5" <<
"im_beta_2_6";
354void MVll::updateParameters()
386 t_p = pow(
MM +
MV, 2.);
387 t_m = pow(
MM -
MV, 2.);
416 a_0F1 = f_DM(t_m,a_0f,a_1f,a_2f,MRf_2)*
MM*(1. - rV)*phi_F1(t_m, MRF1_2) - a_1F1*z_DM(t_m) - a_2F1*z_DM(t_m)*z_DM(t_m);
421 a_0F2 = F1_DM(0.,a_0F1,a_1F1,a_2F1,MRF1_2)*2./MM2/(1. - rV*rV)*phi_F2(0., MRF2_2) - a_1F2*z_DM(0.) - a_2F2*z_DM(0.)*z_DM(0.);
431 a_0T2 = T1_DM(0.,a_0T1,a_1T1,a_2T1,MRT1_2)*phi_T2(0., MRT2_2) - a_1T2*z_DM(0.) - a_2T2*z_DM(0.)*z_DM(0.);
436 a_0T0 = T2_DM(t_m,a_0T2,a_1T2,a_2T2,MRT2_2)*phi_T0(t_m, MRT0_2) - a_1T0*z_DM(t_m) - a_2T0*z_DM(t_m)*z_DM(t_m);
438 unitarity_bound_f_F1 = pow(a_0f,2) + pow(a_1f,2) + pow(a_2f,2) + pow(a_0F1,2) + pow(a_1F1,2) + pow(a_2F1,2);
442 unitarity_bound_T2_T0 = pow(a_0T2,2) + pow(a_1T2,2) + pow(a_2T2,2) + pow(a_0T0,2) + pow(a_1T0,2) + pow(a_2T0,2);
513 a_0F1 = f_DM(t_m,a_0f,a_1f,a_2f,MRf_2)*
MM*(1. - rV)*phi_F1(t_m, MRF1_2) - a_1F1*z_DM(t_m) - a_2F1*z_DM(t_m)*z_DM(t_m);
518 a_0F2 = F1_DM(0.,a_0F1,a_1F1,a_2F1,MRF1_2)*2./MM2/(1. - rV*rV)*phi_F2(0., MRF2_2) - a_1F2*z_DM(0.) - a_2F2*z_DM(0.)*z_DM(0.);
528 a_0T2 = T1_DM(0.,a_0T1,a_1T1,a_2T1,MRT1_2)*phi_T2(0., MRT2_2) - a_1T2*z_DM(0.) - a_2T2*z_DM(0.)*z_DM(0.);
533 a_0T0 = T2_DM(t_m,a_0T2,a_1T2,a_2T2,MRT2_2)*phi_T0(t_m, MRT0_2) - a_1T0*z_DM(t_m) - a_2T0*z_DM(t_m)*z_DM(t_m);
535 unitarity_bound_f_F1 = pow(a_0f,2) + pow(a_1f,2) + pow(a_2f,2) + pow(a_0F1,2) + pow(a_1F1,2) + pow(a_2F1,2);
539 unitarity_bound_T2_T0 = pow(a_0T2,2) + pow(a_1T2,2) + pow(a_2T2,2) + pow(a_0T0,2) + pow(a_1T0,2) + pow(a_2T0,2);
592 std::stringstream out;
594 throw std::runtime_error(
"MVll: vector " + out.str() +
" not implemented");
676 Gammatau = HCUT / 0.2903;
679 C_R_nunu_e = ((*(allcoeff_nu[
LO]))(1) + (*(allcoeff_nu[
NLO]))(1) + (*(allcoeff_nu[
NLO_QED11]))(1));
684 C_L_nunu_e = ((*(allcoeff_nu[
LO]))(0) + (*(allcoeff_nu[
NLO]))(0) + (*(allcoeff_nu[
NLO_QED11]))(0));
687 C_R_nunu_mu = ((*(allcoeff_nu[
LO]))(1) + (*(allcoeff_nu[
NLO]))(1) + (*(allcoeff_nu[
NLO_QED11]))(1));
692 C_L_nunu_mu = ((*(allcoeff_nu[
LO]))(0) + (*(allcoeff_nu[
NLO]))(0) + (*(allcoeff_nu[
NLO_QED11]))(0));
695 C_R_nunu_tau = ((*(allcoeff_nu[
LO]))(1) + (*(allcoeff_nu[
NLO]))(1) + (*(allcoeff_nu[
NLO_QED11]))(1));
700 C_L_nunu_tau = ((*(allcoeff_nu[
LO]))(0) + (*(allcoeff_nu[
NLO]))(0) + (*(allcoeff_nu[
NLO_QED11]))(0));
706 C_1 = ((*(allcoeff[
LO]))(0) + (*(allcoeff[
NLO]))(0));
707 C_1L_bar = (*(allcoeff[
LO]))(0) / 2.;
708 C_2 = ((*(allcoeff[
LO]))(1) + (*(allcoeff[
NLO]))(1));
709 C_2L_bar = (*(allcoeff[
LO]))(1) - (*(allcoeff[
LO]))(0) / 6.;
710 C_3 = ((*(allcoeff[
LO]))(2) + (*(allcoeff[
NLO]))(2));
711 C_4 = ((*(allcoeff[
LO]))(3) + (*(allcoeff[
NLO]))(3));
712 C_5 = ((*(allcoeff[
LO]))(4) + (*(allcoeff[
NLO]))(4));
713 C_6 = ((*(allcoeff[
LO]))(5) + (*(allcoeff[
NLO]))(5));
714 C_8 = ((*(allcoeff[
LO]))(7) + (*(allcoeff[
NLO]))(7));
715 C_8L = (*(allcoeff[
LO]))(7);
716 C_S = MW /
Mb * (((*(allcoeff[
LO]))(10) + (*(allcoeff[
NLO]))(10)));
717 C_P = MW /
Mb * (((*(allcoeff[
LO]))(11) + (*(allcoeff[
NLO]))(11)));
718 C_9p = (*(allcoeffprime[
LO]))(8) + (*(allcoeffprime[
NLO]))(8);
719 C_10p = (*(allcoeffprime[
LO]))(9) + (*(allcoeffprime[
NLO]))(9);
720 C_Sp = MW /
Mb * ((*(allcoeffprime[
LO]))(10) + (*(allcoeffprime[
NLO]))(10));
721 C_Pp = MW /
Mb * ((*(allcoeffprime[
LO]))(11) + (*(allcoeffprime[
NLO]))(11));
729 C_7 = ((*(allcoeff[
LO]))(6) + (*(allcoeff[
NLO]))(6));
730 C_9 = ((*(allcoeff[
LO]))(8) + (*(allcoeff[
NLO]))(8));
731 C_10 = ((*(allcoeff[
LO]))(9) + (*(allcoeff[
NLO]))(9));
733 C_7p = MsoMb * ((*(allcoeffprime[
LO]))(6) + (*(allcoeffprime[
NLO]))(6));
734 C_7p -= MsoMb * (C_7 + 1. / 3. * C_3 + 4 / 9 * C_4 + 20. / 3. * C_5 + 80. / 9. * C_6);
738 C_1Lh_bar = (*(allcoeffh[
LO]))(0) / 2.;
739 C_2Lh_bar = (*(allcoeffh[
LO]))(1) - (*(allcoeff[
LO]))(0) / 6.;
740 C_8Lh = (*(allcoeffh[
LO]))(7);
750 t_0 = t_p * (1. - sqrt(1. - t_m / t_p));
751 z_0 = (sqrt(t_p) - sqrt(t_p - t_0)) / (sqrt(t_p) + sqrt(t_p - t_0));
754 s_0 = s_p - sqrt(s_p * (s_p -
mPsi2S2));
757 twoalphaBtoKst = 2.276;
764 onemrho_0_2 = 1. - rho_0*rho_0;
765 onemrho_1_2 = 1. - rho_1*rho_1;
766 onemrho_2_2 = 1. - rho_2*rho_2;
767 onemrho_3_2 = 1. - rho_3*rho_3;
768 onemrho_4_2 = 1. - rho_4*rho_4;
769 onemrho_5_2 = 1. - rho_5*rho_5;
771 MMpMV2 = MMpMV * MMpMV;
773 MMmMV2 = MMmMV * MMmMV;
783 onepMMoMV = (1. +
MV /
MM);
784 MM_MMpMV =
MM * MMpMV;
785 twoMM_mbpms = 2. *
MM * (
Mb +
Ms);
791 ninetysixM_PI3MM3 = 96. * M_PI * M_PI * M_PI *
MM *
MM*
MM;
792 sixteenM_PI2 = 16. * M_PI2;
793 sixteenM_PI2MM2 = sixteenM_PI2 *
MM*
MM;
794 twoMboMM = 2 *
Mb /
MM;
795 H_0_pre = 8. / 27. + 4. / 9. * gslpp::complex::i() * M_PI;
796 H_0_WC = (C_3 + 4. / 3. * C_4 + 16. * C_5 + 64. / 3. * C_6);
797 H_c_WC = (4. / 3. * C_1 + C_2 + 6. * C_3 + 60. * C_5);
798 H_b_WC = (7. * C_3 + 4. / 3. * C_4 + 76. * C_5 + 64. / 3. * C_6);
804 logMc = log(Mc2 / mu_b2);
805 logMb = log(Mb2 / mu_b2);
806 fournineth = 4. / 9.;
809 ihalfMPI = gslpp::complex::i() * M_PI / 2.;
810 twoMM3 = 2. * MM2 *
MM;
811 C2_inv = 1. / (2. * C_2.real());
812 gtilde_1_pre = -16. * pow(
MM, 3.)*(
MM +
MV) * pow(M_PI, 2.);
813 gtilde_2_pre = -16. * pow(
MM, 3.) * pow(M_PI, 2.) / MMpMV;
814 gtilde_3_pre = 64. * pow(
MM, 3.) * pow(M_PI, 2.) *
MV*MMpMV;
815 S_L_pre = (-2. *
MM * (
Mb +
Ms));
817 M_PI2osix = M_PI2 / 6.;
820 N_QCDF = M_PI2 / 3. * fB * fperp /
MM;
828 F87_0 = -32. / 9. * log(
mu_b /
Mb) + 8. / 27. * M_PI2 - 44. / 9. - 8. / 9. * gslpp::complex::i() * M_PI;
830 NN = -(4. *
GF *
MM *
ale * lambda_t) / (sqrt(2.)*4. * M_PI);
831 NN_conjugate = -(4. *
GF *
MM *
ale * lambda_t.conjugate()) / (sqrt(2.)*4. * M_PI);
833 std::map<std::pair<double, double>,
unsigned int >::iterator it;
835 if (I0_updated == 0)
for (it = sigma0Cached.begin(); it != sigma0Cached.end(); ++it) it->second = 0;
836 if (I1_updated == 0)
for (it = sigma1Cached.begin(); it != sigma1Cached.end(); ++it) it->second = 0;
837 if (I2_updated == 0)
for (it = sigma2Cached.begin(); it != sigma2Cached.end(); ++it) it->second = 0;
838 if (I3_updated == 0)
for (it = sigma3Cached.begin(); it != sigma3Cached.end(); ++it) it->second = 0;
839 if (I4_updated == 0)
for (it = sigma4Cached.begin(); it != sigma4Cached.end(); ++it) it->second = 0;
840 if (I5_updated == 0)
for (it = sigma5Cached.begin(); it != sigma5Cached.end(); ++it) it->second = 0;
841 if (I6_updated == 0)
for (it = sigma6Cached.begin(); it != sigma6Cached.end(); ++it) it->second = 0;
842 if (I7_updated == 0)
for (it = sigma7Cached.begin(); it != sigma7Cached.end(); ++it) it->second = 0;
843 if (I8_updated == 0)
for (it = sigma8Cached.begin(); it != sigma8Cached.end(); ++it) it->second = 0;
844 if (I9_updated == 0)
for (it = sigma9Cached.begin(); it != sigma9Cached.end(); ++it) it->second = 0;
845 if (I10_updated == 0)
for (it = sigma10Cached.begin(); it != sigma10Cached.end(); ++it) it->second = 0;
846 if (I11_updated == 0)
for (it = sigma11Cached.begin(); it != sigma11Cached.end(); ++it) it->second = 0;
848 if (I0_updated == 0)
for (it = delta0Cached.begin(); it != delta0Cached.end(); ++it) it->second = 0;
849 if (I1_updated == 0)
for (it = delta1Cached.begin(); it != delta1Cached.end(); ++it) it->second = 0;
850 if (I2_updated == 0)
for (it = delta2Cached.begin(); it != delta2Cached.end(); ++it) it->second = 0;
851 if (I3_updated == 0)
for (it = delta3Cached.begin(); it != delta3Cached.end(); ++it) it->second = 0;
852 if (I11_updated == 0)
for (it = delta11Cached.begin(); it != delta11Cached.end(); ++it) it->second = 0;
854 if (Itree_updated)
for (it = sigmaTreeCached.begin(); it != sigmaTreeCached.end(); ++it) it->second = 0;
856 std::map<double, unsigned int >::iterator iti;
857 if (deltaTparpupdated == 0)
for (iti = deltaTparpCached.begin(); iti != deltaTparpCached.end(); ++iti) iti->second = 0;
858 if (deltaTparmupdated == 0)
for (iti = deltaTparmCached.begin(); iti != deltaTparmCached.end(); ++iti) iti->second = 0;
859 if (deltaTperpupdated == 0)
for (iti = deltaTparpCached.begin(); iti != deltaTparpCached.end(); ++iti) iti->second = 0;
861 if (deltaTparpupdated * deltaTparmupdated == 0)
for (it = I1Cached.begin(); it != I1Cached.end(); ++it) it->second = 0;
932void MVll::checkCache()
935 if (
MM == k2_cache(0) &&
MV == k2_cache(1)) {
945 if (
Mlep == beta_cache) {
952 lambda_updated = k2_updated;
953 F_updated = lambda_updated * beta_updated;
955 if (
GF == N_cache(0) &&
ale == N_cache(1) &&
MM == N_cache(2) && lambda_t == Nc_cache) {
965 if (a_0g == V_cache(0) && a_1g == V_cache(1) && a_2g == V_cache(2)) {
966 V_updated = V_updated * z_updated;
974 if (a_0F2 == A0_cache(0) && a_1F2 == A0_cache(1) && a_2F2 == A0_cache(2)) {
975 A0_updated = A0_updated * z_updated;
983 if (a_0f == A1_cache(0) && a_1f == A1_cache(1) && a_2f == A1_cache(2)) {
984 A1_updated = A1_updated * z_updated;
992 if (a_0T1 == T1_cache(0) && a_1T1 == T1_cache(1) && a_2T1 == T1_cache(2)) {
993 T1_updated = T1_updated * z_updated;
1001 if (a_0T2 == T2_cache(0) && a_1T2 == T2_cache(1) && a_2T2 == T2_cache(2)) {
1002 T2_updated = T2_updated * z_updated;
1005 T2_cache(0) = a_0T2;
1006 T2_cache(1) = a_1T2;
1007 T2_cache(2) = a_2T2;
1010 if (a_0V == V_cache(0) && a_1V == V_cache(1) && a_2V == V_cache(2)) {
1011 V_updated = V_updated * z_updated;
1019 if (a_0A0 == A0_cache(0) && a_1A0 == A0_cache(1) && a_2A0 == A0_cache(2)) {
1020 A0_updated = A0_updated * z_updated;
1023 A0_cache(0) = a_0A0;
1024 A0_cache(1) = a_1A0;
1025 A0_cache(2) = a_2A0;
1028 if (a_0A1 == A1_cache(0) && a_1A1 == A1_cache(1) && a_2A1 == A1_cache(2)) {
1029 A1_updated = A1_updated * z_updated;
1032 A1_cache(0) = a_0A1;
1033 A1_cache(1) = a_1A1;
1034 A1_cache(2) = a_2A1;
1037 if (a_0T1 == T1_cache(0) && a_1T1 == T1_cache(1) && a_2T1 == T1_cache(2)) {
1038 T1_updated = T1_updated * z_updated;
1041 T1_cache(0) = a_0T1;
1042 T1_cache(1) = a_1T1;
1043 T1_cache(2) = a_2T1;
1046 if (a_0T2 == T2_cache(0) && a_1T2 == T2_cache(1) && a_2T2 == T2_cache(2)) {
1047 T2_updated = T2_updated * z_updated;
1050 T2_cache(0) = a_0T2;
1051 T2_cache(1) = a_1T2;
1052 T2_cache(2) = a_2T2;
1056 VL1_updated = k2_updated * lambda_updated * A1_updated * V_updated;
1057 VL2_updated = VL1_updated;
1059 TL1_updated = k2_updated * lambda_updated * T1_updated * T2_updated;
1060 TL2_updated = TL1_updated;
1062 VR1_updated = VL2_updated;
1063 VR2_updated = VL1_updated;
1065 TR1_updated = TL2_updated;
1066 TR2_updated = TL1_updated;
1068 if (
Mb == SL_cache(0) &&
Ms == SL_cache(1)) {
1070 SL_updated = lambda_updated * A0_updated;
1071 SR_updated = SL_updated;
1075 SR_updated = SL_updated;
1081 if (a_0F1 == VL0_cache(0) && a_1F1 == VL0_cache(1) && a_2F1 == VL0_cache(2)) {
1082 VL0_updated = VL0_updated * z_updated;
1083 VR0_updated = VL0_updated;
1086 VR0_updated = VL0_updated;
1087 VL0_cache(0) = a_0F1;
1088 VL0_cache(1) = a_1F1;
1089 VL0_cache(2) = a_2F1;
1092 if (a_0T0 == TL0_cache(0) && a_1T0 == TL0_cache(1) && a_2T0 == TL0_cache(2)) {
1093 TL0_updated = TL0_updated * z_updated;
1094 TR0_updated = TL0_updated;
1097 TR0_updated = TL0_updated;
1098 TL0_cache(0) = a_0T0;
1099 TL0_cache(1) = a_1T0;
1100 TL0_cache(2) = a_2T0;
1103 if (a_0A12 == VL0_cache(0) && a_1A12 == VL0_cache(1) && a_2A12 == VL0_cache(2)) {
1104 VL0_updated = VL0_updated * z_updated;
1105 VR0_updated = VL0_updated;
1108 VR0_updated = VL0_updated;
1109 VL0_cache(0) = a_0A12;
1110 VL0_cache(1) = a_1A12;
1111 VL0_cache(2) = a_2A12;
1114 if (a_0T23 == TL0_cache(0) && a_1T23 == TL0_cache(1) && a_2T23 == TL0_cache(2)) {
1115 TL0_updated = TL0_updated * z_updated;
1116 TR0_updated = TL0_updated;
1119 TR0_updated = TL0_updated;
1120 TL0_cache(0) = a_0T23;
1121 TL0_cache(1) = a_1T23;
1122 TL0_cache(2) = a_2T23;
1127 if (C_1 == C_1_cache) {
1134 if (C_2 == C_2_cache) {
1141 if (C_3 == C_3_cache) {
1148 if (C_4 == C_4_cache) {
1155 if (C_5 == C_5_cache) {
1162 if (C_6 == C_6_cache) {
1169 if (C_7 == C_7_cache) {
1176 if (C_9 == C_9_cache) {
1183 if (C_10 == C_10_cache) {
1190 if (C_S == C_S_cache) {
1197 if (C_P == C_P_cache) {
1204 if (C_7p == C_7p_cache) {
1211 if (C_9p == C_9p_cache) {
1218 if (C_10p == C_10p_cache) {
1222 C_10p_cache = C_10p;
1225 if (C_Sp == C_Sp_cache) {
1232 if (C_Pp == C_Pp_cache) {
1239 if (C_2Lh_bar == C_2Lh_cache) {
1243 C_2Lh_cache = C_2Lh_bar;
1246 if (C_8Lh == C_8Lh_cache) {
1250 C_8Lh_cache = C_8Lh;
1253 if (C_L_nunu_e == C_L_nunu_e_cache) {
1254 C_L_nunu_e_updated = 1;
1256 C_L_nunu_e_updated = 0;
1257 C_L_nunu_e_cache = C_L_nunu_e;
1260 if (C_L_nunu_mu == C_L_nunu_mu_cache) {
1261 C_L_nunu_mu_updated = 1;
1263 C_L_nunu_mu_updated = 0;
1264 C_L_nunu_mu_cache = C_L_nunu_mu;
1267 if (C_L_nunu_tau == C_L_nunu_tau_cache) {
1268 C_L_nunu_tau_updated = 1;
1270 C_L_nunu_tau_updated = 0;
1271 C_L_nunu_tau_cache = C_L_nunu_tau;
1274 if (C_R_nunu_e == C_R_nunu_e_cache) {
1275 C_R_nunu_e_updated = 1;
1277 C_R_nunu_e_updated = 0;
1278 C_R_nunu_e_cache = C_R_nunu_e;
1281 if (C_R_nunu_mu == C_R_nunu_mu_cache) {
1282 C_R_nunu_mu_updated = 1;
1284 C_R_nunu_mu_updated = 0;
1285 C_R_nunu_mu_cache = C_R_nunu_mu;
1288 if (C_R_nunu_tau == C_R_nunu_tau_cache) {
1289 C_R_nunu_tau_updated = 1;
1291 C_R_nunu_tau_updated = 0;
1292 C_R_nunu_tau_cache = C_R_nunu_tau;
1295 if (
Mb == Ycache(0) &&
Mc == Ycache(1)) {
1296 Yupdated = C_1_updated * C_2_updated * C_3_updated * C_4_updated * C_5_updated * C_6_updated;
1304 if (beta_0[0] == beta0Ccache[0] && beta_0[1] == beta0Ccache[1] && beta_0[2] == beta0Ccache[2] && beta_0[3] == beta0Ccache[3]
1305 && beta_0[4] == beta0Ccache[4] && beta_0[5] == beta0Ccache[5] && beta_0[6] == beta0Ccache[6] && SU3_breaking == beta0Ccache[7]) {
1309 beta0Ccache[0] = beta_0[0];
1310 beta0Ccache[1] = beta_0[1];
1311 beta0Ccache[2] = beta_0[2];
1312 beta0Ccache[3] = beta_0[3];
1313 beta0Ccache[4] = beta_0[4];
1314 beta0Ccache[5] = beta_0[5];
1315 beta0Ccache[6] = beta_0[6];
1316 beta0Ccache[7] = SU3_breaking;
1319 if (beta_1[0] == beta1Ccache[0] && beta_1[1] == beta1Ccache[1] && beta_1[2] == beta1Ccache[2] && beta_1[3] == beta1Ccache[3]
1320 && beta_1[4] == beta1Ccache[4] && beta_1[5] == beta1Ccache[5] && beta_1[6] == beta1Ccache[6] && SU3_breaking == beta1Ccache[7]) {
1324 beta1Ccache[0] = beta_1[0];
1325 beta1Ccache[1] = beta_1[1];
1326 beta1Ccache[2] = beta_1[2];
1327 beta1Ccache[3] = beta_1[3];
1328 beta1Ccache[4] = beta_1[4];
1329 beta1Ccache[5] = beta_1[5];
1330 beta1Ccache[6] = beta_1[6];
1331 beta1Ccache[7] = SU3_breaking;
1334 if (beta_2[0] == beta2Ccache[0] && beta_2[1] == beta2Ccache[1] && beta_2[2] == beta2Ccache[2] && beta_2[3] == beta2Ccache[3]
1335 && beta_2[4] == beta2Ccache[4] && beta_2[5] == beta2Ccache[5] && beta_2[6] == beta2Ccache[6] && SU3_breaking == beta2Ccache[7]) {
1339 beta2Ccache[0] = beta_2[0];
1340 beta2Ccache[1] = beta_2[1];
1341 beta2Ccache[2] = beta_2[2];
1342 beta2Ccache[3] = beta_2[3];
1343 beta2Ccache[4] = beta_2[4];
1344 beta2Ccache[5] = beta_2[5];
1345 beta2Ccache[6] = beta_2[6];
1346 beta2Ccache[7] = SU3_breaking;
1349 if (
h_0[0] == h0Ccache[0] && h_1[0] == h0Ccache[1] && h_2[0] == h0Ccache[2] && SU3_breaking == h0Ccache[3]) {
1353 h0Ccache[0] =
h_0[0];
1354 h0Ccache[1] = h_1[0];
1355 h0Ccache[2] = h_2[0];
1356 h0Ccache[3] = SU3_breaking;
1359 if (
h_0[1] == h1Ccache[0] && h_1[1] == h1Ccache[1] && h_2[1] == h1Ccache[2] && SU3_breaking == h1Ccache[3]) {
1363 h1Ccache[0] =
h_0[1];
1364 h1Ccache[1] = h_1[1];
1365 h1Ccache[2] = h_2[1];
1366 h1Ccache[3] = SU3_breaking;
1369 if (
h_0[2] == h2Ccache[0] && h_1[2] == h2Ccache[1] && h_2[2] == h2Ccache[2] && SU3_breaking == h2Ccache[3]) {
1373 h2Ccache[0] =
h_0[2];
1374 h2Ccache[1] = h_1[2];
1375 h2Ccache[2] = h_2[2];
1376 h2Ccache[3] = SU3_breaking;
1381 H_V0updated = N_updated * VL0_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR0_updated;
1382 H_V1updated = N_updated * VL1_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR1_updated;
1383 H_V2updated = N_updated * VL2_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR2_updated;
1384 H_A0updated = N_updated * VL0_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR0_updated;
1385 H_A1updated = N_updated * VL1_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR1_updated;
1386 H_A2updated = N_updated * VL2_updated * C_L_nunu_e_updated * C_L_nunu_mu_updated * C_L_nunu_tau_updated * C_R_nunu_e_updated * C_R_nunu_mu_updated * C_R_nunu_tau_updated * VR2_updated;
1388 if (
MM == H_V0cache(0) &&
Mb == H_V0cache(1)) {
1389 H_V0updated = N_updated * C_9_updated * Yupdated * VL0_updated * C_9p_updated * VR0_updated * C_7_updated * TL0_updated * C_7p_updated * TR0_updated * h0_updated;
1396 if (
MM == H_V1cache(0) &&
Mb == H_V1cache(1)) {
1397 H_V1updated = N_updated * C_9_updated * Yupdated * VL1_updated * C_9p_updated * VR1_updated * C_7_updated * TL1_updated * C_7p_updated * TR1_updated * h1_updated;
1404 if (
MM == H_V2cache(0) &&
Mb == H_V2cache(1)) {
1405 H_V2updated = N_updated * C_9_updated * Yupdated * VL2_updated * C_9p_updated * VR2_updated * C_7_updated * TL2_updated * C_7p_updated * TR2_updated * h2_updated;
1412 H_A0updated = N_updated * C_10_updated * VL0_updated * C_10p_updated * VR0_updated;
1413 H_A1updated = N_updated * C_10_updated * VL1_updated * C_10p_updated * VR1_updated;
1414 H_A2updated = N_updated * C_10_updated * VL2_updated * C_10p_updated * VR2_updated;
1417 if (
Mb == H_Scache(0) && MW == H_Scache(1)) {
1418 H_Supdated = N_updated * C_S_updated * SL_updated * C_Sp_updated * SR_updated;
1425 if (
Mb == H_Pcache(0) && MW == H_Pcache(1) &&
Mlep == H_Pcache(2) &&
Ms == H_Pcache(3)) {
1426 H_Pupdated = N_updated * C_P_updated * SL_updated * C_Pp_updated * SR_updated * C_10_updated * C_10p_updated;
1436 if (
MM == T_cache(0) &&
Mb == T_cache(1) &&
Mc == T_cache(2) &&
1448 deltaTparpupdated = C_2Lh_updated * T_updated;
1449 deltaTparmupdated = C_2Lh_updated * C_8Lh_updated * T_updated;
1450 deltaTperpupdated = deltaTparpupdated;
1452 I0_updated = F_updated * H_V0updated * H_A0updated * H_Pupdated * beta_updated * H_Supdated * deltaTparmupdated;
1453 I1_updated = F_updated * beta_updated * H_V1updated * H_V2updated * H_A1updated * H_A2updated * deltaTparmupdated;
1454 I2_updated = F_updated * beta_updated * H_V0updated * H_A0updated * deltaTparmupdated;
1455 I3_updated = F_updated * H_V1updated * H_V2updated * H_A1updated * H_A2updated * beta_updated * deltaTparmupdated;
1456 I4_updated = F_updated * H_V1updated * H_V2updated * H_A1updated * H_A2updated * deltaTparmupdated;
1457 I5_updated = F_updated * H_V0updated * H_V1updated * H_V2updated * H_A0updated * H_A1updated * H_A2updated * beta_updated * deltaTparmupdated;
1458 I6_updated = F_updated * H_V1updated * H_V2updated * H_A0updated * H_A1updated * H_A2updated * H_V0updated * beta_updated * H_Supdated * deltaTparmupdated;
1459 I7_updated = I4_updated * beta_updated;
1460 I8_updated = F_updated * beta_updated * H_Supdated * H_V0updated * deltaTparmupdated;
1461 I9_updated = I6_updated;
1462 I10_updated = I5_updated;
1463 I11_updated = I7_updated;
1465 if (MM2 == Itree_cache(0) && mtau2 == Itree_cache(1) && MV2 == Itree_cache(2)) {
1469 Itree_cache(0) = MM2;
1470 Itree_cache(1) = mtau2;
1471 Itree_cache(2) = MV2;
1480double MVll::FF_fit(
double q2,
double a_0,
double a_1,
double a_2,
double MR_2)
1482 return 1. / (1. - q2 / MR_2) * (a_0 + a_1 * (z(q2) - z_0) + a_2 * (z(q2) - z_0) * (z(q2) - z_0));
1485double MVll::z(
double q2)
1487 return ( sqrt(t_p - q2) - sqrt(t_p - t_0)) / (sqrt(t_p - q2) + sqrt(t_p - t_0));
1490double MVll::z_DM(
double q2)
1492 return (sqrt(t_p - q2) - sqrt(t_p - t_m)) / (sqrt(t_p - q2) + sqrt(t_p - t_m));
1495double MVll::phi_f(
double q2,
double MRf_2)
1497 double z = z_DM(q2);
1498 double z_M = z_DM(MRf_2);
1500 return 4.*rV/MM2*sqrt(2./3./Chi1plus/M_PI) * (1. + z)*pow(1. - z,1.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),4) * (z - z_M)/(1. - z_M*z);
1503double MVll::phi_g(
double q2,
double MRg_2)
1505 double z = z_DM(q2);
1506 double z_M = z_DM(MRg_2);
1508 return 16.*rV*rV*sqrt(2./3./Chi1minus/M_PI) * (1. + z)*(1. + z)*pow(1. - z,-0.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),4) * (z - z_M)/(1. - z_M*z);
1511double MVll::phi_F1(
double q2,
double MRF1_2)
1513 double z = z_DM(q2);
1514 double z_M = z_DM(MRF1_2);
1516 return 2.*rV/MM3*sqrt(4./3./Chi1plus/M_PI) * (1. + z)*pow(1. - z,2.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),5) * (z - z_M)/(1. - z_M*z);
1519double MVll::phi_F2(
double q2,
double MRF2_2)
1521 double z = z_DM(q2);
1522 double z_M = z_DM(MRF2_2);
1524 return 8.*rV*rV*sqrt(4./Chi0minus/M_PI) * (1. + z)*(1. + z)*pow(1. - z,-0.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),4) * (z - z_M)/(1. - z_M*z);
1527double MVll::phi_T0(
double q2,
double MRT0_2)
1529 double z = z_DM(q2);
1530 double z_M = z_DM(MRT0_2);
1532 return 2.*rV*(1. + rV)/
MM*sqrt(4./3./ChiBB/M_PI) * (1. + z)*pow(1. - z,1.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),4) * (z - z_M)/(1. - z_M*z);
1535double MVll::phi_T1(
double q2,
double MRT1_2)
1537 double z = z_DM(q2);
1538 double z_M = z_DM(MRT1_2);
1540 return 32.*rV*rV/
MM*sqrt(2./3./ChiTT/M_PI) * (1. + z)*(1. + z)*pow(1. - z,0.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),5) * (z - z_M)/(1. - z_M*z);
1543double MVll::phi_T2(
double q2,
double MRT2_2)
1545 double z = z_DM(q2);
1546 double z_M = z_DM(MRT2_2);
1548 return 4.*rV*(1. - rV*rV)/
MM*sqrt(2./3./ChiBB/M_PI) * (1. + z)*pow(1. - z,2.5)/pow((1. + rV)*(1. - z)+2.*sqrt(rV)*(1. + z),5) * (z - z_M)/(1. - z_M*z);
1551double MVll::f_DM(
double q2,
double a_0f,
double a_1f,
double a_2f,
double MRf_2)
1553 double z = z_DM(q2);
1554 return (a_0f + a_1f*z + a_2f*z*z) / phi_f(q2, MRf_2);
1557double MVll::g_DM(
double q2,
double a_0g,
double a_1g,
double a_2g,
double MRg_2)
1559 double z = z_DM(q2);
1560 return (a_0g + a_1g*z + a_2g*z*z) / phi_g(q2, MRg_2);
1563double MVll::F1_DM(
double q2,
double a_0F1,
double a_1F1,
double a_2F1,
double MRF1_2)
1565 double z = z_DM(q2);
1566 return (a_0F1 + a_1F1*z + a_2F1*z*z) / phi_F1(q2, MRF1_2);
1569double MVll::F2_DM(
double q2,
double a_0F2,
double a_1F2,
double a_2F2,
double MRF2_2)
1571 double z = z_DM(q2);
1572 return (a_0F2 + a_1F2*z + a_2F2*z*z) / phi_F2(q2, MRF2_2);
1575double MVll::T0_DM(
double q2,
double a_0T0,
double a_1T0,
double a_2T0,
double MRT0_2)
1577 double z = z_DM(q2);
1578 return (a_0T0 + a_1T0*z + a_2T0*z*z) / phi_T0(q2, MRT0_2);
1581double MVll::T1_DM(
double q2,
double a_0T1,
double a_1T1,
double a_2T1,
double MRT1_2)
1583 double z = z_DM(q2);
1584 return (a_0T1 + a_1T1*z + a_2T1*z*z) / phi_T1(q2, MRT1_2);
1587double MVll::T2_DM(
double q2,
double a_0T2,
double a_1T2,
double a_2T2,
double MRT2_2)
1589 double z = z_DM(q2);
1590 return (a_0T2 + a_1T2*z + a_2T2*z*z) / phi_T2(q2, MRT2_2);
1593double MVll::V(
double q2)
1596 return g_DM(q2, a_0g, a_1g, a_2g, MRg_2)*MMpMV/2.;
1598 return FF_fit(q2, a_0V, a_1V, a_2V, MRV_2);
1602double MVll::A_0(
double q2)
1605 return F2_DM(q2, a_0F2, a_1F2, a_2F2, MRF2_2)/2.;
1607 return FF_fit(q2, a_0A0, a_1A0, a_2A0, MRA0_2);
1611double MVll::A_1(
double q2)
1614 return f_DM(q2, a_0f, a_1f, a_2f, MRf_2)/MMpMV;
1616 return FF_fit(q2, a_0A1, a_1A1, a_2A1, MRA1_2);
1620double MVll::A_2(
double q2)
1624 A12 = F1_DM(q2, a_0F1, a_1F1, a_2F1, MRF1_2)/MMMV/8.;
1626 A12 =
FF_fit(q2, a_0A12, a_1A12, a_2A12, MRA12_2);
1629 return (MMpMV2 * (MM2mMV2 - q2) * A_1(q2) - 16. *
MM * MV2 * MMpMV * A12) / lambda(q2);
1632double MVll::T_1(
double q2)
1635 return T1_DM(q2, a_0T1, a_1T1, a_2T1, MRT1_2);
1637 return FF_fit(q2, a_0T1, a_1T1, a_2T1, MRT1_2);
1641double MVll::T_2(
double q2)
1644 return T2_DM(q2, a_0T2, a_1T2, a_2T2, MRT2_2);
1646 return FF_fit(q2, a_0T2, a_1T2, a_2T2, MRT2_2);
1650double MVll::V_0t(
double q2)
1654 A12 = F1_DM(q2, a_0F1, a_1F1, a_2F1, MRF1_2)/MMMV/8.;
1656 A12 =
FF_fit(q2, a_0A12, a_1A12, a_2A12, MRA12_2);
1659 return fourMV / sqrt(q2) * A12;
1662double MVll::V_p(
double q2)
1664 return half * (onepMMoMV * A_1(q2) - sqrt(lambda(q2)) / (MM_MMpMV) * V(q2));
1667double MVll::V_m(
double q2)
1669 return half * (onepMMoMV * A_1(q2) + sqrt(lambda(q2)) / (MM_MMpMV) * V(q2));
1672double MVll::T_0t(
double q2)
1676 T23 = T0_DM(q2, a_0T0, a_1T0, a_2T0, MRT0_2)*MMpMV*MMpMV/4./
MM;
1678 T23 =
FF_fit(q2, a_0T23, a_1T23, a_2T23, MRT23_2);
1681 return 2 * sqrt(q2) *
MV / MM_MMpMV * T23;
1684double MVll::T_p(
double q2)
1686 return (MM2mMV2 * T_2(q2) - sqrt(lambda(q2)) * T_1(q2)) / twoMM2;
1689double MVll::T_m(
double q2)
1691 return (MM2mMV2 * T_2(q2) + sqrt(lambda(q2)) * T_1(q2)) / twoMM2;
1694double MVll::S_L(
double q2)
1696 return -sqrt(lambda(q2)) / twoMM_mbpms * A_0(q2);
1705 double sh = q2 / mb2;
1706 double z = (4. * mb2) / q2;
1707 double lsh = log(sh);
1708 gslpp::complex acsq = arccot((gslpp::complex)sqrt(z - 1.));
1710 double osh2 = (1. - sh)*(1. - sh);
1711 return (-(104.) / (243.) * log((mb2) / (mu_b2)) + (4. * sh) / (27. * (1. - sh)) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1712 + (1.) / (729. * osh2) * (6. * sh * (29. - 47. * sh) * lsh + 785. - 1600. * sh + 833. * sh * sh + 6. * M_PI * gslpp::complex::i() * (20. - 49. * sh + 47. * sh2))
1713 - (2.) / (243. * osh2 * (1. - sh)) * (2. * sqrt(z - 1.) * (-4. + 9. * sh - 15. * sh2 + 4. * sh2 * sh) * acsq + 9. * sh2 * sh * lsh * lsh + 18. * M_PI * gslpp::complex::i() * sh * (1. - 2. * sh) * lsh)
1714 + (2. * sh) / (243. * osh2 * osh2) * (36. * acsq * acsq + M_PI2 * (-4. + 9. * sh - 9. * sh2 + 3. * sh2 * sh)));
1719 double sh = q2 / mb2;
1720 double z = (4. * mb2) / q2;
1721 double sqrt_z_m_1 = sqrt(z - 1.);
1722 gslpp::complex x1 = 0.5 + gslpp::complex::i() / 2. * sqrt_z_m_1;
1723 gslpp::complex x2 = 0.5 - gslpp::complex::i() / 2. * sqrt_z_m_1;
1724 gslpp::complex x3 = 0.5 + gslpp::complex::i() / (2. * sqrt_z_m_1);
1725 gslpp::complex x4 = 0.5 - gslpp::complex::i() / (2. * sqrt_z_m_1);
1726 gslpp::complex lx1 = log(x1);
1727 gslpp::complex lx2 = log(x2);
1728 gslpp::complex lx3 = log(x3);
1729 gslpp::complex lx4 = log(x4);
1730 gslpp::complex lx2_x1 = lx2 - lx1;
1731 gslpp::complex lzm1 = log(z - 1.);
1732 gslpp::complex acsq = arccot((gslpp::complex)sqrt_z_m_1);
1734 double lsh = log(sh);
1735 double osh2 = (1. - sh)*(1. - sh);
1736 double lmb_mu = log(mb2 / mu_b2);
1737 return (8. / (243. * sh) * ((4. - 34. * sh - 17. * M_PI * gslpp::complex::i() * sh) * lmb_mu + 8. * sh * lmb_mu * lmb_mu + 17. * sh * lsh * lmb_mu)
1738 + ((2. + sh) * sqrt_z_m_1) / (729. * sh) * (-48. * lmb_mu * acsq - 18. * M_PI * log(z - 1.) + 3. * gslpp::complex::i() * lzm1 * lzm1
1739 - 24. * gslpp::complex::i() * dilog(-x2 / x1) - 5. * M_PI2 * gslpp::complex::i()
1740 + 6. * gslpp::complex::i() * (-9. * lx1 * lx1 + lx2 * lx2 - 2. * lx4 * lx4 + 6. * lx1 * lx2 - 4. * lx1 * lx3 + 8. * lx1 * lx4)
1741 - 12. * M_PI * (2. * lx1 + lx3 + lx4)) - 2. / (243. * sh * (1 - sh)) * (4. * sh * (-8. + 17. * sh) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1742 + 3. * (2. + sh) * (3. - sh) * lx2_x1 * lx2_x1 + 12. * M_PI * (-6. - sh + sh2) * acsq) + 2. / (2187. * sh * osh2) * (-18. * sh * (120. - 211. * sh + 73. * sh2) * lsh
1743 - 288. - 8. * sh + 934. * sh2 - 692. * sh2 * sh + 18. * M_PI * gslpp::complex::i() * sh * (82. - 173. * sh + 73. * sh2))
1744 - 4. / (243. * sh * osh2 * (1 - sh)) * (-2. * sqrt_z_m_1 * (4. - 3. * sh - 18. * sh2 + 16. * sh2 * sh - 5. * sh2 * sh2) * acsq - 9. * sh * sh2 * lsh * lsh
1745 + 2. * M_PI * gslpp::complex::i() * sh * (8. - 33. * sh + 51. * sh2 - 17. * sh * sh2) * lsh) + 2. / (729. * sh * osh2 * osh2) * (72. * (3. - 8. * sh + 2. * sh2) * acsq * acsq
1746 - M_PI2 * (54. - 53. * sh - 286. * sh2 + 612. * sh * sh2 - 446. * sh2 * sh2 + 113. * sh2 * sh2 * sh)));
1751 return -(16.) / (81.) * log((q2) / (mu_b2)) + (428.) / (243.) - (64.) / (27.) * gsl_sf_zeta_int(3) + (16.) / (81.) * M_PI * gslpp::complex::i();
1760 #if COMPUTECP && SPLINE
1761 if (spline && !conjugate)
return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1762 else if (spline && conjugate)
return gsl_spline_eval(spline_Re_deltaC7_QCDF_conj, q2, acc_Re_deltaC7_QCDF_conj);
1764 if (spline)
return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1772 #if FULLNLOQCDF_MVLL
1774 gslpp::complex Fu_17 = -A_Sdl;
1775 gslpp::complex Fu_27 = 6. * A_Sdl;
1777 gslpp::complex F_17 =
myF_1->F_17re(muh, z, sh, 20) + gslpp::complex::i() *
myF_1->F_17im(muh, z, sh, 20);
1778 gslpp::complex F_27 =
myF_2->F_27re(muh, z, sh, 20) + gslpp::complex::i() *
myF_2->F_27im(muh, z, sh, 20);
1779 gslpp::complex F_87 = F87_0 + F87_1 * sh + F87_2 * sh2 + F87_3 * sh * sh2 - 8. / 9. * log(sh) * (sh + sh2 + sh * sh2);
1782 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
1783 gslpp::complex delta_t = C_8 * F_87 + delta;
1784 #if FULLNLOQCDF_MVLL
1785 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
1786 return -
alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1791 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
1792 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
1793 #if FULLNLOQCDF_MVLL
1794 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
1795 return -
alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1808 #if COMPUTECP && SPLINE
1809 if (spline && !conjugate)
return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1810 else if (spline && conjugate)
return gsl_spline_eval(spline_Re_deltaC9_QCDF_conj, q2, acc_Re_deltaC9_QCDF_conj);
1812 if (spline)
return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1820 #if FULLNLOQCDF_MVLL
1822 gslpp::complex C_Sdl =
C_Seidel(q2);
1823 gslpp::complex Fu_19 = -(B_Sdl + 4. * C_Sdl);
1824 gslpp::complex Fu_29 = -(-6. * B_Sdl + 3. * C_Sdl);
1826 gslpp::complex F_19 =
myF_1->F_19re(muh, z, sh, 20) + gslpp::complex::i() *
myF_1->F_19im(muh, z, sh, 20);
1827 gslpp::complex F_29 =
myF_2->F_29re(muh, z, sh, 20) + gslpp::complex::i() *
myF_2->F_29im(muh, z, sh, 20);
1828 gslpp::complex F_89 = (F89_0 + F89_1 * sh + F89_2 * sh2 + F89_3 * sh * sh2 + 16. / 9. * log(sh) * (1. + sh + sh2 + sh * sh2));
1831 gslpp::complex delta = C_1 * F_19 + C_2 * F_29;
1832 gslpp::complex delta_t = C_8 * F_89 + delta;
1833 #if FULLNLOQCDF_MVLL
1834 gslpp::complex delta_u = delta + C_1 * Fu_19 + C_2 * Fu_29;
1835 return -
alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1840 gslpp::complex delta = C_1.conjugate() * F_19 + C_2.conjugate() * F_29;
1841 gslpp::complex delta_t = C_8.conjugate() * F_89 + delta;
1842 #if FULLNLOQCDF_MVLL
1843 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_19 + C_2.conjugate() * Fu_29;
1844 return -
alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1854 gslpp::complex T_t = C_3 + 4. / 3. * (C_4 + 12. * C_5 + 16. * C_6);
1855 gslpp::complex T_u = 0.;
1858 if (!conjugate)
return T_t + lambda_u / lambda_t * T_u;
1859 else return T_t + (lambda_u / lambda_t).conjugate() * T_u;
1879 double ubar = 1. - u;
1880 double ed = -1. / 3.;
1882 return -(
alpha_s_mub / (3. * M_PI))*4. * ed * C_8 / (u + ubar * q2 / MM2);
1887 double ubar = 1. - u;
1894 double EV = (MM2 - q2 + MV2) / (2. *
MM);
1895 double ubar = 1. - u;
1897 return (2. *
MM) / (ubar * EV) *
I1(q2, u, m2) + q2 / (ubar * ubar * EV * EV) *
B0diff(q2, u, m2);
1903 double EV = (MM2pMV2 - q2) / (2. *
MM);
1904 double ubar = 1. - u;
1905 return (2. *
MM) / (ubar * EV) *
I1(q2, u, m2) + (ubar * MM2 + u * q2) / (ubar * ubar * EV * EV) *
B0diff(q2, u, m2);
1910 if (m2 == 0.)
return 1.;
1913 xp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1914 xm = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1915 yp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / q2);
1916 ym = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / q2);
1917 L1xp = log(1. - 1. / xp) * log(1. - xp) - M_PI2osix + dilog(xp / (xp - 1.));
1918 L1xm = log(1. - 1. / xm) * log(1. - xm) - M_PI2osix + dilog(xm / (xm - 1.));
1919 L1yp = log(1. - 1. / yp) * log(1. - yp) - M_PI2osix + dilog(yp / (yp - 1.));
1920 L1ym = log(1. - 1. / ym) * log(1. - ym) - M_PI2osix + dilog(ym / (ym - 1.));
1922 return 1. + 2. * m2 / ubar / (MM2 - q2)*(L1xp + L1xm - L1yp - L1ym);
1927 double ubar = 1. - u;
1929 if (m2 == 0.)
return -log((gslpp::complex)(-(2. / q2))) + log((gslpp::complex)(-(2. / (q2 * u + MM2 * ubar))));
1930 else return B0(ubar * MM2 + u * q2, m2) -
B0(q2, m2);
1935 if (4. * m2 /
s == 1.)
return gslpp::complex(0.);
1936 else return -2. * sqrt(4. * (m2 - gslpp::complex::i()*1.e-10) /
s - 1.) * arctan(1. / sqrt(4. * (m2 - gslpp::complex::i()*1.e-10) /
s - 1.));
1941 if (m2 == 0.)
return 8. / 27. + 4. * gslpp::complex::i() * M_PI / 9. + 8. * log(
mu_b) / 9. - 4. * log(
s) / 9.;
1942 if (
s == 0.)
return -4. / 9. * (1. + log(m2 /
mu_b /
mu_b));
1944 double z = 4 * m2 /
s;
1945 gslpp::complex term;
1946 if (z > 1) term = atan(1. / sqrt(z - 1.));
1947 else term = log((1. + sqrt(1. - z)) / sqrt(z)) - ihalfMPI;
1949 return -4. / 9. * log(m2 /
mu_b /
mu_b) + 8. / 27. + 4. / 9. * z - 4. / 9. * (2. + z) * sqrt(std::abs(z - 1.)) * term;
1956 double eu = 0.666666667;
1959 gslpp::complex t_perp_0 =
t_perp(q2, u, 0.);
1960 double ed = -0.333333333;
1962 gslpp::complex T_t = (eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1963 + ed * t_perp_mb * (C_3 - C_4/6. + 16. * C_5 + 10. * C_6/3. + 4. *
mb_pole /
MM * (-C_3 + C_4/6. - 4. * C_5 + 2. * C_6/3.))
1964 + ed * t_perp_0 * (C_3 - C_4/6. + 16. * C_5 - 8. * C_6/3.));
1966 gslpp::complex T_u = eu * (t_perp_mc - t_perp_0)*(C_2 - C_1 / 6.);
1968 if (!conjugate)
return alpha_s_mub / (3. * M_PI) *
MM / (2. *
mb_pole)*(T_t + lambda_u / lambda_t * T_u);
1969 else return alpha_s_mub / (3. * M_PI) *
MM / (2. *
mb_pole)*(T_t + (lambda_u / lambda_t).conjugate() * T_u);
1971 return alpha_s_mub / (3. * M_PI) *
MM / (2. *
mb_pole)*(eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1978 double eu = 0.666666667;
1981 gslpp::complex t_para_0 =
t_para(q2, u, 0.);
1982 double ed = -0.333333333;
1984 gslpp::complex T_t = (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1985 + ed * t_para_mb * (C_3 - C_4/6. + 16.*C_5 + 10.*C_6/3.)
1986 + ed * t_para_0 * (C_3 - C_4/6. + 16.*C_5 - 8.*C_6/3.));
1988 gslpp::complex T_u = eu * (t_para_mc - t_para_0) * (C_2 - C_1/6.);
1990 if (!conjugate)
return alpha_s_mub / (3. * M_PI) *
MM /
mb_pole * (T_t + lambda_u / lambda_t * T_u);
1991 else return alpha_s_mub / (3. * M_PI) *
MM /
mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
1993 return alpha_s_mub / (3. * M_PI) *
MM /
mb_pole * (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1999 double ubar = 1. - u;
2003 gslpp::complex
h_0 =
h_func(ubar*MM2 + u*q2, 0);
2005 gslpp::complex T_t = (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6)
2006 + h_mb * (C_3 + 5.*C_4/6. + 16.*C_5 + 22.*C_6/3.)
2007 +
h_0 * (C_3 + 17.*C_4/6. + 16.*C_5 + 82.*C_6/3.)
2008 - 8./27. * (-15.*C_4/2. + 12.*C_5 - 32.*C_6));
2010 gslpp::complex T_u = (h_mc -
h_0)*(C_2 - C_1/6.);
2027 return 1. / (exp(-q2 /
MM / w0) / w0 * (-gsl_sf_expint_Ei(q2 /
MM / w0) + gslpp::complex::i() * M_PI));
2034 double ubar = 1. - u;
2040 return T_amp.real();
2047 double ubar = 1. - u;
2053 return T_amp.imag();
2058 double N = N_QCDF * (
MV / ((MM2pMV2 - q2) / (2. *
MM)));
2065 return sqrt(q2) * T_amp.real();
2070 double N = N_QCDF * (
MV / ((MM2pMV2 - q2) / (2. *
MM)));
2077 return sqrt(q2) * T_amp.imag();
2082 FS = convertToGslFunction(bind(&
MVll::T_perp_real, &(*
this), q2, _1, conjugate));
2083 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2090 FS = convertToGslFunction(bind(&
MVll::T_perp_imag, &(*
this), q2, _1, conjugate));
2091 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2098 FS = convertToGslFunction(bind(&
MVll::T_para_real, &(*
this), q2, _1, conjugate));
2099 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2106 FS = convertToGslFunction(bind(&
MVll::T_para_imag, &(*
this), q2, _1, conjugate));
2107 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2114 return p[0] + p[1] * x[0] + p[2] * x[0] * x[0] + p[3] * x[0] * x[0] * x[0] + p[4] * x[0] * x[0] * x[0] * x[0] + p[5] * x[0] * x[0] * x[0] * x[0] * x[0] + p[6] * x[0] * x[0] * x[0] * x[0] * x[0] * x[0];
2120 for (
double i = 0.001; i < 8.6; i += 0.5) {
2136 gr1 = TGraph(dim, myq2.data(), Re_T_perp.data());
2137 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Re_T_perp");
2138 Re_T_perp_res = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2141 gr1 = TGraph(dim, myq2.data(), Im_T_perp.data());
2142 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Im_T_perp");
2143 Im_T_perp_res = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2146 gr1 = TGraph(dim, myq2.data(), Re_T_para.data());
2147 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Re_T_para");
2148 Re_T_para_res = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2151 gr1 = TGraph(dim, myq2.data(), Im_T_para.data());
2152 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Im_T_para");
2153 Im_T_para_res = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2157 gr1 = TGraph(dim, myq2.data(), Re_T_perp_conj.data());
2158 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Re_T_perp_conj");
2159 Re_T_perp_res_conj = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2160 Re_T_perp_conj.clear();
2162 gr1 = TGraph(dim, myq2.data(), Im_T_perp_conj.data());
2163 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Im_T_perp_conj");
2164 Im_T_perp_res_conj = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2165 Im_T_perp_conj.clear();
2167 gr1 = TGraph(dim, myq2.data(), Re_T_para_conj.data());
2168 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Re_T_para_conj");
2169 Re_T_para_res_conj = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2170 Re_T_para_conj.clear();
2172 gr1 = TGraph(dim, myq2.data(), Im_T_para_conj.data());
2173 QCDFfit = TF1(
"QCDFfit",
this, &
MVll::QCDF_fit_func, 0.001, 8.51, 7,
"MVll",
"Im_T_para_conj");
2174 Im_T_para_res_conj = gr1.Fit(&QCDFfit,
"SQN0+rob=0.99");
2175 Im_T_para_conj.clear();
2183 int dim = GSL_INTERP_DIM;
2184 int dim_DC = GSL_INTERP_DIM_DC;
2186 double interval = (9.9 - min) / ((
double) dim);
2187 double interval_DC = (9.9 - min) / ((
double) dim_DC);
2188 double q2_spline[dim];
2189 double fq2_Re_T_perp[dim], fq2_Im_T_perp[dim], fq2_Re_T_para[dim], fq2_Im_T_para[dim];
2190 double q2_spline_DC[dim_DC];
2191 double fq2_Re_deltaC7_QCDF[dim_DC], fq2_Im_deltaC7_QCDF[dim_DC], fq2_Re_deltaC9_QCDF[dim_DC], fq2_Im_deltaC9_QCDF[dim_DC];
2193 double fq2_Re_T_perp_conj[dim], fq2_Im_T_perp_conj[dim], fq2_Re_T_para_conj[dim], fq2_Im_T_para_conj[dim];
2194 double fq2_Re_deltaC7_QCDF_conj[dim_DC], fq2_Im_deltaC7_QCDF_conj[dim_DC], fq2_Re_deltaC9_QCDF_conj[dim_DC], fq2_Im_deltaC9_QCDF_conj[dim_DC];
2197 for (
int i = 0; i < dim; i++) {
2198 q2_spline[i] = min + (double) i*interval;
2199 fq2_Re_T_perp[i] =
T_perp_real(q2_spline[i],
false);
2200 fq2_Im_T_perp[i] =
T_perp_imag(q2_spline[i],
false);
2201 fq2_Re_T_para[i] =
T_para_real(q2_spline[i],
false);
2202 fq2_Im_T_para[i] =
T_para_imag(q2_spline[i],
false);
2205 fq2_Re_T_perp_conj[i] =
T_perp_real(q2_spline[i],
true);
2206 fq2_Im_T_perp_conj[i] =
T_perp_imag(q2_spline[i],
true);
2207 fq2_Re_T_para_conj[i] =
T_para_real(q2_spline[i],
true);
2208 fq2_Im_T_para_conj[i] =
T_para_imag(q2_spline[i],
true);
2211 for (
int i = 0; i < dim_DC; i++) {
2212 q2_spline_DC[i] = min + (double) i*interval_DC;
2213 fq2_Re_deltaC7_QCDF[i] =
deltaC7_QCDF(q2_spline_DC[i],
false).real();
2214 fq2_Im_deltaC7_QCDF[i] =
deltaC7_QCDF(q2_spline_DC[i],
false).imag();
2215 fq2_Re_deltaC9_QCDF[i] =
deltaC9_QCDF(q2_spline_DC[i],
false).real();
2216 fq2_Im_deltaC9_QCDF[i] =
deltaC9_QCDF(q2_spline_DC[i],
false).imag();
2219 fq2_Re_deltaC7_QCDF_conj[i] =
deltaC7_QCDF(q2_spline_DC[i],
true).real();
2220 fq2_Im_deltaC7_QCDF_conj[i] =
deltaC7_QCDF(q2_spline_DC[i],
true).imag();
2221 fq2_Re_deltaC9_QCDF_conj[i] =
deltaC9_QCDF(q2_spline_DC[i],
true).real();
2222 fq2_Im_deltaC9_QCDF_conj[i] =
deltaC9_QCDF(q2_spline_DC[i],
true).imag();
2226 gsl_spline_init(spline_Re_T_perp, q2_spline, fq2_Re_T_perp, dim);
2227 gsl_spline_init(spline_Im_T_perp, q2_spline, fq2_Im_T_perp, dim);
2228 gsl_spline_init(spline_Re_T_para, q2_spline, fq2_Re_T_para, dim);
2229 gsl_spline_init(spline_Im_T_para, q2_spline, fq2_Im_T_para, dim);
2231 gsl_spline_init(spline_Re_deltaC7_QCDF, q2_spline_DC, fq2_Re_deltaC7_QCDF, dim_DC);
2232 gsl_spline_init(spline_Im_deltaC7_QCDF, q2_spline_DC, fq2_Im_deltaC7_QCDF, dim_DC);
2233 gsl_spline_init(spline_Re_deltaC9_QCDF, q2_spline_DC, fq2_Re_deltaC9_QCDF, dim_DC);
2234 gsl_spline_init(spline_Im_deltaC9_QCDF, q2_spline_DC, fq2_Im_deltaC9_QCDF, dim_DC);
2237 gsl_spline_init(spline_Re_T_perp_conj, q2_spline, fq2_Re_T_perp_conj, dim);
2238 gsl_spline_init(spline_Im_T_perp_conj, q2_spline, fq2_Im_T_perp_conj, dim);
2239 gsl_spline_init(spline_Re_T_para_conj, q2_spline, fq2_Re_T_para_conj, dim);
2240 gsl_spline_init(spline_Im_T_para_conj, q2_spline, fq2_Im_T_para_conj, dim);
2242 gsl_spline_init(spline_Re_deltaC7_QCDF_conj, q2_spline_DC, fq2_Re_deltaC7_QCDF_conj, dim_DC);
2243 gsl_spline_init(spline_Im_deltaC7_QCDF_conj, q2_spline_DC, fq2_Im_deltaC7_QCDF_conj, dim_DC);
2244 gsl_spline_init(spline_Re_deltaC9_QCDF_conj, q2_spline_DC, fq2_Re_deltaC9_QCDF_conj, dim_DC);
2245 gsl_spline_init(spline_Im_deltaC9_QCDF_conj, q2_spline_DC, fq2_Im_deltaC9_QCDF_conj, dim_DC);
2255 #if COMPUTECP && SPLINE
2256 if (!conjugate)
return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp, q2, acc_Re_T_perp) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp, q2, acc_Im_T_perp));
2257 else return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp_conj, q2, acc_Re_T_perp_conj) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp_conj, q2, acc_Im_T_perp_conj));
2259 return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp, q2, acc_Re_T_perp) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp, q2, acc_Im_T_perp));
2262 #if COMPUTECP && !SPLINE
2263 if (!conjugate)
return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_perp_res->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_perp_res->GetParams())));
2264 else return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_perp_res_conj->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_perp_res_conj->GetParams())));
2266 return -2. *
MM *
mb_pole / q2 * (1. - q2 / MM2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_perp_res->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_perp_res->GetParams())));
2277 #if COMPUTECP && SPLINE
2278 if (!conjugate)
return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para, q2, acc_Re_T_para) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para, q2, acc_Im_T_para));
2279 else return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para_conj, q2, acc_Re_T_para_conj) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para_conj, q2, acc_Im_T_para_conj));
2281 return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para, q2, acc_Re_T_para) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para, q2, acc_Im_T_para));
2284 #if COMPUTECP && !SPLINE
2285 if (!conjugate)
return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_para_res->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_para_res->GetParams())));
2286 else return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_para_res_conj->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_para_res_conj->GetParams())));
2288 return -(1. - q2 / MM2)* (1. - q2 / MM2) *
MM *
mb_pole / sqrt(q2) * (
QCDF_fit_func(&q2,
const_cast<double *
> (Re_T_para_res->GetParams())) + gslpp::complex::i() *
QCDF_fit_func(&q2,
const_cast<double *
> (Im_T_para_res->GetParams())));
2296gslpp::complex MVll::H(
double q2,
double m2,
double mu2)
2298 double x = 4. * m2 / q2;
2301 if (x > 1.) par = sqrt(x - 1.) * atan(1. / sqrt(x - 1.));
2302 else par = sqrt(1. - x) * (log((1. + sqrt(1. - x)) / sqrt(x)) - ihalfMPI);
2304 return -fournineth * (log(m2 / mu2) - twothird - x) - fournineth * (2. + x) * par;
2307gslpp::complex MVll::H_0(
double q2)
2309 return (H_0_pre - fournineth * log(q2 / mu_b2));
2312gslpp::complex MVll::Y(
double q2)
2320gslpp::complex MVll::funct_g(
double q2)
2322 if (q2 < 4. *
Mc *
Mc)
2323 return -8. / 9. * log(
Mc /
Mb) + 8. / 27. + 16. / 9. *
Mc *
Mc / q2 - 4. / 9. * (2. + 4. *
Mc *
Mc / q2) * (sqrt(4. *
Mc *
Mc / q2 - 1.) * atan(1. / sqrt(4. *
Mc *
Mc / q2 - 1.)));
2325 return -8. / 9. * log(
Mc /
Mb) + 8. / 27. + 16. / 9. *
Mc *
Mc / q2 - 4. / 9. * (2. + 4. *
Mc *
Mc / q2) * (sqrt(1. - 4. *
Mc *
Mc / q2) * (log(1. + sqrt(1. - 4. *
Mc *
Mc / q2) / sqrt(4. *
Mc *
Mc / q2)) - gslpp::complex::i() * M_PI_2));
2328gslpp::complex MVll::DeltaC9_KD(
double q2,
int com)
2330 return ((
h_0[com] * (1. - 1. / q2) + h_2[com] / q2) / (1. + h_1[com] * (1. - q2) /
mJ2) - (3. * (-0.267) + 1.117) * funct_g(q2))*
exp_Phase[com];
2334gslpp::complex MVll::zh(
double q2)
2336 return ( sqrt(s_p - q2) - sqrt(s_p - s_0)) / (sqrt(s_p - q2) + sqrt(s_p - s_0));
2339gslpp::complex MVll::P(
double q2)
2341 gslpp::complex facmj2 = ( zh(q2) - zh(
mJ2) ) / ( 1. - zh(q2)*zh(
mJ2).conjugate() );
2342 if(fabs(q2 -
mJ2)< 1.e-5) facmj2 = 1/(4.*(
mJ2 - s_p));
2343 gslpp::complex facmPsi2S2 = ( zh(q2) - zh(
mPsi2S2) ) / ( 1. - zh(q2)*zh(
mPsi2S2).conjugate() );
2344 if(fabs(q2 -
mPsi2S2)< 1.e-5) facmPsi2S2 = 1/(4.*(
mPsi2S2 - s_p));
2346 return facmj2*facmPsi2S2;
2349gslpp::complex MVll::Phi_1(
double q2)
2351 return zh(q2)*1. - rho_0*1;
2354gslpp::complex MVll::Phi_1_st(
double q2)
2356 return 1. - rho_0*zh(q2)*1.;
2359gslpp::complex MVll::Phi_2(
double q2)
2361 return zh(q2)*Phi_1(q2) - rho_1*Phi_1_st(q2);
2364gslpp::complex MVll::Phi_2_st(
double q2)
2366 return Phi_1_st(q2) - rho_1*zh(q2)*Phi_1(q2);
2369gslpp::complex MVll::Phi_3(
double q2)
2371 return zh(q2)*Phi_2(q2) - rho_2*Phi_2_st(q2);
2374gslpp::complex MVll::Phi_3_st(
double q2)
2376 return Phi_2_st(q2) - rho_2*zh(q2)*Phi_2(q2);
2379gslpp::complex MVll::Phi_4(
double q2)
2381 return zh(q2)*Phi_3(q2) - rho_3*Phi_3_st(q2);
2384gslpp::complex MVll::Phi_4_st(
double q2)
2386 return Phi_3_st(q2) - rho_3*zh(q2)*Phi_3(q2);
2389gslpp::complex MVll::Phi_5(
double q2)
2391 return zh(q2)*Phi_4(q2) - rho_4*Phi_4_st(q2);
2394gslpp::complex MVll::Phi_5_st(
double q2)
2396 return Phi_4_st(q2) - rho_4*zh(q2)*Phi_4(q2);
2399gslpp::complex MVll::Phi_6(
double q2)
2401 return zh(q2)*Phi_5(q2) - rho_5*Phi_5_st(q2);
2404gslpp::complex MVll::Phi_6_st(
double q2)
2406 return Phi_5_st(q2) - rho_5*zh(q2)*Phi_5(q2);
2409gslpp::complex MVll::p0()
2411 return 1. / sqrt(twoalphaBtoKst);
2414gslpp::complex MVll::p1(
double q2)
2416 return Phi_1(q2) / sqrt(twoalphaBtoKst * onemrho_0_2);
2419gslpp::complex MVll::p2(
double q2)
2421 return Phi_2(q2) / sqrt(twoalphaBtoKst * onemrho_0_2 * onemrho_1_2);
2424gslpp::complex MVll::p3(
double q2)
2426 return Phi_3(q2) / sqrt(twoalphaBtoKst * onemrho_0_2 * onemrho_1_2 * onemrho_2_2);
2429gslpp::complex MVll::p4(
double q2)
2431 return Phi_4(q2) / sqrt(twoalphaBtoKst * onemrho_0_2 * onemrho_1_2 * onemrho_2_2 * onemrho_3_2);
2434gslpp::complex MVll::p5(
double q2)
2436 return Phi_5(q2) / sqrt(twoalphaBtoKst * onemrho_0_2 * onemrho_1_2 * onemrho_2_2 * onemrho_3_2 * onemrho_4_2);
2439gslpp::complex MVll::p6(
double q2)
2441 return Phi_6(q2) / sqrt(twoalphaBtoKst * onemrho_0_2 * onemrho_1_2 * onemrho_2_2 * onemrho_3_2 * onemrho_4_2 * onemrho_5_2);
2444gslpp::complex MVll::phi_1(
double q2)
2446 return - sqrt( 2.*sqrt((4.*
mD2-Q2)*(4.*
mD2-s_0)) + 8.*
mD2 - Q2 - s_0 ) / ( 2.*sqrt((4.*
mD2-Q2)*(4.*
mD2-s_0)) + 8.*
mD2 + Q2*(zh(q2)-1.) - s_0*(zh(q2)+1.) ) ;
2449gslpp::complex MVll::phi_2(
double q2)
2451 gslpp::complex zhm1_2 = (zh(q2)-1.)*(zh(q2)-1.);
2452 gslpp::complex zhp1_2 = (zh(q2)+1.)*(zh(q2)+1.);
2454 return sqrt( MM4*zhm1_2*zhm1_2 - 2.*MM2*zhm1_2*(-16.*
mD2*zh(q2) + MV2*zhm1_2 + s_0*zhp1_2) + (16.*
mD2*zh(q2) + MV2*zhm1_2 - s_0*zhp1_2)*(16.*
mD2*zh(q2) + MV2*zhm1_2 - s_0*zhp1_2) );
2457gslpp::complex MVll::phi_3(
double q2)
2459 return sqrt( 8.*
mD2 + 4.*sqrt(4.*
mD2*
mD2 -
mD2*s_0) - s_0 ) / ( -8.*
mD2 - 4.*sqrt(4.*
mD2*
mD2 -
mD2*s_0) + s_0*(zh(q2)+1.) ) ;
2462gslpp::complex MVll::phi_4(
double q2)
2464 return 1. / sqrt( s_0*(zh(q2)+1.)*(zh(q2)+1.) - 16.*
mD2*zh(q2) ) ;
2467gslpp::complex MVll::DeltaC9_zExpansion(
double q2,
int tran)
2469 gslpp::complex z = zh(q2);
2471 gslpp::complex invpref = 4.*M_PI*sqrt(2.*(4.*
mD2-s_0)/3./chiOPE)*sqrt(1+zh(q2)) * P(q2);
2474 invpref *= MM4 * pow(1.-zh(q2),4.5) * phi_1(q2)*phi_1(q2)*phi_1(q2) * sqrt(phi_2(q2)) * phi_3(q2)*phi_3(q2) * phi_4(q2)*phi_4(q2);
2476 return 1./invpref * (beta_0[0] + beta_0[1]*z + beta_0[2]*z*z + beta_0[3]*z*z*z + beta_0[4]*z*z*z*z + beta_0[5]*z*z*z*z*z + beta_0[6]*z*z*z*z*z*z);
2477 }
else if (tran == 1) {
2478 invpref *= MM2*
MM * pow(1.-zh(q2),3.5) * phi_1(q2)*phi_1(q2)*phi_1(q2) * sqrt(phi_2(q2)) * phi_3(q2)*phi_3(q2)*phi_3(q2);
2480 return 1./invpref * (beta_1[0] + beta_1[1]*z + beta_1[2]*z*z + beta_1[3]*z*z*z + beta_1[4]*z*z*z*z + beta_1[5]*z*z*z*z*z + beta_1[6]*z*z*z*z*z*z);
2482 invpref *= MM2*
MM * pow(1.-zh(q2),3.5) * phi_1(q2)*phi_1(q2)*phi_1(q2) * sqrt(phi_2(q2)) * phi_3(q2)*phi_3(q2)*phi_3(q2);
2484 return 1./invpref * (beta_2[0] + beta_2[1]*z + beta_2[2]*z*z + beta_2[3]*z*z*z + beta_2[4]*z*z*z*z + beta_2[5]*z*z*z*z*z + beta_2[6]*z*z*z*z*z*z);
2492 return DeltaC9_zExpansion(q2, 0) *
MM / sqrt(q2);
2494 return (DeltaC9_zExpansion(q2, 1) - DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2496 return (DeltaC9_zExpansion(q2, 1) + DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2498 if (hel == 0)
return SU3_breaking * (-sqrt(q2) / (MM2 * 16. * M_PI * M_PI) * ((MMpMV2 * (MM2mMV2 - q2) * A_1(q2) * DeltaC9_KD(q2, 1) - lambda(q2) * A_2(q2) * DeltaC9_KD(q2, 2)) / (4. *
MV *
MM * MMpMV)));
2499 else if (hel == 1) {
2500 if (q2 == 0.)
return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) * (
2501 (MMpMV * A_1(0.)) / (2. *
MM) * ((-
h_0[1] + h_2[1]) / (1. + h_1[1] /
mJ2)) *
exp_Phase[1]
2502 - sqrt(lambda(0.)) / (2. *
MM * MMpMV) * V(0.) * ((-
h_0[0] + h_2[0]) / (1. + h_1[0] /
mJ2)) *
exp_Phase[0]));
2503 else return SU3_breaking * (-q2 / (MM2 * 16. * M_PI * M_PI) * ((MMpMV * A_1(q2)) / (2. *
MM) * DeltaC9_KD(q2, 1) - sqrt(lambda(q2)) / (2. *
MM * MMpMV) * V(q2) * DeltaC9_KD(q2, 0)));
2505 if (q2 == 0.)
return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) *
2506 ((MMpMV * A_1(0.)) / (2. *
MM) * ((-
h_0[1] + h_2[1]) / (1. + h_1[1] /
mJ2)) *
exp_Phase[1]
2507 + sqrt(lambda(0.)) / (2. *
MM * MMpMV) * V(0.) * ((-
h_0[0] + h_2[0]) / (1. + h_1[0] /
mJ2)) *
exp_Phase[0]));
2508 else return SU3_breaking * (-q2 / (MM2 * 16. * M_PI * M_PI) * ((MMpMV * A_1(q2)) / (2. *
MM) * DeltaC9_KD(q2, 1) + sqrt(lambda(q2)) / (2. *
MM * MMpMV) * V(q2) * DeltaC9_KD(q2, 0)));
2511 if (h_pole ==
true)
return SU3_breaking * (
h_0[hel]+(1. - h_2[hel]) * q2 * (h_1[hel] -
h_0[hel]) / (q2 - h_2[hel]));
2512 else if (hel == 1)
return SU3_breaking * (
h_0[1] + h_1[1] * q2 + h_2[1] * q2 * q2 + (twoMboMM *
h_0[2] * T_p(q2) + h_1[2] * q2 / MM2 * V_p(q2)) / sixteenM_PI2);
2513 else if (hel == 2)
return SU3_breaking * (twoMboMM *
h_0[2] * T_m(q2) + h_1[2] * q2 / MM2 * V_m(q2)) / sixteenM_PI2 + h_2[2] * q2 * q2;
2514 else return SU3_breaking * ((
h_0[hel] + h_1[hel] * q2) * sqrt(q2) + (twoMboMM *
h_0[2] * T_0t(q2) + h_1[2] * q2 * V_0t(q2) / MM2) / sixteenM_PI2);
2521 return beta_0[3].real()*(-26.55265491727846*a_0A12)/a_0A12/a_0A12 +
2522 beta_0[2].real()*(-60.539167428104925*a_0A12)/a_0A12/a_0A12 +
2523 beta_0[1].real()*(-138.02728217972742*a_0A12)/a_0A12/a_0A12 +
2524 beta_0[0].real()*(-314.6975988486678*a_0A12)/a_0A12/a_0A12;
2526 return (63.24357991272575*a_0A1 - 293.67248647811704*a_0V + 66.1650673421469*a_1A1 - 46.966706577539846*a_1V)*(beta_1[0].real() - beta_2[0].real())/
2527 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2528 (-119.89709952961475*a_0A1 - 24.007514603707598*a_0V + 29.020190982985117*a_1A1 - 20.59973411156516*a_1V)*(beta_1[1].real() - beta_2[1].real())/
2529 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2530 (-117.34075946812884*a_0A1 + 35.43498229234759*a_0V + 12.728340172828181*a_1A1 - 9.035103297409211*a_1V)*(beta_1[2].real() - beta_2[2].real())/
2531 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2532 (-79.86709064819027*a_0A1 + 35.702158475408076*a_0V + 5.582687021261181*a_1A1 - 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2533 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V);
2535 return (63.24357991272575*a_0A1 + 293.67248647811704*a_0V + 66.1650673421469*a_1A1 + 46.966706577539846*a_1V)*(beta_1[0].real() + beta_2[0].real())/
2536 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2537 (-119.89709952961475*a_0A1 + 24.007514603707598*a_0V + 29.020190982985117*a_1A1 + 20.59973411156516*a_1V)*(beta_1[1].real() + beta_2[1].real())/
2538 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2539 (-117.34075946812884*a_0A1 - 35.43498229234759*a_0V + 12.728340172828181*a_1A1 + 9.035103297409211*a_1V)*(beta_1[2].real() + beta_2[2].real())/
2540 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2541 (-79.86709064819027*a_0A1 - 35.702158475408076*a_0V + 5.582687021261181*a_1A1 + 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2542 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V);
2547 if (!bar)
return -gslpp::complex::i() * NN * (((C_9 +
deltaC9_QCDF(q2, !bar, SPLINE) + Y(q2)) -
etaV * pow(-1,
angmomV) * C_9p) * V_0t(q2) +
T_0(q2, !bar) + MM2 / q2 * (twoMboMM * (C_7 +
deltaC7_QCDF(q2, !bar, SPLINE) -
etaV * pow(-1,
angmomV) * C_7p) * T_0t(q2) - sixteenM_PI2 *
h_lambda(0, q2)));
2548 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() +
deltaC9_QCDF(q2, bar, SPLINE) + Y(q2)) -
etaV * pow(-1,
angmomV) * C_9p.conjugate()) * V_0t(q2) +
T_0(q2, bar) + MM2 / q2 * (twoMboMM * (C_7.conjugate() +
deltaC7_QCDF(q2, bar, SPLINE) -
etaV * pow(-1,
angmomV) * C_7p.conjugate()) * T_0t(q2) - sixteenM_PI2 *
h_lambda(0, q2)));
2553 if (!bar)
return -gslpp::complex::i() * NN * (((C_9 +
deltaC9_QCDF(q2, !bar, SPLINE) + Y(q2)) * V_p(q2) -
etaV * pow(-1,
angmomV) * C_9p * V_m(q2)) + MM2 / q2 * (twoMboMM * ((C_7 +
deltaC7_QCDF(q2, !bar, SPLINE)) * T_p(q2) -
etaV * pow(-1,
angmomV) * C_7p * T_m(q2)) - sixteenM_PI2 *
h_lambda(1, q2)));
2554 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() +
deltaC9_QCDF(q2, bar, SPLINE) + Y(q2)) * V_p(q2) -
etaV * pow(-1,
angmomV) * C_9p.conjugate() * V_m(q2)) + MM2 / q2 * (twoMboMM * ((C_7.conjugate() +
deltaC7_QCDF(q2, bar, SPLINE)) * T_p(q2) -
etaV * pow(-1,
angmomV) * C_7p.conjugate() * T_m(q2)) - sixteenM_PI2 *
h_lambda(1, q2)));
2559 if (!bar)
return -gslpp::complex::i() * NN * (((C_9 +
deltaC9_QCDF(q2, !bar, SPLINE) + Y(q2)) * V_m(q2) -
etaV * pow(-1,
angmomV) * C_9p * V_p(q2)) +
T_minus(q2, !bar) + MM2 / q2 * (twoMboMM * ((C_7 +
deltaC7_QCDF(q2, !bar, SPLINE)) * T_m(q2) -
etaV * pow(-1,
angmomV) * C_7p * T_p(q2)) - sixteenM_PI2 *
h_lambda(2, q2)));
2560 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() +
deltaC9_QCDF(q2, bar, SPLINE) + Y(q2)) * V_m(q2) -
etaV * pow(-1,
angmomV) * C_9p.conjugate() * V_p(q2)) +
T_minus(q2, bar) + MM2 / q2 * (twoMboMM * ((C_7.conjugate() +
deltaC7_QCDF(q2, bar, SPLINE)) * T_m(q2) -
etaV * pow(-1,
angmomV) * C_7p.conjugate() * T_p(q2)) - sixteenM_PI2 *
h_lambda(2, q2)));
2565 if (!bar)
return gslpp::complex::i() * NN * (-C_10 +
etaV * pow(-1,
angmomV) * C_10p) * V_0t(q2);
2566 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() +
etaV * pow(-1,
angmomV) * C_10p.conjugate()) * V_0t(q2);
2571 if (!bar)
return gslpp::complex::i() * NN * (-C_10 * V_p(q2) +
etaV * pow(-1,
angmomV) * C_10p * V_m(q2));
2572 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_p(q2) +
etaV * pow(-1,
angmomV) * C_10p.conjugate() * V_m(q2));
2577 if (!bar)
return gslpp::complex::i() * NN * (-C_10 * V_m(q2) +
etaV * pow(-1,
angmomV) * C_10p * V_p(q2));
2578 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_m(q2) +
etaV * pow(-1,
angmomV) * C_10p.conjugate() * V_p(q2));
2585 if (!bar)
return gslpp::complex::i() * NN * MboMW * (C_S -
etaV * pow(-1,
angmomV) * C_Sp) * S_L(q2);
2586 return gslpp::complex::i() * NN_conjugate * MboMW * (C_S.conjugate() -
etaV * pow(-1,
angmomV) * C_Sp.conjugate()) * S_L(q2);
2593 if (!bar)
return gslpp::complex::i() * NN * (MboMW * (C_P -
etaV * pow(-1,
angmomV) * C_Pp) + twoMlepMb / q2 * (C_10 * (1. +
etaV * pow(-1,
angmomV) * MsoMb) - C_10p * (
etaV * pow(-1,
angmomV) + MsoMb))) * S_L(q2);
2594 return gslpp::complex::i() * NN_conjugate * (MboMW * (C_P.conjugate() -
etaV * pow(-1,
angmomV) * C_Pp.conjugate()) + twoMlepMb / q2 * (C_10.conjugate()*(1. +
etaV * pow(-1,
angmomV) * MsoMb) - C_10p.conjugate()*(
etaV * pow(-1,
angmomV) + MsoMb))) * S_L(q2);
2600 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_e -
etaV * pow(-1,
angmomV) * C_R_nunu_e) * V_0t(q2);
2601 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() -
etaV * pow(-1,
angmomV) * C_R_nunu_e.conjugate()) * V_0t(q2);
2603 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_mu -
etaV * pow(-1,
angmomV) * C_R_nunu_mu) * V_0t(q2);
2604 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() -
etaV * pow(-1,
angmomV) * C_R_nunu_mu.conjugate()) * V_0t(q2);
2606 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_tau -
etaV * pow(-1,
angmomV) * C_R_nunu_tau) * V_0t(q2);
2607 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() -
etaV * pow(-1,
angmomV) * C_R_nunu_tau.conjugate()) * V_0t(q2);
2614 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_e * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_e * V_m(q2));
2615 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_e.conjugate() * V_m(q2));
2617 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_mu * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_mu * V_m(q2));
2618 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_mu.conjugate() * V_m(q2));
2620 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_tau * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_tau * V_m(q2));
2621 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() * V_p(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_tau.conjugate() * V_m(q2));
2628 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_e * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_e * V_p(q2));
2629 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_e.conjugate() * V_p(q2));
2631 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_mu * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_mu * V_p(q2));
2632 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_mu.conjugate() * V_p(q2));
2634 if (!bar)
return -gslpp::complex::i() * NN * (C_L_nunu_tau * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_tau * V_p(q2));
2635 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() * V_m(q2) -
etaV * pow(-1,
angmomV) * C_R_nunu_tau.conjugate() * V_p(q2));
2644 double q2 = mpsi*mpsi;
2647 if(fabs(mpsi -
mJpsi) <1.e-5){
2648 double Gammaepm = 5.971/100.*(92.6*1e-6);
2649 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*
ale*
ale)/(4./9.));
2651 else if(fabs(mpsi -
mPsi2S)< 1.e-5){
2652 double Gammaepm = 7.93/1000.*(294.*1e-6);
2653 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*
ale*
ale)/(4./9.));
2658 gslpp::complex Norm =
GF*lambda_t.conjugate()*sqrt(sqrt(lambda(q2))/(2.*M_PI*
MM))*
MM*
MM/sqrt(q2)/fpsi;
2659 if(tran == 0) Norm *=
MM/sqrt(q2);
2660 return Norm*DeltaC9_zExpansion(q2,tran);
2666double MVll::k2(
double q2)
2668 return (MM4 + q2 * q2 + MV4 - twoMV2 * q2 - twoMM2 * (q2 + MV2)) / fourMM2;
2673 return sqrt(1. - 4. * Mlep2 / q2);
2676double MVll::beta2(
double q2)
2678 return 1. - 4. * Mlep2 / q2;
2681double MVll::lambda(
double q2)
2683 return (MM4 + q2 * q2 + MV4 - twoMV2 * q2 - twoMM2 * (q2 + MV2));
2686double MVll::F(
double q2,
double b_i)
2688 return sqrt(lambda(q2)) *
beta(q2) * q2 * b_i / (ninetysixM_PI3MM3);
2691double MVll::I_1c(
double q2,
bool bar)
2695 else return F(q2, b)*((
H_V_0(q2, bar).abs2() +
H_A_0(q2, bar).abs2()) / 2. +
H_P(q2, bar).abs2() + 2. * Mlep2 / q2 * (
H_V_0(q2, bar).abs2()
2696 -
H_A_0(q2, bar).abs2()) + beta2(q2) *
H_S(q2, bar).abs2());
2699double MVll::I_1s(
double q2,
bool bar)
2705 else return F(q2, b)*((beta2(q2) + 2.) / 8. * (
H_V_p(q2, bar).abs2() +
H_V_m(q2, bar).abs2() +
H_A_p(q2, bar).abs2() +
H_A_m(q2, bar).abs2()) +
2706 Mlep2 / q2 * (
H_V_p(q2, bar).abs2() +
H_V_m(q2, bar).abs2() -
H_A_p(q2, bar).abs2() -
H_A_m(q2, bar).abs2()));
2709double MVll::I_2c(
double q2,
bool bar)
2713 else return -F(q2, b) * beta2(q2) / 2. * (
H_V_0(q2, bar).abs2() +
H_A_0(q2, bar).abs2());
2716double MVll::I_2s(
double q2,
bool bar)
2722 else return F(q2, b) * beta2(q2) / 8. * (
H_V_p(q2, bar).abs2() +
H_V_m(q2, bar).abs2() +
H_A_p(q2, bar).abs2() +
H_A_m(q2, bar).abs2());
2725double MVll::I_3(
double q2,
bool bar)
2727 return -F(q2, b) * beta2(q2) / 2. * ((
H_V_p(q2, bar) *
H_V_m(q2, bar).conjugate()).real() + (
H_A_p(q2, bar) *
H_A_m(q2, bar).conjugate()).real());
2730double MVll::I_4(
double q2,
bool bar)
2732 return F(q2, b) * beta2(q2) / 4. * (((
H_V_m(q2, bar) +
H_V_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).real() + ((
H_A_m(q2, bar) +
H_A_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).real());
2735double MVll::I_5(
double q2,
bool bar)
2737 return F(q2, b)*(
beta(q2) / 2. * (((
H_V_m(q2, bar) -
H_V_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).real() + ((
H_A_m(q2, bar) -
H_A_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).real()) -
2741double MVll::I_6s(
double q2,
bool bar)
2743 return F(q2, b) *
beta(q2)*(
H_V_m(q2, bar)*(
H_A_m(q2, bar).conjugate()) -
H_V_p(q2, bar)*(
H_A_p(q2, bar).conjugate())).real();
2746double MVll::I_6c(
double q2,
bool bar)
2748 return 4. * F(q2, b) *
beta(q2) *
Mlep / sqrt(q2)*(
H_S(q2, bar).conjugate() *
H_V_0(q2, bar)).real();
2751double MVll::I_7(
double q2,
bool bar)
2753 return F(q2, b)*(
beta(q2) / 2. * (((
H_V_m(q2, bar) +
H_V_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).imag() + ((
H_A_m(q2, bar) +
H_A_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).imag()) -
2757double MVll::I_8(
double q2,
bool bar)
2759 return F(q2, b) * beta2(q2) / 4. * (((
H_V_m(q2, bar) -
H_V_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).imag() + ((
H_A_m(q2, bar) -
H_A_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).imag());
2762double MVll::I_9(
double q2,
bool bar)
2764 return F(q2, b) * beta2(q2) / 2. * ((
H_V_p(q2, bar) *
H_V_m(q2, bar).conjugate()).imag() + (
H_A_p(q2, bar) *
H_A_m(q2, bar).conjugate()).imag());
2767double MVll::h_1c(
double q2,
bool bar)
2769 return F(q2, b)*((
H_V_0(q2, bar).abs2() +
H_A_0(q2, bar).abs2()) + 2. *
H_P(q2, bar).abs2() + 4. * Mlep2 / q2 * (
H_V_0(q2, bar).abs2()
2770 -
H_A_0(q2, bar).abs2()) - 2. * beta2(q2) *
H_S(q2, bar).abs2());
2773double MVll::h_1s(
double q2,
bool bar)
2775 return F(q2, b)*((beta2(q2) + 2.) / 2. * ((
H_V_p(q2, bar) *
H_V_m(q2, bar).conjugate()).real()
2776 + (
H_A_p(q2, bar) *
H_A_m(q2, bar).conjugate()).real()) +
2777 4. * Mlep2 / q2 * ((
H_V_p(q2, bar) *
H_V_m(q2, bar).conjugate()).real()
2778 - (
H_A_p(q2, bar) *
H_A_m(q2, bar).conjugate()).real()));
2781double MVll::h_2c(
double q2,
bool bar)
2783 return -F(q2, b) * beta2(q2) * (
H_V_0(q2, bar).abs2() +
H_A_0(q2, bar).abs2());
2786double MVll::h_2s(
double q2,
bool bar)
2788 return F(q2, b) * beta2(q2) / 2. * ((
H_V_p(q2, bar) *
H_V_m(q2, bar).conjugate()).real()
2789 + (
H_A_p(q2, bar) *
H_A_m(q2, bar).conjugate()).real());
2792double MVll::h_3(
double q2,
bool bar)
2794 return -F(q2, b) * beta2(q2) / 2. * (
H_V_p(q2, bar).abs2() +
H_V_m(q2, bar).abs2()
2795 +
H_A_p(q2, bar).abs2() +
H_A_m(q2, bar).abs2());
2798double MVll::h_4(
double q2,
bool bar)
2800 return F(q2, b) * beta2(q2) / 2. * (((
H_V_m(q2, bar) +
H_V_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).real()
2801 + ((
H_A_m(q2, bar) +
H_A_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).real());
2804double MVll::h_7(
double q2,
bool bar)
2806 return F(q2, b)*(
beta(q2) * (((
H_V_m(q2, bar) +
H_V_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).imag()
2807 + ((
H_A_m(q2, bar) +
H_A_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).imag()) -
2808 beta(q2) * 2. *
Mlep / sqrt(q2)*(
H_S(q2, bar).conjugate()*(
H_V_m(q2, bar) -
H_V_p(q2, bar))).imag());
2811double MVll::s_5(
double q2,
bool bar)
2813 return beta(q2) * (2. *
Mlep * ((
H_V_m(q2, bar) +
H_V_p(q2, bar)) * F(q2, b) *
H_S(q2, bar).conjugate()).imag() / sqrt(q2)
2814 - F(q2, b)*((
H_A_m(q2, bar) -
H_A_p(q2, bar)) *
H_V_0(q2, bar).conjugate()
2815 + (
H_V_m(q2, bar) -
H_V_p(q2, bar)) *
H_A_0(q2, bar).conjugate()).imag());
2818double MVll::s_6s(
double q2,
bool bar)
2820 return 2. *
beta(q2) * F(q2, b) * (
H_A_p(q2, bar) *
H_V_m(q2, bar).conjugate() +
H_V_p(q2, bar) *
H_A_m(q2, bar).conjugate()).imag();
2823double MVll::s_6c(
double q2,
bool bar)
2825 return -8. *
beta(q2) *
Mlep * (
H_V_0(q2, bar) * F(q2, b) *
H_S(q2, bar).conjugate()).imag() / sqrt(q2);
2828double MVll::s_8(
double q2,
bool bar)
2830 return beta2(q2) * F(q2, b) * ((
H_A_m(q2, bar) -
H_A_p(q2, bar)) *
H_A_0(q2, bar).conjugate()
2831 + (
H_V_m(q2, bar) -
H_V_p(q2, bar)) *
H_V_0(q2, bar).conjugate()).real() / 2.;
2834double MVll::s_9(
double q2,
bool bar)
2836 return beta2(q2) * F(q2, b) * (
H_A_p(q2, bar).abs2() -
H_A_m(q2, bar).abs2()
2837 +
H_V_p(q2, bar).abs2() -
H_V_m(q2, bar).abs2()) / 2.;
2844 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2846 old_handler = gsl_set_error_handler_off();
2850 if (sigma0Cached[qbin] == 0) {
2851 FS = convertToGslFunction(bind(&MVll::getSigma1c, &(*
this), _1));
2852 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2853 cacheSigma0[qbin] = avaSigma;
2854 sigma0Cached[qbin] = 1;
2856 return cacheSigma0[qbin];
2859 if (sigma1Cached[qbin] == 0) {
2860 FS = convertToGslFunction(bind(&MVll::getSigma1s, &(*
this), _1));
2861 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2862 cacheSigma1[qbin] = avaSigma;
2863 sigma1Cached[qbin] = 1;
2865 return cacheSigma1[qbin];
2868 if (sigma2Cached[qbin] == 0) {
2869 FS = convertToGslFunction(bind(&MVll::getSigma2c, &(*
this), _1));
2870 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2871 cacheSigma2[qbin] = avaSigma;
2872 sigma2Cached[qbin] = 1;
2874 return cacheSigma2[qbin];
2877 if (sigma3Cached[qbin] == 0) {
2878 FS = convertToGslFunction(bind(&MVll::getSigma2s, &(*
this), _1));
2879 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2880 cacheSigma3[qbin] = avaSigma;
2881 sigma3Cached[qbin] = 1;
2883 return cacheSigma3[qbin];
2886 if (sigma4Cached[qbin] == 0) {
2887 FS = convertToGslFunction(bind(&MVll::getSigma3, &(*
this), _1));
2888 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2889 cacheSigma4[qbin] = avaSigma;
2890 sigma4Cached[qbin] = 1;
2892 return cacheSigma4[qbin];
2895 if (sigma5Cached[qbin] == 0) {
2896 FS = convertToGslFunction(bind(&MVll::getSigma4, &(*
this), _1));
2897 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2898 cacheSigma5[qbin] = avaSigma;
2899 sigma5Cached[qbin] = 1;
2901 return cacheSigma5[qbin];
2904 if (sigma6Cached[qbin] == 0) {
2905 FS = convertToGslFunction(bind(&MVll::getSigma5, &(*
this), _1));
2906 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2907 cacheSigma6[qbin] = avaSigma;
2908 sigma6Cached[qbin] = 1;
2910 return cacheSigma6[qbin];
2913 if (sigma7Cached[qbin] == 0) {
2914 FS = convertToGslFunction(bind(&MVll::getSigma6s, &(*
this), _1));
2915 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2916 cacheSigma7[qbin] = avaSigma;
2917 sigma7Cached[qbin] = 1;
2919 return cacheSigma7[qbin];
2922 if (sigma8Cached[qbin] == 0) {
2923 FS = convertToGslFunction(bind(&MVll::getSigma6c, &(*
this), _1));
2924 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2925 cacheSigma8[qbin] = avaSigma;
2926 sigma8Cached[qbin] = 1;
2928 return cacheSigma8[qbin];
2931 if (sigma9Cached[qbin] == 0) {
2932 FS = convertToGslFunction(bind(&MVll::getSigma7, &(*
this), _1));
2933 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2934 cacheSigma9[qbin] = avaSigma;
2935 sigma9Cached[qbin] = 1;
2937 return cacheSigma9[qbin];
2940 if (sigma10Cached[qbin] == 0) {
2941 FS = convertToGslFunction(bind(&MVll::getSigma8, &(*
this), _1));
2942 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2943 cacheSigma10[qbin] = avaSigma;
2944 sigma10Cached[qbin] = 1;
2946 return cacheSigma10[qbin];
2949 if (sigma11Cached[qbin] == 0) {
2950 FS = convertToGslFunction(bind(&MVll::getSigma9, &(*
this), _1));
2951 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
2952 cacheSigma11[qbin] = avaSigma;
2953 sigma11Cached[qbin] = 1;
2955 return cacheSigma11[qbin];
2958 std::stringstream out;
2960 throw std::runtime_error(
"MVll::integrateSigma: index " + out.str() +
" not implemented");
2963 gsl_set_error_handler(old_handler);
2973 return getSigma1c(q_2);
2976 return getSigma1s(q_2);
2979 return getSigma2c(q_2);
2982 return getSigma2s(q_2);
2985 return getSigma3(q_2);
2988 return getSigma4(q_2);
2991 return getSigma5(q_2);
2994 return getSigma6s(q_2);
2997 return getSigma6c(q_2);
3000 return getSigma7(q_2);
3003 return getSigma8(q_2);
3006 return getSigma9(q_2);
3009 std::stringstream out;
3011 throw std::runtime_error(
"MVll::getSigma: index " + out.str() +
" not implemented");
3019 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3021 old_handler = gsl_set_error_handler_off();
3025 if (delta0Cached[qbin] == 0) {
3026 FD = convertToGslFunction(bind(&MVll::getDelta1c, &(*
this), _1));
3027 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3028 cacheDelta0[qbin] = avaDelta;
3029 delta0Cached[qbin] = 1;
3031 return cacheDelta0[qbin];
3034 if (delta1Cached[qbin] == 0) {
3035 FD = convertToGslFunction(bind(&MVll::getDelta1s, &(*
this), _1));
3036 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3037 cacheDelta1[qbin] = avaDelta;
3038 delta1Cached[qbin] = 1;
3040 return cacheDelta1[qbin];
3043 if (delta2Cached[qbin] == 0) {
3044 FD = convertToGslFunction(bind(&MVll::getDelta2c, &(*
this), _1));
3045 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3046 cacheDelta2[qbin] = avaDelta;
3047 delta2Cached[qbin] = 1;
3049 return cacheDelta2[qbin];
3052 if (delta3Cached[qbin] == 0) {
3053 FD = convertToGslFunction(bind(&MVll::getDelta2s, &(*
this), _1));
3054 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3055 cacheDelta3[qbin] = avaDelta;
3056 delta3Cached[qbin] = 1;
3058 return cacheDelta3[qbin];
3061 if (delta6Cached[qbin] == 0) {
3062 FD = convertToGslFunction(bind(&MVll::getDelta5, &(*
this), _1));
3063 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3064 cacheDelta6[qbin] = avaDelta;
3065 delta6Cached[qbin] = 1;
3067 return cacheDelta6[qbin];
3070 if (delta7Cached[qbin] == 0) {
3071 FD = convertToGslFunction(bind(&MVll::getDelta6s, &(*
this), _1));
3072 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3073 cacheDelta7[qbin] = avaDelta;
3074 delta7Cached[qbin] = 1;
3076 return cacheDelta7[qbin];
3079 if (delta8Cached[qbin] == 0) {
3080 FD = convertToGslFunction(bind(&MVll::getDelta6c, &(*
this), _1));
3081 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3082 cacheDelta8[qbin] = avaDelta;
3083 delta8Cached[qbin] = 1;
3085 return cacheDelta8[qbin];
3088 if (delta10Cached[qbin] == 0) {
3089 FD = convertToGslFunction(bind(&MVll::getDelta8, &(*
this), _1));
3090 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3091 cacheDelta10[qbin] = avaDelta;
3092 delta10Cached[qbin] = 1;
3094 return cacheDelta10[qbin];
3097 if (delta11Cached[qbin] == 0) {
3098 FD = convertToGslFunction(bind(&MVll::getDelta9, &(*
this), _1));
3099 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3100 cacheDelta11[qbin] = avaDelta;
3101 delta11Cached[qbin] = 1;
3103 return cacheDelta11[qbin];
3106 std::stringstream out;
3108 throw std::runtime_error(
"MVll::integrateDelta: index " + out.str() +
" not implemented");
3111 gsl_set_error_handler(old_handler);
3121 double q_cut = (mtau2 - MV2) * (MM2 - mtau2) / mtau2;
3122 if (q_max >= q_cut) {
3127 double prefactor =
mySM.
getMesons(
meson).
getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (64. * M_PI2 * MM3 * Gammatau) * mtau2 * mtau;
3129 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3131 old_handler = gsl_set_error_handler_off();
3133 if (sigmaTreeCached[qbin] == 0) {
3135 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_sigmaTree, &avaSigmaTree, &errSigmaTree, NULL) != 0)
return std::numeric_limits<double>::quiet_NaN();
3136 cacheSigmaTree[qbin] = avaSigmaTree;
3137 sigmaTreeCached[qbin] = 1;
3139 return prefactor * cacheSigmaTree[qbin];
3141 gsl_set_error_handler(old_handler);
3146 return (MM2 - mtau2) * (mtau2 - MV2) - q2 * (mtau2 - 2. * MV2);
3151 return mySM.
getMesons(
meson).
getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (128. * M_PI2 * MM3 * Gammatau) * mtau * (mtau2 - MV2) * (mtau2 - MV2) * (MM2 - mtau2) * (MM2 - mtau2) * (1. + 2.* MV2 / mtau2);
const gslpp::complex computelamt_s() const
The product of the CKM elements .
const gslpp::complex computelamu_s() const
The product of the CKM elements .
bool getFlagMVll_DM() const
bool getFlagUseDispersionRelation() const
gslpp::vector< gslpp::complex > ** ComputeCoeffsnunu(QCD::lepton lepton=QCD::NOLEPTON, bool noSM=false) const
bool getFlagFixedWCbtos() const
bool getFlagNeutrinoTree() const
void setUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i, bool updated_i) const
sets the update flag for the initial and final state dependent object for .
gslpp::vector< gslpp::complex > ** ComputeCoeffprimeBMll(double mu, QCD::lepton lepton, schemes scheme=NDR) const
Computes the chirality flipped Wilson coefficient for the process .
bool getUpdateFlag(QCD::meson meson_i, QCD::meson meson_j, QCD::lepton lep_i) const
gets the update flag for the initial and final state dependent object for .
gslpp::vector< gslpp::complex > ** ComputeCoeffBMll(double mu, QCD::lepton lepton, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
bool getFlagUsezExpansion() const
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
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 phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
gslpp::complex H_m_nunu(double q2, bool bar, QCD::lepton lep)
The helicity amplitude for the invisible decay .
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)
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.
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.
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 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)
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 .
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.
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 H_V_p(double q2, bool bar)
The helicity amplitude .
gslpp::complex lambda_B_minus(double q2)
gslpp::complex T_0(double q2, bool conjugate)
gslpp::complex h_lambda(int hel, double q2)
The non-pertubative ccbar contributions to the helicity amplitudes.
gslpp::complex exp_Phase[3]
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.
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.
gslpp::complex B0diff(double q2, double u, double m2)
double Delta_C9_zExp(int hel)
The non-pertubative ccbar contributions to the helicity amplitudes.
gslpp::complex H_A_0(double q2, bool bar)
The helicity amplitude .
double SigmaTree(double q2)
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)
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 beta(double q2)
The factor used in the angular coefficients .
const double & getLambdaM() const
const double & getDecayconst_p() const
A get method for the perpendicular decay constant of a vector meson.
const double & getDgamma_gamma() const
double computeWidth() const
A method to compute the width of the meson from its lifetime.
const double & getDecayconst() const
A get method for the decay constant of the meson.
const double & getGegenalpha(int i) const
A get method to get the Gegenbaur coefficient.
double getLifetime() const
A get method for the lifetime of the meson.
const double & getMass() const
A get method to access the particle mass.
double getCharge() const
A get method to access the particle charge.
meson
An enum type for mesons.
const double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
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.
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
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 Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
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 Flavour & getFlavour() const
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.
const double getAle() const
A get method to retrieve the fine-structure constant .
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 .