CBAlgoStartTrack.h
Go to the documentation of this file.
1 /**
2  * \file CBAlgoStartTrack.h
3  *
4  * \ingroup CMTool
5  *
6  * \brief This merge algo is looking for short tracks from the
7  * start of a shower that are overlapping a blob that is
8  * a cluster belonging to the same shower.
9  *
10  * @author davidkaleko
11  */
12 
13 /** \addtogroup CMTool
14 
15  @{*/
16 #ifndef RECOTOOL_CBALGOSTARTTRACK_H
17 #define RECOTOOL_CBALGOSTARTTRACK_H
18 
21 
22 namespace cmtool {
23  /**
24  \class CBAlgoStartTrack
25  User implementation for CBoolAlgoBase class
26  doxygen documentation!
27  */
29 
30  public:
31 
32  /// Default constructor
34 
35  /// Default destructor
36  virtual ~CBAlgoStartTrack(){};
37 
38  /**
39  Optional function: called at the beginning of 1st iteration. This is called per event.
40  */
41  //virtual void EventBegin(const std::vector<cluster::ClusterParamsAlg> &clusters);
42 
43  /**
44  Optional function: called at the end of event ... after the last merging iteration is over.
45  */
46  //virtual void EventEnd();
47 
48  /**
49  Optional function: called at the beggining of each iteration over all pairs of clusters.
50  This provides all clusters' information in case the algorithm need them. Note this
51  is called per iteration which may be more than once per event.
52  */
53  //virtual void IterationBegin(const std::vector<cluster::ClusterParamsAlg> &clusters);
54 
55  /**
56  Optional function: called at the end of each iteration over all pairs of clusters.
57  */
58  //virtual void IterationEnd();
59 
60  /**
61  Core function: given the CPAN input, return whether a cluster should be
62  merged or not.
63  */
64  virtual bool Bool(const ::cluster::ClusterParamsAlg &cluster1,
65  const ::cluster::ClusterParamsAlg &cluster2);
66 
67  /**
68  Optional function: called after each Merge() function call by CMergeManager IFF
69  CMergeManager is run with verbosity level kPerMerging. Maybe useful for debugging.
70  */
71  virtual void Report();
72 
73  /// Function to reset the algorithm instance ... maybe implemented via child class
74  virtual void Reset();
75 
76  bool IsStartTrack(const ::cluster::ClusterParamsAlg &cluster);
77 
78  bool IsOverlappingBlob(const ::cluster::ClusterParamsAlg &cluster);
79 
80  void SetMinWidth(double value) { _min_width = value; }
81 
83 
84  void SetMinEP(double value) { _min_EP = value; }
85 
86  void SetMinHits(size_t value) { _min_hits = value; }
87 
88  void SetDebug(bool flag) { _debug = flag; }
89 
90  protected:
91 
92  size_t _min_hits;
94  bool _debug;
95 
96  };
97 }
98 #endif
99 /** @} */ // end of doxygen group
Class def header for algorithm classes for CMergeManager.
void SetMinWidth(double value)
virtual bool Bool(const ::cluster::ClusterParamsAlg &cluster1, const ::cluster::ClusterParamsAlg &cluster2)
Cluster finding and building.
void SetMinOpeningAngle(double value)
virtual ~CBAlgoStartTrack()
Default destructor.
void SetMinEP(double value)
void SetMinHits(size_t value)
bool IsStartTrack(const ::cluster::ClusterParamsAlg &cluster)
CBAlgoStartTrack()
Default constructor.
virtual void Reset()
Function to reset the algorithm instance ... maybe implemented via child class.
bool IsOverlappingBlob(const ::cluster::ClusterParamsAlg &cluster)