1#ifndef NUISANCEREADER_H
2#define NUISANCEREADER_H
7#include <unordered_set>
8#include <initializer_list>
16namespace fs = std::filesystem;
60 explicit NuisanceReader(std::shared_ptr<INuisancePathsProvider> paths_provider);
104 std::shared_ptr<INuisancePathsProvider> paths_provider_;
117 void merge_file_into_registry(
const fs::path& path,
NuisanceRegistry& registry)
const;
158 std::initializer_list<const char*> candidate_keys);
169 static std::string value_to_string(
const DBNode::Value& value,
170 const std::string& field_name);
179 static std::string value_to_code_string(
const DBNode::Value& value,
180 const std::string& field_name);
192 const std::string& field_name);
203 static MarginalType parse_marginal_type(std::string raw);
211 static std::string normalise(std::string s);
Factory for creating IDBNodeProvider instances from a file path.
Hierarchical key–value tree with JSON/YAML serialization.
Interface for locating nuisance-parameter configuration files.
Interface for loading nuisance-parameter specifications.
MarginalType
Supported marginal-distribution families.
Data structures for nuisance-parameter specifications.
std::unordered_map< ParamId, NuisanceSpec > NuisanceRegistry
Registry of nuisance specifications indexed by parameter id.
std::variant< BlockName, int, double, bool, std::shared_ptr< DBNode >, std::vector< std::shared_ptr< DBNode > > > Value
Variant type used to store values in the tree.
Abstract interface for nuisance specification loaders.
Loads and parses nuisance-parameter specifications.
fs::path default_path() const
Returns the configured default nuisance-file path.
NuisanceRegistry load() const
Loads the merged nuisance registry.
NuisanceRegistry load_default() const override
Loads the built-in nuisance-parameter registry.
fs::path user_path() const
Returns the configured user nuisance-file path.
NuisanceRegistry load_user() const override
Loads the nuisance registry from the configured user source.
Specification of one nuisance parameter.
Composite identifier for a single parameter.