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_0_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^0 \) for the invisible decay . 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_m_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^- \) for the invisible decay . More...
 
gslpp::complex H_P (double q2, bool bar)
 The helicity amplitude \( H_P \) . More...
 
gslpp::complex H_p_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^+ \) for the invisible decay . 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:862
const StandardModel & mySM
Definition: MVll.h:853
bool zExpansion
Definition: MVll.h:861
bool MVll_DM_flag
Definition: MVll.h:864
std::unique_ptr< F_2 > myF_2
Definition: MVll.h:859
double mPsi2S2
Definition: MVll.h:866
double mD2
Definition: MVll.h:867
std::unique_ptr< F_1 > myF_1
Definition: MVll.h:858
QCD::meson meson
Definition: MVll.h:855
bool dispersion
Definition: MVll.h:860
double mPsi2S
Definition: MVll.h:866
double mJpsi
Definition: MVll.h:865
QCD::meson vectorM
Definition: MVll.h:856
QCD::lepton lep
Definition: MVll.h:854
bool NeutrinoTree_flag
Definition: MVll.h:863
double mJ2
Definition: MVll.h:865

◆ ~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 1724 of file MVll.cpp.

1725{
1726 double sh = q2 / mb2;
1727 double z = (4. * mb2) / q2;
1728 double lsh = log(sh);
1729 gslpp::complex acsq = arccot((gslpp::complex)sqrt(z - 1.));
1730 double sh2 = sh*sh;
1731 double osh2 = (1. - sh)*(1. - sh);
1732 return (-(104.) / (243.) * log((mb2) / (mu_b2)) + (4. * sh) / (27. * (1. - sh)) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1733 + (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))
1734 - (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)
1735 + (2. * sh) / (243. * osh2 * osh2) * (36. * acsq * acsq + M_PI2 * (-4. + 9. * sh - 9. * sh2 + 3. * sh2 * sh)));
1736}

◆ 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 2660 of file MVll.cpp.

2661{
2662 updateParameters();
2663
2664 // amplitude at charmonium resonance, i.e. q2 = mJ2 or mPsi2S2
2665 double q2 = mpsi*mpsi;
2666 double fpsi = 0.;
2667 // decay constant of the charmonium state estimated from EXP decay width in e+ e-
2668 if(fabs(mpsi - mJpsi) <1.e-5){
2669 double Gammaepm = 5.971/100.*(92.6*1e-6);
2670 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2671 }
2672 else if(fabs(mpsi - mPsi2S)< 1.e-5){
2673 double Gammaepm = 7.93/1000.*(294.*1e-6);
2674 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2675 }
2676 else{
2677 return 0.;
2678 }
2679 gslpp::complex Norm = GF*lambda_t.conjugate()*sqrt(sqrt(lambda(q2))/(2.*M_PI*MM))*MM*MM/sqrt(q2)/fpsi;
2680 if(tran == 0) Norm *= MM/sqrt(q2);
2681 return Norm*DeltaC9_zExpansion(q2,tran);
2682}
double ale
Definition: MVll.h:871
double MM
Definition: MVll.h:873
double GF
Definition: MVll.h:870

◆ B0()

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

Definition at line 1954 of file MVll.cpp.

1955{
1956 if (4. * m2 / s == 1.) return gslpp::complex(0.);
1957 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.));
1958}
Test Observable.

◆ B0diff()

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

Definition at line 1946 of file MVll.cpp.

1947{
1948 double ubar = 1. - u;
1949
1950 if (m2 == 0.) return -log((gslpp::complex)(-(2. / q2))) + log((gslpp::complex)(-(2. / (q2 * u + MM2 * ubar))));
1951 else return B0(ubar * MM2 + u * q2, m2) - B0(q2, m2);
1952}
gslpp::complex B0(double s, double m2)
Definition: MVll.cpp:1954

◆ B_Seidel()

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

Definition at line 1738 of file MVll.cpp.

1739{
1740 double sh = q2 / mb2;
1741 double z = (4. * mb2) / q2;
1742 double sqrt_z_m_1 = sqrt(z - 1.);
1743 gslpp::complex x1 = 0.5 + gslpp::complex::i() / 2. * sqrt_z_m_1;
1744 gslpp::complex x2 = 0.5 - gslpp::complex::i() / 2. * sqrt_z_m_1;
1745 gslpp::complex x3 = 0.5 + gslpp::complex::i() / (2. * sqrt_z_m_1);
1746 gslpp::complex x4 = 0.5 - gslpp::complex::i() / (2. * sqrt_z_m_1);
1747 gslpp::complex lx1 = log(x1);
1748 gslpp::complex lx2 = log(x2);
1749 gslpp::complex lx3 = log(x3);
1750 gslpp::complex lx4 = log(x4);
1751 gslpp::complex lx2_x1 = lx2 - lx1;
1752 gslpp::complex lzm1 = log(z - 1.);
1753 gslpp::complex acsq = arccot((gslpp::complex)sqrt_z_m_1);
1754 double sh2 = sh*sh;
1755 double lsh = log(sh);
1756 double osh2 = (1. - sh)*(1. - sh);
1757 double lmb_mu = log(mb2 / mu_b2);
1758 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)
1759 + ((2. + sh) * sqrt_z_m_1) / (729. * sh) * (-48. * lmb_mu * acsq - 18. * M_PI * log(z - 1.) + 3. * gslpp::complex::i() * lzm1 * lzm1
1760 - 24. * gslpp::complex::i() * dilog(-x2 / x1) - 5. * M_PI2 * gslpp::complex::i()
1761 + 6. * gslpp::complex::i() * (-9. * lx1 * lx1 + lx2 * lx2 - 2. * lx4 * lx4 + 6. * lx1 * lx2 - 4. * lx1 * lx3 + 8. * lx1 * lx4)
1762 - 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))
1763 + 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
1764 - 288. - 8. * sh + 934. * sh2 - 692. * sh2 * sh + 18. * M_PI * gslpp::complex::i() * sh * (82. - 173. * sh + 73. * sh2))
1765 - 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
1766 + 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
1767 - M_PI2 * (54. - 53. * sh - 286. * sh2 + 612. * sh * sh2 - 446. * sh2 * sh2 + 113. * sh2 * sh2 * sh)));
1768}

◆ 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 2692 of file MVll.cpp.

2693{
2694 return sqrt(1. - 4. * Mlep2 / q2);
2695}

◆ C_Seidel()

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

Definition at line 1770 of file MVll.cpp.

1771{
1772 return -(16.) / (81.) * log((q2) / (mu_b2)) + (428.) / (243.) - (64.) / (27.) * gsl_sf_zeta_int(3) + (16.) / (81.) * M_PI * gslpp::complex::i();
1773 /* gsl_sf_zeta_int returns a double */
1774}

◆ 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 1873 of file MVll.cpp.

1874{
1875 gslpp::complex T_t = C_3 + 4. / 3. * (C_4 + 12. * C_5 + 16. * C_6);
1876 gslpp::complex T_u = 0.; /* 0 for K*0, phi*/
1877 if (meson == QCD::B_P) T_u = -3. * C_2;
1878 else if (vectorM == QCD::PHI) T_t = T_t + 6. * (C_3 + 10. * C_5);
1879 if (!conjugate) return T_t + lambda_u / lambda_t * T_u;
1880 else return T_t + (lambda_u / lambda_t).conjugate() * T_u;
1881}
@ 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 2539 of file MVll.cpp.

