Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
BXsllDecay Class Reference

Decay parent for the inclusive B > X_s l+ l- decays. Implements the integrated branching ratio in both q² \in [1, 6] GeV² and q² > 14.4 GeV², as well as the forward-backward asymmetry of the decay. More...

#include <BXsllDecay.h>

Inheritance diagram for BXsllDecay:
Collaboration diagram for BXsllDecay:

Public Member Functions

 BXsllDecay (QCDOrder order, double matching_scale, double hadronic_scale, ObservablePortsConfig &ports)
 
void load_params () override
 Load and cache parameters needed by this decay.
 
std::vector< ObservableValuecompute_observable (Observables obs) override
 Compute an observable given a public observable enum.
 
std::vector< ObservableValuecompute_observable (ObservableId obs) override
 Compute an observable given an internal observable identifier.
 
void set_config_spe (BXsllConfig config) override
 Strongly-typed configuration setter to implement in derived classes.
 
- Public Member Functions inherited from DecayParentConfigurable< BXsllConfig >
 DecayParentConfigurable (DecayId id, double matching_scale, double hadronic_scale, QCDOrder order, ObservablePortsConfig &ports)
 Construct a configurable decay module.
 
void set_config (std::any cfg) final override
 Type-erased config setter (final).
 
- Public Member Functions inherited from DecayParent
virtual ~DecayParent ()=default
 
 DecayParent (DecayId custom_id, double matching_scale, double hadronic_scale, QCDOrder order, ObservablePortsConfig &ports)
 Construct a decay module and bind it to the observable ports.
 
void bind_wilson_builder (std::shared_ptr< IObsWilsonBuilder > &wilson_builder)
 Bind a Wilson builder to this decay.
 
void enable ()
 Enable the decay module (build Wilson groups and load parameters).
 
void disable ()
 Disable the decay module.
 
void set_order (QCDOrder new_order)
 Set the QCD order for this decay (one-shot policy).
 
virtual std::any get_config () const
 Return the current decay configuration when the decay has one.
 
virtual void set_n_threads (size_t n_threads)
 Set the number of worker threads used by decays that support parallel cache filling.
 
virtual size_t get_n_threads () const
 Return the currently configured worker-thread count.
 
virtual bool supports_thread_config () const
 Whether this decay supports runtime thread configuration.
 
void set_bins (std::vector< std::pair< double, double > > new_bins)
 Set the binning for the observables related to this decay.
 
void add_bin (std::pair< double, double > new_bin)
 Adds a bin to the observables related to this decay.
 
std::optional< std::vector< std::pair< double, double > > > get_bins ()
 Returns the current binning of the decay.
 
DecayId get_id ()
 Return the decay identifier.
 
QCDOrder get_order () const
 Return the currently configured QCD order for this decay.
 
bool is_enabled () const
 Return whether the decay has already been enabled.
 
bool is_binned () const
 Return whether this decay has at least one observable requiring q² bins.
 
virtual bool is_observable_binned (ObservableId) const
 Return whether one observable of this decay requires q² bins.
 
virtual bool is_observable_binned (Observables obs) const
 Convenience overload for public observable enum ids.
 

Protected Member Functions

void set_cfg_flags (BXsllConfig::Lepton gen)
 
void fill_wilson_cache ()
 
void load_cfg_dep_params ()
 
double f (double z)
 
double h (double z)
 
double g_rho (double z)
 
double g_lambda (double z)
 
double kappa (double z)
 
double f_7 (double s)
 
double f_9 (double s)
 
complex_t Gm1 (double t)
 
complex_t G0 (double t)
 
complex_t Delta_i_23 (double s, double z, double w)
 
complex_t Delta_i_27 (double s, double z, double w)
 
double tau_22 (double s, double w, complex_t Delta_23, complex_t Delta_27)
 
complex_t tau_27 (double s, double w, complex_t Delta_23, complex_t Delta_27)
 
complex_t tau_28 (double s, double w, complex_t Delta_23, complex_t Delta_27)
 
complex_t tau_29 (double s, double w, complex_t Delta_23, complex_t Delta_27)
 
double tau_77 (double s)
 
double tau_78 (double s)
 
double tau_88 (double s)
 
double tau_89 (double s)
 
