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

1704{
1705 double sh = q2 / mb2;
1706 double z = (4. * mb2) / q2;
1707 double lsh = log(sh);
1708 gslpp::complex acsq = arccot((gslpp::complex)sqrt(z - 1.));
1709 double sh2 = sh*sh;
1710 double osh2 = (1. - sh)*(1. - sh);
1711 return (-(104.) / (243.) * log((mb2) / (mu_b2)) + (4. * sh) / (27. * (1. - sh)) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1712 + (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))
1713 - (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)
1714 + (2. * sh) / (243. * osh2 * osh2) * (36. * acsq * acsq + M_PI2 * (-4. + 9. * sh - 9. * sh2 + 3. * sh2 * sh)));
1715}

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

2640{
2641 updateParameters();
2642
2643 // amplitude at charmonium resonance, i.e. q2 = mJ2 or mPsi2S2
2644 double q2 = mpsi*mpsi;
2645 double fpsi = 0.;
2646 // decay constant of the charmonium state estimated from EXP decay width in e+ e-
2647 if(fabs(mpsi - mJpsi) <1.e-5){
2648 double Gammaepm = 5.971/100.*(92.6*1e-6);
2649 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2650 }
2651 else if(fabs(mpsi - mPsi2S)< 1.e-5){
2652 double Gammaepm = 7.93/1000.*(294.*1e-6);
2653 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2654 }
2655 else{
2656 return 0.;
2657 }
2658 gslpp::complex Norm = GF*lambda_t.conjugate()*sqrt(sqrt(lambda(q2))/(2.*M_PI*MM))*MM*MM/sqrt(q2)/fpsi;
2659 if(tran == 0) Norm *= MM/sqrt(q2);
2660 return Norm*DeltaC9_zExpansion(q2,tran);
2661}
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 1933 of file MVll.cpp.

1934{
1935 if (4. * m2 / s == 1.) return gslpp::complex(0.);
1936 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.));
1937}
Test Observable.

◆ B0diff()

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

Definition at line 1925 of file MVll.cpp.

1926{
1927 double ubar = 1. - u;
1928
1929 if (m2 == 0.) return -log((gslpp::complex)(-(2. / q2))) + log((gslpp::complex)(-(2. / (q2 * u + MM2 * ubar))));
1930 else return B0(ubar * MM2 + u * q2, m2) - B0(q2, m2);
1931}
gslpp::complex B0(double s, double m2)
Definition: MVll.cpp:1933

◆ B_Seidel()

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

Definition at line 1717 of file MVll.cpp.

1718{
1719 double sh = q2 / mb2;
1720 double z = (4. * mb2) / q2;
1721 double sqrt_z_m_1 = sqrt(z - 1.);
1722 gslpp::complex x1 = 0.5 + gslpp::complex::i() / 2. * sqrt_z_m_1;
1723 gslpp::complex x2 = 0.5 - gslpp::complex::i() / 2. * sqrt_z_m_1;
1724 gslpp::complex x3 = 0.5 + gslpp::complex::i() / (2. * sqrt_z_m_1);
1725 gslpp::complex x4 = 0.5 - gslpp::complex::i() / (2. * sqrt_z_m_1);
1726 gslpp::complex lx1 = log(x1);
1727 gslpp::complex lx2 = log(x2);
1728 gslpp::complex lx3 = log(x3);
1729 gslpp::complex lx4 = log(x4);
1730 gslpp::complex lx2_x1 = lx2 - lx1;
1731 gslpp::complex lzm1 = log(z - 1.);
1732 gslpp::complex acsq = arccot((gslpp::complex)sqrt_z_m_1);
1733 double sh2 = sh*sh;
1734 double lsh = log(sh);
1735 double osh2 = (1. - sh)*(1. - sh);
1736 double lmb_mu = log(mb2 / mu_b2);
1737 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)
1738 + ((2. + sh) * sqrt_z_m_1) / (729. * sh) * (-48. * lmb_mu * acsq - 18. * M_PI * log(z - 1.) + 3. * gslpp::complex::i() * lzm1 * lzm1
1739 - 24. * gslpp::complex::i() * dilog(-x2 / x1) - 5. * M_PI2 * gslpp::complex::i()
1740 + 6. * gslpp::complex::i() * (-9. * lx1 * lx1 + lx2 * lx2 - 2. * lx4 * lx4 + 6. * lx1 * lx2 - 4. * lx1 * lx3 + 8. * lx1 * lx4)
1741 - 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))
1742 + 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
1743 - 288. - 8. * sh + 934. * sh2 - 692. * sh2 * sh + 18. * M_PI * gslpp::complex::i() * sh * (82. - 173. * sh + 73. * sh2))
1744 - 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
1745 + 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
1746 - M_PI2 * (54. - 53. * sh - 286. * sh2 + 612. * sh * sh2 - 446. * sh2 * sh2 + 113. * sh2 * sh2 * sh)));
1747}

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

2672{
2673 return sqrt(1. - 4. * Mlep2 / q2);
2674}

◆ C_Seidel()

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

Definition at line 1749 of file MVll.cpp.

1750{
1751 return -(16.) / (81.) * log((q2) / (mu_b2)) + (428.) / (243.) - (64.) / (27.) * gsl_sf_zeta_int(3) + (16.) / (81.) * M_PI * gslpp::complex::i();
1752 /* gsl_sf_zeta_int returns a double */
1753}

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

