a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Loading...
Searching...
No Matches
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.
 
double beta (double q2)
 The factor \( \beta \) used in the angular coefficients \(I_i\).
 
double Delta_C9_zExp (int hel)
 The non-pertubative ccbar contributions to the helicity amplitudes.
 
double get_unitarity_bound_F2 ()
 The unitarity constraints on form factors \( F_2 \).
 
double get_unitarity_bound_f_F1 ()
 The unitarity constraints on form factors \( f \) and \( F_1 \).
 
double get_unitarity_bound_g ()
 The unitarity constraints on form factors \( g \).
 
double get_unitarity_bound_T1 ()
 The unitarity constraints on form factors \( T_1 \).
 
double get_unitarity_bound_T2_T0 ()
 The unitarity constraints on form factors \( T_2 \) and \( T_0 \) .
 
double getDelta_C9_zExp_0 ()
 The non-pertubative ccbar contributions to the helicity amplitudes.
 
double getDelta_C9_zExp_m ()
 The non-pertubative ccbar contributions to the helicity amplitudes.
 
double getDelta_C9_zExp_p ()
 The non-pertubative ccbar contributions to the helicity amplitudes.
 
double getgtilde_1_im (double q2)
 The immaginary part of \( \tilde{g}^1 \).
 
double getgtilde_1_re (double q2)
 The real part of \( \tilde{g}^1 \).
 
double getgtilde_2_im (double q2)
 The immaginary part of \( \tilde{g}^2 \).
 
double getgtilde_2_re (double q2)
 The real part of \( \tilde{g}^2 \).
 
double getgtilde_3_im (double q2)
 The imaginary part of \( \tilde{g}^3 \).
 
double getgtilde_3_re (double q2)
 The real part of \( \tilde{g}^3 \).
 
double geth_0_im (double q2)
 The imaginary part of \( h_0 \).

 
double geth_0_re (double q2)
 The real part of \( h_0 \).

 
gslpp::complex geth_m_0 ()
 \( h_-(0) \).
 
double geth_m_im (double q2)
 The imaginary part of \( h_- \).

 
double geth_m_re (double q2)
 The real part of \( h_- \).

 
gslpp::complex geth_p_0 ()
 \( h_+(0) \).
 
double geth_p_im (double q2)
 The imaginary part of \( h_+ \).

 
double geth_p_re (double q2)
 The real part of \( h_+ \).

 
double getMlep ()
 The mass of the lepton l.
 
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 \) .
 
double getSigma (int i, double q_2)
 The value of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\).
 
double getT0 (double q2)
 The form factor \( T_0 \) .
 
double getTm (double q2)
 The form factor \( T_- \) .
 
double getTp (double q2)
 The form factor \( T_+ \) .
 
double getV0 (double q2)
 The form factor \( V_0 \) .
 
double getVm (double q2)
 The form factor \( V_- \) .
 
double getVp (double q2)
 The form factor \( V_+ \) .
 
double getwidth ()
 The width of the meson M.
 
gslpp::complex H_0_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^0 \) for the invisible decay .
 
gslpp::complex H_A_0 (double q2, bool bar)
 The helicity amplitude \( H_A^0 \) .
 
gslpp::complex H_A_m (double q2, bool bar)
 The helicity amplitude \( H_A^- \) .
 
gslpp::complex H_A_p (double q2, bool bar)
 The helicity amplitude \( H_A^+ \) .
 
gslpp::complex h_lambda (int hel, double q2)
 The non-pertubative ccbar contributions to the helicity amplitudes.
 
gslpp::complex H_m_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^- \) for the invisible decay .
 
gslpp::complex H_P (double q2, bool bar)
 The helicity amplitude \( H_P \) .
 
gslpp::complex H_p_nunu (double q2, bool bar, QCD::lepton lep)
 The helicity amplitude \( H^+ \) for the invisible decay .
 
gslpp::complex H_S (double q2, bool bar)
 The helicity amplitude \( H_S \) .
 
gslpp::complex H_V_0 (double q2, bool bar)
 The helicity amplitude \( H_V^0 \) .
 
gslpp::complex H_V_m (double q2, bool bar)
 The helicity amplitude \( H_V^- \) .
 
gslpp::complex H_V_p (double q2, bool bar)
 The helicity amplitude \( H_V^+ \) .
 
std::vector< std::string > initializeMVllParameters ()
 A method for initializing the parameters necessary for MVll.
 
double integrateDelta (int i, double q_min, double q_max)
 The integral of \( \Delta_{i} \) from \(q_{min}\) to \(q_{max}\).
 
double integrateSigma (int i, double q_min, double q_max)
 The integral of \( \Sigma_{i} \) from \(q_{min}\) to \(q_{max}\).
 
double integrateSigmaTree (double q_min, double q_max)
 The integral of \( \Sigma_{tree} \) from \(q_{min}\) to \(q_{max}\) (arxiv/2301.06990)
 
 MVll (const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
 Constructor.
 
virtual ~MVll ()
 Destructor.
 

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.
 
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)..
 
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)..
 
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} \).
 
void fit_QCDF_func ()
 
double getintegratedSigmaTree ()
 The integral of \( \Sigma_{tree} \) from 0 to \(q_{cut}\).
 
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.
 
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.
 
