The Gaudi Framework  v37r0 (b608885e)
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::ostreamprint (std::ostream &o, bool tableFormat=false) const override
 prints the counter to a stream More...
 
MsgStreamprint (MsgStream &o, bool tableFormat=false) const override
 
template<typename stream >
stream & printImpl (stream &o, std::string_view tag) const
 
std::ostreamprint (std::ostream &o, std::string_view tag) const override
 prints the counter to a stream in table format, with the given tag More...
 
MsgStreamprint (MsgStream &o, std::string_view tag) const override
 
bool toBePrinted () const override
 hint whether we should print that counter or not. More...
 
- Public Member Functions inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, BinomialAccumulator, double >
 BufferableCounter ()=default
 
 BufferableCounter (OWNER *o, std::string const &name)
 
 BufferableCounter (BufferableCounter const &)=delete
 
Buffer< BinomialAccumulator, Atomicity, Args... > buffer ()
 
BufferableCounteroperator= (BufferableCounter const &)=delete
 
 ~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
 
std::string toString () const
 get a string representation More...
 
- 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
 
 AccumulatorSet (construct_empty_t, const AccumulatorSet< bool, ato, InputType, TrueAccumulator ... > &)
 constructor of an empty AccumulatorSet, copying the (non existent) config from another GenericAccumulator More...
 
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)
 
- 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 ()=default
 
 GenericAccumulator (construct_empty_t, const GenericAccumulator< InputType, unsigned long, ato, TrueTo1, Identity, VH > &)
 constructor of an empty GenericAccumulator, copying the (non existent) config from another GenericAccumulator More...
 
 GenericAccumulator (std::in_place_t, Args &&... args)
 
 GenericAccumulator (const GenericAccumulator &other)
 
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::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >
using InputType = bool
 
using OutputType = std::tuple< typename TrueAccumulator< Atomicity, bool >::OutputType... >
 
using InternalType = std::tuple< typename TrueAccumulator< Atomicity, bool >::InternalType... >
 
using JSONStringEntriesType = std::tuple< typename TrueAccumulator< Atomicity, bool >::JSONStringEntriesType... >
 
- Public Types inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
using InputType = bool
 
using OutputType = std::decay_t< std::result_of_t< Identity(unsigned long)> >
 
using InternalType = unsigned long
 
using JSONStringEntriesType = std::string
 
- Protected Member Functions inherited from Gaudi::Accumulators::BufferableCounter< atomicity::full, BinomialAccumulator, double >
 BufferableCounter (OWNER *o, std::string const &name, SELF &self, CARGS... args)
 
- Protected Member Functions inherited from Gaudi::Accumulators::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >
 AccumulatorSet (const InternalType &t)
 
void reset (const InternalType &t)
 
- Protected Member Functions inherited from Gaudi::Accumulators::GenericAccumulator< bool, unsigned long, Atomicity, TrueTo1 >
 GenericAccumulator (unsigned long in)
 
void reset (unsigned long in)
 
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 1071 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

Definition at line 1076 of file Accumulators.h.

1077  : BufferableCounter<Atomicity, BinomialAccumulator, Arithmetic>( o, name, *this ) {}

Member Function Documentation

◆ fromJSON()

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

Definition at line 1113 of file Accumulators.h.

1113  {
1114  return BinomialAccumulator<Atomicity, Arithmetic>::extractJSONData( j, { "nTrueEntries", "nFalseEntries" } );
1115  }

◆ 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 1090 of file Accumulators.h.

1090 { return printImpl( o, tableFormat ); }

◆ 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 1100 of file Accumulators.h.

1100 { 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 1087 of file Accumulators.h.

1087  {
1088  return printImpl( o, tableFormat );
1089  }

◆ 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 1099 of file Accumulators.h.

1099 { 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 1080 of file Accumulators.h.

1080  {
1081  auto fmt = ( tableFormat ? "|%|10d| |%|11.5g| |(%|#9.7g| +- %|-#8.7g|)%% |"
1082  : "#=%|-7lu| Sum=%|-11.5g| Eff=|(%|#9.7g| +- %|-#8.6g|)%%|" );
1083  return o << boost::format{ fmt } % this->nEntries() % this->nTrueEntries() % ( this->efficiency() * 100 ) %
1084  ( this->efficiencyErr() * 100 );
1085  }

◆ 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 1093 of file Accumulators.h.

1093  {
1094  // override default print to add a '*' in from of the name
1095  o << boost::format{ " |*%|-48.48s|%|50t|" } % ( std::string{ "\"" }.append( tag ).append( "\"" ) );
1096  return print( o, true );
1097  }

◆ 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 1101 of file Accumulators.h.

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

Friends And Related Function Documentation

◆ mergeAndReset

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

Definition at line 1103 of file Accumulators.h.

1103 { c.mergeAndReset( o ); }

◆ reset

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

Definition at line 1102 of file Accumulators.h.

1102 { c.reset(); }

◆ 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 1104 of file Accumulators.h.

1104  {
1105  j = { { "type", c.typeString },
1106  { "empty", c.nEntries() == 0 },
1107  { "nEntries", c.nTrueEntries() + c.nFalseEntries() },
1108  { "nTrueEntries", c.nTrueEntries() },
1109  { "nFalseEntries", c.nFalseEntries() },
1110  { "efficiency", c.efficiency() },
1111  { "efficiencyErr", c.efficiencyErr() } };
1112  }

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 1072 of file Accumulators.h.


The documentation for this struct was generated from the following file:
Gaudi::Accumulators::AccumulatorSet< bool, Atomicity, bool, TrueAccumulator, FalseAccumulator >::extractJSONData
static InternalType extractJSONData(const nlohmann::json &j, const JSONStringEntriesType &entries)
Definition: Accumulators.h:525
std::string
STL class.
bug_34121.name
name
Definition: bug_34121.py:20
Gaudi::Accumulators::BinomialCounter::print
std::ostream & print(std::ostream &o, bool tableFormat=false) const override
prints the counter to a stream
Definition: Accumulators.h:1087
gaudirun.c
c
Definition: gaudirun.py:527
Gaudi::Accumulators::BinomialAccumulator< Atomicity, Args... >::efficiencyErr
auto efficiencyErr() const
Definition: Accumulators.h:682
ProduceConsume.j
j
Definition: ProduceConsume.py:101
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
Gaudi::Accumulators::BinomialAccumulator< Atomicity, Args... >::efficiency
auto efficiency() const
Definition: Accumulators.h:674
std::string::append
T append(T... args)
fmt
Definition: MessageSvcSink.cpp:25
Gaudi::Accumulators::BinomialAccumulator< Atomicity, Args... >::nEntries
unsigned long nEntries() const
Definition: Accumulators.h:671
Gaudi::Accumulators::BinomialCounter::printImpl
stream & printImpl(stream &o, bool tableFormat) const
Definition: Accumulators.h:1080
Gaudi::Accumulators::TrueAccumulator< Atomicity, bool >::nTrueEntries
unsigned long nTrueEntries() const
Definition: Accumulators.h:644