The Gaudi Framework  master (37c0b60a)
Gaudi::Axis Class Reference

An IAxis represents a binned histogram axis. More...

#include </builds/gaudi/Gaudi/GaudiCommonSvc/include/GaudiCommonSvc/Axis.h>

Inheritance diagram for Gaudi::Axis:
Collaboration diagram for Gaudi::Axis:

Public Member Functions

int rIndex (int index) const
 Convert a AIDA bin number on the axis to the ROOT bin number. More...
 
int aIndex (int index) const
 Convert a ROOT bin number on the axis to the AIDA bin number. More...
 
 Axis ()=default
 
 Axis (TAxis *itaxi)
 
void initialize (TAxis *itaxi, bool)
 
bool isFixedBinning () const override
 Check if the IAxis has fixed binning, i.e. More...
 
double lowerEdge () const override
 Get the lower edge of the IAxis. More...
 
double upperEdge () const override
 Get the upper edge of the IAxis. More...
 
int bins () const override
 The number of bins (excluding underflow and overflow) on the IAxis. More...
 
double binLowerEdge (int index) const override
 Get the lower edge of the specified bin. More...
 
double binUpperEdge (int index) const override
 Get the upper edge of the specified bin. More...
 
double binWidth (int index) const override
 Get the width of the specified bin. More...
 
int coordToIndex (double coord) const override
 Convert a coordinate on the axis to a bin number. More...
 
TAxis & taxis () const
 

Static Public Member Functions

static int toRootIndex (int index, int nbins)
 
static int toAidaIndex (int index, int bins)
 

Private Member Functions

Axisme () const
 

Private Attributes

TAxis * taxis_ = nullptr
 

Detailed Description

An IAxis represents a binned histogram axis.

A 1D Histogram would have one Axis representing the X axis, while a 2D Histogram would have two axes representing the X and Y Axis.

Author
The AIDA team (http://aida.freehep.org/)

Definition at line 29 of file Axis.h.

Constructor & Destructor Documentation

◆ Axis() [1/2]

Gaudi::Axis::Axis ( )
default

◆ Axis() [2/2]

Gaudi::Axis::Axis ( TAxis *  itaxi)
inlineexplicit

Definition at line 61 of file Axis.h.

61 : taxis_( itaxi ) {}

Member Function Documentation

◆ aIndex()

int Gaudi::Axis::aIndex ( int  index) const
inline

Convert a ROOT bin number on the axis to the AIDA bin number.

Parameters
indexThe ROOT bin number: 1 to bins() for the in-range bins or bins()+1 for OVERFLOW or 0 for UNDERFLOW.
Returns
The corresponding AIDA bin number.

Definition at line 57 of file Axis.h.

57 { return toAidaIndex( index, bins() ); }

◆ binLowerEdge()

double Gaudi::Axis::binLowerEdge ( int  index) const
inlineoverride

Get the lower edge of the specified bin.

Parameters
indexThe bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW.
Returns
The lower edge of the corresponding bin; for the underflow bin this is Double.NEGATIVE_INFINITY.

Definition at line 100 of file Axis.h.

100 { return taxis().GetBinLowEdge( rIndex( index ) ); }

◆ bins()

int Gaudi::Axis::bins ( ) const
inlineoverride

The number of bins (excluding underflow and overflow) on the IAxis.

Returns
The IAxis's number of bins.

Definition at line 91 of file Axis.h.

91 { return taxis().GetNbins(); }

◆ binUpperEdge()

double Gaudi::Axis::binUpperEdge ( int  index) const
inlineoverride

Get the upper edge of the specified bin.

Parameters
indexThe bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW.
Returns
The upper edge of the corresponding bin; for the overflow bin this is Double.POSITIVE_INFINITY.

Definition at line 108 of file Axis.h.

108 { return taxis().GetBinUpEdge( rIndex( index ) ); }

◆ binWidth()

double Gaudi::Axis::binWidth ( int  index) const
inlineoverride

Get the width of the specified bin.

Parameters
indexThe bin number: 0 to bins()-1) for the in-range bins or OVERFLOW or UNDERFLOW.
Returns
The width of the corresponding bin.

Definition at line 116 of file Axis.h.

116 { return taxis().GetBinWidth( rIndex( index ) ); }

◆ coordToIndex()

int Gaudi::Axis::coordToIndex ( double  coord) const
inlineoverride

Convert a coordinate on the axis to a bin number.

