CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
Majority< T > Class Template Reference

#include <Majority.h>

Public Member Functions

void add (const T &value)
 
void add (const T &value)
 
 Majority ()
 
 Majority ()
 
T result (double *proba) const
 
T result (double *proba) const
 
virtual ~Majority ()
 
virtual ~Majority ()
 

Private Attributes

double n_
 
std::map< T, double > votes_
 

Detailed Description

template<class T>
class Majority< T >

Utility class to take a decision on majority based. Used by MatacqProducer.

Definition at line 13 of file Majority.h.

Constructor & Destructor Documentation

template<class T>
Majority< T >::Majority ( )
inline

Constructs a Majority

Definition at line 18 of file Majority.h.

18 : n_(0){}
double n_
Definition: Majority.h:51
template<class T>
virtual Majority< T >::~Majority ( )
inlinevirtual

Destructor

Definition at line 22 of file Majority.h.

22 {}
template<class T>
Majority< T >::Majority ( )
inline

Constructs a Majority

Definition at line 19 of file Majority.h.

19 : n_(0){}
double n_
Definition: Majority.h:51
template<class T>
virtual Majority< T >::~Majority ( )
inlinevirtual

Destructor

Definition at line 23 of file Majority.h.

23 {}

Member Function Documentation

template<class T>
void Majority< T >::add ( const T value)
inline

Definition at line 25 of file Majority.h.

References Majority< T >::n_, relativeConstraints::value, and Majority< T >::votes_.

Referenced by MatacqProducer::getCalibTriggerType(), and LaserSorter::getDetailedTriggerType().

25  {
26  votes_[value] += 1.;
27  n_ += 1.;
28  }
std::map< T, double > votes_
Definition: Majority.h:50
double n_
Definition: Majority.h:51
template<class T>
void Majority< T >::add ( const T value)
inline

Collects event

Parameters
valueevent

Definition at line 29 of file Majority.h.

References Majority< T >::n_, relativeConstraints::value, and Majority< T >::votes_.

29  {
30  votes_[value] += 1.;
31  n_ += 1.;
32  }
std::map< T, double > votes_
Definition: Majority.h:50
double n_
Definition: Majority.h:51
template<class T>
T Majority< T >::result ( double *  proba) const
inline

Definition at line 30 of file Majority.h.

References m, Majority< T >::n_, and Majority< T >::votes_.

Referenced by MatacqProducer::getCalibTriggerType(), and LaserSorter::getDetailedTriggerType().

30  {
31  std::pair<T, double> m(T(), -1.);
32  for(typename std::map<T, double>::const_iterator it = votes_.begin();
33  it != votes_.end();
34  ++it){
35  if(it->second > m.second){
36  m = *it;
37  }
38  }
39  if(proba) *proba = n_>0?m.second/n_:-1;
40  return m.first;
41  }
std::map< T, double > votes_
Definition: Majority.h:50
double n_
Definition: Majority.h:51
long double T
template<class T>
T Majority< T >::result ( double *  proba) const
inline

Result of majority decision

Parameters
proba.If not null, filled with the frequency of the selected value.
Returns
selected value, that is the most frequent one.

Definition at line 39 of file Majority.h.

References m, Majority< T >::n_, and Majority< T >::votes_.

39  {
40  std::pair<T, double> m(T(), -1.);
41  for(typename std::map<T, double>::const_iterator it = votes_.begin();
42  it != votes_.end();
43  ++it){
44  if(it->second > m.second){
45  m = *it;
46  }
47  }
48  if(proba) *proba = n_>0?m.second/n_:-1;
49  return m.first;
50  }
std::map< T, double > votes_
Definition: Majority.h:50
double n_
Definition: Majority.h:51
long double T

Member Data Documentation

template<class T>
double Majority< T >::n_
private

Definition at line 51 of file Majority.h.

Referenced by Majority< T >::add(), and Majority< T >::result().

template<class T>
std::map< T, double > Majority< T >::votes_
private

Definition at line 50 of file Majority.h.

Referenced by Majority< T >::add(), and Majority< T >::result().