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

A class for the \(M \to V l^+ l^-\) decay.
More...

#include <MVll.h>

Detailed Description

A class for the \(M \to V l^+ l^-\) decay.

Author
HEPfit Collaboration

This class is used to compute all the functions needed in order to build the observables relative to the \(M \to V l^+ l^-\) 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_0V, a_1V, a_2V, MRV \(a_0^V, a_1^V, a_2^V, \Delta m^V\) The fit parameters for the form factor \(V\) of the \(B\to K^*\).
a_0A0, a_1A0, a_2A0, MRA0 \(a_0^{A_0}, a_1^{A_0}, a_2^{A_0}, \Delta m^{A_0}\) The fit parameters for the form factor \(A_0\) of the \(B\to K^*\).
a_0A1, a_1A1, a_2A1, MRA1 \(a_0^{A_1}, a_1^{A_1}, a_2^{A_1}, \Delta m^{A_1}\) The fit parameters for the form factor \(A_1\) of the \(B\to K^*\).
a_0A12, a_1A12, a_2A12, MRA12 \(a_0^{A_{12}}, a_1^{A_{12}}, a_2^{A_{12}}, \Delta m^{A_{12}}\) The fit parameters for the form factor \(A_{12}\) of the \(B\to K^*\).
a_0T1, a_1T1, a_2T1, MRA0 \(a_0^{T_1}, a_1^{T_1}, a_2^{T_1}, \Delta m^{T_1}\) The fit parameters for the form factor \(T_1\) of the \(B\to K^*\).
a_0T2, a_1T2, a_2T2, MRA1 \(a_0^{T_2}, a_1^{T_2}, a_2^{T_2}, \Delta m^{T_2}\) The fit parameters for the form factor \(T_2\) of the \(B\to K^*\).
a_0T23, a_1T23, a_2T23, MRA1 \(a_0^{T_{23}}, a_1^{T_{23}}, a_2^{T_{23}}, \Delta m^{T_{23}}\) The fit parameters for the form factor \(T_{23}\) of the \(B\to K^*\).
a_0Vphi, a_1Vphi, a_2Vphi, MRVphi \(a_0^V, a_1^V, a_2^V, \Delta m^V\) The fit parameters for the form factor \(V\) of the \(B\to\phi\).
a_0A0phi, a_1A0phi, a_2A0phi, MRA0phi \(a_0^{A_0}, a_1^{A_0}, a_2^{A_0}, \Delta m^{A_0}\) The fit parameters for the form factor \(A_0\) of the \(B\to\phi\).
a_0A1phi, a_1A1phi, a_2A1phi, MRA1phi \(a_0^{A_1}, a_1^{A_1}, a_2^{A_1}, \Delta m^{A_1}\) The fit parameters for the form factor \(A_1\) of the \(B\to\phi\).
a_0A1phi, a_1A1phi, a_2A1phi, MRA1phi \(a_0^{A_{12}}, a_1^{A_{12}}, a_2^{A_{12}}, \Delta m^{A_{12}}\) The fit parameters for the form factor \(A_{12}\) of the \(B\to\phi\).
a_0T1phi, a_1T1phi, a_2T1phi, MRA0phi \(a_0^{T_1}, a_1^{T_1}, a_2^{T_1}, \Delta m^{T_1}\) The fit parameters for the form factor \(T_1\) of the \(B\to\phi\).
a_0T2phi, a_1T2phi, a_2T2phi, MRA1phi \(a_0^{T_2}, a_1^{T_2}, a_2^{T_2}, \Delta m^{T_2}\) The fit parameters for the form factor \(T_2\) of the \(B\to\phi\).
a_0T23phi, a_1T23phi, a_2T23phi, MRA1phi \(a_0^{T_{23}}, a_1^{T_{23}}, a_2^{T_{23}}, \Delta m^{T_{23}}\) The fit parameters for the form factor \(T_{23}\) of the \(B\to\phi\).
absh_0, absh_0_1, absh_0_2 \(\mathrm{Abs}h_0^{(0)}, \mathrm{Abs}h_0^{(1)}, \mathrm{Abs}h_0^{(2)}\) The constant, linear and quadratic terms of the absolute value of the hadronic parameter \(h_0\) of the \(B\to K^*\).
argh_0, argh_0_1, argh_0_2 \(\mathrm{Arg}h_0^{(0)}, \mathrm{Arg}h_0^{(1)}, \mathrm{Arg}h_0^{(2)}\) The constant, linear and quadratic terms of the argument of the hadronic parameter \(h_0\) of the \(B\to K^*\).
absh_p, absh_p_1, absh_p_2 \(\mathrm{Abs}h_+^{(0)}, \mathrm{Abs}h_+^{(1)}, \mathrm{Abs}h_+^{(2)}\) The constant, linear and quadratic terms of the absolute value of the hadronic parameter \(h_+\) of the \(B\to K^*\).
argh_p, argh_p_1, argh_p_2 \(\mathrm{Arg}h_+^{(0)}, \mathrm{Arg}h_+^{(1)}, \mathrm{Arg}h_+^{(2)}\) The constant, linear and quadratic terms of the argument of the hadronic parameter \(h_+\) of the \(B\to K^*\).
absh_m, absh_m_1, absh_m_2 \(\mathrm{Abs}h_-^{(0)}, \mathrm{Abs}h_-^{(1)}, \mathrm{Abs}h_-^{(2)}\) The constant, linear and quadratic terms of the absolute value of the hadronic parameter \(h_-\) of the \(B\to K^*\).
argh_m, argh_m_1, argh_m_2 \(\mathrm{Arg}h_-^{(0)}, \mathrm{Arg}h_-^{(1)}, \mathrm{Arg}h_-^{(2)}\) The constant, linear and quadratic terms of the argument of the hadronic parameter \(h_-\) of the \(B\to K^*\).

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{sl+\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{sl+\gamma} = - \frac{4G_F}{\sqrt{2}}\lambda_t \bigg( C_7Q_{7\gamma} + C_9Q_{9V} + C_{10}Q_{10A} \bigg) \,, \]

includes the electromagnetic penguin plus the semileptonic operators.

Considering the matrix element of \(\mathcal{H}_\mathrm{eff}^{\Delta B = 1}\) between the initial state \(M\) and the final state \(V l^+ l^-\), only the contribution of \(\mathcal{H}_\mathrm{eff}^\mathrm{sl+\gamma}\) clearly factorizes into the product of hadronic form factors and leptonic tensors at all orders in strong interactions. Following [Jager:2012uw], we implemented the amplitude in the helicity basis; hence we made use of the helicity form factors \( \tilde{V}_\lambda(q^2), \tilde{T}_\lambda(q^2)\) and \(\tilde{S}(q^2) \) (where \(\lambda=+,-,0\) represents the helicity), which are related to the ones in the transverse basis through the following relations :

\[ \tilde{V}_0(q^2) = \frac{4m_V}{\sqrt{q^2}}A_{12}(q^2)\,,\\ \tilde{V}_{\pm}\left( q^{2}\right) = \frac{1}{2} \bigg[ \Big( 1 + \frac{m_V}{m_M} \Big) A_1\left( q^{2}\right) \mp \frac{\lambda^{1/2}(q^2)}{m_M(m_M + m_V)} V\left( q^{2}\right) \bigg]\,, \\ \tilde{T}_0(q^2)=\frac{2\sqrt{q^2}m_V}{m_M(m_M + m_V)}T_{23}(q^2)\,,\\ \tilde{T}_{\pm}\left( q^{2}\right) = \frac{m_M^2 - m_V^2}{2m_M^2}T_2\left( q^{2}\right) \mp \frac{\lambda^{1/2}(q^2)}{2m_M^2}T_1\left( q^{2}\right)\,,\\ \tilde{S}\left( q^{2}\right) = -\frac{\lambda^{1/2}(q^2)}{2m_M(m_b+m_s)}A_0\left( q^{2}\right)\,, \]

where \(\lambda(q^2) = 4m_M^2|\vec{k}|^2\), with \(\vec{k}\) as the 3-momentum of the meson \(V\) in the \(M\) rest frame.

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)} + \frac{q^2}{1\,\mathrm{GeV}^2} h_\lambda^{(1)} + \frac{q^4}{1\, \mathrm{GeV}^4} h_\lambda^{(2)} \,, \]

while the effect due to exchange of hard gluons can be parametrized following the prescription of [Beneke:2001at] as a shift to the Wilson coefficient \(C_9\) : one first have to define the corrections

\[ \Delta \mathcal{T}_a = \frac{\alpha_sC_F}{4\pi} C_a + \frac{\alpha_sC_F}{4}\frac{\pi}{N_c}\frac{f_Mf_{V,a}}{m_V F_a(q^2)}\Xi_a \sum_{\pm}\int \frac{d\omega}{\omega}\Phi_{V,\pm}(\omega)\int_0^1du\Phi_{M,a}(u)T_{a,\pm}(u,\omega)\,, \]

where \(a=\perp,\parallel\), \(F_\perp(q^2) = T_1(q^2) \), \(F_\parallel(q^2) = T_1(q^2) - T_3(q^2)\), \(\Xi_\perp(q^2) = 1 \), \(\Xi_\parallel(q^2) = \frac{2m_Vm_M}{m_M^2-q^2}\), and \(\Phi_X\) are leading twist light-cone distributions; the term proportional to \(C_a\) is the one describing the corrections where the spectator quark is connected to the hard process only through soft interactions, while the one proportional to \(T_{a,\pm}\) is the one describing the corrections where the spectactor quark is involved in the hard process. Therefore, it is possible to define the correction to the Wilson coefficient in the following way:

\[ \Delta C_{9,\pm} = \frac{1}{q^2}\frac{m_b}{m_M} \left((m_M^2-m_V^2) \frac{m_M^2 - q^2}{m_M^2} \mp \sqrt{\lambda(q^2)}\right) \Delta T_{\perp}(q^2)\,,\\ \Delta C_{9,0} = \frac{1}{ 2 m_V m_M \sqrt{q^2} } \left(\left[(m_M^2-m_V^2) ( m_M^2-m_V^2 - q^2) - \lambda(q^2)\right] (m_M^2 - q^2) \frac{m_b}{m_M^2q^2} \Delta T_{\perp}(q^2) - \lambda(q^2) \frac{m_b}{m_M^2-m_V^2}\left(\Delta T_{\parallel}(q^2) + \Delta T_\perp(q^2)\right)\right)\,. \]

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

\[ H_V(\lambda) = -i\, N \Big\{C_{9} \tilde{V}_{L\lambda} +C_{9}' \tilde{V}_{R\lambda} + \frac{m_M^2}{q^2} \Big[\frac{2\, m_b}{m_M} (C_{7} \tilde{T}_{L\lambda} + C_{7}' \tilde{T}_{R\lambda}) - 16 \pi^2 h_\lambda \Big] \Big\} \,, \\ H_A(\lambda) = -i\, N (C_{10} \tilde{V}_{L\lambda} + C_{10}'\tilde{V}_{R\lambda}) \,, \\ H_S = i\, N \frac{ m_b}{m_W} (C_S \tilde{S}_L + C_S' \tilde{S}_R)\,, \\ H_P = i\, N \Big\{ \frac{ m_b}{m_W} (C_P \tilde{S}_L + C_P' \tilde{S}_R) + \frac{2\,m_\ell m_b}{q^2} \left[C_{10} \Big(\tilde{S}_L - \frac{m_s}{m_b} \tilde{S}_R \Big) + C_{10}' \Big(\tilde{S}_R - \frac{m_s}{m_b} \tilde{S}_L\Big) \right] \Big\} \,, \]

where \( N = - \frac{4 G_F m_M}{\sqrt{2}}\frac{e^2}{16\pi^2}\lambda_t\) and we have defined

\[ \tilde{V}_{L\pm}(q^2) = -\tilde{V}_{R\mp}(q^2)=\tilde{V}_\pm(q^2)\,,\\ \tilde{T}_{L\pm}(q^2) = -\tilde{T}_{R\mp}(q^2)=\tilde{T}_\pm(q^2)\,,\\ \tilde{S}_L(q^2) = -\tilde{S}_R(q^2)=\tilde{S}(q^2)\,. \]

The hadronic non-factorizable contribution has been parameterized in the following way:

\begin{eqnarray} h_-(q^2) &=& -\frac{m_b}{8\pi^2 m_B} \tilde T_{L -}(q^2) h_-^{(0)} -\frac{\tilde V_{L -}(q^2)}{16\pi^2 m_B^2} h_-^{(1)} q^2 + h_-^{(2)} q^4+{\cal O}(q^6)\,,\\ h_+(q^2) &=& -\frac{m_b}{8\pi^2 m_B} \tilde T_{L +}(q^2) h_-^{(0)} -\frac{\tilde V_{L +}(q^2)}{16\pi^2 m_B^2} h_-^{(1)} q^2 + h_+^{(0)} + h_+^{(1)}q^2 + h_+^{(2)} q^4+{\cal O}(q^6)\,,\\ h_0(q^2) &=& -\frac{m_b}{8\pi^2 m_B} \tilde T_{L 0}(q^2) h_-^{(0)} -\frac{\tilde V_{L 0}(q^2)}{16\pi^2 m_B^2} h_-^{(1)} q^2 + h_0^{(0)}\sqrt{q^2} + h_0^{(1)}(q^2)^\frac{3}{2} +{\cal O}((q^2)^\frac{5}{2})\,. \end{eqnarray}

Squaring the amplitude and summing over the spins it is possible to obtain the fully differential decay rate, which is

\[ \frac{d^{(4)} \Gamma}{dq^2\,d(\cos\theta_l)d(\cos\theta_k)d\phi} = \frac{9}{32\,\pi} \Big( I^s_1\sin^2\theta_k+I^c_1\cos^2\theta_k +(I^s_2\sin^2\theta_k+I^c_2\cos^2\theta_k)\cos2\theta_l \\ + I_3\sin^2\theta_k\sin^2\theta_l\cos2\phi +I_4\sin2\theta_k\sin2\theta_l\cos\phi + I_5\sin2\theta_k\sin\theta_l\cos\phi \\ +(I_6^s\sin^2\theta_k + I_6^c \cos^2\theta_K) \cos\theta_l + I_7\sin2\theta_k\sin\theta_l\sin\phi+I_8\sin2\theta_k\sin2\theta_l\sin\phi +I_9\sin^2\theta_k\sin^2\theta_l\sin2\phi \Big) \]

The angular coefficients involved in the differential decay rate are related to the helicity amplitudes according to the following relations:

\[ I_1^c = F \left\{ \frac{1}{2}\left(|H_V^0|^2+|H_A^0|^2\right)+ |H_P|^2+\frac{2m_\ell^2}{q^2}\left(|H_V^0|^2-|H_A^0|^2\right) + \beta^2 |H_S|^2 \right\}\,,\\ I_1^s = F \left\{\frac{\beta^2\!+\!2}{8}\left(|H_V^+|^2+|H_V^-|^2+(V\rightarrow A)\right) +\frac{m_\ell^2}{q^2}\left(|H_V^+|^2+|H_V^-|^2-(V\rightarrow A)\right)\right\}\,,\\ I_2^c = -F\, \frac{\beta^2}{2}\left(|H_V^0|^2+|H_A^0|^2\right)\,,\\ I_2^s = F\, \frac{\beta^2}{8}\left(|H_V^+|^2+|H_V^-|^2\right)+(V\rightarrow A)\,,\\ I_3 = -\frac{F}{2}{\rm Re} \left[H_V^+(H_V^-)^*\right]+(V\rightarrow A)\,,\\ I_4 = F\, \frac{\beta^2}{4}{\rm Re}\left[(H_V^-+H_V^+)\left(H_V^0\right)^*\right]+(V\rightarrow A)\,,\\ I_5 = F\left\{ \frac{\beta}{2}{\rm Re}\left[(H_V^--H_V^+)\left(H_A^0\right)^*\right] +(V\leftrightarrow A) - \frac{\beta\,m_\ell}{\sqrt{q^2}} {\rm Re} \left[H_S^* (H_V^+ + H_V^-)\right]\right\}\,,\\ I_6^s = F \beta\,{\rm Re}\left[H_V^-(H_A^-)^*-H_V^+(H_A^+)^*\right]\,,\\ I_6^c = 2 F \frac{\beta\, m_\ell}{\sqrt{q^2}} {\rm Re} \left[ H_S^* H_V^0 \right]\,,\\ I_7 = F \left\{ \frac{\beta}{2}\,{\rm Im}\left[\left(H_A^++H_A^-\right) (H_V^0)^* \, +(V\leftrightarrow A) \right] - \frac{\beta\, m_\ell}{\sqrt{q^2} }\, {\rm Im} \left[ H_S^*(H_V^{-} - H_V^{+}) \right] \right\}\,,\\ I_8 = F\, \frac{\beta^2}{4}{\rm Im}\left[(H_V^--H_V^+)(H_V^0)^*\right]+(V\rightarrow A)\,,\\ I_9 = F\, \frac{\beta^2}{2}{\rm Im}\left[H_V^+(H_V^-)^*\right]+(V\rightarrow A)\,, \]

where

\[ F=\frac{ \lambda^{1/2}\beta\, q^2}{3 \times 2^{5} \,\pi^3\, m_M^3} BF(V \to {\rm final \, state})\,, \qquad \beta = \sqrt{1 - \frac{4 m_\ell^2}{q^2} }\,. \]

The final observables are hence build employing CP-averages \(\Sigma_i\) or CP-asymmetries \(\Delta_i\) of such angular coefficients; however, since on the experimental side the observables are averaged over \( q^2 \) bins, an integration of the coeffiecients over such bins has to be performed before they are combined in order to build the observables.

The class is organized as follows: after the parameters are updated in updateParameters() and the cache is checked in checkCache(), the form factor are build in the transverse basis in the functions V(), A_0(), A_1(), A_2(), T_1() and T_2() using the fit function FF_fit() from [Straub:2015ica] . The form factor are consequentely translated in the helicity basis through the functions V_0t(), V_p(), V_m(), T_0t(), T_p(), T_m() and S_L() . The basic elements required to compute the hard gluon corrections to the Wilson coefficient \(C_9\) are build in the functions Tperpplus(), Tparplus(), Tparminus(), Cperp() and Cpar(); these corrections have to be integrated to be computed, so the final correction is either obtaind through direct integration in the functions DeltaC9_p(), DeltaC9_m() and DeltaC9_0(), or obtained through fitting in the functions fDeltaC9_p(), fDeltaC9_m() and fDeltaC9_0(). Form factors, Wilson coefficients and parameters are combined together in the functions H_V_0(), H_V_p(), H_V_m(), H_A_0(), H_A_p(), H_A_m(), H_S() and H_P() in order to build the helicity aplitudes, which are consequentely combined to create the angular coefficients in the function I_1c(), I_1s(), I_2c(), I_2s(), I_3(), I_4(), I_5(), I_6c(), I_6s(), I_7(), I_8(), I_9(). Those coefficients are used to create the CP averaged coefficients in the functions getSigma1c(), getSigma1s(), getSigma2c(), getSigma2s(), getSigma3(), getSigma4(), getSigma5(), getSigma6c(), getSigma6s(), getSigma7(), getSigma8(), getSigma9(), and the CP asymmetric coefficients in the function Delta(). The CP averaged and asymmetric coefficients are integrated over the \(q^2\) bin in the functions integrateSigma() and integrateDelta(), in order to be further used to build the observables.

Definition at line 308 of file MVll.h.

Public Member Functions

gslpp::complex AmpMVpsi_zExpansion (double mpsi, int tran)
 Polarization amplitudes for M to V psi, Eq. B.16 of arXiv:2206.03797. More...
 
double beta (double q2)
 The factor \( \beta \) used in the angular coefficients \(I_i\). More...
 
double Delta_C9_zExp (int hel)
 The non-pertubative ccbar contributions to the helicity amplitudes. More...
 
double get_unitarity_bound_F2 ()
 The unitarity constraints on form factors \( F_2 \). More...
 
double get_unitarity_bound_f_F1 ()
 The unitarity constraints on form factors \( f \) and \( F_1 \). More...
 
double get_unitarity_bound_g ()
 The unitarity constraints on form factors \( g \). More...
 
double get_unitarity_bound_T1 ()
 The unitarity constraints on form factors \( T_1 \). More...
 
double get_unitarity_bound_T2_T0 ()
 The unitarity constraints on form factors \( T_2 \) and \( T_0 \) . More...
 
double getDelta_C9_zExp_0 ()
 The non-pertubative ccbar contributions to the helicity amplitudes. More...
 
double getDelta_C9_zExp_m ()
 The non-pertubative ccbar contributions to the helicity amplitudes. More...
 
double getDelta_C9_zExp_p ()
 The non-pertubative ccbar contributions to the helicity amplitudes. More...
 
double getgtilde_1_im (double q2)
 The immaginary part of \( \tilde{g}^1 \). More...
 
double getgtilde_1_re (double q2)
 The real part of \( \tilde{g}^1 \). More...
 
double getgtilde_2_im (double q2)
 The immaginary part of \( \tilde{g}^2 \). More...
 
double getgtilde_2_re (double q2)
 The real part of \( \tilde{g}^2 \). More...
 
double getgtilde_3_im (double q2)
 The imaginary part of \( \tilde{g}^3 \). More...
 
double getgtilde_3_re (double q2)
 The real part of \( \tilde{g}^3 \). More...
 
double geth_0_im (double q2)
 The imaginary part of \( h_0 \).
More...
 
double geth_0_re (double q2)
 The real part of \( h_0 \).
More...
 
gslpp::complex geth_m_0 ()
 \( h_-(0) \). More...
 
double geth_m_im (double q2)
 The imaginary part of \( h_- \).
More...
 
double geth_m_re (double q2)
 The real part of \( h_- \).
More...
 