1853{
1854 gslpp::complex T_t = C_3 + 4. / 3. * (C_4 + 12. * C_5 + 16. * C_6);
1855 gslpp::complex T_u = 0.; /* 0 for K*0, phi*/
1856 if (meson == QCD::B_P) T_u = -3. * C_2;
1857 else if (vectorM == QCD::PHI) T_t = T_t + 6. * (C_3 + 10. * C_5);
1858 if (!conjugate) return T_t + lambda_u / lambda_t * T_u;
1859 else return T_t + (lambda_u / lambda_t).conjugate() * T_u;
1860}
@ 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 2518 of file MVll.cpp.

2519{
2520 if (hel == 0)
2521 return beta_0[3].real()*(-26.55265491727846*a_0A12)/a_0A12/a_0A12 +
2522 beta_0[2].real()*(-60.539167428104925*a_0A12)/a_0A12/a_0A12 +
2523 beta_0[1].real()*(-138.02728217972742*a_0A12)/a_0A12/a_0A12 +
2524 beta_0[0].real()*(-314.6975988486678*a_0A12)/a_0A12/a_0A12;
2525 else if (hel == 1)
2526 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())/
2527 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2528 (-119.89709952961475*a_0A1 - 24.007514603707598*a_0V + 29.020190982985117*a_1A1 - 20.59973411156516*a_1V)*(beta_1[1].real() - beta_2[1].real())/
2529 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2530 (-117.34075946812884*a_0A1 + 35.43498229234759*a_0V + 12.728340172828181*a_1A1 - 9.035103297409211*a_1V)*(beta_1[2].real() - beta_2[2].real())/
2531 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2532 (-79.86709064819027*a_0A1 + 35.702158475408076*a_0V + 5.582687021261181*a_1A1 - 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2533 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V);
2534 else
2535 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())/
2536 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2537 (-119.89709952961475*a_0A1 + 24.007514603707598*a_0V + 29.020190982985117*a_1A1 + 20.59973411156516*a_1V)*(beta_1[1].real() + beta_2[1].real())/
2538 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2539 (-117.34075946812884*a_0A1 - 35.43498229234759*a_0V + 12.728340172828181*a_1A1 + 9.035103297409211*a_1V)*(beta_1[2].real() + beta_2[2].real())/
2540 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2541 (-79.86709064819027*a_0A1 - 35.702158475408076*a_0V + 5.582687021261181*a_1A1 + 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2542 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V);
2543}

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

1756{
1757 if (zExpansion)
1758 return 0.;
1759 else {
1760 #if COMPUTECP && SPLINE
1761 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1762 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF_conj, q2, acc_Re_deltaC7_QCDF_conj);
1763 #elif SPLINE
1764 if (spline) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1765 #endif
1766
1767 double muh = mu_b / mb_pole;
1768 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1769 double sh = q2 / mb_pole / mb_pole;
1770 double sh2 = sh*sh;
1771
1772 #if FULLNLOQCDF_MVLL
1773 gslpp::complex A_Sdl = A_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1774 gslpp::complex Fu_17 = -A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1775 gslpp::complex Fu_27 = 6. * A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1776 #endif
1777 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*/
1778 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*/
1779 gslpp::complex F_87 = F87_0 + F87_1 * sh + F87_2 * sh2 + F87_3 * sh * sh2 - 8. / 9. * log(sh) * (sh + sh2 + sh * sh2);
1780
1781 if (!conjugate) {
1782 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
1783 gslpp::complex delta_t = C_8 * F_87 + delta;
1784 #if FULLNLOQCDF_MVLL
1785 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
1786 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1787 #else
1788 return -alpha_s_mub / (4. * M_PI) * delta_t;
1789 #endif
1790 } else {
1791 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
1792 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
1793 #if FULLNLOQCDF_MVLL
1794 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
1795 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1796 #else
1797 return -alpha_s_mub / (4. * M_PI) * delta_t;
1798 #endif
1799 }
1800 }
1801}
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:1703
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 1803 of file MVll.cpp.

1804{
1805 if (zExpansion)
1806 return 0.;
1807 else {
1808 #if COMPUTECP && SPLINE
1809 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1810 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF_conj, q2, acc_Re_deltaC9_QCDF_conj);
1811 #elif SPLINE
1812 if (spline) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1813 #endif
1814
1815 double muh = mu_b / mb_pole;
1816 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1817 double sh = q2 / mb_pole / mb_pole;
1818 double sh2 = sh*sh;
1819
1820 #if FULLNLOQCDF_MVLL
1821 gslpp::complex B_Sdl = B_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1822 gslpp::complex C_Sdl = C_Seidel(q2); /* hep-ph/0403185v2.*/
1823 gslpp::complex Fu_19 = -(B_Sdl + 4. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1824 gslpp::complex Fu_29 = -(-6. * B_Sdl + 3. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1825 #endif
1826 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*/
1827 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*/
1828 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));
1829
1830 if (!conjugate) {
1831 gslpp::complex delta = C_1 * F_19 + C_2 * F_29;
1832 gslpp::complex delta_t = C_8 * F_89 + delta;
1833 #if FULLNLOQCDF_MVLL
1834 gslpp::complex delta_u = delta + C_1 * Fu_19 + C_2 * Fu_29;
1835 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1836 #else
1837 return -alpha_s_mub / (4. * M_PI) * delta_t;
1838 #endif
1839 } else {
1840 gslpp::complex delta = C_1.conjugate() * F_19 + C_2.conjugate() * F_29;
1841 gslpp::complex delta_t = C_8.conjugate() * F_89 + delta;
1842 #if FULLNLOQCDF_MVLL
1843 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_19 + C_2.conjugate() * Fu_29;
1844 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1845 #else
1846 return -alpha_s_mub / (4. * M_PI) * delta_t;
1847 #endif
1848 }
1849 }
1850}
gslpp::complex B_Seidel(double q2, double mb2)
Definition: MVll.cpp:1717
gslpp::complex C_Seidel(double q2)
Definition: MVll.cpp:1749

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

