|
Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
|
#include <ObsManager.h>
Public Member Functions | |
| ObsManager (ObservablePortsConfig obs_port_conf, bool init_default_decays=true) | |
| Construct an observable manager with the required ports. | |
| ObsManager | add_obs (Observables id, QCDOrder order, bool add_deps=false) |
| Add an observable (public enum) to the manager. | |
| ObsManager | remove_obs (Observables id) |
| Remove an observable (public enum) from the manager. | |
| ObsManager | add_obs (ObservableId id, QCDOrder order, bool add_deps=false) |
| Add an observable (internal ObservableId) to the manager. | |
| ObsManager | add_obs (BinnedObservableId id, QCDOrder order, bool add_deps=false) |
| Add a binned observable to the manager, or add a bin to an existing observable. | |
| bool | is_decay_binned (Decays decay) const |
| Return whether this decay has at least one observable requiring q² bins. | |
| bool | is_decay_binned (DecayId decay) const |
| Return whether this decay has at least one observable requiring q² bins. | |
| bool | is_observable_binned (Observables obs) const |
| Return whether a specific observable requires q² bins. | |
| bool | is_observable_binned (ObservableId obs) const |
| Return whether a specific observable requires q² bins. | |
| ObsManager | remove_obs (ObservableId id) |
| Remove an observable (internal ObservableId) from the manager. | |
| std::vector< ObservableValue > | evaluate (Observables id) |
| Evaluate a single observable (public enum). | |
| std::vector< ObservableValue > | evaluate (ObservableId id) |
| Evaluate a single observable (internal ObservableId). | |
| ObservableValue | evaluate (BinnedObservableId id) |
| Evaluate a single observable (internal ObservableId). | |
| std::map< ObservableId, std::vector< ObservableValue > > | evaluate_all () |
| Evaluate all currently registered observables. | |
| void | add_custom_decay (DecayId id, std::shared_ptr< DecayParent > ptr) |
| Register a custom decay implementation. | |
| void | add_obs_dep (Observables id, ParamId param) |
| Add a single dependency (parameter) to an observable (public enum). | |
| void | add_obs_deps (Observables id, std::unordered_set< ParamId > params) |
| Add a set of dependencies (parameters) to an observable (public enum). | |
| void | add_obs_dep (ObservableId id, ParamId param) |
| Add a single dependency (parameter) to an observable (ObservableId). | |
| void | add_obs_deps (ObservableId id, std::unordered_set< ParamId > params) |
| Add a set of dependencies (parameters) to an observable (ObservableId). | |
| std::unordered_set< ParamId > | get_all_ops_deps (ObservableId id) |
| Get the full allowed dependency set for a given observable. | |
| void | add_all_obs_deps (Observables id) |
| Attach all allowed dependencies to an observable (public enum). | |
| void | add_all_obs_deps (ObservableId id) |
| Attach all allowed dependencies to an observable (ObservableId). | |
| std::vector< BinnedObservableId > | get_current_obss () |
| Get the set of observable ids currently registered in the manager. | |
| std::shared_ptr< Observable > | get_obs (Observables id) |
| Retrieve an observable (public enum). | |
| std::shared_ptr< Observable > | get_obs (ObservableId id) |
| Retrieve an observable (ObservableId). | |
| ObservablePortsConfig & | get_ports () |
| Access manager ports (non-const reference). | |
| void | select_decay (ObservableId id) |
| Enable the decay needed by an observable and disable all others. | |
| void | reload_params () |
| Reload cached parameters for all registered decays. | |
| void | enable_obs () |
| Enable all observables' decays sequentially. | |
| void | set_decay_config (Decays dec, std::any config) |
| Set a decay configuration object. | |
| ObsManager | set_decay_threads (Decays dec, size_t n_threads) |
| Set the thread option for a decay that supports parallel cache filling. | |
| DecayThreadSnapshot | snapshot_decay_threads () const |
| Snapshot thread settings for all decays with thread configuration support. | |
| void | set_all_decay_threads (size_t n_threads) |
| Set all thread-configurable decays to the same thread count. | |
| void | restore_decay_threads (const DecayThreadSnapshot &snapshot) |
| Restore a previous decay thread snapshot. | |
| DecayConfigSnapshot | snapshot_decay_configs () const |
| Snapshot runtime decay configurations that expose one. | |
| void | restore_decay_configs (const DecayConfigSnapshot &snapshot) |
| Restore runtime decay configurations on matching decays. | |
| std::vector< ObservableSelectionSnapshot > | snapshot_observable_selection () const |
| Capture selected observables, bins, orders and dependencies. | |
| ObsManager | set_bkstarll_threads (size_t n_threads) |
| Set the thread option for the B -> K* l+ l- decay. | |
| ObsManager | set_bkll_threads (size_t n_threads) |
| Set the thread option for the B -> K l+ l- decay. | |
| ObsManager | set_bsphi_threads (size_t n_threads) |
| Set the thread option for the Bs -> phi l+ l- decay. | |
| ObsManager | set_lblll_threads (size_t n_threads) |
| Set the thread option for the Lambda_b -> Lambda l+ l- decay. | |
Definition at line 82 of file ObsManager.h.
| ObsManager::ObsManager | ( | ObservablePortsConfig | obs_port_conf, |
| bool | init_default_decays = true |
||
| ) |
Construct an observable manager with the required ports.
If init_default_decays is true, the manager registers the library default decays (B, K, D, mixing, ...). Their default matching/hadronic scales are derived from SM parameters accessed through ObservablePortsConfig::iobspp_sm.
| obs_port_conf | Ports used by decays/observables (Wilson builder, parameter proxies, QCD proxy, freezer, ...). |
| init_default_decays | Whether to register built-in decays at construction. |
Definition at line 4 of file ObsManager.cpp.
| void ObsManager::add_all_obs_deps | ( | ObservableId | id | ) |
Attach all allowed dependencies to an observable (ObservableId).
Equivalent to calling DependenciesHelper::get_allowed_parameters and adding the returned set to the observable.
| id | Observable internal id. |
Definition at line 289 of file ObsManager.cpp.
| void ObsManager::add_all_obs_deps | ( | Observables | id | ) |
Attach all allowed dependencies to an observable (public enum).
Equivalent to calling DependenciesHelper::get_allowed_parameters and adding the returned set to the observable.
| id | Observable public enum. |
Definition at line 283 of file ObsManager.cpp.
| void ObsManager::add_custom_decay | ( | DecayId | id, |
| std::shared_ptr< DecayParent > | ptr | ||
| ) |
Register a custom decay implementation.
The decay is rebound to the manager Wilson builder (ports), so it can build Wilson groups consistently with the rest of the system.
| id | Decay identifier. |
| ptr | Shared pointer to the decay implementation. |
Definition at line 238 of file ObsManager.cpp.
| ObsManager ObsManager::add_obs | ( | BinnedObservableId | id, |
| QCDOrder | order, | ||
| bool | add_deps = false |
||
| ) |
Add a binned observable to the manager, or add a bin to an existing observable.
The parent decay is resolved from id.s through DecayMapper::get_decay_id, which keeps the binned path compatible with dynamic/custom observable ids.
| id | Observable internal id with bin information. |
| order | Requested QCD order for the underlying decay. May be downgraded by the decay. |
| add_deps | If true, attaches all allowed parameter dependencies to the observable. |
Definition at line 104 of file ObsManager.cpp.
| ObsManager ObsManager::add_obs | ( | ObservableId | id, |
| QCDOrder | order, | ||
| bool | add_deps = false |
||
| ) |
Add an observable (internal ObservableId) to the manager.
Steps:
id with DecayMapper::get_decay_id.This overload does not require id to be convertible back to the static Observables enum. It therefore supports runtime/custom observables as long as the mapper layer knows their parent decay and that decay has been registered in the manager.
| id | Observable internal id. |
| order | Requested QCD order for the underlying decay. May be downgraded by the decay. |
| add_deps | If true, attaches all allowed parameter dependencies to the observable. |
Definition at line 31 of file ObsManager.cpp.
| ObsManager ObsManager::add_obs | ( | Observables | id, |
| QCDOrder | order, | ||
| bool | add_deps = false |
||
| ) |
Add an observable (public enum) to the manager.
Internally maps to an ObservableId, finds its decay, sets the decay order, and registers an Observable instance bound to that decay.
If add_deps is true, the observable is populated with its full allowed dependency set from DependenciesHelper.
| id | Observable public enum. |
| order | Requested QCD order for the underlying decay. May be downgraded by the decay. |
| add_deps | If true, attaches all allowed parameter dependencies to the observable. |
Definition at line 67 of file ObsManager.cpp.
| void ObsManager::add_obs_dep | ( | ObservableId | id, |
| ParamId | param | ||
| ) |
Add a single dependency (parameter) to an observable (ObservableId).
Builtin observables are validated against DependenciesHelper. Runtime observables accept this dependency directly because the generated helper cannot know plugin/lambda observables in advance.
| id | Observable internal id. |
| param | Parameter identifier to add. |
Definition at line 250 of file ObsManager.cpp.
| void ObsManager::add_obs_dep | ( | Observables | id, |
| ParamId | param | ||
| ) |
Add a single dependency (parameter) to an observable (public enum).
Builtin observables are validated against DependenciesHelper. Runtime observables do not live in that generated table, so their dependencies are accepted as user-declared metadata.
| id | Observable public enum. |
| param | Parameter identifier to add. |
Definition at line 244 of file ObsManager.cpp.
| void ObsManager::add_obs_deps | ( | ObservableId | id, |
| std::unordered_set< ParamId > | params | ||
| ) |
Add a set of dependencies (parameters) to an observable (ObservableId).
Builtin observables are validated against the allowed dependency set. Runtime observables accept the provided set directly.
| id | Observable internal id. |
| params | Set of parameters to add. |
Definition at line 268 of file ObsManager.cpp.
| void ObsManager::add_obs_deps | ( | Observables | id, |
| std::unordered_set< ParamId > | params | ||
| ) |
Add a set of dependencies (parameters) to an observable (public enum).
Builtin observables are validated against the generated allowed dependency set. Runtime observables accept the provided set directly.
| id | Observable public enum. |
| params | Set of parameters to add. |
Definition at line 262 of file ObsManager.cpp.
| void ObsManager::enable_obs | ( | ) |
Enable all observables' decays sequentially.
This is a convenience method to (re)initialize decays for all currently registered observables.
Each decay is enabled at most once, even when several observables map to it.
Definition at line 406 of file ObsManager.cpp.
| ObservableValue ObsManager::evaluate | ( | BinnedObservableId | id | ) |
Evaluate a single observable (internal ObservableId).
This selects (enables) the observable's decay and disables others (see select_decay), then runs Observable::compute.
| id | Observable internal id with bin information. |
Definition at line 211 of file ObsManager.cpp.
| std::vector< ObservableValue > ObsManager::evaluate | ( | ObservableId | id | ) |
Evaluate a single observable (internal ObservableId).
This selects (enables) the observable's decay and disables others (see select_decay), then runs Observable::compute.
| id | Observable internal id. |
Definition at line 201 of file ObsManager.cpp.
| std::vector< ObservableValue > ObsManager::evaluate | ( | Observables | id | ) |
Evaluate a single observable (public enum).
This selects (enables) the observable's decay and disables others (see select_decay), then runs Observable::compute.
| id | Observable public enum. |
Definition at line 206 of file ObsManager.cpp.
| std::map< ObservableId, std::vector< ObservableValue > > ObsManager::evaluate_all | ( | ) |
Evaluate all currently registered observables.
Iterates over obss and calls Observable::compute for each. Note: this does not call select_decay beforehand, so if multiple observables belong to different decays, each compute() will enable its decay on demand (depending on decay implementation).
Definition at line 229 of file ObsManager.cpp.
| std::unordered_set< ParamId > ObsManager::get_all_ops_deps | ( | ObservableId | id | ) |
Get the full allowed dependency set for a given observable.
This first returns the dependency set attached to the observable instance. If none is attached, it falls back to the generated DependenciesHelper map for builtin observables. Runtime observables without declared dependencies therefore safely return an empty set instead of throwing.
| id | Observable internal id. |
Definition at line 301 of file ObsManager.cpp.
| std::vector< BinnedObservableId > ObsManager::get_current_obss | ( | ) |
Get the set of observable ids currently registered in the manager.
Definition at line 318 of file ObsManager.cpp.
| std::shared_ptr< Observable > ObsManager::get_obs | ( | ObservableId | id | ) |
Retrieve an observable (ObservableId).
| id | Observable internal id. |
Definition at line 339 of file ObsManager.cpp.
| std::shared_ptr< Observable > ObsManager::get_obs | ( | Observables | id | ) |
Retrieve an observable (public enum).
| id | Observable public enum. |
Definition at line 334 of file ObsManager.cpp.
|
inline |
Access manager ports (non-const reference).
Definition at line 349 of file ObsManager.h.
| bool ObsManager::is_decay_binned | ( | DecayId | decay | ) | const |
Return whether this decay has at least one observable requiring q² bins.
Definition at line 76 of file ObsManager.cpp.
| bool ObsManager::is_decay_binned | ( | Decays | decay | ) | const |
Return whether this decay has at least one observable requiring q² bins.
Definition at line 72 of file ObsManager.cpp.
| bool ObsManager::is_observable_binned | ( | ObservableId | obs | ) | const |
Return whether a specific observable requires q² bins.
Definition at line 88 of file ObsManager.cpp.
| bool ObsManager::is_observable_binned | ( | Observables | obs | ) | const |
Return whether a specific observable requires q² bins.
Definition at line 84 of file ObsManager.cpp.
| void ObsManager::reload_params | ( | ) |
Reload cached parameters for all registered decays.
Calls DecayParent::load_params on each decay instance. Useful after changing global inputs or parameter modes.
Definition at line 398 of file ObsManager.cpp.
| ObsManager ObsManager::remove_obs | ( | ObservableId | id | ) |
Remove an observable (internal ObservableId) from the manager.
If the observable is not present, a warning may be logged (non-critical path).
| id | Observable internal id. |
Definition at line 174 of file ObsManager.cpp.
| ObsManager ObsManager::remove_obs | ( | Observables | id | ) |
Remove an observable (public enum) from the manager.
If the observable is not present, a warning may be logged (non-critical path).
| id | Observable public enum. |
Definition at line 99 of file ObsManager.cpp.
| void ObsManager::restore_decay_configs | ( | const DecayConfigSnapshot & | snapshot | ) |
Restore runtime decay configurations on matching decays.
Definition at line 479 of file ObsManager.cpp.
| void ObsManager::restore_decay_threads | ( | const DecayThreadSnapshot & | snapshot | ) |
Restore a previous decay thread snapshot.
Definition at line 455 of file ObsManager.cpp.
| void ObsManager::select_decay | ( | ObservableId | id | ) |
Enable the decay needed by an observable and disable all others.
This is used by evaluate to avoid keeping multiple decays enabled at once (which can matter if decays build Wilson groups lazily and cache parameters).
The decay is selected through DecayMapper::get_decay_id rather than through a static enum conversion, so this also works for registered custom observables.
| id | Observable internal id used to determine the corresponding decay. |
Definition at line 343 of file ObsManager.cpp.
| void ObsManager::set_all_decay_threads | ( | size_t | n_threads | ) |
Set all thread-configurable decays to the same thread count.
Definition at line 447 of file ObsManager.cpp.
| ObsManager ObsManager::set_bkll_threads | ( | size_t | n_threads | ) |
Set the thread option for the B -> K l+ l- decay.
| n_threads | Number of threads. |
Definition at line 523 of file ObsManager.cpp.
| ObsManager ObsManager::set_bkstarll_threads | ( | size_t | n_threads | ) |
Set the thread option for the B -> K* l+ l- decay.
| n_threads | Number of threads. |
Definition at line 519 of file ObsManager.cpp.
| ObsManager ObsManager::set_bsphi_threads | ( | size_t | n_threads | ) |
Set the thread option for the Bs -> phi l+ l- decay.
| n_threads | Number of threads. |
Definition at line 527 of file ObsManager.cpp.
| void ObsManager::set_decay_config | ( | Decays | dec, |
| std::any | config | ||
| ) |
Set a decay configuration object.
This forwards a type-erased configuration payload to the corresponding decay via DecayParent::set_config. The decay decides how to interpret the payload.
| dec | Decay enum. |
| config | Type-erased configuration object (std::any). |
Definition at line 379 of file ObsManager.cpp.
| ObsManager ObsManager::set_decay_threads | ( | Decays | dec, |
| size_t | n_threads | ||
| ) |
Set the thread option for a decay that supports parallel cache filling.
Passing 0 delegates to std::thread::hardware_concurrency for supported decays. Unsupported decays keep their default behavior and emit a warning.
| dec | Decay enum. |
| n_threads | Number of threads. |
Definition at line 430 of file ObsManager.cpp.
| ObsManager ObsManager::set_lblll_threads | ( | size_t | n_threads | ) |
Set the thread option for the Lambda_b -> Lambda l+ l- decay.
| n_threads | Number of threads. |
Definition at line 531 of file ObsManager.cpp.
| DecayConfigSnapshot ObsManager::snapshot_decay_configs | ( | ) | const |
Snapshot runtime decay configurations that expose one.
Definition at line 464 of file ObsManager.cpp.
| DecayThreadSnapshot ObsManager::snapshot_decay_threads | ( | ) | const |
Snapshot thread settings for all decays with thread configuration support.
Definition at line 437 of file ObsManager.cpp.
| std::vector< ObservableSelectionSnapshot > ObsManager::snapshot_observable_selection | ( | ) | const |
Capture selected observables, bins, orders and dependencies.
Definition at line 488 of file ObsManager.cpp.