6#include <unordered_map>
52 default:
return "UNKNOWN";
67 <<
", bounds=(" << spec.
bounds.first <<
", " << spec.
bounds.second <<
")"
104 const auto& registry = printable.
registry;
106 os <<
"NuisanceRegistry{\n";
107 for (
const auto& [param_id, spec] : registry) {
108 os <<
" [" << param_id <<
"] -> " << spec <<
"\n";
Enumeration of supported one-dimensional marginal distribution types.
MarginalType
Supported marginal-distribution families.
@ GAUSSIAN
Symmetric Gaussian marginal.
@ HALF_GAUSSIAN
Asymmetric / half-Gaussian-like marginal (currently mapped to split Gaussian logic).
@ LIKELIHOOD
Discrete likelihood-based marginal built from weighted support points.
@ FLAT
Uniform (flat) marginal on a finite interval.
NuisanceRegistryPrintable as_printable(const NuisanceRegistry ®istry)
Wraps a registry for formatted stream output.
std::unordered_map< ParamId, NuisanceSpec > NuisanceRegistry
Registry of nuisance specifications indexed by parameter id.
const char * to_string(MarginalType type)
Converts a marginal type to a stable diagnostic string.
std::ostream & operator<<(std::ostream &os, const NuisanceSpec &spec)
Streams a compact representation of one nuisance specification.
Lightweight wrapper enabling pretty-printing of a nuisance registry.
const NuisanceRegistry & registry
Registry referenced for formatted output.
Specification of one nuisance parameter.
MarginalType marginal
Marginal model used for the nuisance constraint.
std::pair< double, double > bounds
Inclusive lower and upper bounds for the nuisance value.
ParamId param_id
Parameter identifier, usually an LHA block/code pair.
Composite identifier for a single parameter.