1481{
1482 return 1. / (1. - q2 / MR_2) * (a_0 + a_1 * (z(q2) - z_0) + a_2 * (z(q2) - z_0) * (z(q2) - z_0));
1483}

◆ fit_QCDF_func()

void MVll::fit_QCDF_func ( )
private

Definition at line 2117 of file MVll.cpp.

2118{
2119 int dim = 0;
2120 for (double i = 0.001; i < 8.6; i += 0.5) {
2121 myq2.push_back(i);
2122 Re_T_perp.push_back(T_perp_real(i, false));
2123 Im_T_perp.push_back(T_perp_imag(i, false));
2124 Re_T_para.push_back(T_para_real(i, false));
2125 Im_T_para.push_back(T_para_imag(i, false));
2126
2127#if COMPUTECP
2128 Re_T_perp_conj.push_back(T_perp_real(i, true));
2129 Im_T_perp_conj.push_back(T_perp_imag(i, true));
2130 Re_T_para_conj.push_back(T_para_real(i, true));
2131 Im_T_para_conj.push_back(T_para_imag(i, true));
2132#endif
2133 dim++;
2134 }
2135
2136 gr1 = TGraph(dim, myq2.data(), Re_T_perp.data());
2137 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_perp");
2138 Re_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2139 Re_T_perp.clear();
2140
2141 gr1 = TGraph(dim, myq2.data(), Im_T_perp.data());
2142 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_perp");
2143 Im_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2144 Im_T_perp.clear();
2145
2146 gr1 = TGraph(dim, myq2.data(), Re_T_para.data());
2147 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_para");
2148 Re_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2149 Re_T_para.clear();
2150
2151 gr1 = TGraph(dim, myq2.data(), Im_T_para.data());
2152 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_para");
2153 Im_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2154 Im_T_para.clear();
2155
2156#if COMPUTECP
2157 gr1 = TGraph(dim, myq2.data(), Re_T_perp_conj.data());
2158 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_perp_conj");
2159 Re_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2160 Re_T_perp_conj.clear();
2161
2162 gr1 = TGraph(dim, myq2.data(), Im_T_perp_conj.data());
2163 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_perp_conj");
2164 Im_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2165 Im_T_perp_conj.clear();
2166
2167 gr1 = TGraph(dim, myq2.data(), Re_T_para_conj.data());
2168 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Re_T_para_conj");
2169 Re_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2170 Re_T_para_conj.clear();
2171
2172 gr1 = TGraph(dim, myq2.data(), Im_T_para_conj.data());
2173 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7, "MVll", "Im_T_para_conj");
2174 Im_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2175 Im_T_para_conj.clear();
2176#endif
2177
2178 myq2.clear();
2179}
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:2056
double QCDF_fit_func(double *x, double *p)
Definition: MVll.cpp:2112
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:2030
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:2068
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:2043

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

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

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

3150{
3151 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);
3152}
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 2967 of file MVll.cpp.

2968{
2969 updateParameters();
2970
2971 switch (i) {
2972 case 0:
2973 return getSigma1c(q_2);
2974 break;
2975 case 1:
2976 return getSigma1s(q_2);
2977 break;
2978 case 2:
2979 return getSigma2c(q_2);
2980 break;
2981 case 3:
2982 return getSigma2s(q_2);
2983 break;
2984 case 4:
2985 return getSigma3(q_2);
2986 break;
2987 case 5:
2988 return getSigma4(q_2);
2989 break;
2990 case 6:
2991 return getSigma5(q_2);
2992 break;
2993 case 7:
2994 return getSigma6s(q_2);
2995 break;
2996 case 8:
2997 return getSigma6c(q_2);
2998 break;
2999 case 9:
3000 return getSigma7(q_2);
3001 break;
3002 case 10:
3003 return getSigma8(q_2);
3004 break;
3005 case 11:
3006 return getSigma9(q_2);
3007 break;
3008 default:
3009 std::stringstream out;
3010 out << i;
3011 throw std::runtime_error("MVll::getSigma: index " + out.str() + " not implemented");
3012 }
3013}

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

