All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IHit3DBuilder.h
Go to the documentation of this file.
1 /**
2  * @file IHit3DBuilder.h
3  *
4  * @brief This provides an art tool interface definition for tools which construct 3D hits used in 3D clustering
5  * and outputs a new hit collection based on those 3D hits
6  *
7  * @author usher@slac.stanford.edu
8  *
9  */
10 #ifndef IHit3DBuilder_h
11 #define IHit3DBuilder_h
12 
13 // Framework Includes
14 namespace art {
15  class Event;
16  class ProducesCollector;
17 }
18 #include "canvas/Persistency/Common/Ptr.h"
19 namespace fhicl { class ParameterSet; }
20 
21 
22 // Algorithm includes
25 
26 //------------------------------------------------------------------------------------------------------------------------------------------
27 
28 namespace art
29 {
30  class ProducesCollector;
31 }
32 
33 namespace lar_cluster3d
34 {
35 /**
36  * @brief IHit3DBuilder interface class definiton
37  */
39 {
40 public:
41  /**
42  * @brief Virtual Destructor
43  */
44  virtual ~IHit3DBuilder() noexcept = default;
45 
46  /**
47  * @brief The space point building should output the hit collection
48  * for those hits which combine to form space points - a nice noise filter!
49  */
50  virtual void produces(art::ProducesCollector&) = 0;
51 
52  /**
53  * @brief Interface for configuring the particular algorithm tool
54  *
55  * @param ParameterSet The input set of parameters for configuration
56  */
57  virtual void configure(const fhicl::ParameterSet&) = 0;
58 
59  /**
60  * @brief Defines a structure mapping art representation to internal
61  */
62  using RecobHitToPtrMap = std::unordered_map<const recob::Hit*, art::Ptr<recob::Hit>>;
63 
64  /**
65  * @brief Given a set of recob hits, run DBscan to form 3D clusters
66  *
67  * @param hitPairList The input list of 3D hits to run clustering on
68  * @param clusterParametersList A list of cluster objects (parameters from associated hits)
69  */
70  virtual void Hit3DBuilder(art::Event&, reco::HitPairList&, RecobHitToPtrMap&) = 0;
71 
72  /**
73  * @brief enumerate the possible values for time checking if monitoring timing
74  */
79  };
80 
81  /**
82  * @brief If monitoring, recover the time to execute a particular function
83  */
84  virtual float getTimeToExecute(TimeValues index) const = 0;
85 
86 };
87 
88 } // namespace lar_cluster3d
89 #endif
std::list< reco::ClusterHit3D > HitPairList
Definition: Cluster3D.h:338
Declaration of signal hit object.
virtual float getTimeToExecute(TimeValues index) const =0
If monitoring, recover the time to execute a particular function.
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.
TimeValues
enumerate the possible values for time checking if monitoring timing
Definition: IHit3DBuilder.h:75
IHit3DBuilder interface class definiton.
Definition: IHit3DBuilder.h:38
virtual void Hit3DBuilder(art::Event &, reco::HitPairList &, RecobHitToPtrMap &)=0
Given a set of recob hits, run DBscan to form 3D clusters.
virtual ~IHit3DBuilder() noexcept=default
Virtual Destructor.
virtual void produces(art::ProducesCollector &)=0
The space point building should output the hit collection for those hits which combine to form space ...
std::unordered_map< const recob::Hit *, art::Ptr< recob::Hit >> RecobHitToPtrMap
Defines a structure mapping art representation to internal.
Definition: IHit3DBuilder.h:62