All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IClusterParamsBuilder.h
Go to the documentation of this file.
1 /**
2  * @file ClusterParamsBuilder.h
3  *
4  * @brief Interface definitions for selecting and building clusters after having run a clustering algorithm
5  *
6  * @author usher@slac.stanford.edu
7  *
8  */
9 #ifndef IClusterParamsBuilder_h
10 #define IClusterParamsBuilder_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 ClusterParamsBuilder class definiton
24  */
26 {
27 public:
28  /**
29  * @brief Destructor
30  */
31  virtual ~IClusterParametersBuilder() noexcept = default;
32 
33  virtual void configure(const fhicl::ParameterSet&) = 0;
34 
35  /**
36  * @brief Given the results of running DBScan, format the clusters so that they can be
37  * easily transferred back to the larsoft world
38  *
39  * @param hitPairClusterMap map between view and a list of 3D hits
40  * @param clusterParametersList a container for our candidate 3D clusters
41  * @param rejectionFraction Used for determine "hit purity" when rejecting clusters
42  *
43  * The last two parameters are passed through to the IClusterParamsBuilder method
44  */
45  virtual void BuildClusterInfo(reco::ClusterParametersList& clusterParametersList) const = 0;
46 
47  /**
48  * @brief Fill the cluster parameters (expose to outside world for case of splitting/merging clusters)
49  *
50  * @param ClusterParameters The cluster parameters container to be modified
51  * @param Hit2DToClusterMap Map to keep track of 2D hit to cluster association
52  * @param double minimum fraction of unique hits
53  * @param double maximum fraction of "lost" hits
54  */
55 
58  double minUniqueFrac = 0.,
59  double maxLostFrac=1.) const = 0;
60 };
61 
62 } // namespace lar_cluster3d
63 #endif
virtual void BuildClusterInfo(reco::ClusterParametersList &clusterParametersList) const =0
Given the results of running DBScan, format the clusters so that they can be easily transferred back ...
virtual void FillClusterParams(reco::ClusterParameters &, reco::Hit2DToClusterMap &, double minUniqueFrac=0., double maxLostFrac=1.) const =0
Fill the cluster parameters (expose to outside world for case of splitting/merging clusters) ...
virtual ~IClusterParametersBuilder() noexcept=default
Destructor.
virtual void configure(const fhicl::ParameterSet &)=0
std::unordered_map< const reco::ClusterHit2D *, ClusterToHitPairSetMap > Hit2DToClusterMap
Definition: Cluster3D.h:510
ClusterParamsBuilder class definiton.
std::list< ClusterParameters > ClusterParametersList
Definition: Cluster3D.h:403