LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
IClusterAlg.h
Go to the documentation of this file.
1 
9 #ifndef IClusterAlg_h
10 #define IClusterAlg_h
11 
12 // Framework Includes
13 namespace fhicl {
14  class ParameterSet;
15 }
16 
17 // Algorithm includes
19 
20 //------------------------------------------------------------------------------------------------------------------------------------------
21 
22 namespace lar_cluster3d {
26  class IClusterAlg {
27  public:
31  virtual ~IClusterAlg() noexcept = default;
32 
38  virtual void configure(const fhicl::ParameterSet&) = 0;
39 
46  virtual void Cluster3DHits(reco::HitPairList& hitPairList,
47  reco::ClusterParametersList& clusterParametersList) const = 0;
48 
55  virtual void Cluster3DHits(reco::HitPairListPtr& hitPairList,
56  reco::ClusterParametersList& clusterParametersList) const = 0;
57 
61  enum TimeValues {
62  BUILDTHREEDHITS = 0,
63  BUILDHITTOHITMAP = 1,
64  RUNDBSCAN = 2,
65  BUILDCLUSTERINFO = 3,
66  PATHFINDING = 4,
67  NUMTIMEVALUES
68  };
69 
73  virtual float getTimeToExecute(TimeValues index) const = 0;
74  };
75 
76 } // namespace lar_cluster3d
77 #endif
std::list< reco::ClusterHit3D > HitPairList
Definition: Cluster3D.h:330
IClusterAlg interface class definiton.
Definition: IClusterAlg.h:26
parameter set interface
TimeValues
enumerate the possible values for time checking if monitoring timing
Definition: IClusterAlg.h:61
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:326
std::list< ClusterParameters > ClusterParametersList
Definition: Cluster3D.h:393