Public Types | Public Member Functions | Protected Attributes | List of all members
cmtool::CFAlgoArray Class Reference

#include <CFAlgoArray.h>

Inheritance diagram for cmtool::CFAlgoArray:
cmtool::CFloatAlgoBase cmtool::CMAlgoBase

Public Types

enum  EvaluationMode_t { kPositiveAddition, kSimpleAddition, kMultiplication, kLastAlgo }
 

Public Member Functions

 CFAlgoArray ()
 Default constructor. More...
 
virtual ~CFAlgoArray ()
 Default destructor. More...
 
void AddAlgo (CFloatAlgoBase *algo)
 Setter to add a new algorithm. More...
 
void SetMode (EvaluationMode_t mode)
 Setter for an evaluation. More...
 
virtual float Float (const std::vector< const cluster::ClusterParamsAlg * > &cluster)
 
virtual void Report ()
 
virtual void Reset ()
 Function to reset the algorithm instance, called together with manager's Reset() More...
 
virtual void EventBegin (const std::vector< cluster::ClusterParamsAlg > &clusters)
 
virtual void EventEnd ()
 
virtual void IterationBegin (const std::vector< cluster::ClusterParamsAlg > &clusters)
 
virtual void IterationEnd ()
 
- Public Member Functions inherited from cmtool::CFloatAlgoBase
 CFloatAlgoBase ()
 Default constructor. More...
 
virtual ~CFloatAlgoBase ()
 Default destructor. More...
 
- Public Member Functions inherited from cmtool::CMAlgoBase
 CMAlgoBase ()
 Default constructor. More...
 
virtual ~CMAlgoBase ()
 Default destructor. More...
 
void SetAnaFile (TFile *fout)
 Setter function for an output plot TFile pointer. More...
 
virtual void SetVerbose (bool doit=true)
 Setter function for verbosity. More...
 

Protected Attributes

std::vector< CFloatAlgoBase * > _algo_array
 vector of algorithms More...
 
EvaluationMode_t _mode
 evaluation mode More...
 
- Protected Attributes inherited from cmtool::CMAlgoBase
TFile * _fout
 TFile pointer to an output file. More...
 
bool _verbose
 Boolean to choose verbose mode. Turned on if CMergeManager/CMatchManager's verbosity level is >= kPerMerging. More...
 

Detailed Description

User implementation for CFloatAlgoBase class This is an array of priority algorithms. It has multiple modes to compute combined Float() return value.

Definition at line 26 of file CFAlgoArray.h.

Member Enumeration Documentation

Enumerator
kPositiveAddition 

DEFAULT: simply add Float() return values except negative return. If there is a negative return value, it returns that and stop processing the rest of algorithms

kSimpleAddition 

Simply add Float() return values from all algorithms. Note some algorithms are allowed to return negative values.

kMultiplication 

Multiply Float() return values from all algorithms except negative return. If there is a negative return, it returns that and stop processing the rest of algorithms

kLastAlgo 

If all algorithms return positive values, return the last algorithm's Float() return value. If any algorithm returns negative, it returns that and stop processing the rest of algorithms

Definition at line 30 of file CFAlgoArray.h.

30  {
31  /**
32  DEFAULT: simply add Float() return values except negative return.
33  If there is a negative return value, it returns that and stop processing
34  the rest of algorithms
35  */
37  /**
38  Simply add Float() return values from all algorithms.
39  Note some algorithms are allowed to return negative values.
40  */
42  /**
43  Multiply Float() return values from all algorithms except negative
44  return. If there is a negative return, it returns that and stop
45  processing the rest of algorithms
46  */
48  /**
49  If all algorithms return positive values, return the last algorithm's
50  Float() return value. If any algorithm returns negative, it returns that
51  and stop processing the rest of algorithms
52  */
53  kLastAlgo,
54  };

Constructor & Destructor Documentation

cmtool::CFAlgoArray::CFAlgoArray ( )

Default constructor.

Definition at line 6 of file CFAlgoArray.cxx.

7  //-------------------------------------------------------
8  {
10  _algo_array.clear();
11  }
EvaluationMode_t _mode
evaluation mode
Definition: CFAlgoArray.h:115
CFloatAlgoBase()
Default constructor.
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual cmtool::CFAlgoArray::~CFAlgoArray ( )
inlinevirtual

Default destructor.

Definition at line 60 of file CFAlgoArray.h.

