12 #include <gsl/gsl_math.h>
13 #include <boost/bind.hpp>
38 w_sigma0 = gsl_integration_workspace_alloc (50);
39 w_sigma2 = gsl_integration_workspace_alloc (50);
41 w_delta0 = gsl_integration_workspace_alloc (50);
42 w_delta2 = gsl_integration_workspace_alloc (50);
76 std::stringstream out;
78 throw std::runtime_error(
"MPll: pseudoscalar " + out.str() +
" not implemented");
109 std::map<std::pair<double, double>,
unsigned int >::iterator it;
358 return r_1/( 1. - q2/m_fit2 ) + r_2/
pow( ( 1. - q2/m_fit2 ) , 2.) ;
364 return r_2/( 1. - q2/m_fit2 ) ;
424 double x = 4.*m*m/
q2;
427 if (x>1.) par =
sqrt(x - 1.) * atan( 1. /
sqrt(x - 1.) );
431 else return - 4./9. * (
log( m*m / q2 ) - 2./3. - x ) - 4./9. * (-2. + x) * par;
436 return 4./3. *
C_3 + 64./9. *
C_5 + 64./27. *
C_6 - 1./2. *
H(q2,0.) * (
C_3 + 4./3.*
C_4 + 16. *
C_5 + 64./3.*
C_6 )
451 std::stringstream out;
453 throw std::runtime_error(
"H_V: index " + out.str() +
" not allowed for an Angular Coefficient");
471 std::stringstream out;
473 throw std::runtime_error(
"H_A: index " + out.str() +
" not allowed for an Angular Coefficient");
490 std::stringstream out;
492 throw std::runtime_error(
"H_S: index " + out.str() +
" not allowed for an Angular Coefficient");
509 std::stringstream out;
511 throw std::runtime_error(
"H_S: index " + out.str() +
" not allowed for an Angular Coefficient");
559 std::stringstream out;
561 throw std::runtime_error(
"I: index " + out.str() +
" not implemented");
567 return (
I(i, q2, 0) +
I(i, q2, 1))/2.;
572 return (
I(i, q2, 0) -
I(i, q2, 1))/2.;
583 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
605 std::stringstream out;
607 throw std::runtime_error(
"MVll::integrateSigma_e: index " + out.str() +
" not implemented");
620 std::pair<double, double > qbin = std::make_pair(q_min, q_max);
641 std::stringstream out;
643 throw std::runtime_error(
"integrateDelta_e: index " + out.str() +
" not implemented");
gslpp::vector< double > k2_cache
gslpp::complex H_V0Ccache[2]
void setUpdateFlag(StandardModel::meson meson_i, StandardModel::meson meson_j, StandardModel::lepton lep_i, bool updated_i)
sets the update flag for the initial and final state dependent object for .
gslpp::complex geth_0_1_MP() const
double LCSR_fit1(double q2, double r_1, double r_2, double m_fit2)
The second fit function from arXiv:hep-ph/0412079v1, .
double getDelta2(double q2)
The CP asymmetry .
double LCSR_fit2(double q2, double r_2, double m_fit2)
The third fit function from arXiv:hep-ph/0412079v1, .
gslpp::vector< gslpp::complex > ** ComputeCoeffBMll(double mu, schemes scheme=NDR)
Computes the Wilson coefficient for the process .
gslpp::vector< double > H_V0cache
double integrateDelta(int i, double q_min, double q_max)
The integral of from to .
double F(double q2)
The factor used in the angular coefficients .
double lambda(double q2)
The factor used in the angular coefficients .
gslpp::complex C_9p_cache
unsigned int C_Sp_updated
gslpp::vector< double > SL_cache
double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Particle getLeptons(const StandardModel::lepton p) const
A get method to retrieve the member object of a lepton.
gslpp::vector< double > H_Scache
virtual ~MPll()
Destructor.
void updateParameters()
The update parameter method for MPll.
gslpp::complex geth_0_MP() const
const StandardModel & mySM
gslpp::vector< double > fT_cache
gslpp::complex V_L(double q2)
The helicity form factor .
gslpp::vector< gslpp::complex > ** allcoeffprime
complex conjugate() const
bool getUpdateFlag(StandardModel::meson meson_i, StandardModel::meson meson_j, StandardModel::lepton lep_i)
gets the update flag for the initial and final state dependent object for .
complex pow(const complex &z1, const complex &z2)
double f_T(double q2)
The form factor .
gslpp::complex C_10_cache
double getSigma0(double q2)
The CP average .
gslpp::vector< double > N_cache
gsl_function convertToGslFunction(const F &f)
unsigned int fplus_updated
StandardModel::meson pseudoscalar
meson
An enum type for mesons.
gsl_integration_workspace * w_sigma0
static const complex & i()
double S_R(double q2)
The helicity form factor .
std::map< std::pair< double, double >, unsigned int > sigma0Cached
gsl_integration_workspace * w_delta0
std::map< std::pair< double, double >, double > cacheSigma2
A model class for the Standard Model.
double I(int i, double q2, int bar)
The angular coefficient .
gslpp::complex H_P(double q2, int bar)
The helicity amplitude .
unsigned int C_10p_updated
unsigned int C_10_updated
gslpp::vector< double > fplus_cache
gslpp::complex Y(double q2)
The function involved into .
unsigned int lambda_updated
Meson getMesons(const meson m) const
A get method to access a meson as an object of the type Meson.
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
unsigned int C_9p_updated
void checkCache()
The caching method for MPll.
unsigned int C_7p_updated
double f_plus(double q2)
The form factor .
StandardModel::meson meson
double computeWidth() const
A method to compute the width of the meson from its lifetime.
double f_0(double q2)
The form factor .
std::map< std::pair< double, double >, unsigned int > delta0Cached
double getSigma2(double q2)
The CP average .
double getGF() const
A get method to retrieve the Fermi constant .
double getr_2_fplus() const
gslpp::complex C_Pp_cache
gslpp::vector< double > Ycache
double beta(double q2)
The factor used in the angular coefficients .
gslpp::complex N()
The helicity amplitudes normalization factor .
gslpp::complex T_R(double q2)
The helicity form factor .
gsl_integration_workspace * w_delta2
gslpp::complex C_10p_cache
gslpp::complex H_V(double q2, int bar)
The helicity amplitude .
MPll(const StandardModel &SM_i, StandardModel::meson meson_i, StandardModel::meson pseudoscalar_i, StandardModel::lepton lep_i)
Constructor.
gsl_integration_workspace * w_sigma2
gslpp::complex T_L(double q2)
The helicity form factor .
double getr_1_fplus() const
Flavour * getMyFlavour() const
Particle getQuarks(const quark q) const
A get method to access a quark as an object of the type Particle.
gslpp::vector< gslpp::complex > ** ComputeCoeffprimeBMll(double mu, schemes scheme=NDR)
Computes the chirality flipped Wilson coefficient for the process .
gslpp::complex computelamt_s() const
The product of the CKM elements .
gslpp::complex C_7p_cache
double getDelta0(double q2)
The CP asymmetry .
double getAle() const
A get method to retrieve the fine-structure constant .
StandardModel::lepton lep
gslpp::complex H_A(double q2, int bar)
The helicity amplitude .
const double & getMass() const
A get method to access the particle mass.
gslpp::vector< gslpp::complex > ** allcoeff
double integrateSigma(int i, double q_min, double q_max)
The integral of from to .
double k2(double q2)
The square of the 3-momentum of the recoiling meson in the M rest frame, .
gslpp::complex H(double q2, double m)
The function involved into .
std::map< std::pair< double, double >, unsigned int > sigma2Cached
double getm_fit2_f0() const
gslpp::vector< double > H_P_cache
std::map< std::pair< double, double >, unsigned int > delta2Cached
unsigned int beta_updated
gslpp::complex C_Sp_cache
double Delta(int i, double q2)
The CP asymmetry .
complex log(const complex &z)
double Sigma(int i, double q2)
The CP average .
double S_L(double q2)
The helicity form factor .
std::map< std::pair< double, double >, double > cacheDelta0
A class for the correction in .
double getm_fit2_fT() const
std::map< std::pair< double, double >, double > cacheSigma0
A class for defining operations on and functions of complex numbers.
std::map< std::pair< double, double >, double > cacheDelta2
gslpp::complex H_S(double q2, int bar)
The helicity amplitude .
gslpp::complex V_R(double q2)
The helicity form factor .
lepton
An enum type for leptons.
double getm_fit2_fplus() const
unsigned int C_Pp_updated
complex sqrt(const complex &z)