2540{
2541 if (hel == 0)
2542 return beta_0[3].real()*(-26.55265491727846*a_0A12)/a_0A12/a_0A12 +
2543 beta_0[2].real()*(-60.539167428104925*a_0A12)/a_0A12/a_0A12 +
2544 beta_0[1].real()*(-138.02728217972742*a_0A12)/a_0A12/a_0A12 +
2545 beta_0[0].real()*(-314.6975988486678*a_0A12)/a_0A12/a_0A12;
2546 else if (hel == 1)
2547 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())/
2548 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2549 (-119.89709952961475*a_0A1 - 24.007514603707598*a_0V + 29.020190982985117*a_1A1 - 20.59973411156516*a_1V)*(beta_1[1].real() - beta_2[1].real())/
2550 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2551 (-117.34075946812884*a_0A1 + 35.43498229234759*a_0V + 12.728340172828181*a_1A1 - 9.035103297409211*a_1V)*(beta_1[2].real() - beta_2[2].real())/
2552 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2553 (-79.86709064819027*a_0A1 + 35.702158475408076*a_0V + 5.582687021261181*a_1A1 - 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2554 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V);
2555 else
2556 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())/
2557 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2558 (-119.89709952961475*a_0A1 + 24.007514603707598*a_0V + 29.020190982985117*a_1A1 + 20.59973411156516*a_1V)*(beta_1[1].real() + beta_2[1].real())/
2559 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2560 (-117.34075946812884*a_0A1 - 35.43498229234759*a_0V + 12.728340172828181*a_1A1 + 9.035103297409211*a_1V)*(beta_1[2].real() + beta_2[2].real())/
2561 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2562 (-79.86709064819027*a_0A1 - 35.702158475408076*a_0V + 5.582687021261181*a_1A1 + 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2563 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V);
2564}

◆ 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 1776 of file MVll.cpp.

1777{
1778 if (zExpansion)
1779 return 0.;
1780 else {
1781 #if COMPUTECP && SPLINE
1782 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1783 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF_conj, q2, acc_Re_deltaC7_QCDF_conj);
1784 #elif SPLINE
1785 if (spline) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1786 #endif
1787
1788 double muh = mu_b / mb_pole;
1789 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1790 double sh = q2 / mb_pole / mb_pole;
1791 double sh2 = sh*sh;
1792
1793 #if FULLNLOQCDF_MVLL
1794 gslpp::complex A_Sdl = A_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1795 gslpp::complex Fu_17 = -A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1796 gslpp::complex Fu_27 = 6. * A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1797 #endif
1798 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*/
1799 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*/
1800 gslpp::complex F_87 = F87_0 + F87_1 * sh + F87_2 * sh2 + F87_3 * sh * sh2 - 8. / 9. * log(sh) * (sh + sh2 + sh * sh2);
1801
1802 if (!conjugate) {
1803 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
1804 gslpp::complex delta_t = C_8 * F_87 + delta;
1805 #if FULLNLOQCDF_MVLL
1806 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
1807 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1808 #else
1809 return -alpha_s_mub / (4. * M_PI) * delta_t;
1810 #endif
1811 } else {
1812 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
1813 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
1814 #if FULLNLOQCDF_MVLL
1815 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
1816 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1817 #else
1818 return -alpha_s_mub / (4. * M_PI) * delta_t;
1819 #endif
1820 }
1821 }
1822}
double alpha_s_mub
Definition: MVll.h:888
double mc_pole
Definition: MVll.h:880
gslpp::complex A_Seidel(double q2, double mb2)
Definition: MVll.cpp:1724
double mb_pole
Definition: MVll.h:879
double mu_b
Definition: MVll.h:876

◆ 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 1824 of file MVll.cpp.

1825{
1826 if (zExpansion)
1827 return 0.;
1828 else {
1829 #if COMPUTECP && SPLINE
1830 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1831 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF_conj, q2, acc_Re_deltaC9_QCDF_conj);
1832 #elif SPLINE
1833 if (spline) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1834 #endif
1835
1836 double muh = mu_b / mb_pole;
1837 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1838 double sh = q2 / mb_pole / mb_pole;
1839 double sh2 = sh*sh;
1840
1841 #if FULLNLOQCDF_MVLL
1842 gslpp::complex B_Sdl = B_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1843 gslpp::complex C_Sdl = C_Seidel(q2); /* hep-ph/0403185v2.*/
1844 gslpp::complex Fu_19 = -(B_Sdl + 4. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1845 gslpp::complex Fu_29 = -(-6. * B_Sdl + 3. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1846 #endif
1847 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*/
1848 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*/
1849 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));
1850
1851 if (!conjugate) {
1852 gslpp::complex delta = C_1 * F_19 + C_2 * F_29;
1853 gslpp::complex delta_t = C_8 * F_89 + delta;
1854 #if FULLNLOQCDF_MVLL
1855 gslpp::complex delta_u = delta + C_1 * Fu_19 + C_2 * Fu_29;
1856 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1857 #else
1858 return -alpha_s_mub / (4. * M_PI) * delta_t;
1859 #endif
1860 } else {
1861 gslpp::complex delta = C_1.conjugate() * F_19 + C_2.conjugate() * F_29;
1862 gslpp::complex delta_t = C_8.conjugate() * F_89 + delta;
1863 #if FULLNLOQCDF_MVLL
1864 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_19 + C_2.conjugate() * Fu_29;
1865 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1866 #else
1867 return -alpha_s_mub / (4. * M_PI) * delta_t;
1868 #endif
1869 }
1870 }
1871}
gslpp::complex B_Seidel(double q2, double mb2)
Definition: MVll.cpp:1738
gslpp::complex C_Seidel(double q2)
Definition: MVll.cpp:1770

◆ 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 1501 of file MVll.cpp.

1502{
1503 return 1. / (1. - q2 / MR_2) * (a_0 + a_1 * (z(q2) - z_0) + a_2 * (z(q2) - z_0) * (z(q2) - z_0));
1504}

◆ fit_QCDF_func()

void MVll::fit_QCDF_func ( )
private

Definition at line 2138 of file MVll.cpp.

2139{
2140 int dim = 0;
2141 for (double i = 0.001; i < 8.6; i += 0.5) {
2142 myq2.push_back(i);
2143 Re_T_perp.push_back(T_perp_real(i, false));
2144 Im_T_perp.push_back(T_perp_imag(i, false));
2145 Re_T_para.push_back(T_para_real(i, false));
2146 Im_T_para.push_back(T_para_imag(i, false));
2147
2148#if COMPUTECP
2149 Re_T_perp_conj.push_back(T_perp_real(i, true));
2150 Im_T_perp_conj.push_back(T_perp_imag(i, true));
2151 Re_T_para_conj.push_back(T_para_real(i, true));
2152 Im_T_para_conj.push_back(T_para_imag(i, true));
2153#endif
2154 dim++;
2155 }
2156
2157 gr1 = TGraph(dim, myq2.data(), Re_T_perp.data());
2158 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2159 Re_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2160 Re_T_perp.clear();
2161
2162 gr1 = TGraph(dim, myq2.data(), Im_T_perp.data());
2163 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2164 Im_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2165 Im_T_perp.clear();
2166
2167 gr1 = TGraph(dim, myq2.data(), Re_T_para.data());
2168 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2169 Re_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2170 Re_T_para.clear();
2171
2172 gr1 = TGraph(dim, myq2.data(), Im_T_para.data());
2173 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2174 Im_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2175 Im_T_para.clear();
2176
2177#if COMPUTECP
2178 gr1 = TGraph(dim, myq2.data(), Re_T_perp_conj.data());
2179 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2180 Re_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2181 Re_T_perp_conj.clear();
2182
2183 gr1 = TGraph(dim, myq2.data(), Im_T_perp_conj.data());
2184 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2185 Im_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2186 Im_T_perp_conj.clear();
2187
2188 gr1 = TGraph(dim, myq2.data(), Re_T_para_conj.data());
2189 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2190 Re_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2191 Re_T_para_conj.clear();
2192
2193 gr1 = TGraph(dim, myq2.data(), Im_T_para_conj.data());
2194 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2195 Im_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2196 Im_T_para_conj.clear();
2197#endif
2198
2199 myq2.clear();
2200}
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:2077
double QCDF_fit_func(double *x, double *p)
Definition: MVll.cpp:2133
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:2051
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:2089
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:2064

◆ 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:2539

◆ 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 716 of file MVll.h.

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

◆ 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 705 of file MVll.h.