double T_para_imag (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
double T_para_imag (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
gslpp::complex T_para_minus_O8 (double q2, double u)
 QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution.
 
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.
 
gslpp::complex T_para_minus_WA (bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
 
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.
 
double T_para_real (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
double T_para_real (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
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.
 
double T_perp_imag (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
double T_perp_imag (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
gslpp::complex T_perp_plus_O8 (double q2, double u)
 QCDF Correction from various BFS paper (hep-ph/0106067). Chromomagnetic dipole contribution contribution.
 
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.
 
double T_perp_real (double q2, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
double T_perp_real (double q2, double u, bool conjugate)
 QCDF Correction from various BFS papers (hep-ph/0106067, hep-ph/0412400). Total.
 
gslpp::complex T_perp_WA_1 ()
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
 
gslpp::complex T_perp_WA_2 (bool conjugate)
 QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
 

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

1768{
1769 double sh = q2 / mb2;
1770 double z = (4. * mb2) / q2;
1771 double lsh = log(sh);
1772 gslpp::complex acsq = arccot((gslpp::complex)sqrt(z - 1.));
1773 double sh2 = sh*sh;
1774 double osh2 = (1. - sh)*(1. - sh);
1775 return (-(104.) / (243.) * log((mb2) / (mu_b2)) + (4. * sh) / (27. * (1. - sh)) * (dilog((gslpp::complex)sh) + lsh * log(1. - sh))
1776 + (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))
1777 - (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)
1778 + (2. * sh) / (243. * osh2 * osh2) * (36. * acsq * acsq + M_PI2 * (-4. + 9. * sh - 9. * sh2 + 3. * sh2 * sh)));
1779}

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

2704{
2705 updateParameters();
2706
2707 // amplitude at charmonium resonance, i.e. q2 = mJ2 or mPsi2S2
2708 double q2 = mpsi*mpsi;
2709 double fpsi = 0.;
2710 // decay constant of the charmonium state estimated from EXP decay width in e+ e-
2711 if(fabs(mpsi - mJpsi) <1.e-5){
2712 double Gammaepm = 5.971/100.*(92.6*1e-6);
2713 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2714 }
2715 else if(fabs(mpsi - mPsi2S)< 1.e-5){
2716 double Gammaepm = 7.93/1000.*(294.*1e-6);
2717 fpsi = sqrt(Gammaepm*(3.*sqrt(q2))/(4.*M_PI*ale*ale)/(4./9.));
2718 }
2719 else{
2720 return 0.;
2721 }
2722 gslpp::complex Norm = GF*lambda_t.conjugate()*sqrt(sqrt(lambda(q2))/(2.*M_PI*MM))*MM*MM/sqrt(q2)/fpsi;
2723 if(tran == 0) Norm *= MM/sqrt(q2);
2724 return Norm*DeltaC9_zExpansion(q2,tran);
2725}
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 1997 of file MVll.cpp.

1998{
1999 if (4. * m2 / s == 1.) return gslpp::complex(0.);
2000 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.));
2001}
Test Observable.

◆ B0diff()

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

Definition at line 1989 of file MVll.cpp.

1990{
1991 double ubar = 1. - u;
1992
1993 if (m2 == 0.) return -log((gslpp::complex)(-(2. / q2))) + log((gslpp::complex)(-(2. / (q2 * u + MM2 * ubar))));
1994 else return B0(ubar * MM2 + u * q2, m2) - B0(q2, m2);
1995}
gslpp::complex B0(double s, double m2)
Definition MVll.cpp:1997

◆ B_Seidel()

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

Definition at line 1781 of file MVll.cpp.

1782{
1783 double sh = q2 / mb2;
1784 double z = (4. * mb2) / q2;
1785 double sqrt_z_m_1 = sqrt(z - 1.);
1786 gslpp::complex x1 = 0.5 + gslpp::complex::i() / 2. * sqrt_z_m_1;
1787 gslpp::complex x2 = 0.5 - gslpp::complex::i() / 2. * sqrt_z_m_1;
1788 gslpp::complex x3 = 0.5 + gslpp::complex::i() / (2. * sqrt_z_m_1);
1789 gslpp::complex x4 = 0.5 - gslpp::complex::i() / (2. * sqrt_z_m_1);
1790 gslpp::complex lx1 = log(x1);
1791 gslpp::complex lx2 = log(x2);
1792 gslpp::complex lx3 = log(x3);
1793 gslpp::complex lx4 = log(x4);
1794 gslpp::complex lx2_x1 = lx2 - lx1;
1795 gslpp::complex lzm1 = log(z - 1.);
1796 gslpp::complex acsq = arccot((gslpp::complex)sqrt_z_m_1);
1797 double sh2 = sh*sh;
1798 double lsh = log(sh);
1799 double osh2 = (1. - sh)*(1. - sh);
1800 double lmb_mu = log(mb2 / mu_b2);
1801 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)
1802 + ((2. + sh) * sqrt_z_m_1) / (729. * sh) * (-48. * lmb_mu * acsq - 18. * M_PI * log(z - 1.) + 3. * gslpp::complex::i() * lzm1 * lzm1
1803 - 24. * gslpp::complex::i() * dilog(-x2 / x1) - 5. * M_PI2 * gslpp::complex::i()
1804 + 6. * gslpp::complex::i() * (-9. * lx1 * lx1 + lx2 * lx2 - 2. * lx4 * lx4 + 6. * lx1 * lx2 - 4. * lx1 * lx3 + 8. * lx1 * lx4)
1805 - 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))
1806 + 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
1807 - 288. - 8. * sh + 934. * sh2 - 692. * sh2 * sh + 18. * M_PI * gslpp::complex::i() * sh * (82. - 173. * sh + 73. * sh2))
1808 - 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
1809 + 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
1810 - M_PI2 * (54. - 53. * sh - 286. * sh2 + 612. * sh * sh2 - 446. * sh2 * sh2 + 113. * sh2 * sh2 * sh)));
1811}

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

2736{
2737 return sqrt(1. - 4. * Mlep2 / q2);
2738}

◆ C_Seidel()

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

Definition at line 1813 of file MVll.cpp.

1814{
1815 return -(16.) / (81.) * log((q2) / (mu_b2)) + (428.) / (243.) - (64.) / (27.) * gsl_sf_zeta_int(3) + (16.) / (81.) * M_PI * gslpp::complex::i();
1816 /* gsl_sf_zeta_int returns a double */
1817}

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

1917{
1918 gslpp::complex T_t = C_3 + 4. / 3. * (C_4 + 12. * C_5 + 16. * C_6);
1919 gslpp::complex T_u = 0.; /* 0 for K*0, phi*/
1920 if (meson == QCD::B_P) T_u = -3. * C_2;
1921 else if (vectorM == QCD::PHI) T_t = T_t + 6. * (C_3 + 10. * C_5);
1922 if (!conjugate) return T_t + lambda_u / lambda_t * T_u;
1923 else return T_t + (lambda_u / lambda_t).conjugate() * T_u;
1924}
@ 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 2582 of file MVll.cpp.

2583{
2584 if (hel == 0)
2585 return beta_0[3].real()*(-26.55265491727846*a_0A12)/a_0A12/a_0A12 +
2586 beta_0[2].real()*(-60.539167428104925*a_0A12)/a_0A12/a_0A12 +
2587 beta_0[1].real()*(-138.02728217972742*a_0A12)/a_0A12/a_0A12 +
2588 beta_0[0].real()*(-314.6975988486678*a_0A12)/a_0A12/a_0A12;
2589 else if (hel == 1)
2590 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())/
2591 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2592 (-119.89709952961475*a_0A1 - 24.007514603707598*a_0V + 29.020190982985117*a_1A1 - 20.59973411156516*a_1V)*(beta_1[1].real() - beta_2[1].real())/
2593 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2594 (-117.34075946812884*a_0A1 + 35.43498229234759*a_0V + 12.728340172828181*a_1A1 - 9.035103297409211*a_1V)*(beta_1[2].real() - beta_2[2].real())/
2595 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V) +
2596 (-79.86709064819027*a_0A1 + 35.702158475408076*a_0V + 5.582687021261181*a_1A1 - 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2597 (1.*a_0A1 - 0.7098414384537659*a_0V)/(1.*a_0A1 - 0.7098414384537659*a_0V);
2598 else
2599 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())/
2600 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2601 (-119.89709952961475*a_0A1 + 24.007514603707598*a_0V + 29.020190982985117*a_1A1 + 20.59973411156516*a_1V)*(beta_1[1].real() + beta_2[1].real())/
2602 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2603 (-117.34075946812884*a_0A1 - 35.43498229234759*a_0V + 12.728340172828181*a_1A1 + 9.035103297409211*a_1V)*(beta_1[2].real() + beta_2[2].real())/
2604 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V) +
2605 (-79.86709064819027*a_0A1 - 35.702158475408076*a_0V + 5.582687021261181*a_1A1 + 3.962822585609206*a_1V)*(beta_1[3].real() - beta_2[3].real())/
2606 (1.*a_0A1 + 0.7098414384537659*a_0V)/(1.*a_0A1 + 0.7098414384537659*a_0V);
2607}

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

