29 std::map<WCoef, complex_t>
C;
71 std::array<double, 3>
r1_M;
72 std::array<double, 3>
r2_M;
167 double J1s(
double q2,
bool bar);
168 double J1c(
double q2,
bool bar);
169 double J2s(
double q2,
bool bar);
170 double J2c(
double q2,
bool bar);
171 double J3(
double q2,
bool bar);
172 double J4(
double q2,
bool bar);
173 double J5(
double q2,
bool bar);
174 double J6s(
double q2,
bool bar);
175 double J6c(
double q2,
bool bar);
176 double J7(
double q2,
bool bar);
177 double J8(
double q2,
bool bar);
178 double J9(
double q2,
bool bar);
Base class for observable/decay computation modules.
Default observable-layer implementation of IObsQCDProxy.
std::complex< double > complex_t
Convenience alias for std::complex<double>.
Decay parent for the exclusive B > K* l+ l- decays. Implements the integrated branching ratio and ang...
complex_t delta_A_0_K(double q2, bool bar)
bool supports_thread_config() const override
Whether this decay supports runtime thread configuration.
complex_t A_S(double q2, bool bar)
std::vector< ObservableValue > P_3_binned(Observables id)
std::vector< ObservableValue > S_i_binned(size_t i, bool cpv, Observables id)
double J2s(double q2, bool bar)
complex_t A_perp_low(double q2, double sign, bool bar)
double J2c(double q2, bool bar)
std::vector< ObservableValue > P_6_binned(Observables id)
complex_t A_t_high(double q2, bool bar)
BKstarllDecay(QCDOrder order, double matching_scale, double hadronic_scale, ObservablePortsConfig &ports)
std::vector< ObservableValue > H_T_2_binned(Observables id)
complex_t delta_A_perp_QCDf(double q2, double sign, bool bar)
complex_t T_par_m_cached(double q2, bool bar)
complex_t delta_A_0_QCDf(double q2, double sign, bool bar)
complex_t delta_A_0(double q2, double sign, bool bar)
void set_config_spe(BKstarllConfig config) override
Strongly-typed configuration setter to implement in derived classes.
std::vector< ObservableValue > Rm1_BKstar(Observables id, BKstarllConfig::B_Charge charge)
complex_t delta_A_par_vD(double q2, bool bar)
std::any get_config() const override
Return the current decay configuration when the decay has one.
std::vector< ObservableValue > H_T_3_binned(Observables id)
double J7(double q2, bool bar)
void set_lepton_gen_and_charge(BKstarllConfig::Lepton gen, BKstarllConfig::B_Charge charge)
double J3(double q2, bool bar)
double J1c(double q2, bool bar)
complex_t A_perp(double q2, double sign, bool bar)
std::vector< ObservableValue > A_T_2_binned(Observables id)
std::vector< ObservableValue > P_8_binned(Observables id)
std::vector< ObservableValue > P_i_CPV_binned(size_t i, Observables id)
complex_t A_0(double q2, double sign, bool bar)
complex_t N(double q2, bool bar)
std::vector< ObservableValue > A_T_Re_CPV_binned(Observables id)
complex_t delta_A_perp(double q2, double sign, bool bar)
complex_t A_0_low(double q2, double sign, bool bar)
std::vector< ObservableValue > A_T_3_binned(Observables id)
std::vector< ObservableValue > A_T_1_binned(Observables id)
complex_t delta_A_perp_vD(double q2, bool bar)
std::vector< ObservableValue > compute_observable(Observables obs) override
Compute an observable given a public observable enum.
std::vector< ObservableValue > A_T_4_binned(Observables id)
std::vector< ObservableValue > alpha_K_binned(Observables id)
complex_t A_perp_high(double q2, double sign, bool bar)
std::vector< ObservableValue > dBR_dq2_binned(bool bar, Observables id, bool br=true)
complex_t delta_A_par(double q2, double sign, bool bar)
double J6s(double q2, bool bar)
std::vector< ObservableValue > A_CP_binned(Observables id)
size_t get_n_threads() const override
Return the currently configured worker-thread count.
std::vector< ObservableValue > Pp_i_binned(size_t i, bool cpv, Observables id)
std::vector< ObservableValue > A_Im_binned(Observables id)
complex_t A_par_high(double q2, double sign, bool bar)
bool is_observable_binned(ObservableId obs) const override
Return whether one observable of this decay requires q² bins.
complex_t delta_A_0_vD(double q2, bool bar)
void compute_binned_J_i()
double dG_dq2_avg_bin(size_t bin)
std::vector< ObservableValue > H_T_1_binned(Observables id)
std::vector< ObservableValue > F_L_binned(Observables id)
complex_t C7_eff(double q2, bool bar)
double J8(double q2, bool bar)
complex_t A_par(double q2, double sign, bool bar)
complex_t delta_A_par_K(double q2, bool bar)
double J5(double q2, bool bar)
complex_t A_S_low(double q2, bool bar)
std::vector< ObservableValue > A_T_Re_binned(Observables id)
void set_n_threads(size_t n_threads) override
Set the number of worker threads used by decays that support parallel cache filling.
complex_t T_perp_p_cached(double q2, bool bar)
std::vector< ObservableValue > F_T_binned(Observables id)
double J4(double q2, bool bar)
complex_t A_0_high(double q2, double sign, bool bar)
complex_t T_perp_m_cached(double q2, bool bar)
double J9(double q2, bool bar)
std::vector< ObservableValue > A_T_5_binned(Observables id)
complex_t A_S_high(double q2, bool bar)
complex_t delta_A_par_QCDf(double q2, double sign, bool bar)
void load_cfg_dependent_params()
ObservableValue q0(Observables id)
double J6c(double q2, bool bar)
complex_t A_t(double q2, bool bar)
complex_t delta_A_perp_K(double q2, bool bar)
complex_t C9_eff(double q2, bool bar)
std::vector< ObservableValue > A_FB_binned(Observables id, bool cpv)
complex_t interpolate(double q2, complex_t val_low, complex_t val_high)
std::vector< ObservableValue > P_2_binned(Observables id)
complex_t A_par_low(double q2, double sign, bool bar)
complex_t A_t_low(double q2, bool bar)
double J1s(double q2, bool bar)
void load_params() override
Load and cache parameters needed by this decay.
Mapper for decay names, dynamic ids and observable membership.
Typed configuration adapter for DecayParent using std::any.
bool binned
Whether this decay requires q² bins before its observables can be computed.
WilsonBuildConfig w_config
Wilson build configuration used when enabling this decay (scales, order, groups).
ObservablePortsConfig & ports
Reference to the ports/configuration wiring this decay to the framework.
QCDOrder max_order
Maximum QCD order supported by this decay module (default: LO).
static IdOf< WGroupTag > to_id(WGroup e)
Converts an enum value to an IdOf<Tag>.
std::array< complex_t, 8 > phi_k_high
std::array< double, 3 > r2_M
std::array< scalar_t, LOOKUP_SIZE > T_perp_p_lookup
std::array< double, 3 > DeltaC9_M_qbar
std::array< double, 3 > r1_M
BVFFCalculator ff_calculator
std::array< complex_t, 6 > b_k_low
std::array< complex_t, 6 > theta_k_low
std::array< std::vector< double >, 15 > J_i_binned
std::array< scalar_t, LOOKUP_SIZE > T_par_m_lookup
std::array< complex_t, 3 > h_0_fit
std::array< complex_t, 3 > h_p_fit
std::array< scalar_t, LOOKUP_SIZE > T_par_m_bar_lookup
std::array< complex_t, 8 > a_k_high
std::array< complex_t, 3 > alpha_par
std::map< WCoef, complex_t > C
std::array< scalar_t, LOOKUP_SIZE > T_perp_m_lookup
std::array< complex_t, 2 > alpha_0
BVQCDfCalculator qcdf_calculator
std::array< scalar_t, LOOKUP_SIZE > T_perp_p_bar_lookup
std::array< complex_t, 6 > phi_k_low
std::array< complex_t, 6 > a_k_low
std::array< complex_t, 3 > h_m_fit
std::array< complex_t, 3 > alpha_perp
static constexpr size_t LOOKUP_SIZE
std::array< std::vector< double >, 15 > J_i_bar_binned
std::array< scalar_t, LOOKUP_SIZE > T_perp_m_bar_lookup
Power_Corrections_Impl power_corr_impl
Dependency container (“ports”) for observable computations.
Container for a computed observable value, optionally binned.
std::unordered_set< WGroupId > groups
Set of Wilson operator group identifiers to be included in the build.