The Gaudi Framework  v37r0 (b608885e)
Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic > Struct Template Reference

BinomialAccumulator. More...

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

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

Classes

struct  binomial_t
 

Public Member Functions

unsigned long nEntries () const
 
template<typename Result = fp_result_type<Arithmetic>>
auto efficiency () const
 
auto eff () const
 
template<typename Result = fp_result_type<Arithmetic>>
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)
 

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::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<atomicity Atomicity, typename Arithmetic>
struct Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >

BinomialAccumulator.

A BinomialAccumulator is an Accumulator able to compute the efficiency of a process data

See also
Gaudi::Accumulators for detailed documentation

Definition at line 669 of file Accumulators.h.

Member Function Documentation

◆ eff()

template<atomicity Atomicity, typename Arithmetic >
auto Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::eff ( ) const
inline

Definition at line 679 of file Accumulators.h.

679 { return efficiency(); }

◆ effErr()

template<atomicity Atomicity, typename Arithmetic >
auto Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::effErr ( ) const
inline

Definition at line 691 of file Accumulators.h.

691 { return efficiencyErr(); }

◆ efficiency()

template<atomicity Atomicity, typename Arithmetic >
template<typename Result = fp_result_type<Arithmetic>>
auto Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::efficiency ( ) const
inline

Definition at line 674 of file Accumulators.h.

674  {
675  auto nbEntries = nEntries();
676  if ( 1 > nbEntries ) return Result{ -1 };
677  return static_cast<Result>( this->nTrueEntries() ) / nbEntries;
678  }

◆ efficiencyErr()

template<atomicity Atomicity, typename Arithmetic >
template<typename Result = fp_result_type<Arithmetic>>
auto Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::efficiencyErr ( ) const
inline

Definition at line 682 of file Accumulators.h.

682  {
683  // Note the usage of using, aiming at using the std version of sqrt by default, without preventing
684  // more specialized versions to be used via ADL (see http://en.cppreference.com/w/cpp/language/adl)
686  using std::sqrt;
687  auto nbEntries = nEntries();
688  if ( 1 > nbEntries ) return Result{ -1 };
689  return sqrt( static_cast<Result>( this->nTrueEntries() * this->nFalseEntries() ) / nbEntries ) / nbEntries;
690  }

◆ nEntries()

template<atomicity Atomicity, typename Arithmetic >
unsigned long Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::nEntries ( ) const
inline

Definition at line 671 of file Accumulators.h.

671 { return this->nTrueEntries() + this->nFalseEntries(); };

◆ operator+=()

template<atomicity Atomicity, typename Arithmetic >
BinomialAccumulator& Gaudi::Accumulators::BinomialAccumulator< Atomicity, Arithmetic >::operator+= ( binomial_t  b)
inline

Definition at line 697 of file Accumulators.h.

697  {
698  assert( b.nPass <= b.nTotal );
699  TrueAccumulator<atomicity::none, bool> t{ std::in_place, b.nPass };
701  FalseAccumulator<atomicity::none, bool> f{ std::in_place, b.nTotal - b.nPass };
703  return *this;
704  }

The documentation for this struct was generated from the following file:
Gaudi::Accumulators::sqrt
auto sqrt(std::chrono::duration< Rep, Period > d)
sqrt for std::chrono::duration
Definition: Counters.h:34
std::sqrt
T sqrt(T... args)
bug_34121.t
t
Definition: bug_34121.py:30
Gaudi::Accumulators::BinomialAccumulator::efficiencyErr
auto efficiencyErr() const
Definition: Accumulators.h:682
Gaudi::Accumulators::GenericAccumulator< Arithmetic, unsigned long, Atomicity, TrueTo1 >::mergeAndReset
void mergeAndReset(GenericAccumulator< InputType, unsigned long, ato, TrueTo1, Identity, VH > &other)
Definition: Accumulators.h:467
Gaudi::Accumulators::BinomialAccumulator::efficiency
auto efficiency() const
Definition: Accumulators.h:674
Gaudi::Accumulators::BinomialAccumulator::nEntries
unsigned long nEntries() const
Definition: Accumulators.h:671
Gaudi::Accumulators::TrueAccumulator< Atomicity, bool >::nTrueEntries
unsigned long nTrueEntries() const
Definition: Accumulators.h:644