The Gaudi Framework  v38r0 (2143aa4c)
Gaudi::Accumulators::Axis< Arithmetic > Struct Template Reference

Definition of an Histogram Axis. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/Accumulators/Histogram.h>

Collaboration diagram for Gaudi::Accumulators::Axis< Arithmetic >:

Public Member Functions

 Axis (unsigned int _nBins, Arithmetic _minValue, Arithmetic _maxValue, std::string _title={}, std::vector< std::string > _labels={})
 
 Axis (Gaudi::Histo1DDef const &def)
 
unsigned int index (Arithmetic value) const
 returns the bin number for a given value, ranging from 0 (underflow) to nBins+1 (overflow) More...
 
bool inAcceptance (Arithmetic value) const
 says whether the given value is within the range of the axis More...
 

Public Attributes

unsigned int nBins
 number of bins for this Axis More...
 
Arithmetic minValue
 min and max values on this axis More...
 
Arithmetic maxValue
 
std::string title
 title of this axis More...
 
std::vector< std::stringlabels
 labels for the bins More...
 
Arithmetic ratio
 precomputed ratio to convert a value into bin number equal to nBins/(maxValue-minValue). More...
 

Detailed Description

template<typename Arithmetic>
struct Gaudi::Accumulators::Axis< Arithmetic >

Definition of an Histogram Axis.

Definition at line 154 of file Histogram.h.

Constructor & Destructor Documentation

◆ Axis() [1/2]

template<typename Arithmetic >
Gaudi::Accumulators::Axis< Arithmetic >::Axis ( unsigned int  _nBins,
Arithmetic  _minValue,
Arithmetic  _maxValue,
std::string  _title = {},
std::vector< std::string _labels = {} 
)
inline

Definition at line 155 of file Histogram.h.

155  {},
156  std::vector<std::string> _labels = {} )
157  : nBins( _nBins )
158  , minValue( _minValue )
159  , maxValue( _maxValue )
160  , title( std::move( _title ) )
161  , labels( std::move( _labels ) )
162  , ratio( _nBins / ( _maxValue - _minValue ) ) {
164  for ( const auto& s : labels ) details::requireValidTitle( s );
165  };

◆ Axis() [2/2]

template<typename Arithmetic >
Gaudi::Accumulators::Axis< Arithmetic >::Axis ( Gaudi::Histo1DDef const &  def)
inlineexplicit

Definition at line 166 of file Histogram.h.

167  : Axis( (unsigned int)def.bins(), def.lowEdge(), def.highEdge(), def.title() ){};

Member Function Documentation

◆ inAcceptance()

template<typename Arithmetic >
bool Gaudi::Accumulators::Axis< Arithmetic >::inAcceptance ( Arithmetic  value) const
inline

says whether the given value is within the range of the axis

Definition at line 195 of file Histogram.h.

195 { return value >= minValue && value <= maxValue; }

◆ index()

template<typename Arithmetic >
unsigned int Gaudi::Accumulators::Axis< Arithmetic >::index ( Arithmetic  value) const
inline

returns the bin number for a given value, ranging from 0 (underflow) to nBins+1 (overflow)

Definition at line 183 of file Histogram.h.

183  {
184  // In case we use integer as Arithmetic type, we cannot use ratio for computing indices,
185  // as ratios < 1.0 will simply be 0, so we have to pay the division in such a case
186  int idx;
187  if constexpr ( std::is_integral_v<Arithmetic> ) {
188  idx = ( ( value - minValue ) * nBins / ( maxValue - minValue ) ) + 1;
189  } else {
190  idx = std::floor( ( value - minValue ) * ratio ) + 1;
191  }
192  return idx < 0 ? 0 : ( (unsigned int)idx > nBins ? nBins + 1 : (unsigned int)idx );
193  }

Member Data Documentation

◆ labels

template<typename Arithmetic >
std::vector<std::string> Gaudi::Accumulators::Axis< Arithmetic >::labels

labels for the bins

Definition at line 175 of file Histogram.h.

◆ maxValue

template<typename Arithmetic >
Arithmetic Gaudi::Accumulators::Axis< Arithmetic >::maxValue

Definition at line 171 of file Histogram.h.

◆ minValue

template<typename Arithmetic >
Arithmetic Gaudi::Accumulators::Axis< Arithmetic >::minValue

min and max values on this axis

Definition at line 171 of file Histogram.h.

◆ nBins

template<typename Arithmetic >
unsigned int Gaudi::Accumulators::Axis< Arithmetic >::nBins

number of bins for this Axis

Definition at line 169 of file Histogram.h.

◆ ratio

template<typename Arithmetic >
Arithmetic Gaudi::Accumulators::Axis< Arithmetic >::ratio

precomputed ratio to convert a value into bin number equal to nBins/(maxValue-minValue).

Only used for floating Arithmetic

Definition at line 180 of file Histogram.h.

◆ title

template<typename Arithmetic >
std::string Gaudi::Accumulators::Axis< Arithmetic >::title

title of this axis

Definition at line 173 of file Histogram.h.


The documentation for this struct was generated from the following file:
Gaudi::Accumulators::Axis::minValue
Arithmetic minValue
min and max values on this axis
Definition: Histogram.h:171
std::floor
T floor(T... args)
Gaudi::Accumulators::details::requireValidTitle
void requireValidTitle(std::string_view sv)
Definition: Histogram.h:46
std::move
T move(T... args)
Gaudi::Accumulators::Axis::maxValue
Arithmetic maxValue
Definition: Histogram.h:171
Gaudi::Accumulators::Axis::nBins
unsigned int nBins
number of bins for this Axis
Definition: Histogram.h:167
gaudirun.s
string s
Definition: gaudirun.py:346
std::vector< std::string >
Gaudi::Accumulators::Axis::Axis
Axis(unsigned int _nBins, Arithmetic _minValue, Arithmetic _maxValue, std::string _title={}, std::vector< std::string > _labels={})
Definition: Histogram.h:155
Gaudi::Accumulators::Axis::ratio
Arithmetic ratio
precomputed ratio to convert a value into bin number equal to nBins/(maxValue-minValue).
Definition: Histogram.h:180
Gaudi::Accumulators::Axis::title
std::string title
title of this axis
Definition: Histogram.h:173
Gaudi::Accumulators::Axis::labels
std::vector< std::string > labels
labels for the bins
Definition: Histogram.h:175