All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ThreeViewMatchingControl.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArThreeDBase/ThreeViewMatchingControl.h
3  *
4  * @brief Header file for the three view matching control class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_THREE_VIEW_MATCHING_CONTROL_H
9 #define LAR_THREE_VIEW_MATCHING_CONTROL_H 1
10 
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief ThreeViewMatchingControl class
20  */
21 template <typename T>
23 {
24 public:
26 
27  /**
28  * @brief Constructor
29  *
30  * @param pAlgorithm address of the matching base algorithm
31  */
33 
34  /**
35  * @brief Destructor
36  */
37  virtual ~ThreeViewMatchingControl();
38 
39  /**
40  * @brief Get the overlap tensor
41  *
42  * @return the overlap tensor
43  */
45 
46 private:
47  void UpdateForNewCluster(const pandora::Cluster *const pNewCluster);
48  void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster);
49  const std::string &GetClusterListName(const pandora::HitType hitType) const;
50  const pandora::ClusterList &GetInputClusterList(const pandora::HitType hitType) const;
51  const pandora::ClusterList &GetSelectedClusterList(const pandora::HitType hitType) const;
54  void PerformMainLoop();
55  void TidyUp();
56  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
57 
58  const pandora::ClusterList *m_pInputClusterListU; ///< Address of the input cluster list U
59  const pandora::ClusterList *m_pInputClusterListV; ///< Address of the input cluster list V
60  const pandora::ClusterList *m_pInputClusterListW; ///< Address of the input cluster list W
61 
62  pandora::ClusterList m_clusterListU; ///< The selected modified cluster list U
63  pandora::ClusterList m_clusterListV; ///< The selected modified cluster list V
64  pandora::ClusterList m_clusterListW; ///< The selected modified cluster list W
65 
66  TensorType m_overlapTensor; ///< The overlap tensor
67 
68  std::string m_inputClusterListNameU; ///< The name of the view U cluster list
69  std::string m_inputClusterListNameV; ///< The name of the view V cluster list
70  std::string m_inputClusterListNameW; ///< The name of the view W cluster list
71 
72  friend class ThreeViewTrackFragmentsAlgorithm; ///< ATTN This is for legacy purposes only
74 
75  template <typename U>
76  friend class NViewMatchingAlgorithm;
77 };
78 
79 } // namespace lar_content
80 
81 #endif // #ifndef LAR_THREE_VIEW_MATCHING_CONTROL_H
ThreeViewMatchingControl class.
pandora::ClusterList m_clusterListW
The selected modified cluster list W.
pandora::ClusterList m_clusterListU
The selected modified cluster list U.
OverlapTensor class.
NViewMatchingAlgorithm class.
std::string m_inputClusterListNameW
The name of the view W cluster list.
NViewMatchingControl class.
TensorType & GetOverlapTensor()
Get the overlap tensor.
Header file for the lar overlap tensor class.
pandora::ClusterList m_clusterListV
The selected modified cluster list V.
void PerformMainLoop()
Main loop over cluster combinations in order to populate the overlap container. Responsible for calli...
MatchingBaseAlgorithm class.
Header file for the matching control class.
void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)
Update to reflect addition of a new cluster to the problem space.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read settings from xml.
std::string m_inputClusterListNameV
The name of the view V cluster list.
void PrepareAllInputClusters()
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results...
const std::string & GetClusterListName(const pandora::HitType hitType) const
Get the cluster list name corresponding to a specified hit type.
const pandora::ClusterList * m_pInputClusterListU
Address of the input cluster list U.
const pandora::ClusterList & GetInputClusterList(const pandora::HitType hitType) const
Get the input cluster list corresponding to a specified hit type.
TensorType m_overlapTensor
The overlap tensor.
const pandora::ClusterList * m_pInputClusterListV
Address of the input cluster list V.
ThreeViewMatchingControl(MatchingBaseAlgorithm *const pAlgorithm)
Constructor.
const pandora::ClusterList * m_pInputClusterListW
Address of the input cluster list W.
const pandora::ClusterList & GetSelectedClusterList(const pandora::HitType hitType) const
Get the selected cluster list corresponding to a specified hit type.
std::string m_inputClusterListNameU
The name of the view U cluster list.
void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)
Update to reflect cluster deletion.
void SelectAllInputClusters()
Select a subset of input clusters for processing in this algorithm.