2598{
2599 if (lep == QCD::NEUTRINO_1) {
2600 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_e - etaV * pow(-1, angmomV) * C_R_nunu_e) * V_0t(q2);
2601 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_e.conjugate()) * V_0t(q2);
2602 } else if (lep == QCD::NEUTRINO_2) {
2603 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_mu - etaV * pow(-1, angmomV) * C_R_nunu_mu) * V_0t(q2);
2604 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_mu.conjugate()) * V_0t(q2);
2605 } else if (lep == QCD::NEUTRINO_3) {
2606 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_tau - etaV * pow(-1, angmomV) * C_R_nunu_tau) * V_0t(q2);
2607 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_tau.conjugate()) * V_0t(q2);
2608 }
2609}
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 2563 of file MVll.cpp.

2564{
2565 if (!bar) return gslpp::complex::i() * NN * (-C_10 + etaV * pow(-1, angmomV) * C_10p) * V_0t(q2);
2566 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() + etaV * pow(-1, angmomV) * C_10p.conjugate()) * V_0t(q2);
2567}

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

2576{
2577 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_m(q2) + etaV * pow(-1, angmomV) * C_10p * V_p(q2));
2578 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_m(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_p(q2));
2579}

◆ H_A_p()

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

The helicity amplitude \( H_A^+ \) .

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

Definition at line 2569 of file MVll.cpp.

2570{
2571 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_p(q2) + etaV * pow(-1, angmomV) * C_10p * V_m(q2));
2572 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_p(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_m(q2));
2573}

◆ h_func()

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

Definition at line 1939 of file MVll.cpp.

1940{
1941 if (m2 == 0.) return 8. / 27. + 4. * gslpp::complex::i() * M_PI / 9. + 8. * log(mu_b) / 9. - 4. * log(s) / 9.;
1942 if (s == 0.) return -4. / 9. * (1. + log(m2 / mu_b / mu_b));
1943
1944 double z = 4 * m2 / s;
1945 gslpp::complex term;
1946 if (z > 1) term = atan(1. / sqrt(z - 1.));
1947 else term = log((1. + sqrt(1. - z)) / sqrt(z)) - ihalfMPI;
1948
1949 return -4. / 9. * log(m2 / mu_b / mu_b) + 8. / 27. + 4. / 9. * z - 4. / 9. * (2. + z) * sqrt(std::abs(z - 1.)) * term;
1950
1951}

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

2489{
2490 if (zExpansion) {
2491 if (hel == 0)
2492 return DeltaC9_zExpansion(q2, 0) * MM / sqrt(q2);
2493 else if (hel == 1)
2494 return (DeltaC9_zExpansion(q2, 1) - DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2495 else
2496 return (DeltaC9_zExpansion(q2, 1) + DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2497 } else if (dispersion) {
2498 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)));
2499 else if (hel == 1) {
2500 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) * (
2501 (MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2502 - sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2503 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)));
2504 } else {
2505 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) *
2506 ((MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2507 + sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2508 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)));
2509 }
2510 } else {
2511 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]));
2512 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);
2513 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;
2514 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);
2515 }
2516}
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 2625 of file MVll.cpp.

2626{
2627 if (lep == QCD::NEUTRINO_1) {
2628 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));
2629 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));
2630 } else if (lep == QCD::NEUTRINO_2) {
2631 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));
2632 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));
2633 } else if (lep == QCD::NEUTRINO_3) {
2634 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));
2635 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));
2636 }
2637}

◆ H_P()

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

The helicity amplitude \( H_P \) .

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

Definition at line 2589 of file MVll.cpp.

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

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

2612{
2613 if (lep == QCD::NEUTRINO_1) {
2614 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));
2615 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));
2616 } else if (lep == QCD::NEUTRINO_2) {
2617 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));
2618 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));
2619 } else if (lep == QCD::NEUTRINO_3) {
2620 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));
2621 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));
2622 }
2623}

◆ H_S()

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

The helicity amplitude \( H_S \) .

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

Definition at line 2581 of file MVll.cpp.

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

◆ H_V_0()

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

The helicity amplitude \( H_V^0 \) .

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

Definition at line 2545 of file MVll.cpp.

2546{
2547 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)));
2548 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)));
2549}
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:1755
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:1803
gslpp::complex T_0(double q2, bool conjugate)
Definition: MVll.cpp:2272

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

2558{
2559 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)));
2560 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)));
2561}
gslpp::complex T_minus(double q2, bool conjugate)
Definition: MVll.cpp:2250

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

2552{
2553 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)));
2554 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)));
2555}

◆ I1()

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

Definition at line 1908 of file MVll.cpp.

1909{
1910 if (m2 == 0.) return 1.;
1911
1912 ubar = 1. - u;
1913 xp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1914 xm = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1915 yp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / q2);
1916 ym = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / q2);
1917 L1xp = log(1. - 1. / xp) * log(1. - xp) - M_PI2osix + dilog(xp / (xp - 1.));
1918 L1xm = log(1. - 1. / xm) * log(1. - xm) - M_PI2osix + dilog(xm / (xm - 1.));
1919 L1yp = log(1. - 1. / yp) * log(1. - yp) - M_PI2osix + dilog(yp / (yp - 1.));
1920 L1ym = log(1. - 1. / ym) * log(1. - ym) - M_PI2osix + dilog(ym / (ym - 1.));
1921
1922 return 1. + 2. * m2 / ubar / (MM2 - q2)*(L1xp + L1xm - L1yp - L1ym);
1923}

◆ initializeMVllParameters()

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

A method for initializing the parameters necessary for MVll.

Returns
the vector of MVll specific parameters