gslpp::complex geth_p_0 ()
 \( h_+(0) \). More...
 
double geth_p_im (double q2)
 The imaginary part of \( h_+ \).
More...
 
double geth_p_re (double q2)
 The real part of \( h_+ \).
More...
 
double getMlep ()
 The mass of the lepton l. More...
 
gslpp::complex getQCDf_1 (double q2)
 
gslpp::complex getQCDf_2 (double q2)
 
gslpp::complex getQCDf_3 (double q2)
 
double getQCDfC9_1 (double q2, double cutoff)
 
double getQCDfC9_2 (double q2, double cutoff)
 
double getQCDfC9_3 (double q2, double cutoff)
 
double getQCDfC9p_1 (double cutoff)
 
double getQCDfC9p_2 (double cutoff)
 
double getQCDfC9p_3 (double cutoff)
 
double getS (double q2)
 The form factor \( S \) . More...
 
double getSigma (int i, double q_2)
 The value of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\). More...
 
double getT0 (double q2)
 The form factor \( T_0 \) . More...
 
double getTm (double q2)
 The form factor \( T_- \) . More...
 
double getTp (double q2)
 The form factor \( T_+ \) . More...
 
double getV0 (double q2)
 The form factor \( V_0 \) . More...
 
double getVm (double q2)
 The form factor \( V_- \) . More...
 
double getVp (double q2)
 The form factor \( V_+ \) . More...
 
double getwidth ()
 The width of the meson M. More...
 
gslpp::complex H_A_0 (double q2, bool bar)
 The helicity amplitude \( H_A^0 \) . More...
 
gslpp::complex H_A_m (double q2, bool bar)
 The helicity amplitude \( H_A^- \) . More...
 
gslpp::complex H_A_p (double q2, bool bar)
 The helicity amplitude \( H_A^+ \) . More...
 
gslpp::complex h_lambda (int hel, double q2)
 The non-pertubative ccbar contributions to the helicity amplitudes. More...
 
gslpp::complex H_P (double q2, bool bar)
 The helicity amplitude \( H_P \) . More...
 
gslpp::complex H_S (double q2, bool bar)
 The helicity amplitude \( H_S \) . More...
 
gslpp::complex H_V_0 (double q2, bool bar)
 The helicity amplitude \( H_V^0 \) . More...
 
gslpp::complex H_V_m (double q2, bool bar)
 The helicity amplitude \( H_V^- \) . More...
 
gslpp::complex H_V_p (double q2, bool bar)
 The helicity amplitude \( H_V^+ \) . More...
 
std::vector< std::string > initializeMVllParameters ()
 A method for initializing the parameters necessary for MVll. More...
 
double integrateDelta (int i, double q_min, double q_max)
 The integral of \( \Delta_{i} \) from \(q_{min}\) to \(q_{max}\). More...
 
double integrateSigma (int i, double q_min, double q_max)
 The integral of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\). More...
 
