13 #ifndef ROOT_Fit_BinData 14 #define ROOT_Fit_BinData 64 explicit BinData(
unsigned int maxpoints = 0,
unsigned int dim = 1,
86 BinData(
unsigned int n,
const double * dataX,
const double * val,
87 const double *
ex ,
const double * eval );
92 BinData(
unsigned int n,
const double * dataX,
const double * dataY,
93 const double * val,
const double * ex ,
const double *
ey,
94 const double * eval );
99 BinData(
unsigned int n,
const double * dataX,
const double * dataY,
100 const double * dataZ,
const double * val,
const double * ex ,
101 const double * ey ,
const double * ez ,
const double * eval );
166 void Add(
double x,
double y );
172 void Add(
double x,
double y,
double ey );
178 void Add(
double x,
double y,
double ex,
double ey );
184 void Add(
double x,
double y,
double ex,
double eyl,
double eyh );
189 void Add(
const double* x,
double val );
194 void Add(
const double* x,
double val,
double eval );
199 void Add(
const double* x,
double val,
const double* ex,
double eval );
204 void Add(
const double* x,
double val,
const double* ex,
double elval,
double ehval );
217 double Value(
unsigned int ipoint )
const 231 double Error(
unsigned int ipoint )
const 255 return (eval != 0.0) ? 1.0/eval : 0.0;
269 return (el+eh) / 2.0;
276 void GetAsymError(
unsigned int ipoint,
double& lowError,
double& highError )
const 318 return (eval != 0.0) ? eval : 0.0;
332 return 2.0 / (el+eh);
347 const double *
GetPoint(
unsigned int ipoint,
double & value )
const 350 value =
Value( ipoint );
364 assert( icoord <
fDim );
384 for (
unsigned int i=0; i <
fDim; i++ )
405 const double*
GetPoint(
unsigned int ipoint,
double & value,
double & invError )
const 410 double e =
Error( ipoint );
415 invError = ( e != 0.0 ) ? 1.0/e : 1.0;
433 errvalue =
Error( ipoint );
446 const double*
GetPointError(
unsigned int ipoint,
double & errlow,
double & errhigh)
const 470 assert( icoord <
fDim );
472 assert( ipoint <
fBinEdge.front().size() );
494 for (
unsigned int i=0; i <
fDim; i++ )
void GetAsymError(unsigned int ipoint, double &lowError, double &highError) const
bool HaveAsymErrors() const
flag to control if data provides asymmetric errors on the value
bool HasBinEdges() const
query if the data store the bin edges instead of the center
Namespace for new ROOT classes and functions.
double * fpTmpBinEdgeVector
ErrorType GetErrorType() const
retrieve the errortype
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.
const double * fDataErrorPtr
void AddBinUpEdge(const double *xup)
add the bin width data, a pointer to an array with the bin upper edge information.
std::vector< const double *> fCoordErrorsPtr
const double * Coords(unsigned int ipoint) const
return a pointer to the coordinates data for the given fit point
double * fpTmpCoordErrorVector
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...
std::vector< double > fData
Stores the data values the same way as the coordinates.
std::vector< std::vector< double > > fBinEdge
double RefVolume() const
retrieve the reference volume used to normalize the data when the option bin volume is set ...
void Initialize(unsigned int newPoints, unsigned int dim=1, ErrorType err=kValueError)
double Error(unsigned int ipoint) const
return error on the value for the given fit point Safe (but slower) method returning correctly the er...
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...
DataOptions : simple structure holding the options on how the data are filled.
double GetCoordErrorComponent(unsigned int ipoint, unsigned int icoord) const
returns a single coordinate error component of a point.
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...
std::vector< double > fDataError
std::vector< double > fDataErrorHigh
virtual ~BinData()
destructor
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
void SetRefVolume(double value)
set the reference volume used to normalize the data when the option bin volume is set ...
double GetBinUpEdgeComponent(unsigned int ipoint, unsigned int icoord) const
returns a single coordinate error component of a point.
bool HaveCoordErrors() const
flag to control if data provides error on the coordinates
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...
class describing the range in the coordinates it supports multiple range in a coordinate.
const double * fDataErrorLowPtr
void Add(double x, double y)
add one dim data with only coordinate and values
TFitResultPtr Fit(FitObject *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
std::vector< double > fDataErrorLow
std::vector< std::vector< double > > fCoordErrors
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
BinData & operator=(const BinData &rhs)
BinData & LogTransform()
apply a Log transformation of the data values can be used for example when fitting an exponential or ...
double Value(unsigned int ipoint) const
return the value for the given fit point
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...
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...
const double * fDataErrorHighPtr
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...
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...