1820{
1821 if (zExpansion)
1822 return 0.;
1823 else {
1824 #if COMPUTECP && SPLINE
1825 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1826 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC7_QCDF_conj, q2, acc_Re_deltaC7_QCDF_conj);
1827 #elif SPLINE
1828 if (spline) return gsl_spline_eval(spline_Re_deltaC7_QCDF, q2, acc_Re_deltaC7_QCDF);
1829 #endif
1830
1831 double muh = mu_b / mb_pole;
1832 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1833 double sh = q2 / mb_pole / mb_pole;
1834 double sh2 = sh*sh;
1835
1836 #if FULLNLOQCDF_MVLL
1837 gslpp::complex A_Sdl = A_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1838 gslpp::complex Fu_17 = -A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1839 gslpp::complex Fu_27 = 6. * A_Sdl; /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1840 #endif
1841 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*/
1842 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*/
1843 gslpp::complex F_87 = F87_0 + F87_1 * sh + F87_2 * sh2 + F87_3 * sh * sh2 - 8. / 9. * log(sh) * (sh + sh2 + sh * sh2);
1844
1845 if (!conjugate) {
1846 gslpp::complex delta = C_1 * F_17 + C_2 * F_27;
1847 gslpp::complex delta_t = C_8 * F_87 + delta;
1848 #if FULLNLOQCDF_MVLL
1849 gslpp::complex delta_u = delta + C_1 * Fu_17 + C_2 * Fu_27;
1850 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1851 #else
1852 return -alpha_s_mub / (4. * M_PI) * delta_t;
1853 #endif
1854 } else {
1855 gslpp::complex delta = C_1.conjugate() * F_17 + C_2.conjugate() * F_27;
1856 gslpp::complex delta_t = C_8.conjugate() * F_87 + delta;
1857 #if FULLNLOQCDF_MVLL
1858 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_17 + C_2.conjugate() * Fu_27;
1859 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1860 #else
1861 return -alpha_s_mub / (4. * M_PI) * delta_t;
1862 #endif
1863 }
1864 }
1865}
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:1767
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 1867 of file MVll.cpp.

1868{
1869 if (zExpansion)
1870 return 0.;
1871 else {
1872 #if COMPUTECP && SPLINE
1873 if (spline && !conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1874 else if (spline && conjugate) return gsl_spline_eval(spline_Re_deltaC9_QCDF_conj, q2, acc_Re_deltaC9_QCDF_conj);
1875 #elif SPLINE
1876 if (spline) return gsl_spline_eval(spline_Re_deltaC9_QCDF, q2, acc_Re_deltaC9_QCDF);
1877 #endif
1878
1879 double muh = mu_b / mb_pole;
1880 double z = mc_pole * mc_pole / mb_pole / mb_pole;
1881 double sh = q2 / mb_pole / mb_pole;
1882 double sh2 = sh*sh;
1883
1884 #if FULLNLOQCDF_MVLL
1885 gslpp::complex B_Sdl = B_Seidel(q2, mb_pole*mb_pole); /* hep-ph/0403185v2.*/
1886 gslpp::complex C_Sdl = C_Seidel(q2); /* hep-ph/0403185v2.*/
1887 gslpp::complex Fu_19 = -(B_Sdl + 4. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1888 gslpp::complex Fu_29 = -(-6. * B_Sdl + 3. * C_Sdl); /* sign different from hep-ph/0403185v2 but consistent with hep-ph/0412400 */
1889 #endif
1890 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*/
1891 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*/
1892 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));
1893
1894 if (!conjugate) {
1895 gslpp::complex delta = C_1 * F_19 + C_2 * F_29;
1896 gslpp::complex delta_t = C_8 * F_89 + delta;
1897 #if FULLNLOQCDF_MVLL
1898 gslpp::complex delta_u = delta + C_1 * Fu_19 + C_2 * Fu_29;
1899 return -alpha_s_mub / (4. * M_PI) * (delta_t - lambda_u / lambda_t * delta_u);
1900 #else
1901 return -alpha_s_mub / (4. * M_PI) * delta_t;
1902 #endif
1903 } else {
1904 gslpp::complex delta = C_1.conjugate() * F_19 + C_2.conjugate() * F_29;
1905 gslpp::complex delta_t = C_8.conjugate() * F_89 + delta;
1906 #if FULLNLOQCDF_MVLL
1907 gslpp::complex delta_u = delta + C_1.conjugate() * Fu_19 + C_2.conjugate() * Fu_29;
1908 return -alpha_s_mub / (4. * M_PI) * (delta_t - (lambda_u / lambda_t).conjugate() * delta_u);
1909 #else
1910 return -alpha_s_mub / (4. * M_PI) * delta_t;
1911 #endif
1912 }
1913 }
1914}
gslpp::complex B_Seidel(double q2, double mb2)
Definition MVll.cpp:1781
gslpp::complex C_Seidel(double q2)
Definition MVll.cpp:1813

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

1526{
1527 return 1. / (1. - q2 / MR_2) * (a_0 + a_1 * (z(q2) - z_0) + a_2 * (z(q2) - z_0) * (z(q2) - z_0));
1528}

◆ fit_QCDF_func()

void MVll::fit_QCDF_func ( )
private

Definition at line 2181 of file MVll.cpp.

2182{
2183 int dim = 0;
2184 for (double i = 0.001; i < 8.6; i += 0.5) {
2185 myq2.push_back(i);
2186 Re_T_perp.push_back(T_perp_real(i, false));
2187 Im_T_perp.push_back(T_perp_imag(i, false));
2188 Re_T_para.push_back(T_para_real(i, false));
2189 Im_T_para.push_back(T_para_imag(i, false));
2190
2191#if COMPUTECP
2192 Re_T_perp_conj.push_back(T_perp_real(i, true));
2193 Im_T_perp_conj.push_back(T_perp_imag(i, true));
2194 Re_T_para_conj.push_back(T_para_real(i, true));
2195 Im_T_para_conj.push_back(T_para_imag(i, true));
2196#endif
2197 dim++;
2198 }
2199
2200 gr1 = TGraph(dim, myq2.data(), Re_T_perp.data());
2201 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2202 Re_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2203 Re_T_perp.clear();
2204
2205 gr1 = TGraph(dim, myq2.data(), Im_T_perp.data());
2206 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2207 Im_T_perp_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2208 Im_T_perp.clear();
2209
2210 gr1 = TGraph(dim, myq2.data(), Re_T_para.data());
2211 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2212 Re_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2213 Re_T_para.clear();
2214
2215 gr1 = TGraph(dim, myq2.data(), Im_T_para.data());
2216 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2217 Im_T_para_res = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2218 Im_T_para.clear();
2219
2220#if COMPUTECP
2221 gr1 = TGraph(dim, myq2.data(), Re_T_perp_conj.data());
2222 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2223 Re_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2224 Re_T_perp_conj.clear();
2225
2226 gr1 = TGraph(dim, myq2.data(), Im_T_perp_conj.data());
2227 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2228 Im_T_perp_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2229 Im_T_perp_conj.clear();
2230
2231 gr1 = TGraph(dim, myq2.data(), Re_T_para_conj.data());
2232 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2233 Re_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2234 Re_T_para_conj.clear();
2235
2236 gr1 = TGraph(dim, myq2.data(), Im_T_para_conj.data());
2237 QCDFfit = TF1("QCDFfit", this, &MVll::QCDF_fit_func, 0.001, 8.51, 7);
2238 Im_T_para_res_conj = gr1.Fit(&QCDFfit, "SQN0+rob=0.99");
2239 Im_T_para_conj.clear();
2240#endif
2241
2242 myq2.clear();
2243}
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:2120
double QCDF_fit_func(double *x, double *p)
Definition MVll.cpp:2176
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:2094
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:2132
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:2107

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

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

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

