Logo ROOT   6.14/05
Reference Guide
List of all members | Public Types | Public Member Functions | Private Attributes | List of all members
ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG > Class Template Referencefinal

template<class DATA, class... AXISCONFIG>
class ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >

Definition at line 361 of file THistImpl.hxx.

Public Types

template<int NDIM = DATA::GetNDim()>
using AxisIterRange_t = typename Hist::AxisIterRange_t< NDIM >
 
using CoordArray_t = typename ImplBase_t::CoordArray_t
 
using FillFunc_t = void(THistImplBase::*)(const CoordArray_t &x, Weight_t w)
 Type of the Fill(x, w) function. More...
 
using ImplBase_t = THistImplBase< DATA >
 
using Weight_t = typename ImplBase_t::Weight_t
 
- Public Types inherited from ROOT::Experimental::Detail::THistImplBase< DATA >
using CoordArray_t = Hist::CoordArray_t< DATA::GetNDim()>
 Type of the coordinate: a DIMENSIONS-dimensional array of doubles. More...
 
using FillFunc_t = void(THistImplBase::*)(const CoordArray_t &x, Weight_t w)
 Type of the Fill(x, w) function. More...
 
using Stat_t = DATA
 Type of the statistics (bin content, uncertainties etc). More...
 
using Weight_t = typename DATA::Weight_t
 Type of the bin content (and thus weights). More...
 
- Public Types inherited from ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>
using AxisIterRange_t = Hist::AxisIterRange_t< DIMENSIONS >
 Range type. More...
 
using CoordArray_t = Hist::CoordArray_t< DIMENSIONS >
 Type of the coordinate: a DIMENSIONS-dimensional array of doubles. More...
 

Public Member Functions

 THistImpl (TRootIOCtor *)
 
 THistImpl (AXISCONFIG... axisArgs)
 
 THistImpl (std::string_view title, AXISCONFIG... axisArgs)
 
void Apply (std::function< void(THistBinRef< const ImplBase_t >)> op) const final
 Apply a function (lambda) to all bins of the histogram. More...
 
void ApplyXC (std::function< void(const CoordArray_t &, Weight_t)> op) const final
 Apply a function (lambda) to all bins of the histogram. More...
 
virtual void ApplyXCE (std::function< void(const CoordArray_t &, Weight_t, double)> op) const final
 Apply a function (lambda) to all bins of the histogram. More...
 
void Fill (const CoordArray_t &x, Weight_t w=1.)
 Add a single weight w to the bin at coordinate x. More...
 
void FillN (const std::span< CoordArray_t > xN, const std::span< Weight_t > weightN) final
 Fill an array of weightN to the bins specified by coordinates xN. More...
 
void FillN (const std::span< CoordArray_t > xN) final
 Fill an array of weightN to the bins specified by coordinates xN. More...
 
const std::tuple< AXISCONFIG... > & GetAxes () const
 Get the axes of this histogram. More...
 
TAxisView GetAxis (int iAxis) const final
 Normalized axes access, converting the actual axis to TAxisConfig. More...
 
CoordArray_t GetBinCenter (int binidx) const final
 Get the center coordinate of the bin. More...
 
Weight_t GetBinContent (const CoordArray_t &x) const final
 Get the content of the bin at position x. More...
 
CoordArray_t GetBinFrom (int binidx) const final
 Get the coordinate of the low limit of the bin. More...
 
int GetBinIndex (const CoordArray_t &x) const final
 Gets the bin index for coordinate x; returns -1 if there is no such bin, e.g. More...
 
int GetBinIndexAndGrow (const CoordArray_t &x) final
 Gets the bin index for coordinate x, growing the axes as needed and possible. More...
 
CoordArray_t GetBinTo (int binidx) const final
 Get the coordinate of the high limit of the bin. More...
 
double GetBinUncertainty (int binidx) const final
 Return the uncertainties for the given bin. More...
 
double GetBinUncertainty (const CoordArray_t &x) const final
 Get the bin uncertainty for the bin at coordinate x. More...
 
FillFunc_t GetFillFunc () const final
 Retrieve the fill function for this histogram implementation, to prevent the virtual function call for high-frequency fills. More...
 
AxisIterRange_t< DATA::GetNDim()> GetRange (const std::array< Hist::EOverflow, DATA::GetNDim()> &withOverUnder) const final
 Get the begin() and end() for each axis. More...
 
void GrowAxis (int, double)
 Grow the axis number iAxis to fit the coordinate x. More...
 
bool HasBinUncertainty () const final
 Whether this histogram's statistics provide storage for uncertainties, or whether uncertainties are determined as poisson uncertainty of the content. More...
 
- Public Member Functions inherited from ROOT::Experimental::Detail::THistImplBase< DATA >
 THistImplBase ()=default
 
 THistImplBase (size_t numBins)
 
 THistImplBase (std::string_view title, size_t numBins)
 
 THistImplBase (const THistImplBase &)=default
 
 THistImplBase (THistImplBase &&)=default
 
void AddBinContent (int binidx, Weight_t w)
 Add w to the bin at index bin. More...
 
virtual void Apply (std::function< void(THistBinRef< const THistImplBase >)>) const =0
 Apply a function (lambda) to all bins of the histogram. More...
 
Weight_t GetBinContent (int binidx) const
 Get the bin content (sum of weights) for bin index binidx. More...
 
Weight_tGetBinContent (int binidx)
 Get the bin content (sum of weights) for bin index binidx (non-const). More...
 
double GetBinContentAsDouble (int binidx) const final
 Get the bin content (sum of weights) for bin index binidx, cast to double. More...
 
int GetNBins () const noexcept final
 Get the number of bins in this histogram, including possible under- and overflow bins. More...
 
const Stat_tGetStat () const noexcept
 Const access to statistics. More...
 
Stat_tGetStat () noexcept
 Non-const access to statistics. More...
 
- Public Member Functions inherited from ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>
 THistImplPrecisionAgnosticBase ()=default
 
 THistImplPrecisionAgnosticBase (const THistImplPrecisionAgnosticBase &)=default
 
 THistImplPrecisionAgnosticBase (THistImplPrecisionAgnosticBase &&)=default
 
 THistImplPrecisionAgnosticBase (std::string_view title)
 
virtual ~THistImplPrecisionAgnosticBase ()
 
virtual int GetBinIndex (const CoordArray_t &x) const=0
 Given the coordinate x, determine the index of the bin. More...
 
virtual int GetBinIndexAndGrow (const CoordArray_t &x)=0
 Given the coordinate x, determine the index of the bin, possibly growing axes for which x is out of range. More...
 
virtual AxisIterRange_t GetRange (const std::array< Hist::EOverflow, DIMENSIONS > &withOverUnder) const=0
 Get a AxisIterRange_t for the whole histogram, possibly restricting the range to non-overflow bins. More...
 
const std::string & GetTitle () const
 Get the histogram title. More...
 

Private Attributes

std::tuple< AXISCONFIG... > fAxes
 The histogram's axes. More...
 

Iterator interface

using const_iterator = THistBinIter< const ImplBase_t >
 
using iterator = THistBinIter< ImplBase_t >
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>
static constexpr int GetNDim ()
 Number of dimensions of the coordinates. More...
 

#include <ROOT/THistImpl.hxx>

Inheritance diagram for ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >:
[legend]

Member Typedef Documentation

◆ AxisIterRange_t

template<class DATA , class... AXISCONFIG>
template<int NDIM = DATA::GetNDim()>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::AxisIterRange_t = typename Hist::AxisIterRange_t<NDIM>

Definition at line 372 of file THistImpl.hxx.

◆ const_iterator

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::const_iterator = THistBinIter<const ImplBase_t>

Definition at line 550 of file THistImpl.hxx.

◆ CoordArray_t

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::CoordArray_t = typename ImplBase_t::CoordArray_t

Definition at line 368 of file THistImpl.hxx.

◆ FillFunc_t

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImplBase< DATA >::FillFunc_t = void (THistImplBase::*)(const CoordArray_t &x, Weight_t w)

Type of the Fill(x, w) function.

Definition at line 152 of file THistImpl.hxx.

◆ ImplBase_t

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::ImplBase_t = THistImplBase<DATA>

Definition at line 367 of file THistImpl.hxx.

◆ iterator

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::iterator = THistBinIter<ImplBase_t>

Definition at line 551 of file THistImpl.hxx.

◆ Weight_t

template<class DATA , class... AXISCONFIG>
using ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::Weight_t = typename ImplBase_t::Weight_t

Definition at line 369 of file THistImpl.hxx.

Constructor & Destructor Documentation

◆ THistImpl() [1/3]

template<class DATA , class... AXISCONFIG>
ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::THistImpl ( TRootIOCtor )

Definition at line 560 of file THistImpl.hxx.

◆ THistImpl() [2/3]

template<class DATA , class... AXISCONFIG>
ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::THistImpl ( AXISCONFIG...  axisArgs)

Definition at line 564 of file THistImpl.hxx.

◆ THistImpl() [3/3]

template<class DATA , class... AXISCONFIG>
ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::THistImpl ( std::string_view  title,
AXISCONFIG...  axisArgs 
)

Definition at line 569 of file THistImpl.hxx.

Member Function Documentation

◆ Apply()

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::Apply ( std::function< void(THistBinRef< const ImplBase_t >)>  op) const
inlinefinal

Apply a function (lambda) to all bins of the histogram.

The function takes the bin reference.

Definition at line 388 of file THistImpl.hxx.

◆ ApplyXC()

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::ApplyXC ( std::function< void(const CoordArray_t &, Weight_t)>  op) const
inlinefinalvirtual

Apply a function (lambda) to all bins of the histogram.

The function takes the bin coordinate and content.

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 396 of file THistImpl.hxx.

◆ ApplyXCE()

template<class DATA , class... AXISCONFIG>
virtual void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::ApplyXCE ( std::function< void(const CoordArray_t &, Weight_t, double)>  op) const
inlinefinalvirtual

Apply a function (lambda) to all bins of the histogram.

The function takes the bin coordinate, content and uncertainty ("error") of the content.

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 404 of file THistImpl.hxx.

◆ begin() [1/2]

template<class DATA , class... AXISCONFIG>
iterator ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::begin ( )
inlinenoexcept

Definition at line 552 of file THistImpl.hxx.

◆ begin() [2/2]

template<class DATA , class... AXISCONFIG>
const_iterator ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::begin ( ) const
inlinenoexcept

Definition at line 553 of file THistImpl.hxx.

◆ end() [1/2]

template<class DATA , class... AXISCONFIG>
iterator ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::end ( )
inlinenoexcept

Definition at line 554 of file THistImpl.hxx.

◆ end() [2/2]

template<class DATA , class... AXISCONFIG>
const_iterator ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::end ( ) const
inlinenoexcept

Definition at line 555 of file THistImpl.hxx.

◆ Fill()

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::Fill ( const CoordArray_t x,
Weight_t  w = 1. 
)
inline

Add a single weight w to the bin at coordinate x.

Definition at line 497 of file THistImpl.hxx.

◆ FillN() [1/2]

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::FillN ( const std::span< CoordArray_t xN,
const std::span< Weight_t weightN 
)
inlinefinalvirtual

Fill an array of weightN to the bins specified by coordinates xN.

For each element i, the weight weightN[i] will be added to the bin at the coordinate xN[i]

Note
xN and weightN must have the same size!

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 472 of file THistImpl.hxx.

◆ FillN() [2/2]

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::FillN ( const std::span< CoordArray_t xN)
inlinefinalvirtual

Fill an array of weightN to the bins specified by coordinates xN.

For each element i, the weight weightN[i] will be added to the bin at the coordinate xN[i]

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 489 of file THistImpl.hxx.

◆ GetAxes()

template<class DATA , class... AXISCONFIG>
const std::tuple<AXISCONFIG...>& ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetAxes ( ) const
inline

Get the axes of this histogram.

Definition at line 411 of file THistImpl.hxx.

◆ GetAxis()

template<class DATA , class... AXISCONFIG>
TAxisView ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetAxis ( int  iAxis) const
inlinefinalvirtual

Normalized axes access, converting the actual axis to TAxisConfig.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 414 of file THistImpl.hxx.

◆ GetBinCenter()

template<class DATA , class... AXISCONFIG>
CoordArray_t ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinCenter ( int  binidx) const
inlinefinalvirtual

