Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
ObservableInterfaceProxy.h
Go to the documentation of this file.
1#ifndef OBSERVABLE_INTERFACE_PROXY_H
2#define OBSERVABLE_INTERFACE_PROXY_H
3
4#include <vector>
5#include <stdexcept>
6
7#include "ports/IModel.h"
10#include "StatParameterProxy.h"
12
34class ObservableInterfaceProxy final : public IModel {
35public:
44 std::shared_ptr<ObservableInterface> obs,
45 std::vector<ParamId> p_specs,
46 std::vector<ParamId> eta_specs);
47
54 ObservableInterfaceProxy(std::shared_ptr<ObservableInterface> obs, std::shared_ptr<IStatParamOptimizerProxy> spop);
55
59 std::shared_ptr<IModel> clone_for_worker() const override;
60
61 bool can_clone_for_worker() const override { return true; }
62
63 std::unique_ptr<IModelThreadGuard> force_decay_threads(size_t n_threads) override;
64
65 std::size_t n_observables() const override;
66
67 void prepare_for_prediction() override;
68
72 std::unordered_set<ParamId> get_obs_deps(ObservableId id) override;
73
77 std::vector<BinnedObservableId> get_obs_ids() override;
78
84 std::map<ObservableId, std::vector<ObservableValue>> predict_optimized(
85 const std::map<ParamId, double>& p,
86 const std::map<ParamId, double>& eta) override;
87
91 void compute_observables() const;
92
93private:
94 std::shared_ptr<ObservableInterface> oi_;
95 std::shared_ptr<IStatParamOptimizerProxy> spop_;
96 std::vector<ParamId> p_specs_;
97 std::vector<ParamId> eta_specs_;
98};
99
100#endif
Abstract model interface used by the statistical layer.
Statistical-layer port for batched parameter edits and optimized commits.
High-level, user-facing entry point to compute flavor observables.
Statistics-layer adapter for optimized batched parameter updates.
Statistics-layer proxy for read-only access to parameters and observables.
Interface for a model capable of producing observable predictions.
Definition IModel.h:42
Concrete IModel implementation backed by ObservableInterface.
std::shared_ptr< IModel > clone_for_worker() const override
Returns the number of currently active binned observables.
std::size_t n_observables() const override
Returns the number of currently active binned observables.
void prepare_for_prediction() override
Materialize model-side runtime state before repeated predictions.
std::unordered_set< ParamId > get_obs_deps(ObservableId id) override
Returns the model parameters required by an observable.
std::vector< BinnedObservableId > get_obs_ids() override
Returns the identifiers of the currently active observable bins.
void compute_observables() const
Forces computation of the currently configured observables.
std::map< ObservableId, std::vector< ObservableValue > > predict_optimized(const std::map< ParamId, double > &p, const std::map< ParamId, double > &eta) override
Computes model predictions for a given parameter point.
std::unique_ptr< IModelThreadGuard > force_decay_threads(size_t n_threads) override
Temporarily force internal model/decay thread counts.
bool can_clone_for_worker() const override
Whether clone_for_worker is implemented.