Definition at line 160 of file MVll.cpp.

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

3016{
3017 updateParameters();
3018
3019 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3020
3021 old_handler = gsl_set_error_handler_off();
3022
3023 switch (i) {
3024 case 0:
3025 if (delta0Cached[qbin] == 0) {
3026 FD = convertToGslFunction(bind(&MVll::getDelta1c, &(*this), _1));
3027 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3028 cacheDelta0[qbin] = avaDelta;
3029 delta0Cached[qbin] = 1;
3030 }
3031 return cacheDelta0[qbin];
3032 break;
3033 case 1:
3034 if (delta1Cached[qbin] == 0) {
3035 FD = convertToGslFunction(bind(&MVll::getDelta1s, &(*this), _1));
3036 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3037 cacheDelta1[qbin] = avaDelta;
3038 delta1Cached[qbin] = 1;
3039 }
3040 return cacheDelta1[qbin];
3041 break;
3042 case 2:
3043 if (delta2Cached[qbin] == 0) {
3044 FD = convertToGslFunction(bind(&MVll::getDelta2c, &(*this), _1));
3045 if (gsl_integration_cquad(&FD, q_min, q_max, 1.e-2, 1.e-1, w_delta, &avaDelta, &errDelta, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
3046 cacheDelta2[qbin] = avaDelta;
3047 delta2Cached[qbin] = 1;
3048 }
3049 return cacheDelta2[qbin];
3050 break;
3051 case 3:
3052 if (delta3Cached[qbin] == 0) {
3053 FD = convertToGslFunction(bind(&MVll::getDelta2s, &(*this), _1));
3054 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();
3055 cacheDelta3[qbin] = avaDelta;
3056 delta3Cached[qbin] = 1;
3057 }
3058 return cacheDelta3[qbin];
3059 break;
3060 case 6:
3061 if (delta6Cached[qbin] == 0) {
3062 FD = convertToGslFunction(bind(&MVll::getDelta5, &(*this), _1));
3063 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();
3064 cacheDelta6[qbin] = avaDelta;
3065 delta6Cached[qbin] = 1;
3066 }
3067 return cacheDelta6[qbin];
3068 break;
3069 case 7:
3070 if (delta7Cached[qbin] == 0) {
3071 FD = convertToGslFunction(bind(&MVll::getDelta6s, &(*this), _1));
3072 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();
3073 cacheDelta7[qbin] = avaDelta;
3074 delta7Cached[qbin] = 1;
3075 }
3076 return cacheDelta7[qbin];
3077 break;
3078 case 8:
3079 if (delta8Cached[qbin] == 0) {
3080 FD = convertToGslFunction(bind(&MVll::getDelta6c, &(*this), _1));
3081 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();
3082 cacheDelta8[qbin] = avaDelta;
3083 delta8Cached[qbin] = 1;
3084 }
3085 return cacheDelta8[qbin];
3086 break;
3087 case 10:
3088 if (delta10Cached[qbin] == 0) {
3089 FD = convertToGslFunction(bind(&MVll::getDelta8, &(*this), _1));
3090 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();
3091 cacheDelta10[qbin] = avaDelta;
3092 delta10Cached[qbin] = 1;
3093 }
3094 return cacheDelta10[qbin];
3095 break;
3096 case 11:
3097 if (delta11Cached[qbin] == 0) {
3098 FD = convertToGslFunction(bind(&MVll::getDelta9, &(*this), _1));
3099 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();
3100 cacheDelta11[qbin] = avaDelta;
3101 delta11Cached[qbin] = 1;
3102 }
3103 return cacheDelta11[qbin];
3104 break;
3105 default:
3106 std::stringstream out;
3107 out << i;
3108 throw std::runtime_error("MVll::integrateDelta: index " + out.str() + " not implemented");
3109 }
3110
3111 gsl_set_error_handler(old_handler);
3112
3113}

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

2841{
2842 updateParameters();
2843
2844 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2845
2846 old_handler = gsl_set_error_handler_off();
2847
2848 switch (i) {
2849 case 0:
2850 if (sigma0Cached[qbin] == 0) {
2851 FS = convertToGslFunction(bind(&MVll::getSigma1c, &(*this), _1));
2852 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2853 cacheSigma0[qbin] = avaSigma;
2854 sigma0Cached[qbin] = 1;
2855 }
2856 return cacheSigma0[qbin];
2857 break;
2858 case 1:
2859 if (sigma1Cached[qbin] == 0) {
2860 FS = convertToGslFunction(bind(&MVll::getSigma1s, &(*this), _1));
2861 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2862 cacheSigma1[qbin] = avaSigma;
2863 sigma1Cached[qbin] = 1;
2864 }
2865 return cacheSigma1[qbin];
2866 break;
2867 case 2:
2868 if (sigma2Cached[qbin] == 0) {
2869 FS = convertToGslFunction(bind(&MVll::getSigma2c, &(*this), _1));
2870 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2871 cacheSigma2[qbin] = avaSigma;
2872 sigma2Cached[qbin] = 1;
2873 }
2874 return cacheSigma2[qbin];
2875 break;
2876 case 3:
2877 if (sigma3Cached[qbin] == 0) {
2878 FS = convertToGslFunction(bind(&MVll::getSigma2s, &(*this), _1));
2879 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2880 cacheSigma3[qbin] = avaSigma;
2881 sigma3Cached[qbin] = 1;
2882 }
2883 return cacheSigma3[qbin];
2884 break;
2885 case 4:
2886 if (sigma4Cached[qbin] == 0) {
2887 FS = convertToGslFunction(bind(&MVll::getSigma3, &(*this), _1));
2888 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2889 cacheSigma4[qbin] = avaSigma;
2890 sigma4Cached[qbin] = 1;
2891 }
2892 return cacheSigma4[qbin];
2893 break;
2894 case 5:
2895 if (sigma5Cached[qbin] == 0) {
2896 FS = convertToGslFunction(bind(&MVll::getSigma4, &(*this), _1));
2897 if (gsl_integration_cquad(&FS, q_min, q_max, 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL) != 0) return std::numeric_limits<double>::quiet_NaN();
2898 cacheSigma5[qbin] = avaSigma;
2899 sigma5Cached[qbin] = 1;
2900 }
2901 return cacheSigma5[qbin];
2902 break;
2903 case 6:
2904 if (sigma6Cached[qbin] == 0) {
2905 FS = convertToGslFunction(bind(&MVll::getSigma5, &(*this), _1));
2906 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();
2907 cacheSigma6[qbin] = avaSigma;
2908 sigma6Cached[qbin] = 1;
2909 }
2910 return cacheSigma6[qbin];
2911 break;
2912 case 7:
2913 if (sigma7Cached[qbin] == 0) {
2914 FS = convertToGslFunction(bind(&MVll::getSigma6s, &(*this), _1));
2915 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();
2916 cacheSigma7[qbin] = avaSigma;
2917 sigma7Cached[qbin] = 1;
2918 }
2919 return cacheSigma7[qbin];
2920 break;
2921 case 8:
2922 if (sigma8Cached[qbin] == 0) {
2923 FS = convertToGslFunction(bind(&MVll::getSigma6c, &(*this), _1));
2924 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();
2925 cacheSigma8[qbin] = avaSigma;
2926 sigma8Cached[qbin] = 1;
2927 }
2928 return cacheSigma8[qbin];
2929 break;
2930 case 9:
2931 if (sigma9Cached[qbin] == 0) {
2932 FS = convertToGslFunction(bind(&MVll::getSigma7, &(*this), _1));
2933 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();
2934 cacheSigma9[qbin] = avaSigma;
2935 sigma9Cached[qbin] = 1;
2936 }
2937 return cacheSigma9[qbin];
2938 break;
2939 case 10:
2940 if (sigma10Cached[qbin] == 0) {
2941 FS = convertToGslFunction(bind(&MVll::getSigma8, &(*this), _1));
2942 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();
2943 cacheSigma10[qbin] = avaSigma;
2944 sigma10Cached[qbin] = 1;
2945 }
2946 return cacheSigma10[qbin];
2947 break;
2948 case 11:
2949 if (sigma11Cached[qbin] == 0) {
2950 FS = convertToGslFunction(bind(&MVll::getSigma9, &(*this), _1));
2951 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();
2952 cacheSigma11[qbin] = avaSigma;
2953 sigma11Cached[qbin] = 1;
2954 }
2955 return cacheSigma11[qbin];
2956 break;
2957 default:
2958 std::stringstream out;
2959 out << i;
2960 throw std::runtime_error("MVll::integrateSigma: index " + out.str() + " not implemented");
2961 }
2962
2963 gsl_set_error_handler(old_handler);
2964
2965}

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

3115{
3116 if (lep != QCD::NEUTRINO_1 or meson != QCD::B_P or !NeutrinoTree_flag) return 0.;
3117
3118 updateParameters();
3119
3120 //phase space limit where tree-level contribution is relevant (0908.1174)
3121 double q_cut = (mtau2 - MV2) * (MM2 - mtau2) / mtau2;
3122 if (q_max >= q_cut) {
3123 if (q_min == 0.) return getintegratedSigmaTree();
3124 q_max = q_cut;
3125 }
3126
3127 double prefactor = mySM.getMesons(meson).getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (64. * M_PI2 * MM3 * Gammatau) * mtau2 * mtau;
3128
3129 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3130
3131 old_handler = gsl_set_error_handler_off();
3132
3133 if (sigmaTreeCached[qbin] == 0) {
3134 FD = convertToGslFunction(bind(&MVll::SigmaTree, &(*this), _1));
3135 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();
3136 cacheSigmaTree[qbin] = avaSigmaTree;
3137 sigmaTreeCached[qbin] = 1;
3138 }
3139 return prefactor * cacheSigmaTree[qbin];
3140
3141 gsl_set_error_handler(old_handler);
3142}
double getintegratedSigmaTree()
The integral of from 0 to .
Definition: MVll.cpp:3149
double SigmaTree(double q2)
Definition: MVll.cpp:3144

◆ lambda_B_minus()

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

Definition at line 2024 of file MVll.cpp.

2025{
2026 double w0 = mySM.getMesons(meson).getLambdaM();
2027 return 1. / (exp(-q2 / MM / w0) / w0 * (-gsl_sf_expint_Ei(q2 / MM / w0) + gslpp::complex::i() * M_PI));
2028}
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 2019 of file MVll.cpp.

2020{
2021 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.)));
2022}
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 2112 of file MVll.cpp.

