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

Parent for the M0 - M0_bar mixing observables. Currently implements TODO. More...

#include <M0_Mixing.h>

Inheritance diagram for M0Mixing:
Collaboration diagram for M0Mixing:

Public Member Functions

 M0Mixing (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.
 
- Public Member Functions inherited from DecayParentConfigurable< DecayConfig >
 DecayParentConfigurable (DecayId id, double matching_scale, double hadronic_scale, QCDOrder order, ObservablePortsConfig &ports)
 
void set_config (std::any) final override
 No-op configuration setter for default config.
 
- 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

double S_18 (double x)
 
double S_11 (double x)
 
double S_1t (double x)
 
double dS0_dx (double x)
 
double S0_ct (double x_c, double x_t)
 
double F_S1 (double x, double m_W, double mu_W, double mu_t)
 
double Q_i (int i, double B_i, double r_chi, double mf2, bool is_B=false)
 
void populate_Q_from_bag (std::array< double, 5 > &Q, const std::array< double, 5 > &B, double r_chi, double mf2, bool is_B)
 
void populate_C (std::array< complex_t, 8 > &C, double hadronic_scale, size_t offset=0)
 
complex_t M_12_NP (const std::array< complex_t, 8 > &C, const std::array< double, 5 > &Q, double m_M)
 
complex_t M_12_B_SM (int gen)
 
complex_t M_12_K_SM ()
 
double phi_q (int gen)
 
double delta_M_B (int gen)
 
double a_fs ()
 
double epsilon_K ()
 
double delta_M_K ()
 
double x_D ()
 
- 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

Parent for the M0 - M0_bar mixing observables. Currently implements TODO.

Definition at line 36 of file M0_Mixing.h.

Constructor & Destructor Documentation

◆ M0Mixing()

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

Definition at line 70 of file M0_Mixing.h.

Member Function Documentation

◆ a_fs()

double M0Mixing::a_fs ( )
protected

Definition at line 162 of file M0_Mixing.cpp.

◆ compute_observable() [1/2]

std::vector< ObservableValue > M0Mixing::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 220 of file M0_Mixing.cpp.

◆ compute_observable() [2/2]

std::vector< ObservableValue > M0Mixing::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 186 of file M0_Mixing.cpp.

◆ delta_M_B()

double M0Mixing::delta_M_B ( int  gen)
protected

Definition at line 148 of file M0_Mixing.cpp.

◆ delta_M_K()

double M0Mixing::delta_M_K ( )
protected

Definition at line 174 of file M0_Mixing.cpp.

◆ dS0_dx()

double M0Mixing::dS0_dx ( double  x)
protected

Definition at line 86 of file M0_Mixing.cpp.

◆ epsilon_K()

double M0Mixing::epsilon_K ( )
protected

Definition at line 169 of file M0_Mixing.cpp.

◆ F_S1()

double M0Mixing::F_S1 ( double  x,
double  m_W,
double  mu_W,
double  mu_t 
)
protected

Definition at line 94 of file M0_Mixing.cpp.

◆ load_params()

void M0Mixing::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 3 of file M0_Mixing.cpp.

◆ M_12_B_SM()

complex_t M0Mixing::M_12_B_SM ( int  gen)
protected

Definition at line 129 of file M0_Mixing.cpp.

◆ M_12_K_SM()

complex_t M0Mixing::M_12_K_SM ( )
protected

Definition at line 139 of file M0_Mixing.cpp.

◆ M_12_NP()

complex_t M0Mixing::M_12_NP ( const std::array< complex_t, 8 > &  C,
const std::array< double, 5 > &  Q,
double  m_M 
)
protected

Definition at line 120 of file M0_Mixing.cpp.

◆ phi_q()

double M0Mixing::phi_q ( int  gen)
protected

Definition at line 154 of file M0_Mixing.cpp.

◆ populate_C()

void M0Mixing::populate_C ( std::array< complex_t, 8 > &  C,
double  hadronic_scale,
size_t  offset = 0 
)
protected

Definition at line 112 of file M0_Mixing.cpp.

◆ populate_Q_from_bag()

void M0Mixing::populate_Q_from_bag ( std::array< double, 5 > &  Q,
const std::array< double, 5 > &  B,
double  r_chi,
double  mf2,
bool  is_B 
)
protected

Definition at line 106 of file M0_Mixing.cpp.

◆ Q_i()

double M0Mixing::Q_i ( int  i,
double  B_i,
double  r_chi,
double  mf2,
bool  is_B = false 
)
protected

Definition at line 98 of file M0_Mixing.cpp.

◆ S0_ct()

double M0Mixing::S0_ct ( double  x_c,
double  x_t 
)
protected

Definition at line 90 of file M0_Mixing.cpp.

◆ S_11()

double M0Mixing::S_11 ( double  x)
protected

Definition at line 78 of file M0_Mixing.cpp.

◆ S_18()

double M0Mixing::S_18 ( double  x)
protected

Definition at line 74 of file M0_Mixing.cpp.

◆ S_1t()

double M0Mixing::S_1t ( double  x)
protected

Definition at line 82 of file M0_Mixing.cpp.

◆ x_D()

double M0Mixing::x_D ( )
protected

Definition at line 181 of file M0_Mixing.cpp.


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