double integrateSigmaTree (double q_min, double q_max)
 The integral of \( \Sigma_{tree} \) from \(q_{min}\) to \(q_{max}\) (arxiv/2301.06990) More...
 
 MVll (const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
 Constructor. More...
 
virtual ~MVll ()
 Destructor. More...
 

Private Member Functions

gslpp::complex A_Seidel (double q2, double mb2)
 
gslpp::complex B0 (double s, double m2)
 
gslpp::complex B0diff (double q2, double u, double m2)
 
gslpp::complex B_Seidel (double q2, double mb2)
 
gslpp::complex C_Seidel (double q2)
 
gslpp::complex Cq34 (bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0412400). Part of Weak Annihilation. More...
 
gslpp::complex deltaC7_QCDF (double q2, bool conjugate, bool spline=false)
 QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et. al (arXiv:0810.4077).. More...
 
gslpp::complex deltaC9_QCDF (double q2, bool conjugate, bool spline=false)
 QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et. al (arXiv:0810.4077).. More...
 
double FF_fit (double q2, double a_0, double a_1, double a_2, double MR2)
 The fit function from [Straub:2015ica], \( FF^{\rm fit} \). More...
 
void fit_QCDF_func ()
 
double getintegratedSigmaTree ()
 The integral of \( \Sigma_{tree} \) from 0 to \(q_{cut}\). More...
 
gslpp::complex h_func (double s, double m2)
 
gslpp::complex I1 (double q2, double u, double m2)
 
gslpp::complex lambda_B_minus (double q2)
 
double phi_V (double u)
 QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude. More...
 
double QCDF_fit_func (double *x, double *p)
 
double SigmaTree (double q2)
 
void spline_QCDF_func ()
 
gslpp::complex T_0 (double q2, bool conjugate)
 
gslpp::complex T_minus (double q2, bool conjugate)
 
gslpp::complex t_para (double q2, double u, double m2)
 QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution. More...
 
double T_para_imag (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
double T_para_imag (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
gslpp::complex T_para_minus_O8 (double q2, double u)
 QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution. More...
 
gslpp::complex T_para_minus_QSS (double q2, double u, bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution. More...
 
gslpp::complex T_para_minus_WA (bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation. More...
 
gslpp::complex T_para_plus_QSS (double q2, double u, bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution. More...
 
double T_para_real (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
double T_para_real (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
gslpp::complex t_perp (double q2, double u, double m2)
 QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution. More...
 
double T_perp_imag (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
double T_perp_imag (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
gslpp::complex T_perp_plus_O8 (double q2, double u)
 QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution. More...
 
gslpp::complex T_perp_plus_QSS (double q2, double u, bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution. More...
 
double T_perp_real (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
double T_perp_real (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total. More...
 
gslpp::complex T_perp_WA_1 ()
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation. More...
 
gslpp::complex T_perp_WA_2 (bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation. More...
 

Private Attributes

double ale
 
double alpha_s_mub
 
double angmomV
 
bool dispersion
 
int etaV
 
gslpp::complex exp_Phase [3]
 
bool FixedWCbtos
 
double GF
 
QCD::lepton lep
 
double Mb
 
double mb_pole
 
double Mc
 
double mc_pole
 
double mD2
 
QCD::meson meson
 
double mJ2
 
double mJpsi
 
double Mlep
 
double MM
 
double mPsi2S
 
double mPsi2S2
 
double Ms
 
double mu_b
 
double mu_h
 
double MV
 
bool MVll_DM_flag
 
std::vector< std::string > mvllParameters
 
std::unique_ptr< F_1myF_1
 
std::unique_ptr< F_2myF_2
 
const StandardModelmySM
 
bool NeutrinoTree_flag
 
double spectator_charge
 
QCD::meson vectorM
 
double width
 
double xs
 
double ys
 
bool zExpansion
 

Constructor & Destructor Documentation

◆ MVll()

MVll::MVll ( const StandardModel SM_i,
QCD::meson  meson_i,
QCD::meson  vector_i,
QCD::lepton  lep_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
[in]lep_ifinal leptons of the decay

Definition at line 22 of file MVll.cpp.

23: mySM(SM_i), myF_1(new F_1()), myF_2(new F_2()),
24N_cache(3, 0.),
25V_cache(3, 0.),
26A0_cache(3, 0.),
27A1_cache(3, 0.),
28T1_cache(3, 0.),
29T2_cache(3, 0.),
30k2_cache(2, 0.),
31VL0_cache(3, 0.),
32TL0_cache(3, 0.),
33SL_cache(2, 0.),
34Ycache(2, 0.),
35H_V0cache(2, 0.),
36H_V1cache(2, 0.),
37H_V2cache(2, 0.),
38H_Scache(2, 0.),
39H_Pcache(4, 0.),
40Itree_cache(3, 0.),
41T_cache(5, 0.)
42{
43 lep = lep_i;
44 meson = meson_i;
45 vectorM = vector_i;
46 dispersion = false;
47 zExpansion = false;
48 FixedWCbtos = false;
49 NeutrinoTree_flag = false;
50 MVll_DM_flag = false;
51 mJpsi = 3.0969;
52 mJ2 = mJpsi * mJpsi;
53 mPsi2S = 3.6861;
55 mD2 = 1.8648 * 1.8648;
56
57 I0_updated = 0;
58 I1_updated = 0;
59 I2_updated = 0;
60 I3_updated = 0;
61 I4_updated = 0;
62 I5_updated = 0;
63 I6_updated = 0;
64 I7_updated = 0;
65 I8_updated = 0;
66 I9_updated = 0;
67 I10_updated = 0;
68 I11_updated = 0;
69 Itree_updated = 0;
70
71 VL1_updated = 0;
72 VL2_updated = 0;
73 TL1_updated = 0;
74 TL2_updated = 0;
75 VR1_updated = 0;
76 VR2_updated = 0;
77 TR1_updated = 0;
78 TR2_updated = 0;
79 VL0_updated = 0;
80 TL0_updated = 0;
81 VR0_updated = 0;
82 TR0_updated = 0;
83 SL_updated = 0;
84 SR_updated = 0;
85
86 deltaTparpupdated = 0;
87 deltaTparmupdated = 0;
88 deltaTperpupdated = 0;
89
90 w_sigma = gsl_integration_cquad_workspace_alloc(100);
91 // w_DTPPR = gsl_integration_cquad_workspace_alloc (100);
92 w_sigmaTree = gsl_integration_cquad_workspace_alloc(100);
93 w_delta = gsl_integration_cquad_workspace_alloc(100);
94
95 acc_Re_T_perp = gsl_interp_accel_alloc();
96 acc_Im_T_perp = gsl_interp_accel_alloc();
97 acc_Re_T_para = gsl_interp_accel_alloc();
98 acc_Im_T_para = gsl_interp_accel_alloc();
99
100 spline_Re_T_perp = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
101 spline_Im_T_perp = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
102 spline_Re_T_para = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
103 spline_Im_T_para = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
104
105#if COMPUTECP
106 acc_Re_T_perp_conj = gsl_interp_accel_alloc();
107 acc_Im_T_perp_conj = gsl_interp_accel_alloc();
108 acc_Re_T_para_conj = gsl_interp_accel_alloc();
109 acc_Im_T_para_conj = gsl_interp_accel_alloc();
110
111 spline_Re_T_perp_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
112 spline_Im_T_perp_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
113 spline_Re_T_para_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
114 spline_Im_T_para_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM);
115#endif
116
117 acc_Re_deltaC7_QCDF = gsl_interp_accel_alloc();
118 acc_Im_deltaC7_QCDF = gsl_interp_accel_alloc();
119 acc_Re_deltaC9_QCDF = gsl_interp_accel_alloc();
120 acc_Im_deltaC9_QCDF = gsl_interp_accel_alloc();
121
122 spline_Re_deltaC7_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
123 spline_Im_deltaC7_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
124 spline_Re_deltaC9_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
125 spline_Im_deltaC9_QCDF = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
126
127#if COMPUTECP
128 acc_Re_deltaC7_QCDF_conj = gsl_interp_accel_alloc();
129 acc_Im_deltaC7_QCDF_conj = gsl_interp_accel_alloc();
130 acc_Re_deltaC9_QCDF_conj = gsl_interp_accel_alloc();
131 acc_Im_deltaC9_QCDF_conj = gsl_interp_accel_alloc();
132
133 spline_Re_deltaC7_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
134 spline_Im_deltaC7_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
135 spline_Re_deltaC9_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
136 spline_Im_deltaC9_QCDF_conj = gsl_spline_alloc(gsl_interp_cspline, GSL_INTERP_DIM_DC);
137#endif
138
139 h_pole = false;
140
141 M_PI2 = M_PI*M_PI;
142
143 F87_1 = (4. / 3. * M_PI2 - 40. / 3.);
144 F87_2 = (32. / 9. * M_PI2 - 316. / 9.);
145 F87_3 = (200. / 27. * M_PI2 - 658. / 9.);
146
147 F89_0 = (104. / 9. - 32. / 27. * M_PI2);
148 F89_1 = (1184. / 27. - 40. / 9. * M_PI2);
149 F89_2 = (-32. / 3. * M_PI2 + 14212. / 135.);
150 F89_3 = (-560. / 27. * M_PI2 + 193444. / 945.);
151
152 CF = 4. / 3.;
153
154}
Definition: F_1.h:15
Definition: F_2.h:15
bool FixedWCbtos
Definition: MVll.h:838
const StandardModel & mySM
Definition: MVll.h:829
bool zExpansion
Definition: MVll.h:837
bool MVll_DM_flag
Definition: MVll.h:840
std::unique_ptr< F_2 > myF_2
Definition: MVll.h:835
double mPsi2S2
Definition: MVll.h:842
double mD2
Definition: MVll.h:843
std::unique_ptr< F_1 > myF_1
Definition: MVll.h:834
QCD::meson meson
Definition: MVll.h:831
bool dispersion
Definition: MVll.h:836
double mPsi2S
Definition: MVll.h:842
double mJpsi
Definition: MVll.h:841
QCD::meson vectorM
Definition: MVll.h:832
QCD::lepton lep
Definition: MVll.h:830
bool NeutrinoTree_flag
Definition: MVll.h:839
double mJ2
Definition: MVll.h:841

◆ ~MVll()

MVll::~MVll ( )
virtual

Destructor.

Definition at line 156 of file MVll.cpp.

157{
158}

Member Function Documentation

◆ A_Seidel()

gslpp::complex MVll::A_Seidel ( double  q2,
double  mb2 
)
private

Definition at line 1678 of file MVll.cpp.

1679{
1680 double sh = q2 / mb2;
1681 double z = (4. * mb2) / q2;
1682 double lsh = log(sh);
1683 gslpp::complex acsq = arccot((gslpp::complex)sqrt(z - 1.));
1684 double sh2 = sh*sh;
1685 double osh2 = (1. - sh)*(1. - sh);
1686 return (-(104.) / (243.) * log((mb2) / (mu_b2)) + (4. * sh) / (27. * (1. - sh)) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1687 + (1.) / (729. * osh2) * (6. * sh * (29. - 47. * sh) * lsh + 785. - 1600. * sh + 833. * sh * sh + 6. * M_PI * gslpp::complex::i() * (20. - 49. * sh + 47. * sh2))
1688 - (2.) / (243. * osh2 * (1. - sh)) * (2. * sqrt(z - 1.) * (-4. + 9. * sh - 15. * sh2 + 4. * sh2 * sh) * acsq + 9. * sh2 * sh * lsh * lsh + 18. * M_PI * gslpp::complex::i() * sh * (1. - 2. * sh) * lsh)
1689 + (2. * sh) / (243. * osh2 * osh2) * (36. * acsq * acsq + M_PI2 * (-4. + 9. * sh - 9. * sh2 + 3. * sh2 * sh)));
1690}

◆ AmpMVpsi_zExpansion()

gslpp::complex MVll::AmpMVpsi_zExpansion ( double  mpsi,
int  tran 
)

Polarization amplitudes for M to V psi, Eq. B.16 of arXiv:2206.03797.

Parameters
[in]massof the charmonium resonance \(m_{\psi}\)
[in]trantransversity
Returns
\( A_{0,||,\perp} \)

Definition at line 2597 of file MVll.cpp.

2598{
2599 updateParameters();
2600
2601 // amplitude at charmonium resonance, i.e. q2 = mJ2 or mPsi2S2
2602 double q2 = mpsi*mpsi;
2603 double fpsi = 0.;
2604 // decay constant of the charmonium state estimated from EXP decay width in e+ e-
2605 if(fabs(mpsi - mJpsi) <1.e-5){
2606 double Gammaepm = 5.971/100.*(92.6*1e-6);
2607 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2608 }
2609 else if(fabs(mpsi - mPsi2S)< 1.e-5){
2610 double Gammaepm = 7.93/1000.*(294.*1e-6);
2611 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2612 }
2613 else{
2614 return 0.;
2615 }
2616 gslpp::complex Norm = GF*lambda_t.conjugate()*sqrt(sqrt(lambda(q2))/(2.*M_PI*MM))*MM*MM/sqrt(q2)/fpsi;
2617 if(tran == 0) Norm *= MM/sqrt(q2);
2618 return Norm*DeltaC9_zExpansion(q2,tran);
2619}
double ale
Definition: MVll.h:847
double MM
Definition: MVll.h:849
double GF
Definition: MVll.h:846

◆ B0()

gslpp::complex MVll::B0 ( double  s,
double  m2 
)
private

Definition at line 1908 of file MVll.cpp.

1909{
1910 if (4. * m2 / s == 1.) return gslpp::complex(0.);
1911 else return -2. * sqrt(4. * (m2 - gslpp::complex::i()*1.e-10) / s - 1.) * arctan(1. / sqrt(4. * (m2 - gslpp::complex::i()*1.e-10) / s - 1.));
1912}
Test Observable.

◆ B0diff()

gslpp::complex MVll::B0diff ( double  q2,
double  u,
double  m2 
)
private

Definition at line 1900 of file MVll.cpp.

1901{
1902 double ubar = 1. - u;
1903
1904 if (m2 == 0.) return -log((gslpp::complex)(-(2. / q2))) + log((gslpp::complex)(-(2. / (q2 * u + MM2 * ubar))));
1905 else return B0(ubar * MM2 + u * q2, m2) - B0(q2, m2);
1906}
gslpp::complex B0(double s, double m2)
Definition: MVll.cpp:1908

◆ B_Seidel()

gslpp::complex MVll::B_Seidel ( double  q2,
double  mb2 
)
private

Definition at line 1692 of file MVll.cpp.

1693{
1694 double sh = q2 / mb2;
1695 double z = (4. * mb2) / q2;
1696 double sqrt_z_m_1 = sqrt(z - 1.);
1697 gslpp::complex x1 = 0.5 + gslpp::complex::i() / 2. * sqrt_z_m_1;
1698 gslpp::complex x2 = 0.5 - gslpp::complex::i() / 2. * sqrt_z_m_1;
1699 gslpp::complex x3 = 0.5 + gslpp::complex::i() / (2. * sqrt_z_m_1);
1700 gslpp::complex x4 = 0.5 - gslpp::complex::i() / (2. * sqrt_z_m_1);
1701 gslpp::complex lx1 = log(x1);
1702 gslpp::complex lx2 = log(x2);
1703 gslpp::complex lx3 = log(x3);
1704 gslpp::complex lx4 = log(x4);
1705 gslpp::complex lx2_x1 = lx2 - lx1;
1706 gslpp::complex lzm1 = log(z - 1.);
1707 gslpp::complex acsq = arccot((gslpp::complex)sqrt_z_m_1);
1708 double sh2 = sh*sh;
1709 double lsh = log(sh);
1710 double osh2 = (1. - sh)*(1. - sh);
1711 double lmb_mu = log(mb2 / mu_b2);
1712 return (8. / (243. * sh) * ((4. - 34. * sh - 17. * M_PI * gslpp::complex::i() * sh) * lmb_mu + 8. * sh * lmb_mu * lmb_mu + 17. * sh * lsh * lmb_mu)
1713 + ((2. + sh) * sqrt_z_m_1) / (729. * sh) * (-48. * lmb_mu * acsq - 18. * M_PI * log(z - 1.) + 3. * gslpp::complex::i() * lzm1 * lzm1
1714 - 24. * gslpp::complex::i() * dilog(-x2 / x1) - 5. * M_PI2 * gslpp::complex::i()
1715 + 6. * gslpp::complex::i() * (-9. * lx1 * lx1 + lx2 * lx2 - 2. * lx4 * lx4 + 6. * lx1 * lx2 - 4. * lx1 * lx3 + 8. * lx1 * lx4)
1716 - 12. * M_PI * (2. * lx1 + lx3 + lx4)) - 2. / (243. * sh * (1 - sh)) * (4. * sh * (-8. + 17. * sh) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1717 + 3. * (2. + sh) * (3. - sh) * lx2_x1 * lx2_x1 + 12. * M_PI * (-6. - sh + sh2) * acsq) + 2. / (2187. * sh * osh2) * (-18. * sh * (120. - 211. * sh + 73. * sh2) * lsh
1718 - 288. - 8. * sh + 934. * sh2 - 692. * sh2 * sh + 18. * M_PI * gslpp::complex::i() * sh * (82. - 173. * sh + 73. * sh2))
1719 - 4. / (243. * sh * osh2 * (1 - sh)) * (-2. * sqrt_z_m_1 * (4. - 3. * sh - 18. * sh2 + 16. * sh2 * sh - 5. * sh2 * sh2) * acsq - 9. * sh * sh2 * lsh * lsh
1720 + 2. * M_PI * gslpp::complex::i() * sh * (8. - 33. * sh + 51. * sh2 - 17. * sh * sh2) * lsh) + 2. / (729. * sh * osh2 * osh2) * (72. * (3. - 8. * sh + 2. * sh2) * acsq * acsq
1721 - M_PI2 * (54. - 53. * sh - 286. * sh2 + 612. * sh * sh2 - 446. * sh2 * sh2 + 113. * sh2 * sh2 * sh)));
1722}

◆ beta()

double MVll::beta ( double  q2)

The factor \( \beta \) used in the angular coefficients \(I_i\).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \beta \)

Definition at line 2629 of file MVll.cpp.

2630{
2631 return sqrt(1. - 4. * Mlep2 / q2);
2632}

◆ C_Seidel()

gslpp::complex MVll::C_Seidel ( double  q2)
private

Definition at line 1724 of file MVll.cpp.

1725{
1726 return -(16.) / (81.) * log((q2) / (mu_b2)) + (428.) / (243.) - (64.) / (27.) * gsl_sf_zeta_int(3) + (16.) / (81.) * M_PI * gslpp::complex::i();
1727 /* gsl_sf_zeta_int returns a double */
1728}

◆ Cq34()

gslpp::complex MVll::Cq34 ( bool  conjugate)
private

QCDF Correction from various BFS paper (hep-ph/0412400). Part of Weak Annihilation.

Parameters
conjugatea boolean to control conjugation
Returns
\( C_{34}^{q} \)

Definition at line 1827 of file MVll.cpp.

1828{
1829 gslpp::complex T_t = C_3 + 4. / 3. * (C_4 + 12. * C_5 + 16. * C_6);
1830 gslpp::complex T_u = 0.; /* 0 for K*0, phi*/
1831 if (meson == QCD::B_P) T_u = -3. * C_2;
1832 else if (vectorM == QCD::PHI) T_t = T_t + 6. * (C_3 + 10. * C_5);
1833 if (!conjugate) return T_t + lambda_u / lambda_t * T_u;
1834 else return T_t + (lambda_u / lambda_t).conjugate() * T_u;
1835}
@ PHI
Definition: QCD.h:348
@ B_P
Definition: QCD.h:345

◆ Delta_C9_zExp()

double MVll::Delta_C9_zExp ( int  hel)

The non-pertubative ccbar contributions to the helicity amplitudes.

Parameters
helhelicity
Returns
\(h_{hel}(q^2)\)

Definition at line 2493 of file MVll.cpp.

2494{
2495 if (hel == 0)
2496 return beta_0[3].real()*(-26.55265491727846*a_0A12)/a_0A12/a_0A12 +
2497 beta_0[2].real()*(-60.539167428104925*a_0A12)/a_0A12/a_0A12 +
2498 beta_0[1].real()*(-138.02728217972742*a_0A12)/a_0A12/a_0A12 +
2499 beta_0[0].real()*(-314.6975988486678*a_0A12)/a_0A12/a_0A12;
2500 else if (hel == 1)
2501 return (63.24357991272575*a_0A1 - 293.67248647811704*a_0V + 66.1650673421469*a_1A1 - 46.966706577539846*a_1V)*(beta_1[0].real() - beta_2[0].real())/
2502 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2503 (-119.89709952961475*a_0A1 - 24.007514603707598*a_0V + 29.020190982985117*a_1A1 - 20.59973411156516*a_1V)*(beta_1[1].real() - beta_2[1].real())/
2504 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2505 (-117.34075946812884*a_0A1 + 35.43498229234759*a_0V + 12.728340172828181*a_1A1 - 9.035103297409211*a_1V)*(beta_1[2].real() - beta_2[2].real())/
2506 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2507 (-79.86709064819027*a_0A1 + 35.702158475408076*a_0V + 5.582687021261181*a_1A1 - 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2508 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V);
2509 else
2510 return (63.24357991272575*a_0A1 + 293.67248647811704*a_0V + 66.1650673421469*a_1A1 + 46.966706577539846*a_1V)*(beta_1[0].real() + beta_2[0].real())/
2511 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2512 (-119.89709952961475*a_0A1 + 24.007514603707598*a_0V + 29.020190982985117*a_1A1 + 20.59973411156516*a_1V)*(beta_1[1].real() + beta_2[1].real())/
2513 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2514 (-117.34075946812884*a_0A1 - 35.43498229234759*a_0V + 12.728340172828181*a_1A1 + 9.035103297409211*a_1V)*(beta_1[2].real() + beta_2[2].real())/
2515 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2516 (-79.86709064819027*a_0A1 - 35.702158475408076*a_0V + 5.582687021261181*a_1A1 + 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2517 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V);
2518}

◆ deltaC7_QCDF()

gslpp::complex MVll::deltaC7_QCDF ( double  q2,
bool  conjugate,
bool  spline = false 
)
private

QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et. al (arXiv:0810.4077)..

Parameters
conjugatea boolean to control conjugation
Returns
\( \Delta C_{7}^{QCDF} \)

Definition at line 1730 of file MVll.cpp.

1731{
1732 if (zExpansion)
1733 return 0.;
1734 else {
1735 #if COMPUTECP && SPLINE
1736 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1737 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF_conj, q2, acc_Re_deltaC7_QCDF_conj);
1738 #elif SPLINE
1739 if (spline) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1740 #endif
1741
1742 double muh = mu_b / mb_pole;
1743 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1744 double sh = q2 / mb_pole / mb_pole;
1745 double sh2 = sh*sh;
1746
1747 #if FULLNLOQCDF_MVLL
1748 gslpp::complex A_Sdl = A_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1749 gslpp::complex Fu_17 = -A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1750 gslpp::complex Fu_27 = 6. * A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1751 #endif
1752 gslpp::complex F_17 = myF_1->F_17re(muh, z, sh, 20) + gslpp::complex::i() * myF_1->F_17im(muh, z, sh, 20); /*arXiv:0810.4077*/
1753 gslpp::complex F_27 = myF_2->F_27re(muh, z, sh, 20) + gslpp::complex::i() * myF_2->F_27im(muh, z, sh, 20); /*arXiv:0810.4077*/
1754 gslpp::complex F_87 = F87_0 + F87_1 * sh + F87_2 * sh2 + F87_3 * sh * sh2 - 8. / 9. * log(sh) * (sh + sh2 + sh * sh2);
1755
1756 if (!conjugate) {
1757 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
1758 gslpp::complex delta_t = C_8 * F_87 + delta;
1759 #if FULLNLOQCDF_MVLL
1760 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
1761 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1762 #else
1763 return -alpha_s_mub / (4. * M_PI) * delta_t;
1764 #endif
1765 } else {
1766 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
1767 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
1768 #if FULLNLOQCDF_MVLL
1769 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
1770 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1771 #else
1772 return -alpha_s_mub / (4. * M_PI) * delta_t;
1773 #endif
1774 }
1775 }
1776}
double alpha_s_mub
Definition: MVll.h:864
double mc_pole
Definition: MVll.h:856
gslpp::complex A_Seidel(double q2, double mb2)
Definition: MVll.cpp:1678
double mb_pole
Definition: MVll.h:855
double mu_b
Definition: MVll.h:852

◆ deltaC9_QCDF()

gslpp::complex MVll::deltaC9_QCDF ( double  q2,
bool  conjugate,
bool  spline = false 
)
private

QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et. al (arXiv:0810.4077)..

Parameters
conjugatea boolean to control conjugation
Returns
\( \Delta C_{9}^{QCDF} \)

Definition at line 1778 of file MVll.cpp.

1779{
1780 if (zExpansion)
1781 return 0.;
1782 else {
1783 #if COMPUTECP && SPLINE
1784 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1785 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF_conj, q2, acc_Re_deltaC9_QCDF_conj);
1786 #elif SPLINE
1787 if (spline) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1788 #endif
1789
1790 double muh = mu_b / mb_pole;
1791 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1792 double sh = q2 / mb_pole / mb_pole;
1793 double sh2 = sh*sh;
1794
1795 #if FULLNLOQCDF_MVLL
1796 gslpp::complex B_Sdl = B_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1797 gslpp::complex C_Sdl = C_Seidel(q2); /* hep-ph/0403185v2.*/
1798 gslpp::complex Fu_19 = -(B_Sdl + 4. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1799 gslpp::complex Fu_29 = -(-6. * B_Sdl + 3. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1800 #endif
1801 gslpp::complex F_19 = myF_1->F_19re(muh, z, sh, 20) + gslpp::complex::i() * myF_1->F_19im(muh, z, sh, 20); /*arXiv:0810.4077*/
1802 gslpp::complex F_29 = myF_2->F_29re(muh, z, sh, 20) + gslpp::complex::i() * myF_2->F_29im(muh, z, sh, 20); /*arXiv:0810.4077*/
1803 gslpp::complex F_89 = (F89_0 + F89_1 * sh + F89_2 * sh2 + F89_3 * sh * sh2 + 16. / 9. * log(sh) * (1. + sh + sh2 + sh * sh2));
1804
1805 if (!conjugate) {
1806 gslpp::complex delta = C_1 * F_19 + C_2 * F_29;
1807 gslpp::complex delta_t = C_8 * F_89 + delta;
1808 #if FULLNLOQCDF_MVLL
1809 gslpp::complex delta_u = delta + C_1 * Fu_19 + C_2 * Fu_29;
1810 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1811 #else
1812 return -alpha_s_mub / (4. * M_PI) * delta_t;
1813 #endif
1814 } else {
1815 gslpp::complex delta = C_1.conjugate() * F_19 + C_2.conjugate() * F_29;
1816 gslpp::complex delta_t = C_8.conjugate() * F_89 + delta;
1817 #if FULLNLOQCDF_MVLL
1818 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_19 + C_2.conjugate() * Fu_29;
1819 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1820 #else
1821 return -alpha_s_mub / (4. * M_PI) * delta_t;
1822 #endif
1823 }
1824 }
1825}
gslpp::complex B_Seidel(double q2, double mb2)
Definition: MVll.cpp:1692
gslpp::complex C_Seidel(double q2)
Definition: MVll.cpp:1724

◆ FF_fit()

double MVll::FF_fit ( double  q2,
double  a_0,
double  a_1,
double  a_2,
double  MR2 
)
private

The fit function from [Straub:2015ica], \( FF^{\rm fit} \).

Parameters
[in]q2\(q^2\) of the decay
[in]a_0fit parameter
[in]a_1fit parameter
[in]a_2fit parameter
[in]MR2square of the nearest resonance mass
Returns
\( FF^{\rm fit} \)

Definition at line 1455 of file MVll.cpp.

1456{
1457 return 1. / (1. - q2 / MR_2) * (a_0 + a_1 * (z(q2) - z_0) + a_2 * (z(q2) - z_0) * (z(q2) - z_0));
1458}

◆ fit_QCDF_func()

void MVll::fit_QCDF_func ( )
private

Definition at line 2092 of file MVll.cpp.

2093{
2094 int dim = 0;
2095 for (double i = 0.001; i < 8.6; i += 0.5) {
2096 myq2.push_back(i);
2097 Re_T_perp.push_back(T_perp_real(i, false));
2098 Im_T_perp.push_back(T_perp_imag(i, false));
2099 Re_T_para.push_back(T_para_real(i, false));
2100 Im_T_para.push_back(T_para_imag(i, false));
2101
2102#if COMPUTECP
2103 Re_T_perp_conj.push_back(T_perp_real(i, true));
2104 Im_T_perp_conj.push_back(T_perp_imag(i, true));
2105 Re_T_para_conj.push_back(T_para_real(i, true));
2106 Im_T_para_conj.push_back(T_para_imag(i, true));
2107#endif
2108 dim++;
2109 }
2110
2111 gr1 = TGraph(dim, myq2.data(), Re_T_perp.data());
2112 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_perp");
2113 Re_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2114 Re_T_perp.clear();
2115
2116 gr1 = TGraph(dim, myq2.data(), Im_T_perp.data());
2117 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_perp");
2118 Im_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2119 Im_T_perp.clear();
2120
2121 gr1 = TGraph(dim, myq2.data(), Re_T_para.data());
2122 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_para");
2123 Re_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2124 Re_T_para.clear();
2125
2126 gr1 = TGraph(dim, myq2.data(), Im_T_para.data());
2127 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_para");
2128 Im_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2129 Im_T_para.clear();
2130
2131#if COMPUTECP
2132 gr1 = TGraph(dim, myq2.data(), Re_T_perp_conj.data());
2133 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_perp_conj");
2134 Re_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2135 Re_T_perp_conj.clear();
2136
2137 gr1 = TGraph(dim, myq2.data(), Im_T_perp_conj.data());
2138 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_perp_conj");
2139 Im_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2140 Im_T_perp_conj.clear();
2141
2142 gr1 = TGraph(dim, myq2.data(), Re_T_para_conj.data());
2143 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_para_conj");
2144 Re_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2145 Re_T_para_conj.clear();
2146
2147 gr1 = TGraph(dim, myq2.data(), Im_T_para_conj.data());
2148 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_para_conj");
2149 Im_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2150 Im_T_para_conj.clear();
2151#endif
2152
2153 myq2.clear();
2154}
double T_para_real(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
Definition: MVll.cpp:2031
double QCDF_fit_func(double *x, double *p)
Definition: MVll.cpp:2087
double T_perp_real(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
Definition: MVll.cpp:2005
double T_para_imag(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
Definition: MVll.cpp:2043
double T_perp_imag(double q2, double u, bool conjugate)
QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
Definition: MVll.cpp:2018

◆ get_unitarity_bound_F2()

double MVll::get_unitarity_bound_F2 ( )
inline

The unitarity constraints on form factors \( F_2 \).

Returns
\( S \)

Definition at line 484 of file MVll.h.

485 {
486 updateParameters();
487 return unitarity_bound_F2;
488 };
A class for the unitarity constraints on form factors .

◆ get_unitarity_bound_f_F1()

double MVll::get_unitarity_bound_f_F1 ( )
inline

The unitarity constraints on form factors \( f \) and \( F_1 \).

Returns
\( S \)

Definition at line 464 of file MVll.h.

465 {
466 updateParameters();
468 };
A class for the unitarity constraints on form factors and .

◆ get_unitarity_bound_g()

double MVll::get_unitarity_bound_g ( )
inline

The unitarity constraints on form factors \( g \).

Returns
\( S \)

Definition at line 474 of file MVll.h.

475 {
476 updateParameters();
477 return unitarity_bound_g;
478 };
A class for the unitarity constraints on form factors .

◆ get_unitarity_bound_T1()

double MVll::get_unitarity_bound_T1 ( )
inline

The unitarity constraints on form factors \( T_1 \).

Returns
\( S \)

Definition at line 494 of file MVll.h.

495 {
496 updateParameters();
497 return unitarity_bound_T1;
498 };
A class for the unitarity constraints on form factors .

◆ get_unitarity_bound_T2_T0()

double MVll::get_unitarity_bound_T2_T0 ( )
inline

The unitarity constraints on form factors \( T_2 \) and \( T_0 \) .

Returns
\( S \)

Definition at line 504 of file MVll.h.

505 {
506 updateParameters();
508 };
A class for the unitarity constraints on form factors and .

◆ getDelta_C9_zExp_0()

double MVll::getDelta_C9_zExp_0 ( )
inline

The non-pertubative ccbar contributions to the helicity amplitudes.

Returns
\( Delta_C9_zExp \)

Definition at line 529 of file MVll.h.

530 {
531 updateParameters();
532 return Delta_C9_zExp(0);
533 };
double Delta_C9_zExp(int hel)
The non-pertubative ccbar contributions to the helicity amplitudes.
Definition: MVll.cpp:2493

◆ getDelta_C9_zExp_m()

double MVll::getDelta_C9_zExp_m ( )
inline

The non-pertubative ccbar contributions to the helicity amplitudes.

Returns
\( Delta_C9_zExp \)

Definition at line 549 of file MVll.h.

550 {
551 updateParameters();
552 return Delta_C9_zExp(2);
553 };

◆ getDelta_C9_zExp_p()

double MVll::getDelta_C9_zExp_p ( )
inline

The non-pertubative ccbar contributions to the helicity amplitudes.

Returns
\( Delta_C9_zExp \)

Definition at line 539 of file MVll.h.

540 {
541 updateParameters();
542 return Delta_C9_zExp(1);
543 };

◆ getgtilde_1_im()

double MVll::getgtilde_1_im ( double  q2)
inline

The immaginary part of \( \tilde{g}^1 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(\tilde{g}^1) \)

Definition at line 692 of file MVll.h.

693 {
694 updateParameters();
695 return C2_inv * (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * (h_lambda(2,q2)-h_lambda(1,q2))).imag()/q2;
696 }
gslpp::complex h_lambda(int hel, double q2)
The non-pertubative ccbar contributions to the helicity amplitudes.
Definition: MVll.cpp:2463

◆ getgtilde_1_re()

double MVll::getgtilde_1_re ( double  q2)
inline

The real part of \( \tilde{g}^1 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(\tilde{g}^1) \)

Definition at line 681 of file MVll.h.

682 {
683 updateParameters();
684 return C2_inv * (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * (h_lambda(2,q2)-h_lambda(1,q2))).real()/q2;
685 }

◆ getgtilde_2_im()

double MVll::getgtilde_2_im ( double  q2)
inline

The immaginary part of \( \tilde{g}^2 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(\tilde{g}^2) \)

Definition at line 714 of file MVll.h.

715 {
716 updateParameters();
717 return C2_inv * (gtilde_2_pre/A_1(q2) * (h_lambda(1,q2)+h_lambda(2,q2))).imag()/q2;
718 }

◆ getgtilde_2_re()

double MVll::getgtilde_2_re ( double  q2)
inline

The real part of \( \tilde{g}^2 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(\tilde{g}^2) \)

Definition at line 703 of file MVll.h.

704 {
705 updateParameters();
706 return C2_inv * (gtilde_2_pre/A_1(q2) * (h_lambda(1,q2)+h_lambda(2,q2))).real()/q2;
707 }

◆ getgtilde_3_im()

double MVll::getgtilde_3_im ( double  q2)
inline

The imaginary part of \( \tilde{g}^3 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(\tilde{g}^3) \)

Definition at line 737 of file MVll.h.

738 {
739 updateParameters();
740 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*h_lambda(0,q2)/q2-
741 (MM2mMV2 - q2)/(4.*MV) * (h_lambda(1,q2)+h_lambda(2,q2))/q2)).imag();
742 }
double MV
Definition: MVll.h:850

◆ getgtilde_3_re()

double MVll::getgtilde_3_re ( double  q2)
inline

The real part of \( \tilde{g}^3 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(\tilde{g}^3) \)

Definition at line 725 of file MVll.h.

726 {
727 updateParameters();
728 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*h_lambda(0,q2)/q2-
729 (MM2mMV2 - q2)/(4.*MV) * (h_lambda(1,q2)+h_lambda(2,q2))/q2)).real();
730 }

◆ geth_0_im()

double MVll::geth_0_im ( double  q2)
inline

The imaginary part of \( h_0 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(h_0) \)

Definition at line 759 of file MVll.h.

760 {
761 return (sixteenM_PI2MM2 * h_lambda(0,q2)/q2).imag();
762 }

◆ geth_0_re()

double MVll::geth_0_re ( double  q2)
inline

The real part of \( h_0 \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(h_0) \)

Definition at line 749 of file MVll.h.

750 {
751 return (sixteenM_PI2MM2 * h_lambda(0,q2)/q2).real();
752 }

◆ geth_m_0()

gslpp::complex MVll::geth_m_0 ( )
inline

\( h_-(0) \).

Returns
\( h_-(0) \)

Definition at line 797 of file MVll.h.

798 {
799 return h_lambda(2,0.);
800 }

◆ geth_m_im()

double MVll::geth_m_im ( double  q2)
inline

The imaginary part of \( h_- \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(h_-) \)

Definition at line 817 of file MVll.h.

818 {
819 return (sixteenM_PI2MM2 * h_lambda(2,q2)/q2).imag();
820 }

◆ geth_m_re()

double MVll::geth_m_re ( double  q2)
inline

The real part of \( h_- \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(h_-) \)

Definition at line 807 of file MVll.h.

808 {
809 return (sixteenM_PI2MM2 * h_lambda(2,q2)/q2).real();
810 }

◆ geth_p_0()

gslpp::complex MVll::geth_p_0 ( )
inline

\( h_+(0) \).

Returns
\( h_+(0) \)

Definition at line 768 of file MVll.h.

769 {
770 return h_lambda(1,0.);
771 }

◆ geth_p_im()

double MVll::geth_p_im ( double  q2)
inline

The imaginary part of \( h_+ \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{IM}(h_+) \)

Definition at line 788 of file MVll.h.

789 {
790 return (sixteenM_PI2MM2 * h_lambda(1,q2)/q2).imag();
791 }

◆ geth_p_re()

double MVll::geth_p_re ( double  q2)
inline

The real part of \( h_+ \).

Parameters
[in]q2\(q^2\) of the decay
Returns
\( \mathrm{RE}(h_+) \)

Definition at line 778 of file MVll.h.

779 {
780 return (sixteenM_PI2MM2 * h_lambda(1,q2)/q2).real();
781 }

◆ getintegratedSigmaTree()

double MVll::getintegratedSigmaTree ( )
private

The integral of \( \Sigma_{tree} \) from 0 to \(q_{cut}\).

Returns
\( <\Sigma{tree}> \)

Definition at line 3095 of file MVll.cpp.

3096{
3097 return mySM.getMesons(meson).getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (128. * M_PI2 * MM3 * Gammatau) * mtau * (mtau2 - MV2) * (mtau2 - MV2) * (MM2 - mtau2) * (MM2 - mtau2) * (1. + 2.* MV2 / mtau2);
3098}
double getLifetime() const
A get method for the lifetime of the meson.
Definition: Meson.h:351
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:526

◆ getMlep()

double MVll::getMlep ( )
inline

The mass of the lepton l.

Returns
\( m_l \)

Definition at line 372 of file MVll.h.

372 {
373 updateParameters();
374 return Mlep;
375 }
double Mlep
Definition: MVll.h:848

◆ getQCDf_1()

gslpp::complex MVll::getQCDf_1 ( double  q2)
inline

Definition at line 619 of file MVll.h.

620 {
621 updateParameters();
622// return (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * 1./(16. * M_PI * M_PI * MM*MM) * (fDeltaC9_m(q2) * V_m(q2) - fDeltaC9_p(q2) * V_p(q2)));
623 return 0.;
624 }

◆ getQCDf_2()

gslpp::complex MVll::getQCDf_2 ( double  q2)
inline

Definition at line 626 of file MVll.h.

627 {
628 updateParameters();
629// return (gtilde_2_pre/A_1(q2) * 1./(16. * M_PI * M_PI * MM*MM) * (fDeltaC9_m(q2) * V_m(q2) + fDeltaC9_p(q2) * V_p(q2)));
630 return 0.;
631 }

◆ getQCDf_3()

gslpp::complex MVll::getQCDf_3 ( double  q2)
inline

Definition at line 633 of file MVll.h.

634 {
635 updateParameters();
636// return (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2) * 1./(16. * M_PI * M_PI * MM*MM) * fDeltaC9_0(q2) * V_0t(q2) - (MM2mMV2 - q2)/(4.*MV) * 1./(16. * M_PI * M_PI * MM*MM) * (fDeltaC9_m(q2) * V_m(q2) + fDeltaC9_p(q2) * V_p(q2))));
637 return 0.;
638 }

◆ getQCDfC9_1()

double MVll::getQCDfC9_1 ( double  q2,
double  cutoff 
)
inline

Definition at line 640 of file MVll.h.

641 {
642 updateParameters();
643 return (getQCDf_1(q2) - getQCDf_1(cutoff) * cutoff/q2).abs();
644 }
gslpp::complex getQCDf_1(double q2)
Definition: MVll.h:619

◆ getQCDfC9_2()

double MVll::getQCDfC9_2 ( double  q2,
double  cutoff 
)
inline

Definition at line 646 of file MVll.h.

647 {
648 updateParameters();
649 return (getQCDf_2(q2) - getQCDf_2(cutoff) * cutoff/q2).abs();
650 }
gslpp::complex getQCDf_2(double q2)
Definition: MVll.h:626

◆ getQCDfC9_3()

double MVll::getQCDfC9_3 ( double  q2,
double  cutoff 
)
inline

Definition at line 652 of file MVll.h.

653 {
654 updateParameters();
655 return (getQCDf_3(q2) - getQCDf_3(cutoff) * cutoff/q2).abs();
656 }
gslpp::complex getQCDf_3(double q2)
Definition: MVll.h:633

◆ getQCDfC9p_1()

double MVll::getQCDfC9p_1 ( double  cutoff)
inline

Definition at line 658 of file MVll.h.

659 {
660 updateParameters();
661 return (getQCDf_1(cutoff) * cutoff).abs();
662 }

◆ getQCDfC9p_2()

double MVll::getQCDfC9p_2 ( double  cutoff)
inline

Definition at line 664 of file MVll.h.

665 {
666 updateParameters();
667 return (getQCDf_2(cutoff) * cutoff).abs();
668 }

◆ getQCDfC9p_3()

double MVll::getQCDfC9p_3 ( double  cutoff)
inline

Definition at line 670 of file MVll.h.

671 {
672 updateParameters();
673 return (getQCDf_3(cutoff) * cutoff).abs();
674 }

◆ getS()

double MVll::getS ( double  q2)
inline

The form factor \( S \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( S \)

Definition at line 454 of file MVll.h.

455 {
456 updateParameters();
457 return S_L_pre/sqrt(lambda(q2)) * S_L(q2);
458 };

◆ getSigma()

double MVll::getSigma ( int  i,
double  q_2 
)

The value of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\).

Parameters
[in]iindex of the angular coefficient \( I_{i} \)
[in]

_form#752 value of the function

Returns
\( <\Sigma_{i}> \)

Definition at line 2913 of file MVll.cpp.

2914{
2915 updateParameters();
2916
2917 switch (i) {
2918 case 0:
2919 return getSigma1c(q_2);
2920 break;
2921 case 1:
2922 return getSigma1s(q_2);
2923 break;
2924 case 2:
2925 return getSigma2c(q_2);
2926 break;
2927 case 3:
2928 return getSigma2s(q_2);
2929 break;
2930 case 4:
2931 return getSigma3(q_2);
2932 break;
2933 case 5:
2934 return getSigma4(q_2);
2935 break;
2936 case 6:
2937 return getSigma5(q_2);
2938 break;
2939 case 7:
2940 return getSigma6s(q_2);
2941 break;
2942 case 8:
2943 return getSigma6c(q_2);
2944 break;
2945 case 9:
2946 return getSigma7(q_2);
2947 break;
2948 case 10:
2949 return getSigma8(q_2);
2950 break;
2951 case 11:
2952 return getSigma9(q_2);
2953 break;
2954 default:
2955 std::stringstream out;
2956 out << i;
2957 throw std::runtime_error("MVll::getSigma: index " + out.str() + " not implemented");
2958 }
2959}

◆ getT0()

double MVll::getT0 ( double  q2)
inline

The form factor \( T_0 \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( T_0 \)

Definition at line 421 of file MVll.h.

422 {
423 updateParameters();
424 return twoMM3/sqrt(q2 * lambda(q2)) * T_0t(q2);
425 };

◆ getTm()

double MVll::getTm ( double  q2)
inline

The form factor \( T_- \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( T_- \)

Definition at line 443 of file MVll.h.

444 {
445 updateParameters();
446 return T_m(q2);
447 };

◆ getTp()

double MVll::getTp ( double  q2)
inline

The form factor \( T_+ \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( T_+ \)

Definition at line 432 of file MVll.h.

433 {
434 updateParameters();
435 return T_p(q2);
436 };

◆ getV0()

double MVll::getV0 ( double  q2)
inline

The form factor \( V_0 \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( V_0 \)

Definition at line 389 of file MVll.h.

390 {
391 updateParameters();
392 return (2. * MM * sqrt(q2))/sqrt(lambda(q2)) * V_0t(q2);
393 };

◆ getVm()

double MVll::getVm ( double  q2)
inline

The form factor \( V_- \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( V_- \)

Definition at line 411 of file MVll.h.

412 {
413 return V_m(q2);
414 };

◆ getVp()

double MVll::getVp ( double  q2)
inline

The form factor \( V_+ \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( V_+ \)

Definition at line 400 of file MVll.h.

401 {
402 updateParameters();
403 return V_p(q2);
404 };

◆ getwidth()

double MVll::getwidth ( )
inline

The width of the meson M.

Returns
\( \Gamma_M \)

Definition at line 363 of file MVll.h.

363 {
364 updateParameters();
365 return width;
366 }
double width
Definition: MVll.h:859

◆ H_A_0()

gslpp::complex MVll::H_A_0 ( double  q2,
bool  bar 
)

The helicity amplitude \( H_A^0 \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_A^0 \)

Definition at line 2551 of file MVll.cpp.

2552{
2553 if (lep == QCD::NEUTRINO_1) {
2554 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu - etaV * pow(-1, angmomV) * C_R_nunu) * V_0t(q2);
2555 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu.conjugate()) * V_0t(q2);
2556 }
2557 if (!bar) return gslpp::complex::i() * NN * (-C_10 + etaV * pow(-1, angmomV) * C_10p) * V_0t(q2);
2558 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() + etaV * pow(-1, angmomV) * C_10p.conjugate()) * V_0t(q2);
2559}
int etaV
Definition: MVll.h:863
double angmomV
Definition: MVll.h:862
@ NEUTRINO_1
Definition: QCD.h:311

◆ H_A_m()

gslpp::complex MVll::H_A_m ( double  q2,
bool  bar 
)

The helicity amplitude \( H_A^- \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_A^- \)

Definition at line 2571 of file MVll.cpp.

2572{
2573 if (lep == QCD::NEUTRINO_1) {
2574 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu * V_p(q2));
2575 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu.conjugate() * V_p(q2));
2576 }
2577 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_m(q2) + etaV * pow(-1, angmomV) * C_10p * V_p(q2));
2578 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_m(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_p(q2));
2579}

◆ H_A_p()

gslpp::complex MVll::H_A_p ( double  q2,
bool  bar 
)

The helicity amplitude \( H_A^+ \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_A^+ \)

Definition at line 2561 of file MVll.cpp.

2562{
2563 if (lep == QCD::NEUTRINO_1) {
2564 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu * V_m(q2));
2565 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu.conjugate() * V_m(q2));
2566 }
2567 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_p(q2) + etaV * pow(-1, angmomV) * C_10p * V_m(q2));
2568 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_p(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_m(q2));
2569}

◆ h_func()

gslpp::complex MVll::h_func ( double  s,
double  m2 
)
private

Definition at line 1914 of file MVll.cpp.

1915{
1916 if (m2 == 0.) return 8. / 27. + 4. * gslpp::complex::i() * M_PI / 9. + 8. * log(mu_b) / 9. - 4. * log(s) / 9.;
1917 if (s == 0.) return -4. / 9. * (1. + log(m2 / mu_b / mu_b));
1918
1919 double z = 4 * m2 / s;
1920 gslpp::complex term;
1921 if (z > 1) term = atan(1. / sqrt(z - 1.));
1922 else term = log((1. + sqrt(1. - z)) / sqrt(z)) - ihalfMPI;
1923
1924 return -4. / 9. * log(m2 / mu_b / mu_b) + 8. / 27. + 4. / 9. * z - 4. / 9. * (2. + z) * sqrt(std::abs(z - 1.)) * term;
1925
1926}

◆ h_lambda()

gslpp::complex MVll::h_lambda ( int  hel,
double  q2 
)

The non-pertubative ccbar contributions to the helicity amplitudes.

Parameters
helhelicity
q2\(q^2\)
Returns
\(h_{hel}(q^2)\)

Definition at line 2463 of file MVll.cpp.

2464{
2465 if (zExpansion) {
2466 if (hel == 0)
2467 return DeltaC9_zExpansion(q2, 0) * MM / sqrt(q2);
2468 else if (hel == 1)
2469 return (DeltaC9_zExpansion(q2, 1) - DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2470 else
2471 return (DeltaC9_zExpansion(q2, 1) + DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2472 } else if (dispersion) {
2473 if (hel == 0) return SU3_breaking * (-sqrt(q2) / (MM2 * 16. * M_PI * M_PI) * ((MMpMV2 * (MM2mMV2 - q2) * A_1(q2) * DeltaC9_KD(q2, 1) - lambda(q2) * A_2(q2) * DeltaC9_KD(q2, 2)) / (4. * MV * MM * MMpMV)));
2474 else if (hel == 1) {
2475 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) * (
2476 (MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2477 - sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2478 else return SU3_breaking * (-q2 / (MM2 * 16. * M_PI * M_PI) * ((MMpMV * A_1(q2)) / (2. * MM) * DeltaC9_KD(q2, 1) - sqrt(lambda(q2)) / (2. * MM * MMpMV) * V(q2) * DeltaC9_KD(q2, 0)));
2479 } else {
2480 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) *
2481 ((MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2482 + sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2483 else return SU3_breaking * (-q2 / (MM2 * 16. * M_PI * M_PI) * ((MMpMV * A_1(q2)) / (2. * MM) * DeltaC9_KD(q2, 1) + sqrt(lambda(q2)) / (2. * MM * MMpMV) * V(q2) * DeltaC9_KD(q2, 0)));
2484 }
2485 } else {
2486 if (h_pole == true) return SU3_breaking * (h_0[hel]+(1. - h_2[hel]) * q2 * (h_1[hel] - h_0[hel]) / (q2 - h_2[hel]));
2487 else if (hel == 1) return SU3_breaking * (h_0[1] + h_1[1] * q2 + h_2[1] * q2 * q2 + (twoMboMM * h_0[2] * T_p(q2) + h_1[2] * q2 / MM2 * V_p(q2)) / sixteenM_PI2);
2488 else if (hel == 2) return SU3_breaking * (twoMboMM * h_0[2] * T_m(q2) + h_1[2] * q2 / MM2 * V_m(q2)) / sixteenM_PI2 + h_2[2] * q2 * q2;
2489 else return SU3_breaking * ((h_0[hel] + h_1[hel] * q2) * sqrt(q2) + (twoMboMM * h_0[2] * T_0t(q2) + h_1[2] * q2 * V_0t(q2) / MM2) / sixteenM_PI2);
2490 }
2491}
gslpp::complex exp_Phase[3]
Definition: MVll.h:844
A class for the correction in .

◆ H_P()

gslpp::complex MVll::H_P ( double  q2,
bool  bar 
)

The helicity amplitude \( H_P \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_P \)

Definition at line 2589 of file MVll.cpp.

2590{
2591 if (lep == QCD::NEUTRINO_1) return 0.;
2592
2593 if (!bar) return gslpp::complex::i() * NN * (MboMW * (C_P - etaV * pow(-1, angmomV) * C_Pp) + twoMlepMb / q2 * (C_10 * (1. + etaV * pow(-1, angmomV) * MsoMb) - C_10p * (etaV * pow(-1, angmomV) + MsoMb))) * S_L(q2);
2594 return gslpp::complex::i() * NN_conjugate * (MboMW * (C_P.conjugate() - etaV * pow(-1, angmomV) * C_Pp.conjugate()) + twoMlepMb / q2 * (C_10.conjugate()*(1. + etaV * pow(-1, angmomV) * MsoMb) - C_10p.conjugate()*(etaV * pow(-1, angmomV) + MsoMb))) * S_L(q2);
2595}

◆ H_S()

gslpp::complex MVll::H_S ( double  q2,
bool  bar 
)

The helicity amplitude \( H_S \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_S \)

Definition at line 2581 of file MVll.cpp.

2582{
2583 if (lep == QCD::NEUTRINO_1) return 0.;
2584
2585 if (!bar) return gslpp::complex::i() * NN * MboMW * (C_S - etaV * pow(-1, angmomV) * C_Sp) * S_L(q2);
2586 return gslpp::complex::i() * NN_conjugate * MboMW * (C_S.conjugate() - etaV * pow(-1, angmomV) * C_Sp.conjugate()) * S_L(q2);
2587}

◆ H_V_0()

gslpp::complex MVll::H_V_0 ( double  q2,
bool  bar 
)

The helicity amplitude \( H_V^0 \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_V^0 \)

Definition at line 2520 of file MVll.cpp.

2521{
2522 if (lep == QCD::NEUTRINO_1) {
2523 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu - etaV * pow(-1, angmomV) * C_R_nunu) * V_0t(q2);
2524 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu.conjugate()) * V_0t(q2);
2525 }
2526 if (!bar) return -gslpp::complex::i() * NN * (((C_9 + deltaC9_QCDF(q2, !bar, SPLINE) /*+ fDeltaC9_0(q2)*/ + Y(q2)) - etaV * pow(-1, angmomV) * C_9p) * V_0t(q2) + T_0(q2, !bar) + MM2 / q2 * (twoMboMM * (C_7 + deltaC7_QCDF(q2, !bar, SPLINE) - etaV * pow(-1, angmomV) * C_7p) * T_0t(q2) - sixteenM_PI2 * h_lambda(0, q2)));
2527 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() + deltaC9_QCDF(q2, bar, SPLINE) /*+ fDeltaC9_0(q2)*/ + Y(q2)) - etaV * pow(-1, angmomV) * C_9p.conjugate()) * V_0t(q2) + T_0(q2, bar) + MM2 / q2 * (twoMboMM * (C_7.conjugate() + deltaC7_QCDF(q2, bar, SPLINE) - etaV * pow(-1, angmomV) * C_7p.conjugate()) * T_0t(q2) - sixteenM_PI2 * h_lambda(0, q2)));
2528
2529}
gslpp::complex deltaC7_QCDF(double q2, bool conjugate, bool spline=false)
QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et....
Definition: MVll.cpp:1730
gslpp::complex deltaC9_QCDF(double q2, bool conjugate, bool spline=false)
QCDF Correction from various BFS papers (hep-ph/0403185, hep-ph/0412400) and Greub et....
Definition: MVll.cpp:1778
gslpp::complex T_0(double q2, bool conjugate)
Definition: MVll.cpp:2247

◆ H_V_m()

gslpp::complex MVll::H_V_m ( double  q2,
bool  bar 
)

The helicity amplitude \( H_V^- \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_V^- \)

Definition at line 2541 of file MVll.cpp.

2542{
2543 if (lep == QCD::NEUTRINO_1) {
2544 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu * V_p(q2));
2545 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu.conjugate() * V_p(q2));
2546 }
2547 if (!bar) return -gslpp::complex::i() * NN * (((C_9 + deltaC9_QCDF(q2, !bar, SPLINE) /*+ fDeltaC9_m(q2)*/ + Y(q2)) * V_m(q2) - etaV * pow(-1, angmomV) * C_9p * V_p(q2)) + T_minus(q2, !bar) + MM2 / q2 * (twoMboMM * ((C_7 + deltaC7_QCDF(q2, !bar, SPLINE)) * T_m(q2) - etaV * pow(-1, angmomV) * C_7p * T_p(q2)) - sixteenM_PI2 * h_lambda(2, q2)));
2548 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() + deltaC9_QCDF(q2, bar, SPLINE) /*+ fDeltaC9_m(q2)*/ + Y(q2)) * V_m(q2) - etaV * pow(-1, angmomV) * C_9p.conjugate() * V_p(q2)) + T_minus(q2, bar) + MM2 / q2 * (twoMboMM * ((C_7.conjugate() + deltaC7_QCDF(q2, bar, SPLINE)) * T_m(q2) - etaV * pow(-1, angmomV) * C_7p.conjugate() * T_p(q2)) - sixteenM_PI2 * h_lambda(2, q2)));
2549}
gslpp::complex T_minus(double q2, bool conjugate)
Definition: MVll.cpp:2225

◆ H_V_p()

gslpp::complex MVll::H_V_p ( double  q2,
bool  bar 
)

The helicity amplitude \( H_V^+ \) .

Parameters
[in]q2\(q^2\) of the decay
Returns
\( H_V^+ \)

Definition at line 2531 of file MVll.cpp.

2532{
2533 if (lep == QCD::NEUTRINO_1) {
2534 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu * V_m(q2));
2535 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu.conjugate() * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu.conjugate() * V_m(q2));
2536 }
2537 if (!bar) return -gslpp::complex::i() * NN * (((C_9 + deltaC9_QCDF(q2, !bar, SPLINE) /*+ fDeltaC9_p(q2)*/ + Y(q2)) * V_p(q2) - etaV * pow(-1, angmomV) * C_9p * V_m(q2)) + MM2 / q2 * (twoMboMM * ((C_7 + deltaC7_QCDF(q2, !bar, SPLINE)) * T_p(q2) - etaV * pow(-1, angmomV) * C_7p * T_m(q2)) - sixteenM_PI2 * h_lambda(1, q2)));
2538 return -gslpp::complex::i() * NN_conjugate * (((C_9.conjugate() + deltaC9_QCDF(q2, bar, SPLINE) /*+ fDeltaC9_p(q2)*/ + Y(q2)) * V_p(q2) - etaV * pow(-1, angmomV) * C_9p.conjugate() * V_m(q2)) + MM2 / q2 * (twoMboMM * ((C_7.conjugate() + deltaC7_QCDF(q2, bar, SPLINE)) * T_p(q2) - etaV * pow(-1, angmomV) * C_7p.conjugate() * T_m(q2)) - sixteenM_PI2 * h_lambda(1, q2)));
2539}

◆ I1()

gslpp::complex MVll::I1 ( double  q2,
double  u,
double  m2 
)
private

Definition at line 1883 of file MVll.cpp.

1884{
1885 if (m2 == 0.) return 1.;
1886
1887 ubar = 1. - u;
1888 xp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1889 xm = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1890 yp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / q2);
1891 ym = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / q2);
1892 L1xp = log(1. - 1. / xp) * log(1. - xp) - M_PI2osix + dilog(xp / (xp - 1.));
1893 L1xm = log(1. - 1. / xm) * log(1. - xm) - M_PI2osix + dilog(xm / (xm - 1.));
1894 L1yp = log(1. - 1. / yp) * log(1. - yp) - M_PI2osix + dilog(yp / (yp - 1.));
1895 L1ym = log(1. - 1. / ym) * log(1. - ym) - M_PI2osix + dilog(ym / (ym - 1.));
1896
1897 return 1. + 2. * m2 / ubar / (MM2 - q2)*(L1xp + L1xm - L1yp - L1ym);
1898}

