ROOT 6.10/09 Reference Guide 
An axis that can extend its range, keeping the number of its bins unchanged.
The axis is constructed with an initial range. Apart from its ability to grow, this axis behaves like a TAxisEquidistant.
Public Member Functions  
TAxisGrow (std::string_view title, int nbins, double low, double high) noexcept  
Initialize a TAxisGrow. More...  
TAxisGrow (int nbins, double low, double high) noexcept  
Initialize a TAxisGrow. 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 inrange. More...  
operator TAxisConfig () const  
Convert to TAxisConfig. More...  
Public Member Functions inherited from ROOT::Experimental::TAxisEquidistant  
TAxisEquidistant ()=default  
TAxisEquidistant (int nbinsNoOver, double low, double high) noexcept  
Initialize a TAxisEquidistant. More...  
TAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high) noexcept  
Initialize a TAxisEquidistant. 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 1E6 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 TAxisConfig () const  
Convert to TAxisConfig. More...  
Public Member Functions inherited from ROOT::Experimental::TAxisBase  
TAxisBase (std::string_view title, int nbinsNoOver, bool canGrow) noexcept  
Construct a TAxisBase. More...  
TAxisBase (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 nonunderflow 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 nonoverflow bin (i.e. More...  
const_iterator  end_with_overflow () const noexcept 
Get a const_iterator pointing right beyond the overflow bin. More...  
Additional Inherited Members  
Public Types inherited from ROOT::Experimental::TAxisBase  
enum  EFindStatus { EFindStatus::kCanGrow, EFindStatus::kValid } 
Status of FindBin(x) More...  
Static Public Member Functions inherited from ROOT::Experimental::TAxisEquidistant  
static bool  CanGrow () noexcept 
This axis cannot grow. 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::TAxisEquidistant  
TAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high, bool canGrow) noexcept  
Initialize a TAxisEquidistant. More...  
TAxisEquidistant (int nbinsNoOver, double low, double high, bool canGrow) noexcept  
Initialize a TAxisEquidistant. 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  
TAxisBase &  operator= (const TAxisBase &)=default 
TAxisBase &  operator= (TAxisBase &&)=default 
Static Protected Member Functions inherited from ROOT::Experimental::TAxisEquidistant  
static double  GetInvBinWidth (int nbinsNoOver, double lowOrHigh, double highOrLow) 
Determine the inverse bin width. More...  
Protected Attributes inherited from ROOT::Experimental::TAxisEquidistant  
double  fInvBinWidth = 0. 
The inverse of the bin width. More...  
double  fLow = 0. 
The lower limit of the axis. More...  
#include <ROOT/TAxis.hxx>

inlineexplicitnoexcept 
Initialize a TAxisGrow.
nbins   number of bins in the axis, excluding under and overflow bins. This value is fixed over the lifetime of the object. 
low   the initial value for the low axis range. Any coordinate below that is considered as underflow. To trigger the growing of the axis call Grow(). 
high   the initial value for the high axis range. Any coordinate above that is considered as overflow. To trigger the growing of the axis call Grow() 

inlineexplicitnoexcept 
Initialize a TAxisGrow.
[in]  title   axis title used for graphics and text representation. 
nbins   number of bins in the axis, excluding under and overflow bins. This value is fixed over the lifetime of the object.  
low   the initial value for the low axis range. Any coordinate below that is considered as underflow. To trigger the growing of the axis call Grow().  
high   the initial value for the high axis range. Any coordinate above that is considered as overflow. To trigger the growing of the axis call Grow() 

inline 
int ROOT::Experimental::TAxisGrow::Grow  (  int  toBin  ) 
Grow this axis to make the "virtual bin" toBin inrange.
This keeps the nonaffected axis limit unchanged, and extends the other axis limit such that a number of consecutive bins are merged.
Example, assuming an initial TAxisGrow with 10 bins from 0. to 1.:
Grow(0)
: that (virtual) bin spans from 0.1 to 0. To include it in the axis range, the lower limit must be shifted. The minimal number of bins that can be merged is 2, thus the new axis will span from 1. to 1.Grow(1)
: that (virtual) bin spans from 0.2 to 0.1. To include it in the axis range, the lower limit must be shifted. The minimal number of bins that can be merged is 2, thus the new axis will span from 1. to 1.Grow(50)
: that (virtual) bin spans from 4.9 to 5.0. To include it in the axis range, the higher limit must be shifted. Five bins need to be merged, making the new axis range 0. to 5.0.toBin   the "virtual" bin number, as if the axis had an infinite number of bins with the current bin width. For instance, for an axis with ten bins in the range 0. to 1., the coordinate 2.05 has the virtual bin index 20. 

inline 
Convert to TAxisConfig.