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  */
44  TensorType &GetOverlapTensor();
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.
enum cvn::HType HitType
void PerformMainLoop()
Main loop over cluster combinations in order to populate the overlap container. Responsible for calli...
std::string string
Definition: nybbler.cc:12
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.