◆ initializeMVllParameters()

std::vector< std::string > MVll::initializeMVllParameters ( )

A method for initializing the parameters necessary for MVll.

Returns
the vector of MVll specific parameters

Definition at line 160 of file MVll.cpp.

161{
167
168#if NFPOLARBASIS_MVLL
170 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
171 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
172 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
173 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
174 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
175 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
176 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
177 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
178 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
179 else mvllParameters = make_vector<std::string>()
180 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
181 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
182 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
183 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
184 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
185 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
186 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
188 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
189 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
190 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
191 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
192 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
193 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
194 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
195 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
196 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2";
197 else mvllParameters = make_vector<std::string>()
198 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
199 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
200 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
201 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
202 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
203 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
204 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2";
205#else
207 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
208 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
209 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
210 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
211 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
212 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
213 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
214 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
215 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
216 else mvllParameters = make_vector<std::string>()
217 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
218 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
219 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
220 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
221 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
222 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
223 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
225 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
226 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
227 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
228 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
229 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
230 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
231 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
232 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
233 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2";
234 else mvllParameters = make_vector<std::string>()
235 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
236 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
237 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
238 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
239 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
240 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
241 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2";
242#endif
243 else {
244 std::stringstream out;
245 out << vectorM;
246 throw std::runtime_error("MVll: vector " + out.str() + " not implemented");
247 }
248
249 if (dispersion) {
250 mvllParameters.clear();
252 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
253 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
254 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
255 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
256 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
257 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
258 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
259 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
260 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
261 else mvllParameters = make_vector<std::string>()
262 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
263 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
264 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
265 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
266 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
267 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
268 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
270 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
271 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
272 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
273 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
274 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
275 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
276 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
277 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
278 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3";
279 else mvllParameters = make_vector<std::string>()
280 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
281 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
282 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
283 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
284 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
285 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
286 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3";
287 }
288
289 if (zExpansion) {
290 mvllParameters.clear();
292 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
293 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
294 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
295 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
296 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
297 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
298 << "DeltaC9" << "DeltaC10"
299 << "re_beta_0_0" << "re_beta_0_1" << "re_beta_0_2" << "re_beta_0_3" << "re_beta_0_4" << "re_beta_0_5" << "re_beta_0_6"
300 << "im_beta_0_0" << "im_beta_0_1" << "im_beta_0_2" << "im_beta_0_3" << "im_beta_0_4" << "im_beta_0_5" << "im_beta_0_6"
301 << "re_beta_1_0" << "re_beta_1_1" << "re_beta_1_2" << "re_beta_1_3" << "re_beta_1_4" << "re_beta_1_5" << "re_beta_1_6"
302 << "im_beta_1_0" << "im_beta_1_1" << "im_beta_1_2" << "im_beta_1_3" << "im_beta_1_4" << "im_beta_1_5" << "im_beta_1_6"
303 << "re_beta_2_0" << "re_beta_2_1" << "re_beta_2_2" << "re_beta_2_3" << "re_beta_2_4" << "re_beta_2_5" << "re_beta_2_6"
304 << "im_beta_2_0" << "im_beta_2_1" << "im_beta_2_2" << "im_beta_2_3" << "im_beta_2_4" << "im_beta_2_5" << "im_beta_2_6"
305 << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
306 else mvllParameters = make_vector<std::string>()
307 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
308 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
309 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
310 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23" << "DeltaC9" << "DeltaC10"
311 << "re_beta_0_0" << "re_beta_0_1" << "re_beta_0_2" << "re_beta_0_3" << "re_beta_0_4" << "re_beta_0_5" << "re_beta_0_6"
312 << "im_beta_0_0" << "im_beta_0_1" << "im_beta_0_2" << "im_beta_0_3" << "im_beta_0_4" << "im_beta_0_5" << "im_beta_0_6"
313 << "re_beta_1_0" << "re_beta_1_1" << "re_beta_1_2" << "re_beta_1_3" << "re_beta_1_4" << "re_beta_1_5" << "re_beta_1_6"
314 << "im_beta_1_0" << "im_beta_1_1" << "im_beta_1_2" << "im_beta_1_3" << "im_beta_1_4" << "im_beta_1_5" << "im_beta_1_6"
315 << "re_beta_2_0" << "re_beta_2_1" << "re_beta_2_2" << "re_beta_2_3" << "re_beta_2_4" << "re_beta_2_5" << "re_beta_2_6"
316 << "im_beta_2_0" << "im_beta_2_1" << "im_beta_2_2" << "im_beta_2_3" << "im_beta_2_4" << "im_beta_2_5" << "im_beta_2_6"
317 << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
319 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
320 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
321 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
322 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
323 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
324 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
325 << "DeltaC9" << "DeltaC10"
326 << "re_beta_0_0" << "re_beta_0_1" << "re_beta_0_2" << "re_beta_0_3" << "re_beta_0_4" << "re_beta_0_5" << "re_beta_0_6"
327 << "im_beta_0_0" << "im_beta_0_1" << "im_beta_0_2" << "im_beta_0_3" << "im_beta_0_4" << "im_beta_0_5" << "im_beta_0_6"
328 << "re_beta_1_0" << "re_beta_1_1" << "re_beta_1_2" << "re_beta_1_3" << "re_beta_1_4" << "re_beta_1_5" << "re_beta_1_6"
329 << "im_beta_1_0" << "im_beta_1_1" << "im_beta_1_2" << "im_beta_1_3" << "im_beta_1_4" << "im_beta_1_5" << "im_beta_1_6"
330 << "re_beta_2_0" << "re_beta_2_1" << "re_beta_2_2" << "re_beta_2_3" << "re_beta_2_4" << "re_beta_2_5" << "re_beta_2_6"
331 << "im_beta_2_0" << "im_beta_2_1" << "im_beta_2_2" << "im_beta_2_3" << "im_beta_2_4" << "im_beta_2_5" << "im_beta_2_6";
332 else mvllParameters = make_vector<std::string>()
333 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
334 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
335 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
336 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23" << "DeltaC9" << "DeltaC10"
337 << "re_beta_0_0" << "re_beta_0_1" << "re_beta_0_2" << "re_beta_0_3" << "re_beta_0_4" << "re_beta_0_5" << "re_beta_0_6"
338 << "im_beta_0_0" << "im_beta_0_1" << "im_beta_0_2" << "im_beta_0_3" << "im_beta_0_4" << "im_beta_0_5" << "im_beta_0_6"
339 << "re_beta_1_0" << "re_beta_1_1" << "re_beta_1_2" << "re_beta_1_3" << "re_beta_1_4" << "re_beta_1_5" << "re_beta_1_6"
340 << "im_beta_1_0" << "im_beta_1_1" << "im_beta_1_2" << "im_beta_1_3" << "im_beta_1_4" << "im_beta_1_5" << "im_beta_1_6"
341 << "re_beta_2_0" << "re_beta_2_1" << "re_beta_2_2" << "re_beta_2_3" << "re_beta_2_4" << "re_beta_2_5" << "re_beta_2_6"
342 << "im_beta_2_0" << "im_beta_2_1" << "im_beta_2_2" << "im_beta_2_3" << "im_beta_2_4" << "im_beta_2_5" << "im_beta_2_6";
343 }
344
345 if (FixedWCbtos)
346 if (lep != QCD::NEUTRINO_1) mvllParameters.insert(mvllParameters.end(), { "C7_SM", "C9_SM", "C10_SM" });
347 else mvllParameters.insert(mvllParameters.end(), { "CLnunu_SM" });
348
351 return mvllParameters;
352}
bool getFlagMVll_DM() const
Definition: Flavour.h:379
bool getFlagUseDispersionRelation() const
Definition: Flavour.h:343
bool getFlagFixedWCbtos() const
Definition: Flavour.h:363
bool getFlagNeutrinoTree() const
Definition: Flavour.h:383
bool getFlagUsezExpansion() const
Definition: Flavour.h:347
std::vector< std::string > mvllParameters
Definition: MVll.h:833
@ K_star
Definition: QCD.h:349
@ K_star_P
Definition: QCD.h:350
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
const Flavour & getFlavour() const

