a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
MVgamma Class Reference

A class for the \(M \to V \gamma\) decay. More...

#include <MVgamma.h>

Detailed Description

A class for the \(M \to V \gamma\) decay.

Author
HEPfit Collaboration

This class is used to compute all the functions needed in order to compute the observables relative to the \(M \to V \gamma\) decays, where \(M\) is a generic meson and \(V\) is a vector meson.

MVll parameters

The mandatory parameters of MVll are summarized below:

Label LaTeX symbol Description
a_0T1 \(a_0^{T_1}\) The fit parameters for the form factor \(T_1\) of the \(B\to K^*\) at \(q^2=0\).
a_0T1phi \(a_0^{T_1}\) The fit parameters for the form factor \(T_1\) of the \(B\to\phi\) at \(q^2=0\). absh_p \(\mathrm{Abs}h_+^{(0)}\) The constant term of the absolute value of the hadronic parameter \(h_+\) of the \(B\to K^*\) at \(q^2=0\).
argh_p \(\mathrm{Arg}h_+^{(0)}\) The constant term of the argument of the hadronic parameter \(h_+\) of the \(B\to K^*\) at \(q^2=0\).
absh_m \(\mathrm{Abs}h_-^{(0)}\) The constant term of the absolute value of the hadronic parameter \(h_-\) of the \(B\to K^*\) at \(q^2=0\).
argh_m \(\mathrm{Arg}h_-^{(0)}\) The constant term of the argument of the hadronic parameter \(h_-\) of the \(B\to K^*\) at \(q^2=0\).

This kind of decays can be described by means of the \(\Delta B = 1 \) weak effective Hamiltonian

\[ \mathcal{H}_\mathrm{eff}^{\Delta B = 1} = \mathcal{H}_\mathrm{eff}^\mathrm{had} + \mathcal{H}_\mathrm{eff}^\mathrm{\gamma}, \]

where the first term is the hadronic contribution

\[ \mathcal{H}_\mathrm{eff}^\mathrm{had} = \frac{4G_F}{\sqrt{2}}\Bigg[\sum_{p=u,c}\lambda_p\bigg(C_1 Q^{p}_1 + C_2 Q^{p}_2\bigg) -\lambda_t \bigg(\sum_{i=3}^{6} C_i P_i + C_{8}Q_{8g} \bigg)\Bigg] \,, \]

involving current-current, chromodynamic penguin and chromomagnetic dipole operators, while the second one, given by

\[ \mathcal{H}_\mathrm{eff}^\mathrm{\gamma} = - \frac{4G_F}{\sqrt{2}}\lambda_t C_7Q_{7\gamma} \,, \]

includes the electromagnetic penguin operator.

Considering the matrix element of \(\mathcal{H}_\mathrm{eff}^{\Delta B = 1}\) between the initial state \(M\) and the final state \(V \gamma\), only the contribution of \(\mathcal{H}_\mathrm{eff}^\mathrm{\gamma}\) clearly factorizes into the product of hadronic form factors and leptonic tensors at all orders in strong interactions. Following [144], we implemented the amplitude in the helicity basis; hence we made use of the helicity form factor \( T_-(0)\), which is related to the ones in the transverse basis through the following relation:

\[ T_{-}\left( q^{2}\right) = \frac{m_M^2 - m_V^2}{m_M^2}T_1\left( q^{2}\right)\,. \]

The effect of the operators of \(\mathcal{H}_\mathrm{eff}^\mathrm{had}\) due to exchange of soft gluon can be reabsorbed in the following parameterization,

\[ h_\lambda(q^2) = \frac{\epsilon^*_\mu(\lambda)}{m_M^2} \int d^4x e^{iqx} \langle \bar V \vert T\{j^{\mu}_\mathrm{em} (x) \mathcal{H}_\mathrm{eff}^\mathrm{had} (0)\} \vert \bar M \rangle = h_\lambda^{(0)}\,, \]

while the effect due to exchange of hard gluons can be parametrized following the prescription of [49] as a shift to the Wilson coefficient \(C_7\) :

