Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
C++, Python, CLI and graphical interfaces

All frontends use the same C++ calculation backend. Choose the interface based on the surrounding workflow rather than on expected physics differences.

C++ interface

Use C++ when integrating HyperIso into a compiled program, implementing new physics components or requiring direct access to the native API.

The common sequence is:

  1. create a HyperisoConfig;
  2. initialize HyperisoMaster with an LHA-family file;
  3. create WilsonInterface, ObservableInterface or StatisticInterface;
  4. register the requested objects and run the calculation.
config.model = Model::SM;
master.init("Assets/lha/si_input.flha", config);
ObservableInterface observables;
auto value = observables.compute_observable(Observables::BR_BS_MUMU);
High-level interface to initialize and monitor the main framework configuration.
void init(const std::string &lhaFile, HyperisoConfig config)
Initializes Hyperiso using a LHA file and a full Config object.
std::vector< ObservableValue > compute_observable(Observables obs) const
Compute a theory prediction for an observable (enum API).
ObservableInterface & add_observable(Observables obs, QCDOrder order, bool add_dependencies=false)
Add an observable to the manager (enum API).
Configuration object controlling model, input flags and optional MARTY resources.
Definition Config.h:24
Model model
Current model.
Definition Config.h:33

Installed C++ examples are built against the exported HyperIso CMake package, which also checks that public headers and link interfaces are complete.

Python interface

Use Python for scripted scans, notebooks, plotting and integration with the scientific Python ecosystem. High-level Python wrappers validate and convert configuration objects before forwarding them to pybind11.

from pyhyperiso.Common import Model, Observables, QCDOrder
from pyhyperiso.Core import HyperisoConfig, HyperisoMaster
from pyhyperiso.Observable import ObservableInterface
master = HyperisoMaster()
master.init(
lha_file="Assets/lha/si_input.flha",
config=HyperisoConfig(model=Model.SM),
)
obs.add_observable(Observables.BR_BS_MUMU, QCDOrder.NNLO)
print(obs.compute_observable(Observables.BR_BS_MUMU))

Create all configuration values before constructing the corresponding interface. The C++ object receives a converted copy of the Python configuration.

Command-line interface

Use hyperiso-ui for release regression tests, shell scripts and quick checks. The command groups expose Wilson, observable and statistical summaries without requiring a dedicated program.

hyperiso-ui observable summary \
--model SM \
--lha Assets/lha/si_input.flha \
--observables BR_Bs__mu_mu \
--order NNLO

Run hyperiso-ui <group> <command> --help for the complete option list. The CLI is the canonical interface for the frozen release suite because its text output can be normalized and compared directly.

Dash graphical interface

Use the Dash application for interactive exploration. It provides pages for configuration, Wilson coefficients, observables and statistical fits while calling the same Python/C++ backend.

The graphical statistical page validates selected fit parameters before running a fit or contour. Parameters to which all selected observables are numerically insensitive are rejected with a user-facing explanation rather than being sent to the minimizer as a flat direction.

Optional backends

Standard calculations do not require MARTY. To use generic-model matching, register a validated MARTY installation before init() and explicitly enable the MARTY mode in the configuration. The same rule applies in C++, Python and the GUI.

Interface consistency checklist

When comparing two interfaces, keep all of the following equal:

  • software commit or release tag;
  • model, contribution and QCD order;
  • LHA-family input and YAML overrides;
  • matching and low-energy scales;
  • selected observables and bins;
  • statistical mode, random seed, draw count and thread count.