Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
Inputs, parameter blocks and precedence

HyperIso stores numerical inputs in typed blocks identified by a block name and one or more integer indices. The convention follows LHA/SLHA/FLHA whenever a standard identifier exists and uses project-defined IDs for additional data.

Input precedence

The runtime input system is layered from least to most specific:

  1. Distributed JSON defaults define the reference database shipped with the release.
  2. User YAML overrides replace selected central values, uncertainties or distribution metadata without editing the distributed assets.
  3. LHA-family input supplies the model-specific LHA, SLHA or FLHA values and has the highest priority for overlapping entries.
Do not edit the distributed JSON files for a scientific scan. Store changes in a YAML override and archive that file together with the LHA-family input.

Parameter identifiers

A parameter is addressed through a ParamId, which combines a parameter type, block name and integer indices. This identifier is used consistently by the core, observable dependencies and statistical layer.

Python example:

from pyhyperiso.Common import ParamId, ParameterType
f_bs = ParamId(ParameterType.FLAVOR, "FCONST", [531, 1])
Composite identifier for a single parameter.
Definition ParamID.h:57

C++ example:

ParamId f_bs(ParameterType::FLAVOR, "FCONST", {531, 1});

The parameter provider/setter examples show how to inspect and update values through the public API without reaching into the internal cache.

Path overrides and additional blocks

Before initialization, HyperisoMaster can:

  • register additional LHA block prototypes;
  • replace selected default JSON or user YAML paths;
  • set writable MARTY and spectrum-cache directories;
  • register external MARTY or SOFTSUSY installations.

Path values are validated before they are accepted. Default input paths must point to JSON files, user override paths must point to YAML files, and directory entries must exist or be creatable where documented.

LHA-family files

Use the input format that matches the workflow:

  • LHA for generic block-oriented numerical inputs;
  • SLHA for supersymmetric spectra and related parameters;
  • FLHA for flavour observables, uncertainties and correlations.

A spectrum already produced by an external program can be archived and reused. This is preferable for release regression tests because it removes dependence on the external generator version.

Database export

The initialized database can be exported for inspection or archival. In Python:

from pyhyperiso.Core import DatabaseWriter
writer = DatabaseWriter()
writer.write("database.json")
writer.write_blocks("inputs.yaml", ["SMINPUTS", "MASS"])

The output suffix selects JSON, YAML, LHA, SLHA or FLHA. Full and filtered examples are available in:

  • Hyperiso/Hyperiso/examples_python/Core/database_writer_example.py;
  • Hyperiso/Hyperiso/examples_cpp/Core/database_writer_example.cpp.

Reproducible input practice

For each scientific result, retain:

  • the software release tag;
  • the LHA/SLHA/FLHA input;
  • every YAML override;
  • the model and QCD-order configuration;
  • external spectrum files or the exact external-tool provenance;
  • random seeds and thread settings for Monte-Carlo calculations.

The frozen release suite described in Reproducibility and release references follows this model.

Project-defined FLHA observable types

HyperIso extends the FLHA observable-type field for observables that are not covered by the original convention. Version 1.0.2 uses the following canonical identifiers:

  • 92ij for polarization, where i=1 denotes a fermion (lepton), i=2 a longitudinally polarized vector, i=3 a transversely polarized vector, and j is the one-based position of the particle of interest in the ordered daughter list;
  • 932 for the transverse fraction F_T;
  • 933 for the angular coefficient alpha_K.

For example, the tau in B -> D(*) tau nu is the second daughter and therefore uses 9212; the longitudinal D* is the first daughter and therefore uses 9221. Output always uses these canonical identifiers. Input produced by versions 1.0.0–1.0.1 with the unambiguous legacy polarization identifiers 92015 or 921423 is translated automatically. The old alpha_K value 932 cannot be distinguished from a legitimate F_T record and must be changed explicitly to 933. See docs/flha_observable_ids.md in the source tree for the migration table.