The Gaudi Framework
master (37c0b60a)
|
Namespaces | |
details | |
naming | |
Classes | |
class | AccumulatorSet |
AccumulatorSet is an Accumulator that holds a set of Accumulators templated by same Arithmetic and Atomicity and increase them altogether. More... | |
struct | Adder |
An Adder ValueHandler operator(a, b) means a += b. More... | |
struct | Adder< Arithmetic, atomicity::full > |
Adder specialization in the case of atomicity full. More... | |
struct | Adder< Arithmetic, atomicity::none > |
Adder specialization in the case of atomicity none. More... | |
struct | AveragingAccumulatorBase |
AveragingAccumulatorBase. More... | |
struct | AveragingCounter |
A counter aiming at computing sum and average. More... | |
class | Axis |
Definition of a default type of Histogram Axis It contains number of bins, min and max value plus a title and defines the basic type of Axis (non log) It may also contain labels for the bins. More... | |
struct | BaseValueHandler |
Base type for all functors used as ValuesHandler. More... | |
struct | BaseValueHandler< Arithmetic, atomicity::full > |
BaseValueHandler specialization in the case of atomicity full. More... | |
struct | BaseValueHandler< Arithmetic, atomicity::none > |
BaseValueHandler specialization in the case of atomicity none. More... | |
struct | BinomialAccumulator |
BinomialAccumulator. More... | |
struct | BinomialCounter |
A counter dealing with binomial data. More... | |
class | Buffer |
Buffer is a non atomic Accumulator which, when it goes out-of-scope, updates the underlying thread-safe Accumulator for all previous updates in one go. More... | |
class | BufferableCounter |
An empty ancester of all counters that provides a buffer method that returns a buffer on itself Also registers the counter to its owner, with default type "counter" Due to this registration, move semantic is disabled. More... | |
struct | Constant |
A functor always returning the value N. More... | |
struct | construct_empty_t |
constant used to disambiguate construction of an empty Accumulator versus the copy constructor. More... | |
struct | CountAccumulator |
CountAccumulator. More... | |
struct | Counter |
A basic integral counter;. More... | |
struct | CounterArray |
generic class implementing an array of counters The only addition to a raw array is the constructor that allows to build names of the counters automatically from the index of the counter in the array There are 2 possibilities : More... | |
struct | CustomAxis |
struct | ExtractWeight |
A functor to extract weight, take a pair (valueTuple, weight) as input. More... | |
struct | Extremum |
An Extremum ValueHandler, to be reused for Minimum and Maximum operator(a, b) means if (Compare(b,a)) a = b In case of full atomicity, compare_exchange_weak is used. More... | |
struct | Extremum< Arithmetic, atomicity::full, Compare, Initial > |
Extremum specialization in the case of atomicity full. More... | |
struct | Extremum< Arithmetic, atomicity::none, Compare, Initial > |
Extremum specialization in the case of atomicity none. More... | |
struct | FalseAccumulator |
FalseAccumulator. More... | |
struct | FalseTo1 |
helper functor for the FalseAccumulator More... | |
class | GenericAccumulator |
Generic Accumulator, templated by. More... | |
struct | HistogramArray |
generic class implementing an array of histograms The only addition to a raw array is the constructor that allows to build names and titles for the histograms automatically from the index of the histogram in the array There are 2 possibilities : More... | |
struct | HistogramArray< Histo, N, std::integer_sequence< unsigned int, ND... > > |
class | HistogramingAccumulatorInternal |
Internal Accumulator class dealing with Histograming. More... | |
class | HistogramingCounterBase |
A base counter dealing with Histograms. More... | |
class | HistogramingCounterBase< ND, Atomicity, Arithmetic, Type, Accumulator, std::tuple< AxisTypes... > > |
class | HistogramWrapperInternal |
A Wrapper of a static Histogram base class using Properties to define title and axis. More... | |
class | HistogramWrapperInternal< HistogramType, std::integer_sequence< unsigned int, ND... > > |
struct | HistoInputType |
small class used as InputType for regular Histograms basically a tuple of the given values, specialized in case of a single entry so that the syntax is more natural. More... | |
struct | HistoInputType< std::tuple< Elements... >, NIndex > |
struct | Identity |
An Identity functor. More... | |
struct | IntegralAccumulator |
IntegralAccumulator. More... | |
struct | MaxAccumulator |
MaxAccumulator. More... | |
struct | MinAccumulator |
MinAccumulator. More... | |
class | MsgCounter |
struct | PrintableCounter |
An empty ancester of all counters that knows how to print themselves. More... | |
struct | RootHistogramingAccumulator |
Class implementing a root histogram accumulator. More... | |
struct | RootHistogramingAccumulator< Atomicity, Arithmetic, std::integral_constant< unsigned int, 1 >, AxisTupleType > |
struct | RootHistogramingAccumulator< Atomicity, Arithmetic, std::integral_constant< unsigned int, 2 >, AxisTupleType > |
struct | RootHistogramingAccumulator< Atomicity, Arithmetic, std::integral_constant< unsigned int, 3 >, AxisTupleType > |
class | RootHistogramingAccumulatorInternal |
Internal Accumulator class dealing with RootHistograming. More... | |
class | RootHistogramingCounterBase |
Extension of the standard Gaudi histogram to provide similar functionnality as ROOT. More... | |
class | RootHistogramingCounterBase< 1, Atomicity, Arithmetic, Type, AxisTupleType > |
class | RootHistogramingCounterBase< 2, Atomicity, Arithmetic, Type, AxisTupleType > |
class | RootHistogramingCounterBase< 3, Atomicity, Arithmetic, Type, AxisTupleType > |
struct | SigmaAccumulatorBase |
SigmaAccumulatorBase. More... | |
struct | SigmaCounter |
A counter aiming at computing average and sum2 / variance / standard deviation. More... | |
struct | SigmaNAccumulator |
struct | SigmaNAccumulator< Arithmetic, Atomicity, 1 > |
specialization for ND=1 to allow for better syntax More... | |
struct | SigmasValueHandler |
struct | Square |
A Square functor. More... | |
struct | SquareAccumulator |
SquareAccumulator. More... | |
struct | StatCounter |
A counter aiming at computing average and sum2 / variance / standard deviation. More... | |
struct | SumAccumulator |
SumAccumulator. More... | |
struct | TrueAccumulator |
TrueAccumulator. More... | |
struct | TrueTo1 |
helper functor for the TrueAccumulator More... | |
struct | WeightedAdder |
An Adder ValueHandler, taking weight into account and computing a count plus the sum of the weights In case of full atomicity, fetch_add or compare_exchange_weak are used for each element, that is we do not have full atomicity accross the two elements. More... | |
struct | WeightedCountAccumulator |
WeightedCountAccumulator. More... | |
struct | WeightedHistoInputType |
small class used as InputType for weighted Histograms only a pair of the InnerType and the weight. More... | |
struct | WeightedProduct |
A Product functor, take a pair (value, weight) as input. More... | |
struct | WeightedProfileTransform |
An inputTransform for WeightedProfile histograms, keeping weight and replacing value by 1. More... | |
struct | WeightedSquare |
A WeightedSquare functor, take a pair (value, weight) as input. More... | |
struct | WeightedSquareAccumulator |
WeightedSquareAccumulator. More... | |
struct | WeightedSumAccumulator |
WeightedSumAccumulator. More... | |
Typedefs | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | Histogram = HistogramWrapper< StaticHistogram< ND, Atomicity, Arithmetic, AxisTupleType > > |
standard custom histogram. See HistogramWrapper and StaticHistogram for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | WeightedHistogram = HistogramWrapper< StaticWeightedHistogram< ND, Atomicity, Arithmetic, AxisTupleType > > |
custom histogram with weight. See HistogramWrapper and StaticWeightedHistogram for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | ProfileHistogram = HistogramWrapper< StaticProfileHistogram< ND, Atomicity, Arithmetic, AxisTupleType > > |
custom profile histograming. See HistogramWrapper and StaticProfileHistogram for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | WeightedProfileHistogram = HistogramWrapper< StaticWeightedProfileHistogram< ND, Atomicity, Arithmetic, AxisTupleType > > |
custom weighted profile histogram. See HistogramWrapper and StaticWeightedProfileHistogram for details More... | |
template<typename HistogramType > | |
using | HistogramWrapper = HistogramWrapperInternal< HistogramType > |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | RootHistogram = HistogramWrapper< StaticRootHistogram< ND, Atomicity, Arithmetic, AxisTupleType > > |
standard custom histogram More... | |
template<atomicity Atomicity, typename Arithmetic > | |
using | WeightedAveragingAccumulator = AveragingAccumulatorBase< Atomicity, Arithmetic, WeightedCountAccumulator, WeightedSumAccumulator > |
WeightedAveragingAccumulator. More... | |
template<atomicity Atomicity, typename Arithmetic > | |
using | WeightedSigmaAccumulator = SigmaAccumulatorBase< Atomicity, Arithmetic, WeightedAveragingAccumulator, WeightedSquareAccumulator > |
WeightedSigmaAccumulator. More... | |
template<atomicity Atomicity, typename Arithmetic , typename ND , typename AxisTupleType > | |
using | HistogramingAccumulator = HistogramingAccumulatorInternal< Atomicity, HistoInputType< AxisToArithmetic_t< AxisTupleType >, ND::value >, unsigned long, IntegralAccumulator, AxisTupleType > |
Class implementing a regular histogram accumulator. More... | |
template<atomicity Atomicity, typename Arithmetic , typename ND , typename AxisTupleType > | |
using | WeightedHistogramingAccumulator = HistogramingAccumulatorInternal< Atomicity, WeightedHistoInputType< AxisToArithmetic_t< AxisTupleType >, ND::value, Arithmetic >, Arithmetic, WeightedCountAccumulator, AxisTupleType > |
Class implementing a weighted histogram accumulator. More... | |
template<atomicity Atomicity, typename Arithmetic , typename ND , typename AxisTupleType > | |
using | ProfileHistogramingAccumulator = HistogramingAccumulatorInternal< Atomicity, HistoInputType< ProfileAxisToArithmetic_t< Arithmetic, AxisTupleType >, ND::value >, Arithmetic, SigmaAccumulator, AxisTupleType > |
Class implementing a profile histogram accumulator. More... | |
template<atomicity Atomicity, typename Arithmetic , typename ND , typename AxisTupleType > | |
using | WeightedProfileHistogramingAccumulator = HistogramingAccumulatorInternal< Atomicity, WeightedHistoInputType< ProfileAxisToArithmetic_t< Arithmetic, AxisTupleType >, ND::value, Arithmetic >, Arithmetic, WeightedSigmaAccumulator, AxisTupleType > |
Class implementing a weighted profile histogram accumulator. More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | StaticHistogram = HistogramingCounterBase< ND, Atomicity, Arithmetic, naming::histogramString, HistogramingAccumulator, AxisTupleType > |
standard static histograming counter. See HistogramingCounterBase for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | StaticWeightedHistogram = HistogramingCounterBase< ND, Atomicity, Arithmetic, naming::weightedHistogramString, WeightedHistogramingAccumulator, AxisTupleType > |
standard static histograming counter with weight. See HistogramingCounterBase for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | StaticProfileHistogram = HistogramingCounterBase< ND, Atomicity, Arithmetic, naming::profilehistogramString, ProfileHistogramingAccumulator, AxisTupleType > |
profile static histograming counter. See HistogramingCounterBase for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | StaticWeightedProfileHistogram = HistogramingCounterBase< ND, Atomicity, Arithmetic, naming::weightedProfilehistogramString, WeightedProfileHistogramingAccumulator, AxisTupleType > |
weighted static profile histograming counter. See HistogramingCounterBase for details More... | |
template<unsigned int ND, atomicity Atomicity = atomicity::full, typename Arithmetic = double, typename AxisTupleType = make_tuple_t<Axis<Arithmetic>, ND>> | |
using | StaticRootHistogram = RootHistogramingCounterBase< ND, Atomicity, Arithmetic, naming::histogramString, AxisTupleType > |
Root histograming counter. See RootHistogramingCounterBase for details. More... | |
template<typename T , typename = int> | |
using | has_fetch_add_ = decltype(std::declval< T & >().fetch_add(0)) |
type_traits for checking the presence of fetch_add More... | |
template<typename Arithmetic , typename Result = double> | |
using | fp_result_type = std::conditional_t< std::is_integral_v< Arithmetic >, Result, Arithmetic > |
type_trait for the result type of a floating point operation on the type Arithmetic More... | |
template<typename Arithmetic , atomicity Atomicity = atomicity::full> | |
using | Minimum = Extremum< Arithmetic, Atomicity, std::less< Arithmetic >, std::numeric_limits< Arithmetic >::max > |
A Minimun ValueHandler operator(a, b) means a = min(a, b) In case of full atomicity, compare_exchange_weak is used. More... | |
template<typename Arithmetic , atomicity Atomicity = atomicity::full> | |
using | Maximum = Extremum< Arithmetic, Atomicity, std::greater< Arithmetic >, std::numeric_limits< Arithmetic >::lowest > |
An Maximum ValueHandler operator(a, b) means a = max(a, b) In case of full atomicity, compare_exchange_weak is used. More... | |
template<atomicity Atomicity, typename Arithmetic > | |
using | AveragingAccumulator = AveragingAccumulatorBase< Atomicity, Arithmetic, CountAccumulator, SumAccumulator > |
AveragingAccumulator. More... | |
template<atomicity Atomicity, typename Arithmetic > | |
using | SigmaAccumulator = SigmaAccumulatorBase< Atomicity, Arithmetic, AveragingAccumulator, SquareAccumulator > |
SigmaAccumulator. More... | |
template<atomicity Atomicity, typename Arithmetic > | |
using | StatAccumulator = AccumulatorSet< Arithmetic, Atomicity, Arithmetic, SigmaAccumulator, MinAccumulator, MaxAccumulator > |
StatAccumulator. More... | |
template<typename Arithmetic = double, atomicity Atomicity = atomicity::full> | |
using | SummingCounter = AveragingCounter< Arithmetic, Atomicity > |
Enumerations | |
enum | atomicity { atomicity::none, atomicity::full } |
Defines atomicity of the accumulators. More... | |
Functions | |
template<typename Arithmetic > | |
void | to_json (nlohmann::json &j, const Axis< Arithmetic > &axis) |
automatic conversion of the Axis type to json More... | |
constexpr unsigned int | NSUMS (unsigned int ND) |
number of items in sums for a given dimension = 1 (nb items) + ND (sums of each dimension) + ND*(ND+1)/2 (square sums) More... | |
template<class Rep , class Period > | |
auto | sqrt (std::chrono::duration< Rep, Period > d) |
sqrt for std::chrono::duration More... | |
template<class Rep1 , class Rep2 , class Period > | |
auto | operator* (const std::chrono::duration< Rep1, Period > &lhs, const std::chrono::duration< Rep2, Period > &rhs) |
Multiplication of two std::chrono::duration objects with same Period. More... | |
template<class T > | |
auto | sqrt (T d) |
forward declaration of sqrt for custom types More... | |
template<typename AtomicType , typename Arithmetic > | |
void | fetch_add (AtomicType &atVar, Arithmetic value) |
generic fetch_add, also dealing with atomic types with no fetch_add member method More... | |
std::ostream & | operator<< (std::ostream &s, const PrintableCounter &counter) |
external printout operator to a stream type More... | |
MsgStream & | operator<< (MsgStream &s, const PrintableCounter &counter) |
template<typename Counter , typename Container , typename Fun > | |
void | accumulate (Counter &counter, const Container &container, Fun f=Identity{}) |
A helper function for accumulating data from a container into a counter This is internally using buffers so that the original counter is only updated once. More... | |
void | to_json (nlohmann::json &j, const CustomAxis &axis) |
Variables | |
template<typename T > | |
constexpr bool | has_fetch_add_v = Gaudi::cpp17::is_detected_v<has_fetch_add_, T> |
constexpr construct_empty_t | construct_empty {} |
Efficient counter implementations for Gaudi.
A number of concepts and templated classes are defined:
All counters are serialized into JSON strings using nlohmann's json library (pure header) See https://github.com/nlohmann/json for details, but here are few notes :
Symetrically to serialization, all counters objects can be constructed from json objects using the same nlohmann's json library via a the fromJSON static method;
The serialized json needs to contain a 'type' entry defining the rest of the json structure. If the type value contains a ':' character, then the part preceding it will be considered as a namespace. The rest is free text.
Here is a list of types defined in this header and their corresponding fields. Note that there are 2 kinds of fields : raw ones and derived ones, built on top of raw ones. Note also that <prec> when present is a string defining the precision of the data when numerical. It is described at the end of the list for each dependent field, the computation formula is given
All Accumulators and Counters defined above are provided in their atomic and non atomic versions
Here is an example of the typical usage of these classes :
using Gaudi::Accumulators::AveragingAccumulator = typedef AveragingAccumulatorBase<Atomicity, Arithmetic, CountAccumulator, SumAccumulator> |
AveragingAccumulator.
An AveragingAccumulator is an Accumulator able to compute an average
Definition at line 771 of file Accumulators.h.
using Gaudi::Accumulators::fp_result_type = typedef std::conditional_t<std::is_integral_v<Arithmetic>, Result, Arithmetic> |
type_trait for the result type of a floating point operation on the type Arithmetic
Definition at line 312 of file Accumulators.h.
using Gaudi::Accumulators::has_fetch_add_ = typedef decltype( std::declval<T&>().fetch_add( 0 ) ) |
type_traits for checking the presence of fetch_add
Definition at line 304 of file Accumulators.h.
using Gaudi::Accumulators::Histogram = typedef HistogramWrapper<StaticHistogram<ND, Atomicity, Arithmetic, AxisTupleType> > |
standard custom histogram. See HistogramWrapper and StaticHistogram for details
Definition at line 22 of file Histogram.h.
using Gaudi::Accumulators::HistogramingAccumulator = typedef HistogramingAccumulatorInternal<Atomicity, HistoInputType<AxisToArithmetic_t<AxisTupleType>, ND::value>, unsigned long, IntegralAccumulator, AxisTupleType> |
Class implementing a regular histogram accumulator.
Actually only an alias to HistogramingAccumulatorInternal with proper template parameters
Definition at line 557 of file StaticHistogram.h.
using Gaudi::Accumulators::HistogramWrapper = typedef HistogramWrapperInternal<HistogramType> |
Definition at line 171 of file HistogramWrapper.h.
using Gaudi::Accumulators::Maximum = typedef Extremum<Arithmetic, Atomicity, std::greater<Arithmetic>, std::numeric_limits<Arithmetic>::lowest> |
An Maximum ValueHandler operator(a, b) means a = max(a, b) In case of full atomicity, compare_exchange_weak is used.
Definition at line 439 of file Accumulators.h.
using Gaudi::Accumulators::Minimum = typedef Extremum<Arithmetic, Atomicity, std::less<Arithmetic>, std::numeric_limits<Arithmetic>::max> |
A Minimun ValueHandler operator(a, b) means a = min(a, b) In case of full atomicity, compare_exchange_weak is used.
Definition at line 432 of file Accumulators.h.
using Gaudi::Accumulators::ProfileHistogram = typedef HistogramWrapper<StaticProfileHistogram<ND, Atomicity, Arithmetic, AxisTupleType> > |
custom profile histograming. See HistogramWrapper and StaticProfileHistogram for details
Definition at line 32 of file Histogram.h.
using Gaudi::Accumulators::ProfileHistogramingAccumulator = typedef HistogramingAccumulatorInternal<Atomicity, HistoInputType<ProfileAxisToArithmetic_t<Arithmetic, AxisTupleType>, ND::value>, Arithmetic, SigmaAccumulator, AxisTupleType> |
Class implementing a profile histogram accumulator.
Actually only an alias to HistogramingAccumulatorInternal with proper template parameters
Definition at line 578 of file StaticHistogram.h.
using Gaudi::Accumulators::RootHistogram = typedef HistogramWrapper<StaticRootHistogram<ND, Atomicity, Arithmetic, AxisTupleType> > |
standard custom histogram
Definition at line 22 of file RootHistogram.h.
using Gaudi::Accumulators::SigmaAccumulator = typedef SigmaAccumulatorBase<Atomicity, Arithmetic, AveragingAccumulator, SquareAccumulator> |
SigmaAccumulator.
A SigmaAccumulator is an Accumulator able to compute an average and variance/rms
Definition at line 832 of file Accumulators.h.
using Gaudi::Accumulators::StatAccumulator = typedef AccumulatorSet<Arithmetic, Atomicity, Arithmetic, SigmaAccumulator, MinAccumulator, MaxAccumulator> |
StatAccumulator.
A StatAccumulator is an Accumulator able to compute an average, variance/rms and min/max
Definition at line 839 of file Accumulators.h.
using Gaudi::Accumulators::StaticHistogram = typedef HistogramingCounterBase<ND, Atomicity, Arithmetic, naming::histogramString, HistogramingAccumulator, AxisTupleType> |
standard static histograming counter. See HistogramingCounterBase for details
Definition at line 726 of file StaticHistogram.h.
using Gaudi::Accumulators::StaticProfileHistogram = typedef HistogramingCounterBase<ND, Atomicity, Arithmetic, naming::profilehistogramString, ProfileHistogramingAccumulator, AxisTupleType> |
profile static histograming counter. See HistogramingCounterBase for details
Definition at line 738 of file StaticHistogram.h.
using Gaudi::Accumulators::StaticRootHistogram = typedef RootHistogramingCounterBase<ND, Atomicity, Arithmetic, naming::histogramString, AxisTupleType> |
Root histograming counter. See RootHistogramingCounterBase for details.
Definition at line 358 of file StaticRootHistogram.h.
using Gaudi::Accumulators::StaticWeightedHistogram = typedef HistogramingCounterBase<ND, Atomicity, Arithmetic, naming::weightedHistogramString, WeightedHistogramingAccumulator, AxisTupleType> |
standard static histograming counter with weight. See HistogramingCounterBase for details
Definition at line 732 of file StaticHistogram.h.
using Gaudi::Accumulators::StaticWeightedProfileHistogram = typedef HistogramingCounterBase<ND, Atomicity, Arithmetic, naming::weightedProfilehistogramString, WeightedProfileHistogramingAccumulator, AxisTupleType> |
weighted static profile histograming counter. See HistogramingCounterBase for details
Definition at line 744 of file StaticHistogram.h.
using Gaudi::Accumulators::SummingCounter = typedef AveragingCounter<Arithmetic, Atomicity> |
Definition at line 1018 of file Accumulators.h.
using Gaudi::Accumulators::WeightedAveragingAccumulator = typedef AveragingAccumulatorBase<Atomicity, Arithmetic, WeightedCountAccumulator, WeightedSumAccumulator> |
WeightedAveragingAccumulator.
An WeightedAveragingAccumulator is an Accumulator able to compute an average This implementation takes a pair (value, weight) as input
Definition at line 210 of file StaticHistogram.h.
using Gaudi::Accumulators::WeightedHistogram = typedef HistogramWrapper<StaticWeightedHistogram<ND, Atomicity, Arithmetic, AxisTupleType> > |
custom histogram with weight. See HistogramWrapper and StaticWeightedHistogram for details
Definition at line 27 of file Histogram.h.
using Gaudi::Accumulators::WeightedHistogramingAccumulator = typedef HistogramingAccumulatorInternal<Atomicity, WeightedHistoInputType<AxisToArithmetic_t<AxisTupleType>, ND::value, Arithmetic>, Arithmetic, WeightedCountAccumulator, AxisTupleType> |
Class implementing a weighted histogram accumulator.
Actually only an alias to HistogramingAccumulatorInternal with proper template parameters
Definition at line 567 of file StaticHistogram.h.
using Gaudi::Accumulators::WeightedProfileHistogram = typedef HistogramWrapper<StaticWeightedProfileHistogram<ND, Atomicity, Arithmetic, AxisTupleType> > |
custom weighted profile histogram. See HistogramWrapper and StaticWeightedProfileHistogram for details
Definition at line 37 of file Histogram.h.
using Gaudi::Accumulators::WeightedProfileHistogramingAccumulator = typedef HistogramingAccumulatorInternal< Atomicity, WeightedHistoInputType<ProfileAxisToArithmetic_t<Arithmetic, AxisTupleType>, ND::value, Arithmetic>, Arithmetic, WeightedSigmaAccumulator, AxisTupleType> |
Class implementing a weighted profile histogram accumulator.
Actually only an alias to HistogramingAccumulatorInternal with proper template parameters
Definition at line 589 of file StaticHistogram.h.
using Gaudi::Accumulators::WeightedSigmaAccumulator = typedef SigmaAccumulatorBase<Atomicity, Arithmetic, WeightedAveragingAccumulator, WeightedSquareAccumulator> |
WeightedSigmaAccumulator.
A WeightedSigmaAccumulator is an Accumulator able to compute an average and variance/rms This implementation takes a pair (value, weight) as input
Definition at line 219 of file StaticHistogram.h.
|
strong |
Defines atomicity of the accumulators.
Enumerator | |
---|---|
none | |
full |
Definition at line 263 of file Accumulators.h.
void Gaudi::Accumulators::accumulate | ( | Counter & | counter, |
const Container & | container, | ||
Fun | f = Identity{} |
||
) |
A helper function for accumulating data from a container into a counter This is internally using buffers so that the original counter is only updated once.
Definition at line 1242 of file Accumulators.h.
void Gaudi::Accumulators::fetch_add | ( | AtomicType & | atVar, |
Arithmetic | value | ||
) |
generic fetch_add, also dealing with atomic types with no fetch_add member method
Definition at line 366 of file Accumulators.h.
|
constexpr |
number of items in sums for a given dimension = 1 (nb items) + ND (sums of each dimension) + ND*(ND+1)/2 (square sums)
Definition at line 29 of file StaticRootHistogram.h.
auto Gaudi::Accumulators::operator* | ( | const std::chrono::duration< Rep1, Period > & | lhs, |
const std::chrono::duration< Rep2, Period > & | rhs | ||
) |
Multiplication of two std::chrono::duration objects with same Period.
Definition at line 40 of file Counters.h.
|
inline |
Definition at line 903 of file Accumulators.h.
|
inline |
external printout operator to a stream type
Definition at line 902 of file Accumulators.h.
auto Gaudi::Accumulators::sqrt | ( | std::chrono::duration< Rep, Period > | d | ) |
sqrt for std::chrono::duration
Definition at line 34 of file Counters.h.
auto Gaudi::Accumulators::sqrt | ( | T | d | ) |
forward declaration of sqrt for custom types
void Gaudi::Accumulators::to_json | ( | nlohmann::json & | j, |
const Axis< Arithmetic > & | axis | ||
) |
void Gaudi::Accumulators::to_json | ( | nlohmann::json & | j, |
const CustomAxis & | axis | ||
) |
Definition at line 57 of file HistogramsTests.cpp.
|
constexpr |
Definition at line 449 of file Accumulators.h.
|
inlineconstexpr |
Definition at line 306 of file Accumulators.h.