The Gaudi Framework  master (bb95dfce)
Loading...
Searching...
No Matches
Gaudi::Accumulators::BinomialCounter< Arithmetic, Atomicity > Struct Template Reference

A counter dealing with binomial data. More...

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

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

Public Member Functions

template<typename OWNER>
 BinomialCounter (OWNER *o, std::string const &name)
template<typename stream>
stream & printImpl (stream &o, bool tableFormat) const
std::ostream & print (std::ostream &o, bool tableFormat=false) const override
 prints the counter to a stream
MsgStreamprint (MsgStream &o, bool tableFormat=false) const override
template<typename stream>
stream & printImpl (stream &o, std::string_view tag) const
std::ostream & print (std::ostream &o, std::string_view tag) const override
 prints the counter to a stream in table format, with the given tag
MsgStreamprint (MsgStream &o, std::string_view tag) const override
bool toBePrinted () const override
 hint whether we should print that counter or not.
Public Member Functions inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, BinomialAccumulator, double >
 BufferableCounter ()=default
BufferType buffer ()
BufferableCounteroperator= (BufferableCounter const &)=delete
 ~BufferableCounter ()
Public Member Functions inherited from Gaudi::Accumulators::PrintableCounter
 PrintableCounter ()=default
virtual ~PrintableCounter ()=default
 destructor
template<typename stream>
stream & printImpl (stream &s, std::string_view tag) const
std::string toString () const
 get a string representation
Public Member Functions inherited from Gaudi::Accumulators::BinomialAccumulator< Atomicity, Args... >
unsigned long nEntries () const
auto efficiency () const
auto eff () const
auto efficiencyErr () const
auto effErr () const
BinomialAccumulatoroperator+= (binomial_t b)
Public Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >
constexpr AccumulatorSet ()=default
AccumulatorSetoperator+= (const InputType by)
OutputType value () const
void reset ()
void mergeAndReset (AccumulatorSet< bool, Ato, InputType, TrueAccumulator... > &other)
void operator+ (AccumulatorSet< bool, Ato, InputType, TrueAccumulator... > &&other)
void operator++ ()=delete
Public Member Functions inherited from Gaudi::Accumulators::TrueAccumulator< Atomicity, bool >
unsigned long nTrueEntries () const
Public Member Functions inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
GenericAccumulator operator+= (const InputType by)
GenericAccumulatoroperator= (const GenericAccumulator &other)
OutputType value () const
void reset ()
void mergeAndReset (GenericAccumulator< InputType, unsigned long, ato, TrueTo1, Identity, VH > &other)
void operator+ (GenericAccumulator< InputType, unsigned long, ato, TrueTo1, Identity, VH > &&other)

Static Public Member Functions

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

Static Public Attributes

static const std::string typeString
Static Public Attributes inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, BinomialAccumulator, double >
static const std::string typeString

Friends

void reset (BinomialCounter &c)
void mergeAndReset (BinomialCounter &c, BinomialCounter &o)
void to_json (nlohmann::json &j, BinomialCounter const &c)

Additional Inherited Members

Public Types inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, BinomialAccumulator, double >
using BufferType
Public Types inherited from Gaudi::Accumulators::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >
using InputType
using OutputType
using InternalType
using JSONStringEntriesType
Public Types inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
using InputType
using OutputType
using InternalType
using JSONStringEntriesType
Protected Member Functions inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
auto rawValue () const
Static Protected Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >
static InternalType extractJSONData (const nlohmann::json &j, const JSONStringEntriesType &entries)
Static Protected Member Functions inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
static unsigned long extractJSONData (const nlohmann::json &j, const JSONStringEntriesType &entries)

Detailed Description

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

A counter dealing with binomial data.

See also
Gaudi::Accumulators for detailed documentation

Definition at line 1120 of file Accumulators.h.

Constructor & Destructor Documentation

◆ BinomialCounter()

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

Member Function Documentation

◆ fromJSON()

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

Definition at line 1162 of file Accumulators.h.

1162 {
1163 return BinomialAccumulator<Atomicity, Arithmetic>::extractJSONData( j, { "nTrueEntries", "nFalseEntries" } );
1164 }
static unsigned long extractJSONData(const nlohmann::json &j, const JSONStringEntriesType &entries)

