The Gaudi Framework  v36r1 (3e2fb5a8)
Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity > Struct Template Reference

A counter aiming at computing average and sum2 / variance / standard deviation. More...

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

Inheritance diagram for Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >:
Collaboration diagram for Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >:

Public Member Functions

template<typename OWNER >
 StatCounter (OWNER *o, std::string const &name)
 
template<typename stream >
stream & printImpl (stream &o, bool tableFormat) const
 
std::ostreamprint (std::ostream &o, bool tableFormat=false) const override
 prints the counter to a stream More...
 
MsgStreamprint (MsgStream &o, bool tableFormat=false) const override
 
bool toBePrinted () const override
 hint whether we should print that counter or not. More...
 
virtual nlohmann::json toJSON () const override
 Basic JSON export for Gaudi::Monitoring::Hub support. More...
 
- Public Member Functions inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, StatAccumulator, double >
 BufferableCounter ()=default
 
 BufferableCounter (OWNER *o, std::string const &name, const std::string counterType, CARGS... args)
 
 BufferableCounter (OWNER *o, std::string const &name)
 
 BufferableCounter (BufferableCounter const &)=default
 
Buffer< StatAccumulator, Atomicity, Args... > buffer ()
 
BufferableCounteroperator= (BufferableCounter const &)=default
 
 ~BufferableCounter ()
 
- Public Member Functions inherited from Gaudi::Accumulators::PrintableCounter
 PrintableCounter ()=default
 
virtual ~PrintableCounter ()=default
 destructor More...
 
template<typename stream >
stream & printImpl (stream &s, std::string_view tag) const
 
virtual std::ostreamprint (std::ostream &o, std::string_view tag) const
 prints the counter to a stream in table format, with the given tag More...
 
virtual MsgStreamprint (MsgStream &o, std::string_view tag) const
 
std::string toString () const
 get a string representation More...
 
- Public Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< Arithmetic, Atomicity, InputTypeT, Bases >
constexpr AccumulatorSet ()=default
 
template<atomicity ato>
 AccumulatorSet (construct_empty_t, const AccumulatorSet< Arithmetic, ato, InputType, Bases... > &)
 constructor of an empty AccumulatorSet, copying the (non existent) config from another GenericAccumulator More...
 
AccumulatorSetoperator+= (const InputType by)
 
OutputType value () const
 
void reset ()
 
template<atomicity Ato>
void mergeAndReset (AccumulatorSet< Arithmetic, Ato, InputType, Bases... > &&other)
 
template<atomicity Ato>
void operator+ (AccumulatorSet< Arithmetic, Ato, InputType, Bases... > &&other)
 

Static Public Member Functions

static StatCounter fromJSON (const nlohmann::json &j)
 

Static Public Attributes

static const std::string typeString {std::string{"counter:StatCounter:"} + typeid( Arithmetic ).name()}
 

Additional Inherited Members

- Public Types inherited from Gaudi::Accumulators::AccumulatorSet< Arithmetic, Atomicity, InputTypeT, Bases >
using InputType = InputTypeT
 
using OutputType = std::tuple< typename Bases< Atomicity, Arithmetic >::OutputType... >
 
using InternalType = std::tuple< typename Bases< Atomicity, Arithmetic >::InternalType... >
 
using JSONStringEntriesType = std::tuple< typename Bases< Atomicity, Arithmetic >::JSONStringEntriesType... >
 
- Protected Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< Arithmetic, Atomicity, InputTypeT, Bases >
void reset (const InternalType &t)
 
- Static Protected Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< Arithmetic, Atomicity, InputTypeT, Bases >
static InternalType extractJSONData (const nlohmann::json &j, const JSONStringEntriesType &entries)
 

Detailed Description

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
struct Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >

A counter aiming at computing average and sum2 / variance / standard deviation.

See also
Gaudi::Accumulators for detailed documentation

Definition at line 1014 of file Accumulators.h.

Constructor & Destructor Documentation

◆ StatCounter()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
template<typename OWNER >
Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::StatCounter ( OWNER *  o,
std::string const &  name 
)
inline

