From ebb5ba92e8e04309a269222c13b35b4940ae3ff1 Mon Sep 17 00:00:00 2001 From: Andrei Cuceu Date: Tue, 6 Feb 2024 13:57:25 +0100 Subject: [PATCH] Protect against priors for parameters that are not sampled --- vega/vega_interface.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/vega/vega_interface.py b/vega/vega_interface.py index 9d23099..91ea0c9 100644 --- a/vega/vega_interface.py +++ b/vega/vega_interface.py @@ -133,15 +133,6 @@ def __init__(self, main_path): 'beta_QSO' in self.sample_params['limits']): print('WARNING! Running on blind data and sampling bias_QSO and beta_QSO.') - # Get priors - self.priors = {} - if 'priors' in self.main_config: - self.priors = self._init_priors(self.main_config['priors']) - for param in self.priors.keys(): - if param not in self.sample_params['limits'].keys(): - print('Warning: Prior specified for a parameter that is' - ' not sampled!') - # Read the monte carlo parameters self.mc_config = None if 'monte carlo' in self.main_config: @@ -155,6 +146,18 @@ def __init__(self, main_path): self.mc_config['sample'] = self._read_sample(config) + # Get priors + self.priors = {} + if 'priors' in self.main_config: + self.priors = self._init_priors(self.main_config['priors']) + for param in self.priors.keys(): + param_is_not_sampled = param not in self.sample_params['limits'] + if self.mc_config is not None: + param_is_not_sampled &= param not in self.mc_config['sample']['limits'] + if param_is_not_sampled: + raise ValueError( + f'Prior specified for a parameter that is not sampled: {param}') + # Read the global covariance if global_cov_file is not None: self.read_global_cov(global_cov_file)