706 {
707 updateParameters();
708 return C2_inv * (gtilde_1_pre/(sqrt(lambda(q2)) * V(q2)) * (h_lambda(2,q2)-h_lambda(1,q2))).real()/q2;
709 }

◆ 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 738 of file MVll.h.

739 {
740 updateParameters();
741 return C2_inv * (gtilde_2_pre/A_1(q2) * (h_lambda(1,q2)+h_lambda(2,q2))).imag()/q2;
742 }

◆ 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 727 of file MVll.h.

728 {
729 updateParameters();
730 return C2_inv * (gtilde_2_pre/A_1(q2) * (h_lambda(1,q2)+h_lambda(2,q2))).real()/q2;
731 }

◆ 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 761 of file MVll.h.

762 {
763 updateParameters();
764 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*h_lambda(0,q2)/q2-
765 (MM2mMV2 - q2)/(4.*MV) * (h_lambda(1,q2)+h_lambda(2,q2))/q2)).imag();
766 }
double MV
Definition: MVll.h:874

◆ 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 749 of file MVll.h.

750 {
751 updateParameters();
752 return C2_inv * (gtilde_3_pre/(lambda(q2) * A_2(q2)) * (sqrt(q2)*h_lambda(0,q2)/q2-
753 (MM2mMV2 - q2)/(4.*MV) * (h_lambda(1,q2)+h_lambda(2,q2))/q2)).real();
754 }

◆ 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 783 of file MVll.h.

784 {
785 return (sixteenM_PI2MM2 * h_lambda(0,q2)/q2).imag();
786 }

◆ 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 773 of file MVll.h.

774 {
775 return (sixteenM_PI2MM2 * h_lambda(0,q2)/q2).real();
776 }

◆ geth_m_0()

gslpp::complex MVll::geth_m_0 ( )
inline

\( h_-(0) \).

Returns
\( h_-(0) \)

Definition at line 821 of file MVll.h.

822 {
823 return h_lambda(2,0.);
824 }

◆ 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 841 of file MVll.h.

842 {
843 return (sixteenM_PI2MM2 * h_lambda(2,q2)/q2).imag();
844 }

◆ 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 831 of file MVll.h.

832 {
833 return (sixteenM_PI2MM2 * h_lambda(2,q2)/q2).real();
834 }

◆ geth_p_0()

gslpp::complex MVll::geth_p_0 ( )
inline

\( h_+(0) \).

Returns
\( h_+(0) \)

Definition at line 792 of file MVll.h.

793 {
794 return h_lambda(1,0.);
795 }

◆ 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 812 of file MVll.h.

813 {
814 return (sixteenM_PI2MM2 * h_lambda(1,q2)/q2).imag();
815 }

◆ 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 802 of file MVll.h.

803 {
804 return (sixteenM_PI2MM2 * h_lambda(1,q2)/q2).real();
805 }

◆ getintegratedSigmaTree()

double MVll::getintegratedSigmaTree ( )
private

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

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

Definition at line 3174 of file MVll.cpp.

3175{
3176 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);
3177}
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:872

◆ getQCDf_1()

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

Definition at line 643 of file MVll.h.

644 {
645 updateParameters();
646// 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)));
647 return 0.;
648 }

◆ getQCDf_2()

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

Definition at line 650 of file MVll.h.

651 {
652 updateParameters();
653// 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)));
654 return 0.;
655 }

◆ getQCDf_3()

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

Definition at line 657 of file MVll.h.

658 {
659 updateParameters();
660// 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))));
661 return 0.;
662 }

◆ getQCDfC9_1()

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

Definition at line 664 of file MVll.h.

665 {
666 updateParameters();
667 return (getQCDf_1(q2) - getQCDf_1(cutoff) * cutoff/q2).abs();
668 }
gslpp::complex getQCDf_1(double q2)
Definition: MVll.h:643

◆ getQCDfC9_2()

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

Definition at line 670 of file MVll.h.

671 {
672 updateParameters();
673 return (getQCDf_2(q2) - getQCDf_2(cutoff) * cutoff/q2).abs();
674 }
gslpp::complex getQCDf_2(double q2)
Definition: MVll.h:650

◆ getQCDfC9_3()

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

Definition at line 676 of file MVll.h.

677 {
678 updateParameters();
679 return (getQCDf_3(q2) - getQCDf_3(cutoff) * cutoff/q2).abs();
680 }
gslpp::complex getQCDf_3(double q2)
Definition: MVll.h:657

◆ getQCDfC9p_1()

double MVll::getQCDfC9p_1 ( double  cutoff)
inline

Definition at line 682 of file MVll.h.

683 {
684 updateParameters();
685 return (getQCDf_1(cutoff) * cutoff).abs();
686 }

◆ getQCDfC9p_2()

double MVll::getQCDfC9p_2 ( double  cutoff)
inline

Definition at line 688 of file MVll.h.

689 {
690 updateParameters();
691 return (getQCDf_2(cutoff) * cutoff).abs();
692 }

◆ getQCDfC9p_3()

double MVll::getQCDfC9p_3 ( double  cutoff)
inline

Definition at line 694 of file MVll.h.

695 {
696 updateParameters();
697 return (getQCDf_3(cutoff) * cutoff).abs();
698 }

◆ 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 2992 of file MVll.cpp.

2993{
2994 updateParameters();
2995
2996 switch (i) {
2997 case 0:
2998 return getSigma1c(q_2);
2999 break;
3000 case 1:
3001 return getSigma1s(q_2);
3002 break;
3003 case 2:
3004 return getSigma2c(q_2);
3005 break;
3006 case 3:
3007 return getSigma2s(q_2);
3008 break;
3009 case 4:
3010 return getSigma3(q_2);
3011 break;
3012 case 5:
3013 return getSigma4(q_2);
3014 break;
3015 case 6:
3016 return getSigma5(q_2);
3017 break;
3018 case 7:
3019 return getSigma6s(q_2);
3020 break;
3021 case 8:
3022 return getSigma6c(q_2);
3023 break;
3024 case 9:
3025 return getSigma7(q_2);
3026 break;
3027 case 10:
3028 return getSigma8(q_2);
3029 break;
3030 case 11:
3031 return getSigma9(q_2);
3032 break;
3033 default:
3034 std::stringstream out;
3035 out << i;
3036 throw std::runtime_error("MVll::getSigma: index " + out.str() + " not implemented");
3037 }
3038}

◆ 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:883

◆ H_0_nunu()

gslpp::complex MVll::H_0_nunu ( double  q2,
bool  bar,
QCD::lepton  lep 
)

The helicity amplitude \( H^0 \) for the invisible decay .

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

Definition at line 2618 of file MVll.cpp.

2619{
2620 if (lep == QCD::NEUTRINO_1) {
2621 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_e - etaV * pow(-1, angmomV) * C_R_nunu_e) * V_0t(q2);
2622 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_e.conjugate()) * V_0t(q2);
2623 } else if (lep == QCD::NEUTRINO_2) {
2624 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_mu - etaV * pow(-1, angmomV) * C_R_nunu_mu) * V_0t(q2);
2625 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_mu.conjugate()) * V_0t(q2);
2626 } else if (lep == QCD::NEUTRINO_3) {
2627 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_tau - etaV * pow(-1, angmomV) * C_R_nunu_tau) * V_0t(q2);
2628 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_tau.conjugate()) * V_0t(q2);
2629 }
2630}
int etaV
Definition: MVll.h:887
double angmomV
Definition: MVll.h:886
@ NEUTRINO_2
Definition: QCD.h:313
@ NEUTRINO_1
Definition: QCD.h:311
@ NEUTRINO_3
Definition: QCD.h:315

◆ 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 2584 of file MVll.cpp.

2585{
2586 if (!bar) return gslpp::complex::i() * NN * (-C_10 + etaV * pow(-1, angmomV) * C_10p) * V_0t(q2);
2587 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() + etaV * pow(-1, angmomV) * C_10p.conjugate()) * V_0t(q2);
2588}

◆ 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 2596 of file MVll.cpp.

