pub struct Pulse {
pub alpha: [Value; 2],
pub beta: [Value; 2],
pub r: Value,
pub fwhm_squared_us2: Value,
pub r_high: Option<Value>,
pub detector_tail: Option<[Value; 2]>,
pub energy_span_ev: (f64, f64),
pub n_tau: usize,
pub line_span_ev: Option<(f64, f64)>,
pub prior: Option<PulsePrior>,
}Expand description
The Ikeda–Carpenter pulse with α = α₀√E + α₁ and β = β₀√E + β₁ in
1/µs, E in eV, a storage fraction R over energy_span_ev, or linear in
√E from R at its low end to R_high at its high end, the proton
pulse’s triangle of FWHM h in µs, given by h², in which the counts are
smooth down to h = 0, and an optional detector tail. α and β must be
at least 1e-9 µs⁻¹ across the span, β even where the storage fraction is
0.
Fields§
§alpha: [Value; 2][α₀, α₁], in 1/(µs·√eV) and 1/µs, each 0 or more.
beta: [Value; 2][β₀, β₁], in 1/(µs·√eV) and 1/µs, each 0 or more.
r: ValueR, within 0–1: the storage fraction, at the low end of
energy_span_ev when Self::r_high is given.
fwhm_squared_us2: Valueh² in µs², 0 or more.
r_high: Option<Value>R_high, within 0–1: the storage fraction at the high end of
energy_span_ev, linear in √E from R. None holds it at R.
detector_tail: Option<[Value; 2]>[f, τ_D]: the detector records a fraction f (0–1) of the counts
late by an exponential delay of mean τ_D µs (from 1e-9 to 1e9),
and the rest at their arrival; the time background is recorded
as it arrives. None records every count at its arrival.
energy_span_ev: (f64, f64)(low, high), the energies in eV the laws hold over; a window that
neutrons from outside them can reach is refused.
n_tau: usizeSamples across the prompt core that find the pulse’s rise, which sets the grid’s first step; at least 8.
line_span_ev: Option<(f64, f64)>(low, high), the energies in eV of the lowest and highest resonance
between a calibration foil’s time edges, those in a window its library
leaves out included.
fit_counts refuses a sample with a
resonance outside them, of an isotope not known to be absent, between
the energies of its last and first time edges; a resonance outside
those energies, whose neutrons reach the window only through the
pulse’s delay, is not checked. None checks nothing.
prior: Option<PulsePrior>A calibration of some of the numbers, from
PulseCalibration::calibration,
that fit_counts fits them with;
fit_open_beam uses their starting values.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Pulse
impl RefUnwindSafe for Pulse
impl Send for Pulse
impl Sync for Pulse
impl Unpin for Pulse
impl UnsafeUnpin for Pulse
impl UnwindSafe for Pulse
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