Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
Observable.h File Reference

High-level observable wrapper (user-facing) that connects experimental inputs to theory predictions. More...

#include "Include.h"
#include "DecayParent.h"
Include dependency graph for Observable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Observable
 

Detailed Description

High-level observable wrapper (user-facing) that connects experimental inputs to theory predictions.

An Observable represents one measurable quantity identified by an ObservableId. It provides:

  • access to the experimental central value and uncertainties (read from the OBSERVABLE/FOBS block),
  • access to the theory prediction computed by its associated DecayParent,
  • a dependency list (ParamId) used by higher-level engines (scans, fits, nuisance propagation, caching, etc.).

The computation pipeline is:

  1. compute() calls DecayParent::enable() (lazy initialization) to ensure required Wilson groups are built and parameters are loaded (via DecayParent::load_params()).
  2. compute() forwards the request to DecayParent::compute_observable(ObservableId).
  3. The returned value is a vector of ObservableValue to support:
    • single-valued observables,
    • binned observables (each entry can carry an optional bin range),
    • multi-component outputs when needed.

Notes:

  • This class is intentionally lightweight: it does not own the physics implementation, only references it.
  • Experimental values are fetched through an injected IObsParameterProxy (typically bound to ParameterType::OBSERVABLE) to keep the observable layer testable and decoupled from the storage backend.

Typical usage:

// ports.iobspp_obs is usually an ObsParameterProxy(ParameterType::OBSERVABLE)
auto decay = std::make_shared<MyDecay>(DecayId::B_TO_XS_GAMMA, muW, muh, QCDOrder::NNLO, ports);
Observable obs(ObservableId::BR_B_TO_XS_GAMMA, decay, ports.iobspp_obs);
double exp = obs.get_exp_val();
double sig = obs.get_exp_uncertainty(UncertaintyType::COMBINED);
auto theory = obs.compute(); // vector<ObservableValue>
See also
DecayParent
ObservableValue
IObsParameterProxy

Definition in file Observable.h.