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

DecayParent implementation backed by user-provided lambdas. More...

#include <LambdaDecay.h>

Inheritance diagram for LambdaDecay:
Collaboration diagram for LambdaDecay:

Public Member Functions

 LambdaDecay (DecayId id, LambdaDecayConfig config, ObservablePortsConfig &ports)
 Construct a lambda-backed decay from a dynamic id and config.
 
void load_params () override
 Run the user-defined loading/cache hook, if any.
 
std::vector< ObservableValuecompute_observable (Observables obs) override
 Compute a builtin observable by converting it to ObservableId.
 
std::vector< ObservableValuecompute_observable (ObservableId obs) override
 Compute a runtime/custom observable by dispatching to its lambda.
 
void set_config (std::any cfg) override
 Store and optionally handle a type-erased user config.
 
const LambdaDecayConfigconfig () const
 Access the immutable LambdaDecayConfig.
 
const std::any & user_config () const
 Access the last std::any payload passed to set_config().
 
bool has_user_config () const
 True if set_config() has received a payload.
 
IObsWilsonProxyW ()
 Access the Wilson proxy after enable().
 
std::shared_ptr< IObsWilsonProxywilson_proxy ()
 Access the Wilson proxy as a shared pointer after enable().
 
IObsParameterProxy< ParamId, DataType, std::string, LhaID > & SM ()
 Access the SM/BSM parameter proxy used by decays.
 
IObsParameterProxy< ParamId, DataType, std::string, LhaID > & FLAVOR ()
 Access the FLAVOR parameter proxy from the ports configuration.
 
IObsQCDProxyQCD ()
 Access the QCD proxy used by decays.
 
ObservablePortsConfigobservable_ports ()
 Access all observable ports for advanced use.
 
std::optional< std::vector< std::pair< double, double > > > current_bins ()
 Return the current optional bin list.
 
- 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.
 

Additional Inherited Members

- Protected Member Functions inherited from DecayParent
QCDOrder check_max_order (QCDOrder order) const
 Clamp a requested QCD order to this decay's supported maximum.
 
- 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

DecayParent implementation backed by user-provided lambdas.

LambdaDecay is intended for dev workflows, plugins and quick phenomenology extensions where adding a full hand-written DecayParent subclass would be too heavy. It still follows the normal framework lifecycle:

The class does not bypass the mapper layer. A LambdaDecayConfig must first be registered through ObservableInterface::add_lambda_decay(), which creates the DecayId, ObservableId values and DecayMapper links consistently.

Definition at line 198 of file LambdaDecay.h.

Constructor & Destructor Documentation

◆ LambdaDecay()

LambdaDecay::LambdaDecay ( DecayId  id,
LambdaDecayConfig  config,
ObservablePortsConfig ports 
)
inline

Construct a lambda-backed decay from a dynamic id and config.

Parameters
idDynamic decay id already registered in DecayMapper.
configRuntime decay configuration.
portsObservable ports shared with ObsManager.

Definition at line 207 of file LambdaDecay.h.

Member Function Documentation

◆ compute_observable() [1/2]

std::vector< ObservableValue > LambdaDecay::compute_observable ( ObservableId  obs)
inlineoverridevirtual

Compute a runtime/custom observable by dispatching to its lambda.

Implements DecayParent.

Definition at line 245 of file LambdaDecay.h.

◆ compute_observable() [2/2]

std::vector< ObservableValue > LambdaDecay::compute_observable ( Observables  obs)
inlineoverridevirtual

Compute a builtin observable by converting it to ObservableId.

Implements DecayParent.

Definition at line 238 of file LambdaDecay.h.

◆ config()

const LambdaDecayConfig & LambdaDecay::config ( ) const
inline

Access the immutable LambdaDecayConfig.

Definition at line 265 of file LambdaDecay.h.

◆ current_bins()

std::optional< std::vector< std::pair< double, double > > > LambdaDecay::current_bins ( )
inline

Return the current optional bin list.

Definition at line 302 of file LambdaDecay.h.

◆ FLAVOR()

IObsParameterProxy< ParamId, DataType, std::string, LhaID > & LambdaDecay::FLAVOR ( )
inline

Access the FLAVOR parameter proxy from the ports configuration.

Definition at line 293 of file LambdaDecay.h.

◆ has_user_config()

bool LambdaDecay::has_user_config ( ) const
inline

True if set_config() has received a payload.

Definition at line 271 of file LambdaDecay.h.

◆ load_params()

void LambdaDecay::load_params ( )
inlineoverridevirtual

Run the user-defined loading/cache hook, if any.

Implements DecayParent.

Definition at line 229 of file LambdaDecay.h.

◆ observable_ports()

ObservablePortsConfig & LambdaDecay::observable_ports ( )
inline

Access all observable ports for advanced use.

Definition at line 299 of file LambdaDecay.h.

◆ QCD()

IObsQCDProxy & LambdaDecay::QCD ( )
inline

Access the QCD proxy used by decays.

Definition at line 296 of file LambdaDecay.h.

◆ set_config()

void LambdaDecay::set_config ( std::any  cfg)
inlineoverridevirtual

Store and optionally handle a type-erased user config.

Implements DecayParent.

Definition at line 257 of file LambdaDecay.h.

◆ SM()

IObsParameterProxy< ParamId, DataType, std::string, LhaID > & LambdaDecay::SM ( )
inline

Access the SM/BSM parameter proxy used by decays.

Definition at line 290 of file LambdaDecay.h.

◆ user_config()

const std::any & LambdaDecay::user_config ( ) const
inline

Access the last std::any payload passed to set_config().

Definition at line 268 of file LambdaDecay.h.

◆ W()

IObsWilsonProxy & LambdaDecay::W ( )
inline

Access the Wilson proxy after enable().

Definition at line 274 of file LambdaDecay.h.

◆ wilson_proxy()

std::shared_ptr< IObsWilsonProxy > LambdaDecay::wilson_proxy ( )
inline

Access the Wilson proxy as a shared pointer after enable().

Definition at line 282 of file LambdaDecay.h.


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