pub fn forward_model(
energies: &[f64],
sample: &SampleParams,
instrument: Option<&InstrumentParams>,
) -> Result<Vec<f64>, TransmissionError>Expand description
Compute a complete theoretical transmission spectrum.
This is the main forward model that chains: ENDF parameters → cross-sections → Doppler broadening → resolution → transmission
§Arguments
energies— Energy grid in eV (sorted ascending).sample— Sample parameters (isotopes with areal densities, temperature).instrument— Optional instrument parameters (resolution broadening).
§Returns
Theoretical transmission spectrum on the energy grid.
§Errors
TransmissionError::Resolution— if resolution broadening is enabled (instrumentisSome) andenergiesis not sorted ascending.TransmissionError::Doppler— if Doppler broadening is enabled (temperature_k > 0.0) andDopplerParamsvalidation fails (e.g., non-positive or non-finite AWR).
Note: isotopes with thickness <= 0.0 are silently skipped
(they contribute zero attenuation). This allows callers to include
inactive isotopes in SampleParams without causing errors.