|
ROOT
Reference Guide |
|
Go to the documentation of this file.
13 #ifndef ROOT_Fit_BinData
14 #define ROOT_Fit_BinData
63 explicit BinData(
unsigned int maxpoints = 0,
unsigned int dim = 1,
85 BinData(
unsigned int n,
const double * dataX,
const double * val,
86 const double *
ex ,
const double * eval );
91 BinData(
unsigned int n,
const double * dataX,
const double * dataY,
92 const double * val,
const double *
ex ,
const double *
ey,
93 const double * eval );
98 BinData(
unsigned int n,
const double * dataX,
const double * dataY,
99 const double * dataZ,
const double * val,
const double *
ex ,
100 const double *
ey ,
const double * ez ,
const double * eval );
165 void Add(
double x,
double y );
171 void Add(
double x,
double y,
double ey );
177 void Add(
double x,
double y,
double ex,
double ey );
183 void Add(
double x,
double y,
double ex,
double eyl,
double eyh );
188 void Add(
const double*
x,
double val );
193 void Add(
const double*
x,
double val,
double eval );
198 void Add(
const double*
x,
double val,
const double*
ex,
double eval );
203 void Add(
const double*
x,
double val,
const double*
ex,
double elval,
double ehval );
216 double Value(
unsigned int ipoint )
const
228 const double *
ValuePtr(
unsigned int ipoint )
const
239 const double *
ErrorPtr(
unsigned int ipoint)
const{
250 double Error(
unsigned int ipoint )
const
274 return (eval != 0.0) ? 1.0/eval : 0.0;
288 return (el+eh) / 2.0;
295 void GetAsymError(
unsigned int ipoint,
double& lowError,
double& highError )
const
339 return (eval != 0.0) ? eval : 0.0;
353 return 2.0 / (el+eh);
369 const double *
GetPoint(
unsigned int ipoint,
double & value )
const
372 value =
Value( ipoint );
386 assert( icoord <
fDim );
406 for (
unsigned int i=0; i <
fDim; i++ )
427 const double*
GetPoint(
unsigned int ipoint,
double & value,
double & invError )
const
432 double e =
Error( ipoint );
437 invError = (
e != 0.0 ) ? 1.0/
e : 1.0;
455 errvalue =
Error( ipoint );
468 const double*
GetPointError(
unsigned int ipoint,
double & errlow,
double & errhigh)
const
492 assert( icoord <
fDim );
494 assert( ipoint <
fBinEdge.front().size() );
525 for (
unsigned int i = 0; i <
fDim; i++) {
Base class for all the fit data types: Stores the coordinates and the DataOptions.
const double * CoordErrors(unsigned int ipoint) const
Return a pointer to the errors in the coordinates for the given fit point.
TFitResultPtr Fit(FitObject *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
DataOptions : simple structure holding the options on how the data are filled.
bool HaveCoordErrors() const
flag to control if data provides error on the coordinates
void Append(unsigned int newPoints, unsigned int dim=1, ErrorType err=kValueError)
preallocate a data set with given size , dimension and error type (to get the full point size) If the...
void GetAsymError(unsigned int ipoint, double &lowError, double &highError) const
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
const double * GetPointError(unsigned int ipoint, double &errvalue) const
Retrieve the errors on the point (coordinate and value) for the given fit point It must be called onl...
std::vector< std::vector< double > > fBinEdge
double * fpTmpBinEdgeVector
const double * GetPoint(unsigned int ipoint, double &value) const
retrieve at the same time a pointer to the coordinate data and the fit value More efficient than call...
const double * GetPointError(unsigned int ipoint, double &errlow, double &errhigh) const
Get errors on the point (coordinate errors and asymmetric value errors) for the given fit point.
const double * fDataErrorPtr
double Error(unsigned int ipoint) const
void Initialize(unsigned int newPoints, unsigned int dim=1, ErrorType err=kValueError)
double * fpTmpCoordErrorVector
double SumOfError2() const
compute the total sum of the error square (sum of weight square in case of a weighted data set)
const double * Coords(unsigned int ipoint) const
return a pointer to the coordinates data for the given fit point
std::vector< const double * > fCoordErrorsPtr
const double * fDataErrorHighPtr
const double * ValuePtr(unsigned int ipoint) const
return a pointer to the value for the given fit point
const double * ErrorPtr(unsigned int ipoint) const
return error on the value for the given fit point Safe (but slower) method returning correctly the er...
double Value(unsigned int ipoint) const
return the value for the given fit point
double SumOfContent() const
compute the total sum of the data content (sum of weights in case of weighted data set)
std::vector< double > fData
Stores the data values the same way as the coordinates.
double InvError(unsigned int ipoint) const
Return the inverse of error on the value for the given fit point useful when error in the coordinates...
std::vector< double > fDataError
BinData(unsigned int maxpoints=0, unsigned int dim=1, ErrorType err=kValueError)
constructor from dimension of point and max number of points (to pre-allocate vector) Give a zero val...
std::vector< double > fDataErrorHigh
class describing the range in the coordinates it supports multiple range in a coordinate.
const double * GetPoint(unsigned int ipoint, double &value, double &invError) const
retrieve in a single call a pointer to the coordinate data, value and inverse error for the given fit...
bool HaveAsymErrors() const
flag to control if data provides asymmetric errors on the value
void AddBinUpEdge(const double *xup)
add the bin width data, a pointer to an array with the bin upper edge information.
double RefVolume() const
retrieve the reference volume used to normalize the data when the option bin volume is set
double GetCoordErrorComponent(unsigned int ipoint, unsigned int icoord) const
returns a single coordinate error component of a point.
virtual ~BinData()
destructor
void GetBinUpEdgeCoordinates(unsigned int ipoint, double *x) const
Thread save version of function retrieving the bin up-edge in case of multidimensions.
ErrorType GetErrorType() const
retrieve the errortype
std::vector< double > fDataErrorLow
std::vector< std::vector< double > > fCoordErrors
double GetBinUpEdgeComponent(unsigned int ipoint, unsigned int icoord) const
returns a single coordinate error component of a point.
BinData & operator=(const BinData &rhs)
const double * fDataErrorLowPtr
bool IsWeighted() const
return true if the data set is weighted We cannot compute ourselfs because sometimes errors are fille...
void Add(double x, double y)
add one dim data with only coordinate and values
const double * BinUpEdge(unsigned int ipoint) const
return an array containing the upper edge of the bin for coordinate i In case of empty bin they could...
BinData & LogTransform()
apply a Log transformation of the data values can be used for example when fitting an exponential or ...
bool HasBinEdges() const
query if the data store the bin edges instead of the center
void SetRefVolume(double value)
set the reference volume used to normalize the data when the option bin volume is set