27 const double X_b {-0.168440839756};
33 std::map<WCoef, complex_t>
C_w;
44 static constexpr std::array<double, 8>
gamma_i7 {-0.85596, 5.1358, -2.1728, -0.6255, -77.432, 19.029, 10.667, -3.5556};
45 static constexpr std::array<double, 8>
a_i {0.608696, 0.695652, 0.2608696, -0.521739, 0.4086, -0.4230, -0.8994, 0.1456};
46 static constexpr std::array<double, 8>
d_i {1.4107, -0.8380, -0.4286, -0.0714, -0.6494, -0.0380, -0.0185, -0.0057};
49 double gen_P00(
const std::array<std::array<double, 8>, 8>&
K);
50 double gen_P01(
const std::array<std::array<double, 8>, 8>&
K);
56 double phi_22(
double z,
double delta);
57 double phi_27(
double z,
double delta);
58 double phi_47(
double delta);
59 double phi_77(
double delta);
60 double phi_78(
double delta);
61 double phi_88(
double delta);
62 std::array<std::array<double, 8>, 8>
phi_1(
double delta,
double z);
63 std::array<double, 8>
r_1(
double z);
64 std::array<std::array<double, 8>, 8>
K_1();
67 double F2nf(
double z);
69 double h22(
double z,
double delta);
70 double h27(
double z,
double delta);
71 double h28(
double z,
double delta);
72 double h88(
double delta);
73 double h77(
double delta);
75 std::array<std::array<double, 8>, 8>
phi_2_b0(
double delta,
double z);
76 std::array<double, 8>
r_hat_2(
double z);
77 std::array<std::array<double, 8>, 8>
K_2_b0();
81 double F2na(
double z);
83 std::array<std::array<double, 8>, 8>
K_2_rem(
double z);
95 double C2_em(
double eta);
96 double C8_em(
double eta);
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 Bq > ll decays. Currently implements both CP-averaged and untagged Bs > mu+ mu- ...
double h27(double z, double delta)
std::array< std::array< double, 8 >, 8 > K_2_b0()
double phi_77_rem(double phi_77_int)
std::array< double, 8 > r_1(double z)
double h28(double z, double delta)
double phi_47(double delta)
double dr2_dlogz(double z)
std::vector< ObservableValue > compute_observable(Observables obs) override
Compute an observable given a public observable enum.
double gen_P00(const std::array< std::array< double, 8 >, 8 > &K)
std::array< std::array< double, 8 >, 8 > phi_2_b0(double delta, double z)
static constexpr std::array< double, 8 > a_i
std::array< std::array< double, 8 >, 8 > K_1()
std::array< double, 8 > r_hat_2(double z)
double h22(double z, double delta)
double r2_large_z(double z)
void load_params() override
Load and cache parameters needed by this decay.
double phi_77(double delta)
double phi_22(double z, double delta)
std::array< std::array< double, 8 >, 8 > phi_1(double delta, double z)
double phi_88(double delta)
complex_t C7_em(double eta)
double r22_large_z(double z)
double phi_78(double delta)
std::array< std::array< double, 8 >, 8 > K_2_rem(double z)
static constexpr std::array< double, 8 > gamma_i7
double gen_P01(const std::array< std::array< double, 8 >, 8 > &K)
static constexpr std::array< double, 8 > d_i
double phi_27(double z, double delta)
BXsDecay(QCDOrder order, double matching_scale, double hadronic_scale, ObservablePortsConfig &ports)
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>.
std::map< WCoef, complex_t > C_b_LO
std::map< WCoef, complex_t > C_b_NLO
std::map< WCoef, complex_t > C_w
std::map< WCoef, complex_t > C_b_NNLO
Dependency container (“ports”) for observable computations.
std::unordered_set< WGroupId > groups
Set of Wilson operator group identifiers to be included in the build.