LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Performs a second-degree fit of data. More...
#include "SimpleFits.h"
Public Types | |
using | FitParameters_t = std::array< Data_t, NParams > |
type of set of fit parameters More... | |
using | FitMatrix_t = std::array< Data_t, sqr(NParams)> |
using | Data_t = typename Base_t::Data_t |
type of the data More... | |
using | MatrixOps = FastMatrixOperations< Data_t, NParams > |
using | Measurement_t = typename Collector_t::Measurement_t |
type of measurement without uncertainty More... | |
using | MeasurementAndUncertainty_t = typename Collector_t::MeasurementAndUncertainty_t |
type of measurement with uncertainty More... | |
Public Member Functions | |
virtual Data_t | ChiSquare () const override |
Returns the of the fit. More... | |
virtual bool | isValid () const override |
Returns if the fit has valid results. More... | |
bool | FillResults (FitParameters_t ¶ms, FitMatrix_t &Xmat, Data_t &det, FitMatrix_t &Smat) const override |
Fills the specified parameters. More... | |
bool | FillResults (FitParameters_t ¶ms, FitParameters_t ¶merrors, FitMatrix_t &Xmat, Data_t &det, FitMatrix_t &Smat) const override |
Fills the specified parameters. More... | |
bool | FillResults (FitParameters_t ¶ms, FitParameters_t ¶merrors) const override |
Fills the specified parameters. More... | |
virtual bool | FillResults (FitParameters_t ¶ms, FitMatrix_t &Xmat, Data_t &det, FitMatrix_t &Smat) const =0 |
Fills the specified parameters. More... | |
virtual bool | FillResults (FitParameters_t ¶ms, FitParameters_t ¶merrors, FitMatrix_t &Xmat, Data_t &det, FitMatrix_t &Smat) const =0 |
Fills the specified parameters. More... | |
virtual Data_t | Evaluate (Data_t x) const override |
Evaluates the fitted function at the specified point. More... | |
virtual Data_t | Evaluate (Data_t x) const =0 |
Evaluates the fitted function at the specified point. More... | |
Data_t | operator() (Data_t x) const |
Evaluates the fitted function; alias of Evaluate() More... | |
void | clear () |
Clears all the statistics. More... | |
template<typename Stream > | |
void | PrintStats (Stream &out) const |
Prints the collected statistics into a stream. More... | |
Fitting | |
virtual FitParameters_t | FitParameters () const override |
Computes and returns all the parameters of the fit result. More... | |
virtual FitParameters_t | FitParameterErrors () const override |
Computes and returns all the parameter errors of the fit result. More... | |
virtual FitMatrix_t | FitParameterCovariance () const override |
Computes and returns all the covariance matrix of the fit result. More... | |
virtual Data_t | FitParameter (unsigned int n) const override |
Returns the parameter n of the fit result. More... | |
virtual Data_t | FitParameterError (unsigned int n) const override |
Returns the error on parameter n of the fit result. More... | |
virtual int | NDF () const override |
Returns the degrees of freedom in the determination of the fit. More... | |
Add elements | |
| |
bool | add (Data_t x, Data_t y, Data_t sy=Data_t(1.0)) |
bool | add (Measurement_t value, Data_t sy=Data_t(1.0)) |
bool | add (MeasurementAndUncertainty_t value) |
template<typename Iter > | |
void | add_without_uncertainty (Iter begin, Iter end) |
template<typename Iter , typename Pred > | |
void | add_without_uncertainty (Iter begin, Iter end, Pred extractor) |
template<typename Cont , typename Pred > | |
void | add_without_uncertainty (Cont cont, Pred extractor) |
template<typename Cont > | |
void | add_without_uncertainty (Cont cont) |
template<typename VIter , typename UIter , typename VPred , typename UPred = identity> | |
unsigned int | add_with_uncertainty (VIter begin_value, VIter end_value, UIter begin_uncertainty, VPred value_extractor, UPred uncertainty_extractor=UPred()) |
template<typename Iter > | |
unsigned int | add_with_uncertainty (Iter begin, Iter end) |
template<typename Cont > | |
unsigned int | add_with_uncertainty (Cont cont) |
Statistic retrieval | |
| |
int | N () const |
Data_t | AverageUncertainty () const |
Static Public Member Functions | |
static FitParameters_t | ExtractParameterErrors (FitMatrix_t const &Smat) |
Extracts parameter errors from diagonal of the covarriance matrix. More... | |
static constexpr Data_t | sqr (Data_t v) |
Returns the square of the specified data value. More... | |
template<typename V > | |
static constexpr V | sqr (V const &v) |
Returns the square of the specified value. More... | |
static constexpr Data_t | cube (Data_t v) |
Returns the cube of the specified data value. More... | |
Static Public Attributes | |
static constexpr unsigned int | Degree |
Degree of the fit. More... | |
static constexpr unsigned int | NParams |
Number of parameters in the fit. More... | |
Protected Member Functions | |
virtual FitParameters_t | FitParameterErrors (FitMatrix_t const &Smat) const |
Computes and returns all the parameter errors of the fit result. More... | |
virtual FitMatrix_t | MakeMatrixX () const |
Fills and returns the matrix of x^n sum coefficients ( { x^(i+j) } ) More... | |
virtual FitParameters_t | MakeMatrixY () const |
Fills and returns the matrix (vector) of x^n y sum coefficients. More... | |
virtual Data_t | Determinant (FitMatrix_t const &mat) const |
Computes the determinant of a matrix. More... | |
virtual FitMatrix_t | InvertMatrix (FitMatrix_t const &mat, Data_t det) const |
Computes the inverse of a matrix (using provided determinant) More... | |
virtual FitMatrix_t | InvertMatrix (FitMatrix_t const &mat) const |
Computes the inverse of a matrix. More... | |
virtual FitParameters_t | MatrixProduct (FitMatrix_t const &mat, FitParameters_t const &vec) const |
Computes the product of a FitMatrix_t and a FitParameters_t. More... | |
Data_t | XN (unsigned int n) const |
Returns the weighted sum of x^n. More... | |
Data_t | XNY (unsigned int n) const |
Returns the weighted sum of x^n y. More... | |
Data_t | I () const |
Aliases. More... | |
Data_t | X () const |
Aliases. More... | |
Data_t | X2 () const |
Aliases. More... | |
Data_t | X3 () const |
Aliases. More... | |
Data_t | X4 () const |
Aliases. More... | |
Data_t | Y () const |
Aliases. More... | |
Data_t | XY () const |
Aliases. More... | |
Data_t | X2Y () const |
Aliases. More... | |
Data_t | Y2 () const |
Aliases. More... | |
virtual FitParameters_t | FitParameters (FitMatrix_t const &Xmat) const |
Returns the fitted parameters using the provided information. More... | |
virtual FitParameters_t | FitParameters (FitMatrix_t const &Smat, Data_t) const |
Returns the fitted parameters using the provided information. More... | |
virtual Data_t | Param (unsigned int n, FitMatrix_t const &Xmat) const |
Computes a single fit parameter using the given information. More... | |
virtual Data_t | Param (unsigned int n, FitMatrix_t const &Xmat, Data_t detXmat) const |
Computes a single fit parameter using the given information. More... | |
Protected Attributes | |
Collector_t | stats |
statistics collected from fit data input More... | |
Private Types | |
using | Base_t = details::SimplePolyFitterBase< T, 2U > |
Performs a second-degree fit of data.
T | type of the quantities |
W | type of the weight (as T by default) |
The quadratic fit connects measurements with a parameter not affected by uncertainty. The returned parameters describe a quadratic curve obtained by minimization of
This saves having to link to ROOT for the simplest cases.
This simple quadratic fitter does not store any result: each time a result is requested, it is computed anew. In particular that is true also for ChiSquare(), that requires the full parameters set and therefore reruns the full fit (FitParameters()) and for the covariance matrix of the parameters.
Definition at line 933 of file SimpleFits.h.
|
private |
Definition at line 934 of file SimpleFits.h.
using lar::util::details::SimplePolyFitterBase< T, D >::Data_t = typename Base_t::Data_t |
type of the data
Definition at line 649 of file SimpleFits.h.
using lar::util::QuadraticFit< T >::FitMatrix_t = std::array<Data_t, sqr(NParams)> |
Definition at line 951 of file SimpleFits.h.
using lar::util::QuadraticFit< T >::FitParameters_t = std::array<Data_t, NParams> |
type of set of fit parameters
Definition at line 950 of file SimpleFits.h.
|
inherited |
Definition at line 465 of file SimpleFits.h.
|
inherited |
type of measurement without uncertainty
Definition at line 352 of file SimpleFits.h.
|
inherited |
type of measurement with uncertainty
Definition at line 355 of file SimpleFits.h.
|
inlineinherited |
Definition at line 363 of file SimpleFits.h.
Referenced by cluster::ClusterParamsAlg::IntegrateFitCharge().
|
inlineinherited |
Definition at line 365 of file SimpleFits.h.
|
inlineinherited |
Definition at line 367 of file SimpleFits.h.
|
inlineinherited |
Definition at line 394 of file SimpleFits.h.
|
inlineinherited |
Definition at line 405 of file SimpleFits.h.
|
inlineinherited |
Definition at line 411 of file SimpleFits.h.
|
inlineinherited |
Definition at line 370 of file SimpleFits.h.
|
inlineinherited |
Definition at line 376 of file SimpleFits.h.
|
inlineinherited |
Definition at line 382 of file SimpleFits.h.
|
inlineinherited |
Definition at line 388 of file SimpleFits.h.
|
inlineinherited |
Definition at line 427 of file SimpleFits.h.
|
overridevirtual |
Returns the of the fit.
Reimplemented from lar::util::details::SimplePolyFitterBase< T, 2U >.
Definition at line 1703 of file SimpleFits.h.
References lar::util::details::FitDataCollector< T, D >::sqr(), X, X2, Y, and lar::util::details::FitDataCollector< T, D >::Y2().
|
inlineinherited |
Clears all the statistics.
Definition at line 419 of file SimpleFits.h.
|
inlinestaticinherited |
Returns the cube of the specified data value.
Definition at line 603 of file SimpleFits.h.
|
inlineprotectedvirtualinherited |
Computes the determinant of a matrix.
Definition at line 607 of file SimpleFits.h.
|
pure virtualinherited |
Evaluates the fitted function at the specified point.
x | the point where to evaluate the fit function |
No check is performed whether the fit is valid.
|
overridevirtualinherited |
Evaluates the fitted function at the specified point.
x | the point where to evaluate the fit function |
No check is performed whether the fit is valid.
|
staticinherited |
Extracts parameter errors from diagonal of the covarriance matrix.
|
pure virtualinherited |
Fills the specified parameters.
params | the fitted values of the parameters |
Xmat | the matrix of the x^n/s^2 sums |
Smat | the covariance matrix |
det | the determinant of Xmat |
|
pure virtualinherited |
Fills the specified parameters.
params | the fitted values of the parameters |
paramerrors | the uncertainty on the fitted parameters |
Xmat | the matrix of the x^n/s^2 sums |
Smat | the covariance matrix |
det | the determinant of Xmat |
|
overrideinherited |
Fills the specified parameters.
params | the fitted values of the parameters |
Xmat | the matrix of the x^n/s^2 sums |
Smat | the covariance matrix |
det | the determinant of Xmat |
|
overrideinherited |
Fills the specified parameters.
params | the fitted values of the parameters |
paramerrors | the uncertainty on the fitted parameters |
Xmat | the matrix of the x^n/s^2 sums |
Smat | the covariance matrix |
det | the determinant of Xmat |
|
overridevirtualinherited |
Fills the specified parameters.
params | the fitted values of the parameters |
paramerrors | the uncertainty on the fitted parameters |
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
|
overridevirtualinherited |
Returns the parameter n of the fit result.
n | degree of the parameter; must be no larger than Degree |
std::range_error | if there is no unique solution |
Reimplemented from lar::util::details::SimpleFitterInterface< T, D+1 >.
|
overridevirtualinherited |
Computes and returns all the covariance matrix of the fit result.
std::range_error | if there is no unique solution |
The matrix is symmetric, and stored in a linear way (say, first row, then second row).
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
|
overridevirtualinherited |
Returns the error on parameter n of the fit result.
n | degree of the parameter; must be no larger than Degree |
std::range_error | if there is no unique solution |
Reimplemented from lar::util::details::SimpleFitterInterface< T, D+1 >.
|
overridevirtualinherited |
Computes and returns all the parameter errors of the fit result.
std::range_error | if there is no unique solution |
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
|
inlineprotectedvirtualinherited |
Computes and returns all the parameter errors of the fit result.
Definition at line 785 of file SimpleFits.h.
References n.
|
overridevirtualinherited |
Computes and returns all the parameters of the fit result.
std::range_error | if there is no unique solution |
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
|
protectedvirtualinherited |
Returns the fitted parameters using the provided information.
|
protectedvirtualinherited |
Returns the fitted parameters using the provided information.
|
inlineprotected |
Aliases.
Definition at line 964 of file SimpleFits.h.
|
inlineprotectedvirtualinherited |
Computes the inverse of a matrix (using provided determinant)
Definition at line 613 of file SimpleFits.h.
|
inlineprotectedvirtualinherited |
Computes the inverse of a matrix.
Definition at line 619 of file SimpleFits.h.
|
overridevirtualinherited |
Returns if the fit has valid results.
The fit has no valid results if:
Note that checking point 2 is expensive in terms of time.
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
|
protectedvirtualinherited |
Fills and returns the matrix of x^n sum coefficients ( { x^(i+j) } )
|
protectedvirtualinherited |
Fills and returns the matrix (vector) of x^n y sum coefficients.
|
inlineprotectedvirtualinherited |
Computes the product of a FitMatrix_t and a FitParameters_t.
Definition at line 625 of file SimpleFits.h.
|
inlineinherited |
Definition at line 425 of file SimpleFits.h.
|
inlineoverridevirtualinherited |
Returns the degrees of freedom in the determination of the fit.
The return value may be 0 or negative if insufficient points have been added.
Implements lar::util::details::SimpleFitterInterface< T, D+1 >.
Definition at line 725 of file SimpleFits.h.
References lar::util::details::FitDataCollector< T, D >::NParams.
|
inlineinherited |
Evaluates the fitted function; alias of Evaluate()
Definition at line 597 of file SimpleFits.h.
|
protectedvirtualinherited |
Computes a single fit parameter using the given information.
|
protectedvirtualinherited |
Computes a single fit parameter using the given information.
|
inlineinherited |
Prints the collected statistics into a stream.
Definition at line 433 of file SimpleFits.h.
|
inlinestaticinherited |
Returns the square of the specified value.
Definition at line 440 of file SimpleFits.h.
References sqr().
|
inlinestaticinherited |
Returns the square of the specified data value.
Definition at line 600 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 965 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 966 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 971 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 967 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 968 of file SimpleFits.h.
|
inlineprotectedinherited |
Returns the weighted sum of x^n.
Definition at line 449 of file SimpleFits.h.
References lar::util::details::FitDataCollector< T, D >::XN().
|
inlineprotectedinherited |
Returns the weighted sum of x^n y.
Definition at line 452 of file SimpleFits.h.
References lar::util::details::FitDataCollector< T, D >::XNY().
|
inlineprotected |
Aliases.
Definition at line 970 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 969 of file SimpleFits.h.
|
inlineprotected |
Aliases.
Definition at line 972 of file SimpleFits.h.
|
staticinherited |
Degree of the fit.
Definition at line 644 of file SimpleFits.h.
|
staticinherited |
Number of parameters in the fit.
Definition at line 647 of file SimpleFits.h.
|
protectedinherited |
statistics collected from fit data input
Definition at line 446 of file SimpleFits.h.