double tau_99 (double s)
 
double tau_79 (double s)
 
complex_t tau_210 (double s, double z)
 
double tau_710 (double s)
 
double tau_810 (double s)
 
double tau_910 (double s)
 
double sigma (double s)
 
double sigma_9 (double s)
 
double sigma_7 (double s, double L_mu)
 
complex_t F (double r)
 
complex_t Sigma_1 (double s)
 
double Sigma_2 (double s)
 
complex_t Sigma_3 (double s)
 
complex_t Sigma_7 (double s, double z)
 
double omega_22 (double s, double L_l)
 
complex_t omega_27 (double s, double L_l)
 
complex_t omega_29 (double s, double L_l)
 
complex_t omega_210 (double s, double L_l, double z)
 
double omega_77 (double s, double L_l)
 
double omega_79 (double s, double L_l)
 
double omega_710 (double s, double L_l)
 
double omega_99 (double s, double L_l)
 
double omega_910 (double s, double L_l)
 
double omega_1010 (double s, double L_l)
 
complex_t g (double z, double s)
 
double breit_wigner (double s, double m_V, double br, double gamma_tot, double gamma_had)
 
double PV_breit_wigner (double s, double m_V, double br, double gamma_tot, double gamma_had)
 
double PV_R_cc_cont (double s)
 
double R_cc (double s)
 
double R_cc_cont (double s)
 
double PV_R_cc (double s)
 
complex_t g_ld (double z, double s)
 
complex_t C9_eff (double s, QCDOrder order, bool prime)
 
complex_t F_17 (double s)
 
complex_t F_27 (double s)
 
complex_t F_19 (double s)
 
complex_t F_29 (double s)
 
complex_t C7_new (double s, bool prime)
 
complex_t C9_new (double s, bool prime)
 
complex_t C10_new (double s, bool prime)
 
double W_7 (double s)
 
double W_9 (double s)
 
double W_10 (double s)
 
complex_t W_27 (double s)
 
complex_t W_29 (double s)
 
complex_t W_210 (double s)
 
double W_79 (double s)
 
double W_710 (double s)
 
double W_910 (double s)
 
double dB0_ds (double s, double ml_hat)
 
double delta_mb2 (double s)
 
double delta_mb3 (double s)
 
double delta_mc2 (double s)
 
double delta_bremA (double s)
 
double delta_bremB_base (double s)
 
double delta_bremB (double s)
 
double delta_em (double s, double L_l)
 
double dB_ds (double s, double ml_hat, double L_l)
 
double A_FB_0 (double s, double ml_hat)
 
double delta_A_mb2 (double s)
 
double delta_A_mc2 (double s)
 
double delta_A_brem (double s)
 
double delta_A_em (double s, double L_l)
 
double A_FB (double s, double ml_hat, double L_l)
 
std::vector< ObservableValueBR_B_Xsll (Observables oid)
 
std::vector< ObservableValueA_FB_B_Xsll (Observables oid)
 
- Protected Member Functions inherited from DecayParent
QCDOrder check_max_order (QCDOrder order) const
 Clamp a requested QCD order to this decay's supported maximum.
 

Additional Inherited Members

- Protected Attributes inherited from DecayParent
QCDOrder max_order = QCDOrder::LO
 Maximum QCD order supported by this decay module (default: LO).
 
ObservablePortsConfigports
 Reference to the ports/configuration wiring this decay to the framework.
 
std::shared_ptr< IObsWilsonBuilderw_builder
 Wilson builder used to build/add Wilson groups for this decay.
 
std::shared_ptr< IObsWilsonProxyw_proxy
 Wilson proxy used at compute-time to query coefficients (matching/run).
 
std::shared_ptr< IObsCoreAPI< bool > > use_marty
 Port exposing whether the MARTY backend is active.
 
std::shared_ptr< IObsParameterProxy< ParamId, DataType, std::string, LhaID > > p
 Parameter proxy for SM-like quantities used by the decay (may be SM/BSM depending on wiring).
 
std::shared_ptr< IObsQCDProxyiobs_qcdp
 QCD proxy (alpha_s, running masses, constants...).
 
std::shared_ptr< IWilsonFreezer< WGroupId > > iobs_wfreezer
 Freezer to freeze/unfreeze Wilson blocks when they are not needed by active decays.
 
