GW Source Tools

Waveform Base Classes

These waveform classes are used as base objects for specifically designed waveform tools in lisatools.sources.

class lisatools.sources.waveformbase.SNRWaveform

Bases: ABC

Base class for a waveform built in a simpler fashion for SNR calculations.

property dt: float

Timestep in seconds.

property f_arr: ndarray

Frequency array.

property df: float

Frequency bin size.

class lisatools.sources.waveformbase.AETTDIWaveform

Bases: ABC

Base class for an AET TDI Waveform.

property dt: float

Timestep in seconds.

property f_arr: ndarray

Frequency array.

property df: float

Frequency bin size.

BBHs

GBs

EMRIs

Calculation Controllers

These classes are used as simplified wrappers for investigative computations like SNR and covariance.

class lisatools.sources.CalculationController(aet_template_gen: ~lisatools.sources.waveformbase.SNRWaveform | ~lisatools.sources.waveformbase.AETTDIWaveform, model: ~lisatools.detector.LISAModel, psd_kwargs: dict, Tobs: float, dt: float, psd: ~lisatools.sensitivity.Sensitivity = <class 'lisatools.sensitivity.A1TDISens'>)

Bases: object

Wrapper class to controll investigative computations.

Parameters:
  • aet_template_gen – Template waveform generator.

  • model – Model for LISA.

  • psd_kwargs – psd_kwargs for lisatools.sensitivity.get_sensitivity().

  • Tobs – Observation time in years.

  • dt – Timestep in seconds.

  • psd – Sensitivity curve type to use. Default is A1TDISens because we ignore T in these simplified calculations and the A and E sensitivities are equivalent.

property parameter_transforms: TransformContainer

Transform parameters from sampling basis to waveform basis.

get_snr(*params: Any, **kwargs: Any) float

Compute the SNR.

Parameters:
  • *params – Parameters to go into waveform generator.

  • **kwargs – Kwargs for waveform generator.

Returns:

SNR.

class lisatools.sources.BBHCalculationController(*args: Any, **kwargs: Any)

Bases: CalculationController

Calculation controller for BBHs.

Parameters:
get_snr(*args: Any, **kwargs: Any) float

Compute the SNR.

Parameters:
  • *params – Parameters to go into waveform generator.

  • **kwargs – Kwargs for waveform generator.

Returns:

SNR.

get_cov(*params: Any, more_accurate: bool = False, eps: float = 1e-09, deriv_inds: ndarray = None, precision: bool = False, **kwargs: Any) Tuple[ndarray, ndarray]

Get covariance matrix.

Parameters:
  • *params – Parameters for BBH. Must include f_ref.

  • more_accurate – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision – If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs – Kwargs for waveform generation.

Returns:

Parameters and covariance matrix.

class lisatools.sources.GBCalculationController(*args: Any, **kwargs: Any)

Bases: CalculationController

Calculation controller for GBs.

Parameters:
get_cov(*params: ndarray | list, more_accurate: bool = False, eps: float = 1e-09, deriv_inds: ndarray = None, precision: bool = False, **kwargs: Any) Tuple[ndarray, ndarray]

Get covariance matrix.

Parameters:
  • *params – Parameters for GB. Must include fddot.

  • more_accurate – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision

    If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs – Kwargs for waveform generation.

Returns:

Parameters and covariance matrix.

get_snr(*args: Any, **kwargs: Any) float

Compute the SNR.

Parameters:
  • *params – Parameters to go into waveform generator.

  • **kwargs – Kwargs for waveform generator.

Returns:

SNR.

class lisatools.sources.EMRICalculationController(*args: Any, **kwargs: Any)

Bases: CalculationController

Calculation controller for EMRIs.

Parameters:
get_cov(*params: ndarray | list, more_accurate: bool = False, eps: float = 1e-09, deriv_inds: ndarray = None, precision: bool = False, **kwargs: Any) Tuple[ndarray, ndarray]

Get covariance matrix.

Parameters:
  • *params – Parameters for EMRIs.

  • more_accurate – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision

    If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs – Kwargs for waveform generation.

Returns:

Parameters and covariance matrix.

Default Response Settings for GW tools

class lisatools.sources.defaultresponse.DefaultResponseKwargs

Bases: object

Default response kwargs

Default response kwargs for fastlisaresponse.ResponseWrapper.

t0=30000.0 order=25 tdi="1st generation" tdi_chan="AET" orbits=EqualArmlengthOrbits()

classmethod get_dict() dict

Return default dictionary