2113{
2114 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];
2115}

◆ SigmaTree()

double MVll::SigmaTree ( double  q2)
private

Definition at line 3144 of file MVll.cpp.

3145{
3146 return (MM2 - mtau2) * (mtau2 - MV2) - q2 * (mtau2 - 2. * MV2);
3147}

◆ spline_QCDF_func()

void MVll::spline_QCDF_func ( )
private

Definition at line 2181 of file MVll.cpp.

2182{
2183 int dim = GSL_INTERP_DIM;
2184 int dim_DC = GSL_INTERP_DIM_DC;
2185 double min = 0.001;
2186 double interval = (9.9 - min) / ((double) dim);
2187 double interval_DC = (9.9 - min) / ((double) dim_DC);
2188 double q2_spline[dim];
2189 double fq2_Re_T_perp[dim], fq2_Im_T_perp[dim], fq2_Re_T_para[dim], fq2_Im_T_para[dim];
2190 double q2_spline_DC[dim_DC];
2191 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];
2192#if COMPUTECP
2193 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];
2194 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];
2195#endif
2196
2197 for (int i = 0; i < dim; i++) {
2198 q2_spline[i] = min + (double) i*interval;
2199 fq2_Re_T_perp[i] = T_perp_real(q2_spline[i], false);
2200 fq2_Im_T_perp[i] = T_perp_imag(q2_spline[i], false);
2201 fq2_Re_T_para[i] = T_para_real(q2_spline[i], false);
2202 fq2_Im_T_para[i] = T_para_imag(q2_spline[i], false);
2203
2204#if COMPUTECP
2205 fq2_Re_T_perp_conj[i] = T_perp_real(q2_spline[i], true);
2206 fq2_Im_T_perp_conj[i] = T_perp_imag(q2_spline[i], true);
2207 fq2_Re_T_para_conj[i] = T_para_real(q2_spline[i], true);
2208 fq2_Im_T_para_conj[i] = T_para_imag(q2_spline[i], true);
2209#endif
2210 }
2211 for (int i = 0; i < dim_DC; i++) {
2212 q2_spline_DC[i] = min + (double) i*interval_DC;
2213 fq2_Re_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).real();
2214 fq2_Im_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).imag();
2215 fq2_Re_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).real();
2216 fq2_Im_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).imag();
2217
2218#if COMPUTECP
2219 fq2_Re_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).real();
2220 fq2_Im_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).imag();
2221 fq2_Re_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).real();
2222 fq2_Im_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).imag();
2223#endif
2224 }
2225
2226 gsl_spline_init(spline_Re_T_perp, q2_spline, fq2_Re_T_perp, dim);
2227 gsl_spline_init(spline_Im_T_perp, q2_spline, fq2_Im_T_perp, dim);
2228 gsl_spline_init(spline_Re_T_para, q2_spline, fq2_Re_T_para, dim);
2229 gsl_spline_init(spline_Im_T_para, q2_spline, fq2_Im_T_para, dim);
2230
2231 gsl_spline_init(spline_Re_deltaC7_QCDF, q2_spline_DC, fq2_Re_deltaC7_QCDF, dim_DC);
2232 gsl_spline_init(spline_Im_deltaC7_QCDF, q2_spline_DC, fq2_Im_deltaC7_QCDF, dim_DC);
2233 gsl_spline_init(spline_Re_deltaC9_QCDF, q2_spline_DC, fq2_Re_deltaC9_QCDF, dim_DC);
2234 gsl_spline_init(spline_Im_deltaC9_QCDF, q2_spline_DC, fq2_Im_deltaC9_QCDF, dim_DC);
2235
2236#if COMPUTECP
2237 gsl_spline_init(spline_Re_T_perp_conj, q2_spline, fq2_Re_T_perp_conj, dim);
2238 gsl_spline_init(spline_Im_T_perp_conj, q2_spline, fq2_Im_T_perp_conj, dim);
2239 gsl_spline_init(spline_Re_T_para_conj, q2_spline, fq2_Re_T_para_conj, dim);
2240 gsl_spline_init(spline_Im_T_para_conj, q2_spline, fq2_Im_T_para_conj, dim);
2241
2242 gsl_spline_init(spline_Re_deltaC7_QCDF_conj, q2_spline_DC, fq2_Re_deltaC7_QCDF_conj, dim_DC);
2243 gsl_spline_init(spline_Im_deltaC7_QCDF_conj, q2_spline_DC, fq2_Im_deltaC7_QCDF_conj, dim_DC);
2244 gsl_spline_init(spline_Re_deltaC9_QCDF_conj, q2_spline_DC, fq2_Re_deltaC9_QCDF_conj, dim_DC);
2245 gsl_spline_init(spline_Im_deltaC9_QCDF_conj, q2_spline_DC, fq2_Im_deltaC9_QCDF_conj, dim_DC);
2246#endif
2247
2248}