std::shared_ptr< ObsWilsonHelperw_helper
 Per-manager Wilson lifecycle helper.
 
WilsonBuildConfig w_config {}
 Wilson build configuration used when enabling this decay (scales, order, groups).
 
bool enabled {false}
 Whether the decay is enabled (i.e. Wilson groups built and parameters loaded).
 
bool binned {false}
 Whether this decay requires q² bins before its observables can be computed.
 
DecayId id
 Unique decay identifier.
 
std::optional< std::vector< std::pair< double, double > > > bins
 Optional q^2 bins.
 

Detailed Description

Decay parent for the inclusive B > X_s l+ l- decays. Implements the integrated branching ratio in both q² \in [1, 6] GeV² and q² > 14.4 GeV², as well as the forward-backward asymmetry of the decay.

Definition at line 46 of file BXsllDecay.h.

Constructor & Destructor Documentation

◆ BXsllDecay()

BXsllDecay::BXsllDecay ( QCDOrder  order,
double  matching_scale,
double  hadronic_scale,
ObservablePortsConfig ports 
)
inline

Definition at line 155 of file BXsllDecay.h.

Member Function Documentation

◆ A_FB()

double BXsllDecay::A_FB ( double  s,
double  ml_hat,
double  L_l 
)
protected

Definition at line 801 of file BXsllDecay.cpp.

◆ A_FB_0()

double BXsllDecay::A_FB_0 ( double  s,
double  ml_hat 
)
protected

Definition at line 637 of file BXsllDecay.cpp.

◆ A_FB_B_Xsll()

std::vector< ObservableValue > BXsllDecay::A_FB_B_Xsll ( Observables  oid)
protected

Definition at line 879 of file BXsllDecay.cpp.

◆ BR_B_Xsll()

std::vector< ObservableValue > BXsllDecay::BR_B_Xsll ( Observables  oid)
protected

Definition at line 823 of file BXsllDecay.cpp.

◆ breit_wigner()

double BXsllDecay::breit_wigner ( double  s,
double  m_V,
double  br,
double  gamma_tot,
double  gamma_had 
)
protected

Definition at line 449 of file BXsllDecay.cpp.

◆ C10_new()

complex_t BXsllDecay::C10_new ( double  s,
bool  prime 
)
protected

Definition at line 570 of file BXsllDecay.cpp.

◆ C7_new()

complex_t BXsllDecay::C7_new ( double  s,
bool  prime 
)
protected

Definition at line 545 of file BXsllDecay.cpp.

◆ C9_eff()

complex_t BXsllDecay::C9_eff ( double  s,
QCDOrder  order,
bool  prime 
)
protected

Definition at line 509 of file BXsllDecay.cpp.

◆ C9_new()

complex_t BXsllDecay::C9_new ( double  s,
bool  prime 
)
protected

Definition at line 558 of file BXsllDecay.cpp.

◆ compute_observable() [1/2]

std::vector< ObservableValue > BXsllDecay::compute_observable ( ObservableId  obs)
overridevirtual

Compute an observable given an internal observable identifier.

Parameters
obsInternal observable id.
Returns
One or more results as ObservableValue.

Implements DecayParent.

Definition at line 951 of file BXsllDecay.cpp.

◆ compute_observable() [2/2]

std::vector< ObservableValue > BXsllDecay::compute_observable ( Observables  obs)
overridevirtual

Compute an observable given a public observable enum.

Parameters
obsObservable enum id.
Returns
One or more results as ObservableValue.
Note
Some observables are binned; return multiple values or fill ObservableValue::bin.

Implements DecayParent.

Definition at line 920 of file BXsllDecay.cpp.

◆ dB0_ds()

double BXsllDecay::dB0_ds ( double  s,
double  ml_hat 
)
protected

Definition at line 611 of file BXsllDecay.cpp.

◆ dB_ds()

double BXsllDecay::dB_ds ( double  s,
double  ml_hat,
double  L_l 
)
protected

Definition at line 809 of file BXsllDecay.cpp.

◆ delta_A_brem()

double BXsllDecay::delta_A_brem ( double  s)
protected

Definition at line 743 of file BXsllDecay.cpp.

