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

Merge branch 'uniform-comoving-volume-time' into 'master'

add uniform in source frame prior

See merge request lscsoft/bilby!456
parents 4ad1c64c 2cfa345f
No related branches found
No related tags found
1 merge request!456add uniform in source frame prior
Pipeline #59595 passed
......@@ -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