Definition at line 1018 of file Accumulators.h.

1019  : BufferableCounter<Atomicity, StatAccumulator, Arithmetic>( o, name, typeString ) {}

Member Function Documentation

◆ fromJSON()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
static StatCounter Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::fromJSON ( const nlohmann::json &  j)
inlinestatic

Definition at line 1046 of file Accumulators.h.

1046  {
1048  {{{"nEntries", "sum"}, "sum2"}, "min", "max"} );
1049  }

◆ print() [1/2]

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
MsgStream& Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::print ( MsgStream o,
bool  tableFormat = false 
) const
inlineoverridevirtual

Implements Gaudi::Accumulators::PrintableCounter.

Definition at line 1033 of file Accumulators.h.

1033 { return printImpl( o, tableFormat ); }

◆ print() [2/2]

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
std::ostream& Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::print ( std::ostream ,
bool  tableFormat = false 
) const
inlineoverridevirtual

prints the counter to a stream

Implements Gaudi::Accumulators::PrintableCounter.

Definition at line 1030 of file Accumulators.h.

1030  {
1031  return printImpl( o, tableFormat );
1032  }

◆ printImpl()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
template<typename stream >
stream& Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::printImpl ( stream &  o,
bool  tableFormat 
) const
inline

Definition at line 1023 of file Accumulators.h.

1023  {
1024  auto fmt = ( tableFormat ? "|%|10d| |%|11.7g| |%|#11.5g| |%|#11.5g| |%|#12.5g| |%|#12.5g| |"
1025  : "#=%|-7lu| Sum=%|-11.5g| Mean=%|#10.4g| +- %|-#10.5g| Min/Max=%|#10.4g|/%|-#10.4g|" );
1026  return o << boost::format{fmt} % this->nEntries() % this->sum() % this->mean() % this->standard_deviation() %
1027  this->min() % this->max();
1028  }

◆ toBePrinted()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
bool Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::toBePrinted ( ) const
inlineoverridevirtual

hint whether we should print that counter or not.

Typically empty counters may not be printed

Reimplemented from Gaudi::Accumulators::PrintableCounter.

Definition at line 1034 of file Accumulators.h.

1034 { return this->nEntries() > 0; }

◆ toJSON()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
virtual nlohmann::json Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::toJSON ( ) const
inlineoverridevirtual

Basic JSON export for Gaudi::Monitoring::Hub support.

Implements Gaudi::Accumulators::PrintableCounter.

Definition at line 1035 of file Accumulators.h.

1035  {
1036  return {{"type", typeString},
1037  {"empty", this->nEntries() == 0},
1038  {"nEntries", this->nEntries()},
1039  {"sum", this->sum()},
1040  {"mean", this->mean()},
1041  {"sum2", this->sum2()},
1042  {"standard_deviation", this->standard_deviation()},
1043  {"min", this->min()},
1044  {"max", this->max()}};
1045  }

Member Data Documentation

◆ typeString

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
const std::string Gaudi::Accumulators::StatCounter< Arithmetic, Atomicity >::typeString {std::string{"counter:StatCounter:"} + typeid( Arithmetic ).name()}
inlinestatic

Definition at line 1015 of file Accumulators.h.


The documentation for this struct was generated from the following file:
Gaudi::Accumulators::AccumulatorSet::extractJSONData
static InternalType extractJSONData(const nlohmann::json &j, const JSONStringEntriesType &entries)
Definition: Accumulators.h:520
Gaudi::Accumulators::StatCounter::printImpl
stream & printImpl(stream &o, bool tableFormat) const
Definition: Accumulators.h:1023
GaudiPython.HistoUtils.nEntries
nEntries
Definition: HistoUtils.py:921
max
EventIDBase max(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:225
TimingHistograms.name
name
Definition: TimingHistograms.py:23
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
min
EventIDBase min(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:212
GaudiPython.HistoUtils.mean
mean
Definition: HistoUtils.py:886
Gaudi::Accumulators::StatCounter::typeString
static const std::string typeString
Definition: Accumulators.h:1015
fmt