\[ \Delta C_{7} = \frac{\alpha_s(\mu) C_F}{4\pi} \left( C_1(\mu) G_1(s_p)+ C_8(\mu) G_8\right) + \frac{\alpha_s(\mu_h) C_F}{4\pi} \left( C_1(\mu_h) H_1(s_p)+ C_8(\mu_h) H_8\right)\,, \]

where the terms proportional to \(G_i\) are the ones describing the corrections where the spectator quark is connected to the hard process only through soft interactions, while the ones proportional to \(H_i\) (involving leading twist light-cone distributions) are the ones describing the corrections where the spectactor quark is involved in the hard process, and \(s=\frac{m_c^2}{m_b^2}\).

The amplitude can be therefore parametrized in terms of the following helicity amplitudes:

\[ H_V^+ = \lambda_t \Big[- C_{7}' {T}_{-} - \frac{m_M}{m_b} 8 \pi^2 h_\lambda \Big] \,, \\ H_V^- = \lambda_t \Big[ C_{7} T_{-} - \frac{m_M}{m_b} 8 \pi^2 h_\lambda \Big] \,. \]

Squaring the amplitude and summing over the spins it is possible to obtain the Branching Ratio, which is

\[ BR = \frac {\alpha_e G_F^2 M_b^2 M_M \lambda}{(4\pi)^2 4 w_M} ( |H_V^+|^2 + |H_A^+|^2 +|\overline{H}_V^-|^2 + |\overline{H}_A^-|^2) \,. \]

The class is build as follows: after the parameters are updated in updateParameters() and the form factor \( T_1 \) is computed in T_1() following [48], the QCDF corrections to the Wilson coefficient \( C_7 \) is computed in the functions G1(), G8(), H1() and H8(). The helicity amplitudes \(H_V^{(+,-)},\overline{H}_V^{(+,-)}\) are build in H_V_p(), H_V_m(), H_V_p_bar() and H_V_m_bar(), in order to be further used to compute the observables.

Definition at line 144 of file MVgamma.h.

Public Member Functions

std::vector< std::string > initializeMVgammaParameters ()
 A method for initializing the parameters necessary for MVgamma. More...
 
 MVgamma (const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i)
 Constructor. More...
 
void updateParameters ()
 The update parameter method for MVgamma. More...
 
virtual ~MVgamma ()
 Destructor. More...
 

Public Attributes

double ale
 
double deltaC9_1
 
double deltaC9_2
 
gslpp::complex exp_Phase_1
 
gslpp::complex exp_Phase_2
 
double fB
 
double fpara
 
double fperp
 
double GF
 
gslpp::complex h [2]
 
double lambda
 
gslpp::complex lambda_t
 
gslpp::complex lambda_u
 
double Mb
 
double mb_pole
 
double mc_pole
 
double MM
 
double MM2
 
double Ms
 
double mu_b
 
double mu_h
 
double MV
 
double MW
 
std::vector< std::string > parametersForMVgamma
 
double r1_1
 
double r1_2
 
double r2_1
 
double r2_2
 
double spectator_charge
 
gslpp::complex SU3_breaking
 
double width
 

Constructor & Destructor Documentation

◆ MVgamma()

MVgamma::MVgamma ( const StandardModel SM_i,
QCD::meson  meson_i,
QCD::meson  vector_i 
)

Constructor.

Parameters
[in]SM_ia reference to an object of type StandardModel
[in]meson_iinitial meson of the decay
[in]vector_ifinal vector meson of the decay

Definition at line 21 of file MVgamma.cpp.

22 : SM(SM_i), myF_1(new F_1()), myF_2(new F_2())
23 {
24  meson = meson_i;
25  vectorM = vector_i;
26  dispersion = false;
27  FixedWCbtos = false;
28  mJ2 = 3.096*3.096;
29 
30  w_GSL = gsl_integration_cquad_workspace_alloc (100);
31 }

◆ ~MVgamma()

MVgamma::~MVgamma ( )
virtual

Destructor.

Definition at line 33 of file MVgamma.cpp.

34 {}

Member Function Documentation

◆ initializeMVgammaParameters()

std::vector< std::string > MVgamma::initializeMVgammaParameters ( )

A method for initializing the parameters necessary for MVgamma.

Returns
the vector of MVgamma specific parameters

Definition at line 36 of file MVgamma.cpp.

37 {
38  dispersion = SM.getFlavour().getFlagUseDispersionRelation();
39  FixedWCbtos = SM.getFlavour().getFlagFixedWCbtos();
40 
41 #if NFPOLARBASIS_MVGAMMA
42  if (vectorM == StandardModel::PHI) mVgammaParameters = make_vector<std::string>() <<
43  "a_0T1phi" << "a_0A1phi" << "a_0Vphi" <<
44  "absh_p" << "absh_m" << "argh_p" << "argh_m" << "SU3_breaking_abs" << "SU3_breaking_arg";
45  else if (vectorM == StandardModel::K_star || vectorM == StandardModel::K_star_P)
46  mVgammaParameters = make_vector<std::string>() << "a_0T1" << "a_0A1" << "a_0V" <<
47  "absh_p" << "absh_m" << "argh_p" << "argh_m";
48  else if (vectorM == StandardModel::RHO || vectorM == StandardModel::RHO_P)
49  mVgammaParameters = make_vector<std::string>() << "a_0T1rho" << "a_0A1rho" << "a_0Vrho" <<
50  "absh_p" << "absh_m" << "argh_p" << "argh_m";
51  else if (vectorM == StandardModel::OMEGA)
52  mVgammaParameters = make_vector<std::string>() << "a_0T1omega" << "a_0A1omega" << "a_0Vomega" <<
53  "absh_p" << "absh_m" << "argh_p" << "argh_m";
54 #else
55  if (vectorM == StandardModel::PHI) mVgammaParameters = make_vector<std::string>() <<
56  "a_0T1phi" << "a_0A1phi" << "a_0Vphi" <<
57  "reh_p" << "reh_m" << "imh_p" << "imh_m" << "SU3_breaking_abs" << "SU3_breaking_arg";
58  else if (vectorM == StandardModel::K_star || vectorM == StandardModel::K_star_P)
59  mVgammaParameters = make_vector<std::string>() << "a_0T1" << "a_0A1" << "a_0V" <<
60  "reh_p" << "reh_m" << "imh_p" << "imh_m";
61  else if (vectorM == StandardModel::RHO || vectorM == StandardModel::RHO_P)
62  mVgammaParameters = make_vector<std::string>() << "a_0T1rho" << "a_0A1rho" << "a_0Vrho" <<
63  "reh_p" << "reh_m" << "imh_p" << "imh_m";
64  else if (vectorM == StandardModel::OMEGA)
65  mVgammaParameters = make_vector<std::string>() << "a_0T1omega" << "a_0A1omega" << "a_0Vomega" <<
66  "reh_p" << "reh_m" << "imh_p" << "imh_m";
67 #endif
68  else {
69  std::stringstream out;
70  out << vectorM;
71  throw std::runtime_error("MVgamma: vector " + out.str() + " not implemented");
72  }
73 
74  if (dispersion) {
75  mVgammaParameters.clear();
76  if (vectorM == StandardModel::PHI) mVgammaParameters = make_vector<std::string>() <<
77  "a_0T1phi" << "a_0A1phi" << "a_0Vphi" <<
78  "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1" << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2" << "SU3_breaking_abs" << "SU3_breaking_arg";
79  else if (vectorM == StandardModel::K_star || vectorM == StandardModel::K_star_P)
80  mVgammaParameters = make_vector<std::string>() << "a_0T1" << "a_0A1" << "a_0V" <<
81  "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1" << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2";
82  else if (vectorM == StandardModel::RHO || vectorM == StandardModel::RHO_P)
83  mVgammaParameters = make_vector<std::string>() << "a_0T1rho" << "a_0A1rho" << "a_0Vrho" <<
84  "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1" << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2";
85  else if (vectorM == StandardModel::OMEGA)
86  mVgammaParameters = make_vector<std::string>() << "a_0T1omega" << "a_0A1omega" << "a_0Vomega" <<
87  "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1" << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2";
88  else {
89  std::stringstream out;
90  out << vectorM;
91  throw std::runtime_error("MVgamma: vector " + out.str() + " not implemented");
92  }
93  }
94 
95  if (FixedWCbtos) mVgammaParameters.push_back("C7_SM" );
96 
97  SM.initializeMeson(meson);
98  SM.initializeMeson(vectorM);
99  return mVgammaParameters;
100 }

◆ updateParameters()

void MVgamma::updateParameters ( )

The update parameter method for MVgamma.

NOTE: ComputeCoeff with different argumetns cannot be mixed. They have to be called sequentially.

NOTE: ComputeCoeff with different argumetns cannot be mixed. They have to be called sequentially.

Definition at line 102 of file MVgamma.cpp.

103 {
104  if (!SM.getFlavour().getUpdateFlag(meson, vectorM, QCD::NOLEPTON)) return;
105 
106  GF = SM.getGF();
107  ale = SM.getAle();
108  MM = SM.getMesons(meson).getMass();
109  MM2 = MM * MM;
110  MV = SM.getMesons(vectorM).getMass();
111  Mb = SM.getQuarks(QCD::BOTTOM).getMass(); // add the PS b mass
112  mb_pole = SM.Mbar2Mp(Mb); /* Conversion to pole mass*/
113  mc_pole = SM.Mbar2Mp(SM.getQuarks(QCD::CHARM).getMass(),FULLNLO); /* Conversion to pole mass*/
114  Ms = SM.getQuarks(QCD::STRANGE).getMass();
115  MW = SM.Mw();
116  mu_b = SM.getMub();
117  mu_h = sqrt(mu_b * .5); // From Beneke Neubert
118  fB = SM.getMesons(meson).getDecayconst();
119  width = SM.getMesons(meson).computeWidth();
120  lambda = MM2 - pow(MV, 2.);
121  alpha_s_mub = SM.Als(mu_b, FULLNLO); /* Used for QCDF @ NLO */
122 
123  switch (vectorM) {
125  a_0T1 = SM.getOptionalParameter("a_0T1");
126  a_0A1 = SM.getOptionalParameter("a_0A1");
127  a_0V = SM.getOptionalParameter("a_0V");
128  lambda_t = SM.getCKM().computelamt_s();
129  lambda_u = SM.getCKM().computelamu_s();
130  spectator_charge = SM.getQuarks(QCD::DOWN).getCharge();
131  SU3_breaking = 1.;
132  break;
134  a_0T1 = SM.getOptionalParameter("a_0T1");
135  a_0A1 = SM.getOptionalParameter("a_0A1");
136  a_0V = SM.getOptionalParameter("a_0V");
137  lambda_t = SM.getCKM().computelamt_s();
138  lambda_u = SM.getCKM().computelamu_s();
139  spectator_charge = SM.getQuarks(QCD::UP).getCharge();
140  SU3_breaking = 1.;
141  break;
142  case StandardModel::PHI:
143  a_0T1 = SM.getOptionalParameter("a_0T1phi");
144  a_0A1 = SM.getOptionalParameter("a_0A1phi");
145  a_0V = SM.getOptionalParameter("a_0Vphi");
146  lambda_t = SM.getCKM().computelamt_s();
147  lambda_u = SM.getCKM().computelamu_s();
148  spectator_charge = SM.getQuarks(QCD::STRANGE).getCharge();
149  SU3_breaking = gslpp::complex(1. + SM.getOptionalParameter("SU3_breaking_abs"),
150  SM.getOptionalParameter("SU3_breaking_arg"), true);
151  break;
152  case StandardModel::RHO:
153  a_0T1 = SM.getOptionalParameter("a_0T1rho");
154  a_0A1 = SM.getOptionalParameter("a_0A1rho");
155  a_0V = SM.getOptionalParameter("a_0Vrho");
156  lambda_t = SM.getCKM().computelamt_d();
157  lambda_u = SM.getCKM().computelamu_d();
158  spectator_charge = SM.getQuarks(QCD::DOWN).getCharge();
159  SU3_breaking = 1.;
160  break;
162  a_0T1 = SM.getOptionalParameter("a_0T1rho");
163  a_0A1 = SM.getOptionalParameter("a_0A1rho");
164  a_0V = SM.getOptionalParameter("a_0Vrho");
165  lambda_t = SM.getCKM().computelamt_d();
166  lambda_u = SM.getCKM().computelamu_d();
167  spectator_charge = SM.getQuarks(QCD::UP).getCharge();
168  SU3_breaking = 1.;
169  break;
171  a_0T1 = SM.getOptionalParameter("a_0T1omega");
172  a_0A1 = SM.getOptionalParameter("a_0A1omega");
173  a_0V = SM.getOptionalParameter("a_0Vomega");
174  lambda_t = SM.getCKM().computelamt_d();
175  lambda_u = SM.getCKM().computelamu_d();
176  spectator_charge = SM.getQuarks(QCD::DOWN).getCharge();
177  SU3_breaking = 1.;
178  break;
179  default:
180  std::stringstream out;
181  out << vectorM;
182  throw std::runtime_error("MVgamma: vector " + out.str() + " not implemented");
183  }
184 
185  fpara = SM.getMesons(vectorM).getDecayconst();
186  fperp = SM.getMesons(vectorM).getDecayconst_p();
187 
188  double ms_over_mb = SM.Mrun(mu_b, SM.getQuarks(QCD::STRANGE).getMass_scale(),
189  SM.getQuarks(QCD::STRANGE).getMass(), FULLNNLO)
190  /SM.Mrun(mu_b, SM.getQuarks(QCD::BOTTOM).getMass_scale(),
191  SM.getQuarks(QCD::BOTTOM).getMass(), FULLNNLO);
192 
193  if (!dispersion) {
194 #if NFPOLARBASIS_MVGAMMA
195  h[0] = gslpp::complex(SM.getOptionalParameter("absh_p"), SM.getOptionalParameter("argh_p"), true); //h_plus
196  h[1] = gslpp::complex(SM.getOptionalParameter("absh_m"), SM.getOptionalParameter("argh_m"), true); //h_minus
197  h[1] *= 2. * (Mb / MM) / (16. * M_PI * M_PI) * (T_1() * lambda / MM2) ;
198  h[0] += ms_over_mb * h[1] ;
199 
200  r1_1 = 0.;
201  r1_2 = 0.;
202  r2_1 = 0.;
203  r2_2 = 0.;
204  deltaC9_1 = 0.;
205  deltaC9_2 = 0.;
206  exp_Phase_1 = 0.;
207  exp_Phase_2 = 0.;
208 #else
209  h[0] = gslpp::complex(SM.getOptionalParameter("reh_p"), SM.getOptionalParameter("imh_p"), false); //h_plus
210  h[1] = gslpp::complex(SM.getOptionalParameter("reh_m"), SM.getOptionalParameter("imh_m"), false); //h_minus
211  h[1] *= 2. * (Mb / MM) / (16. * M_PI * M_PI) * (T_1() * lambda / MM2) ;
212  h[0] += ms_over_mb * h[1] ;
213 
214  r1_1 = 0.;
215  r1_2 = 0.;
216  r2_1 = 0.;
217  r2_2 = 0.;
218  deltaC9_1 = 0.;
219  deltaC9_2 = 0.;
220  exp_Phase_1 = 0.;
221  exp_Phase_2 = 0.;
222 #endif
223  } else {
224  //gslpp::complex DC7_1 = SM.getOptionalParameter("deltaC7_1")*exp(gslpp::complex::i()*SM.getOptionalParameter("phDC7_1"));
225  //gslpp::complex DC7_2 = SM.getOptionalParameter("deltaC7_2")*exp(gslpp::complex::i()*SM.getOptionalParameter("phDC7_2"));
226  //h[0] = (-(2.*Mb)/(MM*16.*M_PI*M_PI) * lambda/(2.*MM2) * T_1()*(DC7_2 - DC7_1)).abs();
227  //h[1] = (-(2.*Mb)/(MM*16.*M_PI*M_PI) * lambda/(2.*MM2) * T_1()*(DC7_2 + DC7_1)).abs();
228  r1_1 = SM.getOptionalParameter("r1_1");
229  r1_2 = SM.getOptionalParameter("r1_2");
230  r2_1 = SM.getOptionalParameter("r2_1");
231  r2_2 = SM.getOptionalParameter("r2_2");
232  deltaC9_1 = SM.getOptionalParameter("deltaC9_1");
233  deltaC9_2 = SM.getOptionalParameter("deltaC9_2");
234  exp_Phase_1 = exp(gslpp::complex::i()*SM.getOptionalParameter("phDC9_1"));
235  exp_Phase_2 = exp(gslpp::complex::i()*SM.getOptionalParameter("phDC9_2"));
236 
237  h[0] = h_lambda(0);
238  h[1] = h_lambda(1);
239  }
240 
241 #if UNIFIEDBTOS
242  allcoeff = SM.getFlavour().ComputeCoeffBMll(mu_b, QCD::MU); //check the mass scale, scheme fixed to NDR. QCD::MU does not make any difference to the WC necessary here.
243  allcoeffprime = SM.getFlavour().ComputeCoeffprimeBMll(mu_b, QCD::MU); //check the mass scale, scheme fixed to NDR. QCD::MU does not make any difference to the WC necessary here.
244 
245  C_1 = (*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0);
246  C_2 = (*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1);
247  C_3 = (*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2);
248  C_4 = (*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3);
249  C_5 = (*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4);
250  C_6 = (*(allcoeff[LO]))(5) + (*(allcoeff[NLO]))(5);
251  C_8 = (*(allcoeff[LO]))(7) + (*(allcoeff[NLO]))(7);
252 
253  if (FixedWCbtos) {
254  allcoeff_noSM = SM.getFlavour().ComputeCoeffBMll(mu_b, StandardModel::NOLEPTON, true); //check the mass scale, scheme fixed to NDR
255  C_7 = SM.getOptionalParameter("C7_SM") + ((*(allcoeff_noSM[LO]))(6) + (*(allcoeff_noSM[NLO]))(6));
256  }
257  else C_7 = ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6));
258  C_7p = ms_over_mb * ((*(allcoeffprime[LO]))(6) + (*(allcoeffprime[NLO]))(6));
259 // C_7p -= ms_over_mb * C_7;
260  /* Done in the dirty way to remove from the effective basis since the effective C7p does not involve the non-primed C_1 to C_6.*/
261  C_7p += ms_over_mb * (-C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6);
262 #else
263  allcoeff = SM.getFlavour().ComputeCoeffsgamma(mu_b);
264  allcoeffprime = SM.getFlavour().ComputeCoeffprimesgamma(mu_b);
265 
266  C_1 = (*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0);
267  C_2 = (*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1);
268  C_3 = (*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2);
269  C_4 = (*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3);
270  C_5 = (*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4);
271  C_6 = (*(allcoeff[LO]))(5) + (*(allcoeff[NLO]))(5);
272  C_8 = (*(allcoeff[LO]))(7) + (*(allcoeff[NLO]))(7);
273 
274  if (FixedWCbtos) {
275  allcoeff_noSM = SM.getFlavour().ComputeCoeffsgamma(mu_b, true); //check the mass scale, scheme fixed to NDR
276  C_7 = SM.getOptionalParameter("C7_SM") + ((*(allcoeff_noSM[LO]))(6) + (*(allcoeff_noSM[NLO]))(6));
277  }
278  else C_7 = ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6)););
279  C_7p = (*(allcoeffprime[LO]))(6) + (*(allcoeffprime[NLO]))(6);
280  /* Done in the dirty way to remove from the effective basis since the effective C7p does not involve the non-primed C_1 to C_6.*/
281  C_7p += -ms_over_mb * C_7 - 1. / 3. * C_3 - 4 / 9 * C_4 - 20. / 3. * C_5 - 80. / 9. * C_6;
282 #endif
283  DC7_QCDF = deltaC7_QCDF(false);
284  DC7_QCDF_bar = deltaC7_QCDF(true);
285 
286  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
287 
288  f_GSL = convertToGslFunction(boost::bind(&MVgamma::getT_perp_integrand_real, &(*this), _1));
289  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();
290  T_perp_real = average;
291 
292  f_GSL = convertToGslFunction(boost::bind(&MVgamma::getT_perp_integrand_imag, &(*this), _1));
293  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();
294  T_perp_imag = average;
295 
296  f_GSL = convertToGslFunction(boost::bind(&MVgamma::getT_perp_bar_integrand_real, &(*this), _1));
297  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();
298  T_perp_bar_real = average;
299 
300  f_GSL = convertToGslFunction(boost::bind(&MVgamma::getT_perp_bar_integrand_imag, &(*this), _1));
301  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();
302  T_perp_bar_imag = average;
303 
304  gsl_set_error_handler(old_handler);
305 
306  SM.getFlavour().setUpdateFlag(meson, vectorM, QCD::NOLEPTON, false);
307 
308 }