2597{
2598 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_m(q2) + etaV * pow(-1, angmomV) * C_10p * V_p(q2));
2599 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_m(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_p(q2));
2600}

◆ 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 2590 of file MVll.cpp.

2591{
2592 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_p(q2) + etaV * pow(-1, angmomV) * C_10p * V_m(q2));
2593 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_p(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_m(q2));
2594}

◆ h_func()

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

Definition at line 1960 of file MVll.cpp.

1961{
1962 if (m2 == 0.) return 8. / 27. + 4. * gslpp::complex::i() * M_PI / 9. + 8. * log(mu_b) / 9. - 4. * log(s) / 9.;
1963 if (s == 0.) return -4. / 9. * (1. + log(m2 / mu_b / mu_b));
1964
1965 double z = 4 * m2 / s;
1966 gslpp::complex term;
1967 if (z > 1) term = atan(1. / sqrt(z - 1.));
1968 else term = log((1. + sqrt(1. - z)) / sqrt(z)) - ihalfMPI;
1969
1970 return -4. / 9. * log(m2 / mu_b / mu_b) + 8. / 27. + 4. / 9. * z - 4. / 9. * (2. + z) * sqrt(std::abs(z - 1.)) * term;
1971
1972}

◆ 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 2509 of file MVll.cpp.

2510{
2511 if (zExpansion) {
2512 if (hel == 0)
2513 return DeltaC9_zExpansion(q2, 0) * MM / sqrt(q2);
2514 else if (hel == 1)
2515 return (DeltaC9_zExpansion(q2, 1) - DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2516 else
2517 return (DeltaC9_zExpansion(q2, 1) + DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2518 } else if (dispersion) {
2519 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)));
2520 else if (hel == 1) {
2521 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) * (
2522 (MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2523 - sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2524 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)));
2525 } else {
2526 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) *
2527 ((MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2528 + sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2529 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)));
2530 }
2531 } else {
2532 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]));
2533 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);
2534 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;
2535 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);
2536 }
2537}
gslpp::complex exp_Phase[3]
Definition: MVll.h:868
A class for the correction in .

◆ H_m_nunu()

gslpp::complex MVll::H_m_nunu ( double  q2,
bool  bar,
QCD::lepton  lep 
)

The helicity amplitude \( H^- \) for the invisible decay .

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

Definition at line 2646 of file MVll.cpp.

2647{
2648 if (lep == QCD::NEUTRINO_1) {
2649 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_e * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_e * V_p(q2));
2650 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_e.conjugate() * V_p(q2));
2651 } else if (lep == QCD::NEUTRINO_2) {
2652 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_mu * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_mu * V_p(q2));
2653 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_mu.conjugate() * V_p(q2));
2654 } else if (lep == QCD::NEUTRINO_3) {
2655 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_tau * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_tau * V_p(q2));
2656 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() * V_m(q2) - etaV * pow(-1, angmomV) * C_R_nunu_tau.conjugate() * V_p(q2));
2657 }
2658}

◆ 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 2610 of file MVll.cpp.

2611{
2612 if (lep == QCD::NEUTRINO_1) return 0.;
2613
2614 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);
2615 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);
2616}

◆ H_p_nunu()

gslpp::complex MVll::H_p_nunu ( double  q2,
bool  bar,
QCD::lepton  lep 
)

The helicity amplitude \( H^+ \) for the invisible decay .

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

Definition at line 2632 of file MVll.cpp.

2633{
2634 if (lep == QCD::NEUTRINO_1) {
2635 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_e * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_e * V_m(q2));
2636 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_e.conjugate() * V_m(q2));
2637 } else if (lep == QCD::NEUTRINO_2) {
2638 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_mu * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_mu * V_m(q2));
2639 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_mu.conjugate() * V_m(q2));
2640 } else if (lep == QCD::NEUTRINO_3) {
2641 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_tau * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_tau * V_m(q2));
2642 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() * V_p(q2) - etaV * pow(-1, angmomV) * C_R_nunu_tau.conjugate() * V_m(q2));
2643 }
2644}

◆ 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 2602 of file MVll.cpp.

2603{
2604 if (lep == QCD::NEUTRINO_1) return 0.;
2605
2606 if (!bar) return gslpp::complex::i() * NN * MboMW * (C_S - etaV * pow(-1, angmomV) * C_Sp) * S_L(q2);
2607 return gslpp::complex::i() * NN_conjugate * MboMW * (C_S.conjugate() - etaV * pow(-1, angmomV) * C_Sp.conjugate()) * S_L(q2);
2608}

◆ 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 2566 of file MVll.cpp.

2567{
2568 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)));
2569 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)));
2570}
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:1776
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:1824
gslpp::complex T_0(double q2, bool conjugate)
Definition: MVll.cpp:2293

◆ 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 2578 of file MVll.cpp.

2579{
2580 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)));
2581 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)));
2582}
gslpp::complex T_minus(double q2, bool conjugate)
Definition: MVll.cpp:2271

◆ 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 2572 of file MVll.cpp.

2573{
2574 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)));
2575 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)));
2576}

◆ I1()

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

Definition at line 1929 of file MVll.cpp.

1930{
1931 if (m2 == 0.) return 1.;
1932
1933 ubar = 1. - u;
1934 xp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1935 xm = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1936 yp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / q2);
1937 ym = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / q2);
1938 L1xp = log(1. - 1. / xp) * log(1. - xp) - M_PI2osix + dilog(xp / (xp - 1.));
1939 L1xm = log(1. - 1. / xm) * log(1. - xm) - M_PI2osix + dilog(xm / (xm - 1.));
1940 L1yp = log(1. - 1. / yp) * log(1. - yp) - M_PI2osix + dilog(yp / (yp - 1.));
1941 L1ym = log(1. - 1. / ym) * log(1. - ym) - M_PI2osix + dilog(ym / (ym - 1.));
1942
1943 return 1. + 2. * m2 / ubar / (MM2 - q2)*(L1xp + L1xm - L1yp - L1ym);
1944}