3218{
3219 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);
3220}
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#755 value of the function

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

Definition at line 3035 of file MVll.cpp.

3036{
3037 updateParameters();
3038
3039 switch (i) {
3040 case 0:
3041 return getSigma1c(q_2);
3042 break;
3043 case 1:
3044 return getSigma1s(q_2);
3045 break;
3046 case 2:
3047 return getSigma2c(q_2);
3048 break;
3049 case 3:
3050 return getSigma2s(q_2);
3051 break;
3052 case 4:
3053 return getSigma3(q_2);
3054 break;
3055 case 5:
3056 return getSigma4(q_2);
3057 break;
3058 case 6:
3059 return getSigma5(q_2);
3060 break;
3061 case 7:
3062 return getSigma6s(q_2);
3063 break;
3064 case 8:
3065 return getSigma6c(q_2);
3066 break;
3067 case 9:
3068 return getSigma7(q_2);
3069 break;
3070 case 10:
3071 return getSigma8(q_2);
3072 break;
3073 case 11:
3074 return getSigma9(q_2);
3075 break;
3076 default:
3077 std::stringstream out;
3078 out << i;
3079 throw std::runtime_error("MVll::getSigma: index " + out.str() + " not implemented");
3080 }
3081}

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

2662{
2663 if (lep == QCD::NEUTRINO_1) {
2664 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_e - etaV * pow(-1, angmomV) * C_R_nunu_e) * V_0t(q2);
2665 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_e.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_e.conjugate()) * V_0t(q2);
2666 } else if (lep == QCD::NEUTRINO_2) {
2667 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_mu - etaV * pow(-1, angmomV) * C_R_nunu_mu) * V_0t(q2);
2668 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_mu.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_mu.conjugate()) * V_0t(q2);
2669 } else if (lep == QCD::NEUTRINO_3) {
2670 if (!bar) return -gslpp::complex::i() * NN * (C_L_nunu_tau - etaV * pow(-1, angmomV) * C_R_nunu_tau) * V_0t(q2);
2671 return -gslpp::complex::i() * NN_conjugate * (C_L_nunu_tau.conjugate() - etaV * pow(-1, angmomV) * C_R_nunu_tau.conjugate()) * V_0t(q2);
2672 }
2673}
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 2627 of file MVll.cpp.

2628{
2629 if (!bar) return gslpp::complex::i() * NN * (-C_10 + etaV * pow(-1, angmomV) * C_10p) * V_0t(q2);
2630 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() + etaV * pow(-1, angmomV) * C_10p.conjugate()) * V_0t(q2);
2631}

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

2640{
2641 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_m(q2) + etaV * pow(-1, angmomV) * C_10p * V_p(q2));
2642 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_m(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_p(q2));
2643}

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

2634{
2635 if (!bar) return gslpp::complex::i() * NN * (-C_10 * V_p(q2) + etaV * pow(-1, angmomV) * C_10p * V_m(q2));
2636 return gslpp::complex::i() * NN_conjugate * (-C_10.conjugate() * V_p(q2) + etaV * pow(-1, angmomV) * C_10p.conjugate() * V_m(q2));
2637}

◆ h_func()

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

Definition at line 2003 of file MVll.cpp.

2004{
2005 if (m2 == 0.) return 8. / 27. + 4. * gslpp::complex::i() * M_PI / 9. + 8. * log(mu_b) / 9. - 4. * log(s) / 9.;
2006 if (s == 0.) return -4. / 9. * (1. + log(m2 / mu_b / mu_b));
2007
2008 double z = 4 * m2 / s;
2009 gslpp::complex term;
2010 if (z > 1) term = atan(1. / sqrt(z - 1.));
2011 else term = log((1. + sqrt(1. - z)) / sqrt(z)) - ihalfMPI;
2012
2013 return -4. / 9. * log(m2 / mu_b / mu_b) + 8. / 27. + 4. / 9. * z - 4. / 9. * (2. + z) * sqrt(std::abs(z - 1.)) * term;
2014
2015}

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

2553{
2554 if (zExpansion) {
2555 if (hel == 0)
2556 return DeltaC9_zExpansion(q2, 0) * MM / sqrt(q2);
2557 else if (hel == 1)
2558 return (DeltaC9_zExpansion(q2, 1) - DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2559 else
2560 return (DeltaC9_zExpansion(q2, 1) + DeltaC9_zExpansion(q2, 2)) / sqrt(2.);
2561 } else if (dispersion) {
2562 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)));
2563 else if (hel == 1) {
2564 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) * (
2565 (MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2566 - sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2567 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)));
2568 } else {
2569 if (q2 == 0.) return SU3_breaking * (-1. / (MM2 * 16. * M_PI * M_PI) *
2570 ((MMpMV * A_1(0.)) / (2. * MM) * ((-h_0[1] + h_2[1]) / (1. + h_1[1] / mJ2)) * exp_Phase[1]
2571 + sqrt(lambda(0.)) / (2. * MM * MMpMV) * V(0.) * ((-h_0[0] + h_2[0]) / (1. + h_1[0] / mJ2)) * exp_Phase[0]));
2572 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)));
2573 }
2574 } else {
2575 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]));
2576 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);
2577 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;
2578 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);
2579 }
2580}
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 2689 of file MVll.cpp.

2690{
2691 if (lep == QCD::NEUTRINO_1) {
2692 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));
2693 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));
2694 } else if (lep == QCD::NEUTRINO_2) {
2695 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));
2696 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));
2697 } else if (lep == QCD::NEUTRINO_3) {
2698 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));
2699 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));
2700 }
2701}

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

2654{
2655 if (lep == QCD::NEUTRINO_1) return 0.;
2656
2657 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);
2658 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);
2659}

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

2676{
2677 if (lep == QCD::NEUTRINO_1) {
2678 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));
2679 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));
2680 } else if (lep == QCD::NEUTRINO_2) {
2681 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));
2682 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));
2683 } else if (lep == QCD::NEUTRINO_3) {
2684 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));
2685 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));
2686 }
2687}

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

2646{
2647 if (lep == QCD::NEUTRINO_1) return 0.;
2648
2649 if (!bar) return gslpp::complex::i() * NN * MboMW * (C_S - etaV * pow(-1, angmomV) * C_Sp) * S_L(q2);
2650 return gslpp::complex::i() * NN_conjugate * MboMW * (C_S.conjugate() - etaV * pow(-1, angmomV) * C_Sp.conjugate()) * S_L(q2);
2651}

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

2610{
2611 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)));
2612 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)));
2613}
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:1819
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:1867
gslpp::complex T_0(double q2, bool conjugate)
Definition MVll.cpp:2336

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

2622{
2623 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)));
2624 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)));
2625}
gslpp::complex T_minus(double q2, bool conjugate)
Definition MVll.cpp:2314

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

2616{
2617 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)));
2618 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)));
2619}

◆ I1()

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

Definition at line 1972 of file MVll.cpp.

