13 #ifndef ROOT_Fit_BinData
14 #define ROOT_Fit_BinData
16 #include "Fit/FitData.h"
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
219 assert( ipoint < fMaxPoints );
229 const double *
ValuePtr(
unsigned int ipoint )
const
240 const double *
ErrorPtr(
unsigned int ipoint)
const{
241 assert( ipoint < fMaxPoints );
251 double Error(
unsigned int ipoint )
const
253 assert( ipoint < fMaxPoints );
275 return (eval != 0.0) ? 1.0/eval : 0.0;
289 return (el+eh) / 2.0;
296 void GetAsymError(
unsigned int ipoint,
double& lowError,
double& highError )
const
316 assert( ipoint < fMaxPoints );
340 return (eval != 0.0) ? eval : 0.0;
354 return 2.0 / (el+eh);
370 const double *
GetPoint(
unsigned int ipoint,
double & value )
const
372 assert( ipoint < fMaxPoints );
373 value =
Value( ipoint );
386 assert( ipoint < fMaxPoints );
387 assert( icoord < fDim );
403 assert( ipoint < fMaxPoints );
407 for (
unsigned int i=0; i < fDim; i++ )
428 const double*
GetPoint(
unsigned int ipoint,
double & value,
double & invError )
const
430 assert( ipoint < fMaxPoints );
433 double e =
Error( ipoint );
438 invError = ( e != 0.0 ) ? 1.0/e : 1.0;
453 assert( ipoint < fMaxPoints );
456 errvalue =
Error( ipoint );
469 const double*
GetPointError(
unsigned int ipoint,
double & errlow,
double & errhigh)
const
471 assert( ipoint < fMaxPoints );
493 assert( icoord < fDim );
495 assert( ipoint <
fBinEdge.front().size() );
515 assert( ipoint < fMaxPoints );
517 for (
unsigned int i=0; i < fDim; i++ )
const double * GetPointError(unsigned int ipoint, double &errvalue) const
double SumOfContent() const
const double * fDataErrorHighPtr
const double * GetPointError(unsigned int ipoint, double &errlow, double &errhigh) const
void Add(const double *x, double val)
std::vector< double > fData
double GetBinUpEdgeComponent(unsigned int ipoint, unsigned int icoord) const
std::vector< const double * > fCoordErrorsPtr
void Append(unsigned int newPoints, unsigned int dim=1, ErrorType err=kValueError)
void Add(const double *x, double val, const double *ex, double elval, double ehval)
std::vector< double > fDataErrorLow
BinData(const DataOptions &opt, const DataRange &range, unsigned int maxpoints=0, unsigned int dim=1, ErrorType err=kValueError)
void AddBinUpEdge(const double *xup)
const double * GetPoint(unsigned int ipoint, double &value, double &invError) const
const double * fDataErrorLowPtr
const double * ErrorPtr(unsigned int ipoint) const
void Add(double x, double y, double ey)
std::vector< double > fDataErrorHigh
const double * BinUpEdge(unsigned int ipoint) const
double InvError(unsigned int ipoint) const
BinData(unsigned int maxpoints=0, unsigned int dim=1, ErrorType err=kValueError)
double * fpTmpCoordErrorVector
double Value(unsigned int ipoint) const
BinData(unsigned int n, const double *dataX, const double *dataY, const double *val, const double *ex, const double *ey, const double *eval)
void SetRefVolume(double value)
const double * ValuePtr(unsigned int ipoint) const
std::vector< std::vector< double > > fCoordErrors
ErrorType GetErrorType() const
const double * GetPoint(unsigned int ipoint, double &value) const
void Add(double x, double y)
bool HaveCoordErrors() const
void Initialize(unsigned int newPoints, unsigned int dim=1, ErrorType err=kValueError)
BinData(unsigned int n, const double *dataX, const double *val, const double *ex, const double *eval)
double GetCoordErrorComponent(unsigned int ipoint, unsigned int icoord) const
void Add(const double *x, double val, const double *ex, double eval)
std::vector< std::vector< double > > fBinEdge
void GetAsymError(unsigned int ipoint, double &lowError, double &highError) const
BinData(unsigned int n, const double *dataX, const double *dataY, const double *dataZ, const double *val, const double *ex, const double *ey, const double *ez, const double *eval)
BinData(const BinData &rhs)
void Add(double x, double y, double ex, double eyl, double eyh)
void Add(const double *x, double val, double eval)
BinData(const DataOptions &opt, unsigned int maxpoints=0, unsigned int dim=1, ErrorType err=kValueError)
const double * fDataErrorPtr
void Add(double x, double y, double ex, double ey)
double * fpTmpBinEdgeVector
std::vector< double > fDataError
const double * CoordErrors(unsigned int ipoint) const
double Error(unsigned int ipoint) const
BinData & operator=(const BinData &rhs)
bool HaveAsymErrors() const
double SumOfError2() const