LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
NViewMatchingControl.h
Go to the documentation of this file.
1 
8 #ifndef LAR_N_VIEW_MATCHING_CONTROL_H
9 #define LAR_N_VIEW_MATCHING_CONTROL_H 1
10 
11 namespace lar_content
12 {
13 
14 class MatchingBaseAlgorithm;
15 
16 //------------------------------------------------------------------------------------------------------------------------------------------
17 
22 {
23 public:
30 
34  virtual ~NViewMatchingControl();
35 
36 protected:
42  virtual void UpdateForNewCluster(const pandora::Cluster *const pNewCluster) = 0;
43 
49  virtual void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster) = 0;
50 
58  virtual const std::string &GetClusterListName(const pandora::HitType hitType) const = 0;
59 
67  virtual const pandora::ClusterList &GetInputClusterList(const pandora::HitType hitType) const = 0;
68 
76  virtual const pandora::ClusterList &GetSelectedClusterList(const pandora::HitType hitType) const = 0;
77 
81  virtual void SelectAllInputClusters() = 0;
82 
86  virtual void PrepareAllInputClusters() = 0;
87 
91  virtual void PerformMainLoop() = 0;
92 
96  virtual void TidyUp() = 0;
97 
103  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle) = 0;
104 
106 };
107 
108 //------------------------------------------------------------------------------------------------------------------------------------------
109 
111  m_pAlgorithm(pAlgorithm)
112 {
113 }
114 
115 //------------------------------------------------------------------------------------------------------------------------------------------
116 
118 {
119 }
120 
121 } // namespace lar_content
122 
123 #endif // #ifndef LAR_N_VIEW_MATCHING_CONTROL_H
virtual void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)=0
Update to reflect addition of a new cluster to the problem space.
NViewMatchingControl(MatchingBaseAlgorithm *const pAlgorithm)
Constructor.
virtual void PrepareAllInputClusters()=0
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results...
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)=0
Read settings from xml.
NViewMatchingControl class.
MatchingBaseAlgorithm * m_pAlgorithm
The address of the matching base algorithm.
virtual const pandora::ClusterList & GetInputClusterList(const pandora::HitType hitType) const =0
Get the input cluster list corresponding to a specified hit type.
MatchingBaseAlgorithm class.
virtual const std::string & GetClusterListName(const pandora::HitType hitType) const =0
Get the cluster list name corresponding to a specified hit type.
virtual const pandora::ClusterList & GetSelectedClusterList(const pandora::HitType hitType) const =0
Get the selected cluster list corresponding to a specified hit type.
virtual void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)=0
Update to reflect cluster deletion.
virtual void SelectAllInputClusters()=0
Select a subset of input clusters for processing in this algorithm.
virtual ~NViewMatchingControl()
Destructor.
virtual void TidyUp()=0
Tidy member variables.
virtual void PerformMainLoop()=0
Main loop over cluster combinations in order to populate the overlap container. Responsible for calli...
HitType
Definition: HitType.h:12