21 std::array<double, 5>
Q_Bd;
22 std::array<double, 5>
Q_Bs;
23 std::array<double, 5>
Q_K;
24 std::array<double, 5>
Q_D;
25 std::array<complex_t, 8>
C_Bd;
26 std::array<complex_t, 8>
C_Bs;
27 std::array<complex_t, 8>
C_K;
28 std::array<complex_t, 8>
C_D;
40 static constexpr std::array<double, 5> N_i {0.66667, -0.41667, 0.08333, 0.50000, 0.16667};
41 static constexpr std::array<double, 5> d_i {0.00000, 0.00000, 0.00000, 0.16667, 1.50000};
42 static constexpr double J_5 = 5165. / 3174.;
43 static constexpr double J_4 = 6719. / 3750.;
44 static constexpr double J_3 = 307. / 162.;
45 static constexpr double B_t = 17. / 3;
48 double S_18(
double x);
49 double S_11(
double x);
50 double S_1t(
double x);
52 double S0_ct(
double x_c,
double x_t);
53 double F_S1(
double x,
double m_W,
double mu_W,
double mu_t);
55 double Q_i(
int i,
double B_i,
double r_chi,
double mf2,
bool is_B=
false);
56 void populate_Q_from_bag(std::array<double, 5>& Q,
const std::array<double, 5>&
B,
double r_chi,
double mf2,
bool is_B);
57 void populate_C(std::array<complex_t, 8>& C,
double hadronic_scale,
size_t offset=0);
58 complex_t M_12_NP(
const std::array<complex_t, 8>& C,
const std::array<double, 5>& Q,
double m_M);
62 double phi_q(
int gen);
Base class for observable/decay computation modules.
High-level mutator for parameters used by the observable layer.
Default observable-layer implementation of IObsQCDProxy.
std::complex< double > complex_t
Convenience alias for std::complex<double>.
Mapper for decay names, dynamic ids and observable membership.
Typed configuration adapter for DecayParent using std::any.
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>.
Parent for the M0 - M0_bar mixing observables. Currently implements TODO.
double S0_ct(double x_c, double x_t)
double Q_i(int i, double B_i, double r_chi, double mf2, bool is_B=false)
double delta_M_B(int gen)
complex_t M_12_B_SM(int gen)
M0Mixing(QCDOrder order, double matching_scale, double hadronic_scale, ObservablePortsConfig &ports)
double F_S1(double x, double m_W, double mu_W, double mu_t)
void load_params() override
Load and cache parameters needed by this decay.
void populate_C(std::array< complex_t, 8 > &C, double hadronic_scale, size_t offset=0)
std::vector< ObservableValue > compute_observable(Observables obs) override
Compute an observable given a public observable enum.
complex_t M_12_NP(const std::array< complex_t, 8 > &C, const std::array< double, 5 > &Q, double m_M)
void populate_Q_from_bag(std::array< double, 5 > &Q, const std::array< double, 5 > &B, double r_chi, double mf2, bool is_B)
std::array< double, 5 > Q_D
std::array< double, 5 > Q_Bd
std::array< double, 5 > Q_K
std::array< double, 5 > Q_Bs
std::array< complex_t, 8 > C_D
std::array< complex_t, 8 > C_Bs
std::array< complex_t, 8 > C_K
std::array< complex_t, 8 > C_Bd
Dependency container (“ports”) for observable computations.
std::unordered_set< WGroupId > groups
Set of Wilson operator group identifiers to be included in the build.