All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IClusterAlg.h
Go to the documentation of this file.
1 /**
2  * @file IClusterAlg.h
3  *
4  * @brief This provides an art tool interface definition for 3D Cluster algorithms
5  *
6  * @author usher@slac.stanford.edu
7  *
8  */
9 #ifndef IClusterAlg_h
10 #define IClusterAlg_h
11 
12 // Framework Includes
13 namespace fhicl { class ParameterSet; }
14 
15 // Algorithm includes
17 
18 //------------------------------------------------------------------------------------------------------------------------------------------
19 
20 namespace lar_cluster3d
21 {
22 /**
23  * @brief IClusterAlg interface class definiton
24  */
26 {
27 public:
28  /**
29  * @brief Virtual Destructor
30  */
31  virtual ~IClusterAlg() noexcept = default;
32 
33  /**
34  * @brief Interface for configuring the particular algorithm tool
35  *
36  * @param ParameterSet The input set of parameters for configuration
37  */
38  virtual void configure(const fhicl::ParameterSet&) = 0;
39 
40  /**
41  * @brief Given a set of recob hits, run DBscan to form 3D clusters
42  *
43  * @param hitPairList The input list of 3D hits to run clustering on
44  * @param clusterParametersList A list of cluster objects (parameters from associated hits)
45  */
46  virtual void Cluster3DHits(reco::HitPairList& hitPairList,
47  reco::ClusterParametersList& clusterParametersList) const = 0;
48 
49  /**
50  * @brief Given a set of recob hits, run DBscan to form 3D clusters
51  *
52  * @param hitPairListPtr The input list of 3D hits to run clustering on
53  * @param clusterParametersList A list of cluster objects (parameters from associated hits)
54  */
55  virtual void Cluster3DHits(reco::HitPairListPtr& hitPairList,
56  reco::ClusterParametersList& clusterParametersList) const = 0;
57 
58  /**
59  * @brief enumerate the possible values for time checking if monitoring timing
60  */
63  RUNDBSCAN = 2,
67  };
68 
69  /**
70  * @brief If monitoring, recover the time to execute a particular function
71  */
72  virtual float getTimeToExecute(TimeValues index) const = 0;
73 
74 };
75 
76 } // namespace lar_cluster3d
77 #endif
std::list< reco::ClusterHit3D > HitPairList
Definition: Cluster3D.h:338
virtual ~IClusterAlg() noexcept=default
Virtual Destructor.
IClusterAlg interface class definiton.
Definition: IClusterAlg.h:25
virtual float getTimeToExecute(TimeValues index) const =0
If monitoring, recover the time to execute a particular function.
TimeValues
enumerate the possible values for time checking if monitoring timing
Definition: IClusterAlg.h:61
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:334
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.
virtual void Cluster3DHits(reco::HitPairList &hitPairList, reco::ClusterParametersList &clusterParametersList) const =0
Given a set of recob hits, run DBscan to form 3D clusters.
std::list< ClusterParameters > ClusterParametersList
Definition: Cluster3D.h:403