1#ifndef HYPERISO_OBSERVABLE_H
2#define HYPERISO_OBSERVABLE_H
72 std::shared_ptr<IObsParameterProxy<ParamId, DataType, std::string, LhaID>>
iobspp_obs;
122 std::vector<ObservableValue>
compute()
const;
Base class for observable/decay computation modules.
std::string param_name(const ParamId &pid)
std::shared_ptr< IObsParameterProxy< ParamId, DataType, std::string, LhaID > > iobspp_obs
Proxy to experimental/observable parameters (typically ParameterType::OBSERVABLE).
const ObservableId id
Identifier of this observable (used for experimental lookup and theory computation routing).
void add_dependences(const std::unordered_set< ParamId > ¶m_names)
Add many parameter dependences.
std::unordered_set< ParamId > dependences
Set of parameter identifiers the observable depends on.
const std::unordered_set< ParamId > & get_dependences() const
Access the dependency set (read-only).
void add_dependence(const ParamId ¶m_name)
Add a single parameter dependence.
ObservableId getId() const
Return the observable id.
scalar_t get_exp_val(std::pair< double, double > bins={0., 0.}, std::string exp="DEFAULT") const
Get the experimental central value for this observable.
scalar_t get_exp_uncertainty(std::pair< double, double > bins={0., 0.}, std::string exp="DEFAULT", UncertaintyType u_type=UncertaintyType::COMBINED) const
Get the experimental uncertainty for this observable.
std::vector< ObservableValue > compute() const
Compute the theory prediction for this observable.
std::shared_ptr< DecayParent > decay_parent
Physics backend that computes the theory prediction for this observable.
Observable(ObservableId id, std::shared_ptr< DecayParent > decay_parent, std::shared_ptr< IObsParameterProxy< ParamId, DataType, std::string, LhaID > > iobspp_obs)
Construct an Observable.
Composite identifier for a single parameter.