jesterTOV.inference.likelihoods.nicer.NICERKDELikelihood#

class NICERKDELikelihood(
psr_name,
amsterdam_samples_file,
maryland_samples_file,
penalty_value=-99999.0,
N_masses_evaluation=20,
N_masses_batch_size=10,
)[source]#

Bases: LikelihoodBase

NICER likelihood using KDE (Kernel Density Estimation) approach.

This is the original NICER likelihood implementation that uses KDE on M-R posterior samples. For the flow-based version, see NICERLikelihood.

TODO: Generalize to e.g. only one group, weights between different hotspot models,…

This likelihood loads posterior samples from Amsterdam and Maryland groups, constructs KDEs, and evaluates the likelihood by: 1. Sampling masses from the NICER posterior samples 2. Interpolating radius from the EOS for those masses 3. Evaluating the KDE log probability at (mass, radius) 4. Averaging over all samples

Parameters:
  • psr_name (str) – Pulsar name (e.g., “J0030”, “J0740”)

  • amsterdam_samples_file (str) – Path to npz file with Amsterdam group posterior samples Expected to contain ‘mass’ (Msun) and ‘radius’ (km) arrays

  • maryland_samples_file (str) – Path to npz file with Maryland group posterior samples Expected to contain ‘mass’ (Msun) and ‘radius’ (km) arrays

  • penalty_value (float, optional) – Penalty value for samples where mass exceeds Mtov (default: -99999.0)

  • N_masses_evaluation (int, optional) – Number of mass samples per likelihood evaluation (default: 20)

  • N_masses_batch_size (int, optional) – Batch size for processing mass samples (default: 10)

Variables:
  • psr_name (str) – Pulsar name

  • penalty_value (float) – Penalty value for samples where mass exceeds Mtov

  • N_masses_evaluation (int) – Number of mass samples per likelihood evaluation

  • N_masses_batch_size (int) – Batch size for processing mass samples

  • amsterdam_masses (Float[Array, " n_amsterdam"]) – Mass samples from Amsterdam group

  • maryland_masses (Float[Array, " n_maryland"]) – Mass samples from Maryland group

  • amsterdam_posterior (gaussian_kde) – KDE of Amsterdam (mass, radius) posterior

  • maryland_posterior (gaussian_kde) – KDE of Maryland (mass, radius) posterior

__init__(
psr_name,
amsterdam_samples_file,
maryland_samples_file,
penalty_value=-99999.0,
N_masses_evaluation=20,
N_masses_batch_size=10,
)[source]#

Methods

__init__(psr_name, amsterdam_samples_file, ...)

evaluate(params)

Evaluate log likelihood for given EOS parameters

Attributes

N_masses_batch_size: int#
N_masses_evaluation: int#
amsterdam_masses: Float[Array, 'n_amsterdam']#
amsterdam_posterior: gaussian_kde#
evaluate(params)[source]#

Evaluate log likelihood for given EOS parameters

Parameters:

params (dict[str, Float | Array]) – Must contain: - ‘_random_key’: Random seed for mass sampling (cast to int64) - ‘masses_EOS’: Array of neutron star masses from EOS - ‘radii_EOS’: Array of neutron star radii from EOS

Return type:

Float

Returns:

Float – Log likelihood value for this NICER observation

maryland_masses: Float[Array, 'n_maryland']#
maryland_posterior: gaussian_kde#
penalty_value: float#
psr_name: str#