CFloatAlgoBase.h
Go to the documentation of this file.
1 /**
2  * \file CFloatAlgoBase.h
3  *
4  * \ingroup CMTool
5  *
6  * \brief Class def header for a class CFloatAlgoBase
7  *
8  * @author kazuhiro
9  */
10 
11 /** \addtogroup CMTool
12 
13  @{*/
14 #ifndef RECOTOOL_CFLOATALGOBASE_H
15 #define RECOTOOL_CFLOATALGOBASE_H
16 
17 #include "CMAlgoBase.h"
18 namespace util {
19  class GeometryUtilities;
20 }
21 
22 namespace cmtool {
23 
24  /**
25  \class CFloatAlgoBase
26  An abstract base class for mathcing algorithm. Having this base class helps
27  to have a better overall design of various merging for iterative approach.
28  The algorithms are run through CMergeManager.
29  */
30  class CFloatAlgoBase : public CMAlgoBase {
31  public:
32  /**
33  Core function: given the CPAN input, return whether a cluster should be
34  merged or not.
35  */
36  virtual float
38  const std::vector<const cluster::ClusterParamsAlg*>& clusters)
39  {
40  if (clusters.size())
41  return 1;
42  else
43  return -1;
44  }
45  };
46 
47 }
48 
49 #endif
50 /** @} */ // end of doxygen group
Namespace for general, non-LArSoft-specific utilities.
virtual float Float(util::GeometryUtilities const &, const std::vector< const cluster::ClusterParamsAlg * > &clusters)
Class def header for a class CMAlgoBase.