1973{
1974 if (m2 == 0.) return 1.;
1975
1976 ubar = 1. - u;
1977 xp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1978 xm = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / (ubar * MM2 + u * q2));
1979 yp = 0.5 + sqrt(0.25 - ((gslpp::complex) m2) / q2);
1980 ym = 0.5 - sqrt(0.25 - ((gslpp::complex) m2) / q2);
1981 L1xp = log(1. - 1. / xp) * log(1. - xp) - M_PI2osix + dilog(xp / (xp - 1.));
1982 L1xm = log(1. - 1. / xm) * log(1. - xm) - M_PI2osix + dilog(xm / (xm - 1.));
1983 L1yp = log(1. - 1. / yp) * log(1. - yp) - M_PI2osix + dilog(yp / (yp - 1.));
1984 L1ym = log(1. - 1. / ym) * log(1. - ym) - M_PI2osix + dilog(ym / (ym - 1.));
1985
1986 return 1. + 2. * m2 / ubar / (MM2 - q2)*(L1xp + L1xm - L1yp - L1ym);
1987}

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

3084{
3085 updateParameters();
3086
3087 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3088
3089 old_handler = gsl_set_error_handler_off();
3090
3091 switch (i) {
3092 case 0:
3093 if (delta0Cached[qbin] == 0) {
3094 FD = convertToGslFunction(bind(&MVll::getDelta1c, &(*this), _1));
3095 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();
3096 cacheDelta0[qbin] = avaDelta;
3097 delta0Cached[qbin] = 1;
3098 }
3099 return cacheDelta0[qbin];
3100 break;
3101 case 1:
3102 if (delta1Cached[qbin] == 0) {
3103 FD = convertToGslFunction(bind(&MVll::getDelta1s, &(*this), _1));
3104 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();
3105 cacheDelta1[qbin] = avaDelta;
3106 delta1Cached[qbin] = 1;
3107 }
3108 return cacheDelta1[qbin];
3109 break;
3110 case 2:
3111 if (delta2Cached[qbin] == 0) {
3112 FD = convertToGslFunction(bind(&MVll::getDelta2c, &(*this), _1));
3113 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();
3114 cacheDelta2[qbin] = avaDelta;
3115 delta2Cached[qbin] = 1;
3116 }
3117 return cacheDelta2[qbin];
3118 break;
3119 case 3:
3120 if (delta3Cached[qbin] == 0) {
3121 FD = convertToGslFunction(bind(&MVll::getDelta2s, &(*this), _1));
3122 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();
3123 cacheDelta3[qbin] = avaDelta;
3124 delta3Cached[qbin] = 1;
3125 }
3126 return cacheDelta3[qbin];
3127 break;
3128 case 6:
3129 if (delta6Cached[qbin] == 0) {
3130 FD = convertToGslFunction(bind(&MVll::getDelta5, &(*this), _1));
3131 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();
3132 cacheDelta6[qbin] = avaDelta;
3133 delta6Cached[qbin] = 1;
3134 }
3135 return cacheDelta6[qbin];
3136 break;
3137 case 7:
3138 if (delta7Cached[qbin] == 0) {
3139 FD = convertToGslFunction(bind(&MVll::getDelta6s, &(*this), _1));
3140 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();
3141 cacheDelta7[qbin] = avaDelta;
3142 delta7Cached[qbin] = 1;
3143 }
3144 return cacheDelta7[qbin];
3145 break;
3146 case 8:
3147 if (delta8Cached[qbin] == 0) {
3148 FD = convertToGslFunction(bind(&MVll::getDelta6c, &(*this), _1));
3149 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();
3150 cacheDelta8[qbin] = avaDelta;
3151 delta8Cached[qbin] = 1;
3152 }
3153 return cacheDelta8[qbin];
3154 break;
3155 case 10:
3156 if (delta10Cached[qbin] == 0) {
3157 FD = convertToGslFunction(bind(&MVll::getDelta8, &(*this), _1));
3158 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();
3159 cacheDelta10[qbin] = avaDelta;
3160 delta10Cached[qbin] = 1;
3161 }
3162 return cacheDelta10[qbin];
3163 break;
3164 case 11:
3165 if (delta11Cached[qbin] == 0) {
3166 FD = convertToGslFunction(bind(&MVll::getDelta9, &(*this), _1));
3167 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();
3168 cacheDelta11[qbin] = avaDelta;
3169 delta11Cached[qbin] = 1;
3170 }
3171 return cacheDelta11[qbin];
3172 break;
3173 default:
3174 std::stringstream out;
3175 out << i;
3176 throw std::runtime_error("MVll::integrateDelta: index " + out.str() + " not implemented");
3177 }
3178
3179 gsl_set_error_handler(old_handler);
3180
3181}

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

2909{
2910 updateParameters();
2911
2912 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
2913
2914 old_handler = gsl_set_error_handler_off();
2915
2916 switch (i) {
2917 case 0:
2918 if (sigma0Cached[qbin] == 0) {
2919 FS = convertToGslFunction(bind(&MVll::getSigma1c, &(*this), _1));
2920 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();
2921 cacheSigma0[qbin] = avaSigma;
2922 sigma0Cached[qbin] = 1;
2923 }
2924 return cacheSigma0[qbin];
2925 break;
2926 case 1:
2927 if (sigma1Cached[qbin] == 0) {
2928 FS = convertToGslFunction(bind(&MVll::getSigma1s, &(*this), _1));
2929 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();
2930 cacheSigma1[qbin] = avaSigma;
2931 sigma1Cached[qbin] = 1;
2932 }
2933 return cacheSigma1[qbin];
2934 break;
2935 case 2:
2936 if (sigma2Cached[qbin] == 0) {
2937 FS = convertToGslFunction(bind(&MVll::getSigma2c, &(*this), _1));
2938 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();
2939 cacheSigma2[qbin] = avaSigma;
2940 sigma2Cached[qbin] = 1;
2941 }
2942 return cacheSigma2[qbin];
2943 break;
2944 case 3:
2945 if (sigma3Cached[qbin] == 0) {
2946 FS = convertToGslFunction(bind(&MVll::getSigma2s, &(*this), _1));
2947 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();
2948 cacheSigma3[qbin] = avaSigma;
2949 sigma3Cached[qbin] = 1;
2950 }
2951 return cacheSigma3[qbin];
2952 break;
2953 case 4:
2954 if (sigma4Cached[qbin] == 0) {
2955 FS = convertToGslFunction(bind(&MVll::getSigma3, &(*this), _1));
2956 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();
2957 cacheSigma4[qbin] = avaSigma;
2958 sigma4Cached[qbin] = 1;
2959 }
2960 return cacheSigma4[qbin];
2961 break;
2962 case 5:
2963 if (sigma5Cached[qbin] == 0) {
2964 FS = convertToGslFunction(bind(&MVll::getSigma4, &(*this), _1));
2965 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();
2966 cacheSigma5[qbin] = avaSigma;
2967 sigma5Cached[qbin] = 1;
2968 }
2969 return cacheSigma5[qbin];
2970 break;
2971 case 6:
2972 if (sigma6Cached[qbin] == 0) {
2973 FS = convertToGslFunction(bind(&MVll::getSigma5, &(*this), _1));
2974 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();
2975 cacheSigma6[qbin] = avaSigma;
2976 sigma6Cached[qbin] = 1;
2977 }
2978 return cacheSigma6[qbin];
2979 break;
2980 case 7:
2981 if (sigma7Cached[qbin] == 0) {
2982 FS = convertToGslFunction(bind(&MVll::getSigma6s, &(*this), _1));
2983 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();
2984 cacheSigma7[qbin] = avaSigma;
2985 sigma7Cached[qbin] = 1;
2986 }
2987 return cacheSigma7[qbin];
2988 break;
2989 case 8:
2990 if (sigma8Cached[qbin] == 0) {
2991 FS = convertToGslFunction(bind(&MVll::getSigma6c, &(*this), _1));
2992 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();
2993 cacheSigma8[qbin] = avaSigma;
2994 sigma8Cached[qbin] = 1;
2995 }
2996 return cacheSigma8[qbin];
2997 break;
2998 case 9:
2999 if (sigma9Cached[qbin] == 0) {
3000 FS = convertToGslFunction(bind(&MVll::getSigma7, &(*this), _1));
3001 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();
3002 cacheSigma9[qbin] = avaSigma;
3003 sigma9Cached[qbin] = 1;
3004 }
3005 return cacheSigma9[qbin];
3006 break;
3007 case 10:
3008 if (sigma10Cached[qbin] == 0) {
3009 FS = convertToGslFunction(bind(&MVll::getSigma8, &(*this), _1));
3010 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();
3011 cacheSigma10[qbin] = avaSigma;
3012 sigma10Cached[qbin] = 1;
3013 }
3014 return cacheSigma10[qbin];
3015 break;
3016 case 11:
3017 if (sigma11Cached[qbin] == 0) {
3018 FS = convertToGslFunction(bind(&MVll::getSigma9, &(*this), _1));
3019 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();
3020 cacheSigma11[qbin] = avaSigma;
3021 sigma11Cached[qbin] = 1;
3022 }
3023 return cacheSigma11[qbin];
3024 break;
3025 default:
3026 std::stringstream out;
3027 out << i;
3028 throw std::runtime_error("MVll::integrateSigma: index " + out.str() + " not implemented");
3029 }
3030
3031 gsl_set_error_handler(old_handler);
3032
3033}

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

