The Gaudi Framework  master (da3d77e1)
StaticHistogram.h File Reference
#include <Gaudi/Accumulators.h>
#include <Gaudi/MonitoringHub.h>
#include <GaudiKernel/HistoDef.h>
#include <array>
#include <cassert>
#include <cmath>
#include <fmt/format.h>
#include <nlohmann/json.hpp>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for StaticHistogram.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Gaudi::Accumulators::ExtractWeight
 A functor to extract weight, take a pair (valueTuple, weight) as input. More...
 
struct  Gaudi::Accumulators::WeightedProduct
 A Product functor, take a pair (value, weight) as input. More...
 
struct  Gaudi::Accumulators::WeightedSquare
 A WeightedSquare functor, take a pair (value, weight) as input. More...
 
struct  Gaudi::Accumulators::WeightedProfileTransform
 An inputTransform for WeightedProfile histograms, keeping weight and replacing value by 1. More...
 
struct  Gaudi::Accumulators::WeightedAdder< Arithmetic, Atomicity >
 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  Gaudi::Accumulators::WeightedCountAccumulator< Atomicity, Arithmetic >
 WeightedCountAccumulator. More...
 
struct  Gaudi::Accumulators::WeightedSumAccumulator< Atomicity, Arithmetic >
 WeightedSumAccumulator. More...
 
struct  Gaudi::Accumulators::WeightedSquareAccumulator< Atomicity, Arithmetic >
 WeightedSquareAccumulator. More...
 
class  Gaudi::Accumulators::Axis< Arithmetic >
 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  Gaudi::Accumulators::HistoInputType< Arithmetic, NIndex >
 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  Gaudi::Accumulators::HistoInputType< std::tuple< Elements... >, NIndex >
 
struct  Gaudi::Accumulators::WeightedHistoInputType< ArithmeticTuple, NIndex, WArithmetic >
 small class used as InputType for weighted Histograms only a pair of the InnerType and the weight. More...
 
class  Gaudi::Accumulators::HistogramingAccumulatorInternal< Atomicity, InputType, Arithmetic, BaseAccumulatorT, AxisTupleType >
 Internal Accumulator class dealing with Histograming. More...
 
class  Gaudi::Accumulators::HistogramingCounterBase< ND, Atomicity, Arithmetic, Type, Accumulator, AxisTupleType >
 A base counter dealing with Histograms. More...
 
class  Gaudi::Accumulators::HistogramingCounterBase< ND, Atomicity, Arithmetic, Type, Accumulator, std::tuple< AxisTypes... > >
 

Namespaces

 Gaudi
 This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from python with a format liks : ( nbins, min, max, title ) where title can be ommited.
 
 Gaudi::Accumulators
 
 Gaudi::Accumulators::details
 
 Gaudi::Accumulators::naming
 

Typedefs

template<atomicity Atomicity, typename Arithmetic >
using Gaudi::Accumulators::WeightedAveragingAccumulator = AveragingAccumulatorBase< Atomicity, Arithmetic, WeightedCountAccumulator, WeightedSumAccumulator >
 WeightedAveragingAccumulator. More...
 
template<atomicity Atomicity, typename Arithmetic >
using Gaudi::Accumulators::WeightedSigmaAccumulator = SigmaAccumulatorBase< Atomicity, Arithmetic, WeightedAveragingAccumulator, WeightedSquareAccumulator >
 WeightedSigmaAccumulator. More...
 
template<atomicity Atomicity, typename Arithmetic , typename ND , typename AxisTupleType >
using Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::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 Gaudi::Accumulators::StaticWeightedProfileHistogram = HistogramingCounterBase< ND, Atomicity, Arithmetic, naming::weightedProfilehistogramString, WeightedProfileHistogramingAccumulator, AxisTupleType >
 weighted static profile histograming counter. See HistogramingCounterBase for details More...
 

Functions

void Gaudi::Accumulators::details::requireValidTitle (std::string_view sv)
 
template<typename Arithmetic >
void Gaudi::Accumulators::to_json (nlohmann::json &j, const Axis< Arithmetic > &axis)
 automatic conversion of the Axis type to json More...
 

Variables

constexpr char Gaudi::Accumulators::naming::histogramString [] = "histogram:Histogram"
 
constexpr char Gaudi::Accumulators::naming::weightedHistogramString [] = "histogram:WeightedHistogram"
 
constexpr char Gaudi::Accumulators::naming::profilehistogramString [] = "histogram:ProfileHistogram"
 
constexpr char Gaudi::Accumulators::naming::weightedProfilehistogramString [] = "histogram:WeightedProfileHistogram"