Expand description
Poisson-likelihood optimizer for low-count neutron data.
When neutron counts are low (< ~30 per bin), the Gaussian/chi-squared assumption breaks down and Poisson statistics must be used directly.
§Negative log-likelihood
L(θ) = Σᵢ [y_model(θ)ᵢ - y_obs,ᵢ · ln(y_model(θ)ᵢ)]
This is minimized using a projected optimizer:
- damped Gauss-Newton / Fisher steps when an analytical Jacobian exists
- finite-difference projected gradient fallback otherwise
Both paths use backtracking line search and bound constraints (non-negativity on densities).
§TRINIDI Reference
trinidi/reconstruct.py— Poisson NLL and APGM optimizer
Structs§
- Counts
Background Scale Model - Counts model with optional nuisance scaling of signal and detector background.
- Counts
Model - Convert transmission model + counts to a counts-based forward model.
- Poisson
Config - Configuration for the Poisson optimizer.
- Poisson
Result - Result of Poisson-likelihood optimization.
- TransmissionKL
Background Model - KL-compatible background model for transmission data.
Functions§
- poisson_
fit - Run Poisson-likelihood optimization using a projected KL optimizer.