3183{
3184 if (lep != QCD::NEUTRINO_1 or meson != QCD::B_P or !NeutrinoTree_flag) return 0.;
3185
3186 updateParameters();
3187
3188 //phase space limit where tree-level contribution is relevant (0908.1174)
3189 double q_cut = (mtau2 - MV2) * (MM2 - mtau2) / mtau2;
3190 if (q_max >= q_cut) {
3191 if (q_min == 0.) return getintegratedSigmaTree();
3192 q_max = q_cut;
3193 }
3194
3195 double prefactor = mySM.getMesons(meson).getLifetime() / HCUT * GF4 * VusVub_abs2 * fV2 * fM2 / (64. * M_PI2 * MM3 * Gammatau) * mtau2 * mtau;
3196
3197 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
3198
3199 old_handler = gsl_set_error_handler_off();
3200
3201 if (sigmaTreeCached[qbin] == 0) {
3202 FD = convertToGslFunction(bind(&MVll::SigmaTree, &(*this), _1));
3203 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();
3204 cacheSigmaTree[qbin] = avaSigmaTree;
3205 sigmaTreeCached[qbin] = 1;
3206 }
3207 return prefactor * cacheSigmaTree[qbin];
3208
3209 gsl_set_error_handler(old_handler);
3210}
double getintegratedSigmaTree()
The integral of from 0 to .
Definition MVll.cpp:3217
double SigmaTree(double q2)
Definition MVll.cpp:3212

◆ lambda_B_minus()

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

Definition at line 2088 of file MVll.cpp.

2089{
2090 double w0 = mySM.getMesons(meson).getLambdaM();
2091 return 1. / (exp(-q2 / MM / w0) / w0 * (-gsl_sf_expint_Ei(q2 / MM / w0) + gslpp::complex::i() * M_PI));
2092}
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 2083 of file MVll.cpp.

2084{
2085 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.)));
2086}
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 2176 of file MVll.cpp.

2177{
2178 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];
2179}

◆ SigmaTree()

double MVll::SigmaTree ( double  q2)
private

Definition at line 3212 of file MVll.cpp.

3213{
3214 return (MM2 - mtau2) * (mtau2 - MV2) - q2 * (mtau2 - 2. * MV2);
3215}

◆ spline_QCDF_func()

void MVll::spline_QCDF_func ( )
private

Definition at line 2245 of file MVll.cpp.

2246{
2247 int dim = GSL_INTERP_DIM;
2248 int dim_DC = GSL_INTERP_DIM_DC;
2249 double min = 0.001;
2250 double interval = (9.9 - min) / ((double) dim);
2251 double interval_DC = (9.9 - min) / ((double) dim_DC);
2252 double q2_spline[dim];
2253 double fq2_Re_T_perp[dim], fq2_Im_T_perp[dim], fq2_Re_T_para[dim], fq2_Im_T_para[dim];
2254 double q2_spline_DC[dim_DC];
2255 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];
2256#if COMPUTECP
2257 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];
2258 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];
2259#endif
2260
2261 for (int i = 0; i < dim; i++) {
2262 q2_spline[i] = min + (double) i*interval;
2263 fq2_Re_T_perp[i] = T_perp_real(q2_spline[i], false);
2264 fq2_Im_T_perp[i] = T_perp_imag(q2_spline[i], false);
2265 fq2_Re_T_para[i] = T_para_real(q2_spline[i], false);
2266 fq2_Im_T_para[i] = T_para_imag(q2_spline[i], false);
2267
2268#if COMPUTECP
2269 fq2_Re_T_perp_conj[i] = T_perp_real(q2_spline[i], true);
2270 fq2_Im_T_perp_conj[i] = T_perp_imag(q2_spline[i], true);
2271 fq2_Re_T_para_conj[i] = T_para_real(q2_spline[i], true);
2272 fq2_Im_T_para_conj[i] = T_para_imag(q2_spline[i], true);
2273#endif
2274 }
2275 for (int i = 0; i < dim_DC; i++) {
2276 q2_spline_DC[i] = min + (double) i*interval_DC;
2277 fq2_Re_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).real();
2278 fq2_Im_deltaC7_QCDF[i] = deltaC7_QCDF(q2_spline_DC[i], false).imag();
2279 fq2_Re_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).real();
2280 fq2_Im_deltaC9_QCDF[i] = deltaC9_QCDF(q2_spline_DC[i], false).imag();
2281
2282#if COMPUTECP
2283 fq2_Re_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).real();
2284 fq2_Im_deltaC7_QCDF_conj[i] = deltaC7_QCDF(q2_spline_DC[i], true).imag();
2285 fq2_Re_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).real();
2286 fq2_Im_deltaC9_QCDF_conj[i] = deltaC9_QCDF(q2_spline_DC[i], true).imag();
2287#endif
2288 }
2289
2290 gsl_spline_init(spline_Re_T_perp, q2_spline, fq2_Re_T_perp, dim);
2291 gsl_spline_init(spline_Im_T_perp, q2_spline, fq2_Im_T_perp, dim);
2292 gsl_spline_init(spline_Re_T_para, q2_spline, fq2_Re_T_para, dim);
2293 gsl_spline_init(spline_Im_T_para, q2_spline, fq2_Im_T_para, dim);
2294
2295 gsl_spline_init(spline_Re_deltaC7_QCDF, q2_spline_DC, fq2_Re_deltaC7_QCDF, dim_DC);
2296 gsl_spline_init(spline_Im_deltaC7_QCDF, q2_spline_DC, fq2_Im_deltaC7_QCDF, dim_DC);
2297 gsl_spline_init(spline_Re_deltaC9_QCDF, q2_spline_DC, fq2_Re_deltaC9_QCDF, dim_DC);
2298 gsl_spline_init(spline_Im_deltaC9_QCDF, q2_spline_DC, fq2_Im_deltaC9_QCDF, dim_DC);
2299
2300#if COMPUTECP
2301 gsl_spline_init(spline_Re_T_perp_conj, q2_spline, fq2_Re_T_perp_conj, dim);
2302 gsl_spline_init(spline_Im_T_perp_conj, q2_spline, fq2_Im_T_perp_conj, dim);
2303 gsl_spline_init(spline_Re_T_para_conj, q2_spline, fq2_Re_T_para_conj, dim);
2304 gsl_spline_init(spline_Im_T_para_conj, q2_spline, fq2_Im_T_para_conj, dim);
2305
2306 gsl_spline_init(spline_Re_deltaC7_QCDF_conj, q2_spline_DC, fq2_Re_deltaC7_QCDF_conj, dim_DC);
2307 gsl_spline_init(spline_Im_deltaC7_QCDF_conj, q2_spline_DC, fq2_Im_deltaC7_QCDF_conj, dim_DC);
2308 gsl_spline_init(spline_Re_deltaC9_QCDF_conj, q2_spline_DC, fq2_Re_deltaC9_QCDF_conj, dim_DC);
2309 gsl_spline_init(spline_Im_deltaC9_QCDF_conj, q2_spline_DC, fq2_Im_deltaC9_QCDF_conj, dim_DC);
2310#endif
2311
2312}

