All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CBAlgoOutOfConeSeparate.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 CBAlgoOutOfConeSeparate
7  *
8  * @author david caratelli
9  */
10 
11 /** \addtogroup CMTool
12 
13  @{*/
14 #ifndef RECOTOOL_CBALGOOUTOFCONESEPARATE_H
15 #define RECOTOOL_CBALGOOUTOFCONESEPARATE_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
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 Max Angle Separation for separation for far away clusters
51 
52  /// Set Distance at which cone-acceptance angle starts falling off as 1/distance. Value should be distance^2 in cm^2
53  void SetStartAngleFalloff(float d) { _FallOff = d; }
54 
55  /// Set Minimum length for "big" cluster
56  void SetMinLength(float len) { _MinLen = len; }
57 
58  /// SetMinimum number of hits for small cluster
59  void SetMinHits(size_t n) { _minHits = n; }
60 
61  /// Function to reset the algorithm instance ... maybe implemented via child class
62  virtual void Reset(){}
63 
64  /// Function to report what's going on per merging
65  virtual void Report(){}
66 
67  protected:
68 
69  bool _debug;
70  float _MaxAngle;
71  float _MaxAngleFar;
72  float _MinLen;
73  float _FallOff;
74  size_t _minHits;
75 
76  };
77 }
78 
79 #endif
80 /** @} */ // end of doxygen group
Class def header for algorithm classes for CMergeManager.
void SetMinLength(float len)
Set Minimum length for "big" cluster.
virtual void Report()
Function to report what's going on per merging.
void SetStartAngleFalloff(float d)
Set Distance at which cone-acceptance angle starts falling off as 1/distance. Value should be distanc...
void SetDebug(bool on)
Set Debug Mode on or off.
void SetMaxAngleSep(float angle)
Set Max Angle Separation for separation.
virtual void Reset()
Function to reset the algorithm instance ... maybe implemented via child class.
virtual bool Bool(const ::cluster::ClusterParamsAlg &cluster1, const ::cluster::ClusterParamsAlg &cluster2)
void SetMinHits(size_t n)
SetMinimum number of hits for small cluster.
void SetMaxAngleFar(float angle)
Set Max Angle Separation for separation for far away clusters.
virtual ~CBAlgoOutOfConeSeparate()
Default destructor.
finds tracks best matching by angle
CBAlgoOutOfConeSeparate()
Default constructor.