◆ 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 << "Delta_C7_U" << "Delta_C9_U";
180 else mvllParameters = make_vector<std::string>()
181 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
182 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
183 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
184 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
185 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
186 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
187 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg"
188 << "Delta_C7_U" << "Delta_C9_U";
190 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
191 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
192 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
193 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
194 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
195 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
196 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
197 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
198 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2" << "Delta_C7_U" << "Delta_C9_U";
199 else mvllParameters = make_vector<std::string>()
200 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
201 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
202 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
203 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
204 << "absh_0" << "absh_p" << "absh_m" << "argh_0" << "argh_p" << "argh_m"
205 << "absh_0_1" << "absh_p_1" << "absh_m_1" << "argh_0_1" << "argh_p_1" << "argh_m_1"
206 << "absh_p_2" << "absh_m_2" << "argh_p_2" << "argh_m_2" << "Delta_C7_U" << "Delta_C9_U";
207#else
209 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
210 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
211 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
212 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
213 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
214 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
215 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
216 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
217 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg"
218 << "Delta_C7_U" << "Delta_C9_U";
219 else mvllParameters = make_vector<std::string>()
220 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
221 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
222 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
223 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
224 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
225 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
226 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg"
227 << "Delta_C7_U" << "Delta_C9_U";
229 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
230 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
231 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
232 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
233 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
234 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
235 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
236 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
237 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2"
238 << "Delta_C7_U" << "Delta_C9_U";
239 else mvllParameters = make_vector<std::string>()
240 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
241 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
242 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
243 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
244 << "reh_0" << "reh_p" << "reh_m" << "imh_0" << "imh_p" << "imh_m"
245 << "reh_0_1" << "reh_p_1" << "reh_m_1" << "imh_0_1" << "imh_p_1" << "imh_m_1"
246 << "reh_p_2" << "reh_m_2" << "imh_p_2" << "imh_m_2"
247 << "Delta_C7_U" << "Delta_C9_U";
248#endif
249 else {
250 std::stringstream out;
251 out << vectorM;
252 throw std::runtime_error("MVll: vector " + out.str() + " not implemented");
253 }
254
255 if (dispersion) {
256 mvllParameters.clear();
258 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
259 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
260 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
261 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
262 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
263 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
264 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
265 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
266 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
267 else mvllParameters = make_vector<std::string>()
268 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
269 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
270 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
271 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23"
272 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
273 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
274 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3" << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
276 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
277 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
278 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
279 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
280 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
281 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
282 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
283 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
284 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3";
285 else mvllParameters = make_vector<std::string>()
286 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
287 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
288 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
289 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23"
290 << "r1_1" << "r2_1" << "deltaC9_1" << "phDC9_1"
291 << "r1_2" << "r2_2" << "deltaC9_2" << "phDC9_2"
292 << "r1_3" << "r2_3" << "deltaC9_3" << "phDC9_3";
293 }
294
295 if (zExpansion) {
296 mvllParameters.clear();
298 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
299 << "a_0fphi" << "a_1fphi" << "a_2fphi" << "MRf" << "a_0gphi" << "a_1gphi" << "a_2gphi" << "MRg"
300 << "a_1F1phi" << "a_2F1phi" << "MRF1" << "a_1F2phi" << "a_2F2phi" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
301 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
302 << "a_1T0phi" << "a_2T0phi" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
303 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
304 << "DeltaC9" << "DeltaC10"
305 << "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"
306 << "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"
307 << "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"
308 << "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"
309 << "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"
310 << "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"
311 << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
312 else mvllParameters = make_vector<std::string>()
313 << "a_0Vphi" << "a_1Vphi" << "a_2Vphi" << "MRV" << "a_0A0phi" << "a_1A0phi" << "a_2A0phi" << "MRA0"
314 << "a_0A1phi" << "a_1A1phi" << "a_2A1phi" << "MRA1" << "a_1A12phi" << "a_2A12phi" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
315 << "a_0T1phi" << "a_1T1phi" << "a_2T1phi" << "MRT1" << "a_1T2phi" << "a_2T2phi" << "MRT2"
316 << "a_0T23phi" << "a_1T23phi" << "a_2T23phi" << "MRT23" << "DeltaC9" << "DeltaC10"
317 << "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"
318 << "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"
319 << "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"
320 << "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"
321 << "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"
322 << "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"
323 << "xs_phi" << "SU3_breaking_abs" << "SU3_breaking_arg";
325 if (MVll_DM_flag) mvllParameters = make_vector<std::string>()
326 << "a_0f" << "a_1f" << "a_2f" << "MRf" << "a_0g" << "a_1g" << "a_2g" << "MRg"
327 << "a_1F1" << "a_2F1" << "MRF1" << "a_1F2" << "a_2F2" << "MRF2" /*a_0F1 and a_0F2 are not independent*/
328 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
329 << "a_1T0" << "a_2T0" << "MRT0" /*a_0T0 and a_0T2 are not independent*/
330 << "Chi1minus" << "Chi1plus" << "Chi0plus" << "Chi0minus" << "ChiTT" << "ChiBB"
331 << "DeltaC9" << "DeltaC10"
332 << "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"
333 << "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"
334 << "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"
335 << "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"
336 << "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"
337 << "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";
338 else mvllParameters = make_vector<std::string>()
339 << "a_0V" << "a_1V" << "a_2V" << "MRV" << "a_0A0" << "a_1A0" << "a_2A0" << "MRA0"
340 << "a_0A1" << "a_1A1" << "a_2A1" << "MRA1" << "a_1A12" << "a_2A12" << "MRA12" /*a_0A12 and a_0T2 are not independent*/
341 << "a_0T1" << "a_1T1" << "a_2T1" << "MRT1" << "a_1T2" << "a_2T2" << "MRT2"
342 << "a_0T23" << "a_1T23" << "a_2T23" << "MRT23" << "DeltaC9" << "DeltaC10"
343 << "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"
344 << "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"
345 << "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"
346 << "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"
347 << "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"
348 << "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";
349 }
350
351 if (FixedWCbtos)
352 if (lep != QCD::NEUTRINO_1) mvllParameters.insert(mvllParameters.end(), { "C7_SM", "C9_SM", "C10_SM" });
353 else mvllParameters.insert(mvllParameters.end(), { "CLnunu_SM" });
354
357 return mvllParameters;
358}
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:857
@ 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 3040 of file MVll.cpp.

3041{
3042 updateParameters();
3043
3044 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3045
3046 old_handler = gsl_set_error_handler_off();
3047
3048 switch (i) {
3049 case 0:
3050 if (delta0Cached[qbin] == 0) {
3051 FD = convertToGslFunction(bind(&MVll::getDelta1c, &(*this), _1));
3052 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();
3053 cacheDelta0[qbin] = avaDelta;
3054 delta0Cached[qbin] = 1;
3055 }
3056 return cacheDelta0[qbin];
3057 break;
3058 case 1:
3059 if (delta1Cached[qbin] == 0) {
3060 FD = convertToGslFunction(bind(&MVll::getDelta1s, &(*this), _1));
3061 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();
3062 cacheDelta1[qbin] = avaDelta;
3063 delta1Cached[qbin] = 1;
3064 }
3065 return cacheDelta1[qbin];
3066 break;
3067 case 2:
3068 if (delta2Cached[qbin] == 0) {
3069 FD = convertToGslFunction(bind(&MVll::getDelta2c, &(*this), _1));
3070 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();
3071 cacheDelta2[qbin] = avaDelta;
3072 delta2Cached[qbin] = 1;
3073 }
3074 return cacheDelta2[qbin];
3075 break;
3076 case 3:
3077 if (delta3Cached[qbin] == 0) {
3078 FD = convertToGslFunction(bind(&MVll::getDelta2s, &(*this), _1));
3079 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();
3080 cacheDelta3[qbin] = avaDelta;
3081 delta3Cached[qbin] = 1;
3082 }
3083 return cacheDelta3[qbin];
3084 break;
3085 case 6:
3086 if (delta6Cached[qbin] == 0) {
3087 FD = convertToGslFunction(bind(&MVll::getDelta5, &(*this), _1));
3088 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();
3089 cacheDelta6[qbin] = avaDelta;
3090 delta6Cached[qbin] = 1;
3091 }
3092 return cacheDelta6[qbin];
3093 break;
3094 case 7:
3095 if (delta7Cached[qbin] == 0) {
3096 FD = convertToGslFunction(bind(&MVll::getDelta6s, &(*this), _1));
3097 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();
3098 cacheDelta7[qbin] = avaDelta;
3099 delta7Cached[qbin] = 1;
3100 }
3101 return cacheDelta7[qbin];
3102 break;
3103 case 8:
3104 if (delta8Cached[qbin] == 0) {
3105 FD = convertToGslFunction(bind(&MVll::getDelta6c, &(*this), _1));
3106 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();
3107 cacheDelta8[qbin] = avaDelta;
3108 delta8Cached[qbin] = 1;
3109 }
3110 return cacheDelta8[qbin];
3111 break;
3112 case 10:
3113 if (delta10Cached[qbin] == 0) {
3114 FD = convertToGslFunction(bind(&MVll::getDelta8, &(*this), _1));
3115 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();
3116 cacheDelta10[qbin] = avaDelta;
3117 delta10Cached[qbin] = 1;
3118 }
3119 return cacheDelta10[qbin];
3120 break;
3121 case 11:
3122 if (delta11Cached[qbin] == 0) {
3123 FD = convertToGslFunction(bind(&MVll::getDelta9, &(*this), _1));
3124 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();
3125 cacheDelta11[qbin] = avaDelta;
3126 delta11Cached[qbin] = 1;
3127 }
3128 return cacheDelta11[qbin];
3129 break;
3130 default:
3131 std::stringstream out;
3132 out << i;
3133 throw std::runtime_error("MVll::integrateDelta: index " + out.str() + " not implemented");
3134 }
3135
3136 gsl_set_error_handler(old_handler);
3137
3138}

◆ 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 2865 of file MVll.cpp.

