pub struct CountsFit {Show 23 fields
pub regions: Vec<RegionFit>,
pub normalization: f64,
pub t0_us: f64,
pub flight_path_m: f64,
pub alpha: [f64; 2],
pub beta: [f64; 2],
pub r: f64,
pub fwhm_squared_us2: f64,
pub r_high: Option<f64>,
pub detector_tail: Option<[f64; 2]>,
pub time_background: [f64; 3],
pub room_background: f64,
pub spread_share: f64,
pub covariance: Option<FlatMatrix>,
pub unbounded: Option<Unbounded>,
pub on_bound: Vec<bool>,
pub deviance: f64,
pub converged: bool,
pub measured_pulls: Option<Vec<f64>>,
pub pulse_consistency: Option<Consistency>,
pub step_us: f64,
pub points: usize,
pub halvings: usize,
}Expand description
The fitted quantities of every region, and the normalization, time background, timing offset, flight path and pulse numbers the regions share.
Fields§
§regions: Vec<RegionFit>Each region’s fitted quantities and counts, in the order given.
normalization: f64The normalization a: the known one, or the fitted one.
t0_us: f64The timing offset t0 in µs: the known one, or the fitted one.
flight_path_m: f64The flight path in m: the known one, or the fitted one.
alpha: [f64; 2]The pulse’s [α₀, α₁], each the known or the fitted one.
beta: [f64; 2]The pulse’s [β₀, β₁], each the known or the fitted one.
r: f64The pulse’s R: the known one, or the fitted one.
fwhm_squared_us2: f64The square of the pulse’s triangle FWHM, h² in µs²: the known one, or
the fitted one.
r_high: Option<f64>The pulse’s R_high, the known or the fitted one; None without one.
detector_tail: Option<[f64; 2]>The detector tail’s [f, τ_D], each the known or the fitted one;
None without one.
time_background: [f64; 3]The time background’s [C, A, τ], each the known or the fitted one; a
fitted τ is undetermined when A ends at 0.
room_background: f64The room background’s ρ: the known one, the fitted one, or 0 without
one.
The spread’s h: the known one, the fitted one, or 0 without one.
covariance: Option<FlatMatrix>Covariance of the fitted quantities among, in this order, each region’s
densities, in the order given, temperature and thickness variance,
region by region; the
normalization; each region’s b0, b1, b2, d and f, region by region;
each region’s gamma transmission, region by region; each region’s
capture gammas’ ε, region by region; each region’s in-scatter’s Ω,
region by region; each region’s timing offset δt, region by region;
the time background’s C, A and τ; the room
background’s ρ; the spread’s h; t0; the
flight path; α₀, α₁,
β₀, β₁, R, h², R_high, f and τ_D: the inverse of the information at the fit, each run’s expected information over its
overdispersion plus 1/sd² for each measured quantity and C⁻¹ over
the pulse numbers a calibration’s
Pulse::prior covers. The row and
column of a quantity on one of its bounds, or that neither the counts
nor a measurement determine, are NaN, and the other entries are
conditional on every quantity that ended on a bound being held there;
every entry is NaN when the fitted temperature of any region ends at
1 K or 5000 K. None when the fit did not converge.
Each covariance in a material’s Material::covariances adds S M Sᵀ,
first order in the resonance parameters it lists, so valid while a
standard deviation of each moves the fit little: M that covariance,
S = −C Jᵀ W c, C this covariance without the term, J and c the
counts’ slopes with respect to the fitted quantities and to those
parameters, the latter by central differences at a tenth of each
standard deviation, and W the counts’ weights. Every other known
quantity is taken as exact.
They are not reliable where the counts barely determine a fitted
temperature or barely separate it from a density, as at few counts or
for a thin sample at modest counts.
unbounded: Option<Unbounded>The fitted quantities’ Gaussian without their bounds, in the
covariance’s order (see Unbounded), with the resonance parameters
taken as exact, NaN where covariance is at a temperature edge. None when covariance is, or when the fitter
reports none.
on_bound: Vec<bool>Whether each fitted quantity, in the covariance’s order, ended on one of its bounds.
deviance: f64Each run’s half Poisson deviance over the overdispersion it was
weighted with, summed over both runs of every region at the fit, outside
the sample runs’ RegionFit::excluded_bins.
converged: boolWhether the fitter converged, the open-beam fits’ time background
settled at the fitted one, every sample run’s overdispersion settled,
the grid met its rule at the fitted temperatures, its flight times cover the fitted t0, flight path and pulse, and the bins left
out at those are the ones the fit left out.
measured_pulls: Option<Vec<f64>>For each measured quantity, in the covariance’s order, its value
without the fit’s bounds (Self::unbounded) less its measurement
over the standard deviation of that difference, √(sd² − variance + N),
the variance also without the bounds and N the term resonance
covariances add to it: near 0 ± 1 when the counts agree
with the measurement. NaN for a quantity the counts and measurements
do not determine, and for every quantity when a fitted temperature ends
at 1 K or 5000 K; it loses precision as the counts’ information on the
quantity vanishes beside the measurement’s. None when unbounded
is.
pulse_consistency: Option<Consistency>Whether the counts accept the pulse’s calibration on the numbers it
covers, by consistency with the fit’s numbers and covariance
without their bounds (Self::unbounded). The counts’ information is
divided by each run’s overdispersion, so the test weakens as the
overdispersion grows. The
overdispersion is at least 1, so with Poisson counts its estimate
inflates the covariances the test uses, and p rejects a right
calibration less often than its value says, the more so the fewer bins
each run counts. A calibration fitted to the same open-beam run is not
independent of the fit, which the test does not account for. None
without a calibration, when unbounded is None or withheld, or when
consistency gives none.
step_us: f64Step, in µs, of the fit’s grid.
points: usizeNumber of points of that grid.
halvings: usizeHow many times the grid of
FlightTimeGrid::new
was halved to reach it; that grid is built at the starting t0,
flight path and pulse, or at fitted ones when the fit rebuilt it.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CountsFit
impl RefUnwindSafe for CountsFit
impl Send for CountsFit
impl Sync for CountsFit
impl Unpin for CountsFit
impl UnsafeUnpin for CountsFit
impl UnwindSafe for CountsFit
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