NViewMatchingAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArThreeDBase/NViewMatchingAlgorithm.h
3  *
4  * @brief Header file for the n view matching algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_N_VIEW_MATCHING_ALGORITHM_H
9 #define LAR_N_VIEW_MATCHING_ALGORITHM_H 1
10 
12 
13 namespace lar_content
14 {
15 
16 /**
17  * @brief NViewMatchingAlgorithm class
18  */
19 template <typename T>
21 {
22 public:
23  typedef T MatchingType;
24 
25  /**
26  * @brief Default constructor
27  */
29 
30  /**
31  * @brief Destructor
32  */
33  virtual ~NViewMatchingAlgorithm();
34 
35  void UpdateForNewCluster(const pandora::Cluster *const pNewCluster);
36  void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster);
37  const std::string &GetClusterListName(const pandora::HitType hitType) const;
38  const pandora::ClusterList &GetInputClusterList(const pandora::HitType hitType) const;
39  const pandora::ClusterList &GetSelectedClusterList(const pandora::HitType hitType) const;
40 
41 protected:
42  /**
43  * @brief Get the matching control
44  */
45  MatchingType &GetMatchingControl();
46 
47  virtual void SelectAllInputClusters();
48  virtual void PrepareAllInputClusters();
49  virtual void PerformMainLoop();
50  virtual void TidyUp();
51  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
52 
53  MatchingType m_matchingControl; ///< The matching control
54 };
55 
56 //------------------------------------------------------------------------------------------------------------------------------------------
57 
58 template <typename T>
60 {
61  return m_matchingControl;
62 }
63 
64 } // namespace lar_content
65 
66 #endif // #ifndef LAR_N_VIEW_MATCHING_ALGORITHM_H
NViewMatchingAlgorithm class.
enum cvn::HType HitType
std::string string
Definition: nybbler.cc:12
virtual void TidyUp()
Tidy member variables in derived class.
MatchingBaseAlgorithm class.
MatchingType & GetMatchingControl()
Get the matching control.
void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)
Update to reflect cluster deletion.
void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)
Update to reflect addition of a new cluster to the problem space.
virtual void SelectAllInputClusters()
Select a subset of input clusters for processing in this algorithm.
MatchingType m_matchingControl
The matching control.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
const pandora::ClusterList & GetInputClusterList(const pandora::HitType hitType) const
Get the input cluster list corresponding to a specified hit type.
virtual void PrepareAllInputClusters()
Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
const pandora::ClusterList & GetSelectedClusterList(const pandora::HitType hitType) const
Get the selected cluster list corresponding to a specified hit type.
const std::string & GetClusterListName(const pandora::HitType hitType) const
Get the cluster list name corresponding to a specified hit type.
virtual void PerformMainLoop()
Main loop over cluster combinations in order to populate the overlap container. Responsible for calli...
Header file for the three dimension algorithm base class.