2866{
2867 updateParameters();
2868
2869 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2870
2871 old_handler = gsl_set_error_handler_off();
2872
2873 switch (i) {
2874 case 0:
2875 if (sigma0Cached[qbin] == 0) {
2876 FS = convertToGslFunction(bind(&MVll::getSigma1c, &(*this), _1));
2877 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();
2878 cacheSigma0[qbin] = avaSigma;
2879 sigma0Cached[qbin] = 1;
2880 }
2881 return cacheSigma0[qbin];
2882 break;
2883 case 1:
2884 if (sigma1Cached[qbin] == 0) {
2885 FS = convertToGslFunction(bind(&MVll::getSigma1s, &(*this), _1));
2886 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();
2887 cacheSigma1[qbin] = avaSigma;
2888 sigma1Cached[qbin] = 1;
2889 }
2890 return cacheSigma1[qbin];
2891 break;
2892 case 2:
2893 if (sigma2Cached[qbin] == 0) {
2894 FS = convertToGslFunction(bind(&MVll::getSigma2c, &(*this), _1));
2895 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();
2896 cacheSigma2[qbin] = avaSigma;
2897 sigma2Cached[qbin] = 1;
2898 }
2899 return cacheSigma2[qbin];
2900 break;
2901 case 3:
2902 if (sigma3Cached[qbin] == 0) {
2903 FS = convertToGslFunction(bind(&MVll::getSigma2s, &(*this), _1));
2904 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();
2905 cacheSigma3[qbin] = avaSigma;
2906 sigma3Cached[qbin] = 1;
2907 }
2908 return cacheSigma3[qbin];
2909 break;
2910 case 4:
2911 if (sigma4Cached[qbin] == 0) {
2912 FS = convertToGslFunction(bind(&MVll::getSigma3, &(*this), _1));
2913 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();
2914 cacheSigma4[qbin] = avaSigma;
2915 sigma4Cached[qbin] = 1;
2916 }
2917 return cacheSigma4[qbin];
2918 break;
2919 case 5:
2920 if (sigma5Cached[qbin] == 0) {
2921 FS = convertToGslFunction(bind(&MVll::getSigma4, &(*this), _1));
2922 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();
2923 cacheSigma5[qbin] = avaSigma;
2924 sigma5Cached[qbin] = 1;
2925 }
2926 return cacheSigma5[qbin];
2927 break;
2928 case 6:
2929 if (sigma6Cached[qbin] == 0) {
2930 FS = convertToGslFunction(bind(&MVll::getSigma5, &(*this), _1));
2931 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();
2932 cacheSigma6[qbin] = avaSigma;
2933 sigma6Cached[qbin] = 1;
2934 }
2935 return cacheSigma6[qbin];
2936 break;
2937 case 7:
2938 if (sigma7Cached[qbin] == 0) {
2939 FS = convertToGslFunction(bind(&MVll::getSigma6s, &(*this), _1));
2940 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();
2941 cacheSigma7[qbin] = avaSigma;
2942 sigma7Cached[qbin] = 1;
2943 }
2944 return cacheSigma7[qbin];
2945 break;
2946 case 8:
2947 if (sigma8Cached[qbin] == 0) {
2948 FS = convertToGslFunction(bind(&MVll::getSigma6c, &(*this), _1));
2949 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();
2950 cacheSigma8[qbin] = avaSigma;
2951 sigma8Cached[qbin] = 1;
2952 }
2953 return cacheSigma8[qbin];
2954 break;
2955 case 9:
2956 if (sigma9Cached[qbin] == 0) {
2957 FS = convertToGslFunction(bind(&MVll::getSigma7, &(*this), _1));
2958 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();
2959 cacheSigma9[qbin] = avaSigma;
2960 sigma9Cached[qbin] = 1;
2961 }
2962 return cacheSigma9[qbin];
2963 break;
2964 case 10:
2965 if (sigma10Cached[qbin] == 0) {
2966 FS = convertToGslFunction(bind(&MVll::getSigma8, &(*this), _1));
2967 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();
2968 cacheSigma10[qbin] = avaSigma;
2969 sigma10Cached[qbin] = 1;
2970 }
2971 return cacheSigma10[qbin];
2972 break;
2973 case 11:
2974 if (sigma11Cached[qbin] == 0) {
2975 FS = convertToGslFunction(bind(&MVll::getSigma9, &(*this), _1));
2976 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();
2977 cacheSigma11[qbin] = avaSigma;
2978 sigma11Cached[qbin] = 1;
2979 }
2980 return cacheSigma11[qbin];
2981 break;
2982 default:
2983 std::stringstream out;
2984 out << i;
2985 throw std::runtime_error("MVll::integrateSigma: index " + out.str() + " not implemented");
2986 }
2987
2988 gsl_set_error_handler(old_handler);
2989
2990}

◆ 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 3139 of file MVll.cpp.

3140{
3141 if (lep != QCD::NEUTRINO_1 or meson != QCD::B_P or !NeutrinoTree_flag) return 0.;
3142
3143 updateParameters();
3144
3145 //phase space limit where tree-level contribution is relevant (0908.1174)
3146 double q_cut = (mtau2 - MV2) * (MM2 - mtau2) / mtau2;
3147 if (q_max >= q_cut) {
3148 if (q_min == 0.) return getintegratedSigmaTree();
3149 q_max = q_cut;
3150 }
3151
3152 double prefactor = mySM.getMesons(meson).getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (64. * M_PI2 * MM3 * Gammatau) * mtau2 * mtau;
3153
3154 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3155
3156 old_handler = gsl_set_error_handler_off();
3157
3158 if (sigmaTreeCached[qbin] == 0) {
3159 FD = convertToGslFunction(bind(&MVll::SigmaTree, &(*this), _1));
3160 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();
3161 cacheSigmaTree[qbin] = avaSigmaTree;
3162 sigmaTreeCached[qbin] = 1;
3163 }
3164 return prefactor * cacheSigmaTree[qbin];
3165
3166 gsl_set_error_handler(old_handler);
3167}
double getintegratedSigmaTree()
The integral of from 0 to .
Definition: MVll.cpp:3174
double SigmaTree(double q2)
Definition: MVll.cpp:3169

◆ lambda_B_minus()

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

Definition at line 2045 of file MVll.cpp.

2046{
2047 double w0 = mySM.getMesons(meson).getLambdaM();
2048 return 1. / (exp(-q2 / MM / w0) / w0 * (-gsl_sf_expint_Ei(q2 / MM / w0) + gslpp::complex::i() * M_PI));
2049}
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 2040 of file MVll.cpp.

2041{
2042 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.)));
2043}
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 2133 of file MVll.cpp.

2134{
2135 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];
2136}

◆ SigmaTree()

double MVll::SigmaTree ( double  q2)
private

Definition at line 3169 of file MVll.cpp.

3170{
3171 return (MM2 - mtau2) * (mtau2 - MV2) - q2 * (mtau2 - 2. * MV2);
3172}

◆ spline_QCDF_func()

void MVll::spline_QCDF_func ( )
private

Definition at line 2202 of file MVll.cpp.

