All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IClusterModAlg.h
Go to the documentation of this file.
1 /**
2  * @file IClusterModAlg.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 IClusterModAlg_h
10 #define IClusterModAlg_h
11 
12 // Framework Includes
13 namespace fhicl { class ParameterSet; }
14 
15 // Algorithm includes
17 
18 //------------------------------------------------------------------------------------------------------------------------------------------
19 namespace art
20 {
21  class TFileDirectory;
22 }
23 
24 namespace lar_cluster3d
25 {
26 /**
27  * @brief IClusterModAlg interface class definiton
28  */
30 {
31 public:
32  /**
33  * @brief Virtual Destructor
34  */
35  virtual ~IClusterModAlg() noexcept = default;
36 
37  /**
38  * @brief Interface for configuring the particular algorithm tool
39  *
40  * @param ParameterSet The input set of parameters for configuration
41  */
42  virtual void configure(const fhicl::ParameterSet&) = 0;
43 
44  /**
45  * @brief Interface for initializing histograms if they are desired
46  * Note that the idea is to put hisgtograms in a subfolder
47  *
48  * @param TFileDirectory - the folder to store the hists in
49  */
50  virtual void initializeHistograms(art::TFileDirectory&) = 0;
51 
52  /**
53  * @brief Scan an input collection of clusters and modify those according
54  * to the specific implementing algorithm
55  *
56  * @param clusterParametersList A list of cluster objects (parameters from associated hits)
57  */
58  virtual void ModifyClusters(reco::ClusterParametersList&) const = 0;
59 
60  /**
61  * @brief If monitoring, recover the time to execute a particular function
62  */
63  virtual float getTimeToExecute() const = 0;
64 
65 };
66 
67 } // namespace lar_cluster3d
68 #endif
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.
IClusterModAlg interface class definiton.
virtual ~IClusterModAlg() noexcept=default
Virtual Destructor.
virtual void ModifyClusters(reco::ClusterParametersList &) const =0
Scan an input collection of clusters and modify those according to the specific implementing algorith...
virtual void initializeHistograms(art::TFileDirectory &)=0
Interface for initializing histograms if they are desired Note that the idea is to put hisgtograms in...
virtual float getTimeToExecute() const =0
If monitoring, recover the time to execute a particular function.
std::list< ClusterParameters > ClusterParametersList
Definition: Cluster3D.h:403