◆ T_0()

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

Definition at line 2272 of file MVll.cpp.

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

◆ T_minus()

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

Definition at line 2250 of file MVll.cpp.

2251{
2252 if (zExpansion)
2253 return 0.;
2254 else {
2255 #if COMPUTECP && SPLINE
2256 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));
2257 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));
2258 #elif SPLINE
2259 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));
2260 #endif
2261
2262 #if COMPUTECP && !SPLINE
2263 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())));
2264 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())));
2265 #elif !SPLINE
2266 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())));
2267 #endif
2268 }
2269
2270}

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

1902{
1903 double EV = (MM2pMV2 - q2) / (2. * MM);
1904 double ubar = 1. - u;
1905 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + (ubar * MM2 + u * q2) / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1906}
gslpp::complex B0diff(double q2, double u, double m2)
Definition: MVll.cpp:1925
gslpp::complex I1(double q2, double u, double m2)
Definition: MVll.cpp:1908

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

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

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

2069{
2070 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2071
2072 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (/* + */T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2073 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2074#if FULLNLOQCDF_MVLL
2075 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate) * phi_V(u);
2076#endif
2077 return sqrt(q2) * T_amp.imag();
2078}
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1862
double phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
Definition: MVll.cpp:2019
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:1975
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:1885
gslpp::complex lambda_B_minus(double q2)
Definition: MVll.cpp:2024
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:1997

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

