11#include "std_make_vector.h"
12#include "gslpp_function_adapter.h"
16#include <boost/bind/bind.hpp>
18#include <gsl/gsl_sf_zeta.h>
19#include <gsl/gsl_sf_gegenbauer.h>
20using namespace boost::placeholders;
23:
SM(SM_i), myF_1(new
F_1()), myF_2(new
F_2())
34 mPsi2S2 = mPsi2S * mPsi2S;
35 mD2 = 1.8648 * 1.8648;
36 SM.getFlavour().getDB2(0);
37 SM.getFlavour().getDB2(1);
39 w_GSL = gsl_integration_cquad_workspace_alloc (100);
47 dispersion =
SM.getFlavour().getFlagUseDispersionRelation();
48 zExpansion =
SM.getFlavour().getFlagUsezExpansion();
49 FixedWCbtos =
SM.getFlavour().getFlagFixedWCbtos();
50 MVll_DM_flag =
SM.getFlavour().getFlagMVll_DM();
52#if NFPOLARBASIS_MVGAMMA
54 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
55 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
56 "a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
57 "a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg" <<
58 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
59 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg"
61 else mVgammaParameters = make_vector<std::string>() <<
62 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
63 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg"
66 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
67 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
68 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
69 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
70 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
71 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m"
73 else mVgammaParameters = make_vector<std::string>() <<
"a_0T1" <<
"a_0A1" <<
"a_0V" <<
74 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m"
77 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
78 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m"
81 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
82 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m"
86 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
87 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
88 "a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
89 "a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg" <<
90 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
91 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg"
93 else mVgammaParameters = make_vector<std::string>() <<
94 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
95 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg"
98 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
99 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
100 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
101 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
102 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
103 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m"
105 else mVgammaParameters = make_vector<std::string>() <<
106 "a_0T1" <<
"a_0A1" <<
"a_0V" <<
107 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m"
110 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
111 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m"
114 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
115 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m"
119 std::stringstream out;
121 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
125 mVgammaParameters.clear();
127 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
128 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
129 "a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
130 "a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg" <<
131 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
132 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
133 else mVgammaParameters = make_vector<std::string>() <<
134 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
135 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
137 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
138 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
139 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
140 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
141 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
142 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
143 else mVgammaParameters = make_vector<std::string>() <<
144 "a_0T1" <<
"a_0A1" <<
"a_0V" <<
145 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
147 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
148 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
150 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
151 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
153 std::stringstream out;
155 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
160 mVgammaParameters.clear();
162 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
163 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1"
164 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf"
165 <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
166 <<
"Chi1minus" <<
"Chi1plus" <<
"ChiTT"
167 <<
"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"
168 <<
"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"
169 <<
"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"
170 <<
"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" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
171 else mVgammaParameters = make_vector<std::string>() <<
172 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi"
173 <<
"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"
174 <<
"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"
175 <<
"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"
176 <<
"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" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
178 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
179 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1"
180 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf"
181 <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
182 <<
"Chi1minus" <<
"Chi1plus" <<
"ChiTT"
183 <<
"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"
184 <<
"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"
185 <<
"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"
186 <<
"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";
187 else mVgammaParameters = make_vector<std::string>() <<
188 "a_0T1" <<
"a_0A1" <<
"a_0V"
189 <<
"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"
190 <<
"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"
191 <<
"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"
192 <<
"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";
194 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho"
195 <<
"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"
196 <<
"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"
197 <<
"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"
198 <<
"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";
200 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega"
201 <<
"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"
202 <<
"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"
203 <<
"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"
204 <<
"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";
206 std::stringstream out;
208 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
212 if (FixedWCbtos) mVgammaParameters.push_back(
"C7_SM" );
214 SM.initializeMeson(meson);
215 SM.initializeMeson(vectorM);
216 return mVgammaParameters;
221 if (!
SM.getFlavour().getUpdateFlag(meson, vectorM,
QCD::NOLEPTON))
return;
225 MM =
SM.getMesons(meson).getMass();
227 MV =
SM.getMesons(vectorM).getMass();
235 fB =
SM.getMesons(meson).getDecayconst();
236 width =
SM.getMesons(meson).computeWidth();
248 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
249 a_1T1 =
SM.getOptionalParameter(
"a_1T1");
250 a_2T1 =
SM.getOptionalParameter(
"a_2T1");
251 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
252 a_0f =
SM.getOptionalParameter(
"a_0f");
253 a_1f =
SM.getOptionalParameter(
"a_1f");
254 a_2f =
SM.getOptionalParameter(
"a_2f");
255 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
256 a_0g =
SM.getOptionalParameter(
"a_0g");
257 a_1g =
SM.getOptionalParameter(
"a_1g");
258 a_2g =
SM.getOptionalParameter(
"a_2g");
259 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
261 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
262 ChiTT =
SM.getOptionalParameter(
"ChiTT");
265 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
266 a_0A1 =
SM.getOptionalParameter(
"a_0A1");
267 a_0V =
SM.getOptionalParameter(
"a_0V");
276 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
277 a_1T1 =
SM.getOptionalParameter(
"a_1T1");
278 a_2T1 =
SM.getOptionalParameter(
"a_2T1");
279 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
280 a_0f =
SM.getOptionalParameter(
"a_0f");
281 a_1f =
SM.getOptionalParameter(
"a_1f");
282 a_2f =
SM.getOptionalParameter(
"a_2f");
283 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
284 a_0g =
SM.getOptionalParameter(
"a_0g");
285 a_1g =
SM.getOptionalParameter(
"a_1g");
286 a_2g =
SM.getOptionalParameter(
"a_2g");
287 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
289 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
290 ChiTT =
SM.getOptionalParameter(
"ChiTT");
293 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
294 a_0A1 =
SM.getOptionalParameter(
"a_0A1");
295 a_0V =
SM.getOptionalParameter(
"a_0V");
304 a_0T1 =
SM.getOptionalParameter(
"a_0T1phi");
305 a_1T1 =
SM.getOptionalParameter(
"a_1T1phi");
306 a_2T1 =
SM.getOptionalParameter(
"a_2T1phi");
307 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
308 a_0f =
SM.getOptionalParameter(
"a_0fphi");
309 a_1f =
SM.getOptionalParameter(
"a_1fphi");
310 a_2f =
SM.getOptionalParameter(
"a_2fphi");
311 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
312 a_0g =
SM.getOptionalParameter(
"a_0gphi");
313 a_1g =
SM.getOptionalParameter(
"a_1gphi");
314 a_2g =
SM.getOptionalParameter(
"a_2gphi");
315 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
317 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
318 ChiTT =
SM.getOptionalParameter(
"ChiTT");
321 a_0T1 =
SM.getOptionalParameter(
"a_0T1phi");
322 a_0A1 =
SM.getOptionalParameter(
"a_0A1phi");
323 a_0V =
SM.getOptionalParameter(
"a_0Vphi");
328 SU3_breaking = gslpp::complex(1. +
SM.getOptionalParameter(
"SU3_breaking_abs"),
329 SM.getOptionalParameter(
"SU3_breaking_arg"),
true);
332 a_0T1 =
SM.getOptionalParameter(
"a_0T1rho");
333 a_0A1 =
SM.getOptionalParameter(
"a_0A1rho");
334 a_0V =
SM.getOptionalParameter(
"a_0Vrho");
341 a_0T1 =
SM.getOptionalParameter(
"a_0T1rho");
342 a_0A1 =
SM.getOptionalParameter(
"a_0A1rho");
343 a_0V =
SM.getOptionalParameter(
"a_0Vrho");
350 a_0T1 =
SM.getOptionalParameter(
"a_0T1omega");
351 a_0A1 =
SM.getOptionalParameter(
"a_0A1omega");
352 a_0V =
SM.getOptionalParameter(
"a_0Vomega");
359 std::stringstream out;
361 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
364 fpara =
SM.getMesons(vectorM).getDecayconst();
365 fperp =
SM.getMesons(vectorM).getDecayconst_p();
373 beta_1[0] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_0"),
SM.getOptionalParameter(
"im_beta_1_0"),
false);
374 beta_1[1] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_1"),
SM.getOptionalParameter(
"im_beta_1_1"),
false);
375 beta_1[2] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_2"),
SM.getOptionalParameter(
"im_beta_1_2"),
false);
376 beta_1[3] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_3"),
SM.getOptionalParameter(
"im_beta_1_3"),
false);
377 beta_1[4] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_4"),
SM.getOptionalParameter(
"im_beta_1_4"),
false);
378 beta_1[5] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_5"),
SM.getOptionalParameter(
"im_beta_1_5"),
false);
379 beta_1[6] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_6"),
SM.getOptionalParameter(
"im_beta_1_6"),
false);
381 beta_2[0] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_0"),
SM.getOptionalParameter(
"im_beta_2_0"),
false);
382 beta_2[1] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_1"),
SM.getOptionalParameter(
"im_beta_2_1"),
false);
383 beta_2[2] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_2"),
SM.getOptionalParameter(
"im_beta_2_2"),
false);
384 beta_2[3] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_3"),
SM.getOptionalParameter(
"im_beta_2_3"),
false);
385 beta_2[4] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_4"),
SM.getOptionalParameter(
"im_beta_2_4"),
false);
386 beta_2[5] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_5"),
SM.getOptionalParameter(
"im_beta_2_5"),
false);
387 beta_2[6] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_6"),
SM.getOptionalParameter(
"im_beta_2_6"),
false);
391 }
else if (dispersion) {
396 r1_1 =
SM.getOptionalParameter(
"r1_1");
397 r1_2 =
SM.getOptionalParameter(
"r1_2");
398 r2_1 =
SM.getOptionalParameter(
"r2_1");
399 r2_2 =
SM.getOptionalParameter(
"r2_2");
402 exp_Phase_1 = exp(gslpp::complex::i()*
SM.getOptionalParameter(
"phDC9_1"));
403 exp_Phase_2 = exp(gslpp::complex::i()*
SM.getOptionalParameter(
"phDC9_2"));
408#if NFPOLARBASIS_MVGAMMA
409 h[0] = gslpp::complex(
SM.getOptionalParameter(
"absh_p"),
SM.getOptionalParameter(
"argh_p"),
true);
410 h[1] = gslpp::complex(
SM.getOptionalParameter(
"absh_m"),
SM.getOptionalParameter(
"argh_m"),
true);
411 h[1] *= 2. * (
Mb /
MM) / (16. * M_PI * M_PI) * (T_1() *
lambda /
MM2) ;
412 h[0] += ms_over_mb *
h[1] ;
423 Delta_C7_U =
SM.getOptionalParameter(
"Delta_C7_U");
425 h[0] = gslpp::complex(
SM.getOptionalParameter(
"reh_p"),
SM.getOptionalParameter(
"imh_p"),
false);
426 h[1] = gslpp::complex(
SM.getOptionalParameter(
"reh_m"),
SM.getOptionalParameter(
"imh_m"),
false);
427 h[1] *= 2. * (
Mb /
MM) / (16. * M_PI * M_PI) * (T_1() *
lambda /
MM2) ;
428 h[0] += ms_over_mb *
h[1] ;
439 Delta_C7_U =
SM.getOptionalParameter(
"Delta_C7_U");
445 allcoeffprime =
SM.getFlavour().ComputeCoeffprimeBMll(
mu_b,
QCD::MU);
447 C_1 = (*(allcoeff[
LO]))(0) + (*(allcoeff[
NLO]))(0);
448 C_2 = (*(allcoeff[
LO]))(1) + (*(allcoeff[
NLO]))(1);
449 C_3 = (*(allcoeff[
LO]))(2) + (*(allcoeff[
NLO]))(2);
450 C_4 = (*(allcoeff[
LO]))(3) + (*(allcoeff[
NLO]))(3);
451 C_5 = (*(allcoeff[
LO]))(4) + (*(allcoeff[
NLO]))(4);
452 C_6 = (*(allcoeff[
LO]))(5) + (*(allcoeff[
NLO]))(5);
453 C_8 = (*(allcoeff[
LO]))(7) + (*(allcoeff[
NLO]))(7);
457 C_7 =
SM.getOptionalParameter(
"C7_SM") + ((*(allcoeff_noSM[
LO]))(6) + (*(allcoeff_noSM[
NLO]))(6));
459 else C_7 = ((*(allcoeff[
LO]))(6) + (*(allcoeff[
NLO]))(6));
460 C_7p = ms_over_mb * ((*(allcoeffprime[
LO]))(6) + (*(allcoeffprime[
NLO]))(6));
463 C_7p += ms_over_mb * (-C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6);
465 if (!zExpansion && !dispersion) {
470 allcoeff =
SM.getFlavour().ComputeCoeffsgamma(
mu_b);
471 allcoeffprime =
SM.getFlavour().ComputeCoeffprimesgamma(
mu_b);
473 C_1 = (*(allcoeff[
LO]))(0) + (*(allcoeff[
NLO]))(0);
474 C_2 = (*(allcoeff[
LO]))(1) + (*(allcoeff[
NLO]))(1);
475 C_3 = (*(allcoeff[
LO]))(2) + (*(allcoeff[
NLO]))(2);
476 C_4 = (*(allcoeff[
LO]))(3) + (*(allcoeff[
NLO]))(3);
477 C_5 = (*(allcoeff[
LO]))(4) + (*(allcoeff[
NLO]))(4);
478 C_6 = (*(allcoeff[
LO]))(5) + (*(allcoeff[
NLO]))(5);
479 C_8 = (*(allcoeff[
LO]))(7) + (*(allcoeff[
NLO]))(7);
482 allcoeff_noSM =
SM.getFlavour().ComputeCoeffsgamma(
mu_b,
true);
483 C_7 =
SM.getOptionalParameter(
"C7_SM") + ((*(allcoeff_noSM[
LO]))(6) + (*(allcoeff_noSM[
NLO]))(6));
485 else C_7 = ((*(allcoeff[
LO]))(6) + (*(allcoeff[
NLO]))(6)););
486 C_7p = (*(allcoeffprime[
LO]))(6) + (*(allcoeffprime[
NLO]))(6);
488 C_7p += -ms_over_mb * C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6;
495 T_perp_bar_real = 0.;
496 T_perp_bar_imag = 0.;
498 DC7_QCDF = deltaC7_QCDF(
false);
499 DC7_QCDF_bar = deltaC7_QCDF(
true);
501 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
503 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_integrand_real, &(*
this), _1));
504 if (gsl_integration_cquad(&f_GSL, 0., 1., 1.e-2, 1.e-1, w_GSL, &average, &error, NULL) != 0) T_perp_real = std::numeric_limits<double>::quiet_NaN();
505 T_perp_real = average;
507 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_integrand_imag, &(*
this), _1));
508 if (gsl_integration_cquad(&f_GSL, 0., 1., 1.e-2, 1.e-1, w_GSL, &average, &error, NULL) != 0) T_perp_imag = std::numeric_limits<double>::quiet_NaN();
509 T_perp_imag = average;
511 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_bar_integrand_real, &(*
this), _1));
512 if (gsl_integration_cquad(&f_GSL, 0., 1., 1.e-2, 1.e-1, w_GSL, &average, &error, NULL) != 0) T_perp_bar_real = std::numeric_limits<double>::quiet_NaN();
513 T_perp_bar_real = average;
515 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_bar_integrand_imag, &(*
this), _1));
516 if (gsl_integration_cquad(&f_GSL, 0., 1., 1.e-2, 1.e-1, w_GSL, &average, &error, NULL) != 0) T_perp_bar_imag = std::numeric_limits<double>::quiet_NaN();
517 T_perp_bar_imag = average;
519 gsl_set_error_handler(old_handler);
524 s_0 = s_p - sqrt(s_p * (s_p - mPsi2S2));
535double MVgamma::phi_f(
double MRf_2)
538 double z_M = (sqrt(
t_p - MRf_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRf_2) + sqrt(
t_p -
t_m));
540 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);
543double MVgamma::phi_g(
double MRg_2)
546 double z_M = (sqrt(
t_p - MRg_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRg_2) + sqrt(
t_p -
t_m));
548 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);
551double MVgamma::phi_T1(
double MRT1_2)
554 double z_M = (sqrt(
t_p - MRT1_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRT1_2) + sqrt(
t_p -
t_m));
556 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);
559double MVgamma::f_DM(
double a_0f,
double a_1f,
double a_2f,
double MRf_2)
561 return (a_0f + a_1f*
z_DM + a_2f*
z_DM*
z_DM) / phi_f(MRf_2);
564double MVgamma::g_DM(
double a_0g,
double a_1g,
double a_2g,
double MRg_2)
566 return (a_0g + a_1g*
z_DM + a_2g*
z_DM*
z_DM) / phi_g(MRg_2);
569double MVgamma::T1_DM(
double a_0T1,
double a_1T1,
double a_2T1,
double MRT1_2)
571 return (a_0T1 + a_1T1*
z_DM + a_2T1*
z_DM*
z_DM) / phi_T1(MRT1_2);
576 if (MVll_DM_flag)
return T1_DM(a_0T1, a_1T1, a_2T1, MRT1_2);
580gslpp::complex MVgamma::deltaC7_QCDF(
bool conjugate)
585#if FULLNLOQCDF_MVGAMMA
586 gslpp::complex A_Seidel = 1./729. * (833. + 120.*gslpp::complex::i()*M_PI - 312. * log(
mb_pole*
mb_pole/
mu_b/
mu_b));
587 gslpp::complex Fu_17 = -A_Seidel;
588 gslpp::complex Fu_27 = 6. * A_Seidel;
590 gslpp::complex F_17 = myF_1->F_17re(muh, z, 0.00001, 20) + gslpp::complex::i() * myF_1->F_17im(muh, z, 0.00001, 20);
591 gslpp::complex F_27 = myF_2->F_27re(muh, z, 0.00001, 20) + gslpp::complex::i() * myF_2->F_27im(muh, z, 0.00001, 20);
592 gslpp::complex F_87 = (-4.*(33. + 24.*log(muh) + 6.*gslpp::complex::i()*M_PI - 2.*M_PI*M_PI))/27.;
595 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
596 gslpp::complex delta_t = C_8 * F_87 + delta;
597#if FULLNLOQCDF_MVGAMMA
598 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
599 return -alpha_s_mub / (4. * M_PI) * (delta_t -
lambda_u /
lambda_t * delta_u);
601 return -alpha_s_mub / (4. * M_PI) * delta_t;
604 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
605 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
606#if FULLNLOQCDF_MVGAMMA
607 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
608 return -alpha_s_mub / (4. * M_PI) * (delta_t - (
lambda_u /
lambda_t).conjugate() * delta_u);
610 return -alpha_s_mub / (4. * M_PI) * delta_t;
615gslpp::complex MVgamma::Cq34(
bool conjugate)
617 gslpp::complex T_t = C_3 + 4./3.*(C_4 + 12.*C_5 + 16.*C_6);
618 gslpp::complex T_u = 0.;
619 if (meson ==
QCD::B_P) T_u = -3.*C_2;
620 else if (vectorM ==
QCD::PHI) T_t = T_t + 6.*(C_3 + 10.*C_5);
621 else if (vectorM ==
QCD::RHO) T_u = 4./3.*C_1 + C_2;
623 T_u = -4./3.*C_1 + C_2;
624 T_t = T_t + 6.*2.*(C_3 + 10.*C_5);
630gslpp::complex MVgamma::T_perp_WA_1()
635gslpp::complex MVgamma::T_perp_WA_2(
bool conjugate)
640gslpp::complex MVgamma::L1(gslpp::complex x)
642 if (x == 0.)
return -(M_PI*M_PI/6.);
643 if (x == 1.)
return 0.;
644 else return log((x-1.)/x)*log(1.-x) - (M_PI*M_PI/6.) + dilog(x/(x-1.));
647double MVgamma::phi_V(
double u)
649 return 6.* u * (1. - u) * (1. +
SM.getMesons(vectorM).getGegenalpha(0) * gsl_sf_gegenpoly_1(3./2., (2.*u - 1.)) +
SM.getMesons(vectorM).getGegenalpha(1) * gsl_sf_gegenpoly_2(3./2., (2.*u - 1.)));
652gslpp::complex MVgamma::t_perp(
double u,
double m)
654 double ubar = 1. - u;
655 gslpp::complex x0 = sqrt(0.25 - (m*m - gslpp::complex::i()*1.e-10)/(ubar *
MM2));
656 gslpp::complex xp = 0.5 + x0;
657 gslpp::complex xm = 0.5 - x0;
659 return 4./ubar * (1. + 2.*(m*m - gslpp::complex::i()*1.e-10)/(ubar*
MM2) * (L1(xp) + L1(xm)));
662gslpp::complex MVgamma::T_perp_plus_QSS(
double u,
bool conjugate)
664 gslpp::complex t_perp_mc = t_perp(u,
mc_pole);
666#if FULLNLOQCDF_MVGAMMA
667 gslpp::complex t_perp_0 = t_perp(u, 0.);
669 gslpp::complex T_t = (alpha_s_mub/(3.*M_PI))*
MM/(2.*
mb_pole)*(eu * t_perp_mc * (-C_1/6. + C_2 + 6.*C_6)
670 + ed * t_perp(u,
mb_pole) * (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.))
671 + ed * t_perp_0 * (-C_3 + C_4/6. - 16.*C_5 + 8.*C_6/3.));
673 gslpp::complex T_u = ((alpha_s_mub/(3.*M_PI))*eu*
MM/(2.*
mb_pole)*(t_perp_mc - t_perp_0)*(C_2 - C_1/6.));
677 return (alpha_s_mub/(3.*M_PI))*
MM/(2.*
mb_pole)*(eu * t_perp_mc * (-C_1/6. + C_2 + 6.*C_6));
681gslpp::complex MVgamma::T_perp_plus_O8(
double u)
683 return -(alpha_s_mub/(3.*M_PI))*4.*(-1./3.)*C_8/u;
686gslpp::complex MVgamma::T_perp(
double u,
bool conjugate)
689 gslpp::complex T_amp = N/
SM.getMesons(meson).getLambdaM() * phi_V(u) * (T_perp_plus_O8(u) + T_perp_plus_QSS(u, conjugate));
690#if FULLNLOQCDF_MVGAMMA
691 double ubar = 1. - u;
692 T_amp += N * phi_V(u)/ubar * T_perp_WA_1() + N/
SM.getMesons(meson).getLambdaM() *
fpara/
fperp *
MV * T_perp_WA_2(conjugate);
698gslpp::complex MVgamma::T_QCDF_minus(
bool conjugate)
700 if (!conjugate)
return (T_perp_real + gslpp::complex::i() * T_perp_imag);
701 else return (T_perp_bar_real + gslpp::complex::i() * T_perp_bar_imag);
708 gslpp::complex MVgamma::zh(
double q2)
710 return ( sqrt(s_p - q2) - sqrt(s_p - s_0)) / (sqrt(s_p - q2) + sqrt(s_p - s_0));
713gslpp::complex MVgamma::P()
715 gslpp::complex facmj2 = ( zh(0.) - zh(mJ2) ) / ( 1. - zh(0.)*zh(mJ2).conjugate() );
716 if(fabs(0. - mJ2)< 1.e-5) facmj2 = 1/(4.*(mJ2 - s_p));
717 gslpp::complex facmPsi2S2 = ( zh(0.) - zh(mPsi2S2) ) / ( 1. - zh(0.)*zh(mPsi2S2).conjugate() );
718 if(fabs(0. - mPsi2S2)< 1.e-5) facmPsi2S2 = 1/(4.*(mPsi2S2 - s_p));
720 return facmj2*facmPsi2S2;
723 gslpp::complex MVgamma::phi_1()
725 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(0.)-1.) - s_0*(zh(0.)+1.) ) ;
728gslpp::complex MVgamma::phi_2()
730 gslpp::complex zhm1_2 = (zh(0.)-1.)*(zh(0.)-1.);
731 gslpp::complex zhp1_2 = (zh(0.)+1.)*(zh(0.)+1.);
733 return sqrt(
MM2*
MM2*zhm1_2*zhm1_2 - 2.*
MM2*zhm1_2*(-16.*mD2*zh(0.) +
MV*
MV*zhm1_2 + s_0*zhp1_2) + (16.*mD2*zh(0.) +
MV*
MV*zhm1_2 - s_0*zhp1_2)*(16.*mD2*zh(0.) +
MV*
MV*zhm1_2 - s_0*zhp1_2) );
736gslpp::complex MVgamma::phi_3()
738 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(0.)+1.) ) ;
741 gslpp::complex MVgamma::DeltaC9_zExpansion(
int tran)
743 gslpp::complex z = zh(0.);
745 gslpp::complex invpref = 4.*M_PI*sqrt(2.*(4.*mD2-s_0)/3./chiOPE)*sqrt(1+zh(0.)) * P();
748 invpref *=
MM2*
MM * pow(1.-z,3.5) * phi_1()*phi_1()*phi_1() * sqrt(phi_2()) * phi_3()*phi_3()*phi_3();
750 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);
752 invpref *=
MM2*
MM * pow(1.-z,3.5) * phi_1()*phi_1()*phi_1() * sqrt(phi_2()) * phi_3()*phi_3()*phi_3();
754 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);
758gslpp::complex MVgamma::h_lambda(
int hel)
764 A1 = f_DM(a_0f,a_1f,a_2f,MRf_2)/(
MM+
MV);
765 V = g_DM(a_0g,a_1g,a_2g,MRg_2)*(
MM+
MV)/2.;
777 return (DeltaC9_zExpansion(1) - DeltaC9_zExpansion(2)) / sqrt(2.);
785 return (DeltaC9_zExpansion(1) + DeltaC9_zExpansion(2)) / sqrt(2.);
788 std::stringstream out;
790 throw std::runtime_error(
"MVgamma: hel " + out.str() +
" not implemented, can only be 1 (+) or 2 (-)");
794gslpp::complex MVgamma::H_V_m()
799gslpp::complex MVgamma::H_V_p()
804gslpp::complex MVgamma::H_V_m_bar()
806 return lambda_t.conjugate() * (((C_7 + DC7_QCDF_bar) * T_1() +
MM2/(
MM2 -
MV*
MV) * T_QCDF_minus(
true)) *
lambda /
MM2 -
MM / (2. *
Mb)*16. * M_PI * M_PI *
h[1]);
809gslpp::complex MVgamma::H_V_p_bar()
853 ADG = 2.*(exp(gslpp::complex::i()*
arg)*(HVp.conjugate()*HVm_bar + HVm.conjugate()*HVp_bar)).real() / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
858 std::stringstream out;
860 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
866 double MM2 = MM * MM;
870 double lambda = MM2 - pow(MV, 2.);
873 return ale * pow(GF * Mb / (4 * M_PI * M_PI), 2.) * MM * lambda / (4. * width) * (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2()) *
t_int;
936 double CC = ((HVp.abs2() + HVm.abs2() - HVp_bar.abs2() - HVm_bar.abs2())) / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
980 double CC = ((HVp.abs2() + HVm.abs2() - HVp_bar.abs2() - HVm_bar.abs2())) / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
1013 std::stringstream out;
1015 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
1020 return 2.*(exp(gslpp::complex::i()*
arg)*(HVp.conjugate()*HVm_bar + HVm.conjugate()*HVp_bar)).imag() / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
1049 std::stringstream out;
1051 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
1056 return 2.*(exp(gslpp::complex::i()*
arg)*(HVp.conjugate()*HVm_bar + HVm.conjugate()*HVp_bar)).real() / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
1208 double MM2 = MM * MM;
1229 double MM2 = MM * MM;
1250 double MM2 = MM * MM;
1271 double MM2 = MM * MM;
1292 double MM2 = MM * MM;
1313 double MM2 = MM * MM;
A class for the parameter of CPV in decay.
double computeACP_MVgamma(QCD::meson meson, QCD::meson vector)
The parameter of CPV in .
ACP_MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The parameter for CPV in .
ADG_MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
AbsDC7_L(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
AbsDC7_QCDF_bar(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
AbsDC7_QCDF(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
double computeThValue()
The in .
AbsDC7_R(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
gslpp::complex getM21(orders order)
The value of for mesons.
A class for the in decay.
BR_MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeBR_MVgamma(QCD::meson meson, QCD::meson vector)
The in .
double computeThValue()
The parameter of CPV in .
C_MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
D0p_MVgamma(const StandardModel &SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2)
Constructor.
double computeThValue()
The in .
DACP_MVgamma(const StandardModel &SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2)
Constructor.
double computeThValue()
The in .
DC7_1(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
DC7_2(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
AmpDB2 & getDB2(int BMeson_i, bool flag_fixmub=false, bool flag_RI=false) const
Returns a reference to the meson dependent object for processes.
MVgamma & getMVgamma(QCD::meson meson_i, QCD::meson vector_i) const
Returns the initial and final state dependent object for .
double computeThValue()
The in .
ImDC7_L(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
ImDC7_QCDF_bar(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
ImDC7_QCDF(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
ImDC7_R(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
void updateParameters()
The update parameter method for MVgamma.
virtual ~MVgamma()
Destructor.
std::vector< std::string > initializeMVgammaParameters()
A method for initializing the parameters necessary for MVgamma.
gslpp::complex SU3_breaking
gslpp::complex exp_Phase_1
gslpp::complex exp_Phase_2
MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
const double & getDgamma_gamma() const
double computeWidth() const
A method to compute the width of the meson from its lifetime.
const double & getMass() const
A get method to access the particle mass.
meson
An enum type for mesons.
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
R_MVgamma(const StandardModel &SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2)
Constructor.
double computeThValue()
The in .
double computeThValue()
The in .
ReDC7_L(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
ReDC7_QCDF_bar(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
double computeThValue()
The in .
ReDC7_QCDF(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The in .
ReDC7_R(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
S_MVgamma(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The parameter for CPV in .
A model class for the Standard Model.
const Flavour & getFlavour() const
const double getGF() const
A get method to retrieve the Fermi constant .
const double getAle() const
A get method to retrieve the fine-structure constant .
A class for a model prediction of an observable.
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
const StandardModel & SM
A reference to an object of StandardMode class.
hp0_hm0(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
Constructor.
double computeThValue()
The absolute value of the ratio in .