14 #include <gsl/gsl_math.h>
15 #include <gsl/gsl_integration.h>
17 #include <gsl/gsl_monte_plain.h>
20 #include <TFitResultPtr.h>
33 F*
function =
static_cast<F*
>( p );
34 return (*
function)( x );
40 gsl_function gslFunction;
45 gslFunction.function = &gslFunctionAdapter<F>;
47 gslFunction.params =
const_cast<void*
>( p );
153 double beta (
double q2);
341 h_2[2] * q2 +
h_0[1]/q2 +
h_1[1] +
h_2[1] * q2))).real();
354 h_2[2] * q2 +
h_0[1]/q2 +
h_1[1] +
h_2[1] * q2))).imag();
424 return (
h_0[1]/
h_0[2]).abs();
434 return (
h_0[2]/
h_0[0]).abs();
853 std::map<std::pair<double, double>,
unsigned int >
I1Cached;
919 double A_0(
double q2);
927 double A_1(
double q2);
934 double A_2(
double q2);
941 double T_1(
double q2);
949 double T_2(
double q2);
956 double V_0t(
double q2);
963 double V_p(
double q2);
970 double V_m(
double q2);
977 double T_0t(
double q2);
984 double T_p(
double q2);
991 double T_m(
double q2);
998 double S_L(
double q2);
1034 double k2 (
double q2);
1041 double beta2 (
double q2);
1048 double lambda(
double q2);
1056 double F(
double q2,
double b_i);
1063 double I_1c(
double q2);
1070 double I_1s(
double q2);
1077 double I_2c(
double q2);
1084 double I_2s(
double q2);
1091 double I_3(
double q2);
1098 double I_4(
double q2);
1105 double I_5(
double q2);
1112 double I_6c(
double q2);
1119 double I_6s(
double q2);
1126 double I_7(
double q2);
1133 double I_8(
double q2);
1140 double I_9(
double q2);
1148 double Delta(
int i,
double q2);
1277 return Delta(0, q2);
1287 return Delta(1, q2);
1297 return Delta(2, q2);
1307 return Delta(3, q2);
1317 return Delta(7, q2);
1327 return Delta(11, q2);
1340 double FF_fit(
double q2,
double a_0,
double a_1,
double a_2,
double MR2);
1463 double F89(
double q2);
1520 double reDC9fit(
double* x,
double* p);
1528 double imDC9fit(
double* x,
double* p);
double z(double q2)
The lattice parameter from arXiv:1310.3722v3.
std::map< std::pair< double, double >, double > cacheSigma10
double Integrand_ReTperpplus(double up)
The real part of the integral involving at fixed , according to .
gslpp::complex h2Ccache[3]
double A_2(double q2)
The transverse form factor .
TFitResultPtr imfres_m_mumu
double lambda(double q2)
The factor used in the angular coefficients .
TFitResultPtr imfres_p_mumu
double I_3(double q2)
The angular coefficient .
double imDC9fit(double *x, double *p)
The fit function for the imaginary part of the QCDF correction .
double integrateSigma(int i, double q_min, double q_max)
The integral of from to .
gsl_error_handler_t * old_handler
double getSigma1c(double q2)
The CP average .
std::map< std::pair< double, double >, double > cacheSigma0
std::map< double, unsigned int > deltaTparmCached
std::map< std::pair< double, double >, unsigned int > I1Cached
gslpp::vector< double > SL_cache
StandardModel::lepton lep
double getVp(double q2)
The form factor .
double getDelta1(double q2)
The CP asymmetry .
double getSigma3(double q2)
The CP average .
std::map< double, gslpp::complex > cacheDeltaTperp
std::map< double, unsigned int > deltaTparpCached
void fit_DeltaC9_m_mumu()
The fitting routine for the QCDF correction in the muon channel.
gslpp::complex C_9p_cache
gslpp::complex Cperp(double q2)
The correction from .
gslpp::complex deltaTpar(double q2)
The total correction from .
double V_p(double q2)
The helicity form factor .
double getSigma7(double q2)
The CP average .
std::map< std::pair< double, double >, unsigned int > sigma6Cached
gslpp::vector< double > H_V2cache
double FF_fit(double q2, double a_0, double a_1, double a_2, double MR2)
The fit function from , .
gslpp::complex H_A_m(double q2)
The helicity amplitude .
double getT0(double q2)
The form factor .
std::map< std::pair< double, double >, unsigned int > delta1Cached
std::vector< double > ReDeltaC9_0_mumu
gsl_integration_cquad_workspace * w_DTPPR
std::vector< double > ImDeltaC9_m_mumu
double getDelta0(double q2)
The CP asymmetry .
double integrateDelta(int i, double q_min, double q_max)
The integral of from to .
double I_5(double q2)
The angular coefficient .
std::vector< double > ImDeltaC9_0_mumu
std::map< std::pair< double, double >, double > cacheSigma7
double A_1(double q2)
The transverse form factor .
double gethm0_h00_abs()
The absolute value of the ratio .
std::map< std::pair< double, double >, unsigned int > sigma9Cached
std::map< std::pair< double, double >, double > cacheDelta0
unsigned int Mb_Ms_updated
gslpp::complex Tparminus(double u, double q2)
The function from .
TFitResultPtr refres_p_mumu
static double gslFunctionAdapter(double x, void *p)
gsl_function convertToGslFunction(const F &f)
double F(double q2, double b_i)
The factor used in the angular coefficients I_i.
gslpp::complex DeltaC9_0(double q2)
The total QCDF correction computed integrating over .
gslpp::complex fDeltaC9_m(double q2)
The total QCDF correction computed fitting over .
std::map< std::pair< double, double >, double > cacheSigma6
double getSigma2c(double q2)
The CP average .
meson
An enum type for mesons.
double getgtilde_2_im(double q2)
The immaginary part of .
std::map< std::pair< double, double >, unsigned int > delta2Cached
double getgtilde_3_re(double q2)
The real part of .
std::map< std::pair< double, double >, unsigned int > sigma2Cached
double getgtilde_2_re(double q2)
The real part of .
double geth_m_re(double q2)
The real part of .
TFitResultPtr imfres_0_mumu
std::map< std::pair< double, double >, double > cacheDelta7
std::vector< double > ImDeltaC9_p_ee
double getDelta11(double q2)
The CP asymmetry .
double getSigma9(double q2)
The CP average .
gslpp::complex F19(double q2)
The correction from .
unsigned int C_Sp_updated
gslpp::complex H_0(double q2)
The function involved into .
std::map< std::pair< double, double >, unsigned int > sigma7Cached
double V_m(double q2)
The helicity form factor .
TFitResultPtr refres_p_ee
gslpp::vector< double > A0_cache
std::vector< double > myq2
A model class for the Standard Model.
std::map< double, unsigned int > deltaTperpCached
std::map< std::pair< double, double >, gslpp::complex > cacheI1
gslpp::vector< double > H_V1cache
std::vector< double > ReDeltaC9_p_ee
gslpp::complex F29(double q2)
The correction from .
double T_p(double q2)
The helicity form factor .
StandardModel::meson meson
void fit_DeltaC9_m_ee()
The fitting routine for the QCDF correction in the electron channel.
gslpp::complex H_b(double q2)
The function involved into .
gslpp::complex C_8Lh_cache
double Integrand_ImTpar_pm(double up)
The sum of Integrand_ImTparplus() and Integrand_ImTparminus().
std::map< std::pair< double, double >, double > cacheSigma1
std::vector< double > ImDeltaC9_p_mumu
double Integrand_ImTperpplus(double up)
The imaginary part of the integral involving at fixed , according to .
double getVm(double q2)
The form factor .
gslpp::vector< double > V_cache
gslpp::vector< double > Ycache
gslpp::complex C_Pp_cache
unsigned int C_Pp_updated
double getTm(double q2)
The form factor .
std::vector< double > ReDeltaC9_p_mumu
std::vector< double > ImDeltaC9_0_ee
double geth_m_im(double q2)
The imaginary part of .
double I_7(double q2)
The angular coefficient .
gslpp::vector< double > H_V0cache
double k2(double q2)
The square of the 3-momentum of the recoiling meson in the M rest frame, .
double T_1(double q2)
The transverse form factor .
gslpp::vector< gslpp::complex > ** allcoeffprime
double beta2(double q2)
The factor used in the angular coefficients .
gslpp::complex C_Sp_cache
std::map< std::pair< double, double >, double > cacheSigma5
gslpp::complex DeltaC9_m(double q2)
The total QCDF correction computed integrating over .
std::map< std::pair< double, double >, unsigned int > sigma10Cached
double getgtilde_1_re(double q2)
The real part of .
std::map< std::pair< double, double >, unsigned int > sigma3Cached
double getS(double q2)
The form factor .
std::vector< double > ReDeltaC9_m_mumu
std::map< std::pair< double, double >, unsigned int > delta0Cached
double S_L(double q2)
The helicity form factor .
double getSigma6c(double q2)
The CP average .
double A_0(double q2)
The transverse form factor .
double I_1c(double q2)
The angular coefficient .
std::map< std::pair< double, double >, double > cacheSigma11
std::map< double, gslpp::complex > cacheDeltaTparp
gslpp::complex Cpar(double q2)
The correction from .
gslpp::vector< double > TL0_cache
std::vector< double > ImDeltaC9_m_ee
gslpp::complex H_c(double q2, double mu)
The function involved into .
gslpp::complex H_A_0(double q2)
The helicity amplitude .
gslpp::vector< double > A1_cache
void fit_DeltaC9_0_ee()
The fitting routine for the QCDF correction in the electron channel.
double getTp(double q2)
The form factor .
double getV0(double q2)
The form factor .
gslpp::complex H_V_p(double q2)
The helicity amplitude .
double Integrand_ReTparplus(double up)
The real part of the integral involving at fixed , according to .
unsigned int beta_updated
gslpp::complex H_V_m(double q2)
The helicity amplitude .
gslpp::vector< gslpp::complex > ** allcoeffh
gslpp::complex H_S(double q2)
The helicity amplitude .
double beta(double q2)
The factor used in the angular coefficients .
gslpp::complex C_2Lh_cache
double T_0t(double q2)
The helicity form factor .
gslpp::vector< double > VL0_cache
gslpp::complex F87(double q2)
The correction from .
double I_2c(double q2)
The angular coefficient .
gslpp::vector< gslpp::complex > ** allcoeff
unsigned int C_7p_updated
gslpp::vector< double > T1_cache
TFitResultPtr refres_m_mumu
gslpp::vector< double > N_cache
gslpp::complex F27(double q2)
The correction from .
double geth_p_im(double q2)
The imaginary part of .
double getDelta2(double q2)
The CP asymmetry .
double reDC9fit(double *x, double *p)
The fit function for the real part of the QCDF correction .
unsigned int C_9p_updated
double gethp0_hm0_abs()
The absolute value of the ratio .
double I_2s(double q2)
The angular coefficient .
double T_2(double q2)
The transverse form factor .
double geth_0_re(double q2)
The real part of .
std::map< std::pair< double, double >, double > cacheDelta1
double F89(double q2)
The correction from .
double I_4(double q2)
The angular coefficient .
std::map< std::pair< double, double >, double > cacheSigma4
TFitResultPtr imfres_0_ee
unsigned int deltaTparpupdated
double Integrand_ImTparminus(double up)
The imaginary part of the integral involving at fixed , according to .
double Integrand_ImTparplus(double up)
The imaginary part of the integral involving at fixed , according to .
void fit_DeltaC9_0_mumu()
The fitting routine for the QCDF correction in the muon channel.
void fit_DeltaC9_p_mumu()
The fitting routine for the QCDF correction in the muon channel.
std::map< std::pair< double, double >, double > cacheDelta3
double I_6s(double q2)
The angular coefficient .
void fit_DeltaC9_p_ee()
The fitting routine for the QCDF correction in the electron channel.
gsl_integration_cquad_workspace * w_delta
std::map< std::pair< double, double >, unsigned int > sigma0Cached
TFitResultPtr refres_0_mumu
std::map< std::pair< double, double >, double > cacheSigma3
double getgtilde_1_im(double q2)
The immaginary part of .
double geth_p_re(double q2)
The real part of .
double getSigma2s(double q2)
The CP average .
double getSigma6s(double q2)
The CP average .
gslpp::complex C_7p_cache
std::vector< double > ReDeltaC9_m_ee
gslpp::complex C_10p_cache
double V(double q2)
The transverse form factor .
std::map< std::pair< double, double >, unsigned int > sigma5Cached
gslpp::complex h1Ccache[3]
virtual ~MVll()
Destructor.
std::map< std::pair< double, double >, double > cacheSigma2
gslpp::complex Y(double q2)
The function involved into .
double Integrand_ReTparminus(double up)
The real part of the integral involving at fixed , according to .
std::map< std::pair< double, double >, double > cacheDelta11
gslpp::complex H_P(double q2)
The helicity amplitude .
void checkCache()
The caching method for MVll.
std::map< std::pair< double, double >, double > cacheDelta2
double V_0t(double q2)
The helicity form factor .
gslpp::vector< double > T_cache
gslpp::complex H_V_0(double q2)
The helicity amplitude .
double I_6c(double q2)
The angular coefficient .
gslpp::complex fDeltaC9_0(double q2)
The total QCDF correction computed fitting over .
std::vector< double > ReDeltaC9_0_ee
TFitResultPtr refres_0_ee
double getSigma5(double q2)
The CP average .
double getDelta3(double q2)
The CP asymmetry .
std::map< double, gslpp::complex > cacheDeltaTparm
double I_8(double q2)
The angular coefficient .
double getwidth()
The width of the meson M.
std::map< std::pair< double, double >, unsigned int > delta11Cached
std::map< std::pair< double, double >, unsigned int > sigma4Cached
A class for constructing and defining operations on real vectors.
StandardModel::meson vectorM
TFitResultPtr imfres_m_ee
MVll(const StandardModel &SM_i, StandardModel::meson meson_i, StandardModel::meson vector_i, StandardModel::lepton lep_i)
Constructor.
gslpp::complex deltaTperp(double q2)
The total correction from .
unsigned int lambda_updated
double getSigma8(double q2)
The CP average .
TFitResultPtr refres_m_ee
gslpp::vector< double > H_Pcache
gslpp::complex h0Ccache[3]
double T_m(double q2)
The helicity form factor .
double getMlep()
The mass of the lepton l.
double getgtilde_3_im(double q2)
The imaginary part of .
unsigned int C_10_updated
void updateParameters()
The update parameter method for MVll.
std::map< std::pair< double, double >, unsigned int > delta3Cached
double Delta(int i, double q2)
The CP asymmetry .
unsigned int deltaTperpupdated
gslpp::complex I1(double u, double q2)
The function from .
gslpp::vector< double > H_Scache
unsigned int C_2Lh_updated
A class for the correction in .
unsigned int deltaTparmupdated
gslpp::complex Tparplus(double u, double q2)
The function from .
double getDelta7(double q2)
The CP asymmetry .
gslpp::complex fDeltaC9_p(double q2)
The total QCDF correction computed fitting over .
A class for defining operations on and functions of complex numbers.
unsigned int C_8Lh_updated
double geth_0_im(double q2)
The imaginary part of .
gsl_integration_cquad_workspace * w_sigma
gslpp::vector< double > k2_cache
const StandardModel & mySM
std::map< std::pair< double, double >, double > cacheSigma9
TFitResultPtr imfres_p_ee
double getSigma(int i, double q_2)
The value of from to .
gslpp::complex H_A_p(double q2)
The helicity amplitude .
gslpp::vector< double > T2_cache
gslpp::complex Tperpplus(double u, double q2)
The function from .
double I_1s(double q2)
The angular coefficient .
lepton
An enum type for leptons.
double Integrand_ReTpar_pm(double up)
The sum of Integrand_ReTparplus() and Integrand_ReTparminus().
double getSigma1s(double q2)
The CP average .
double getSigma4(double q2)
The CP average .
unsigned int C_10p_updated
std::map< std::pair< double, double >, unsigned int > sigma1Cached
std::map< std::pair< double, double >, unsigned int > delta7Cached
gslpp::complex DeltaC9_p(double q2)
The total QCDF correction computed integrating over .
double I_9(double q2)
The angular coefficient .
std::map< std::pair< double, double >, unsigned int > sigma11Cached
complex sqrt(const complex &z)
gslpp::complex C_10_cache