Member Data Documentation

◆ ale

double MVgamma::ale

alpha electromagnetic

Definition at line 173 of file MVgamma.h.

◆ deltaC9_1

double MVgamma::deltaC9_1

Definition at line 195 of file MVgamma.h.

◆ deltaC9_2

double MVgamma::deltaC9_2

Definition at line 196 of file MVgamma.h.

◆ exp_Phase_1

gslpp::complex MVgamma::exp_Phase_1

Definition at line 197 of file MVgamma.h.

◆ exp_Phase_2

gslpp::complex MVgamma::exp_Phase_2

Definition at line 198 of file MVgamma.h.

◆ fB

double MVgamma::fB

B meson decay constant

Definition at line 185 of file MVgamma.h.

◆ fpara

double MVgamma::fpara

vector meson decay constant

Definition at line 184 of file MVgamma.h.

◆ fperp

double MVgamma::fperp

vector meson perpendicular decay constant

Definition at line 183 of file MVgamma.h.

◆ GF

double MVgamma::GF

Fermi constant

Definition at line 172 of file MVgamma.h.

◆ h

gslpp::complex MVgamma::h[2]

parameter that contains the contribution from the hadronic hamiltonian

Definition at line 190 of file MVgamma.h.

◆ lambda

double MVgamma::lambda