◆ delta_A_em()

double BXsllDecay::delta_A_em ( double  s,
double  L_l 
)
protected

Definition at line 783 of file BXsllDecay.cpp.

◆ delta_A_mb2()

double BXsllDecay::delta_A_mb2 ( double  s)
protected

Definition at line 648 of file BXsllDecay.cpp.

◆ delta_A_mc2()

double BXsllDecay::delta_A_mc2 ( double  s)
protected

Definition at line 670 of file BXsllDecay.cpp.

◆ delta_bremA()

double BXsllDecay::delta_bremA ( double  s)
protected

Definition at line 674 of file BXsllDecay.cpp.

◆ delta_bremB()

double BXsllDecay::delta_bremB ( double  s)
protected

Definition at line 739 of file BXsllDecay.cpp.

◆ delta_bremB_base()

double BXsllDecay::delta_bremB_base ( double  s)
protected

Definition at line 696 of file BXsllDecay.cpp.

◆ delta_em()

double BXsllDecay::delta_em ( double  s,
double  L_l 
)
protected

Definition at line 755 of file BXsllDecay.cpp.

◆ Delta_i_23()

complex_t BXsllDecay::Delta_i_23 ( double  s,
double  z,
double  w 
)
protected

Definition at line 224 of file BXsllDecay.cpp.

◆ Delta_i_27()

complex_t BXsllDecay::Delta_i_27 ( double  s,
double  z,
double  w 
)
protected

Definition at line 228 of file BXsllDecay.cpp.

◆ delta_mb2()

double BXsllDecay::delta_mb2 ( double  s)
protected

Definition at line 652 of file BXsllDecay.cpp.

◆ delta_mb3()

double BXsllDecay::delta_mb3 ( double  s)
protected

Definition at line 656 of file BXsllDecay.cpp.

◆ delta_mc2()

double BXsllDecay::delta_mc2 ( double  s)
protected

Definition at line 665 of file BXsllDecay.cpp.

◆ F()

complex_t BXsllDecay::F ( double  r)
protected

Definition at line 328 of file BXsllDecay.cpp.

◆ f()

double BXsllDecay::f ( double  z)
protected

Definition at line 173 of file BXsllDecay.cpp.

◆ F_17()

complex_t BXsllDecay::F_17 ( double  s)
protected

Definition at line 529 of file BXsllDecay.cpp.

◆ F_19()

complex_t BXsllDecay::F_19 ( double  s)
protected

Definition at line 537 of file BXsllDecay.cpp.

◆ F_27()

complex_t BXsllDecay::F_27 ( double  s)
protected

Definition at line 533 of file BXsllDecay.cpp.

◆ F_29()

complex_t BXsllDecay::F_29 ( double  s)
protected

Definition at line 541 of file BXsllDecay.cpp.

◆ f_7()

double BXsllDecay::f_7 ( double  s)
protected

Definition at line 202 of file BXsllDecay.cpp.

◆ f_9()

double BXsllDecay::f_9 ( double  s)
protected

Definition at line 208 of file BXsllDecay.cpp.

◆ fill_wilson_cache()

void BXsllDecay::fill_wilson_cache ( )
protected

Definition at line 136 of file BXsllDecay.cpp.

◆ g()

complex_t BXsllDecay::g ( double  z,
double  s 
)
protected

Definition at line 430 of file BXsllDecay.cpp.

◆ G0()

complex_t BXsllDecay::G0 ( double  t)
protected

Definition at line 219 of file BXsllDecay.cpp.

◆ g_lambda()

double BXsllDecay::g_lambda ( double  z)
protected

Definition at line 194 of file BXsllDecay.cpp.

◆ g_ld()

complex_t BXsllDecay::g_ld ( double  z,
double  s 
)
protected

Definition at line 501 of file BXsllDecay.cpp.

◆ g_rho()

double BXsllDecay::g_rho ( double  z)
protected

Definition at line 190 of file BXsllDecay.cpp.

◆ Gm1()

complex_t BXsllDecay::Gm1 ( double  t)
protected

Definition at line 214 of file BXsllDecay.cpp.

◆ h()

double BXsllDecay::h ( double  z)
protected

Definition at line 177 of file BXsllDecay.cpp.