◆ integrateDelta()

double MVll::integrateDelta ( int  i,
double  q_min,
double  q_max 
)

The integral of \( \Delta_{i} \) from \(q_{min}\) to \(q_{max}\).

Parameters
[in]iindex of the angular coefficient \( I_{i} \)
[in]q_minminimum q^2 of the integral
[in]q_maxmaximum q^2 of the integral
Returns
\( <\Delta_{i}> \)

Definition at line 2961 of file MVll.cpp.

2962{
2963 updateParameters();
2964
2965 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2966
2967 old_handler = gsl_set_error_handler_off();
2968
2969 switch (i) {
2970 case 0:
2971 if (delta0Cached[qbin] == 0) {
2972 FD = convertToGslFunction(bind(&MVll::getDelta1c, &(*this), _1));
2973 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2974 cacheDelta0[qbin] = avaDelta;
2975 delta0Cached[qbin] = 1;
2976 }
2977 return cacheDelta0[qbin];
2978 break;
2979 case 1:
2980 if (delta1Cached[qbin] == 0) {
2981 FD = convertToGslFunction(bind(&MVll::getDelta1s, &(*this), _1));
2982 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2983 cacheDelta1[qbin] = avaDelta;
2984 delta1Cached[qbin] = 1;
2985 }
2986 return cacheDelta1[qbin];
2987 break;
2988 case 2:
2989 if (delta2Cached[qbin] == 0) {
2990 FD = convertToGslFunction(bind(&MVll::getDelta2c, &(*this), _1));
2991 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2992 cacheDelta2[qbin] = avaDelta;
2993 delta2Cached[qbin] = 1;
2994 }
2995 return cacheDelta2[qbin];
2996 break;
2997 case 3:
2998 if (delta3Cached[qbin] == 0) {
2999 FD = convertToGslFunction(bind(&MVll::getDelta2s, &(*this), _1));
3000 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3001 cacheDelta3[qbin] = avaDelta;
3002 delta3Cached[qbin] = 1;
3003 }
3004 return cacheDelta3[qbin];
3005 break;
3006 case 6:
3007 if (delta6Cached[qbin] == 0) {
3008 FD = convertToGslFunction(bind(&MVll::getDelta5, &(*this), _1));
3009 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3010 cacheDelta6[qbin] = avaDelta;
3011 delta6Cached[qbin] = 1;
3012 }
3013 return cacheDelta6[qbin];
3014 break;
3015 case 7:
3016 if (delta7Cached[qbin] == 0) {
3017 FD = convertToGslFunction(bind(&MVll::getDelta6s, &(*this), _1));
3018 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3019 cacheDelta7[qbin] = avaDelta;
3020 delta7Cached[qbin] = 1;
3021 }
3022 return cacheDelta7[qbin];
3023 break;
3024 case 8:
3025 if (delta8Cached[qbin] == 0) {
3026 FD = convertToGslFunction(bind(&MVll::getDelta6c, &(*this), _1));
3027 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3028 cacheDelta8[qbin] = avaDelta;
3029 delta8Cached[qbin] = 1;
3030 }
3031 return cacheDelta8[qbin];
3032 break;
3033 case 10:
3034 if (delta10Cached[qbin] == 0) {
3035 FD = convertToGslFunction(bind(&MVll::getDelta8, &(*this), _1));
3036 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3037 cacheDelta10[qbin] = avaDelta;
3038 delta10Cached[qbin] = 1;
3039 }
3040 return cacheDelta10[qbin];
3041 break;
3042 case 11:
3043 if (delta11Cached[qbin] == 0) {
3044 FD = convertToGslFunction(bind(&MVll::getDelta9, &(*this), _1));
3045 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3046 cacheDelta11[qbin] = avaDelta;
3047 delta11Cached[qbin] = 1;
3048 }
3049 return cacheDelta11[qbin];
3050 break;
3051 default:
3052 std::stringstream out;
3053 out << i;
3054 throw std::runtime_error("MVll::integrateDelta: index " + out.str() + " not implemented");
3055 }
3056
3057 gsl_set_error_handler(old_handler);
3058
3059}

◆ integrateSigma()

double MVll::integrateSigma ( int  i,
double  q_min,
double  q_max 
)

The integral of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\).

Parameters
[in]iindex of the angular coefficient \( I_{i} \)
[in]q_minminimum q^2 of the integral
[in]q_maxmaximum q^2 of the integral
Returns
\( <\Sigma_{i}> \)

Definition at line 2786 of file MVll.cpp.

2787{
2788 updateParameters();
2789
2790 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2791
2792 old_handler = gsl_set_error_handler_off();
2793
2794 switch (i) {
2795 case 0:
2796 if (sigma0Cached[qbin] == 0) {
2797 FS = convertToGslFunction(bind(&MVll::getSigma1c, &(*this), _1));
2798 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2799 cacheSigma0[qbin] = avaSigma;
2800 sigma0Cached[qbin] = 1;
2801 }
2802 return cacheSigma0[qbin];
2803 break;
2804 case 1:
2805 if (sigma1Cached[qbin] == 0) {
2806 FS = convertToGslFunction(bind(&MVll::getSigma1s, &(*this), _1));
2807 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2808 cacheSigma1[qbin] = avaSigma;
2809 sigma1Cached[qbin] = 1;
2810 }
2811 return cacheSigma1[qbin];
2812 break;
2813 case 2:
2814 if (sigma2Cached[qbin] == 0) {
2815 FS = convertToGslFunction(bind(&MVll::getSigma2c, &(*this), _1));
2816 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2817 cacheSigma2[qbin] = avaSigma;
2818 sigma2Cached[qbin] = 1;
2819 }
2820 return cacheSigma2[qbin];
2821 break;
2822 case 3:
2823 if (sigma3Cached[qbin] == 0) {
2824 FS = convertToGslFunction(bind(&MVll::getSigma2s, &(*this), _1));
2825 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2826 cacheSigma3[qbin] = avaSigma;
2827 sigma3Cached[qbin] = 1;
2828 }
2829 return cacheSigma3[qbin];
2830 break;
2831 case 4:
2832 if (sigma4Cached[qbin] == 0) {
2833 FS = convertToGslFunction(bind(&MVll::getSigma3, &(*this), _1));
2834 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2835 cacheSigma4[qbin] = avaSigma;
2836 sigma4Cached[qbin] = 1;
2837 }
2838 return cacheSigma4[qbin];
2839 break;
2840 case 5:
2841 if (sigma5Cached[qbin] == 0) {
2842 FS = convertToGslFunction(bind(&MVll::getSigma4, &(*this), _1));
2843 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2844 cacheSigma5[qbin] = avaSigma;
2845 sigma5Cached[qbin] = 1;
2846 }
2847 return cacheSigma5[qbin];
2848 break;
2849 case 6:
2850 if (sigma6Cached[qbin] == 0) {
2851 FS = convertToGslFunction(bind(&MVll::getSigma5, &(*this), _1));
2852 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2853 cacheSigma6[qbin] = avaSigma;
2854 sigma6Cached[qbin] = 1;
2855 }
2856 return cacheSigma6[qbin];
2857 break;
2858 case 7:
2859 if (sigma7Cached[qbin] == 0) {
2860 FS = convertToGslFunction(bind(&MVll::getSigma6s, &(*this), _1));
2861 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2862 cacheSigma7[qbin] = avaSigma;
2863 sigma7Cached[qbin] = 1;
2864 }
2865 return cacheSigma7[qbin];
2866 break;
2867 case 8:
2868 if (sigma8Cached[qbin] == 0) {
2869 FS = convertToGslFunction(bind(&MVll::getSigma6c, &(*this), _1));
2870 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2871 cacheSigma8[qbin] = avaSigma;
2872 sigma8Cached[qbin] = 1;
2873 }
2874 return cacheSigma8[qbin];
2875 break;
2876 case 9:
2877 if (sigma9Cached[qbin] == 0) {
2878 FS = convertToGslFunction(bind(&MVll::getSigma7, &(*this), _1));
2879 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2880 cacheSigma9[qbin] = avaSigma;
2881 sigma9Cached[qbin] = 1;
2882 }
2883 return cacheSigma9[qbin];
2884 break;
2885 case 10:
2886 if (sigma10Cached[qbin] == 0) {
2887 FS = convertToGslFunction(bind(&MVll::getSigma8, &(*this), _1));
2888 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2889 cacheSigma10[qbin] = avaSigma;
2890 sigma10Cached[qbin] = 1;
2891 }
2892 return cacheSigma10[qbin];
2893 break;
2894 case 11:
2895 if (sigma11Cached[qbin] == 0) {
2896 FS = convertToGslFunction(bind(&MVll::getSigma9, &(*this), _1));
2897 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2898 cacheSigma11[qbin] = avaSigma;
2899 sigma11Cached[qbin] = 1;
2900 }
2901 return cacheSigma11[qbin];
2902 break;
2903 default:
2904 std::stringstream out;
2905 out << i;
2906 throw std::runtime_error("MVll::integrateSigma: index " + out.str() + " not implemented");
2907 }
2908
2909 gsl_set_error_handler(old_handler);
2910
2911}

◆ integrateSigmaTree()

double MVll::integrateSigmaTree ( double  q_min,
double  q_max 
)

The integral of \( \Sigma_{tree} \) from \(q_{min}\) to \(q_{max}\) (arxiv/2301.06990)

Parameters
[in]q_minminimum q^2 of the integral
[in]q_maxmaximum q^2 of the integral
Returns
\( <\Sigma_{tree}> \)

Definition at line 3060 of file MVll.cpp.

3061{
3062 if (lep != QCD::NEUTRINO_1 or meson != QCD::B_P or !NeutrinoTree_flag) return 0.;
3063
3064 updateParameters();
3065
3066 //phase space limit where tree-level contribution is relevant (0908.1174)
3067 double q_cut = (mtau2 - MV2) * (MM2 - mtau2) / mtau2;
3068 if (q_max >= q_cut) {
3069 if (q_min == 0.) return getintegratedSigmaTree();
3070 q_max = q_cut;
3071 }
3072
3073 double prefactor = mySM.getMesons(meson).getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (64. * M_PI2 * MM3 * Gammatau) * mtau2 * mtau;
3074
3075 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3076
3077 old_handler = gsl_set_error_handler_off();
3078
3079 if (sigmaTreeCached[qbin] == 0) {
3080 FD = convertToGslFunction(bind(&MVll::SigmaTree, &(*this), _1));
3081 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_sigmaTree, &avaSigmaTree, &errSigmaTree, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3082 cacheSigmaTree[qbin] = avaSigmaTree;
3083 sigmaTreeCached[qbin] = 1;
3084 }
3085 return prefactor * cacheSigmaTree[qbin];
3086
3087 gsl_set_error_handler(old_handler);
3088}
double getintegratedSigmaTree()
The integral of from 0 to .
Definition: MVll.cpp:3095
double SigmaTree(double q2)
Definition: MVll.cpp:3090

◆ lambda_B_minus()

gslpp::complex MVll::lambda_B_minus ( double  q2)
private

Definition at line 1999 of file MVll.cpp.

2000{
2001 double w0 = mySM.getMesons(meson).getLambdaM();
2002 return 1. / (exp(-q2 / MM / w0) / w0 * (-gsl_sf_expint_Ei(q2 / MM / w0) + gslpp::complex::i() * M_PI));
2003}
const double & getLambdaM() const
Definition: Meson.h:402

◆ phi_V()

double MVll::phi_V ( double  u)
private

QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.

Parameters
uintegration variable in the range [0, 1]
Returns
\( \Delta L_{1} \)

Definition at line 1994 of file MVll.cpp.

1995{
1996 return 6. * u * (1. - u) * (1. + mySM.getMesons(vectorM).getGegenalpha(0) * gsl_sf_gegenpoly_1(3. / 2., (2. * u - 1.)) + mySM.getMesons(vectorM).getGegenalpha(1) * gsl_sf_gegenpoly_2(3. / 2., (2. * u - 1.)));
1997}
const double & getGegenalpha(int i) const
A get method to get the Gegenbaur coefficient.
Definition: Meson.h:394

◆ QCDF_fit_func()

double MVll::QCDF_fit_func ( double *  x,
double *  p 
)
private

Definition at line 2087 of file MVll.cpp.

2088{
2089 return p[0] + p[1] * x[0] + p[2] * x[0] * x[0] + p[3] * x[0] * x[0] * x[0] + p[4] * x[0] * x[0] * x[0] * x[0] + p[5] * x[0] * x[0] * x[0] * x[0] * x[0] + p[6] * x[0] * x[0] * x[0] * x[0] * x[0] * x[0];
2090}

◆ SigmaTree()

double MVll::SigmaTree ( double  q2)
private

Definition at line 3090 of file MVll.cpp.

3091{
3092 return (MM2 - mtau2) * (mtau2 - MV2) - q2 * (mtau2 - 2. * MV2);
3093}

◆ spline_QCDF_func()

void MVll::spline_QCDF_func ( )
private

Definition at line 2156 of file MVll.cpp.

2157{
2158 int dim = GSL_INTERP_DIM;
2159 int dim_DC = GSL_INTERP_DIM_DC;
2160 double min = 0.001;
2161 double interval = (9.9 - min) / ((double) dim);
2162 double interval_DC = (9.9 - min) / ((double) dim_DC);
2163 double q2_spline[dim];
2164 double fq2_Re_T_perp[dim], fq2_Im_T_perp[dim], fq2_Re_T_para[dim], fq2_Im_T_para[dim];
2165 double q2_spline_DC[dim_DC];
2166 double fq2_Re_deltaC7_QCDF[dim_DC], fq2_Im_deltaC7_QCDF[dim_DC], fq2_Re_deltaC9_QCDF[dim_DC], fq2_Im_deltaC9_QCDF[dim_DC];
2167#if COMPUTECP
2168 double fq2_Re_T_perp_conj[dim], fq2_Im_T_perp_conj[dim], fq2_Re_T_para_conj[dim], fq2_Im_T_para_conj[dim];
2169 double fq2_Re_deltaC7_QCDF_conj[dim_DC], fq2_Im_deltaC7_QCDF_conj[dim_DC], fq2_Re_deltaC9_QCDF_conj[dim_DC], fq2_Im_deltaC9_QCDF_conj[dim_DC];
2170#endif
2171
2172 for (int i = 0; i < dim; i++) {
2173 q2_spline[i] = min + (double) i*interval;
2174 fq2_Re_T_perp[i] = T_perp_real(q2_spline[i], false);
2175 fq2_Im_T_perp[i] = T_perp_imag(q2_spline[i], false);
2176 fq2_Re_T_para[i] = T_para_real(q2_spline[i], false);
2177 fq2_Im_T_para[i] = T_para_imag(q2_spline[i], false);
2178
2179#if COMPUTECP
2180 fq2_Re_T_perp_conj[i] = T_perp_real(q2_spline[i], true);
2181 fq2_Im_T_perp_conj[i] = T_perp_imag(q2_spline[i], true);
2182 fq2_Re_T_para_conj[i] = T_para_real(q2_spline[i], true);
2183 fq2_Im_T_para_conj[i] = T_para_imag(q2_spline[i], true);
2184#endif
2185 }
2186 for (int i = 0; i < dim_DC; i++) {
2187 q2_spline_DC[i] = min + (double) i*interval_DC;
2188 fq2_Re_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).real();
2189 fq2_Im_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).imag();
2190 fq2_Re_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).real();
2191 fq2_Im_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).imag();
2192
2193#if COMPUTECP
2194 fq2_Re_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).real();
2195 fq2_Im_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).imag();
2196 fq2_Re_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).real();
2197 fq2_Im_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).imag();
2198#endif
2199 }
2200
2201 gsl_spline_init(spline_Re_T_perp, q2_spline, fq2_Re_T_perp, dim);
2202 gsl_spline_init(spline_Im_T_perp, q2_spline, fq2_Im_T_perp, dim);
2203 gsl_spline_init(spline_Re_T_para, q2_spline, fq2_Re_T_para, dim);
2204 gsl_spline_init(spline_Im_T_para, q2_spline, fq2_Im_T_para, dim);
2205
2206 gsl_spline_init(spline_Re_deltaC7_QCDF, q2_spline_DC, fq2_Re_deltaC7_QCDF, dim_DC);
2207 gsl_spline_init(spline_Im_deltaC7_QCDF, q2_spline_DC, fq2_Im_deltaC7_QCDF, dim_DC);
2208 gsl_spline_init(spline_Re_deltaC9_QCDF, q2_spline_DC, fq2_Re_deltaC9_QCDF, dim_DC);
2209 gsl_spline_init(spline_Im_deltaC9_QCDF, q2_spline_DC, fq2_Im_deltaC9_QCDF, dim_DC);
2210
2211#if COMPUTECP
2212 gsl_spline_init(spline_Re_T_perp_conj, q2_spline, fq2_Re_T_perp_conj, dim);
2213 gsl_spline_init(spline_Im_T_perp_conj, q2_spline, fq2_Im_T_perp_conj, dim);
2214 gsl_spline_init(spline_Re_T_para_conj, q2_spline, fq2_Re_T_para_conj, dim);
2215 gsl_spline_init(spline_Im_T_para_conj, q2_spline, fq2_Im_T_para_conj, dim);
2216
2217 gsl_spline_init(spline_Re_deltaC7_QCDF_conj, q2_spline_DC, fq2_Re_deltaC7_QCDF_conj, dim_DC);
2218 gsl_spline_init(spline_Im_deltaC7_QCDF_conj, q2_spline_DC, fq2_Im_deltaC7_QCDF_conj, dim_DC);
2219 gsl_spline_init(spline_Re_deltaC9_QCDF_conj, q2_spline_DC, fq2_Re_deltaC9_QCDF_conj, dim_DC);
2220 gsl_spline_init(spline_Im_deltaC9_QCDF_conj, q2_spline_DC, fq2_Im_deltaC9_QCDF_conj, dim_DC);
2221#endif
2222
2223}