60 {};

Member Function Documentation

void cmtool::CFAlgoArray::AddAlgo ( CFloatAlgoBase algo)
inline

Setter to add a new algorithm.

Definition at line 63 of file CFAlgoArray.h.

63 { _algo_array.push_back(algo); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::EventBegin ( const std::vector< cluster::ClusterParamsAlg > &  clusters)
inlinevirtual

Optional function: called at the beginning of 1st iteration. This is called per event.

Reimplemented from cmtool::CMAlgoBase.

Definition at line 86 of file CFAlgoArray.h.

87  { for(auto const& algo : _algo_array) algo->EventBegin(clusters); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::EventEnd ( )
inlinevirtual

Optional function: called at the end of event ... after the last merging iteration is over.

Reimplemented from cmtool::CMAlgoBase.

Definition at line 92 of file CFAlgoArray.h.

93  { for(auto const& algo : _algo_array) algo->EventEnd(); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
float cmtool::CFAlgoArray::Float ( const std::vector< const cluster::ClusterParamsAlg * > &  cluster)
virtual

Core function: given a set of CPANs, return a float which indicates the compatibility the cluster combination.

Reimplemented from cmtool::CFloatAlgoBase.

Definition at line 14 of file CFAlgoArray.cxx.

16  {
17 
18  std::vector<float> score_array;
19  score_array.reserve(_algo_array.size());
20 
21  for(auto const& algo : _algo_array) {
22 
23  float score = algo->Float(clusters);
24 
25  if(_mode != kSimpleAddition && score < 0)
26 
27  return score;
28 
29  score_array.push_back(score);
30 
31  }
32 
33  float score_result = 0;
34 
35  switch(_mode) {
36 
37  case kLastAlgo:
38 
39  score_result = (*score_array.rbegin());
40  break;
41 
42  case kSimpleAddition:
43  case kPositiveAddition:
44 
45  for(auto const& score : score_array) score_result += score;
46  break;
47 
48  case kMultiplication:
49 
50  for(auto const& score : score_array) score_result *= score;
51  break;
52 
53  }
54 
55  return score_result;
56  }
EvaluationMode_t _mode
evaluation mode
Definition: CFAlgoArray.h:115
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::IterationBegin ( const std::vector< cluster::ClusterParamsAlg > &  clusters)
inlinevirtual

Optional function: called at the beggining of each iterative loop. This provides all clusters' information in case the algorithm need them. Note this is called per iteration which may be more than once per event.

Reimplemented from cmtool::CMAlgoBase.

Definition at line 100 of file CFAlgoArray.h.

101  { for(auto const& algo : _algo_array) algo->IterationBegin(clusters); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::IterationEnd ( )
inlinevirtual

Optional function: called at the end of each iterative loop.

Reimplemented from cmtool::CMAlgoBase.

Definition at line 106 of file CFAlgoArray.h.

107  { for(auto const& algo : _algo_array) algo->IterationEnd(); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::Report ( )
inlinevirtual

Optional function: called after each iterative approach if a manager class is run with verbosity level <= kPerIteration. Maybe useful for debugging.

Reimplemented from cmtool::CMAlgoBase.

Definition at line 78 of file CFAlgoArray.h.

78 { for(auto const& algo : _algo_array) algo->Report(); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
virtual void cmtool::CFAlgoArray::Reset ( void  )
inlinevirtual

Function to reset the algorithm instance, called together with manager's Reset()

Reimplemented from cmtool::CMAlgoBase.

Definition at line 81 of file CFAlgoArray.h.

81 { for(auto const& algo : _algo_array) algo->Reset(); }
std::vector< CFloatAlgoBase * > _algo_array
vector of algorithms
Definition: CFAlgoArray.h:112
void cmtool::CFAlgoArray::SetMode ( EvaluationMode_t  mode)
inline

Setter for an evaluation.

Definition at line 66 of file CFAlgoArray.h.

66 { _mode = mode; }
EvaluationMode_t _mode
evaluation mode
Definition: CFAlgoArray.h:115

Member Data Documentation

std::vector<CFloatAlgoBase*> cmtool::CFAlgoArray::_algo_array
protected

vector of algorithms

Definition at line 112 of file CFAlgoArray.h.

EvaluationMode_t cmtool::CFAlgoArray::_mode
protected

evaluation mode

Definition at line 115 of file CFAlgoArray.h.


The documentation for this class was generated from the following files: