gwinferno.models.bsplines.separable.BSplineIndependentComponentMasses#

class BSplineIndependentComponentMasses(n_splines1, n_splines2, m1, m2, m1_inj, m2_inj, mmin1=2, mmax1=100, mmin2=2, mmax2=100, kwargs1={}, kwargs2={}, **kwargs)[source]#

Bases: object

A B-Spline model for the masses of the primary and secondary components assuming they are independently distributed, with an optional pairing term as a powerlaw in mass ratio,

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

where \(\mathbf{c}_1\) and \(\mathbf{c}_2\) are vectors of the n_splines1 and n_splines2 basis spline coefficients for the primary and secondary component masses, respectively.

Parameters:
n_splines1, n_splines2int

Number of basis functions, i.e., the number of degrees of freedom, of the primary and secondary component spline models.

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.

mmin1, mmax1float, default=2, 100

Minimum and maximum primary component mass.

mmin2, mmax2float, default=2, 100

Minimum and maximum secondary component mass.

kwargs1, kwargs2dict, optional

Additional keyword arguments to pass to the basis spline model for the primary and secondary components.

**kwargsdict, optional

Additional keyword arguments to pass to both basis spline models.

Methods

__call__(pcoefs, scoefs, 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:
pcoefs, scoefsarray_like

Spline coefficients for the (p)rimary and (s)econdary components.

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_splines1, n_splines2, m1, m2, m1_inj, m2_inj, mmin1=2, mmax1=100, mmin2=2, mmax2=100, kwargs1={}, kwargs2={}, **kwargs)[source]#