◆ T_0()

gslpp::complex MVll::T_0 ( double  q2,
bool  conjugate 
)
private

Definition at line 2247 of file MVll.cpp.

2248{
2249 if (zExpansion)
2250 return 0.;
2251 else {
2252 #if COMPUTECP && SPLINE
2253 if (!conjugate) return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para, q2, acc_Re_T_para) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para, q2, acc_Im_T_para));
2254 else return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para_conj, q2, acc_Re_T_para_conj) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para_conj, q2, acc_Im_T_para_conj));
2255 #elif SPLINE
2256 return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (gsl_spline_eval(spline_Re_T_para, q2, acc_Re_T_para) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_para, q2, acc_Im_T_para));
2257 #endif
2258
2259 #if COMPUTECP && !SPLINE
2260 if (!conjugate) return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_para_res->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_para_res->GetParams())));
2261 else return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_para_res_conj->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_para_res_conj->GetParams())));
2262 #elif !SPLINE
2263 return -(1. - q2 / MM2)* (1. - q2 / MM2) * MM * mb_pole / sqrt(q2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_para_res->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_para_res->GetParams())));
2264 #endif
2265 }
2266}

◆ T_minus()

gslpp::complex MVll::T_minus ( double  q2,
bool  conjugate 
)
private

Definition at line 2225 of file MVll.cpp.

2226{
2227 if (zExpansion)
2228 return 0.;
2229 else {
2230 #if COMPUTECP && SPLINE
2231 if (!conjugate) return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp, q2, acc_Re_T_perp) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp, q2, acc_Im_T_perp));
2232 else return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp_conj, q2, acc_Re_T_perp_conj) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp_conj, q2, acc_Im_T_perp_conj));
2233 #elif SPLINE
2234 return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (gsl_spline_eval(spline_Re_T_perp, q2, acc_Re_T_perp) + gslpp::complex::i() * gsl_spline_eval(spline_Im_T_perp, q2, acc_Im_T_perp));
2235 #endif
2236
2237 #if COMPUTECP && !SPLINE
2238 if (!conjugate) return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_perp_res->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_perp_res->GetParams())));
2239 else return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_perp_res_conj->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_perp_res_conj->GetParams())));
2240 #elif !SPLINE
2241 return -2. * MM * mb_pole / q2 * (1. - q2 / MM2) * (QCDF_fit_func(&q2, const_cast<double *> (Re_T_perp_res->GetParams())) + gslpp::complex::i() * QCDF_fit_func(&q2, const_cast<double *> (Im_T_perp_res->GetParams())));
2242 #endif
2243 }
2244
2245}

◆ t_para()

gslpp::complex MVll::t_para ( double  q2,
double  u,
double  m2 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.

Parameters
uintegration variable in the range [0, 1]
m2mass square of the quark
Returns
\( t_{para} \)

Definition at line 1876 of file MVll.cpp.

1877{
1878 double EV = (MM2pMV2 - q2) / (2. * MM);
1879 double ubar = 1. - u;
1880 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + (ubar * MM2 + u * q2) / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1881}
gslpp::complex B0diff(double q2, double u, double m2)
Definition: MVll.cpp:1900
gslpp::complex I1(double q2, double u, double m2)
Definition: MVll.cpp:1883

◆ T_para_imag() [1/2]

double MVll::T_para_imag ( double  q2,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
conjugatea boolean to control conjugation
Returns
\( T_{para,+}^{total} \)

Definition at line 2079 of file MVll.cpp.

2080{
2081 FS = convertToGslFunction(bind(&MVll::T_para_imag, &(*this), q2, _1, conjugate));
2082 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2083
2084 return avaSigma;
2085}

◆ T_para_imag() [2/2]

double MVll::T_para_imag ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{para,+}^{total} \)

Definition at line 2043 of file MVll.cpp.

2044{
2045 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2046
2047 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (/* + */T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2048 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2049#if FULLNLOQCDF_MVLL
2050 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate) * phi_V(u);
2051#endif
2052 return sqrt(q2) * T_amp.imag();
2053}
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1837
double phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
Definition: MVll.cpp:1994
gslpp::complex T_para_plus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
Definition: MVll.cpp:1950
gslpp::complex T_para_minus_O8(double q2, double u)
QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribut...
Definition: MVll.cpp:1860
gslpp::complex lambda_B_minus(double q2)
Definition: MVll.cpp:1999
gslpp::complex T_para_minus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
Definition: MVll.cpp:1972

◆ T_para_minus_O8()

gslpp::complex MVll::T_para_minus_O8 ( double  q2,
double  u 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution.

Parameters
uintegration variable in the range [0, 1]
Returns
\( T_{perp,-}^{O8} \)

Definition at line 1860 of file MVll.cpp.

1861{
1862 double ubar = 1. - u;
1863
1864 return (alpha_s_mub / (3. * M_PI))*spectator_charge * 8. * C_8 / (ubar + u * q2 / MM2);
1865}
double spectator_charge
Definition: MVll.h:858

◆ T_para_minus_QSS()

gslpp::complex MVll::T_para_minus_QSS ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.

Parameters
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{para,-}^{QSS} \)

Definition at line 1972 of file MVll.cpp.

1973{
1974 double ubar = 1. - u;
1975 gslpp::complex h_mc = h_func(ubar * MM2 + u*q2, mc_pole * mc_pole);
1976#if FULLNLOQCDF_MVLL
1977 gslpp::complex h_mb = h_func(ubar*MM2 + u*q2, mb_pole*mb_pole);
1978 gslpp::complex h_0 = h_func(ubar*MM2 + u*q2, 0);
1979
1980 gslpp::complex T_t = (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6)
1981 + h_mb * (C_3 + 5.*C_4/6. + 16.*C_5 + 22.*C_6/3.)
1982 + h_0 * (C_3 + 17.*C_4/6. + 16.*C_5 + 82.*C_6/3.)
1983 - 8./27. * (-15.*C_4/2. + 12.*C_5 - 32.*C_6));
1984
1985 gslpp::complex T_u = (h_mc - h_0)*(C_2 - C_1/6.);
1986
1987 if (!conjugate) return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
1988 else return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
1989#else
1990 return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6));
1991#endif
1992}
gslpp::complex h_func(double s, double m2)
Definition: MVll.cpp:1914

◆ T_para_minus_WA()

gslpp::complex MVll::T_para_minus_WA ( bool  conjugate)
private

QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.

Returns
\( T_{para}^{ann,-} \)

Definition at line 1837 of file MVll.cpp.

1838{
1839 return -spectator_charge * 4. * MM / mb_pole * Cq34(conjugate);
1840}
gslpp::complex Cq34(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Part of Weak Annihilation.
Definition: MVll.cpp:1827

◆ T_para_plus_QSS()

gslpp::complex MVll::T_para_plus_QSS ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.

Parameters
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{para,+}^{QSS} \)

Definition at line 1950 of file MVll.cpp.

1951{
1952 gslpp::complex t_para_mc = t_para(q2, u, mc_pole * mc_pole);
1953 double eu = 0.666666667;
1954#if FULLNLOQCDF_MVLL
1955 gslpp::complex t_para_mb = t_para(q2, u, mb_pole*mb_pole);
1956 gslpp::complex t_para_0 = t_para(q2, u, 0.);
1957 double ed = -0.333333333;
1958
1959 gslpp::complex T_t = (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1960 + ed * t_para_mb * (C_3 - C_4/6. + 16.*C_5 + 10.*C_6/3.)
1961 + ed * t_para_0 * (C_3 - C_4/6. + 16.*C_5 - 8.*C_6/3.));
1962
1963 gslpp::complex T_u = eu * (t_para_mc - t_para_0) * (C_2 - C_1/6.);
1964
1965 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
1966 else return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
1967#else
1968 return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1969#endif
1970}
gslpp::complex t_para(double q2, double u, double m2)
QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.
Definition: MVll.cpp:1876

◆ T_para_real() [1/2]

double MVll::T_para_real ( double  q2,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
conjugatea boolean to control conjugation
Returns
\( T_{para,+}^{total} \)

Definition at line 2071 of file MVll.cpp.

2072{
2073 FS = convertToGslFunction(bind(&MVll::T_para_real, &(*this), q2, _1, conjugate));
2074 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2075
2076 return avaSigma;
2077}

◆ T_para_real() [2/2]

double MVll::T_para_real ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{para,+}^{total} \)

Definition at line 2031 of file MVll.cpp.

2032{
2033 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2034
2035 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2036 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2037#if FULLNLOQCDF_MVLL
2038 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate)* phi_V(u);
2039#endif
2040 return sqrt(q2) * T_amp.real();
2041}

◆ t_perp()