kinematic parameter

Definition at line 200 of file MVgamma.h.

◆ lambda_t

gslpp::complex MVgamma::lambda_t

Vckm factor lambds_t

Definition at line 188 of file MVgamma.h.

◆ lambda_u

gslpp::complex MVgamma::lambda_u

Vckm factor lambda_u

Definition at line 189 of file MVgamma.h.

◆ Mb

double MVgamma::Mb

b quark mass

Definition at line 177 of file MVgamma.h.

◆ mb_pole

double MVgamma::mb_pole

b quark pole mass

Definition at line 178 of file MVgamma.h.

◆ mc_pole

double MVgamma::mc_pole

c quark pole mass

Definition at line 179 of file MVgamma.h.

◆ MM

double MVgamma::MM

initial meson mass

Definition at line 174 of file MVgamma.h.

◆ MM2

double MVgamma::MM2

square of the initial meson mass

Definition at line 175 of file MVgamma.h.

◆ Ms

double MVgamma::Ms

s quark mass

Definition at line 186 of file MVgamma.h.

◆ mu_b

double MVgamma::mu_b

b mass scale

Definition at line 180 of file MVgamma.h.

◆ mu_h

double MVgamma::mu_h

sqrt(mu_b*lambda_QCD)

Definition at line 181 of file MVgamma.h.

