Data Sources
============
PyEPICS processes evaluated nuclear data from the LLNL EPICS 2025 database.
This page documents the authoritative sources for each data type.
ENDF Libraries
--------------
All cross-section, relaxation, and transition data are parsed from ENDF-6
format files provided by LLNL:
.. list-table::
:header-rows: 1
:widths: 25 40 35
* - Library
- Description
- Source
* - **EEDL**
- Evaluated Electron Data Library
- `LLNL EPICS 2025 `_
* - **EPDL**
- Evaluated Photon Data Library
- `LLNL EPICS 2025 `_
* - **EADL**
- Evaluated Atomic Data Library
- `LLNL EPICS 2025 `_
Binding Energies
----------------
Binding energies are sourced from the **EADL** (Evaluated Atomic Data Library),
parsed from the ENDF-6 format files. They are **not** sourced from the NIST
X-Ray Transition Energies database.
The reference validation data in ``tests/fixtures/reference_binding_energies.csv``
contains binding energies extracted from the EEDL ENDF files themselves. These
values are used for round-trip validation: the report generator compares
PyEPICS-parsed values against the ENDF source values to verify parsing
correctness.
The analysis covers all available subshells (K, L1, L2, L3, M1, …) for
elements Z=1 through Z=100, not only the K-shell.
Physical Constants
------------------
Physical constants are sourced from NIST CODATA 2018:
.. list-table::
:header-rows: 1
:widths: 30 30 40
* - Constant
- Value
- Source
* - Fine-structure constant (α)
- 7.2973525693 × 10⁻³
- NIST CODATA 2018
* - Electron rest-mass energy (m_e c²)
- 0.51099895069 MeV
- NIST CODATA 2018
* - Barn to cm² conversion
- 1 × 10⁻²⁴
- Definition
* - Planck constant (h)
- 6.62607015 × 10⁻³⁴ J·s
- SI definition (exact)
* - Speed of light (c)
- 299 792 458 m/s
- SI definition (exact)
* - Elementary charge (e)
- 1.602176634 × 10⁻¹⁹ C
- SI definition (exact)
MF/MT Mapping Tables
---------------------
Every section in an ENDF file is identified by a pair of integers
**(MF, MT)** — *MF* selects the data type (cross sections, distributions,
form factors, …) and *MT* selects the reaction or subshell. PyEPICS
keeps three mapping dictionaries in ``pyepics/utils/constants.py``:
.. list-table::
:header-rows: 1
:widths: 30 20 50
* - Dictionary
- Library
- Purpose
* - ``ELECTRON_MF_MT`` / ``ELECTRON_SECTIONS_ABBREVS``
- EEDL
- Electron cross-section & distribution sections
* - ``PHOTON_MF_MT`` / ``PHOTON_SECTIONS_ABBREVS``
- EPDL
- Photon cross-section & form-factor sections
* - ``ATOMIC_MF_MT`` / ``ATOMIC_SECTIONS_ABBREVS``
- EADL
- Atomic relaxation sections
Each ``*_MF_MT`` dict maps ``(MF, MT)`` → human-readable description; each
``*_SECTIONS_ABBREVS`` dict maps the same keys → short mnemonic used as
HDF5 group names.
**Adding a new (MF, MT) pair** — If a new evaluation introduces a
previously unseen section:
1. Add the ``(MF, MT)`` key and its description to the appropriate
``*_MF_MT`` dictionary, following the ENDF-6 Formats Manual [1]_ for
the correct meaning.
2. Add the same key with a short mnemonic to the matching
``*_SECTIONS_ABBREVS`` dictionary.
3. Run ``pytest tests/test_mapping_completeness.py`` — it will flag any
ENDF (MF, MT) pair that lacks a mapping.
.. [1] A. Trkov *et al.*, "ENDF-6 Formats Manual", BNL-90365-2009 Rev. 2,
https://www.nndc.bnl.gov/endfdocs/ENDF-102-2023.pdf
Reference
---------
`NIST CODATA 2018 — Wallet Card (PDF) `_