gslpp::complex MVll::t_perp ( double  q2,
double  u,
double  m2 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.

Parameters
uintegration variable in the range [0, 1]
mmass of the quark
Returns
\( t_{perp} \)

Definition at line 1867 of file MVll.cpp.

1868{
1869 double EV = (MM2 - q2 + MV2) / (2. * MM);
1870 double ubar = 1. - u;
1871
1872 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + q2 / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1873
1874}

◆ T_perp_imag() [1/2]

double MVll::T_perp_imag ( double  q2,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
conjugatea boolean to control conjugation
Returns
\( T_{perp,+}^{total} \)

Definition at line 2063 of file MVll.cpp.

2064{
2065 FS = convertToGslFunction(bind(&MVll::T_perp_imag, &(*this), q2, _1, conjugate));
2066 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2067
2068 return avaSigma;
2069}

◆ T_perp_imag() [2/2]

double MVll::T_perp_imag ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{perp,+}^{total} \)

Definition at line 2018 of file MVll.cpp.

2019{
2020 gslpp::complex T_amp = N_QCDF / mySM.getMesons(meson).getLambdaM() * phi_V(u) * (T_perp_plus_O8(q2, u) + T_perp_plus_QSS(q2, u, conjugate));
2021#if FULLNLOQCDF_MVLL
2022 double ubar = 1. - u;
2023
2024 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2025 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2026 /*last term proportional to T_perp_WA_2 is a constant but is included in the integral because u is integrated over the range [0,1]*/
2027#endif
2028 return T_amp.imag();
2029}
gslpp::complex T_perp_plus_QSS(double q2, double u, bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.
Definition: MVll.cpp:1928
gslpp::complex T_perp_WA_1()
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1842
gslpp::complex T_perp_WA_2(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1847
gslpp::complex T_perp_plus_O8(double q2, double u)
QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribut...
Definition: MVll.cpp:1852

◆ T_perp_plus_O8()

gslpp::complex MVll::T_perp_plus_O8 ( double  q2,
double  u 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution.

Parameters
uintegration variable in the range [0, 1]
Returns
\( T_{perp,+}^{O8} \)

Definition at line 1852 of file MVll.cpp.

1853{
1854 double ubar = 1. - u;
1855 double ed = -1. / 3.;
1856
1857 return -(alpha_s_mub / (3. * M_PI))*4. * ed * C_8 / (u + ubar * q2 / MM2);
1858}

◆ T_perp_plus_QSS()

gslpp::complex MVll::T_perp_plus_QSS ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS paper (hep-ph/0106067). 4 quark operator contribution.

Parameters
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{perp,+}^{QSS} \)

Definition at line 1928 of file MVll.cpp.

1929{
1930 gslpp::complex t_perp_mc = t_perp(q2, u, mc_pole * mc_pole);
1931 double eu = 0.666666667;
1932#if FULLNLOQCDF_MVLL
1933 gslpp::complex t_perp_mb = t_perp(q2, u, mb_pole*mb_pole);
1934 gslpp::complex t_perp_0 = t_perp(q2, u, 0.);
1935 double ed = -0.333333333;
1936
1937 gslpp::complex T_t = (eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1938 + ed * t_perp_mb * (C_3 - C_4/6. + 16. * C_5 + 10. * C_6/3. + 4. * mb_pole / MM * (-C_3 + C_4/6. - 4. * C_5 + 2. * C_6/3.))
1939 + ed * t_perp_0 * (C_3 - C_4/6. + 16. * C_5 - 8. * C_6/3.));
1940
1941 gslpp::complex T_u = eu * (t_perp_mc - t_perp_0)*(C_2 - C_1 / 6.);
1942
1943 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + lambda_u / lambda_t * T_u);
1944 else return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + (lambda_u / lambda_t).conjugate() * T_u);
1945#else
1946 return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1947#endif
1948}
gslpp::complex t_perp(double q2, double u, double m2)
QCDF Correction from various BFS paper (hep-ph/0106067). Part of 4 quark operator contribution.
Definition: MVll.cpp:1867

◆ T_perp_real() [1/2]

double MVll::T_perp_real ( double  q2,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
conjugatea boolean to control conjugation
Returns
\( T_{perp,+}^{total} \)

Definition at line 2055 of file MVll.cpp.

2056{
2057 FS = convertToGslFunction(bind(&MVll::T_perp_real, &(*this), q2, _1, conjugate));
2058 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2059
2060 return avaSigma;
2061}

◆ T_perp_real() [2/2]

double MVll::T_perp_real ( double  q2,
double  u,
bool  conjugate 
)
private

QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.

Parameters
q2\( q^2 \): momentum of the lepton pair
uintegration variable in the range [0, 1]
conjugatea boolean to control conjugation
Returns
\( T_{perp,+}^{total} \)

Definition at line 2005 of file MVll.cpp.

2006{
2007 gslpp::complex T_amp = N_QCDF / mySM.getMesons(meson).getLambdaM() * phi_V(u) * (T_perp_plus_O8(q2, u) + T_perp_plus_QSS(q2, u, conjugate));
2008#if FULLNLOQCDF_MVLL
2009 double ubar = 1. - u;
2010
2011 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2012 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2013 /*last term proportional to T_perp_WA_2 is a constant but is included in the integral because u is integrated over the range [0,1]*/
2014#endif
2015 return T_amp.real();
2016}

◆ T_perp_WA_1()

gslpp::complex MVll::T_perp_WA_1 ( )
private

QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.

Returns
\( T_{perp}^{ann,1} \)

Definition at line 1842 of file MVll.cpp.

1843{
1844 return -spectator_charge * 4. / mb_pole * (C_3 + 4. / 3. * (C_4 + 3. * C_5 + 4. * C_6));
1845}

◆ T_perp_WA_2()

gslpp::complex MVll::T_perp_WA_2 ( bool  conjugate)
private

QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.

Parameters
conjugatea boolean to control conjugation
Returns
\( T_{perp}^{ann,2} \)

Definition at line 1847 of file MVll.cpp.

1848{
1849 return spectator_charge * 2. / mb_pole * Cq34(conjugate);
1850}

Member Data Documentation

◆ ale

double MVll::ale
private

Alpha electromagnetic

Definition at line 847 of file MVll.h.

◆ alpha_s_mub

double MVll::alpha_s_mub
private

@f\aplha_s(\mu_b)$ \( */ double fB; double fpara; double fperp; double MW; /**<W boson mass */ gslpp::complex lambda_t; /**<Vckm factor */ gslpp::complex lambda_u; /**<Vckm factor */ double b; /**<BF of the decay V -> final states */ gslpp::complex h_0[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex h_1[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex h_2[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex SU3_breaking; gslpp::complex beta_0[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex beta_1[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex beta_2[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ double t_p;/**< Cache variable */ double t_m;/**< Cache variable */ double t_0;/**< Cache variable */ double z_0;/**< Cache variable */ double s_p; double s_0; double Q2; double chiOPE; double twoalphaBtoKst; double rho_0; double rho_1; double rho_2; double rho_3; double rho_4; double rho_5; double onemrho_0_2; double onemrho_1_2; double onemrho_2_2; double onemrho_3_2; double onemrho_4_2; double onemrho_5_2; double DeltaC9; double DeltaC10; double MMpMV;/**< Cache variable */ double MMpMV2;/**< Cache variable */ double MMmMV;/**< Cache variable */ double MMmMV2;/**< Cache variable */ double rV;/**< Cache variable */ double Chi1minus;/**< Cache variable */ double Chi1plus;/**< Cache variable */ double Chi0plus;/**< Cache variable */ double Chi0minus;/**< Cache variable */ double ChiTT;/**< Cache variable */ double ChiBB;/**< Cache variable */ double MM2;/**< Cache variable */ double MM4;/**< Cache variable */ double MV2;/**< Cache variable */ double MV4;/**< Cache variable */ double MMMV;/**< Cache variable */ double MM2mMV2;/**< Cache variable */ double MM2pMV2;/**< Cache variable */ double fourMV;/**< Cache variable */ double onepMMoMV;/**< Cache variable */ double MM_MMpMV;/**< Cache variable */ double twoMM2;/**< Cache variable */ double twoMV2;/**< Cache variable */ double twoMM_mbpms;/**< Cache variable */ double fourMM2;/**< Cache variable */ double Mlep2;/**< Cache variable */ double twoMlepMb;/**< Cache variable */ double MboMW;/**< Cache variable */ double MsoMb;/**< Cache variable */ double M_PI2osix;/**< Cache variable */ double N_QCDF; double twoMM;/**< Cache variable */ double ninetysixM_PI3MM3;/**< Cache variable */ double M_PI2; double sixteenM_PI2;/**< Cache variable */ double sixteenM_PI2MM2;/**< Cache variable */ double twoMboMM;/**< Cache variable */ gslpp::complex H_0_pre;/**< Cache variable */ double mu_b2;/**< Cache variable */ double Mc2;/**< Cache variable */ double Mb2;/**< Cache variable */ double fourMc2;/**< Cache variable */ double fourMb2;/**< Cache variable */ double logMc;/**< Cache variable */ double logMb;/**< Cache variable */ gslpp::complex H_0_WC;/**< Cache variable */ gslpp::complex H_c_WC;/**< Cache variable */ gslpp::complex H_b_WC;/**< Cache variable */ double fournineth;/**< Cache variable */ double half;/**< Cache variable */ double twothird;/**< Cache variable */ double sqrt3;/**< Cache variable */ gslpp::complex ihalfMPI;/**< Cache variable */ double twoMM3;/**< Cache variable */ double gtilde_1_pre;/**< Cache variable */ double gtilde_2_pre;/**< Cache variable */ double gtilde_3_pre;/**< Cache variable */ double C2_inv;/**< Cache variable */ double S_L_pre;/**< Cache variable */ gslpp::complex NN;/**< coupling including the CKM element */ gslpp::complex NN_conjugate;/**< conjugate of the coupling including the CKM element */ double CF;/**< Cache variable */ double deltaT_0;/**< Cache variable */ double deltaT_1par;/**< Cache variable */ double deltaT_1perp;/**< Cache variable */ bool h_pole; gslpp::complex ubar;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex arg1;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex B01;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex B00;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex xp;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex xm;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex yp;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex ym;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex L1xp;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex L1xm;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex L1yp;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex L1ym;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex F87_0;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex F87_1;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex F87_2;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ gslpp::complex F87_3;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ double F89_0;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ double F89_1;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ double F89_2;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ double F89_3;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ double a_0V;/**<LCSR fit parameter */ double a_1V;/**<LCSR fit parameter */ double a_2V;/**<LCSR fit parameter */ double MRV_2;/**<LCSR fit parameter */ double a_0A0;/**<LCSR fit parameter */ double a_1A0;/**<LCSR fit parameter */ double a_2A0;/**<LCSR fit parameter */ double MRA0_2;/**<LCSR fit parameter */ double a_0A1;/**<LCSR fit parameter */ double a_1A1;/**<LCSR fit parameter */ double a_2A1;/**<LCSR fit parameter */ double MRA1_2;/**<LCSR fit parameter */ double a_0A12;/**<LCSR fit parameter */ double a_1A12;/**<LCSR fit parameter */ double a_2A12;/**<LCSR fit parameter */ double MRA12_2;/**<LCSR fit parameter */ double a_0T1;/**<LCSR fit parameter */ double a_1T1;/**<LCSR fit parameter */ double a_2T1;/**<LCSR fit parameter */ double MRT1_2;/**<LCSR fit parameter */ double a_0T2;/**<LCSR fit parameter */ double a_1T2;/**<LCSR fit parameter */ double a_2T2;/**<LCSR fit parameter */ double MRT2_2;/**<LCSR fit parameter */ double a_0T23;/**<LCSR fit parameter */ double a_1T23;/**<LCSR fit parameter */ double a_2T23;/**<LCSR fit parameter */ double MRT23_2;/**<LCSR fit parameter */ double a_0f;/**<DM fit parameter */ double a_1f;/**<DM fit parameter */ double a_2f;/**<DM fit parameter */ double MRf_2;/**<DM fit parameter */ double a_0g;/**<DM fit parameter */ double a_1g;/**<DM fit parameter */ double a_2g;/**<DM fit parameter */ double MRg_2;/**<DM fit parameter */ double a_0F1;/**<DM fit parameter */ double a_1F1;/**<DM fit parameter */ double a_2F1;/**<DM fit parameter */ double MRF1_2;/**<DM fit parameter */ double a_0F2;/**<DM fit parameter */ double a_1F2;/**<DM fit parameter */ double a_2F2;/**<DM fit parameter */ double MRF2_2;/**<DM fit parameter */ double a_0T0;/**<DM fit parameter */ double a_1T0;/**<DM fit parameter */ double a_2T0;/**<DM fit parameter */ double MRT0_2;/**<DM fit parameter */ double unitarity_bound_f_F1;/**<FF unitarity bound parameter */ double unitarity_bound_g;/**<FF unitarity bound parameter */ double unitarity_bound_F2;/**<FF unitarity bound parameter */ double unitarity_bound_T1;/**<FF unitarity bound parameter */ double unitarity_bound_T2_T0;/**<FF unitarity bound parameter */ //additional variables for B to K nu nu double GF4; double MM3; double fM2; double fV2; double mtau; double mtau2; double Gammatau; double VusVub_abs2; gslpp::vector<gslpp::complex> ** allcoeff;/**<Vector that contains the Wilson coeffients */ gslpp::vector<gslpp::complex> ** allcoeffh;/**<Vector that contains the Wilson coeffients at scale \)\mu_h \( */ gslpp::vector<gslpp::complex> ** allcoeffprime;/**<Vector that contains the primed Wilson coeffients */ gslpp::vector<gslpp::complex> ** allcoeff_noSM;/**<Vector that contains the Wilson coeffients without the SM contribution.*/ gslpp::vector<gslpp::complex> ** allcoeff_nu;/**<Vector that contains the Wilson coeffients */ gslpp::vector<gslpp::complex> ** allcoeff_noSM_nu;/**<Vector that contains the Wilson coeffients without the SM contribution.*/ gslpp::complex C_1;/**<Wilson coeffients \)@_fakenlC_1 \(*/ gslpp::complex C_1L_bar;/**<Wilson coeffients \)@_fakenlC_1 \(*/ gslpp::complex C_1Lh_bar;/**<Wilson coeffients \)@_fakenlC_1 \(*/ gslpp::complex C_2;/**<Wilson coeffients \)@_fakenlC_2 \(*/ gslpp::complex C_2L_bar;/**<Leading order Wilson coeffients \)@_fakenlC_2 \(*/ gslpp::complex C_2Lh_bar;/**<Leading order Wilson coeffients \)@_fakenlC_2 \( at scale \)\mu_h \(*/ gslpp::complex C_3;/**<Wilson coeffients \)@_fakenlC_3 \(*/ gslpp::complex C_4;/**<Wilson coeffients \)@_fakenlC_4 \(*/ gslpp::complex C_5;/**<Wilson coeffients \)@_fakenlC_5 \(*/ gslpp::complex C_6;/**<Wilson coeffients \)@_fakenlC_6 \(*/ gslpp::complex C_7;/**<Wilson coeffients \)@_fakenlC_7 \(*/ gslpp::complex C_8;/**<Wilson coeffients \)@_fakenlC_8 \(*/ gslpp::complex C_8L;/**<Leading order Wilson coeffients \)@_fakenlC_8 \(*/ gslpp::complex C_8Lh;/**<Leading order Wilson coeffients \)@_fakenlC_8 \( at scale \)\mu_h \(*/ gslpp::complex C_9;/**<Wilson coeffients \)@_fakenlC_9 \(*/ gslpp::complex C_10;/**<Wilson coeffients \)@_fakenlC_{10} \(*/ gslpp::complex C_S;/**<Wilson coeffients \)@_fakenlC_S \(*/ gslpp::complex C_P;/**<Wilson coeffients \)@_fakenlC_P \(*/ gslpp::complex C_7p;/**<Wilson coeffients \)@_fakenlC_7' \(*/ gslpp::complex C_9p;/**<Wilson coeffients \)@_fakenlC_9' \(*/ gslpp::complex C_10p;/**<Wilson coeffients \)@_fakenlC_{10}' \(*/ gslpp::complex C_Sp;/**<Wilson coeffients \)@_fakenlC_S' \(*/ gslpp::complex C_Pp;/**<Wilson coeffients \)@_fakenlC_P' \(*/ gslpp::complex C_L_nunu;/**<Wilson coeffients \)@_fakenlC_L^{\nu\nu}' \(*/ gslpp::complex C_R_nunu;/**<Wilson coeffients \)@_fakenlC_R^{\nu\nu}' \(*/ gslpp::complex C_L_nunu_e;/**<Wilson coeffients \)@_fakenlC_L^{\nu_1\nu_1}' \(*/ gslpp::complex C_R_nunu_e;/**<Wilson coeffients \)@_fakenlC_R^{\nu_1\nu_1}' \(*/ gslpp::complex C_L_nunu_mu;/**<Wilson coeffients \)@_fakenlC_L^{\nu_2\nu_2}' \(*/ gslpp::complex C_R_nunu_mu;/**<Wilson coeffients \)@_fakenlC_R^{\nu_2\nu_2}' \(*/ gslpp::complex C_L_nunu_tau;/**<Wilson coeffients \)@_fakenlC_L^{\nu_3\nu_3}' \(*/ gslpp::complex C_R_nunu_tau;/**<Wilson coeffients \)@_fakenlC_R^{\nu_3\nu_3}' \(*/ std::vector<double> Re_T_perp;/**<Vector that samples the QCDF \)@_fakenlRe(T_{perp}) \( */ std::vector<double> Im_T_perp;/**<Vector that samples the QCDF \)@_fakenlIm(T_{perp}) \( */ std::vector<double> Re_T_para;/**<Vector that samples the QCDF \)@_fakenlRe(T_{para}) \( */ std::vector<double> Im_T_para;/**<Vector that samples the QCDF \)@_fakenlIm(T_{para}) \( */ gsl_interp_accel *acc_Re_T_perp; gsl_interp_accel *acc_Im_T_perp; gsl_interp_accel *acc_Re_T_para; gsl_interp_accel *acc_Im_T_para; gsl_spline *spline_Re_T_perp; gsl_spline *spline_Im_T_perp; gsl_spline *spline_Re_T_para; gsl_spline *spline_Im_T_para; gsl_interp_accel *acc_Re_deltaC7_QCDF; gsl_interp_accel *acc_Im_deltaC7_QCDF; gsl_interp_accel *acc_Re_deltaC9_QCDF; gsl_interp_accel *acc_Im_deltaC9_QCDF; gsl_spline *spline_Re_deltaC7_QCDF; gsl_spline *spline_Im_deltaC7_QCDF; gsl_spline *spline_Re_deltaC9_QCDF; gsl_spline *spline_Im_deltaC9_QCDF; #if COMPUTECP std::vector<double> Re_T_perp_conj;/**<Vector that samples the QCDF \)@_fakenlRe(T_{perp}) \( */ std::vector<double> Im_T_perp_conj;/**<Vector that samples the QCDF \)@_fakenlIm(T_{perp}) \( */ std::vector<double> Re_T_para_conj;/**<Vector that samples the QCDF \)@_fakenlRe(T_{para}) \( */ std::vector<double> Im_T_para_conj;/**<Vector that samples the QCDF \)@_fakenlIm(T_{para}) \( */ gsl_interp_accel *acc_Re_T_perp_conj; gsl_interp_accel *acc_Im_T_perp_conj; gsl_interp_accel *acc_Re_T_para_conj; gsl_interp_accel *acc_Im_T_para_conj; gsl_interp_accel *acc_Re_deltaC7_QCDF_conj; gsl_interp_accel *acc_Im_deltaC7_QCDF_conj; gsl_interp_accel *acc_Re_deltaC9_QCDF_conj; gsl_interp_accel *acc_Im_deltaC9_QCDF_conj; gsl_spline *spline_Re_T_perp_conj; gsl_spline *spline_Im_T_perp_conj; gsl_spline *spline_Re_T_para_conj; gsl_spline *spline_Im_T_para_conj; gsl_spline *spline_Re_deltaC7_QCDF_conj; gsl_spline *spline_Im_deltaC7_QCDF_conj; gsl_spline *spline_Re_deltaC9_QCDF_conj; gsl_spline *spline_Im_deltaC9_QCDF_conj; #endif std::vector<double> myq2;/**<Variable used to compute the QCDF \)\Delta C_9 \( */ TFitResultPtr Re_T_perp_res;/**<Vector that contains the fitted QCDF \)@_fakenlRe(T_{perp}) \( */ TFitResultPtr Im_T_perp_res;/**<Vector that contains the fitted QCDF \)@_fakenlIm(T_{perp}) \( */ TFitResultPtr Re_T_para_res;/**<Vector that contains the fitted QCDF \)@_fakenlRe(T_{para}) \( */ TFitResultPtr Im_T_para_res;/**<Vector that contains the fitted QCDF \)@_fakenlIm(T_{para}) \( */ TFitResultPtr Re_T_perp_res_conj;/**<Vector that contains the fitted QCDF \)@_fakenlRe(T_{perp}) \( */ TFitResultPtr Im_T_perp_res_conj;/**<Vector that contains the fitted QCDF \)@_fakenlIm(T_{perp}) \( */ TFitResultPtr Re_T_para_res_conj;/**<Vector that contains the fitted QCDF \)@_fakenlRe(T_{para}) \( */ TFitResultPtr Im_T_para_res_conj;/**<Vector that contains the fitted QCDF \)@_fakenlIm(T_{para}) \( */ TGraph gr1;/**<Tgraph to be used for fitting the QCDF \)\Delta C_9 \( */ TGraph gr2;/**<Tgraph to be used for fitting the QCDF \)\Delta C_9 \( */ TF1 QCDFfit;/**<TF1 to be used for fitting the QCDF. */ TF1 reffit;/**<TF1 to be used for fitting the QCDF \)\Delta C_9 \( */ TF1 imffit;/**<TF1 to be used for fitting the QCDF \)\Delta C_9 \( */ double avaSigma;/**< GSL integral variable */ double avaDelta;/**< GSL integral variable */ double avaSigmaTree;/**< Gsl integral variable */ double errSigma;/**< GSL integral variable */ double errDelta;/**< GSL integral variable */ double errSigmaTree;/**< Gsl integral variable */ gsl_function FS;/**< GSL integral variable */ gsl_function FD;/**< GSL integral variable */ gsl_integration_cquad_workspace * w_sigma;/**< GSL integral variable */ gsl_integration_cquad_workspace * w_delta;/**< GSL integral variable */ gsl_integration_cquad_workspace * w_sigmaTree;/**< Gsl integral variable */ gsl_error_handler_t * old_handler; /**< GSL error handler store */ std::map<std::pair<double, double>, gslpp::complex > cacheI1;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma0;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma1;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma2;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma3;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma4;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma5;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma6;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma7;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma8;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma9;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma10;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigma11;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta0;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta1;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta2;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta3;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta6;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta7;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta8;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta10;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheDelta11;/**< Cache variable */ std::map<std::pair<double, double>, double > cacheSigmaTree;/**< Gsl integral variable */ unsigned int N_updated;/**< Cache variable */ gslpp::vector<double> N_cache;/**< Cache variable */ gslpp::complex Nc_cache;/**< Cache variable */ unsigned int V_updated;/**< Cache variable */ gslpp::vector<double> V_cache;/**< Cache variable */ unsigned int A0_updated;/**< Cache variable */ gslpp::vector<double> A0_cache;/**< Cache variable */ unsigned int A1_updated;/**< Cache variable */ gslpp::vector<double> A1_cache;/**< Cache variable */ unsigned int T1_updated;/**< Cache variable */ gslpp::vector<double> T1_cache;/**< Cache variable */ unsigned int T2_updated;/**< Cache variable */ gslpp::vector<double> T2_cache;/**< Cache variable */ unsigned int k2_updated;/**< Cache variable */ gslpp::vector<double> k2_cache;/**< Cache variable */ unsigned int z_updated;/**< Cache variable */ unsigned int lambda_updated;/**< Cache variable */ unsigned int beta_updated;/**< Cache variable */ double beta_cache;/**< Cache variable */ unsigned int F_updated;/**< Cache variable */ unsigned int VL1_updated;/**< Cache variable */ unsigned int VL2_updated;/**< Cache variable */ unsigned int TL1_updated;/**< Cache variable */ unsigned int TL2_updated;/**< Cache variable */ unsigned int VR1_updated;/**< Cache variable */ unsigned int VR2_updated;/**< Cache variable */ unsigned int TR1_updated;/**< Cache variable */ unsigned int TR2_updated;/**< Cache variable */ unsigned int VL0_updated;/**< Cache variable */ gslpp::vector<double> VL0_cache;/**< Cache variable */ unsigned int TL0_updated;/**< Cache variable */ gslpp::vector<double> TL0_cache;/**< Cache variable */ unsigned int VR0_updated;/**< Cache variable */ unsigned int TR0_updated;/**< Cache variable */ unsigned int Mb_Ms_updated;/**< Cache variable */ unsigned int SL_updated;/**< Cache variable */ gslpp::vector<double> SL_cache;/**< Cache variable */ unsigned int SR_updated;/**< Cache variable */ unsigned int C_1_updated;/**< Cache variable */ gslpp::complex C_1_cache;/**< Cache variable */ unsigned int C_2_updated;/**< Cache variable */ gslpp::complex C_2_cache;/**< Cache variable */ unsigned int C_3_updated;/**< Cache variable */ gslpp::complex C_3_cache;/**< Cache variable */ unsigned int C_4_updated;/**< Cache variable */ gslpp::complex C_4_cache;/**< Cache variable */ unsigned int C_5_updated;/**< Cache variable */ gslpp::complex C_5_cache;/**< Cache variable */ unsigned int C_6_updated;/**< Cache variable */ gslpp::complex C_6_cache;/**< Cache variable */ unsigned int C_7_updated;/**< Cache variable */ gslpp::complex C_7_cache;/**< Cache variable */ unsigned int C_9_updated;/**< Cache variable */ gslpp::complex C_9_cache;/**< Cache variable */ unsigned int C_10_updated;/**< Cache variable */ gslpp::complex C_10_cache;/**< Cache variable */ unsigned int C_7p_updated;/**< Cache variable */ gslpp::complex C_7p_cache;/**< Cache variable */ unsigned int C_9p_updated;/**< Cache variable */ gslpp::complex C_9p_cache;/**< Cache variable */ unsigned int C_10p_updated;/**< Cache variable */ gslpp::complex C_10p_cache;/**< Cache variable */ unsigned int C_S_updated;/**< Cache variable */ gslpp::complex C_S_cache;/**< Cache variable */ unsigned int C_P_updated;/**< Cache variable */ gslpp::complex C_P_cache;/**< Cache variable */ unsigned int C_Sp_updated;/**< Cache variable */ gslpp::complex C_Sp_cache;/**< Cache variable */ unsigned int C_Pp_updated;/**< Cache variable */ gslpp::complex C_Pp_cache;/**< Cache variable */ unsigned int C_2Lh_updated;/**< Cache variable */ gslpp::complex C_2Lh_cache;/**< Cache variable */ unsigned int C_8Lh_updated;/**< Cache variable */ gslpp::complex C_8Lh_cache;/**< Cache variable */ unsigned int C_L_nunu_updated;/**< Cache variable */ gslpp::complex C_L_nunu_cache;/**< Cache variable */ unsigned int C_R_nunu_updated;/**< Cache variable */ gslpp::complex C_R_nunu_cache;/**< Cache variable */ unsigned int Yupdated;/**< Cache variable */ gslpp::vector<double> Ycache;/**< Cache variable */ gslpp::complex h0Ccache[4];/**< Cache variable */ gslpp::complex h1Ccache[4];/**< Cache variable */ gslpp::complex h2Ccache[4];/**< Cache variable */ gslpp::complex beta0Ccache[8];/**< Cache variable */ gslpp::complex beta1Ccache[8];/**< Cache variable */ gslpp::complex beta2Ccache[8];/**< Cache variable */ unsigned int h0_updated;/**< Cache variable */ unsigned int h1_updated;/**< Cache variable */ unsigned int h2_updated;/**< Cache variable */ unsigned int H_V0updated;/**< Cache variable */ gslpp::vector<double> H_V0cache;/**< Cache variable */ unsigned int H_V1updated;/**< Cache variable */ gslpp::vector<double> H_V1cache;/**< Cache variable */ unsigned int H_V2updated;/**< Cache variable */ gslpp::vector<double> H_V2cache;/**< Cache variable */ unsigned int H_A0updated;/**< Cache variable */ unsigned int H_A1updated;/**< Cache variable */ unsigned int H_A2updated;/**< Cache variable */ unsigned int H_Supdated;/**< Cache variable */ gslpp::vector<double> H_Scache;/**< Cache variable */ unsigned int H_Pupdated;/**< Cache variable */ gslpp::vector<double> H_Pcache;/**< Cache variable */ unsigned int I0_updated;/**< Cache variable */ unsigned int I1_updated;/**< Cache variable */ unsigned int I2_updated;/**< Cache variable */ unsigned int I3_updated;/**< Cache variable */ unsigned int I4_updated;/**< Cache variable */ unsigned int I5_updated;/**< Cache variable */ unsigned int I6_updated;/**< Cache variable */ unsigned int I7_updated;/**< Cache variable */ unsigned int I8_updated;/**< Cache variable */ unsigned int I9_updated;/**< Cache variable */ unsigned int I10_updated;/**< Cache variable */ unsigned int I11_updated;/**< Cache variable */ unsigned int Itree_updated;/**< Cache variable */ gslpp::vector<double> Itree_cache;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > I1Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma0Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma1Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma2Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma3Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma4Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma5Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma6Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma7Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma8Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma9Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma10Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigma11Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta0Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta1Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta2Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta3Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta6Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta7Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta8Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta10Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > delta11Cached;/**< Cache variable */ std::map<std::pair<double, double>, unsigned int > sigmaTreeCached;/**< Cache variable */ std::map<double, unsigned int> deltaTparpCached;/**< Cache variable */ std::map<double, unsigned int> deltaTparmCached;/**< Cache variable */ std::map<double, unsigned int> deltaTperpCached;/**< Cache variable */ std::map<double, gslpp::complex> cacheDeltaTparp;/**< Cache variable */ std::map<double, gslpp::complex> cacheDeltaTparm;/**< Cache variable */ std::map<double, gslpp::complex> cacheDeltaTperp;/**< Cache variable */ unsigned int deltaTparpupdated;/**< Cache variable */ unsigned int deltaTparmupdated;/**< Cache variable */ unsigned int deltaTperpupdated;/**< Cache variable */ unsigned int T_updated;/**< Cache variable */ gslpp::vector<double> T_cache;/**< Cache variable */ /** @brief The update parameter method for MVll. */ void updateParameters(); /** @brief The caching method for MVll. */ void checkCache(); /** @brief The lattice parameter \) z \( from arXiv:1310.3722v3. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) z \( */ double z(double q2); /** @brief The DM parameter \) z \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) z \( */ double z_DM(double q2); /** @brief The prefactor function of the form factor \) f \(, \) \phi_f \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRf_2 fit parameter @return \) \phi_f \( */ double phi_f(double q2, double MRf_2); /** @brief The prefactor function of the form factor \) g \(, \) \phi_g \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRg_2 fit parameter @return \) \phi_g \( */ double phi_g(double q2, double MRg_2); /** @brief The prefactor function of the form factor \) F_1 \(, \) \phi_{F_1} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRF1_2 fit parameter @return \) \phi_{F_1} \( */ double phi_F1(double q2, double MRF1_2); /** @brief The prefactor function of the form factor \) F_2 \(, \) \phi_{F_2} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRF2_2 fit parameter @return \) \phi_{F_2} \( */ double phi_F2(double q2, double MRF2_2); /** @brief The prefactor function of the form factor \) T_0 \(, \) \phi_{T_0} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRT0_2 fit parameter @return \) \phi_{T_0} \( */ double phi_T0(double q2, double MRT0_2); /** @brief The prefactor function of the form factor \) T_1 \(, \) \phi_{T_1} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRT1_2 fit parameter @return \) \phi_{T_1} \( */ double phi_T1(double q2, double MRT1_2); /** @brief The prefactor function of the form factor \) T_2 \(, \) \phi_{T_2} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param MRT2_2 fit parameter @return \) \phi_{T_2} \( */ double phi_T2(double q2, double MRT2_2); /** @brief The transverse form factor \) f \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0f fit parameter @param[in] a_1f fit parameter @param[in] a_2f fit parameter @param[in] MRf_2 fit parameter @return \) f \( */ double f_DM(double q2, double a_0f, double a_1f, double a_2f, double MRf_2); /** @brief The transverse form factor \) g \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0g fit parameter @param[in] a_1g fit parameter @param[in] a_2g fit parameter @param[in] MRg_2 fit parameter @return \) g \( */ double g_DM(double q2, double a_0g, double a_1g, double a_2g, double MRg_2); /** @brief The transverse form factor \) F_1 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0F1 fit parameter @param[in] a_1F1 fit parameter @param[in] a_2F1 fit parameter @param[in] MRF1_2 fit parameter @return \) F_1 \( */ double F1_DM(double q2, double a_0F1, double a_1F1, double a_2F1, double MRF1_2); /** @brief The transverse form factor \) F_2 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0F2 fit parameter @param[in] a_1F2 fit parameter @param[in] a_2F2 fit parameter @param[in] MRF2_2 fit parameter @return \) F_2 \( */ double F2_DM(double q2, double a_0F2, double a_1F2, double a_2F2, double MRF2_2); /** @brief The transverse form factor \) T_0 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0T0 fit parameter @param[in] a_1T0 fit parameter @param[in] a_2T0 fit parameter @param[in] MRT0_2 fit parameter @return \) T_0 \( */ double T0_DM(double q2, double a_0T0, double a_1T0, double a_2T0, double MRT0_2); /** @brief The transverse form factor \) T_1 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0T1 fit parameter @param[in] a_1T1 fit parameter @param[in] a_2T1 fit parameter @param[in] MRT1_2 fit parameter @return \) T_1 \( */ double T1_DM(double q2, double a_0T1, double a_1T1, double a_2T1, double MRT1_2); /** @brief The transverse form factor \) T_2 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] a_0T2 fit parameter @param[in] a_1T2 fit parameter @param[in] a_2T2 fit parameter @param[in] MRT2_2 fit parameter @return \) T_2 \( */ double T2_DM(double q2, double a_0T2, double a_1T2, double a_2T2, double MRT2_2); /** @brief The transverse form factor \) V \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) V \( */ double V(double q2); /** @brief The transverse form factor \) A_0 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) A_0 \( */ double A_0(double q2); /** @brief The transverse form factor \) A_1 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) A_1 \( */ double A_1(double q2); /** @brief The transverse form factor \) A_2 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) A_2 \( */ double A_2(double q2); /** @brief The transverse form factor \) T_1 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) T_1 \( */ double T_1(double q2); /** @brief The transverse form factor \) T_2 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) T_2 \( */ double T_2(double q2); /** @brief The helicity form factor \) \tilde{V}_0 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \tilde{V}_0 \( */ double V_0t(double q2); /** @brief The helicity form factor \) V_+ \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) V_+ \( */ double V_p(double q2); /** @brief The helicity form factor \) V_- \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) V_- \( */ double V_m(double q2); /** @brief The helicity form factor \) \tilde{T}_0 \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \tilde{T}_0 \( */ double T_0t(double q2); /** @brief The helicity form factor \) T_+ \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) T_+ \( */ double T_p(double q2); /** @brief The helicity form factor \) T_- \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) T_- \( */ double T_m(double q2); /** @brief The helicity form factor \) S_L \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) S_L \( */ double S_L(double q2); /** @brief The \) h(q^2,0) \( function involved into \) C_9^{eff} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) h(q^2,0) \( */ gslpp::complex H_0(double q2); /** @brief The \) h(q^2,m^2) \( function involved into \) C_9^{eff} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] m2 squared mass @param[in] mu2 squared mass scale @return \) h(q^2,m^2) \( */ gslpp::complex H(double q2, double m2, double mu2); /** @brief The \) Y(q^2) \( function involved into \) C_9^{eff} \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Y(q^2) \( */ gslpp::complex Y(double q2); gslpp::complex funct_g(double q2); gslpp::complex DeltaC9_KD(double q2, int com); /** @brief The expansion parameter \) \hat{z} \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) zh \( */ gslpp::complex zh(double q2); /** @brief The Blaschke factor \) \mathcal{P} \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) P \( */ gslpp::complex P(double q2); /** @brief The recursive function \) Phi_1 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_1 \( */ gslpp::complex Phi_1(double q2); /** @brief The recursive function \) Phi_1^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_1^* \( */ gslpp::complex Phi_1_st(double q2); /** @brief The recursive function \) Phi_2 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_2 \( */ gslpp::complex Phi_2(double q2); /** @brief The recursive function \) Phi_2^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_2^* \( */ gslpp::complex Phi_2_st(double q2); /** @brief The recursive function \) Phi_3 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_3 \( */ gslpp::complex Phi_3(double q2); /** @brief The recursive function \) Phi_3^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_3^* \( */ gslpp::complex Phi_3_st(double q2); /** @brief The recursive function \) Phi_4 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_4 \( */ gslpp::complex Phi_4(double q2); /** @brief The recursive function \) Phi_4^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_4^* \( */ gslpp::complex Phi_4_st(double q2); /** @brief The recursive function \) Phi_5 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_5 \( */ gslpp::complex Phi_5(double q2); /** @brief The recursive function \) Phi_5^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_5^* \( */ gslpp::complex Phi_5_st(double q2); /** @brief The recursive function \) Phi_6 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_6 \( */ gslpp::complex Phi_6(double q2); /** @brief The recursive function \) Phi_6^* \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) Phi_6^* \( */ gslpp::complex Phi_6_st(double q2); /** @brief The 0th normalized Szego polynomial \) p_0 \( from arXiv:2206.03797. @return \) p0 \( */ gslpp::complex p0(); /** @brief The 1st normalized Szego polynomial \) p_1 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p1 \( */ gslpp::complex p1(double q2); /** @brief The 2nd normalized Szego polynomial \) p_2 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p2 \( */ gslpp::complex p2(double q2); /** @brief The 3rd normalized Szego polynomial \) p_3 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p3 \( */ gslpp::complex p3(double q2); /** @brief The 4th normalized Szego polynomial \) p_4 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p4 \( */ gslpp::complex p4(double q2); /** @brief The 5th normalized Szego polynomial \) p_5 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p5 \( */ gslpp::complex p5(double q2); /** @brief The 6th normalized Szego polynomial \) p_6 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) p6 \( */ gslpp::complex p6(double q2); /** @brief The outer function \) phi_1 \( from arXiv:2011.09813. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) phi_1 \( */ gslpp::complex phi_1(double q2); /** @brief The outer function \) phi_2 \( from arXiv:2011.09813. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) phi_2 \( */ gslpp::complex phi_2(double q2); /** @brief The outer function \) phi_3 \( from arXiv:2011.09813. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) phi_3 \( */ gslpp::complex phi_3(double q2); /** @brief The outer function \) phi_4 \( from arXiv:2011.09813. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) phi_4 \( */ gslpp::complex phi_4(double q2); /** @brief The correction to \) C_9 \( from arXiv:2206.03797. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] tran transversity @return \) \Delta C_9 \( */ gslpp::complex DeltaC9_zExpansion(double q2, int tran); /** @brief The square of the 3-momentum of the recoiling meson in the M rest frame, \) k^2 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) k^2 \( */ double k2 (double q2); /** @brief The factor \) \beta^2 \( used in the angular coefficients \)I_i \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \beta^2 \( */ double beta2 (double q2); /** @brief The factor \) \lambda \( used in the angular coefficients \)I_i \(. @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \lambda \( */ double lambda(double q2); /** @brief The factor \) F \( used in the angular coefficients I_i. @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] b_i BF of the decay \) V \to M_1 M_2 \( @return \) F \( */ double F(double q2, double b_i); /** @brief The angular coefficient \) I_{1c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{1c} \( */ double I_1c(double q2, bool bar); /** @brief The angular coefficient \) I_{1s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{1s} \( */ double I_1s(double q2, bool bar); /** @brief The angular coefficient \) I_{2c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{2c} \( */ double I_2c(double q2, bool bar); /** @brief The angular coefficient \) I_{2s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{2s} \( */ double I_2s(double q2, bool bar); /** @brief The angular coefficient \) I_3 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_3 \( */ double I_3(double q2, bool bar); /** @brief The angular coefficient \) I_4 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_4 \( */ double I_4(double q2, bool bar); /** @brief The angular coefficient \) I_5 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_5 \( */ double I_5(double q2, bool bar); /** @brief The angular coefficient \) I_{6c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{6c} \( */ double I_6c(double q2, bool bar); /** @brief The angular coefficient \) I_{6s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_{6s} \( */ double I_6s(double q2, bool bar); /** @brief The angular coefficient \) I_7 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_7 \( */ double I_7(double q2, bool bar); /** @brief The angular coefficient \) I_8 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_8 \( */ double I_8(double q2, bool bar); /** @brief The angular coefficient \) I_9 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) I_9 \( */ double I_9(double q2, bool bar); /** @brief The angular coefficient \) h_1s \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_1s \( */ double h_1s(double q2, bool bar); /** @brief The angular coefficient \) h_1c \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_1c \( */ double h_1c(double q2, bool bar); /** @brief The angular coefficient \) h_2s \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_2s \( */ double h_2s(double q2, bool bar); /** @brief The angular coefficient \) h_2c \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_2c \( */ double h_2c(double q2, bool bar); /** @brief The angular coefficient \) h_3 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_3 \( */ double h_3(double q2, bool bar); /** @brief The angular coefficient \) h_4 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_4 \( */ double h_4(double q2, bool bar); /** @brief The angular coefficient \) h_7 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) h_7 \( */ double h_7(double q2, bool bar); /** @brief The angular coefficient \) s_5 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) s_5 \( */ double s_5(double q2, bool bar); /** @brief The angular coefficient \) s_6s \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) s_6s \( */ double s_6s(double q2, bool bar); /** @brief The angular coefficient \) s_6c \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) s_6c \( */ double s_6c(double q2, bool bar); /** @brief The angular coefficient \) s_8 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) s_8 \( */ double s_8(double q2, bool bar); /** @brief The angular coefficient \) s_9 \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @param[in] bar boolean variable to distinguish the decay \) M \to V \ell \ell \( (true) from the CP-conjugate \) \bar{M} \to \bar{V} \ell \ell \( (false) @return \) s_9 \( */ double s_9(double q2, bool bar); /** @brief The CP average \) \Sigma_{1s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{1s} \( */ double getSigma1c(double q2) { switch(vectorM){ case QCD::K_star: return (I_1c(q2, 0) + I_1c(q2, 1))/2.; break; case QCD::K_star_P: return (I_1c(q2, 0) + I_1c(q2, 1))/2.; break; case QCD::PHI: return (I_1c(q2, 0) + I_1c(q2, 1) - ys * h_1c(q2, 0) )/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma1c : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{1c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{1c} \( */ double getSigma1s(double q2) { switch(vectorM){ case QCD::K_star: return (I_1s(q2, 0) + I_1s(q2, 1))/2.; break; case QCD::K_star_P: return (I_1s(q2, 0) + I_1s(q2, 1))/2.; break; case QCD::PHI: return (I_1s(q2, 0) + I_1s(q2, 1) - ys * h_1s(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma1s : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{2s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{2s} \( */ double getSigma2c(double q2) { switch(vectorM){ case QCD::K_star: return (I_2c(q2, 0) + I_2c(q2, 1))/2.; break; case QCD::K_star_P: return (I_2c(q2, 0) + I_2c(q2, 1))/2.; break; case QCD::PHI: return (I_2c(q2, 0) + I_2c(q2, 1) - ys * h_2c(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma2c : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{2c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{2c} \( */ double getSigma2s(double q2) { switch(vectorM){ case QCD::K_star: return (I_2s(q2, 0) + I_2s(q2, 1))/2.; break; case QCD::K_star_P: return (I_2s(q2, 0) + I_2s(q2, 1))/2.; break; case QCD::PHI: return (I_2s(q2, 0) + I_2s(q2, 1) - ys * h_2s(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma2s : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{3} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{3} \( */ double getSigma3(double q2) { switch(vectorM){ case QCD::K_star: return (I_3(q2, 0) + I_3(q2, 1))/2.; break; case QCD::K_star_P: return (I_3(q2, 0) + I_3(q2, 1))/2.; break; case QCD::PHI: return (I_3(q2, 0) + I_3(q2, 1) - ys * h_3(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma3 : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{4} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{4} \( */ double getSigma4(double q2) { switch(vectorM){ case QCD::K_star: return (I_4(q2, 0) + I_4(q2, 1))/2.; break; case QCD::K_star_P: return (I_4(q2, 0) + I_4(q2, 1))/2.; break; case QCD::PHI: return (I_4(q2, 0) + I_4(q2, 1) - ys * h_4(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma4 : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{5} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{5} \( */ double getSigma5(double q2) { return (I_5(q2, 0) + I_5(q2, 1))/2.; }; /** @brief The CP average \) \Sigma_{6s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{6s} \( */ double getSigma6s(double q2) { return (I_6s(q2, 0) + I_6s(q2, 1))/2.; }; /** @brief The CP average \) \Sigma_{6c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{6c} \( */ double getSigma6c(double q2) { return (I_6c(q2, 0) + I_6c(q2, 1))/2.; }; /** @brief The CP average \) \Sigma_{7} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{7} \( */ double getSigma7(double q2) { switch(vectorM){ case QCD::K_star: return (I_7(q2, 0) + I_7(q2, 1))/2.; break; case QCD::K_star_P: return (I_7(q2, 0) + I_7(q2, 1))/2.; break; case QCD::PHI: return (I_7(q2, 0) + I_7(q2, 1) - ys * h_7(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getSigma7 : vector " + out.str() + " not implemented"); } }; /** @brief The CP average \) \Sigma_{8} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{8} \( */ double getSigma8(double q2) { return (I_8(q2, 0) + I_8(q2, 1))/2.; }; /** @brief The CP average \) \Sigma_{9} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Sigma_{9} \( */ double getSigma9(double q2) { return (I_9(q2, 0) + I_9(q2, 1))/2.; }; /** @brief The CP difference \) \Delta_{1s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{1s} \( */ double getDelta1c(double q2) { return (I_1c(q2, 0) - I_1c(q2, 1)) / 2.; }; /** @brief The CP difference \) \Delta_{1c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{1c} \( */ double getDelta1s(double q2) { return (I_1s(q2, 0) - I_1s(q2, 1)) / 2.; }; /** @brief The CP difference \) \Delta_{2s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{2s} \( */ double getDelta2c(double q2) { return (I_2c(q2, 0) - I_2c(q2, 1)) / 2.; }; /** @brief The CP difference \) \Delta_{2c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{2c} \( */ double getDelta2s(double q2) { return (I_2s(q2, 0) - I_2s(q2, 1))/2.; }; /** @brief The CP difference \) \Delta_{3} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{3} \( */ double getDelta3(double q2) { return (I_3(q2, 0) - I_3(q2, 1))/2.; }; /** @brief The CP difference \) \Delta_{4} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{4} \( */ double getDelta4(double q2) { return (I_4(q2, 0) - I_4(q2, 1))/2.; }; /** @brief The CP difference \) \Delta_{5} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{5} \( */ double getDelta5(double q2) { switch(vectorM){ case QCD::K_star: return (I_5(q2, 0) - I_5(q2, 1))/2.; break; case QCD::K_star_P: return (I_5(q2, 0) - I_5(q2, 1))/2.; break; case QCD::PHI: return (1. - ys*ys)/(1. + xs*xs) * (I_5(q2, 0) - I_5(q2, 1) - xs * s_5(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getDelta5 : vector " + out.str() + " not implemented"); } }; /** @brief The CP difference \) \Delta_{6s} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{6s} \( */ double getDelta6s(double q2) { switch(vectorM){ case QCD::K_star: return (I_6s(q2, 0) - I_6s(q2, 1))/2.; break; case QCD::K_star_P: return (I_6s(q2, 0) - I_6s(q2, 1))/2.; break; case QCD::PHI: return (1. - ys*ys)/(1. + xs*xs) * (I_6s(q2, 0) - I_6s(q2, 1) - xs * s_6s(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getDelta6s : vector " + out.str() + " not implemented"); } }; /** @brief The CP difference \) \Delta_{6c} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{6c} \( */ double getDelta6c(double q2) { switch(vectorM){ case QCD::K_star: return (I_6c(q2, 0) - I_6c(q2, 1))/2.; break; case QCD::K_star_P: return (I_6c(q2, 0) - I_6c(q2, 1))/2.; break; case QCD::PHI: return (1. - ys*ys)/(1. + xs*xs) * (I_6c(q2, 0) - I_6c(q2, 1) - xs * s_6c(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getDelta6c : vector " + out.str() + " not implemented"); } }; /** @brief The CP difference \) \Delta_{7} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{7} \( */ double getDelta7(double q2) { return (I_7(q2, 0) - I_7(q2, 1))/2.; }; /** @brief The CP difference \) \Delta_{8} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{8} \( */ double getDelta8(double q2) { switch(vectorM){ case QCD::K_star: return (I_8(q2, 0) - I_8(q2, 1))/2.; break; case QCD::K_star_P: return (I_8(q2, 0) - I_8(q2, 1))/2.; break; case QCD::PHI: return (1. - ys*ys)/(1. + xs*xs) * (I_8(q2, 0) - I_8(q2, 1) - xs * s_8(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getDelta8 : vector " + out.str() + " not implemented"); } }; /** @brief The CP difference \) \Delta_{9} \( . @param[in] q2 \)@_fakenlq^2 \( of the decay @return \) \Delta_{9} \( */ double getDelta9(double q2) { switch(vectorM){ case QCD::K_star: return (I_9(q2, 0) - I_9(q2, 1))/2.; break; case QCD::K_star_P: return (I_9(q2, 0) - I_9(q2, 1))/2.; break; case QCD::PHI: return (1. - ys*ys)/(1. + xs*xs) * (I_9(q2, 0) - I_9(q2, 1) - xs * s_9(q2, 0))/2.; break; default: std::stringstream out; out << vectorM; throw std::runtime_error("MVll::getDelta9 : vector " + out.str() + " not implemented"); } }; /** @brief The value of \) \Sigma_{tree}: contains the full q2-dependence but neglects a "prefactor"

Parameters
[in]q2\(q^2\) of the decay
Returns
\( <\Sigma{tree}> \)

Definition at line 864 of file MVll.h.

◆ angmomV

double MVll::angmomV
private

angular momentum of meson V; for a resonance, it's replaced by its spin

Definition at line 862 of file MVll.h.

◆ dispersion

bool MVll::dispersion
private

Definition at line 836 of file MVll.h.

◆ etaV

int MVll::etaV
private

parity of meson V

Definition at line 863 of file MVll.h.

◆ exp_Phase

gslpp::complex MVll::exp_Phase[3]
private

Definition at line 844 of file MVll.h.

◆ FixedWCbtos

bool MVll::FixedWCbtos
private

Definition at line 838 of file MVll.h.

◆ GF

double MVll::GF
private

Fermi constant

Definition at line 846 of file MVll.h.

◆ lep

QCD::lepton MVll::lep
private

Final leptons type

Definition at line 830 of file MVll.h.

◆ Mb

double MVll::Mb
private

b quark mass

Definition at line 851 of file MVll.h.

◆ mb_pole

double MVll::mb_pole
private

b quark pole mass

Definition at line 855 of file MVll.h.

◆ Mc

double MVll::Mc
private

c quark mass

Definition at line 854 of file MVll.h.

◆ mc_pole

double MVll::mc_pole
private

c quark pole mass

Definition at line 856 of file MVll.h.

◆ mD2

double MVll::mD2
private

Definition at line 843 of file MVll.h.

◆ meson

QCD::meson MVll::meson
private

Initial meson type

Definition at line 831 of file MVll.h.

◆ mJ2

double MVll::mJ2
private

Definition at line 841 of file MVll.h.

◆ mJpsi

double MVll::mJpsi
private

Definition at line 841 of file MVll.h.

◆ Mlep

double MVll::Mlep
private

Muon mass

Definition at line 848 of file MVll.h.

◆ MM

double MVll::MM
private

Initial meson mass

Definition at line 849 of file MVll.h.

◆ mPsi2S

double MVll::mPsi2S
private

Definition at line 842 of file MVll.h.

◆ mPsi2S2

double MVll::mPsi2S2
private

Definition at line 842 of file MVll.h.

◆ Ms

double MVll::Ms
private

s quark mass

Definition at line 857 of file MVll.h.

◆ mu_b

double MVll::mu_b
private

b mass scale

Definition at line 852 of file MVll.h.

◆ mu_h

double MVll::mu_h
private

\(\sqrt{\mu_b*\lambda_{QCD}}\)

Definition at line 853 of file MVll.h.

◆ MV

double MVll::MV
private

Final vector meson mass

Definition at line 850 of file MVll.h.

◆ MVll_DM_flag

bool MVll::MVll_DM_flag
private

A flag for switching to DM FF parameterization

Definition at line 840 of file MVll.h.

◆ mvllParameters

std::vector<std::string> MVll::mvllParameters
private

The string of mandatory MVll parameters

Definition at line 833 of file MVll.h.

◆ myF_1

std::unique_ptr<F_1> MVll::myF_1
private

Definition at line 834 of file MVll.h.

◆ myF_2

std::unique_ptr<F_2> MVll::myF_2
private

Definition at line 835 of file MVll.h.

◆ mySM

const StandardModel& MVll::mySM
private

Model type

Definition at line 829 of file MVll.h.

◆ NeutrinoTree_flag

bool MVll::NeutrinoTree_flag
private

Definition at line 839 of file MVll.h.

◆ spectator_charge

double MVll::spectator_charge
private

spectator quark charge

Definition at line 858 of file MVll.h.

◆ vectorM

QCD::meson MVll::vectorM
private

Final vector meson type

Definition at line 832 of file MVll.h.

◆ width

double MVll::width
private

Initial meson width

Definition at line 859 of file MVll.h.

◆ xs

double MVll::xs
private

CP-violation factor \(\frac{\Delta m}{\Gamma}\)

Definition at line 861 of file MVll.h.

◆ ys

double MVll::ys
private

CP-violation factor \(\frac{\Delta \Gamma}{2\Gamma}\)

Definition at line 860 of file MVll.h.

◆ zExpansion

bool MVll::zExpansion
private

Definition at line 837 of file MVll.h.


The documentation for this class was generated from the following files: