From f029a3f57e04ec1a0f2e6b41561a3bca2f52fd1d Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Fri, 28 Oct 2022 12:50:09 -0700 Subject: [PATCH] remove unused methods/functions --- bilby/gw/detector/interferometer.py | 46 ------- bilby/gw/likelihood/relative.py | 5 - bilby/gw/source.py | 189 ---------------------------- 3 files changed, 240 deletions(-) diff --git a/bilby/gw/detector/interferometer.py b/bilby/gw/detector/interferometer.py index a49cdfa6e..f55c9f7a3 100644 --- a/bilby/gw/detector/interferometer.py +++ b/bilby/gw/detector/interferometer.py @@ -332,52 +332,6 @@ class Interferometer(object): return signal_ifo - def get_detector_response_relative_binning(self, waveform_polarizations, - parameters, bin_frequencies): - """Get the detector response for a particular waveform, where the frequencies - of the waveform polarizations are only the binning frequencies and we - assume that there is no frequency mask necessary for the data. Kind of - a hacky workaround. Should do something better probably. - - Parameters - ------- - waveform_polarizations: dict - polarizations of the waveform - parameters: dict - parameters describing position and time of arrival of the signal - - Returns - ------- - array_like: A 3x3 array representation of the detector response (signal observed in the interferometer) - """ - signal = {} - for mode in waveform_polarizations.keys(): - det_response = self.antenna_response( - parameters['ra'], - parameters['dec'], - parameters['geocent_time'], - parameters['psi'], mode) - - signal[mode] = waveform_polarizations[mode] * det_response - signal_ifo = sum(signal.values()) - - time_shift = self.time_delay_from_geocenter( - parameters['ra'], parameters['dec'], parameters['geocent_time']) - - # Be careful to first subtract the two GPS times which are ~1e9 sec. - # And then add the time_shift which varies at ~1e-5 sec - dt_geocent = parameters['geocent_time'] - self.strain_data.start_time - dt = dt_geocent + time_shift - - signal_ifo = signal_ifo * \ - np.exp(-1j * 2 * np.pi * dt * bin_frequencies) - - signal_ifo *= self.calibration_model.get_calibration_factor( - bin_frequencies, prefix='recalib_{}_'.format(self.name), - **parameters) - - return signal_ifo - def check_signal_duration(self, parameters, raise_error=True): """ Check that the signal with the given parameters fits in the data diff --git a/bilby/gw/likelihood/relative.py b/bilby/gw/likelihood/relative.py index f6fe1b848..32361b231 100644 --- a/bilby/gw/likelihood/relative.py +++ b/bilby/gw/likelihood/relative.py @@ -189,7 +189,6 @@ class RelativeBinningGravitationalWaveTransient(GravitationalWaveTransient): self.per_detector_fiducial_waveform_points[name] = ( self.per_detector_fiducial_waveforms[name][self.bin_inds[name]] ) - return def set_fiducial_waveforms(self, parameters): parameters["fiducial"] = 1 @@ -213,10 +212,6 @@ class RelativeBinningGravitationalWaveTransient(GravitationalWaveTransient): interferometer.get_detector_response( self.fiducial_polarizations, parameters)) parameters["fiducial"] = 0 - return - - def log_likelihood(self): - return self.log_likelihood_ratio() + self.noise_log_likelihood() def find_maximum_likelihood_parameters(self, parameter_bounds, iterations=1, maximization_kwargs=None): diff --git a/bilby/gw/source.py b/bilby/gw/source.py index affdbb6a6..1d415f518 100644 --- a/bilby/gw/source.py +++ b/bilby/gw/source.py @@ -882,195 +882,6 @@ def _base_waveform_frequency_sequence( return dict(plus=h_plus.data.data, cross=h_cross.data.data) -def lal_binary_black_hole_relativebinning( - frequency_array, mass_1, mass_2, luminosity_distance, a_1, tilt_1, - phi_12, a_2, tilt_2, phi_jl, theta_jn, phase, fiducial, **kwargs): - - waveform_kwargs = dict( - waveform_approximant='IMRPhenomPv2', reference_frequency=50.0, - minimum_frequency=20.0, maximum_frequency=frequency_array[-1], - catch_waveform_errors=False, pn_spin_order=-1, pn_tidal_order=-1, - pn_phase_order=-1, pn_amplitude_order=0) - waveform_kwargs.update(kwargs) - - if fiducial == 1: - return _base_lal_cbc_fd_waveform( - frequency_array=frequency_array, mass_1=mass_1, mass_2=mass_2, - luminosity_distance=luminosity_distance, theta_jn=theta_jn, phase=phase, - a_1=a_1, a_2=a_2, tilt_1=tilt_1, tilt_2=tilt_2, phi_jl=phi_jl, - phi_12=phi_12, lambda_1=0.0, lambda_2=0.0, **waveform_kwargs) - - else: - return _base_relativebinning_waveform( - frequency_array=frequency_array, mass_1=mass_1, mass_2=mass_2, - luminosity_distance=luminosity_distance, theta_jn=theta_jn, phase=phase, - a_1=a_1, a_2=a_2, tilt_1=tilt_1, tilt_2=tilt_2, phi_jl=phi_jl, - phi_12=phi_12, lambda_1=0.0, lambda_2=0.0, **waveform_kwargs) - - -def lal_binary_neutron_star_relativebinning( - frequency_array, mass_1, mass_2, luminosity_distance, a_1, tilt_1, - phi_12, a_2, tilt_2, phi_jl, lambda_1, lambda_2, theta_jn, phase, - fiducial, **kwargs): - - waveform_kwargs = dict( - waveform_approximant='IMRPhenomPv2_NRTidal', reference_frequency=50.0, - minimum_frequency=20.0, maximum_frequency=frequency_array[-1], - catch_waveform_errors=False, pn_spin_order=-1, pn_tidal_order=-1, - pn_phase_order=-1, pn_amplitude_order=0) - waveform_kwargs.update(kwargs) - - if fiducial == 1: - - return _base_lal_cbc_fd_waveform( - frequency_array=frequency_array, mass_1=mass_1, mass_2=mass_2, - luminosity_distance=luminosity_distance, theta_jn=theta_jn, phase=phase, - a_1=a_1, a_2=a_2, tilt_1=tilt_1, tilt_2=tilt_2, phi_12=phi_12, - phi_jl=phi_jl, lambda_1=lambda_1, lambda_2=lambda_2, **waveform_kwargs) - - else: - return _base_relativebinning_waveform( - frequency_array=frequency_array, mass_1=mass_1, mass_2=mass_2, - luminosity_distance=luminosity_distance, theta_jn=theta_jn, phase=phase, - a_1=a_1, a_2=a_2, tilt_1=tilt_1, tilt_2=tilt_2, phi_jl=phi_jl, - phi_12=phi_12, lambda_1=lambda_1, lambda_2=lambda_2, **waveform_kwargs) - - -def _base_relativebinning_waveform( - frequency_array, mass_1, mass_2, luminosity_distance, theta_jn, phase, - a_1=0.0, a_2=0.0, tilt_1=0.0, tilt_2=0.0, phi_12=0.0, phi_jl=0.0, - lambda_1=0.0, lambda_2=0.0, **waveform_kwargs): - """ Generate a cbc waveform model using lalsimulation - - Parameters - ---------- - frequency_array: array_like - The frequencies at which we want to calculate the strain. Ignored - for the relative binning model. - mass_1: float - The mass of the heavier object in solar masses - mass_2: float - The mass of the lighter object in solar masses - luminosity_distance: float - The luminosity distance in megaparsec - a_1: float - Dimensionless primary spin magnitude - tilt_1: float - Primary tilt angle - phi_12: float - Azimuthal angle between the component spins - a_2: float - Dimensionless secondary spin magnitude - tilt_2: float - Secondary tilt angle - phi_jl: float - Azimuthal angle between the total and orbital angular momenta - theta_jn: float - Orbital inclination - phase: float - The phase at coalescence - lambda_1: float - Tidal deformability of the more massive object - lambda_2: float - Tidal deformability of the less massive object - kwargs: dict - Optional keyword arguments - - Waveform arguments - ------------------ - Non-sampled extra data used in the source model calculation - frequency_bin_edges: np.array - - Returns - ------- - dict: A dictionary with the plus and cross polarisation strain modes - """ - import lal - import lalsimulation as lalsim - - waveform_approximant = waveform_kwargs['waveform_approximant'] - reference_frequency = waveform_kwargs['reference_frequency'] - catch_waveform_errors = waveform_kwargs['catch_waveform_errors'] - pn_spin_order = waveform_kwargs['pn_spin_order'] - pn_tidal_order = waveform_kwargs['pn_tidal_order'] - pn_phase_order = waveform_kwargs['pn_phase_order'] - pn_amplitude_order = waveform_kwargs['pn_amplitude_order'] - waveform_dictionary = waveform_kwargs.get( - 'lal_waveform_dictionary', lal.CreateDict() - ) - - frequency_bin_edges = waveform_kwargs['frequency_bin_edges'] - - approximant = lalsim_GetApproximantFromString(waveform_approximant) - - luminosity_distance = luminosity_distance * 1e6 * utils.parsec - mass_1 = mass_1 * utils.solar_mass - mass_2 = mass_2 * utils.solar_mass - - iota, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z = bilby_to_lalsimulation_spins( - theta_jn=theta_jn, phi_jl=phi_jl, tilt_1=tilt_1, tilt_2=tilt_2, - phi_12=phi_12, a_1=a_1, a_2=a_2, mass_1=mass_1, mass_2=mass_2, - reference_frequency=reference_frequency, phase=phase) - - lalsim.SimInspiralWaveformParamsInsertPNSpinOrder( - waveform_dictionary, int(pn_spin_order)) - lalsim.SimInspiralWaveformParamsInsertPNTidalOrder( - waveform_dictionary, int(pn_tidal_order)) - lalsim.SimInspiralWaveformParamsInsertPNPhaseOrder( - waveform_dictionary, int(pn_phase_order)) - lalsim.SimInspiralWaveformParamsInsertPNAmplitudeOrder( - waveform_dictionary, int(pn_amplitude_order)) - lalsim_SimInspiralWaveformParamsInsertTidalLambda1( - waveform_dictionary, lambda_1) - lalsim_SimInspiralWaveformParamsInsertTidalLambda2( - waveform_dictionary, lambda_2) - - for key, value in waveform_kwargs.items(): - func = getattr(lalsim, "SimInspiralWaveformParamsInsert" + key, None) - if func is not None: - func(waveform_dictionary, value) - - if waveform_kwargs.get('numerical_relativity_file', None) is not None: - lalsim.SimInspiralWaveformParamsInsertNumRelData( - waveform_dictionary, waveform_kwargs['numerical_relativity_file']) - - if ('mode_array' in waveform_kwargs) and waveform_kwargs['mode_array'] is not None: - mode_array = waveform_kwargs['mode_array'] - mode_array_lal = lalsim.SimInspiralCreateModeArray() - for mode in mode_array: - lalsim.SimInspiralModeArrayActivateMode(mode_array_lal, mode[0], mode[1]) - lalsim.SimInspiralWaveformParamsInsertModeArray(waveform_dictionary, mode_array_lal) - - try: - h_binned_plus, h_binned_cross = lalsim_SimInspiralChooseFDWaveformSequence( - phase, mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, - spin_2z, reference_frequency, luminosity_distance, iota, - waveform_dictionary, approximant, frequency_bin_edges) - except Exception as e: - if not catch_waveform_errors: - raise - else: - EDOM = (e.args[0] == 'Internal function call failed: Input domain error') - if EDOM: - failed_parameters = dict(mass_1=mass_1, mass_2=mass_2, - spin_1=(spin_1x, spin_2y, spin_1z), - spin_2=(spin_2x, spin_2y, spin_2z), - luminosity_distance=luminosity_distance, - iota=iota, phase=phase, - ) - logger.warning("Evaluating the waveform failed with error: {}\n".format(e) + - "The parameters were {}\n".format(failed_parameters) + - "Likelihood will be set to -inf.") - return None - else: - raise - - waveform_polarizations = dict( - plus=h_binned_plus.data.data, cross=h_binned_cross.data.data) - - return waveform_polarizations - - def sinegaussian(frequency_array, hrss, Q, frequency, **kwargs): r""" A frequency-domain sine-Gaussian burst source model. -- GitLab