9 this->t_p = std::pow(m_B + m_K, 2);
10 this->t_0 = std::pow(this->m_Lb - this->m_L, 2);
11 this->load_FF_params(src);
15 double a = std::sqrt(t_p - t);
16 double b = std::sqrt(t_p - t_0);
17 return (a - b) / (a + b);
24void LbLFFCalculator::load_FF_params(
LbL_FF_Src src) {
25 int ff_id = (int)(src) + 1;
26 int sse_order = this->sse_order.at(src);
27 std::string src_block =
"Lb_L";
33 for (
int i = 1; i <= 8; i++) {
34 for (
int j = 0; j <= sse_order; j++) {
41double LbLFFCalculator::pole(
double q2,
double m_R) {
42 return 1. / (1 - q2 / std::pow(m_R, 2));
45double LbLFFCalculator::F_a(
LbL_FF a,
double q2) {
46 auto ai = this->alpha_ai.at(a);
47 double P = pole(q2, this->m_R.at(a));
48 double Z = std::real(
z(q2, this->t_p, this->t_0));
49 return P * (ai[0] + Z * (ai[1] + Z * ai[2]));
std::complex< double > complex_t
Convenience alias for std::complex<double>.
LbLFFCalculator(std::shared_ptr< IObsParameterProxy< ParamId, DataType, std::string, LhaID > > iobspp_sm, LbL_FF_Src src=LbL_FF_Src::DM)
double get(LbL_FF a, double q2) override
complex_t z(double t, double t_p, double t_0)
Composite identifier for a single parameter.