All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CBAlgoAngleSeparate.h
Go to the documentation of this file.
1 /**
2  * \file CBAlgoMergeAll.h
3  *
4  * \ingroup CMTool
5  *
6  * \brief Class def header for a class CBAlgoAngleSeparate
7  *
8  * @author david caratelli
9  */
10 
11 /** \addtogroup CMTool
12 
13  @{*/
14 #ifndef RECOTOOL_CBALGOANGLESEPARATE_H
15 #define RECOTOOL_CBALGOANGLESEPARATE_H
16 
19 
20 namespace cmtool {
21  /**
22  \class CBAlgoAngleSeparate
23  Track Prohibit algorithm: if the angle between the direction of a cluster (end-start) and the line connecting the cluster's start point and the start point of t a second cluster is too large, then probihit merging between the two clusters. The first cluster needs to be a "good" and "large" cluster
24  algorithm has performed
25  */
27 
28  public:
29 
30  /// Default constructor
32 
33  /// Default destructor
34  virtual ~CBAlgoAngleSeparate(){};
35 
36  /**
37  Core function: given the ClusterParamsAlg input, return whether a cluster should be
38  merged or not.
39  */
40  virtual bool Bool(const ::cluster::ClusterParamsAlg &cluster1,
41  const ::cluster::ClusterParamsAlg &cluster2);
42 
43  /// Set Debug Mode on or off
44  void SetDebug(bool on) { _debug = on; }
45 
46  /// Set Max Angle Separation for separation
47  void SetMaxAngleSep(float angle) { _MaxAngle = angle; }
48 
49  /// Set Minimum length for "big" cluster
50  void SetMinLength(float len) { _MinLen = len; }
51 
52  /// SetMinimum number of hits for small cluster
53  void SetMinHits(size_t n) { _minHits = n; }
54 
55  /// Function to reset the algorithm instance ... maybe implemented via child class
56  virtual void Reset(){}
57 
58  /// Function to report what's going on per merging
59  virtual void Report();
60 
61  protected:
62 
63  bool _debug;
64  float _MaxAngle;
65  float _MinLen;
66  size_t _minHits;
67 
68  };
69 }
70 
71 #endif
72 /** @} */ // end of doxygen group
Class def header for algorithm classes for CMergeManager.
virtual void Report()
Function to report what's going on per merging.
virtual bool Bool(const ::cluster::ClusterParamsAlg &cluster1, const ::cluster::ClusterParamsAlg &cluster2)
virtual void Reset()
Function to reset the algorithm instance ... maybe implemented via child class.
virtual ~CBAlgoAngleSeparate()
Default destructor.
CBAlgoAngleSeparate()
Default constructor.
finds tracks best matching by angle
void SetMaxAngleSep(float angle)
Set Max Angle Separation for separation.
void SetMinLength(float len)
Set Minimum length for "big" cluster.
void SetDebug(bool on)
Set Debug Mode on or off.
void SetMinHits(size_t n)
SetMinimum number of hits for small cluster.