1886{
1887 double ubar = 1. - u;
1888
1889 return (alpha_s_mub / (3. * M_PI))*spectator_charge * 8. * C_8 / (ubar + u * q2 / MM2);
1890}
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 1997 of file MVll.cpp.

1998{
1999 double ubar = 1. - u;
2000 gslpp::complex h_mc = h_func(ubar * MM2 + u*q2, mc_pole * mc_pole);
2001#if FULLNLOQCDF_MVLL
2002 gslpp::complex h_mb = h_func(ubar*MM2 + u*q2, mb_pole*mb_pole);
2003 gslpp::complex h_0 = h_func(ubar*MM2 + u*q2, 0);
2004
2005 gslpp::complex T_t = (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6)
2006 + h_mb * (C_3 + 5.*C_4/6. + 16.*C_5 + 22.*C_6/3.)
2007 + h_0 * (C_3 + 17.*C_4/6. + 16.*C_5 + 82.*C_6/3.)
2008 - 8./27. * (-15.*C_4/2. + 12.*C_5 - 32.*C_6));
2009
2010 gslpp::complex T_u = (h_mc - h_0)*(C_2 - C_1/6.);
2011
2012 if (!conjugate) return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
2013 else return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
2014#else
2015 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));
2016#endif
2017}
gslpp::complex h_func(double s, double m2)
Definition: MVll.cpp:1939

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

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

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

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

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

2097{
2098 FS = convertToGslFunction(bind(&MVll::T_para_real, &(*this), q2, _1, conjugate));
2099 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2100
2101 return avaSigma;
2102}

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

2057{
2058 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2059
2060 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2061 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2062#if FULLNLOQCDF_MVLL
2063 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate)* phi_V(u);
2064#endif
2065 return sqrt(q2) * T_amp.real();
2066}

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

1893{
1894 double EV = (MM2 - q2 + MV2) / (2. * MM);
1895 double ubar = 1. - u;
1896
1897 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + q2 / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1898
1899}

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

2089{
2090 FS = convertToGslFunction(bind(&MVll::T_perp_imag, &(*this), q2, _1, conjugate));
2091 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2092
2093 return avaSigma;
2094}

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

2044{
2045 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));
2046#if FULLNLOQCDF_MVLL
2047 double ubar = 1. - u;
2048
2049 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2050 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2051 /*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]*/
2052#endif
2053 return T_amp.imag();
2054}
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:1953
gslpp::complex T_perp_WA_1()
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1867
gslpp::complex T_perp_WA_2(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition: MVll.cpp:1872
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:1877

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

1878{
1879 double ubar = 1. - u;
1880 double ed = -1. / 3.;
1881
1882 return -(alpha_s_mub / (3. * M_PI))*4. * ed * C_8 / (u + ubar * q2 / MM2);
1883}

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

1954{
1955 gslpp::complex t_perp_mc = t_perp(q2, u, mc_pole * mc_pole);
1956 double eu = 0.666666667;
1957#if FULLNLOQCDF_MVLL
1958 gslpp::complex t_perp_mb = t_perp(q2, u, mb_pole*mb_pole);
1959 gslpp::complex t_perp_0 = t_perp(q2, u, 0.);
1960 double ed = -0.333333333;
1961
1962 gslpp::complex T_t = (eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6)
1963 + 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.))
1964 + ed * t_perp_0 * (C_3 - C_4/6. + 16. * C_5 - 8. * C_6/3.));
1965
1966 gslpp::complex T_u = eu * (t_perp_mc - t_perp_0)*(C_2 - C_1 / 6.);
1967
1968 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + lambda_u / lambda_t * T_u);
1969 else return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + (lambda_u / lambda_t).conjugate() * T_u);
1970#else
1971 return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6));
1972#endif
1973}
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:1892

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

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

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

2031{
2032 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));
2033#if FULLNLOQCDF_MVLL
2034 double ubar = 1. - u;
2035
2036 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2037 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2038 /*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]*/
2039#endif
2040 return T_amp.real();
2041}

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

1868{
1869 return -spectator_charge * 4. / mb_pole * (C_3 + 4. / 3. * (C_4 + 3. * C_5 + 4. * C_6));
1870}

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

1873{
1874 return spectator_charge * 2. / mb_pole * Cq34(conjugate);
1875}

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