2203{
2204 int dim = GSL_INTERP_DIM;
2205 int dim_DC = GSL_INTERP_DIM_DC;
2206 double min = 0.001;
2207 double interval = (9.9 - min) / ((double) dim);
2208 double interval_DC = (9.9 - min) / ((double) dim_DC);
2209 double q2_spline[dim];
2210 double fq2_Re_T_perp[dim], fq2_Im_T_perp[dim], fq2_Re_T_para[dim], fq2_Im_T_para[dim];
2211 double q2_spline_DC[dim_DC];
2212 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];
2213#if COMPUTECP
2214 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];
2215 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];
2216#endif
2217
2218 for (int i = 0; i < dim; i++) {
2219 q2_spline[i] = min + (double) i*interval;
2220 fq2_Re_T_perp[i] = T_perp_real(q2_spline[i], false);
2221 fq2_Im_T_perp[i] = T_perp_imag(q2_spline[i], false);
2222 fq2_Re_T_para[i] = T_para_real(q2_spline[i], false);
2223 fq2_Im_T_para[i] = T_para_imag(q2_spline[i], false);
2224
2225#if COMPUTECP
2226 fq2_Re_T_perp_conj[i] = T_perp_real(q2_spline[i], true);
2227 fq2_Im_T_perp_conj[i] = T_perp_imag(q2_spline[i], true);
2228 fq2_Re_T_para_conj[i] = T_para_real(q2_spline[i], true);
2229 fq2_Im_T_para_conj[i] = T_para_imag(q2_spline[i], true);
2230#endif
2231 }
2232 for (int i = 0; i < dim_DC; i++) {
2233 q2_spline_DC[i] = min + (double) i*interval_DC;
2234 fq2_Re_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).real();
2235 fq2_Im_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).imag();
2236 fq2_Re_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).real();
2237 fq2_Im_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).imag();
2238
2239#if COMPUTECP
2240 fq2_Re_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).real();
2241 fq2_Im_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).imag();
2242 fq2_Re_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).real();
2243 fq2_Im_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).imag();
2244#endif
2245 }
2246
2247 gsl_spline_init(spline_Re_T_perp, q2_spline, fq2_Re_T_perp, dim);
2248 gsl_spline_init(spline_Im_T_perp, q2_spline, fq2_Im_T_perp, dim);
2249 gsl_spline_init(spline_Re_T_para, q2_spline, fq2_Re_T_para, dim);
2250 gsl_spline_init(spline_Im_T_para, q2_spline, fq2_Im_T_para, dim);
2251
2252 gsl_spline_init(spline_Re_deltaC7_QCDF, q2_spline_DC, fq2_Re_deltaC7_QCDF, dim_DC);
2253 gsl_spline_init(spline_Im_deltaC7_QCDF, q2_spline_DC, fq2_Im_deltaC7_QCDF, dim_DC);
2254 gsl_spline_init(spline_Re_deltaC9_QCDF, q2_spline_DC, fq2_Re_deltaC9_QCDF, dim_DC);
2255 gsl_spline_init(spline_Im_deltaC9_QCDF, q2_spline_DC, fq2_Im_deltaC9_QCDF, dim_DC);
2256
2257#if COMPUTECP
2258 gsl_spline_init(spline_Re_T_perp_conj, q2_spline, fq2_Re_T_perp_conj, dim);
2259 gsl_spline_init(spline_Im_T_perp_conj, q2_spline, fq2_Im_T_perp_conj, dim);
2260 gsl_spline_init(spline_Re_T_para_conj, q2_spline, fq2_Re_T_para_conj, dim);
2261 gsl_spline_init(spline_Im_T_para_conj, q2_spline, fq2_Im_T_para_conj, dim);
2262
2263 gsl_spline_init(spline_Re_deltaC7_QCDF_conj, q2_spline_DC, fq2_Re_deltaC7_QCDF_conj, dim_DC);
2264 gsl_spline_init(spline_Im_deltaC7_QCDF_conj, q2_spline_DC, fq2_Im_deltaC7_QCDF_conj, dim_DC);
2265 gsl_spline_init(spline_Re_deltaC9_QCDF_conj, q2_spline_DC, fq2_Re_deltaC9_QCDF_conj, dim_DC);
2266 gsl_spline_init(spline_Im_deltaC9_QCDF_conj, q2_spline_DC, fq2_Im_deltaC9_QCDF_conj, dim_DC);
2267#endif
2268
2269}

◆ T_0()

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

Definition at line 2293 of file MVll.cpp.

2294{
2295 if (zExpansion)
2296 return 0.;
2297 else {
2298 #if COMPUTECP && SPLINE
2299 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));
2300 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));
2301 #elif SPLINE
2302 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));
2303 #endif
2304
2305 #if COMPUTECP && !SPLINE
2306 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())));
2307 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())));
2308 #elif !SPLINE
2309 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())));
2310 #endif
2311 }
2312}

◆ T_minus()

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

Definition at line 2271 of file MVll.cpp.

2272{
2273 if (zExpansion)
2274 return 0.;
2275 else {
2276 #if COMPUTECP && SPLINE
2277 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));
2278 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));
2279 #elif SPLINE
2280 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));
2281 #endif
2282
2283 #if COMPUTECP && !SPLINE
2284 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())));
2285 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())));
2286 #elif !SPLINE
2287 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())));
2288 #endif
2289 }
2290
2291}

◆ 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 1922 of file MVll.cpp.

1923{
1924 double EV = (MM2pMV2 - q2) / (2. * MM);
1925 double ubar = 1. - u;
1926 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + (ubar * MM2 + u * q2) / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1927}
gslpp::complex B0diff(double q2, double u, double m2)
Definition: MVll.cpp:1946
gslpp::complex I1(double q2, double u, double m2)
Definition: MVll.cpp:1929

◆ 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 2125 of file MVll.cpp.

2126{
2127 FS = convertToGslFunction(bind(&MVll::T_para_imag, &(*this), q2, _1, conjugate));
2128 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2129
2130 return avaSigma;
2131}

◆ 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 2089 of file MVll.cpp.

2090{
2091 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2092
2093 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (/* + */T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2094 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2095#if FULLNLOQCDF_MVLL
2096 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate) * phi_V(u);
2097#endif
2098 return sqrt(q2) * T_amp.imag();
2099}
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1883
double phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
Definition: MVll.cpp:2040
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:1996
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:1906
gslpp::complex lambda_B_minus(double q2)
Definition: MVll.cpp:2045
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:2018

◆ 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 1906 of file MVll.cpp.

1907{
1908 double ubar = 1. - u;
1909
1910 return (alpha_s_mub / (3. * M_PI))*spectator_charge * 8. * C_8 / (ubar + u * q2 / MM2);
1911}
double spectator_charge
Definition: MVll.h:882

◆ 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 2018 of file MVll.cpp.

2019{
2020 double ubar = 1. - u;
2021 gslpp::complex h_mc = h_func(ubar * MM2 + u*q2, mc_pole * mc_pole);
2022#if FULLNLOQCDF_MVLL
2023 gslpp::complex h_mb = h_func(ubar*MM2 + u*q2, mb_pole*mb_pole);
2024 gslpp::complex h_0 = h_func(ubar*MM2 + u*q2, 0);
2025
2026 gslpp::complex T_t = (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6)
2027 + h_mb * (C_3 + 5.*C_4/6. + 16.*C_5 + 22.*C_6/3.)
2028 + h_0 * (C_3 + 17.*C_4/6. + 16.*C_5 + 82.*C_6/3.)
2029 - 8./27. * (-15.*C_4/2. + 12.*C_5 - 32.*C_6));
2030
2031 gslpp::complex T_u = (h_mc - h_0)*(C_2 - C_1/6.);
2032
2033 if (!conjugate) return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
2034 else return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
2035#else
2036 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));
2037#endif
2038}
gslpp::complex h_func(double s, double m2)
Definition: MVll.cpp:1960

◆ 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 1883 of file MVll.cpp.

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

◆ 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 1996 of file MVll.cpp.

1997{
1998 gslpp::complex t_para_mc = t_para(q2, u, mc_pole * mc_pole);
1999 double eu = 0.666666667;
2000#if FULLNLOQCDF_MVLL
2001 gslpp::complex t_para_mb = t_para(q2, u, mb_pole*mb_pole);
2002 gslpp::complex t_para_0 = t_para(q2, u, 0.);
2003 double ed = -0.333333333;
2004
2005 gslpp::complex T_t = (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6)
2006 + ed * t_para_mb * (C_3 - C_4/6. + 16.*C_5 + 10.*C_6/3.)
2007 + ed * t_para_0 * (C_3 - C_4/6. + 16.*C_5 - 8.*C_6/3.));
2008
2009 gslpp::complex T_u = eu * (t_para_mc - t_para_0) * (C_2 - C_1/6.);
2010
2011 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
2012 else return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
2013#else
2014 return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6));
2015#endif
2016}
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:1922

◆ 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 2117 of file MVll.cpp.

