Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::RAxisEquidistant Class Reference

Axis with equidistant bin borders.

Defined by lower l and upper u limit and the number of bins n. All bins have the same width (u-l)/n.

This axis cannot grow; use RAxisGrow for that.

Definition at line 389 of file RAxis.hxx.

Public Member Functions

 RAxisEquidistant ()=default
 
 RAxisEquidistant (int nbinsNoOver, double low, double high) noexcept
 Initialize a RAxisEquidistant.
 
 RAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high) noexcept
 Initialize a RAxisEquidistant.
 
bool CanGrow () const noexcept override
 This axis cannot grow.
 
int FindBin (double x) const noexcept final
 Find the adjusted bin index (returning kUnderflowBin for underflow and kOverflowBin for overflow) for the given coordinate.
 
double GetBinCenter (int bin) const final
 Get the bin center for the given bin index.
 
double GetBinFrom (int bin) const final
 Get the low bin border for the given bin index.
 
int GetBinIndexForLowEdge (double x) const noexcept final
 If the coordinate x is within 10 ULPs of a bin low edge coordinate, return the bin for which this is a low edge.
 
double GetBinWidth () const noexcept
 Get the width of the bins.
 
double GetInverseBinWidth () const noexcept
 Get the inverse of the width of the bins.
 
int GetNBinsNoOver () const noexcept final
 Get the number of bins, excluding under- and overflow.
 
 operator RAxisConfig () const
 Convert to RAxisConfig.
 
- Public Member Functions inherited from ROOT::Experimental::RAxisBase
double GetBinTo (int bin) const
 Get the high bin border ("right edge") for the given bin index.
 
int GetFirstBin () const noexcept
 Get the bin index for the first bin of the axis.
 
int GetLastBin () const noexcept
 Get the bin index for the last bin of the axis.
 
double GetMaximum () const
 Get the high end of the axis range.
 
double GetMinimum () const
 Get the low end of the axis range.
 
int GetNBins () const noexcept
 Get the number of bins, including under- and overflow.
 
int GetNOverflowBins () const noexcept
 Get the number of over- and underflow bins: 0 for growable axes, 2 otherwise.
 
int GetOverflowBin () const noexcept
 Get the bin index for the overflow bin (or kInvalidBin if CanGrow()).
 
const std::string & GetTitle () const
 Get the axis's title.
 
int GetUnderflowBin () const noexcept
 Get the bin index for the underflow bin (or kInvalidBin if CanGrow()).
 
bool HasSameBinningAs (const RAxisBase &other) const
 Check if two axes use the same binning convention, i.e.
 
const_iterator begin () const noexcept
 Get a const_iterator pointing to the first regular bin.
 
const_iterator end () const noexcept
 Get a const_iterator pointing beyond the last regular bin.
 

Protected Member Functions

double FindBinRaw (double x) const noexcept
 Find the raw bin index (not adjusted) for the given coordinate.
 
bool HasSameBinBordersAs (const RAxisBase &other) const override
 See RAxisBase::HasSameBinBordersAs.
 
- Protected Member Functions inherited from ROOT::Experimental::RAxisBase
 RAxisBase () noexcept(noexcept(std::string()))=default
 Default construct a RAxisBase (for use by derived classes for I/O)
 
 RAxisBase (std::string_view title) noexcept
 Construct a RAxisBase.
 
virtual ~RAxisBase ()
 Virtual destructor needed in this inheritance-based design.
 
int AdjustOverflowBinNumber (double rawbin) const
 Given rawbin (<0 for underflow, >=GetNBinsNoOver() for overflow), determine the bin number taking into account how over/underflow should be handled.
 
 RAxisBase (const RAxisBase &)=default
 
 RAxisBase (RAxisBase &&)=default
 
RAxisBaseoperator= (const RAxisBase &)=default
 
RAxisBaseoperator= (RAxisBase &&)=default
 

Static Protected Member Functions

static double GetInvBinWidth (int nbinsNoOver, double lowOrHigh, double highOrLow)
 Determine the inverse bin width.
 

Protected Attributes

double fInvBinWidth = 0.
 The inverse of the bin width.
 
double fLow = 0.
 The lower limit of the axis.
 
unsigned int fNBinsNoOver
 Number of bins excluding under- and overflow.
 

Additional Inherited Members

- Static Public Attributes inherited from ROOT::Experimental::RAxisBase
static constexpr const int kInvalidBin = 0
 Special bin index returned to signify that no bin matches a request.
 
static constexpr const int kOverflowBin = -2
 Index of the overflow bin, if any.
 
static constexpr const int kUnderflowBin = -1
 Index of the underflow bin, if any.
 

#include <ROOT/RAxis.hxx>

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

Constructor & Destructor Documentation

◆ RAxisEquidistant() [1/3]

ROOT::Experimental::RAxisEquidistant::RAxisEquidistant ( )
default

◆ RAxisEquidistant() [2/3]

ROOT::Experimental::RAxisEquidistant::RAxisEquidistant ( std::string_view  title,
int  nbinsNoOver,
double  low,
double  high 
)
inlineexplicitnoexcept

Initialize a RAxisEquidistant.

Parameters
[in]title- axis title used for graphics and text representation.
nbinsNoOver- number of bins in the axis, excluding under- and overflow bins.
low- the low axis range. Any coordinate below that is considered as underflow. The first bin's lower edge is at this value.
high- the high axis range. Any coordinate above that is considered as overflow. The last bin's higher edge is at this value.

Definition at line 427 of file RAxis.hxx.

◆ RAxisEquidistant() [3/3]

