All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NViewMatchingControl.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArThreeDBase/NViewMatchingControl.h
3  *
4  * @brief Header file for the matching control class.
5  *
6  * $Log: $
7  */
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 
18 /**
19  * @brief NViewMatchingControl class
20  */
22 {
23 public:
24  /**
25  * @brief Constructor
26  *
27  * @param pAlgorithm address of the matching base algorithm
28  */
30 
31  /**
32  * @brief Destructor
33  */
34  virtual ~NViewMatchingControl();
35 
36 protected:
37  /**
38  * @brief Update to reflect addition of a new cluster to the problem space
39  *
40  * @param pNewCluster address of the new cluster
41  */
42  virtual void UpdateForNewCluster(const pandora::Cluster *const pNewCluster) = 0;
43 
44  /**
45  * @brief Update to reflect cluster deletion
46  *
47  * @param pDeletedCluster address of the deleted cluster
48  */
49  virtual void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster) = 0;
50 
51  /**
52  * @brief Get the cluster list name corresponding to a specified hit type
53  *
54  * @param hitType the hit type
55  *
56  * @return the cluster list name
57  */
58  virtual const std::string &GetClusterListName(const pandora::HitType hitType) const = 0;
59 
60  /**
61  * @brief Get the input cluster list corresponding to a specified hit type
62  *
63  * @param hitType the hit type
64  *
65  * @return the input cluster list
66  */
67  virtual const pandora::ClusterList &GetInputClusterList(const pandora::HitType hitType) const = 0;
68 
69  /**
70  * @brief Get the selected cluster list corresponding to a specified hit type
71  *
72  * @param hitType the hit type
73  *
74  * @return the selected cluster list
75  */
76  virtual const pandora::ClusterList &GetSelectedClusterList(const pandora::HitType hitType) const = 0;
77 
78  /**
79  * @brief Select a subset of input clusters for processing in this algorithm
80  */
81  virtual void SelectAllInputClusters() = 0;
82 
83  /**
84  * @brief Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results
85  */
86  virtual void PrepareAllInputClusters() = 0;
87 
88  /**
89  * @brief Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult.
90  */
91  virtual void PerformMainLoop() = 0;
92 
93  /**
94  * @brief Tidy member variables
95  */
96  virtual void TidyUp() = 0;
97 
98  /**
99  * @brief Read settings from xml
100  *
101  * @param xmlHandle the xml handle
102  */
103  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle) = 0;
104 
105  MatchingBaseAlgorithm *m_pAlgorithm; ///< The address of the matching base algorithm
106 };
107 
108 //------------------------------------------------------------------------------------------------------------------------------------------
109 
110 inline NViewMatchingControl::NViewMatchingControl(MatchingBaseAlgorithm *const pAlgorithm) : m_pAlgorithm(pAlgorithm)
111 {
112 }
113 
114 //------------------------------------------------------------------------------------------------------------------------------------------
115 
117 {
118 }
119 
120 } // namespace lar_content
121 
122 #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 std::string & GetClusterListName(const pandora::HitType hitType) const =0
Get the cluster list name corresponding to a specified hit type.
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 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...
virtual const pandora::ClusterList & GetSelectedClusterList(const pandora::HitType hitType) const =0
Get the selected cluster list corresponding to a specified hit type.