13 #ifndef ROOT_Fit_DataRange
14 #define ROOT_Fit_DataRange
38 typedef std::vector<std::pair<double,double> >
RangeSet;
56 DataRange(
double xmin,
double xmax,
double ymin,
double ymax);
60 DataRange(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
70 unsigned int Size(
unsigned int icoord = 0)
const {
80 for (
unsigned int icoord = 0; icoord <
fRanges.size(); ++icoord)
81 if (
fRanges[icoord].size() > 0)
return true;
97 std::pair<double, double>
operator() (
unsigned int icoord = 0,
unsigned int irange = 0)
const;
103 void GetRange(
unsigned int irange,
unsigned int icoord,
double & xmin,
double & xmax)
const {
106 xmin =
fRanges[icoord][irange].first;
107 xmax =
fRanges[icoord][irange].second;
114 void GetRange(
unsigned int icoord,
double & xmin,
double & xmax)
const {
117 xmin =
fRanges[icoord].front().first;
118 xmax =
fRanges[icoord].front().second;
124 void GetRange(
double & xmin,
double & xmax,
unsigned int irange = 0)
const {
GetRange(irange,0,xmin,xmax); }
128 void GetRange(
double & xmin,
double & xmax,
double & ymin,
double & ymax,
unsigned int irange = 0)
const {
134 void GetRange(
double & xmin,
double & xmax,
double & ymin,
double & ymax,
double & zmin,
double & zmax,
unsigned int irange=0)
const {
140 void GetRange(
double * xmin,
double * xmax,
unsigned int irange = 0)
const {
141 for (
unsigned int i = 0; i <
fRanges.size(); ++i)
158 void AddRange(
unsigned int icoord ,
double xmin,
double xmax );
172 void AddRange(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax ) {
180 void SetRange(
unsigned int icoord ,
double xmin,
double xmax );
194 void SetRange(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax ) {
200 void Clear (
unsigned int icoord = 0 );
205 bool IsInside(
double x,
unsigned int icoord = 0)
const;
212 for (
unsigned int idim = 0; idim <
fRanges.size(); ++idim) {
214 if (!ret)
return ret;
static void GetInfRange(double &x1, double &x2)
void AddRange(double xmin, double xmax)
std::vector< std::pair< double, double > > RangeSet
void AddRange(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
bool IsInside(const double *x) const
void GetRange(double &xmin, double &xmax, double &ymin, double &ymax, unsigned int irange=0) const
std::vector< RangeSet > RangeIntervals
void AddRange(double xmin, double xmax, double ymin, double ymax)
void SetRange(double xmin, double xmax, double ymin, double ymax)
void GetRange(double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax, unsigned int irange=0) const
void CleanRangeSet(unsigned int icoord, double xmin, double xmax)
bool IsInside(double x, unsigned int icoord=0) const
void GetRange(double &xmin, double &xmax, unsigned int irange=0) const
unsigned int NDim() const
DataRange(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
void Clear(unsigned int icoord=0)
void AddRange(unsigned int icoord, double xmin, double xmax)
const RangeSet & Ranges(unsigned int icoord=0) const
DataRange(unsigned int dim=1)
DataRange(double xmin, double xmax, double ymin, double ymax)
unsigned int Size(unsigned int icoord=0) const
void GetRange(double *xmin, double *xmax, unsigned int irange=0) const
void GetRange(unsigned int icoord, double &xmin, double &xmax) const
void GetRange(unsigned int irange, unsigned int icoord, double &xmin, double &xmax) const
void SetRange(unsigned int icoord, double xmin, double xmax)
void SetRange(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
void SetRange(double xmin, double xmax)
DataRange(double xmin, double xmax)
std::pair< double, double > operator()(unsigned int icoord=0, unsigned int irange=0) const