ROOT::Experimental::RAxisEquidistant::RAxisEquidistant ( int  nbinsNoOver,
double  low,
double  high 
)
inlineexplicitnoexcept

Initialize a RAxisEquidistant.

Parameters
nbinsNoOver- number of bins in the axis, excluding under- and overflow bins.
low- the low axis range. Any coordinate below that is considered as underflow. The first bin's lower edge is at this value.
high- the high axis range. Any coordinate above that is considered as overflow. The last bin's higher edge is at this value.

Definition at line 441 of file RAxis.hxx.

Member Function Documentation

◆ CanGrow()

bool ROOT::Experimental::RAxisEquidistant::CanGrow ( ) const
inlineoverridevirtualnoexcept

This axis cannot grow.

Implements ROOT::Experimental::RAxisBase.

Reimplemented in ROOT::Experimental::RAxisGrow.

Definition at line 462 of file RAxis.hxx.

◆ FindBin()

int ROOT::Experimental::RAxisEquidistant::FindBin ( double  x) const
inlinefinalvirtualnoexcept

Find the adjusted bin index (returning kUnderflowBin for underflow and kOverflowBin for overflow) for the given coordinate.

Note
Passing a bin border coordinate can either return the bin above or below the bin border. I.e. don't do that for reliable results!

Implements ROOT::Experimental::RAxisBase.

Definition at line 455 of file RAxis.hxx.

◆ FindBinRaw()

double ROOT::Experimental::RAxisEquidistant::FindBinRaw ( double  x) const
inlineprotectednoexcept

Find the raw bin index (not adjusted) for the given coordinate.

The resulting raw bin is 0-based.

Note
Passing a bin border coordinate can either return the bin above or below the bin border. I.e. don't do that for reliable results!

Definition at line 411 of file RAxis.hxx.

◆ GetBinCenter()

double ROOT::Experimental::RAxisEquidistant::GetBinCenter ( int  bin) const
inlinefinalvirtual

Get the bin center for the given bin index.

For the bin == 1 (the first bin) of 2 bins for an axis (0., 1.), this returns 0.25. The result of this method on an overflow or underflow bin is unspecified.

Implements ROOT::Experimental::RAxisBase.

Definition at line 474 of file RAxis.hxx.

◆ GetBinFrom()

double ROOT::Experimental::RAxisEquidistant::GetBinFrom ( int  bin) const
inlinefinalvirtual

Get the low bin border for the given bin index.

For the bin == 1 (the first bin) of 2 bins for an axis (0., 1.), this returns 0. The result of this method on an underflow bin is unspecified.

Implements ROOT::Experimental::RAxisBase.

Definition at line 480 of file RAxis.hxx.

◆ GetBinIndexForLowEdge()

int ROOT::Experimental::RAxisEquidistant::GetBinIndexForLowEdge ( double  x) const
finalvirtualnoexcept

If the coordinate x is within 10 ULPs of a bin low edge coordinate, return the bin for which this is a low edge.

If it's not a bin edge, return kInvalidBin.

Implements ROOT::Experimental::RAxisBase.

Definition at line 51 of file RAxis.cxx.

◆ GetBinWidth()

double ROOT::Experimental::RAxisEquidistant::GetBinWidth ( ) const
inlinenoexcept

Get the width of the bins.

Definition at line 465 of file RAxis.hxx.

◆ GetInvBinWidth()

static double ROOT::Experimental::RAxisEquidistant::GetInvBinWidth ( int  nbinsNoOver,
double  lowOrHigh,
double  highOrLow 
)
inlinestaticprotected

Determine the inverse bin width.

Parameters
nbinsNoOver- number of bins without unter-/overflow
lowOrHigh- first axis boundary
highOrLow- second axis boundary

Definition at line 399 of file RAxis.hxx.

◆ GetInverseBinWidth()

double ROOT::Experimental::RAxisEquidistant::GetInverseBinWidth ( ) const
inlinenoexcept

Get the inverse of the width of the bins.

Definition at line 468 of file RAxis.hxx.

◆ GetNBinsNoOver()

int ROOT::Experimental::RAxisEquidistant::GetNBinsNoOver ( ) const
inlinefinalvirtualnoexcept

Get the number of bins, excluding under- and overflow.

Implements ROOT::Experimental::RAxisBase.

Definition at line 449 of file RAxis.hxx.

◆ HasSameBinBordersAs()

bool ROOT::Experimental::RAxisEquidistant::HasSameBinBordersAs ( const RAxisBase other) const
overrideprotectedvirtual

See RAxisBase::HasSameBinBordersAs.

Reimplemented from ROOT::Experimental::RAxisBase.

Definition at line 76 of file RAxis.cxx.

◆ operator RAxisConfig()

ROOT::Experimental::RAxisEquidistant::operator RAxisConfig ( ) const
inline

Convert to RAxisConfig.

Definition at line 446 of file RAxis.hxx.

Member Data Documentation

◆ fInvBinWidth

double ROOT::Experimental::RAxisEquidistant::fInvBinWidth = 0.
protected

The inverse of the bin width.

Definition at line 392 of file RAxis.hxx.

◆ fLow

double ROOT::Experimental::RAxisEquidistant::fLow = 0.
protected

The lower limit of the axis.

Definition at line 391 of file RAxis.hxx.

◆ fNBinsNoOver

unsigned int ROOT::Experimental::RAxisEquidistant::fNBinsNoOver
protected

Number of bins excluding under- and overflow.

Definition at line 393 of file RAxis.hxx.

Libraries for ROOT::Experimental::RAxisEquidistant:

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