37 Axis(
int n,
double lo,
double up)
38 : lower(lo), upper(up), nbins(n) {}
44 : IAxis(a), lower(a.lower), upper(a.upper), nbins(a.nbins) {}
76 int bins()
const {
return nbins; }
87 return index < 0? -std::numeric_limits<double>::max():
88 lower + double(std::min(index, nbins))*binWidth(0);
100 return index >= nbins? std::numeric_limits<double>::max():
101 lower + double(std::max(index, -1) + 1)*binWidth(0);
112 return (upper - lower)/double(nbins);
125 if ( coord >= upper )
return OVERFLOW_BIN;
126 else if ( coord < lower )
return UNDERFLOW_BIN;
127 else return int((coord - lower)/binWidth(0));
135 return lower + (double(index) + 0.5)*binWidth(0);