LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ThreeViewDeltaRayMatchingAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef LAR_THREE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H
9 #define LAR_THREE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmTool.h"
13 
15 
18 
19 namespace lar_content
20 {
21 
22 class DeltaRayTensorTool;
23 
24 //------------------------------------------------------------------------------------------------------------------------------------------
25 
29 class ThreeViewDeltaRayMatchingAlgorithm : public NViewDeltaRayMatchingAlgorithm<ThreeViewMatchingControl<DeltaRayOverlapResult>>
30 {
31 public:
34 
39 
45  std::string GetClusteringAlgName() const;
46 
47 private:
48  typedef std::vector<DeltaRayTensorTool *> TensorToolVector;
49 
50  void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW);
52  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
53 
61  virtual bool DoesClusterPassTensorThreshold(const pandora::Cluster *const pCluster) const;
62 
73  pandora::StatusCode CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV,
74  const pandora::Cluster *const pClusterW, DeltaRayOverlapResult &overlapResult) const;
75 
84  void FindCommonMuonParents(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV,
85  const pandora::Cluster *const pClusterW, pandora::PfoList &commonMuonPfoList) const;
86 
87  TensorToolVector m_algorithmToolVector;
89  unsigned int m_minClusterCaloHits;
90  unsigned int m_nMaxTensorToolRepeats;
91 };
92 
93 //------------------------------------------------------------------------------------------------------------------------------------------
94 
98 class DeltaRayTensorTool : public pandora::AlgorithmTool
99 {
100 public:
102  typedef std::vector<TensorType::ElementList::const_iterator> IteratorList;
103 
112  virtual bool Run(ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor) = 0;
113 
115 };
116 
117 //------------------------------------------------------------------------------------------------------------------------------------------
118 
120 {
122 }
123 
124 } // namespace lar_content
125 
126 #endif // #ifndef LAR_THREE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H
void ExamineOverlapContainer()
Examine contents of overlap container, collect together best-matching 2D particles and modify cluster...
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.
NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > > BaseAlgorithm
ThreeViewDeltaRayMatchingAlgorithm * m_pParentAlgorithm
Address of the parent matching algorithm.
std::string m_reclusteringAlgorithmName
The name of the clustering algorithm to be used to recluster created delta ray remnants.
TensorToolVector m_algorithmToolVector
The algorithm tool vector.
virtual bool DoesClusterPassTensorThreshold(const pandora::Cluster *const pCluster) const
To check whether a given cluster meets the requirements to be added into the matching container (tens...
std::string GetClusteringAlgName() const
Get the name of the clustering algorithm to be used to recluster created delta ray remnants...
std::vector< TensorType::ElementList::const_iterator > IteratorList
void FindCommonMuonParents(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, pandora::PfoList &commonMuonPfoList) const
Find the cosmic ray pfos that, in each view, lie close to the clusters of the tensor element...
unsigned int m_minClusterCaloHits
The threshold number of hits for a cluster to be considered.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType TensorType
DeltaRayOverlapResult class.
void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW)
Calculate cluster overlap result and store in container.
Header file for the lar track overlap result class.
Header file for the three view matching control class.
ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType TensorType