forward_model

Function forward_model 

Source
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 (instrument is Some) and energies is not sorted ascending.
  • TransmissionError::Doppler — if Doppler broadening is enabled (temperature_k > 0.0) and DopplerParams validation 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.