14 #include <gsl/gsl_integration.h>
17 #include <TFitResultPtr.h>
18 #include <gsl/gsl_spline.h>
21 #define MPllSWITCH 8.2
23 #define GSL_INTERP_DIM_DC 10
26 #define NFPOLARBASIS_MPLL true
319 double m_fit2_fplus_lat;
323 double m_fit2_fT_lat;
327 double m_fit2_f0_lat;
372 gsl_interp_accel *acc_Re_deltaC7_QCDF;
373 gsl_interp_accel *acc_Im_deltaC7_QCDF;
374 gsl_interp_accel *acc_Re_deltaC9_QCDF;
375 gsl_interp_accel *acc_Im_deltaC9_QCDF;
377 gsl_spline *spline_Re_deltaC7_QCDF;
378 gsl_spline *spline_Im_deltaC7_QCDF;
379 gsl_spline *spline_Re_deltaC9_QCDF;
380 gsl_spline *spline_Im_deltaC9_QCDF;
383 std::vector<double> ReDeltaC9;
384 std::vector<double> ImDeltaC9;
385 std::vector<double> myq2;
386 TFitResultPtr refres;
387 TFitResultPtr imfres;
429 double ninetysixM_PI3MM3;
435 double threeGegen1otwo;
481 unsigned int fplus_lat_updated;
484 unsigned int fT_lat_updated;
487 unsigned int f0_lat_updated;
490 unsigned int fplus_updated;
493 unsigned int fT_updated;
496 unsigned int f0_updated;
500 unsigned int k2_updated;
503 unsigned int beta_updated;
506 unsigned int lambda_updated;
508 unsigned int F_updated;
510 unsigned int VL_updated;
512 unsigned int TL_updated;
514 unsigned int SL_updated;
517 unsigned int N_updated;
521 unsigned int C_1_updated;
524 unsigned int C_2_updated;
527 unsigned int C_3_updated;
530 unsigned int C_4_updated;
533 unsigned int C_5_updated;
536 unsigned int C_6_updated;
539 unsigned int C_7_updated;
542 unsigned int C_9_updated;
545 unsigned int C_10_updated;
548 unsigned int C_7p_updated;
551 unsigned int C_9p_updated;
554 unsigned int C_10p_updated;
557 unsigned int C_S_updated;
560 unsigned int C_P_updated;
563 unsigned int C_Sp_updated;
566 unsigned int C_Pp_updated;
569 unsigned int C_2Lh_updated;
572 unsigned int C_8Lh_updated;
575 unsigned int Yupdated;
578 unsigned int H_V0updated;
583 unsigned int H_A0updated;
585 unsigned int H_Supdated;
588 unsigned int H_P_updated;
591 unsigned int I0_updated;
592 unsigned int I2_updated;
593 unsigned int I8_updated;
595 std::map<std::pair<double, double>,
unsigned int > I1Cached;
597 std::map<std::pair<double, double>,
unsigned int > sigma0Cached;
598 std::map<std::pair<double, double>,
unsigned int > sigma2Cached;
600 std::map<std::pair<double, double>,
unsigned int > delta0Cached;
601 std::map<std::pair<double, double>,
unsigned int > delta2Cached;
615 gsl_integration_cquad_workspace * w_sigma;
616 gsl_integration_cquad_workspace * w_delta;
617 gsl_integration_cquad_workspace * w_DTPPR;
619 gsl_error_handler_t * old_handler;
623 std::map<std::pair<double, double>,
double > cacheSigma0;
624 std::map<std::pair<double, double>,
double > cacheSigma2;
626 std::map<std::pair<double, double>,
double > cacheDelta0;
627 std::map<std::pair<double, double>,
double > cacheDelta2;
629 std::map<double, unsigned int> deltaTparpCached;
630 std::map<double, unsigned int> deltaTparmCached;
632 std::map<double, gslpp::complex> cacheDeltaTparp;
633 std::map<double, gslpp::complex> cacheDeltaTparm;
635 unsigned int deltaTparpupdated;
636 unsigned int deltaTparmupdated;
638 unsigned int T_updated;
646 void updateParameters();
661 double LCSR_fit1(
double q2,
double r_1,
double r_2,
double m_fit2);
671 double LCSR_fit2(
double q2,
double r_2,
double m_fit2);
679 double zeta(
double q2);
691 double LATTICE_fit1(
double q2,
double b_0,
double b_1,
double b_2,
double m_fit2);
703 double LATTICE_fit2(
double q2,
double b_0,
double b_1,
double b_2,
double m_fit2);
711 double f_plus(
double q2);
719 double f_T(
double q2);
727 double f_0(
double q2);
750 double S_L(
double q2);
790 double k2 (
double q2);
798 double beta (
double q2);
805 double beta2 (
double q2);
813 double lambda(
double q2);
828 double I_1c(
double q2);
835 double I_2c(
double q2);
842 double I_6c(
double q2);
851 double Delta(
int i,
double q2);
858 double getSigma1c(
double q2)
868 double getSigma2c(
double q2)
878 double getSigma6c(
double q2)
888 double getDelta1c(
double q2)
898 double getDelta2c(
double q2)
932 double Integrand_ReTparplus(
double up);
939 double Integrand_ImTparplus(
double up);
946 double Integrand_ReTparminus(
double up);
953 double Integrand_ImTparminus(
double up);
960 double Integrand_ReTpar_pm(
double up);
967 double Integrand_ImTpar_pm(
double up);
1002 double F89(
double q2);
1024 double reDC9fit(
double* x,
double* p);
1032 double imDC9fit(
double* x,
double* p);
1037 void fit_DeltaC9_mumu();
1067 void spline_QCDF_func();