◆ T_0()

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

Definition at line 2336 of file MVll.cpp.

2337{
2338 if (zExpansion)
2339 return 0.;
2340 else {
2341 #if COMPUTECP && SPLINE
2342 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));
2343 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));
2344 #elif SPLINE
2345 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));
2346 #endif
2347
2348 #if COMPUTECP && !SPLINE
2349 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())));
2350 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())));
2351 #elif !SPLINE
2352 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())));
2353 #endif
2354 }
2355}

◆ T_minus()

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

Definition at line 2314 of file MVll.cpp.

2315{
2316 if (zExpansion)
2317 return 0.;
2318 else {
2319 #if COMPUTECP && SPLINE
2320 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));
2321 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));
2322 #elif SPLINE
2323 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));
2324 #endif
2325
2326 #if COMPUTECP && !SPLINE
2327 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())));
2328 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())));
2329 #elif !SPLINE
2330 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())));
2331 #endif
2332 }
2333
2334}

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

1966{
1967 double EV = (MM2pMV2 - q2) / (2. * MM);
1968 double ubar = 1. - u;
1969 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + (ubar * MM2 + u * q2) / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1970}
gslpp::complex B0diff(double q2, double u, double m2)
Definition MVll.cpp:1989
gslpp::complex I1(double q2, double u, double m2)
Definition MVll.cpp:1972

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

2169{
2170 FS = convertToGslFunction(bind(&MVll::T_para_imag, &(*this), q2, _1, conjugate));
2171 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2172
2173 return avaSigma;
2174}

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

2133{
2134 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2135
2136 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (/* + */T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2137 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2138#if FULLNLOQCDF_MVLL
2139 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate) * phi_V(u);
2140#endif
2141 return sqrt(q2) * T_amp.imag();
2142}
gslpp::complex T_para_minus_WA(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition MVll.cpp:1926
double phi_V(double u)
QCDF Correction from various BFS paper (hep-ph/0106067).Vector meson distribution amplitude.
Definition MVll.cpp:2083
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:2039
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:1949
gslpp::complex lambda_B_minus(double q2)
Definition MVll.cpp:2088
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:2061

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

1950{
1951 double ubar = 1. - u;
1952
1953 return (alpha_s_mub / (3. * M_PI))*spectator_charge * 8. * C_8 / (ubar + u * q2 / MM2);
1954}
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 2061 of file MVll.cpp.

2062{
2063 double ubar = 1. - u;
2064 gslpp::complex h_mc = h_func(ubar * MM2 + u*q2, mc_pole * mc_pole);
2065#if FULLNLOQCDF_MVLL
2066 gslpp::complex h_mb = h_func(ubar*MM2 + u*q2, mb_pole*mb_pole);
2067 gslpp::complex h_0 = h_func(ubar*MM2 + u*q2, 0);
2068
2069 gslpp::complex T_t = (h_mc * (-C_1 / 6. + C_2 + C_4 + 10. * C_6)
2070 + h_mb * (C_3 + 5.*C_4/6. + 16.*C_5 + 22.*C_6/3.)
2071 + h_0 * (C_3 + 17.*C_4/6. + 16.*C_5 + 82.*C_6/3.)
2072 - 8./27. * (-15.*C_4/2. + 12.*C_5 - 32.*C_6));
2073
2074 gslpp::complex T_u = (h_mc - h_0)*(C_2 - C_1/6.);
2075
2076 if (!conjugate) return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
2077 else return alpha_s_mub / (3. * M_PI) * spectator_charge * 6. * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
2078#else
2079 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));
2080#endif
2081}
gslpp::complex h_func(double s, double m2)
Definition MVll.cpp:2003

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

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

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

2040{
2041 gslpp::complex t_para_mc = t_para(q2, u, mc_pole * mc_pole);
2042 double eu = 0.666666667;
2043#if FULLNLOQCDF_MVLL
2044 gslpp::complex t_para_mb = t_para(q2, u, mb_pole*mb_pole);
2045 gslpp::complex t_para_0 = t_para(q2, u, 0.);
2046 double ed = -0.333333333;
2047
2048 gslpp::complex T_t = (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6)
2049 + ed * t_para_mb * (C_3 - C_4/6. + 16.*C_5 + 10.*C_6/3.)
2050 + ed * t_para_0 * (C_3 - C_4/6. + 16.*C_5 - 8.*C_6/3.));
2051
2052 gslpp::complex T_u = eu * (t_para_mc - t_para_0) * (C_2 - C_1/6.);
2053
2054 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + lambda_u / lambda_t * T_u);
2055 else return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (T_t + (lambda_u / lambda_t).conjugate() * T_u);
2056#else
2057 return alpha_s_mub / (3. * M_PI) * MM / mb_pole * (eu * t_para_mc * (-C_1 / 6. + C_2 + 6. * C_6));
2058#endif
2059}
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:1965

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

2161{
2162 FS = convertToGslFunction(bind(&MVll::T_para_real, &(*this), q2, _1, conjugate));
2163 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2164
2165 return avaSigma;
2166}

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

2121{
2122 double N = N_QCDF * (MV / ((MM2pMV2 - q2) / (2. * MM)));
2123
2124 gslpp::complex T_amp = (N / lambda_B_minus(q2) * (T_para_minus_O8(q2, u) + T_para_minus_QSS(q2, u, conjugate))
2125 + N / mySM.getMesons(meson).getLambdaM() * T_para_plus_QSS(q2, u, conjugate)) * phi_V(u);
2126#if FULLNLOQCDF_MVLL
2127 T_amp += N / lambda_B_minus(q2) * T_para_minus_WA(conjugate)* phi_V(u);
2128#endif
2129 return sqrt(q2) * T_amp.real();
2130}

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

1957{
1958 double EV = (MM2 - q2 + MV2) / (2. * MM);
1959 double ubar = 1. - u;
1960
1961 return (2. * MM) / (ubar * EV) * I1(q2, u, m2) + q2 / (ubar * ubar * EV * EV) * B0diff(q2, u, m2);
1962
1963}

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

