Logo ROOT   6.08/07
Reference Guide
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
ROOT::Experimental::TAxisIrregular Class Reference

An axis with non-equidistant bins (also known as "variable binning").

It is defined by an array of bin borders - one more than the number of (non-overflow-) bins it has! As an example, an axis with two bin needs three bin borders:

This axis cannot grow; the size of new bins would not be well defined.

Definition at line 505 of file TAxis.hxx.

Public Member Functions

 TAxisIrregular ()=default
 
 TAxisIrregular (const std::vector< double > &binborders)
 Construct a TAxisIrregular from a vector of bin borders. More...
 
 TAxisIrregular (std::vector< double > &&binborders) noexcept
 Construct a TAxisIrregular from a vector of bin borders. More...
 
 TAxisIrregular (std::string_view title, const std::vector< double > &binborders)
 Construct a TAxisIrregular from a vector of bin borders. More...
 
 TAxisIrregular (std::string_view title, std::vector< double > &&binborders) noexcept
 Construct a TAxisIrregular from a vector of bin borders. More...
 
int FindBin (double x) const noexcept
 Find the bin index corresponding to coordinate x. More...
 
const std::vector< double > & GetBinBorders () const noexcept
 Access to the bin borders used by this axis. More...
 
double GetBinCenter (int bin) const noexcept
 Get the bin center of the bin with the given index. More...
 
double GetBinFrom (int bin) const noexcept
 Get the lower bin border for a given bin index. More...
 
double GetBinTo (int bin) const noexcept
 Get the higher bin border for a given bin index. More...
 
- Public Member Functions inherited from ROOT::Experimental::TAxisBase
 TAxisBase (int nbinsNoOver, bool canGrow) noexcept
 Construct a TAxisBase. More...
 
 TAxisBase (std::string_view title, int nbinsNoOver, bool canGrow) noexcept
 Construct a TAxisBase. 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...
 

Static Public Member Functions

static bool CanGrow () noexcept
 This axis cannot be extended. More...
 

Private Attributes

std::vector< double > fBinBorders
 Bin borders, one more than the number of non-overflow bins. More...
 

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::TAxisBase
enum  EFindStatus { EFindStatus::kCanGrow, EFindStatus::kValid }
 Status of FindBin(x) More...
 
- Static Public Attributes inherited from ROOT::Experimental::TAxisBase
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...
 
- Protected Member Functions inherited from ROOT::Experimental::TAxisBase
 TAxisBase ()
 Default construct a TAxisBase (for use by derived classes for I/O) More...
 
int AdjustOverflowBinNumber (int 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...
 
 TAxisBase (const TAxisBase &)=default
 
 TAxisBase (TAxisBase &&)=default
 
TAxisBaseoperator= (const TAxisBase &)=default
 
TAxisBaseoperator= (TAxisBase &&)=default
 

#include <ROOT/TAxis.hxx>

Inheritance diagram for ROOT::Experimental::TAxisIrregular:
[legend]

Constructor & Destructor Documentation

◆ TAxisIrregular() [1/5]

ROOT::Experimental::TAxisIrregular::TAxisIrregular ( )
default

◆ TAxisIrregular() [2/5]

ROOT::Experimental::TAxisIrregular::TAxisIrregular ( const std::vector< double > &  binborders)
inlineexplicit

Construct a TAxisIrregular from a vector of bin borders.

Note
The bin borders must be sorted in increasing order!

Definition at line 515 of file TAxis.hxx.

◆ TAxisIrregular() [3/5]

ROOT::Experimental::TAxisIrregular::TAxisIrregular ( std::vector< double > &&  binborders)
inlineexplicitnoexcept

Construct a TAxisIrregular from a vector of bin borders.

Note
The bin borders must be sorted in increasing order! Faster, noexcept version taking an rvalue of binborders. The compiler will know when it can take this one.

Definition at line 527 of file TAxis.hxx.

◆ TAxisIrregular() [4/5]

ROOT::Experimental::TAxisIrregular::TAxisIrregular ( std::string_view  title,
const std::vector< double > &  binborders 
)
inlineexplicit

Construct a TAxisIrregular from a vector of bin borders.

Note
The bin borders must be sorted in increasing order!

Definition at line 537 of file TAxis.hxx.

◆ TAxisIrregular() [5/5]

ROOT::Experimental::TAxisIrregular::TAxisIrregular ( std::string_view  title,
std::vector< double > &&  binborders 
)
inlineexplicitnoexcept

Construct a TAxisIrregular from a vector of bin borders.

Note
The bin borders must be sorted in increasing order! Faster, noexcept version taking an rvalue of binborders. The compiler will know when it can take this one.

Definition at line 549 of file TAxis.hxx.

Member Function Documentation

◆ CanGrow()

static bool ROOT::Experimental::TAxisIrregular::CanGrow ( )
inlinestaticnoexcept

This axis cannot be extended.

Definition at line 614 of file TAxis.hxx.

◆ FindBin()

int ROOT::Experimental::TAxisIrregular::FindBin ( double  x) const
inlinenoexcept

Find the bin index corresponding to coordinate x.

If the coordinate is below the axis range, return 0. If it is above, return N + 1 for an axis with N non-overflow bins.

Definition at line 560 of file TAxis.hxx.

◆ GetBinBorders()

const std::vector<double>& ROOT::Experimental::TAxisIrregular::GetBinBorders ( ) const
inlinenoexcept

Access to the bin borders used by this axis.

Definition at line 617 of file TAxis.hxx.

◆ GetBinCenter()

double ROOT::Experimental::TAxisIrregular::GetBinCenter ( int  bin) const
inlinenoexcept

Get the bin center of the bin with the given index.

For the bin at index 0 (i.e. the underflow bin), a bin center of std::numeric_limits<double>::min() is returned, i.e. the minimum value that can be held in a double. Similarly, for the bin at index N + 1 (i.e. the overflow bin), a bin center of std::numeric_limits<double>::max() is returned, i.e. the maximum value that can be held in a double.

Definition at line 581 of file TAxis.hxx.

◆ GetBinFrom()

double ROOT::Experimental::TAxisIrregular::GetBinFrom ( int  bin) const
inlinenoexcept

Get the lower bin border for a given bin index.

For the bin at index 0 (i.e. the underflow bin), a lower bin border of std::numeric_limits<double>::min() is returned, i.e. the minimum value that can be held in a double.

Definition at line 594 of file TAxis.hxx.

◆ GetBinTo()

double ROOT::Experimental::TAxisIrregular::GetBinTo ( int  bin) const
inlinenoexcept

Get the higher bin border for a given bin index.

For the bin at index N + 1 (i.e. the overflow bin), a bin border of std::numeric_limits<double>::max() is returned, i.e. the maximum value that can be held in a double.

Definition at line 607 of file TAxis.hxx.

Member Data Documentation

◆ fBinBorders

std::vector<double> ROOT::Experimental::TAxisIrregular::fBinBorders
private

Bin borders, one more than the number of non-overflow bins.

Definition at line 508 of file TAxis.hxx.


The documentation for this class was generated from the following file: