5#ifndef ROOT_RHistEngine
6#define ROOT_RHistEngine
27namespace Experimental {
59template <
typename BinContentType>
131 template <std::
size_t N>
137 throw std::invalid_argument(
"invalid number of indices passed to GetBinContent");
141 throw std::invalid_argument(
"bin not found in GetBinContent");
166 template <
typename... A>
181 throw std::invalid_argument(
"axes configurations not identical in Add");
212 std::is_floating_point_v<BinContentType> || std::is_same_v<BinContentType, RBinWithError>;
231 template <
typename... A>
232 void Fill(
const std::tuple<A...> &args)
237 throw std::invalid_argument(
"invalid number of arguments to Fill");
266 template <
typename... A>
269 static_assert(
SupportsWeightedFilling,
"weighted filling is only supported for floating-point bin content types");
274 throw std::invalid_argument(
"invalid number of arguments to Fill");
306 template <
typename... A>
309 auto t = std::forward_as_tuple(args...);
312 "weighted filling is only supported for floating-point bin content types");
313 static constexpr std::size_t
N =
sizeof...(A) - 1;
315 throw std::invalid_argument(
"invalid number of arguments to Fill");
317 RWeight weight = std::get<N>(t);
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Bin configurations for all dimensions of a histogram.
std::size_t GetNDimensions() const
RLinearizedIndex ComputeGlobalIndexImpl(std::size_t index, const std::tuple< A... > &args) const
RLinearizedIndex ComputeGlobalIndex(const std::tuple< A... > &args) const
Compute the global index for all axes.
std::size_t ComputeTotalNBins() const
Compute the total number of bins for all axes.
const std::vector< RAxisVariant > & Get() const
A bin index with special values for underflow and overflow bins.
A histogram data structure to bin data along multiple dimensions.
void Fill(const A &...args)
Fill an entry into the histogram.
const std::vector< RAxisVariant > & GetAxes() const
RHistEngine< BinContentType > Clone() const
Clone this histogram engine.
RHistEngine< BinContentType > & operator=(const RHistEngine< BinContentType > &)=delete
The copy assignment operator is deleted.
std::size_t GetTotalNBins() const
void Fill(const std::tuple< A... > &args)
Fill an entry into the histogram.
RHistEngine< BinContentType > & operator=(RHistEngine< BinContentType > &&)=default
Efficiently move a histogram engine.
const BinContentType & GetBinContent(const std::array< RBinIndex, N > &indices) const
Get the content of a single bin.
const BinContentType & GetBinContent(const A &...args) const
Get the content of a single bin.
RHistEngine(const RHistEngine< BinContentType > &)=delete
The copy constructor is deleted.
RHistEngine(std::size_t nNormalBins, double low, double high)
Construct a one-dimensional histogram engine with a regular axis.
void Add(const RHistEngine< BinContentType > &other)
Add all bin contents of another histogram.
std::size_t GetNDimensions() const
static constexpr bool SupportsWeightedFilling
Whether this histogram engine type supports weighted filling.
void Clear()
Clear all bin contents.
RHistEngine(std::vector< RAxisVariant > axes)
Construct a histogram engine.
Internal::RAxes fAxes
The axis configuration for this histogram. Relevant methods are forwarded from the public interface.
void Fill(const std::tuple< A... > &args, RWeight weight)
Fill an entry into the histogram with a weight.
RHistEngine(RHistEngine< BinContentType > &&)=default
Efficiently move construct a histogram engine.
void Streamer(TBuffer &)
ROOT Streamer function to throw when trying to store an object of this class.
std::vector< BinContentType > fBinContents
The bin contents for this histogram.
A regular axis with equidistant bins in the interval .
Buffer base class used for serializing objects.
A linearized index that can be invalid.
A weight for filling histograms.