◆ print() [1/4]

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

Implements Gaudi::Accumulators::PrintableCounter.

Definition at line 1139 of file Accumulators.h.

1139{ return printImpl( o, tableFormat ); }
stream & printImpl(stream &o, bool tableFormat) const

◆ print() [2/4]

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
MsgStream & Gaudi::Accumulators::BinomialCounter< Arithmetic, Atomicity >::print ( MsgStream & o,
std::string_view tag ) const
inlineoverridevirtual

Reimplemented from Gaudi::Accumulators::PrintableCounter.

Definition at line 1149 of file Accumulators.h.

1149{ return printImpl( o, tag ); }

◆ print() [3/4]

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

prints the counter to a stream

Implements Gaudi::Accumulators::PrintableCounter.

Definition at line 1136 of file Accumulators.h.

1136 {
1137 return printImpl( o, tableFormat );
1138 }

◆ print() [4/4]

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
std::ostream & Gaudi::Accumulators::BinomialCounter< Arithmetic, Atomicity >::print ( std::ostream & o,
std::string_view tag ) const
inlineoverridevirtual

prints the counter to a stream in table format, with the given tag

Reimplemented from Gaudi::Accumulators::PrintableCounter.

Definition at line 1148 of file Accumulators.h.

1148{ return printImpl( o, tag ); }

◆ printImpl() [1/2]

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

Definition at line 1129 of file Accumulators.h.

1129 {
1130 auto fmt = ( tableFormat ? "|%|10d| |%|11.5g| |(%|#9.7g| +- %|-#8.7g|)%% |"
1131 : "#=%|-7lu| Sum=%|-11.5g| Eff=|(%|#9.7g| +- %|-#8.6g|)%%|" );
1132 return o << boost::format{ fmt } % this->nEntries() % this->nTrueEntries() % ( this->efficiency() * 100 ) %
1133 ( this->efficiencyErr() * 100 );
1134 }

◆ printImpl() [2/2]

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
template<typename stream>
stream & Gaudi::Accumulators::BinomialCounter< Arithmetic, Atomicity >::printImpl ( stream & o,
std::string_view tag ) const
inline

Definition at line 1142 of file Accumulators.h.

1142 {
1143 // override default print to add a '*' in from of the name
1144 o << boost::format{ " |*%|-48.48s|%|50t|" } % ( std::string{ "\"" }.append( tag ).append( "\"" ) );
1145 return print( o, true );
1146 }
std::ostream & print(std::ostream &o, bool tableFormat=false) const override
prints the counter to a stream

◆ toBePrinted()

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
bool Gaudi::Accumulators::BinomialCounter< 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 1150 of file Accumulators.h.

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

◆ mergeAndReset

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
void mergeAndReset ( BinomialCounter< Arithmetic, Atomicity > & c,
BinomialCounter< Arithmetic, Atomicity > & o )
friend

Definition at line 1152 of file Accumulators.h.

1152{ c.mergeAndReset( o ); }
friend void mergeAndReset(BinomialCounter &c, BinomialCounter &o)

◆ reset

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
void reset ( BinomialCounter< Arithmetic, Atomicity > & c)
friend

Definition at line 1151 of file Accumulators.h.

1151{ c.reset(); }
friend void reset(BinomialCounter &c)

◆ to_json

template<typename Arithmetic = double, atomicity Atomicity = atomicity::full>
void to_json ( nlohmann::json & j,
BinomialCounter< Arithmetic, Atomicity > const & c )
friend

Definition at line 1153 of file Accumulators.h.

1153 {
1154 j = { { "type", c.typeString },
1155 { "empty", c.nEntries() == 0 },
1156 { "nEntries", c.nTrueEntries() + c.nFalseEntries() },
1157 { "nTrueEntries", c.nTrueEntries() },
1158 { "nFalseEntries", c.nFalseEntries() },
1159 { "efficiency", c.efficiency() },
1160 { "efficiencyErr", c.efficiencyErr() } };
1161 }
static const std::string typeString

Member Data Documentation

◆ typeString

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

Definition at line 1121 of file Accumulators.h.

1121 { std::string{ "counter:BinomialCounter:" } +
1122 typeid( Arithmetic ).name() };

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