If the coordinate is less than the lowerEdge UNDERFLOW is returned; if the coordinate is greater or equal to the upperEdge OVERFLOW is returned.

Parameters
coordThe coordinate to be converted.
Returns
The corresponding bin number.

Definition at line 127 of file Axis.h.

127 { return aIndex( taxis().FindBin( coord ) ); }

◆ initialize()

void Gaudi::Axis::initialize ( TAxis *  itaxi,
bool   
)
inline

Definition at line 63 of file Axis.h.

63 { taxis_ = itaxi; }

◆ isFixedBinning()

bool Gaudi::Axis::isFixedBinning ( ) const
inlineoverride

Check if the IAxis has fixed binning, i.e.

if all the bins have the same width.

Returns
true if the binning is fixed, false otherwise.

Definition at line 70 of file Axis.h.

70 { return 0 == taxis_ ? true : !taxis_->IsVariableBinSize(); }

◆ lowerEdge()

double Gaudi::Axis::lowerEdge ( ) const
inlineoverride

Get the lower edge of the IAxis.

Returns
The IAxis's lower edge.

Definition at line 77 of file Axis.h.

77 { return taxis().GetXmin(); }

◆ me()

Axis& Gaudi::Axis::me ( ) const
inlineprivate

Definition at line 135 of file Axis.h.

135 { return const_cast<Axis&>( *this ); }

◆ rIndex()

int Gaudi::Axis::rIndex ( int  index) const
inline

Convert a AIDA bin number on the axis to the ROOT bin number.

Parameters
indexTheAIDA bin number
Returns
The corresponding ROOT bin number.

Definition at line 49 of file Axis.h.

49 { return toRootIndex( index, bins() ); }

◆ taxis()

TAxis& Gaudi::Axis::taxis ( ) const
inline

Definition at line 132 of file Axis.h.

132 { return *me().taxis_; }

◆ toAidaIndex()

static int Gaudi::Axis::toAidaIndex ( int  index,
int  bins 
)
inlinestatic

Definition at line 37 of file Axis.h.

37  {
38  if ( index == bins + 1 ) return AIDA::IAxis::OVERFLOW_BIN;
39  if ( index == 0 ) return AIDA::IAxis::UNDERFLOW_BIN;
40  return index - 1;
41  }

◆ toRootIndex()

static int Gaudi::Axis::toRootIndex ( int  index,
int  nbins 
)
inlinestatic

Definition at line 31 of file Axis.h.

31  {
32  if ( index == AIDA::IAxis::OVERFLOW_BIN ) return nbins + 1;
33  if ( index == AIDA::IAxis::UNDERFLOW_BIN ) return 0;
34  return index + 1;
35  }

◆ upperEdge()

double Gaudi::Axis::upperEdge ( ) const
inlineoverride

Get the upper edge of the IAxis.

Returns
The IAxis's upper edge.

Definition at line 84 of file Axis.h.

84 { return taxis().GetXmax(); }

Member Data Documentation

◆ taxis_

TAxis* Gaudi::Axis::taxis_ = nullptr
private

Definition at line 137 of file Axis.h.


The documentation for this class was generated from the following file:
Gaudi::Axis::Axis
Axis()=default
Gaudi::Axis::toAidaIndex
static int toAidaIndex(int index, int bins)
Definition: Axis.h:37
Gaudi::Axis::me
Axis & me() const
Definition: Axis.h:135
Gaudi::Axis::taxis
TAxis & taxis() const
Definition: Axis.h:132
Gaudi::Axis::aIndex
int aIndex(int index) const
Convert a ROOT bin number on the axis to the AIDA bin number.
Definition: Axis.h:57
Gaudi::Axis::bins
int bins() const override
The number of bins (excluding underflow and overflow) on the IAxis.
Definition: Axis.h:91
Gaudi::Axis::toRootIndex
static int toRootIndex(int index, int nbins)
Definition: Axis.h:31
Gaudi::ParticleProperties::index
size_t index(const Gaudi::ParticleProperty *property, const Gaudi::Interfaces::IParticlePropertySvc *service)
helper utility for mapping of Gaudi::ParticleProperty object into non-negative integral sequential id...
Definition: IParticlePropertySvc.cpp:39
Gaudi::Axis::taxis_
TAxis * taxis_
Definition: Axis.h:137
Gaudi::Axis::rIndex
int rIndex(int index) const
Convert a AIDA bin number on the axis to the ROOT bin number.
Definition: Axis.h:49