Skip to content
Snippets Groups Projects

Determine reference_chirp_mass for MBGravitationalWaveTransient from prior when it is not specified

Merged Soichiro Morisaki requested to merge soichiro/bilby:default_reference_chirp_mass into master
All threads resolved!
Files
2
@@ -21,8 +21,9 @@ class MBGravitationalWaveTransient(GravitationalWaveTransient):
A list of `bilby.detector.Interferometer` instances - contains the detector data and power spectral densities
waveform_generator: `bilby.waveform_generator.WaveformGenerator`
An object which computes the frequency-domain strain of the signal, given some set of parameters
reference_chirp_mass: float
A reference chirp mass for determining the frequency banding
reference_chirp_mass: float, optional
A reference chirp mass for determining the frequency banding. This is set to prior minimum of chirp mass if
not specified. Hence this option or prior containing the key `chirp_mass` is required.
highest_mode: int, optional
The maximum magnetic number of gravitational-wave moments. Default is 2
linear_interpolation: bool, optional
@@ -72,10 +73,11 @@ class MBGravitationalWaveTransient(GravitationalWaveTransient):
"""
def __init__(
self, interferometers, waveform_generator, reference_chirp_mass, highest_mode=2, linear_interpolation=True,
accuracy_factor=5, time_offset=None, delta_f_end=None, maximum_banding_frequency=None,
minimum_banding_duration=0., distance_marginalization=False, phase_marginalization=False, priors=None,
distance_marginalization_lookup_table=None, reference_frame="sky", time_reference="geocenter"
self, interferometers, waveform_generator, reference_chirp_mass=None, highest_mode=2,
linear_interpolation=True, accuracy_factor=5, time_offset=None, delta_f_end=None,
maximum_banding_frequency=None, minimum_banding_duration=0., distance_marginalization=False,
phase_marginalization=False, priors=None, distance_marginalization_lookup_table=None,
reference_frame="sky", time_reference="geocenter"
):
super(MBGravitationalWaveTransient, self).__init__(
interferometers=interferometers, waveform_generator=waveform_generator, priors=priors,
@@ -108,7 +110,21 @@ class MBGravitationalWaveTransient(GravitationalWaveTransient):
if isinstance(reference_chirp_mass, int) or isinstance(reference_chirp_mass, float):
self._reference_chirp_mass = reference_chirp_mass
else:
raise TypeError("reference_chirp_mass must be a number")
logger.warning(
"No int or float number has been passed to reference_chirp_mass. "
"Checking prior minimum of chirp mass ..."
)
if self.priors is not None and "chirp_mass" in self.priors:
self._reference_chirp_mass = self.priors["chirp_mass"].minimum
logger.warning(
"reference_chirp_mass is automatically set to prior minimum of chirp mass: "
f"{self.priors['chirp_mass'].minimum}."
)
else:
raise AttributeError(
"prior containing `chirp_mass` is required when no int or float number has been passed to"
" reference_chirp_mass."
)
@property
def highest_mode(self):
Loading