Get the center coordinate of the bin.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 442 of file THistImpl.hxx.

◆ GetBinContent()

template<class DATA , class... AXISCONFIG>
Weight_t ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinContent ( const CoordArray_t x) const
inlinefinalvirtual

Get the content of the bin at position x.

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 504 of file THistImpl.hxx.

◆ GetBinFrom()

template<class DATA , class... AXISCONFIG>
CoordArray_t ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinFrom ( int  binidx) const
inlinefinalvirtual

Get the coordinate of the low limit of the bin.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 451 of file THistImpl.hxx.

◆ GetBinIndex()

template<class DATA , class... AXISCONFIG>
int ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinIndex ( const CoordArray_t x) const
inlinefinal

Gets the bin index for coordinate x; returns -1 if there is no such bin, e.g.

for axes without over / underflow but coordinate out of range.

Definition at line 418 of file THistImpl.hxx.

◆ GetBinIndexAndGrow()

template<class DATA , class... AXISCONFIG>
int ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinIndexAndGrow ( const CoordArray_t x)
inlinefinal

Gets the bin index for coordinate x, growing the axes as needed and possible.

Returns -1 if there is no such bin, e.g. for axes without over / underflow but coordinate out of range.

Definition at line 431 of file THistImpl.hxx.

◆ GetBinTo()

template<class DATA , class... AXISCONFIG>
CoordArray_t ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinTo ( int  binidx) const
inlinefinalvirtual

Get the coordinate of the high limit of the bin.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 460 of file THistImpl.hxx.

◆ GetBinUncertainty() [1/2]

template<class DATA , class... AXISCONFIG>
double ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinUncertainty ( int  binidx) const
inlinefinalvirtual

Return the uncertainties for the given bin.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 513 of file THistImpl.hxx.

◆ GetBinUncertainty() [2/2]

template<class DATA , class... AXISCONFIG>
double ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetBinUncertainty ( const CoordArray_t x) const
inlinefinalvirtual

Get the bin uncertainty for the bin at coordinate x.

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 516 of file THistImpl.hxx.

◆ GetFillFunc()

template<class DATA , class... AXISCONFIG>
FillFunc_t ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetFillFunc ( ) const
inlinefinalvirtual

Retrieve the fill function for this histogram implementation, to prevent the virtual function call for high-frequency fills.

Implements ROOT::Experimental::Detail::THistImplBase< DATA >.

Definition at line 384 of file THistImpl.hxx.

◆ GetRange()

template<class DATA , class... AXISCONFIG>
AxisIterRange_t<DATA::GetNDim()> ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GetRange ( const std::array< Hist::EOverflow, DATA::GetNDim()> &  withOverUnder) const
inlinefinal

Get the begin() and end() for each axis.

Parameters
[in]withOverUnder- Whether the begin and end should contain over- or underflow. Ignored if the axis does not support over- / underflow.

Definition at line 531 of file THistImpl.hxx.

◆ GrowAxis()

template<class DATA , class... AXISCONFIG>
void ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::GrowAxis ( int  ,
double   
)
inline

Grow the axis number iAxis to fit the coordinate x.

The histogram (conceptually) combines pairs of bins along this axis until x is within the range of the axis. The axis must support growing for this to work (e.g. a TAxisGrow).

Definition at line 543 of file THistImpl.hxx.

◆ HasBinUncertainty()

template<class DATA , class... AXISCONFIG>
bool ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::HasBinUncertainty ( ) const
inlinefinalvirtual

Whether this histogram's statistics provide storage for uncertainties, or whether uncertainties are determined as poisson uncertainty of the content.

Implements ROOT::Experimental::Detail::THistImplPrecisionAgnosticBase< DATA::GetNDim()>.

Definition at line 524 of file THistImpl.hxx.

Member Data Documentation

◆ fAxes

template<class DATA , class... AXISCONFIG>
std::tuple<AXISCONFIG...> ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >::fAxes
private

The histogram's axes.

Definition at line 375 of file THistImpl.hxx.

Libraries for ROOT::Experimental::Detail::THistImpl< DATA, AXISCONFIG >:
[legend]

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