pub struct IkedaCarpenter { /* private fields */ }Expand description
Analytical Ikeda–Carpenter resolution model.
Synthesizes a TabulatedResolution at construction and applies it through
the same broadening path as a Monte-Carlo file. Cloning is cheap (the
synthesized table is the only large field). Re-synthesize (construct anew)
when fitting changes the parameters.
Implementations§
Source§impl IkedaCarpenter
impl IkedaCarpenter
Sourcepub fn new(
params: IkedaCarpenterParams,
flight_path_m: f64,
grid: &SynthesisGrid,
) -> Result<Self, ResolutionParseError>
pub fn new( params: IkedaCarpenterParams, flight_path_m: f64, grid: &SynthesisGrid, ) -> Result<Self, ResolutionParseError>
Build the model, synthesizing its kernel table over grid.
§Errors
Returns ResolutionParseError::InvalidFormat for a non-positive
flight path, a degenerate grid (n_energies < 2, n_tau < 8,
e_min ≤ 0, e_max ≤ e_min), a non-positive β, a parameter/grid
combination whose τ-grid cannot resolve the prompt core and requested
folds within the MAX_TAU_SAMPLES cap at some reference energy (see
tau_geometry — remedy: larger β, R = 0, or a wider/disabled
fold), or if the synthesized kernels fail
TabulatedResolution::from_kernels validation.
Sourcepub fn tabulated(&self) -> &TabulatedResolution
pub fn tabulated(&self) -> &TabulatedResolution
The synthesized tabulated kernel set (the broadening engine).
Sourcepub fn params(&self) -> &IkedaCarpenterParams
pub fn params(&self) -> &IkedaCarpenterParams
The IC parameters.
Sourcepub fn flight_path_m(&self) -> f64
pub fn flight_path_m(&self) -> f64
Flight-path length (m).
Sourcepub fn ref_energies(&self) -> &[f64]
pub fn ref_energies(&self) -> &[f64]
Reference energies (eV, ascending) the table was synthesized on.
Sourcepub fn kernel_at(
&self,
energy_ev: f64,
) -> Result<(Vec<f64>, Vec<f64>), ResolutionParseError>
pub fn kernel_at( &self, energy_ev: f64, ) -> Result<(Vec<f64>, Vec<f64>), ResolutionParseError>
Evaluate the (burst/channel-folded) IC kernel at one energy.
Returns ascending TOF-offsets (µs, mode at 0) and peak-normalized
weights (max = 1), matching the TabulatedResolution storage
convention.
§Errors
Returns ResolutionParseError::InvalidFormat when the τ-grid cannot
resolve the prompt core and requested folds within MAX_TAU_SAMPLES
at this energy. Construction validates every reference energy, but a
probe energy outside [e_min, e_max] — for the √E law, above e_max,
where the larger α(E) imposes a finer prompt resolution floor against
the same storage-tail span — can still leave the resolvable region.
Trait Implementations§
Source§impl Clone for IkedaCarpenter
impl Clone for IkedaCarpenter
Source§fn clone(&self) -> IkedaCarpenter
fn clone(&self) -> IkedaCarpenter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for IkedaCarpenter
impl RefUnwindSafe for IkedaCarpenter
impl Send for IkedaCarpenter
impl Sync for IkedaCarpenter
impl Unpin for IkedaCarpenter
impl UnsafeUnpin for IkedaCarpenter
impl UnwindSafe for IkedaCarpenter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more