diff --git a/bilby/gw/likelihood.py b/bilby/gw/likelihood.py index 244bec16a97c01ce8badf8cf075cf6c5b1b47fef..03023895f7065e80048a26e38974a03922123521 100644 --- a/bilby/gw/likelihood.py +++ b/bilby/gw/likelihood.py @@ -137,7 +137,7 @@ class GravitationalWaveTransient(Likelihood): self.reference_ifo = None if self.time_marginalization: - self._check_prior_is_set(key='geocent_time') + self._check_marginalized_prior_is_set(key='geocent_time') self._setup_time_marginalization() priors['geocent_time'] = float(self.interferometers.start_time) if self.jitter_time: @@ -152,7 +152,7 @@ class GravitationalWaveTransient(Likelihood): self.jitter_time = False if self.phase_marginalization: - self._check_prior_is_set(key='phase') + self._check_marginalized_prior_is_set(key='phase') self._bessel_function_interped = None self._setup_phase_marginalization() priors['phase'] = float(0) @@ -160,7 +160,7 @@ class GravitationalWaveTransient(Likelihood): if self.distance_marginalization: self._lookup_table_filename = None - self._check_prior_is_set(key='luminosity_distance') + self._check_marginalized_prior_is_set(key='luminosity_distance') self._distance_array = np.linspace( self.priors['luminosity_distance'].minimum, self.priors['luminosity_distance'].maximum, int(1e4)) @@ -234,7 +234,11 @@ class GravitationalWaveTransient(Likelihood): complex_matched_filter_snr=complex_matched_filter_snr, d_inner_h_squared_tc_array=d_inner_h_squared_tc_array) - def _check_prior_is_set(self, key): + def _check_marginalized_prior_is_set(self, key): + if key in self.priors and self.priors[key].is_fixed: + raise ValueError( + "Cannot use marginalized likelihood for {}: prior is fixed" + .format(key)) if key not in self.priors or not isinstance( self.priors[key], Prior): logger.warning(