jesterTOV.inference.likelihoods.nicer.NICERLikelihood#

class NICERLikelihood(
psr_name,
amsterdam_model_dir=None,
maryland_model_dir=None,
penalty_value=-99999.0,
N_masses_evaluation=20,
N_masses_batch_size=10,
seed=42,
)[source]#

Bases: LikelihoodBase

NICER likelihood using normalizing flows (NEW DEFAULT).

This is the recommended NICER likelihood implementation that uses pre-trained normalizing flows on M-R posteriors for efficient and deterministic likelihood evaluation.

For the legacy KDE-based version, see NICERKDELikelihood.

The likelihood loads pre-trained flow models for Amsterdam and Maryland groups and evaluates the likelihood by: 1. Pre-sampling masses ONCE at initialization (deterministic with seed) 2. During evaluation: interpolating radius from the EOS for pre-sampled masses 3. Evaluating the flow log probability at (mass, radius) 4. Averaging over all samples

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

  • amsterdam_model_dir (str | None) – Path to directory containing Amsterdam flow model (flow_weights.eqx, metadata.json, flow_kwargs.json). If None, uses preset model path.

  • maryland_model_dir (str | None) – Path to directory containing Maryland flow model. If None, uses preset model path.

  • 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)

  • seed (int, optional) – Random seed for pre-sampling masses (default: 42)

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

  • seed (int) – Random seed for deterministic pre-sampling

  • amsterdam_flow (Flow) – Normalizing flow for Amsterdam M-R posterior

  • maryland_flow (Flow) – Normalizing flow for Maryland M-R posterior

  • amsterdam_fixed_mass_samples (Float[Array, "n_samples"]) – Pre-sampled mass values from Amsterdam flow (fixed at initialization)

  • maryland_fixed_mass_samples (Float[Array, "n_samples"]) – Pre-sampled mass values from Maryland flow (fixed at initialization)

__init__(
psr_name,
amsterdam_model_dir=None,
maryland_model_dir=None,
penalty_value=-99999.0,
N_masses_evaluation=20,
N_masses_batch_size=10,
seed=42,
)[source]#

Methods

__init__(psr_name[, amsterdam_model_dir, ...])

evaluate(params)

Evaluate log likelihood for given EOS parameters.

Attributes

data

The data for the likelihood.

model

The model for the likelihood.

psr_name

penalty_value

N_masses_evaluation

N_masses_batch_size

seed

N_masses_batch_size: int#
N_masses_evaluation: int#
evaluate(params)[source]#

Evaluate log likelihood for given EOS parameters.

Uses pre-sampled masses from initialization (deterministic evaluation).

Parameters:

params (dict[str, Float | Array]) – Must contain: - ‘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

penalty_value: float#
psr_name: str#
seed: int#