◆ kappa()

double BXsllDecay::kappa ( double  z)
protected

Definition at line 198 of file BXsllDecay.cpp.

◆ load_cfg_dep_params()

void BXsllDecay::load_cfg_dep_params ( )
protected

Definition at line 165 of file BXsllDecay.cpp.

◆ load_params()

void BXsllDecay::load_params ( )
overridevirtual

Load and cache parameters needed by this decay.

Derived classes should read all relevant inputs through the proxies (e.g. p, w_proxy, iobs_qcdp) and store them internally.

This is called by enable after Wilson has been built and the proxy is ready.

Implements DecayParent.

Definition at line 4 of file BXsllDecay.cpp.

◆ omega_1010()

double BXsllDecay::omega_1010 ( double  s,
double  L_l 
)
protected

Definition at line 426 of file BXsllDecay.cpp.

◆ omega_210()

complex_t BXsllDecay::omega_210 ( double  s,
double  L_l,
double  z 
)
protected

Definition at line 400 of file BXsllDecay.cpp.

◆ omega_22()

double BXsllDecay::omega_22 ( double  s,
double  L_l 
)
protected

Definition at line 387 of file BXsllDecay.cpp.

◆ omega_27()

complex_t BXsllDecay::omega_27 ( double  s,
double  L_l 
)
protected

Definition at line 392 of file BXsllDecay.cpp.

◆ omega_29()

complex_t BXsllDecay::omega_29 ( double  s,
double  L_l 
)
protected

Definition at line 396 of file BXsllDecay.cpp.

◆ omega_710()

double BXsllDecay::omega_710 ( double  s,
double  L_l 
)
protected

Definition at line 412 of file BXsllDecay.cpp.

◆ omega_77()

double BXsllDecay::omega_77 ( double  s,
double  L_l 
)
protected

Definition at line 404 of file BXsllDecay.cpp.

◆ omega_79()

double BXsllDecay::omega_79 ( double  s,
double  L_l 
)
protected

Definition at line 408 of file BXsllDecay.cpp.

◆ omega_910()

double BXsllDecay::omega_910 ( double  s,
double  L_l 
)
protected

Definition at line 422 of file BXsllDecay.cpp.

◆ omega_99()

double BXsllDecay::omega_99 ( double  s,
double  L_l 
)
protected

Definition at line 416 of file BXsllDecay.cpp.

◆ PV_breit_wigner()

double BXsllDecay::PV_breit_wigner ( double  s,
double  m_V,
double  br,
double  gamma_tot,
double  gamma_had 
)
protected

Definition at line 476 of file BXsllDecay.cpp.

◆ PV_R_cc()

double BXsllDecay::PV_R_cc ( double  s)
protected

Definition at line 491 of file BXsllDecay.cpp.

◆ PV_R_cc_cont()

double BXsllDecay::PV_R_cc_cont ( double  s)
protected

Definition at line 486 of file BXsllDecay.cpp.

◆ R_cc()

double BXsllDecay::R_cc ( double  s)
protected

Definition at line 466 of file BXsllDecay.cpp.

◆ R_cc_cont()

double BXsllDecay::R_cc_cont ( double  s)
protected

Definition at line 462 of file BXsllDecay.cpp.

◆ set_cfg_flags()

void BXsllDecay::set_cfg_flags ( BXsllConfig::Lepton  gen)
protected

Definition at line 117 of file BXsllDecay.cpp.

◆ set_config_spe()

void BXsllDecay::set_config_spe ( BXsllConfig  config)
inlineoverridevirtual

Strongly-typed configuration setter to implement in derived classes.

Parameters
configParsed configuration object.

Implements DecayParentConfigurable< BXsllConfig >.

Definition at line 165 of file BXsllDecay.h.

◆ sigma()

double BXsllDecay::sigma ( double  s)
protected

Definition at line 316 of file BXsllDecay.cpp.

◆ Sigma_1()

complex_t BXsllDecay::Sigma_1 ( double  s)
protected

Definition at line 335 of file BXsllDecay.cpp.

◆ Sigma_2()

double BXsllDecay::Sigma_2 ( double  s)
protected

Definition at line 349 of file BXsllDecay.cpp.

◆ Sigma_3()