◆ MV

double MVgamma::MV

final vector meson mass

Definition at line 176 of file MVgamma.h.

◆ MW

double MVgamma::MW

W boson mass

Definition at line 187 of file MVgamma.h.

◆ parametersForMVgamma

std::vector<std::string> MVgamma::parametersForMVgamma

Definition at line 170 of file MVgamma.h.

◆ r1_1

double MVgamma::r1_1

Definition at line 191 of file MVgamma.h.

◆ r1_2

double MVgamma::r1_2

Definition at line 192 of file MVgamma.h.

◆ r2_1

double MVgamma::r2_1

Definition at line 193 of file MVgamma.h.

◆ r2_2

double MVgamma::r2_2

Definition at line 194 of file MVgamma.h.

◆ spectator_charge

double MVgamma::spectator_charge

charge of the spectator quark.

Definition at line 201 of file MVgamma.h.

◆ SU3_breaking

gslpp::complex MVgamma::SU3_breaking

Definition at line 199 of file MVgamma.h.

◆ width

double MVgamma::width

initial meson width

Definition at line 182 of file MVgamma.h.


The documentation for this class was generated from the following files:
MVgamma::MV
double MV
Definition: MVgamma.h:176
QCD::BOTTOM
Definition: QCD.h:329
QCD::NOLEPTON
Definition: QCD.h:317
QCD::RHO_P
Definition: QCD.h:352
MVgamma::lambda_u
gslpp::complex lambda_u
Definition: MVgamma.h:189
MVgamma::GF
double GF
Definition: MVgamma.h:172
make_vector
Definition: std_make_vector.h:15
MVgamma::r1_1
double r1_1
Definition: MVgamma.h:191
LO
Definition: OrderScheme.h:33
QCD::UP
Definition: QCD.h:324
QCD::CHARM
Definition: QCD.h:326
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
MVgamma::fB
double fB
Definition: MVgamma.h:185
MVgamma::deltaC9_1
double deltaC9_1
Definition: MVgamma.h:195
MVgamma::mu_h
double mu_h
Definition: MVgamma.h:181
MVgamma::fperp
double fperp
Definition: MVgamma.h:183
MVgamma::MW
double MW
Definition: MVgamma.h:187
MVgamma::spectator_charge
double spectator_charge
Definition: MVgamma.h:201
MVgamma::mc_pole
double mc_pole
Definition: MVgamma.h:179
QCD::RHO
Definition: QCD.h:351
QCD::K_star
Definition: QCD.h:348
QCD::OMEGA
Definition: QCD.h:353
F_2
Definition: F_2.h:15
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
gslpp::complex::i
static const complex & i()
Definition: gslpp_complex.cpp:154
MVgamma::mu_b
double mu_b
Definition: MVgamma.h:180
MVgamma::deltaC9_2
double deltaC9_2
Definition: MVgamma.h:196
MVgamma::r2_1
double r2_1
Definition: MVgamma.h:193
MVgamma::r1_2
double r1_2
Definition: MVgamma.h:192
MVgamma::fpara
double fpara
Definition: MVgamma.h:184
MVgamma::exp_Phase_1
gslpp::complex exp_Phase_1
Definition: MVgamma.h:197
C_4
Definition: myObservables.h:76
MVgamma::width
double width
Definition: MVgamma.h:182
F_1
Definition: F_1.h:15
MVgamma::ale
double ale
Definition: MVgamma.h:173
MVgamma::MM
double MM
Definition: MVgamma.h:174
MVgamma::Ms
double Ms
Definition: MVgamma.h:186
QCD::K_star_P
Definition: QCD.h:349
QCD::STRANGE
Definition: QCD.h:327
QCD::PHI
Definition: QCD.h:347
MVgamma::mb_pole
double mb_pole
Definition: MVgamma.h:178
MVgamma::MM2
double MM2
Definition: MVgamma.h:175
MVgamma::lambda_t
gslpp::complex lambda_t
Definition: MVgamma.h:188
NLO
Definition: OrderScheme.h:34
convertToGslFunction
gsl_function convertToGslFunction(const F &f)
Definition: gslpp_function_adapter.h:24
gslpp::exp
complex exp(const complex &z)
Definition: gslpp_complex.cpp:333
C_3
Definition: myObservables.h:59
FULLNNLO
Definition: OrderScheme.h:38
MVgamma::SU3_breaking
gslpp::complex SU3_breaking
Definition: MVgamma.h:199
MVgamma::Mb
double Mb
Definition: MVgamma.h:177
QCD::DOWN
Definition: QCD.h:325
MVgamma::exp_Phase_2
gslpp::complex exp_Phase_2
Definition: MVgamma.h:198
MVgamma::h
gslpp::complex h[2]
Definition: MVgamma.h:190
MVgamma::lambda
double lambda
Definition: MVgamma.h:200
FULLNLO
Definition: OrderScheme.h:37
MVgamma::r2_2
double r2_2
Definition: MVgamma.h:194
QCD::MU
Definition: QCD.h:314