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";
60 else mVgammaParameters = make_vector<std::string>() <<
61 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
62 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
64 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
65 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
66 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
67 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
68 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
69 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m";
70 else mVgammaParameters = make_vector<std::string>() <<
"a_0T1" <<
"a_0A1" <<
"a_0V" <<
71 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m";
73 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
74 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m";
76 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
77 "absh_p" <<
"absh_m" <<
"argh_p" <<
"argh_m";
80 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
81 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
82 "a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
83 "a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg" <<
84 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
85 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
86 else mVgammaParameters = make_vector<std::string>() <<
87 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
88 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
90 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
91 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
92 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
93 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
94 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
95 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m";
96 else mVgammaParameters = make_vector<std::string>() <<
97 "a_0T1" <<
"a_0A1" <<
"a_0V" <<
98 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m";
100 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
101 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m";
103 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
104 "reh_p" <<
"reh_m" <<
"imh_p" <<
"imh_m";
107 std::stringstream out;
109 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
113 mVgammaParameters.clear();
115 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
116 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1" <<
117 "a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf" <<
118 "a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg" <<
119 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
120 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
121 else mVgammaParameters = make_vector<std::string>() <<
122 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi" <<
123 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2" <<
"SU3_breaking_abs" <<
"SU3_breaking_arg";
125 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
126 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1" <<
127 "a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf" <<
128 "a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg" <<
129 "Chi1minus" <<
"Chi1plus" <<
"ChiTT" <<
130 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
131 else mVgammaParameters = make_vector<std::string>() <<
132 "a_0T1" <<
"a_0A1" <<
"a_0V" <<
133 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
135 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho" <<
136 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
138 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega" <<
139 "r1_1" <<
"r2_1" <<
"deltaC9_1" <<
"phDC9_1" <<
"r1_2" <<
"r2_2" <<
"deltaC9_2" <<
"phDC9_2";
141 std::stringstream out;
143 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
148 mVgammaParameters.clear();
150 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
151 "a_0T1phi" <<
"a_1T1phi" <<
"a_2T1phi" <<
"MRT1"
152 <<
"a_0fphi" <<
"a_1fphi" <<
"a_2fphi" <<
"MRf"
153 <<
"a_0gphi" <<
"a_1gphi" <<
"a_2gphi" <<
"MRg"
154 <<
"Chi1minus" <<
"Chi1plus" <<
"ChiTT"
155 <<
"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"
156 <<
"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"
157 <<
"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"
158 <<
"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";
159 else mVgammaParameters = make_vector<std::string>() <<
160 "a_0T1phi" <<
"a_0A1phi" <<
"a_0Vphi"
161 <<
"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"
162 <<
"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"
163 <<
"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"
164 <<
"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";
166 if (MVll_DM_flag) mVgammaParameters = make_vector<std::string>() <<
167 "a_0T1" <<
"a_1T1" <<
"a_2T1" <<
"MRT1"
168 <<
"a_0f" <<
"a_1f" <<
"a_2f" <<
"MRf"
169 <<
"a_0g" <<
"a_1g" <<
"a_2g" <<
"MRg"
170 <<
"Chi1minus" <<
"Chi1plus" <<
"ChiTT"
171 <<
"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"
172 <<
"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"
173 <<
"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"
174 <<
"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";
175 else mVgammaParameters = make_vector<std::string>() <<
176 "a_0T1" <<
"a_0A1" <<
"a_0V"
177 <<
"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"
178 <<
"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"
179 <<
"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"
180 <<
"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";
182 mVgammaParameters = make_vector<std::string>() <<
"a_0T1rho" <<
"a_0A1rho" <<
"a_0Vrho"
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";
188 mVgammaParameters = make_vector<std::string>() <<
"a_0T1omega" <<
"a_0A1omega" <<
"a_0Vomega"
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 std::stringstream out;
196 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
200 if (FixedWCbtos) mVgammaParameters.push_back(
"C7_SM" );
202 SM.initializeMeson(meson);
203 SM.initializeMeson(vectorM);
204 return mVgammaParameters;
209 if (!
SM.getFlavour().getUpdateFlag(meson, vectorM,
QCD::NOLEPTON))
return;
213 MM =
SM.getMesons(meson).getMass();
215 MV =
SM.getMesons(vectorM).getMass();
223 fB =
SM.getMesons(meson).getDecayconst();
224 width =
SM.getMesons(meson).computeWidth();
236 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
237 a_1T1 =
SM.getOptionalParameter(
"a_1T1");
238 a_2T1 =
SM.getOptionalParameter(
"a_2T1");
239 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
240 a_0f =
SM.getOptionalParameter(
"a_0f");
241 a_1f =
SM.getOptionalParameter(
"a_1f");
242 a_2f =
SM.getOptionalParameter(
"a_2f");
243 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
244 a_0g =
SM.getOptionalParameter(
"a_0g");
245 a_1g =
SM.getOptionalParameter(
"a_1g");
246 a_2g =
SM.getOptionalParameter(
"a_2g");
247 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
249 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
250 ChiTT =
SM.getOptionalParameter(
"ChiTT");
253 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
254 a_0A1 =
SM.getOptionalParameter(
"a_0A1");
255 a_0V =
SM.getOptionalParameter(
"a_0V");
264 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
265 a_1T1 =
SM.getOptionalParameter(
"a_1T1");
266 a_2T1 =
SM.getOptionalParameter(
"a_2T1");
267 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
268 a_0f =
SM.getOptionalParameter(
"a_0f");
269 a_1f =
SM.getOptionalParameter(
"a_1f");
270 a_2f =
SM.getOptionalParameter(
"a_2f");
271 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
272 a_0g =
SM.getOptionalParameter(
"a_0g");
273 a_1g =
SM.getOptionalParameter(
"a_1g");
274 a_2g =
SM.getOptionalParameter(
"a_2g");
275 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
277 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
278 ChiTT =
SM.getOptionalParameter(
"ChiTT");
281 a_0T1 =
SM.getOptionalParameter(
"a_0T1");
282 a_0A1 =
SM.getOptionalParameter(
"a_0A1");
283 a_0V =
SM.getOptionalParameter(
"a_0V");
292 a_0T1 =
SM.getOptionalParameter(
"a_0T1phi");
293 a_1T1 =
SM.getOptionalParameter(
"a_1T1phi");
294 a_2T1 =
SM.getOptionalParameter(
"a_2T1phi");
295 MRT1_2 =
SM.getOptionalParameter(
"MRT1")*
SM.getOptionalParameter(
"MRT1");
296 a_0f =
SM.getOptionalParameter(
"a_0fphi");
297 a_1f =
SM.getOptionalParameter(
"a_1fphi");
298 a_2f =
SM.getOptionalParameter(
"a_2fphi");
299 MRf_2 =
SM.getOptionalParameter(
"MRf")*
SM.getOptionalParameter(
"MRf");
300 a_0g =
SM.getOptionalParameter(
"a_0gphi");
301 a_1g =
SM.getOptionalParameter(
"a_1gphi");
302 a_2g =
SM.getOptionalParameter(
"a_2gphi");
303 MRg_2 =
SM.getOptionalParameter(
"MRg")*
SM.getOptionalParameter(
"MRg");
305 Chi1plus =
SM.getOptionalParameter(
"Chi1plus");
306 ChiTT =
SM.getOptionalParameter(
"ChiTT");
309 a_0T1 =
SM.getOptionalParameter(
"a_0T1phi");
310 a_0A1 =
SM.getOptionalParameter(
"a_0A1phi");
311 a_0V =
SM.getOptionalParameter(
"a_0Vphi");
316 SU3_breaking = gslpp::complex(1. +
SM.getOptionalParameter(
"SU3_breaking_abs"),
317 SM.getOptionalParameter(
"SU3_breaking_arg"),
true);
320 a_0T1 =
SM.getOptionalParameter(
"a_0T1rho");
321 a_0A1 =
SM.getOptionalParameter(
"a_0A1rho");
322 a_0V =
SM.getOptionalParameter(
"a_0Vrho");
329 a_0T1 =
SM.getOptionalParameter(
"a_0T1rho");
330 a_0A1 =
SM.getOptionalParameter(
"a_0A1rho");
331 a_0V =
SM.getOptionalParameter(
"a_0Vrho");
338 a_0T1 =
SM.getOptionalParameter(
"a_0T1omega");
339 a_0A1 =
SM.getOptionalParameter(
"a_0A1omega");
340 a_0V =
SM.getOptionalParameter(
"a_0Vomega");
347 std::stringstream out;
349 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
352 fpara =
SM.getMesons(vectorM).getDecayconst();
353 fperp =
SM.getMesons(vectorM).getDecayconst_p();
361 beta_1[0] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_0"),
SM.getOptionalParameter(
"im_beta_1_0"),
false);
362 beta_1[1] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_1"),
SM.getOptionalParameter(
"im_beta_1_1"),
false);
363 beta_1[2] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_2"),
SM.getOptionalParameter(
"im_beta_1_2"),
false);
364 beta_1[3] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_3"),
SM.getOptionalParameter(
"im_beta_1_3"),
false);
365 beta_1[4] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_4"),
SM.getOptionalParameter(
"im_beta_1_4"),
false);
366 beta_1[5] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_5"),
SM.getOptionalParameter(
"im_beta_1_5"),
false);
367 beta_1[6] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_1_6"),
SM.getOptionalParameter(
"im_beta_1_6"),
false);
369 beta_2[0] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_0"),
SM.getOptionalParameter(
"im_beta_2_0"),
false);
370 beta_2[1] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_1"),
SM.getOptionalParameter(
"im_beta_2_1"),
false);
371 beta_2[2] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_2"),
SM.getOptionalParameter(
"im_beta_2_2"),
false);
372 beta_2[3] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_3"),
SM.getOptionalParameter(
"im_beta_2_3"),
false);
373 beta_2[4] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_4"),
SM.getOptionalParameter(
"im_beta_2_4"),
false);
374 beta_2[5] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_5"),
SM.getOptionalParameter(
"im_beta_2_5"),
false);
375 beta_2[6] = gslpp::complex(
SM.getOptionalParameter(
"re_beta_2_6"),
SM.getOptionalParameter(
"im_beta_2_6"),
false);
379 }
else if (dispersion) {
384 r1_1 =
SM.getOptionalParameter(
"r1_1");
385 r1_2 =
SM.getOptionalParameter(
"r1_2");
386 r2_1 =
SM.getOptionalParameter(
"r2_1");
387 r2_2 =
SM.getOptionalParameter(
"r2_2");
390 exp_Phase_1 = exp(gslpp::complex::i()*
SM.getOptionalParameter(
"phDC9_1"));
391 exp_Phase_2 = exp(gslpp::complex::i()*
SM.getOptionalParameter(
"phDC9_2"));
396#if NFPOLARBASIS_MVGAMMA
397 h[0] = gslpp::complex(
SM.getOptionalParameter(
"absh_p"),
SM.getOptionalParameter(
"argh_p"),
true);
398 h[1] = gslpp::complex(
SM.getOptionalParameter(
"absh_m"),
SM.getOptionalParameter(
"argh_m"),
true);
399 h[1] *= 2. * (
Mb /
MM) / (16. * M_PI * M_PI) * (T_1() *
lambda /
MM2) ;
400 h[0] += ms_over_mb *
h[1] ;
411 h[0] = gslpp::complex(
SM.getOptionalParameter(
"reh_p"),
SM.getOptionalParameter(
"imh_p"),
false);
412 h[1] = gslpp::complex(
SM.getOptionalParameter(
"reh_m"),
SM.getOptionalParameter(
"imh_m"),
false);
413 h[1] *= 2. * (
Mb /
MM) / (16. * M_PI * M_PI) * (T_1() *
lambda /
MM2) ;
414 h[0] += ms_over_mb *
h[1] ;
429 allcoeffprime =
SM.getFlavour().ComputeCoeffprimeBMll(
mu_b,
QCD::MU);
431 C_1 = (*(allcoeff[
LO]))(0) + (*(allcoeff[
NLO]))(0);
432 C_2 = (*(allcoeff[
LO]))(1) + (*(allcoeff[
NLO]))(1);
433 C_3 = (*(allcoeff[
LO]))(2) + (*(allcoeff[
NLO]))(2);
434 C_4 = (*(allcoeff[
LO]))(3) + (*(allcoeff[
NLO]))(3);
435 C_5 = (*(allcoeff[
LO]))(4) + (*(allcoeff[
NLO]))(4);
436 C_6 = (*(allcoeff[
LO]))(5) + (*(allcoeff[
NLO]))(5);
437 C_8 = (*(allcoeff[
LO]))(7) + (*(allcoeff[
NLO]))(7);
441 C_7 =
SM.getOptionalParameter(
"C7_SM") + ((*(allcoeff_noSM[
LO]))(6) + (*(allcoeff_noSM[
NLO]))(6));
443 else C_7 = ((*(allcoeff[
LO]))(6) + (*(allcoeff[
NLO]))(6));
444 C_7p = ms_over_mb * ((*(allcoeffprime[
LO]))(6) + (*(allcoeffprime[
NLO]))(6));
447 C_7p += ms_over_mb * (-C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6);
449 allcoeff =
SM.getFlavour().ComputeCoeffsgamma(
mu_b);
450 allcoeffprime =
SM.getFlavour().ComputeCoeffprimesgamma(
mu_b);
452 C_1 = (*(allcoeff[
LO]))(0) + (*(allcoeff[
NLO]))(0);
453 C_2 = (*(allcoeff[
LO]))(1) + (*(allcoeff[
NLO]))(1);
454 C_3 = (*(allcoeff[
LO]))(2) + (*(allcoeff[
NLO]))(2);
455 C_4 = (*(allcoeff[
LO]))(3) + (*(allcoeff[
NLO]))(3);
456 C_5 = (*(allcoeff[
LO]))(4) + (*(allcoeff[
NLO]))(4);
457 C_6 = (*(allcoeff[
LO]))(5) + (*(allcoeff[
NLO]))(5);
458 C_8 = (*(allcoeff[
LO]))(7) + (*(allcoeff[
NLO]))(7);
461 allcoeff_noSM =
SM.getFlavour().ComputeCoeffsgamma(
mu_b,
true);
462 C_7 =
SM.getOptionalParameter(
"C7_SM") + ((*(allcoeff_noSM[
LO]))(6) + (*(allcoeff_noSM[
NLO]))(6));
464 else C_7 = ((*(allcoeff[
LO]))(6) + (*(allcoeff[
NLO]))(6)););
465 C_7p = (*(allcoeffprime[
LO]))(6) + (*(allcoeffprime[
NLO]))(6);
467 C_7p += -ms_over_mb * C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6;
474 T_perp_bar_real = 0.;
475 T_perp_bar_imag = 0.;
477 DC7_QCDF = deltaC7_QCDF(
false);
478 DC7_QCDF_bar = deltaC7_QCDF(
true);
480 gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
482 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_integrand_real, &(*
this), _1));
483 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();
484 T_perp_real = average;
486 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_integrand_imag, &(*
this), _1));
487 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();
488 T_perp_imag = average;
490 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_bar_integrand_real, &(*
this), _1));
491 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();
492 T_perp_bar_real = average;
494 f_GSL = convertToGslFunction(bind(&MVgamma::getT_perp_bar_integrand_imag, &(*
this), _1));
495 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();
496 T_perp_bar_imag = average;
498 gsl_set_error_handler(old_handler);
503 s_0 = s_p - sqrt(s_p * (s_p - mPsi2S2));
514double MVgamma::phi_f(
double MRf_2)
517 double z_M = (sqrt(
t_p - MRf_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRf_2) + sqrt(
t_p -
t_m));
519 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);
522double MVgamma::phi_g(
double MRg_2)
525 double z_M = (sqrt(
t_p - MRg_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRg_2) + sqrt(
t_p -
t_m));
527 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);
530double MVgamma::phi_T1(
double MRT1_2)
533 double z_M = (sqrt(
t_p - MRT1_2) - sqrt(
t_p -
t_m)) / (sqrt(
t_p - MRT1_2) + sqrt(
t_p -
t_m));
535 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);
538double MVgamma::f_DM(
double a_0f,
double a_1f,
double a_2f,
double MRf_2)
540 return (a_0f + a_1f*
z_DM + a_2f*
z_DM*
z_DM) / phi_f(MRf_2);
543double MVgamma::g_DM(
double a_0g,
double a_1g,
double a_2g,
double MRg_2)
545 return (a_0g + a_1g*
z_DM + a_2g*
z_DM*
z_DM) / phi_g(MRg_2);
548double MVgamma::T1_DM(
double a_0T1,
double a_1T1,
double a_2T1,
double MRT1_2)
550 return (a_0T1 + a_1T1*
z_DM + a_2T1*
z_DM*
z_DM) / phi_T1(MRT1_2);
555 if (MVll_DM_flag)
return T1_DM(a_0T1, a_1T1, a_2T1, MRT1_2);
559gslpp::complex MVgamma::deltaC7_QCDF(
bool conjugate)
564#if FULLNLOQCDF_MVGAMMA
565 gslpp::complex A_Seidel = 1./729. * (833. + 120.*gslpp::complex::i()*M_PI - 312. * log(
mb_pole*
mb_pole/
mu_b/
mu_b));
566 gslpp::complex Fu_17 = -A_Seidel;
567 gslpp::complex Fu_27 = 6. * A_Seidel;
569 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);
570 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);
571 gslpp::complex F_87 = (-4.*(33. + 24.*log(muh) + 6.*gslpp::complex::i()*M_PI - 2.*M_PI*M_PI))/27.;
574 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
575 gslpp::complex delta_t = C_8 * F_87 + delta;
576#if FULLNLOQCDF_MVGAMMA
577 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
578 return -alpha_s_mub / (4. * M_PI) * (delta_t -
lambda_u /
lambda_t * delta_u);
580 return -alpha_s_mub / (4. * M_PI) * delta_t;
583 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
584 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
585#if FULLNLOQCDF_MVGAMMA
586 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
587 return -alpha_s_mub / (4. * M_PI) * (delta_t - (
lambda_u /
lambda_t).conjugate() * delta_u);
589 return -alpha_s_mub / (4. * M_PI) * delta_t;
594gslpp::complex MVgamma::Cq34(
bool conjugate)
596 gslpp::complex T_t = C_3 + 4./3.*(C_4 + 12.*C_5 + 16.*C_6);
597 gslpp::complex T_u = 0.;
598 if (meson ==
QCD::B_P) T_u = -3.*C_2;
599 else if (vectorM ==
QCD::PHI) T_t = T_t + 6.*(C_3 + 10.*C_5);
600 else if (vectorM ==
QCD::RHO) T_u = 4./3.*C_1 + C_2;
602 T_u = -4./3.*C_1 + C_2;
603 T_t = T_t + 6.*2.*(C_3 + 10.*C_5);
609gslpp::complex MVgamma::T_perp_WA_1()
614gslpp::complex MVgamma::T_perp_WA_2(
bool conjugate)
619gslpp::complex MVgamma::L1(gslpp::complex x)
621 if (x == 0.)
return -(M_PI*M_PI/6.);
622 if (x == 1.)
return 0.;
623 else return log((x-1.)/x)*log(1.-x) - (M_PI*M_PI/6.) + dilog(x/(x-1.));
626double MVgamma::phi_V(
double u)
628 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.)));
631gslpp::complex MVgamma::t_perp(
double u,
double m)
633 double ubar = 1. - u;
634 gslpp::complex x0 = sqrt(0.25 - (m*m - gslpp::complex::i()*1.e-10)/(ubar *
MM2));
635 gslpp::complex xp = 0.5 + x0;
636 gslpp::complex xm = 0.5 - x0;
638 return 4./ubar * (1. + 2.*(m*m - gslpp::complex::i()*1.e-10)/(ubar*
MM2) * (L1(xp) + L1(xm)));
641gslpp::complex MVgamma::T_perp_plus_QSS(
double u,
bool conjugate)
643 gslpp::complex t_perp_mc = t_perp(u,
mc_pole);
645#if FULLNLOQCDF_MVGAMMA
646 gslpp::complex t_perp_0 = t_perp(u, 0.);
648 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)
649 + 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.))
650 + ed * t_perp_0 * (-C_3 + C_4/6. - 16.*C_5 + 8.*C_6/3.));
652 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.));
656 return (alpha_s_mub/(3.*M_PI))*
MM/(2.*
mb_pole)*(eu * t_perp_mc * (-C_1/6. + C_2 + 6.*C_6));
660gslpp::complex MVgamma::T_perp_plus_O8(
double u)
662 return -(alpha_s_mub/(3.*M_PI))*4.*(-1./3.)*C_8/u;
665gslpp::complex MVgamma::T_perp(
double u,
bool conjugate)
668 gslpp::complex T_amp = N/
SM.getMesons(meson).getLambdaM() * phi_V(u) * (T_perp_plus_O8(u) + T_perp_plus_QSS(u, conjugate));
669#if FULLNLOQCDF_MVGAMMA
670 double ubar = 1. - u;
671 T_amp += N * phi_V(u)/ubar * T_perp_WA_1() + N/
SM.getMesons(meson).getLambdaM() *
fpara/
fperp *
MV * T_perp_WA_2(conjugate);
677gslpp::complex MVgamma::T_QCDF_minus(
bool conjugate)
679 if (!conjugate)
return (T_perp_real + gslpp::complex::i() * T_perp_imag);
680 else return (T_perp_bar_real + gslpp::complex::i() * T_perp_bar_imag);
687 gslpp::complex MVgamma::zh(
double q2)
689 return ( sqrt(s_p - q2) - sqrt(s_p - s_0)) / (sqrt(s_p - q2) + sqrt(s_p - s_0));
692gslpp::complex MVgamma::P()
694 gslpp::complex facmj2 = ( zh(0.) - zh(mJ2) ) / ( 1. - zh(0.)*zh(mJ2).conjugate() );
695 if(fabs(0. - mJ2)< 1.e-5) facmj2 = 1/(4.*(mJ2 - s_p));
696 gslpp::complex facmPsi2S2 = ( zh(0.) - zh(mPsi2S2) ) / ( 1. - zh(0.)*zh(mPsi2S2).conjugate() );
697 if(fabs(0. - mPsi2S2)< 1.e-5) facmPsi2S2 = 1/(4.*(mPsi2S2 - s_p));
699 return facmj2*facmPsi2S2;
702 gslpp::complex MVgamma::phi_1()
704 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.) ) ;
707gslpp::complex MVgamma::phi_2()
709 gslpp::complex zhm1_2 = (zh(0.)-1.)*(zh(0.)-1.);
710 gslpp::complex zhp1_2 = (zh(0.)+1.)*(zh(0.)+1.);
712 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) );
715gslpp::complex MVgamma::phi_3()
717 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.) ) ;
720 gslpp::complex MVgamma::DeltaC9_zExpansion(
int tran)
722 gslpp::complex z = zh(0.);
724 gslpp::complex invpref = 4.*M_PI*sqrt(2.*(4.*mD2-s_0)/3./chiOPE)*sqrt(1+zh(0.)) * P();
727 invpref *=
MM2*
MM * pow(1.-z,3.5) * phi_1()*phi_1()*phi_1() * sqrt(phi_2()) * phi_3()*phi_3()*phi_3();
729 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);
731 invpref *=
MM2*
MM * pow(1.-z,3.5) * phi_1()*phi_1()*phi_1() * sqrt(phi_2()) * phi_3()*phi_3()*phi_3();
733 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);
737gslpp::complex MVgamma::h_lambda(
int hel)
743 A1 = f_DM(a_0f,a_1f,a_2f,MRf_2)/(
MM+
MV);
744 V = g_DM(a_0g,a_1g,a_2g,MRg_2)*(
MM+
MV)/2.;
756 return (DeltaC9_zExpansion(1) - DeltaC9_zExpansion(2)) / sqrt(2.);
764 return (DeltaC9_zExpansion(1) + DeltaC9_zExpansion(2)) / sqrt(2.);
767 std::stringstream out;
769 throw std::runtime_error(
"MVgamma: hel " + out.str() +
" not implemented, can only be 1 (+) or 2 (-)");
773gslpp::complex MVgamma::H_V_m()
778gslpp::complex MVgamma::H_V_p()
783gslpp::complex MVgamma::H_V_m_bar()
785 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]);
788gslpp::complex MVgamma::H_V_p_bar()
832 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());
837 std::stringstream out;
839 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
845 double MM2 = MM * MM;
849 double lambda = MM2 - pow(MV, 2.);
852 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;
915 double CC = ((HVp.abs2() + HVm.abs2() - HVp_bar.abs2() - HVm_bar.abs2())) / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
959 double CC = ((HVp.abs2() + HVm.abs2() - HVp_bar.abs2() - HVm_bar.abs2())) / (HVp.abs2() + HVm.abs2() + HVp_bar.abs2() + HVm_bar.abs2());
992 std::stringstream out;
994 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
999 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());
1028 std::stringstream out;
1030 throw std::runtime_error(
"MVgamma: vector " + out.str() +
" not implemented");
1035 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());
1187 double MM2 = MM * MM;
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;
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 .