Add a small interpreted layer over the existing MF=8/9/10 parsers. The
new radionuclide_production function walks the MF=8 subsections to
attach excitation energies to each (ZAP, LFS) final state and pairs the
MF=9 yield with the MF=10 cross section for the same state, returning a
mapping of MT numbers to lists of RadionuclideProduction records.
Includes a trimmed ENDF/B-VIII.1 In-115 fixture covering MF=9 yields
with an implicit ground-state share, MF=10-only threshold states, and
excitation energy attachment from MF=8.
Closes #4.
Adds a small interpreted layer over the existing MF=8/9/10 parsers, as proposed in #4.
What this adds
New module src/endf/radionuclide_production.py:
LFS is a level index of the product nuclide, not an isomeric-state index; mapping a level to a metastable state requires comparing excitation_energy against decay data. This is recorded in the docstrings.
Both names are exported from the top-level endf package.
Tests
New tests/test_radionuclide_production.py (5 tests) with a 46 kB trim of the ENDF/B-VIII.1 In-115 evaluation as a fixture (tests/n-049_In-115_trimmed.endf). It covers the three interesting shapes in one file:
The full test suite (21 tests) passes.