pub enum ResolutionFunction {
Gaussian(ResolutionParams),
Tabulated(Arc<TabulatedResolution>),
IkedaCarpenter(Arc<IkedaCarpenter>),
}Expand description
Resolution function: analytical Gaussian, tabulated from Monte Carlo, or analytical Ikeda–Carpenter moderator model.
The Tabulated and IkedaCarpenter variants wrap an Arc so that cloning
(e.g., per-pixel in spatial mapping) is a cheap reference-count bump rather
than a deep copy.
IkedaCarpenter synthesizes a TabulatedResolution at construction and
is applied through the same per-call convolution path as Tabulated
(broaden / broaden_presorted / plan) — only the kernel source differs
(analytic IC pulse vs Monte-Carlo file). This keeps the three-way resolution
cross-validation (Gaussian | tabulated-UDR | Ikeda–Carpenter) fair on the
reference broadening path. Note: IkedaCarpenter does not opt into the
spatial-map surrogate fast-paths (the scalar/cubature plans gate on
Tabulated); it falls back to the general path, which is correct but
unoptimized — see the resolution-calibration notes for the W6 follow-up.
Variants§
Gaussian(ResolutionParams)
Analytical Gaussian resolution from instrument parameters.
Tabulated(Arc<TabulatedResolution>)
Tabulated resolution from Monte Carlo instrument simulation.
IkedaCarpenter(Arc<IkedaCarpenter>)
Analytical Ikeda–Carpenter moderator resolution model.
Trait Implementations§
Source§impl Clone for ResolutionFunction
impl Clone for ResolutionFunction
Source§fn clone(&self) -> ResolutionFunction
fn clone(&self) -> ResolutionFunction
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 ResolutionFunction
impl RefUnwindSafe for ResolutionFunction
impl Send for ResolutionFunction
impl Sync for ResolutionFunction
impl Unpin for ResolutionFunction
impl UnsafeUnpin for ResolutionFunction
impl UnwindSafe for ResolutionFunction
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