From ff1892dbd69886acb36d0c7c05d2493f44317e31 Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Thu, 28 Feb 2019 00:28:55 +1100 Subject: [PATCH] make result save original prior after using marginalisation --- bilby/core/sampler/__init__.py | 2 +- bilby/gw/conversion.py | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/bilby/core/sampler/__init__.py b/bilby/core/sampler/__init__.py index 147d95c5d..0ed5291ac 100644 --- a/bilby/core/sampler/__init__.py +++ b/bilby/core/sampler/__init__.py @@ -182,7 +182,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', result.injection_parameters = conversion_function( result.injection_parameters) - result.samples_to_posterior(likelihood=likelihood, priors=priors, + result.samples_to_posterior(likelihood=likelihood, priors=result.priors, conversion_function=conversion_function) if save == 'hdf5': result.save_to_file(extension='hdf5') diff --git a/bilby/gw/conversion.py b/bilby/gw/conversion.py index 1f4df1280..dd63232fd 100644 --- a/bilby/gw/conversion.py +++ b/bilby/gw/conversion.py @@ -652,15 +652,21 @@ def _generate_all_cbc_parameters(sample, defaults, base_conversion, except (KeyError, AttributeError): default = waveform_defaults[key] output_sample[key] = default - logger.warning('Assuming {} = {}'.format(key, default)) + logger.debug('Assuming {} = {}'.format(key, default)) output_sample = fill_from_fixed_priors(output_sample, priors) output_sample, _ = base_conversion(output_sample) - output_sample = generate_mass_parameters(output_sample) - output_sample = generate_spin_parameters(output_sample) if likelihood is not None: generate_posterior_samples_from_marginalized_likelihood( samples=output_sample, likelihood=likelihood) + if priors is not None: + for par, name in zip( + ['distance', 'phase', 'time'], + ['luminosity_distance', 'phase', 'geocent_time']): + if getattr(likelihood, '{}_marginalization'.format(par), False): + priors[name] = likelihood.priors[name] + output_sample = generate_mass_parameters(output_sample) + output_sample = generate_spin_parameters(output_sample) output_sample = generate_source_frame_parameters(output_sample) compute_snrs(output_sample, likelihood) return output_sample @@ -780,7 +786,7 @@ def generate_spin_parameters(sample): Add all spin parameters to the data frame/dictionary. We add: - cartestian spin components, chi_eff, chi_p cos tilt 1, cos tilt 2 + cartesian spin components, chi_eff, chi_p cos tilt 1, cos tilt 2 Parameters ---------- @@ -864,7 +870,6 @@ def generate_component_spins(sample): output_sample['spin_2z'] = output_sample['chi_2'] else: logger.warning("Component spin extraction failed.") - logger.warning(output_sample.keys()) return output_sample @@ -1016,15 +1021,15 @@ def generate_posterior_samples_from_marginalized_likelihood( signal_polarizations = \ likelihood.waveform_generator.frequency_domain_strain( sample) - if likelihood.time_marginalization: + if getattr(likelihood, 'time_marginalization', False): sample = generate_time_sample_from_marginalized_likelihood( sample=sample, likelihood=likelihood, signal_polarizations=signal_polarizations) - if likelihood.distance_marginalization: + if getattr(likelihood, 'distance_marginalization', False): sample = generate_distance_sample_from_marginalized_likelihood( sample=sample, likelihood=likelihood, signal_polarizations=signal_polarizations) - if likelihood.phase_marginalization: + if getattr(likelihood, 'phase_marginalization', False): sample = generate_phase_sample_from_marginalized_likelihood( sample=sample, likelihood=likelihood, signal_polarizations=signal_polarizations) -- GitLab