2118{
2119 FS = convertToGslFunction(bind(&MVll::T_para_real, &(*this), q2, _1, conjugate));
2120 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2121
2122 return avaSigma;
2123}

◆ 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 2077 of file MVll.cpp.

2078{
2079 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2080
2081 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2082 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2083#if FULLNLOQCDF_MVLL
2084 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate)* phi_V(u);
2085#endif
2086 return sqrt(q2) * T_amp.real();
2087}

◆ 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 1913 of file MVll.cpp.

1914{
1915 double EV = (MM2 - q2 + MV2) / (2. * MM);
1916 double ubar = 1. - u;
1917
1918 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + q2 / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1919
1920}

◆ 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 2109 of file MVll.cpp.

2110{
2111 FS = convertToGslFunction(bind(&MVll::T_perp_imag, &(*this), q2, _1, conjugate));
2112 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2113
2114 return avaSigma;
2115}

◆ 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 2064 of file MVll.cpp.

2065{
2066 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));
2067#if FULLNLOQCDF_MVLL
2068 double ubar = 1. - u;
2069
2070 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2071 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2072 /*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]*/
2073#endif
2074 return T_amp.imag();
2075}
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:1974
gslpp::complex T_perp_WA_1()
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1888
gslpp::complex T_perp_WA_2(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1893
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:1898

◆ 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 1898 of file MVll.cpp.

1899{
1900 double ubar = 1. - u;
1901 double ed = -1. / 3.;
1902
1903 return -(alpha_s_mub / (3. * M_PI))*4. * ed * C_8 / (u + ubar * q2 / MM2);
1904}

◆ 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 1974 of file MVll.cpp.

1975{
1976 gslpp::complex t_perp_mc = t_perp(q2, u, mc_pole * mc_pole);
1977 double eu = 0.666666667;
1978#if FULLNLOQCDF_MVLL
1979 gslpp::complex t_perp_mb = t_perp(q2, u, mb_pole*mb_pole);
1980 gslpp::complex t_perp_0 = t_perp(q2, u, 0.);
1981 double ed = -0.333333333;
1982
1983 gslpp::complex T_t = (eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1984 + 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.))
1985 + ed * t_perp_0 * (C_3 - C_4/6. + 16. * C_5 - 8. * C_6/3.));
1986
1987 gslpp::complex T_u = eu * (t_perp_mc - t_perp_0)*(C_2 - C_1 / 6.);
1988
1989 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + lambda_u / lambda_t * T_u);
1990 else return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + (lambda_u / lambda_t).conjugate() * T_u);
1991#else
1992 return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1993#endif
1994}
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:1913

◆ 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 2101 of file MVll.cpp.

2102{
2103 FS = convertToGslFunction(bind(&MVll::T_perp_real, &(*this), q2, _1, conjugate));
2104 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2105
2106 return avaSigma;
2107}

◆ 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 2051 of file MVll.cpp.

2052{
2053 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));
2054#if FULLNLOQCDF_MVLL
2055 double ubar = 1. - u;
2056
2057 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2058 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2059 /*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]*/
2060#endif
2061 return T_amp.real();
2062}

◆ 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 1888 of file MVll.cpp.

1889{
1890 return -spectator_charge * 4. / mb_pole * (C_3 + 4. / 3. * (C_4 + 3. * C_5 + 4. * C_6));
1891}

◆ 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 1893 of file MVll.cpp.

1894{
1895 return spectator_charge * 2. / mb_pole * Cq34(conjugate);
1896}

Member Data Documentation

◆ ale

double MVll::ale
private

Alpha electromagnetic

Definition at line 871 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 Delta_C7_U; double Delta_C9_U; 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_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_e_updated;/**< Cache variable */ unsigned int C_L_nunu_mu_updated;/**< Cache variable */ unsigned int C_L_nunu_tau_updated;/**< Cache variable */ gslpp::complex C_L_nunu_e_cache;/**< Cache variable */ gslpp::complex C_L_nunu_mu_cache;/**< Cache variable */ gslpp::complex C_L_nunu_tau_cache;/**< Cache variable */ unsigned int C_R_nunu_e_updated;/**< Cache variable */ unsigned int C_R_nunu_mu_updated;/**< Cache variable */ unsigned int C_R_nunu_tau_updated;/**< Cache variable */ gslpp::complex C_R_nunu_e_cache;/**< Cache variable */ gslpp::complex C_R_nunu_mu_cache;/**< Cache variable */ gslpp::complex C_R_nunu_tau_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 888 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 886 of file MVll.h.

◆ dispersion

bool MVll::dispersion
private

Definition at line 860 of file MVll.h.

◆ etaV

int MVll::etaV
private

parity of meson V

Definition at line 887 of file MVll.h.

◆ exp_Phase

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

Definition at line 868 of file MVll.h.

◆ FixedWCbtos

bool MVll::FixedWCbtos
private

Definition at line 862 of file MVll.h.

◆ GF

double MVll::GF
private

Fermi constant

Definition at line 870 of file MVll.h.

◆ lep

QCD::lepton MVll::lep
private

Final leptons type

Definition at line 854 of file MVll.h.

◆ Mb

double MVll::Mb
private

b quark mass

Definition at line 875 of file MVll.h.

◆ mb_pole

double MVll::mb_pole
private

b quark pole mass

Definition at line 879 of file MVll.h.

◆ Mc

double MVll::Mc
private

c quark mass

Definition at line 878 of file MVll.h.

◆ mc_pole

double MVll::mc_pole
private

c quark pole mass

Definition at line 880 of file MVll.h.

◆ mD2

double MVll::mD2
private

Definition at line 867 of file MVll.h.

◆ meson

QCD::meson MVll::meson
private

Initial meson type

Definition at line 855 of file MVll.h.

◆ mJ2

double MVll::mJ2
private

Definition at line 865 of file MVll.h.

◆ mJpsi

double MVll::mJpsi
private

Definition at line 865 of file MVll.h.

◆ Mlep

double MVll::Mlep
private

Muon mass

Definition at line 872 of file MVll.h.

◆ MM

double MVll::MM
private

Initial meson mass

Definition at line 873 of file MVll.h.

◆ mPsi2S

double MVll::mPsi2S
private

Definition at line 866 of file MVll.h.

◆ mPsi2S2

double MVll::mPsi2S2
private

Definition at line 866 of file MVll.h.

◆ Ms

double MVll::Ms
private

s quark mass

Definition at line 881 of file MVll.h.

◆ mu_b

double MVll::mu_b
private

b mass scale

Definition at line 876 of file MVll.h.

◆ mu_h

double MVll::mu_h
private

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

Definition at line 877 of file MVll.h.

◆ MV

double MVll::MV
private

Final vector meson mass

Definition at line 874 of file MVll.h.

◆ MVll_DM_flag

bool MVll::MVll_DM_flag
private

A flag for switching to DM FF parameterization

Definition at line 864 of file MVll.h.

◆ mvllParameters

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

The string of mandatory MVll parameters

Definition at line 857 of file MVll.h.

◆ myF_1

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

Definition at line 858 of file MVll.h.

◆ myF_2

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

Definition at line 859 of file MVll.h.

◆ mySM

const StandardModel& MVll::mySM
private

Model type

Definition at line 853 of file MVll.h.

◆ NeutrinoTree_flag

bool MVll::NeutrinoTree_flag
private

Definition at line 863 of file MVll.h.

◆ spectator_charge

double MVll::spectator_charge
private

spectator quark charge

Definition at line 882 of file MVll.h.

◆ vectorM

QCD::meson MVll::vectorM
private

Final vector meson type

Definition at line 856 of file MVll.h.

◆ width

double MVll::width
private

Initial meson width

Definition at line 883 of file MVll.h.

◆ xs

double MVll::xs
private

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

Definition at line 885 of file MVll.h.

◆ ys

double MVll::ys
private

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

Definition at line 884 of file MVll.h.

◆ zExpansion

bool MVll::zExpansion
private

Definition at line 861 of file MVll.h.


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