diff --git a/bilby/gw/prior.py b/bilby/gw/prior.py index cd2fcd92e7e5f710e8e2e5f8e5f16c8b79baa2ca..2ff4128eebd60cae69c742352ba6a27627aad065 100644 --- a/bilby/gw/prior.py +++ b/bilby/gw/prior.py @@ -193,7 +193,7 @@ class AlignedSpin(Interped): class BBHPriorDict(PriorDict): - def __init__(self, dictionary=None, filename=None): + def __init__(self, dictionary=None, filename=None, aligned_spin=False): """ Initialises a Prior set for Binary Black holes Parameters @@ -203,8 +203,13 @@ class BBHPriorDict(PriorDict): filename: str, optional See superclass """ + basedir = os.path.join(os.path.dirname(__file__), 'prior_files') if dictionary is None and filename is None: - filename = os.path.join(os.path.dirname(__file__), 'prior_files', 'binary_black_holes.prior') + fname = 'binary_black_holes.prior' + if aligned_spin: + fname = 'aligned_spin_' + fname + logger.info('Using aligned spin prior') + filename = os.path.join(basedir, fname) logger.info('No prior given, using default BBH priors in {}.'.format(filename)) elif filename is not None: if not os.path.isfile(filename): @@ -257,7 +262,7 @@ class BBHPriorDict(PriorDict): class BNSPriorDict(PriorDict): - def __init__(self, dictionary=None, filename=None): + def __init__(self, dictionary=None, filename=None, aligned_spin=True): """ Initialises a Prior set for Binary Neutron Stars Parameters @@ -267,6 +272,8 @@ class BNSPriorDict(PriorDict): filename: str, optional See superclass """ + if not aligned_spin: + logger.warning('Non-aligned spins not yet supported for BNS.') if dictionary is None and filename is None: filename = os.path.join(os.path.dirname(__file__), 'prior_files', 'binary_neutron_stars.prior') logger.info('No prior given, using default BNS priors in {}.'.format(filename)) diff --git a/bilby/gw/prior_files/aligned_spin_binary_black_holes.prior b/bilby/gw/prior_files/aligned_spin_binary_black_holes.prior new file mode 100644 index 0000000000000000000000000000000000000000..52649990cf3ba75125caa21572efa01fcf9ddf84 --- /dev/null +++ b/bilby/gw/prior_files/aligned_spin_binary_black_holes.prior @@ -0,0 +1,19 @@ +# These are the default priors we use for BBH systems. +# Note that you may wish to use more specific mass and distance parameters. +# These commands are all known to bilby.gw.prior. +# Lines beginning "#" are ignored. +mass_1 = Uniform(name='mass_1', minimum=5, maximum=100, unit='$M_{\\odot}$') +mass_2 = Uniform(name='mass_2', minimum=5, maximum=100, unit='$M_{\\odot}$') +# chirp_mass = Uniform(name='chirp_mass', minimum=25, maximum=100, unit='$M_{\\odot}$') +# total_mass = Uniform(name='total_mass', minimum=10, maximum=200, unit='$M_{\\odot}$') +# mass_ratio = Uniform(name='mass_ratio', minimum=0.125, maximum=1) +# symmetric_mass_ratio = Uniform(name='symmetric_mass_ratio', minimum=8 / 81, maximum=0.25) +chi_1 = bilby.gw.prior.AlignedSpin(name='chi_1', a_prior=Uniform(minimum=0, maximum=0.8)) +chi_2 = bilby.gw.prior.AlignedSpin(name='chi_2', a_prior=Uniform(minimum=0, maximum=0.8)) +luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc') +dec = Cosine(name='dec') +ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi) +theta_jn = Sine(name='theta_jn') +# cos_theta_jn = Uniform(name='cos_theta_jn', minimum=-1, maximum=1) +psi = Uniform(name='psi', minimum=0, maximum=np.pi) +phase = Uniform(name='phase', minimum=0, maximum=2 * np.pi)