GW Methods

This page contains the documentation for ‘GW_Methods.py’. This module provides functions needed for gravitational wave generation and simulations. The gravitational wave parameters are sampled from distributions based off of the findings of the GWTC-3 populations paper (arXiv:2111.03634).

Function Definitions

GlitchPop.GW_Methods.add_gw(ts, gw_waveform, t_merge)

Injects a gravitational wave signal into a GWpy time series.

Parameters:

  • ts (gwpy.timeseries.TimeSeries) - Time series to inject the GW signal into

  • gw_waveform (pycbc.types.timeseries.TimeSeries) - Time series containing the GW waveform

  • t_merge (float) - Merger time of the GW signal

Returns:

  • gwpy.timeseries.TimeSeries - Original time series with the injected GW signal

GlitchPop.GW_Methods.get_projection(hp, hc, ifo, merger_time, ra, dec, polarization)

Projects the GW signal onto the interferometer’s location.

Parameters:

  • hp (pycbc.types.timeseries.TimeSeries) - Plus polarization of the GW waveform

  • hc (pycbc.types.timeseries.TimeSeries) - Cross polarization of the GW waveform

  • ifo (string) - Interferometer abbreviation

  • merger_time (float) - Merger time of the GW signal

  • ra (float) - Right ascension of the signal

  • dec (float) - Declination of the signal

  • polarization (float) - Polarization angle

Returns:

  • pycbc.types.timeseries.TimeSeries - h(t) strain with the GW as it would appear in the interferometer

GlitchPop.GW_Methods.get_BHBH(mass1, mass2, spin1z, spin1x, spin1y, spin2z, spin2x, spin2y, distance, eccentricity, inclination, coa_phase, f_lower, window)

Generates a BHBH waveform given signal parameters.

Parameters:

  • mass1 (float) - Mass (in solar masses) of the first BH

  • mass2 (float) - Mass (in solar masses) of the second BH

  • spin1z (float) - z spin of the first BH

  • spin1x (float) - x spin of the first BH

  • spin1y (float) - y spin of the first BH

  • spin2z (float) - z spin of the second BH

  • spin2x (float) - x spin of the second BH

  • spin2y (float) - y spin of the second BH

  • distance (float) - Luminosity distance in Mpc

  • eccentricity (float) - Eccentricity of orbit

  • inclination (float) - Inclination angle

  • coa_phase (float) - Coalescence phase

  • f_lower (float) - Starting frequency of the CBC signal

  • window (bool) - Optional argument to apply a Tukey window to waveforms

Returns:

  • pycbc.types.timeseries.TimeSeries - Plus polarization of the waveform

  • pycbc.types.timeseries.TimeSeries - Cross polarization of the waveform

GlitchPop.GW_Methods.get_NSBH(mass1, mass2, spin1z, spin1x, spin1y, spin2z, spin2x, spin2y, distance, eccentricity, inclination, coa_phase, lambda2, f_lower)

Generates a NSBH waveform given signal parameters.

Parameters:

  • mass1 (float) - Mass (in solar masses) of the BH

  • mass2 (float) - Mass (in solar masses) of the NS

  • spin1z (float) - z spin of the BH

  • spin1x (float) - x spin of the BH

  • spin1y (float) - y spin of the BH

  • spin2z (float) - z spin of the NS

  • spin2x (float) - x spin of the NS

  • spin2y (float) - y spin of the NS

  • distance (float) - Luminosity distance in Mpc

  • eccentricity (float) - Eccentricity of orbit

  • inclination (float) - Inclination angle

  • coa_phase (float) - Coalescence phase

  • lambda2 (float) - Dimensionless tidal deformability parameter of the NS

  • f_lower (float) - Starting frequency of the CBC signal

Returns:

  • pycbc.types.timeseries.TimeSeries - Plus polarization of the waveform

  • pycbc.types.timeseries.TimeSeries - Cross polarization of the waveform

GlitchPop.GW_Methods.get_BNS(mass1, mass2, spin1z, spin1x, spin1y, spin2z, spin2x, spin2y, distance, eccentricity, inclination, coa_phase, lambda1, lambda2, f_lower)

Generates a BNS waveform given signal parameters.

Parameters:

  • mass1 (float) - Mass (in solar masses) of the first NS

  • mass2 (float) - Mass (in solar masses) of the second NS

  • spin1z (float) - z spin of the first NS

  • spin1x (float) - x spin of the first NS

  • spin1y (float) - y spin of the first NS

  • spin2z (float) - z spin of the second NS

  • spin2x (float) - x spin of the second NS

  • spin2y (float) - y spin of the second NS

  • distance (float) - Luminosity distance in Mpc

  • eccentricity (float) - Eccentricity of orbit

  • inclination (float) - Inclination angle

  • coa_phase (float) - Coalescence phase

  • lambda1 (float) - Dimensionless tidal deformability parameter of the first NS

  • lambda2 (float) - Dimensionless tidal deformability parameter of the second NS

  • f_lower (float) - Starting frequency of the CBC signal

Returns:

  • pycbc.types.timeseries.TimeSeries - Plus polarization of the waveform

  • pycbc.types.timeseries.TimeSeries - Cross polarization of the waveform

GlitchPop.GW_Methods.ns_mass()

Randomly generates an individual neutron star’s mass from a distribution.

Returns:

  • float - NS mass in solar masses

GlitchPop.GW_Methods.bh_mass2(m1)

Randomly generates the secondary mass of a BHBH system using a mass fraction.

Parameters:

  • m1 (float) - Mass (in solar masses) of the first BH

Returns:

  • float - Second BH mass in solar masses

GlitchPop.GW_Methods.bhbh_mass()

Randomly generates primary and secondary BH masses from a distribution.

Returns:

  • float - Primary BH mass in solar masses

  • float - Secondary BH mass in solar masses

GlitchPop.GW_Methods.nsbh_mass()

Randomly generates NSBH masses from a distribution.

Returns:

  • float - BH mass in solar masses

  • float - NS mass in solar masses

GlitchPop.GW_Methods.rand_gw_params(signal, seed, precession)

Randomly generates gravitational wave parameters needed for waveform generation based on GWTC-3 populations.

Parameters:

  • signal (string) - Abbreviation of the CBC signal

  • seed (NoneType or int) - Optional random seed

  • precession (bool) - Optional argument to enable x & y spins

Returns:

  • list - List of floats containing parameters for the GW signal

GlitchPop.GW_Methods.merger_time(ifo)

Analytically finds the merger time of a GW signal from extrema.

Parameters:

  • ifo (pycbc.types.timeseries.TimeSeries) - GW strain as it would appear in the interferometer

Returns:

  • float - Merger time of GW signal

GlitchPop.GW_Methods.get_gw(probs=[1/3, 1/3, 1/3], precession=False)

Randomly generates GW signal and parameters.

Parameters:

  • probs (list) - List of floats containing probabilities of generating each type of CBC signal (BHBH, NSBH, BNS) which sum to 1

  • precession (bool) - Optional argument to enable x & y spins

Returns:

  • pycbc.types.timeseries.TimeSeries - Plus and cross polarization of waveform

  • list - List of GW parameters

  • string - Type of CBC signal

GlitchPop.GW_Methods.gw_location(mu=10e-5, duration=100)

Randomly generates number and location of GW signals using a Poissonian distribution.

Parameters:

  • mu (float) - Poisson rate parameter; average number of GWs per second

  • duration (float) - Duration of time series

Returns:

  • np.array - Merger times of CBC signals