2153{
2154 FS = convertToGslFunction(bind(&MVll::T_perp_imag, &(*this), q2, _1, conjugate));
2155 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2156
2157 return avaSigma;
2158}

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

2108{
2109 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));
2110#if FULLNLOQCDF_MVLL
2111 double ubar = 1. - u;
2112
2113 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2114 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2115 /*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]*/
2116#endif
2117 return T_amp.imag();
2118}
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:2017
gslpp::complex T_perp_WA_1()
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition MVll.cpp:1931
gslpp::complex T_perp_WA_2(bool conjugate)
QCDF Correction from various BFS paper (hep-ph/0412400). Weak Annihilation.
Definition MVll.cpp:1936
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:1941

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

1942{
1943 double ubar = 1. - u;
1944 double ed = -1. / 3.;
1945
1946 return -(alpha_s_mub / (3. * M_PI))*4. * ed * C_8 / (u + ubar * q2 / MM2);
1947}

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

2018{
2019 gslpp::complex t_perp_mc = t_perp(q2, u, mc_pole * mc_pole);
2020 double eu = 0.666666667;
2021#if FULLNLOQCDF_MVLL
2022 gslpp::complex t_perp_mb = t_perp(q2, u, mb_pole*mb_pole);
2023 gslpp::complex t_perp_0 = t_perp(q2, u, 0.);
2024 double ed = -0.333333333;
2025
2026 gslpp::complex T_t = (eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6)
2027 + 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.))
2028 + ed * t_perp_0 * (C_3 - C_4/6. + 16. * C_5 - 8. * C_6/3.));
2029
2030 gslpp::complex T_u = eu * (t_perp_mc - t_perp_0)*(C_2 - C_1 / 6.);
2031
2032 if (!conjugate) return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + lambda_u / lambda_t * T_u);
2033 else return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(T_t + (lambda_u / lambda_t).conjugate() * T_u);
2034#else
2035 return alpha_s_mub / (3. * M_PI) * MM / (2. * mb_pole)*(eu * t_perp_mc * (-C_1 / 6. + C_2 + 6. * C_6));
2036#endif
2037}
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:1956

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

2145{
2146 FS = convertToGslFunction(bind(&MVll::T_perp_real, &(*this), q2, _1, conjugate));
2147 gsl_integration_cquad(&FS, 0., 1., 1.e-2, 1.e-1, w_sigma, &avaSigma, &errSigma, NULL);
2148
2149 return avaSigma;
2150}

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

2095{
2096 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));
2097#if FULLNLOQCDF_MVLL
2098 double ubar = 1. - u;
2099
2100 T_amp += N_QCDF/(ubar + u*q2/MM2) * phi_V(u) * T_perp_WA_1()
2101 + N_QCDF/mySM.getMesons(meson).getLambdaM() * fpara/fperp * MV/(1. - q2/MM2) * T_perp_WA_2(conjugate);
2102 /*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]*/
2103#endif
2104 return T_amp.real();
2105}

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

1932{
1933 return -spectator_charge * 4. / mb_pole * (C_3 + 4. / 3. * (C_4 + 3. * C_5 + 4. * C_6));
1934}

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

1937{
1938 return spectator_charge * 2. / mb_pole * Cq34(conjugate);
1939}

Member Data Documentation

◆ ale

double MVll::ale
private

Alpha electromagnetic

Definition at line 871 of file MVll.h.

◆ alpha_s_mub

double MVll::alpha_s_mub
private

@f\aplha_s(\mu_b)$ \( */ double fB; double fpara; double fperp; double MW; /**<W boson mass */ gslpp::complex lambda_t; /**<Vckm factor */ gslpp::complex lambda_u; /**<Vckm factor */ double b; /**<BF of the decay V -> final states */ gslpp::complex h_0[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex h_1[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex h_2[3]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex SU3_breaking; gslpp::complex beta_0[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex beta_1[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ gslpp::complex beta_2[7]; /**<Parameter that contains the contribution from the hadronic hamiltonian */ double Delta_C7_U; double Delta_C9_U; double t_p;/**< Cache variable */ double t_m;/**< Cache variable */ double t_0;/**< Cache variable */ double z_0;/**< Cache variable */ double s_p; double s_0; double Q2; double chiOPE; double twoalphaBtoKst; double rho_0; double rho_1; double rho_2; double rho_3; double rho_4; double rho_5; double onemrho_0_2; double onemrho_1_2; double onemrho_2_2; double onemrho_3_2; double onemrho_4_2; double onemrho_5_2; double DeltaC9; double DeltaC10; double MMpMV;/**< Cache variable */ double MMpMV2;/**< Cache variable */ double MMmMV;/**< Cache variable */ double MMmMV2;/**< Cache variable */ double rV;/**< Cache variable */ double Chi1minus;/**< Cache variable */ double Chi1plus;/**< Cache variable */ double Chi0plus;/**< Cache variable */ double Chi0minus;/**< Cache variable */ double ChiTT;/**< Cache variable */ double ChiBB;/**< Cache variable */ double n_I;/**< 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 MRT12_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 MRT22_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 MRf2_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 MRg2_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 MRF12_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 MRF22_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 MRT02_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 @param MRf2_2 fit parameter @return \) \phi_f \( */ double phi_f(double q2, double MRf_2, double MRf2_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 @param MRg2_2 fit parameter @return \) \phi_g \( */ double phi_g(double q2, double MRg_2, double MRg2_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 @param MRF12_2 fit parameter @return \) \phi_{F_1} \( */ double phi_F1(double q2, double MRF1_2, double MRF12_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 @param MRF22_2 fit parameter @return \) \phi_{F_2} \( */ double phi_F2(double q2, double MRF2_2, double MRF22_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 @param MRT02_2 fit parameter @return \) \phi_{T_0} \( */ double phi_T0(double q2, double MRT0_2, double MRT02_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 @param MRT12_2 fit parameter @return \) \phi_{T_1} \( */ double phi_T1(double q2, double MRT1_2, double MRT12_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 @param MRT22_2 fit parameter @return \) \phi_{T_2} \( */ double phi_T2(double q2, double MRT2_2, double MRT22_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 @param[in] MRf2_2 fit parameter @return \) f \( */ double f_DM(double q2, double a_0f, double a_1f, double a_2f, double MRf_2, double MRf2_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 @param[in] MRg2_2 fit parameter @return \) g \( */ double g_DM(double q2, double a_0g, double a_1g, double a_2g, double MRg_2, double MRg2_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 @param[in] MRF12_2 fit parameter @return \) F_1 \( */ double F1_DM(double q2, double a_0F1, double a_1F1, double a_2F1, double MRF1_2, double MRF12_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 @param[in] MRF22_2 fit parameter @return \) F_2 \( */ double F2_DM(double q2, double a_0F2, double a_1F2, double a_2F2, double MRF2_2, double MRF22_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 @param[in] MRT02_2 fit parameter @return \) T_0 \( */ double T0_DM(double q2, double a_0T0, double a_1T0, double a_2T0, double MRT0_2, double MRT02_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 @param[in] MRT12_2 fit parameter @return \) T_1 \( */ double T1_DM(double q2, double a_0T1, double a_1T1, double a_2T1, double MRT1_2, double MRT12_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 @param[in] MRT22_2 fit parameter @return \) T_2 \( */ double T2_DM(double q2, double a_0T2, double a_1T2, double a_2T2, double MRT2_2, double MRT22_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: