Skip to content
Snippets Groups Projects
Commit 2cfa345f authored by Colm Talbot's avatar Colm Talbot
Browse files

add uniform in source frame prior

parent 4ad1c64c
No related branches found
No related tags found
No related merge requests found
......@@ -159,6 +159,22 @@ class UniformComovingVolume(Cosmological):
return zs, p_dz
class UniformSourceFrame(Cosmological):
"""
Prior for redshift which is uniform in comoving volume and source frame
time.
For redshift this is p(z) \propto dVc/dz 1 / (1 + z), where the extra 1+z
is due to doppler shifting of the source frame time.
"""
def _get_redshift_arrays(self):
zs = np.linspace(self._minimum['redshift'] * 0.99,
self._maximum['redshift'] * 1.01, 1000)
p_dz = self.cosmology.differential_comoving_volume(zs).value / (1 + zs)
return zs, p_dz
class AlignedSpin(Interped):
def __init__(self, a_prior=Uniform(0, 1), z_prior=Uniform(-1, 1),
......
......@@ -8,7 +8,7 @@ tilt_1 = Sine(name='tilt_1', periodic_boundary=False)
tilt_2 = Sine(name='tilt_2', periodic_boundary=False)
phi_12 = Uniform(name='phi_12', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
phi_jl = Uniform(name='phi_jl', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=1e3, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=1e2, maximum=1e3, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
......@@ -11,7 +11,7 @@ mass_ratio = Constraint(name='mass_ratio', minimum=0.125, maximum=1)
# symmetric_mass_ratio = Uniform(name='symmetric_mass_ratio', minimum=8 / 81, maximum=0.25, periodic_boundary=False)
chi_1 = bilby.gw.prior.AlignedSpin(name='chi_1', a_prior=Uniform(minimum=0, maximum=0.8), periodic_boundary=False)
chi_2 = bilby.gw.prior.AlignedSpin(name='chi_2', a_prior=Uniform(minimum=0, maximum=0.8), periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
......@@ -17,7 +17,7 @@ tilt_2 = Sine(name='tilt_2', periodic_boundary=False)
# cos_tilt_2 = Uniform(name='cos_tilt_2', minimum=-1, maximum=1, periodic_boundary=False)
phi_12 = Uniform(name='phi_12', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
phi_jl = Uniform(name='phi_jl', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
......@@ -11,7 +11,7 @@ mass_ratio = Constraint(name='mass_ratio', minimum=0.125, maximum=1)
# symmetric_mass_ratio = Uniform(name='symmetric_mass_ratio', minimum=0.22, maximum=0.25, periodic_boundary=False)
chi_1 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.05), z_prior=Uniform(-1, 1), name='chi_1', latex_label='$\\chi_1$', periodic_boundary=False)
chi_2 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.05), z_prior=Uniform(-1, 1), name='chi_2', latex_label='$\\chi_2$', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=10, maximum=500, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=10, maximum=500, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -17,7 +17,7 @@ tilt_2 = Sine(name='tilt_2', periodic_boundary=False)
# cos_tilt_2 = Uniform(name='cos_tilt_2', minimum=-1, maximum=1, periodic_boundary=False)
phi_12 = Uniform(name='phi_12', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
phi_jl = Uniform(name='phi_jl', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=1e2, maximum=5e3, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
......@@ -11,7 +11,7 @@ mass_ratio = Constraint(name='mass_ratio', minimum=0.125, maximum=1)
# symmetric_mass_ratio = Uniform(name='symmetric_mass_ratio', minimum=0.22, maximum=0.25, periodic_boundary=False)
chi_1 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.05), z_prior=Uniform(-1, 1), name='chi_1', latex_label='$\\chi_1$', periodic_boundary=False)
chi_2 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.05), z_prior=Uniform(-1, 1), name='chi_2', latex_label='$\\chi_2$', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=10, maximum=500, unit='Mpc', periodic_boundary=False)
luminosity_distance = bilby.gw.prior.UniformSourceFrame(name='luminosity_distance', minimum=10, maximum=500, unit='Mpc', periodic_boundary=False)
dec = Cosine(name='dec', periodic_boundary=False)
ra = Uniform(name='ra', minimum=0, maximum=2 * np.pi, periodic_boundary=True)
theta_jn = Sine(name='theta_jn', periodic_boundary=False)
......
......@@ -166,6 +166,7 @@ class TestPriorClasses(unittest.TestCase):
bilby.core.prior.Uniform(name='test', unit='unit', minimum=0, maximum=1),
bilby.core.prior.LogUniform(name='test', unit='unit', minimum=5e0, maximum=1e2),
bilby.gw.prior.UniformComovingVolume(name='redshift', minimum=0.1, maximum=1.0),
bilby.gw.prior.UniformSourceFrame(name='redshift', minimum=0.1, maximum=1.0),
bilby.core.prior.Sine(name='test', unit='unit'),
bilby.core.prior.Cosine(name='test', unit='unit'),
bilby.core.prior.Interped(name='test', unit='unit', xx=np.linspace(0, 10, 1000),
......@@ -566,7 +567,7 @@ class TestPriorDict(unittest.TestCase):
name='phi_12', minimum=0, maximum=2 * np.pi, periodic_boundary=True),
phi_jl=bilby.core.prior.Uniform(
name='phi_jl', minimum=0, maximum=2 * np.pi, periodic_boundary=True),
luminosity_distance=bilby.gw.prior.UniformComovingVolume(
luminosity_distance=bilby.gw.prior.UniformSourceFrame(
name='luminosity_distance', minimum=1e2,
maximum=5e3, unit='Mpc', periodic_boundary=False),
dec=bilby.core.prior.Cosine(name='dec', periodic_boundary=False),
......@@ -630,7 +631,7 @@ class TestPriorDict(unittest.TestCase):
name='phi_12', minimum=0, maximum=2 * np.pi, periodic_boundary=True),
phi_jl=bilby.core.prior.Uniform(
name='phi_jl', minimum=0, maximum=2 * np.pi, periodic_boundary=True),
luminosity_distance=bilby.gw.prior.UniformComovingVolume(
luminosity_distance=bilby.gw.prior.UniformSourceFrame(
name='luminosity_distance', minimum=1e2,
maximum=5e3, unit='Mpc', periodic_boundary=False),
dec=bilby.core.prior.Cosine(name='dec', periodic_boundary=False),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment