gwinferno.models.bsplines.separable.BSplineIIDComponentMasses#

class BSplineIIDComponentMasses(n_splines, m1, m2, m1_inj, m2_inj, mmin=2, mmax=100, **kwargs)[source]#

Bases: object

B-Spline model for the masses of both binary components assuming they are independently and identically distributed (IID), with an optional pairing term as a powerlaw in mass ratio.

\[p(m_1, m_2 \mid \mathbf{c}, \beta) = p(m_1 \mid \mathbf{c}) p(m_2 \mid \mathbf{c}) \left(\frac{m_2}{m_1}\right)^\beta,\]

where \(\mathbf{c}\) is a vector of the n_splines basis spline coefficients.

Parameters:
n_splinesint

Number of basis functions, i.e., the number of degrees of freedom, of the spline model.

m1, m2array_like

Primary and secondary component mass parameter estimation samples for basis evaluation.

m1_inj, m2_injarray_like

Primary and secondary component mass injection samples for basis evaluation.

mminfloat, default=2

Minimum component mass.

mmaxfloat, default=100

Maximum component mass.

**kwargsdict, optional

Additional keyword arguments to pass to the basis spline model.

Methods

__call__(coefs, beta=0, pe_samples=True)[source]#

Evaluate the joint probability density over the parameter estimation or injection samples. Use flag pe_samples to specify which samples are being evaluated (parameter estimation or injection).

Parameters:
coefsarray_like

Spline coefficients.

betafloat, default=0

Mass ratio powerlaw slope.

pe_samplesbool, default=True

If True, design matrix is evaluated across parameter estimation samples. If False, design matrix is evaluated across injection samples.

Returns:
array_like

Joint probability density for parameter estimation or injection samples.

__init__(n_splines, m1, m2, m1_inj, m2_inj, mmin=2, mmax=100, **kwargs)[source]#