LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ThreeViewMatchingControl.h
Go to the documentation of this file.
1 
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 
21 template <typename T>
23 {
24 public:
26 
33 
37  virtual ~ThreeViewMatchingControl();
38 
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;
59  const pandora::ClusterList *m_pInputClusterListV;
60  const pandora::ClusterList *m_pInputClusterListW;
61 
62  pandora::ClusterList m_clusterListU;
63  pandora::ClusterList m_clusterListV;
64  pandora::ClusterList m_clusterListW;
65 
66  TensorType m_overlapTensor;
67 
71 
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.
HitType
Definition: HitType.h:12
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.