1#ifndef HYPERISO_DEFAULTPATHSPROVIDER_H
2#define HYPERISO_DEFAULTPATHSPROVIDER_H
20 fs::path
assets_root()
const override {
return fs::path(project_assets_root.data()); }
44 if (
const char* env = std::getenv(
"HYPERISO_CACHE_ROOT")) {
45 if (*env)
return fs::path(env);
48 if (
const char* xdg = std::getenv(
"XDG_CACHE_HOME")) {
49 if (*xdg)
return fs::path(xdg) /
"pyhyperiso";
52 if (
const char* home = std::getenv(
"HOME")) {
53 if (*home)
return fs::path(home) /
".cache" /
"pyhyperiso";
56 return fs::temp_directory_path() /
"pyhyperiso";
69 : overrides(
std::move(path_overrides)) {}
140 std::map<APIPath, fs::path> overrides;
142 fs::path get_or_default(
APIPath path_name,
const fs::path& default_path)
const {
143 const auto it = overrides.find(path_name);
144 return it == overrides.end() ? default_path : it->second;
APIPath
Enumerates the filesystem paths exposed through the public API.
@ USER_OBS_VALUES
YAML/YML file containing user observable overrides.
@ DEFAULT_NUISANCES
JSON file containing default nuisance definitions.
@ USER_OBS_CORR
YAML/YML file containing user observable correlation overrides.
@ USER_NUISANCES
YAML/YML file containing user nuisance overrides.
@ TEMPLATE_DIR
Read-only directory containing generated-code templates.
@ DEFAULT_OBS_CORR
JSON file containing default observable correlations.
@ USER_PARAM_CORR
YAML/YML file containing user parameter correlation overrides.
@ DEFAULT_PARAM_VALUES
JSON file containing default parameter values.
@ USER_SM_PARAMS
YAML/YML file containing user SM parameter overrides.
@ DEFAULT_OBS_VALUES
JSON file containing default observable values.
@ MARTY_TEMP_DIR
Writable cache directory used for generated MARTY files.
@ PARAM_MAPPING_DIR
Read-only directory containing MARTY/Hyperiso parameter mappings.
@ SPECTRUM_DIR
Writable cache directory used for generated spectrum files.
@ USER_FLAVOR_PARAMS
YAML/YML file containing user flavor parameter overrides.
@ ASSETS_ROOT
Root directory for HyperISO read-only assets.
@ DEFAULT_PARAM_CORR
JSON file containing default parameter correlations.
@ USER_DECAY_PARAMS
YAML/YML file containing user decay parameter overrides.
Hash specialization for SymbolId<Tag>.
static const fs::path marty_mapping_dir
static const fs::path template_dir
static const fs::path spectrum_dir
static const fs::path marty_temp_dir
Default implementation of IPathsProvider.
fs::path assets_root() const override
Root directory for all read-only assets.
fs::path template_dir_path() const override
fs::path default_param_values() const override
fs::path default_obs_values() const override
static fs::path default_cache_root()
fs::path user_obs_corr() const override
fs::path user_param_corr() const override
fs::path default_obs_corr() const override
fs::path user_nuisances() const override
fs::path user_flavor_params() const override
fs::path default_param_corr() const override
fs::path param_mapping_dir_path() const override
fs::path user_decay_params() const override
fs::path spectrum_dir() const override
fs::path user_obs_values() const override
fs::path marty_temp_dir() const override
fs::path user_sm_params() const override
fs::path default_nuisances() const override
Interface providing all filesystem paths used by HyperISO.
Default path provider with validated user overrides.
fs::path template_dir_path() const override
fs::path user_obs_values() const override
OverridePathsProvider(std::map< APIPath, fs::path > path_overrides)
fs::path user_param_corr() const override
fs::path default_obs_values() const override
fs::path default_param_values() const override
fs::path default_nuisances() const override
fs::path user_nuisances() const override
fs::path user_sm_params() const override
fs::path assets_root() const override
Root directory for all read-only assets.
fs::path param_mapping_dir_path() const override
fs::path user_flavor_params() const override
fs::path spectrum_dir() const override
fs::path default_obs_corr() const override
fs::path user_obs_corr() const override
fs::path default_param_corr() const override
fs::path user_decay_params() const override
fs::path marty_temp_dir() const override