complex_t BXsllDecay::Sigma_3 ( double  s)
protected

Definition at line 357 of file BXsllDecay.cpp.

◆ sigma_7()

double BXsllDecay::sigma_7 ( double  s,
double  L_mu 
)
protected

Definition at line 324 of file BXsllDecay.cpp.

◆ Sigma_7()

complex_t BXsllDecay::Sigma_7 ( double  s,
double  z 
)
protected

Definition at line 371 of file BXsllDecay.cpp.

◆ sigma_9()

double BXsllDecay::sigma_9 ( double  s)
protected

Definition at line 320 of file BXsllDecay.cpp.

◆ tau_210()

complex_t BXsllDecay::tau_210 ( double  s,
double  z 
)
protected

Definition at line 284 of file BXsllDecay.cpp.

◆ tau_22()

double BXsllDecay::tau_22 ( double  s,
double  w,
complex_t  Delta_23,
complex_t  Delta_27 
)
protected

Definition at line 232 of file BXsllDecay.cpp.

◆ tau_27()

complex_t BXsllDecay::tau_27 ( double  s,
double  w,
complex_t  Delta_23,
complex_t  Delta_27 
)
protected

Definition at line 238 of file BXsllDecay.cpp.

◆ tau_28()

complex_t BXsllDecay::tau_28 ( double  s,
double  w,
complex_t  Delta_23,
complex_t  Delta_27 
)
protected

Definition at line 243 of file BXsllDecay.cpp.

◆ tau_29()

complex_t BXsllDecay::tau_29 ( double  s,
double  w,
complex_t  Delta_23,
complex_t  Delta_27 
)
protected

Definition at line 249 of file BXsllDecay.cpp.

◆ tau_710()

double BXsllDecay::tau_710 ( double  s)
protected

Definition at line 299 of file BXsllDecay.cpp.

◆ tau_77()

double BXsllDecay::tau_77 ( double  s)
protected

Definition at line 254 of file BXsllDecay.cpp.

◆ tau_78()

double BXsllDecay::tau_78 ( double  s)
protected

Definition at line 258 of file BXsllDecay.cpp.

◆ tau_79()

double BXsllDecay::tau_79 ( double  s)
protected

Definition at line 280 of file BXsllDecay.cpp.

◆ tau_810()

double BXsllDecay::tau_810 ( double  s)
protected

Definition at line 303 of file BXsllDecay.cpp.

◆ tau_88()

double BXsllDecay::tau_88 ( double  s)
protected

Definition at line 264 of file BXsllDecay.cpp.

◆ tau_89()

double BXsllDecay::tau_89 ( double  s)
protected

Definition at line 270 of file BXsllDecay.cpp.

◆ tau_910()

double BXsllDecay::tau_910 ( double  s)
protected

Definition at line 312 of file BXsllDecay.cpp.

◆ tau_99()

double BXsllDecay::tau_99 ( double  s)
protected

Definition at line 276 of file BXsllDecay.cpp.

◆ W_10()

double BXsllDecay::W_10 ( double  s)
protected

Definition at line 583 of file BXsllDecay.cpp.

◆ W_210()

complex_t BXsllDecay::W_210 ( double  s)
protected

Definition at line 595 of file BXsllDecay.cpp.

◆ W_27()

complex_t BXsllDecay::W_27 ( double  s)
protected

Definition at line 587 of file BXsllDecay.cpp.

◆ W_29()

complex_t BXsllDecay::W_29 ( double  s)
protected

Definition at line 591 of file BXsllDecay.cpp.

◆ W_7()

double BXsllDecay::W_7 ( double  s)
protected

Definition at line 575 of file BXsllDecay.cpp.

◆ W_710()

double BXsllDecay::W_710 ( double  s)
protected

Definition at line 603 of file BXsllDecay.cpp.

◆ W_79()

double BXsllDecay::W_79 ( double  s)
protected

Definition at line 599 of file BXsllDecay.cpp.

◆ W_9()

double BXsllDecay::W_9 ( double  s)
protected

Definition at line 579 of file BXsllDecay.cpp.

◆ W_910()

double BXsllDecay::W_910 ( double  s)
protected

Definition at line 607 of file BXsllDecay.cpp.


The documentation for this class was generated from the following files: