nook.sources.ripl3.levels

The RIPL-3 discrete-levels segment: per-element z0NN.dat files.

Format per levels-readme.html in the mirror (R. Capote and M. Verpelli, 2021-12-13). Each isotope is an identification record (a5,6i5,2f12.6), then one level record per level, each followed by its gamma records (39x,i4,1x,f10.4,3(1x,e10.3)).

Traps the readme is explicit about, preserved here rather than smoothed over:

  • Energies are in MeV; the shared model speaks keV, so values convert at parse time and raw keeps the file’s numbers.

  • Spin -1.0 and parity 0 mean unknown – but for levels below Nmax RIPL invents unique values from a spin distribution and, for parity, a coin flip. The estimation method is coded in a flag: u means ENSDF offered exactly one compatible spin (possibly tentative, like (1)+) and RIPL adopted it; g means it was inferred from gamma transitions to known levels; c chosen from a listed set by the spin distribution; n no experimental information at all. A g, c or n assignment is RIPL’s, not the evaluator’s, and is marked assumed; a u assignment is ENSDF’s own single candidate, so only its tentativeness survives (in tentative). The original ENSDF J field is kept alongside either way. (g is undocumented in the readme but 5000+ levels in the 2021 cut carry it.)

  • Stable levels carry T1/2 = -1.0E+0, not blank.

  • Pg may be 0 when ENSDF gave no branching; Pe = Pg * (1 + ICC) and the Pe sum over a level is its electromagnetic branching, 1 unless the level record lists other decay modes.

class nook.sources.ripl3.levels.RiplNuclideLevels(nuclide, n_levels, n_gammas, n_complete, n_unique_jpi, sn_kev, sp_kev, levels=(), gammas=())[source]

Bases: object

One isotope’s block from a per-element file, still close to the file.

nuclide: Nuclide
n_levels: int
n_gammas: int
n_complete: int
n_unique_jpi: int
sn_kev: float | None
sp_kev: float | None
levels: tuple[Level, ...] = ()
gammas: tuple[Gamma, ...] = ()
to_scheme()[source]
class nook.sources.ripl3.levels.LevelsParam(nuclide, temperature_mev, temperature_unc_mev, u0_mev, u0_unc_mev, n_levels, n_max, n0, n_c, u_max_mev, u_c_mev)[source]

Bases: object

One row of levels-param-2021.data: the constant-temperature fit.

nuclide: Nuclide
temperature_mev: float | None
temperature_unc_mev: float | None
u0_mev: float | None
u0_unc_mev: float | None
n_levels: int | None
n_max: int | None
n0: int | None
n_c: int | None
u_max_mev: float | None
u_c_mev: float | None
nook.sources.ripl3.levels.parse_levels_file(text)[source]

Parse one per-element file into its isotope blocks.

nook.sources.ripl3.levels.load_levels(path, nuclide)[source]

The block for one nuclide from its per-element file.

nook.sources.ripl3.levels.parse_levels_param(text)[source]

Parse levels-param-2021.data (constant-temperature fit table).