Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
BPQCDfCalculator.cpp
Go to the documentation of this file.
1#include "BPQCDfCalculator.h"
2
3BPQCDfCalculator::BPQCDfCalculator(int B_id, int V_id, double mu_b, const std::map<WCoef, complex_t> &C, std::shared_ptr<BPFFCalculator> ff_calculator, B_FF_Type ff_tp,
5 std::shared_ptr<IObsQCDProxy> iobs_qcdp) :
6 BaseQCDfCalculator(B_id, V_id, mu_b, C, ff_tp, p, iobs_qcdp)
7{
8 this->ff_calculator = ff_calculator;
9 this->lambda_hat_u = 0.0;
10 this->n_T_par_m_0 = 4. * this->m_B / this->m_b_PS * (- this->C_bar[WCoef::C3] - 3. * this->C_bar[WCoef::C4]);
11 this->n_T_par_m_0_bar = 4. * this->m_B / this->m_b_PS * (- this->C_bar[WCoef::C3] - 3. * this->C_bar[WCoef::C4]);
12}
13
14complex_t BPQCDfCalculator::T_P(double q2, bool bar) {
15 complex_t C_P;
16
17 if (this->ff_tp == B_FF_Type::SOFT) {
18 C_P = -(C_par_0(q2, 1, bar) + this->alpha_s_mu_b * iobs_qcdp->get_constants()->C_F / (4. * PI) * (C_par_f(q2, 1, bar) + C_par_nf(q2, bar)));
19 } else {
20 C_P = -this->alpha_s_mu_b * iobs_qcdp->get_constants()->C_F / (4. * PI) * C_par_nf(q2, bar);
21 }
22
23 // printf("C_par_nf = %.4e + %.4e i\n", real(C_par_nf(q2, bar)), imag(C_par_nf(q2, bar)));
24 // printf("C_P = %.4e + %.4e i\n", real(C_P), imag(C_P));
25 // printf("xi_P = %.4e\n", this->ff_calculator->get(BP_FF::XI_P, q2));
26 // printf("pref_par = %.4e\n", this->pref_par);
27 // printf("m_P = %.4e\n", this->m_X);
28 // printf("I_P = %.4e + %.4e i\n", real(I_par_p(q2, bar)), imag(I_par_p(q2, bar)));
29
30 return this->ff_calculator->get(BP_FF::XI_P, q2) * C_P - this->pref_par * I_par_p(q2, bar);
31}
32
33double BPQCDfCalculator::Delta_P_0(double q2) {
34 return 1. + this->alpha_s_mu_f * iobs_qcdp->get_constants()->C_F / (2. * PI) * (
35 1. - L(q2) + 3. * PI2 * (m_B - 2 * E(q2)) * this->f_B * this->f_X_par / (iobs_qcdp->get_constants()->Nc * this->lambda_B_p * this->ff_calculator->get(BP_FF::XI_P, q2) * std::pow(this->E(q2), 2)) * (1 + this->a_1_par + this->a_2_par)
36 );
37}
38
39double BPQCDfCalculator::Delta_P_T(double q2) {
40 return 1. + this->alpha_s_mu_b * iobs_qcdp->get_constants()->C_F / (2. * PI) * (
41 L(q2) - this->L_b + 6. * PI2 * this->f_B * this->f_X_par / (iobs_qcdp->get_constants()->Nc * this->lambda_B_p * this->ff_calculator->get(BP_FF::XI_P, q2) * this->E(q2)) * (1 + this->a_1_par + this->a_2_par)
42 );
43}
std::complex< double > complex_t
Convenience alias for std::complex<double>.
Definition Utils.h:35
BPQCDfCalculator()=default
complex_t T_P(double q2, bool bar)
double Delta_P_T(double q2)
double Delta_P_0(double q2)
complex_t C_par_0(double q2, double sign, bool bar)
complex_t C_par_nf(double q2, bool bar)
std::shared_ptr< IObsQCDProxy > iobs_qcdp
std::map< WCoef, complex_t > C_bar
complex_t I_par_p(double q2, bool bar)
complex_t C_par_f(double q2, double sign, bool bar)
constexpr double PI
Definition constants.h:7
constexpr double PI2
Definition constants.h:8
constexpr double E
Definition constants.h:13