A RAxisGrow that has a label assigned to each bin and a bin width of 1.
While filling still works through coordinates (i.e. arrays of doubles), RAxisLabels allows to convert a string to a bin number or the bin's coordinate center. The number of labels and the number of bins reported by RAxisGrow might differ: the RAxisGrow will only grow when seeing a Fill(), while the RAxisLabels will add a new label whenever GetBinCenter() is called.
Implementation details: Filling happens often; GetBinCenter() needs to be fast. Thus the unordered_map. The painter needs the reverse: it wants the label for bin 0, bin 1 etc. The axis should only store the bin labels once; referencing them is (due to re-allocation, hashing etc) non-trivial. So instead, build a vector<string_view> for the few times the axis needs to be painted.
Definition at line 736 of file RAxis.hxx.
|
| | RAxisLabels (const std::vector< std::string > &labels) |
| | Construct a RAxisLables from a vector of strings. More...
|
| |
| | RAxisLabels (const std::vector< std::string_view > &labels) |
| | Construct a RAxisLables from a vector of string_views. More...
|
| |
| | RAxisLabels (std::string_view title, const std::vector< std::string > &labels) |
| | Construct a RAxisLables from a vector of strings, with title. More...
|
| |
| | RAxisLabels (std::string_view title, const std::vector< std::string_view > &labels) |
| | Construct a RAxisLables from a vector of string_views, with title. More...
|
| |
| double | GetBinCenter (const std::string &label) |
| | Get the center of the bin with label. More...
|
| |
| int | GetBinIndex (const std::string &label) |
| | Get the bin index with label. More...
|
| |
| std::vector< std::string_view > | GetBinLabels () const |
| | Build a vector of labels. The position in the vector defines the label's bin. More...
|
| |
| | RAxisGrow (int nbins, double low, double high) noexcept |
| | Initialize a RAxisGrow. More...
|
| |
| | RAxisGrow (std::string_view title, int nbins, double low, double high) noexcept |
| | Initialize a RAxisGrow. More...
|
| |
| bool | CanGrow () const |
| | This axis kind can increase its range. More...
|
| |
| int | Grow (int toBin) |
| | Grow this axis to make the "virtual bin" toBin in-range. More...
|
| |
| | operator RAxisConfig () const |
| | Convert to RAxisConfig. More...
|
| |
| | RAxisEquidistant ()=default |
| |
| | RAxisEquidistant (int nbinsNoOver, double low, double high) noexcept |
| | Initialize a RAxisEquidistant. More...
|
| |
| | RAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high) noexcept |
| | Initialize a RAxisEquidistant. More...
|
| |
| int | FindBin (double x) const noexcept |
| | Find the bin index for the given coordinate. More...
|
| |
| double | GetBinCenter (int bin) const noexcept |
| | Get the bin center for the given bin index. More...
|
| |
| double | GetBinFrom (int bin) const noexcept |
| | Get the low bin border for the given bin index. More...
|
| |
| int | GetBinIndexForLowEdge (double x) const noexcept |
| | If the coordinate x is a bin low edge (within 1E-6 of the coordinate), return the bin for which this is a low edge. More...
|
| |
| double | GetBinTo (int bin) const noexcept |
| | Get the high bin border for the given bin index. More...
|
| |
| double | GetBinWidth () const noexcept |
| | Get the width of the bins. More...
|
| |
| double | GetInverseBinWidth () const noexcept |
| | Get the inverse of the width of the bins. More...
|
| |
| double | GetMaximum () const noexcept |
| | Get the high end of the axis range. More...
|
| |
| double | GetMinimum () const noexcept |
| | Get the low end of the axis range. More...
|
| |
| | operator RAxisConfig () const |
| | Convert to RAxisConfig. More...
|
| |
| | RAxisBase (int nbinsNoOver, bool canGrow) noexcept |
| | Construct a RAxisBase. More...
|
| |
| | RAxisBase (std::string_view title, int nbinsNoOver, bool canGrow) noexcept |
| | Construct a RAxisBase. More...
|
| |
| int | GetNBins () const noexcept |
| | Get the number of bins, including under- and overflow. More...
|
| |
| int | GetNBinsNoOver () const noexcept |
| | Get the number of bins, excluding under- and overflow. More...
|
| |
| int | GetNOverflowBins () const noexcept |
| | Get the number of over- and underflow bins: 0 for growable axes, 2 otherwise. More...
|
| |
| int | GetOverflowBin () const noexcept |
| | Get the bin index for the underflow bin (or the next bin outside range if CanGrow()). More...
|
| |
| const std::string & | GetTitle () const |
| |
| int | GetUnderflowBin () const noexcept |
| | Get the bin index for the underflow bin. More...
|
| |
| bool | IsOverflowBin (int bin) const noexcept |
| | Whether the bin index is referencing a bin higher than the axis range. More...
|
| |
| bool | IsUnderflowBin (int bin) const noexcept |
| | Whether the bin index is referencing a bin lower than the axis range. More...
|
| |
| const_iterator | begin () const noexcept |
| | Get a const_iterator pointing to the first non-underflow bin. More...
|
| |
| const_iterator | begin_with_underflow () const noexcept |
| | Get a const_iterator pointing the underflow bin. More...
|
| |
| const_iterator | end () const noexcept |
| | Get a const_iterator pointing right beyond the last non-overflow bin (i.e. More...
|
| |
| const_iterator | end_with_overflow () const noexcept |
| | Get a const_iterator pointing right beyond the overflow bin. More...
|
| |
|
| enum class | EFindStatus { kCanGrow
, kValid
} |
| | Status of FindBin(x) More...
|
| |
| static bool | CanGrow () noexcept |
| | This axis cannot grow. More...
|
| |
| static constexpr const int | kIgnoreBin = -1 |
| | FindBin() returns this bin to signal that the bin number is invalid. More...
|
| |
| static constexpr const int | kNOverflowBins [4] = {0, 1, 1, 2} |
| | Extra bins for each EAxisOverflow value. More...
|
| |
| | RAxisEquidistant (int nbinsNoOver, double low, double high, bool canGrow) noexcept |
| | Initialize a RAxisEquidistant. More...
|
| |
| | RAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high, bool canGrow) noexcept |
| | Initialize a RAxisEquidistant. More...
|
| |
| | RAxisBase ()=default |
| | Default construct a RAxisBase (for use by derived classes for I/O) More...
|
| |
| int | AdjustOverflowBinNumber (double rawbin) const |
| | Given rawbin (<0 for underflow, >= GetNBinsNoOver() for overflow), determine the actual bin number taking into account how over/underflow should be handled. More...
|
| |
| | RAxisBase (const RAxisBase &)=default |
| |
| | RAxisBase (RAxisBase &&)=default |
| |
| RAxisBase & | operator= (const RAxisBase &)=default |
| |
| RAxisBase & | operator= (RAxisBase &&)=default |
| |
| static double | GetInvBinWidth (int nbinsNoOver, double lowOrHigh, double highOrLow) |
| | Determine the inverse bin width. More...
|
| |
| double | fInvBinWidth = 0. |
| | The inverse of the bin width. More...
|
| |
| double | fLow = 0. |
| | The lower limit of the axis. More...
|
| |