Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
ThreeViewLongitudinalTracksAlgorithm.h
Go to the documentation of this file.
1
8#ifndef LAR_THREE_VIEW_LONGITUDINAL_TRACKS_ALGORITHM_H
9#define LAR_THREE_VIEW_LONGITUDINAL_TRACKS_ALGORITHM_H 1
10
11#include "Pandora/Algorithm.h"
13
15
18
19namespace lar_content
20{
21
22class LongitudinalTensorTool;
23
24//------------------------------------------------------------------------------------------------------------------------------------------
25
29class ThreeViewLongitudinalTracksAlgorithm : public NViewTrackMatchingAlgorithm<ThreeViewMatchingControl<LongitudinalOverlapResult>>
30{
31public:
33
38
39private:
40 void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW);
41
50 void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV,
51 const pandora::Cluster *const pClusterW, LongitudinalOverlapResult &overlapResult);
52
63 void CalculateOverlapResult(const TwoDSlidingFitResult &slidingFitResultU, const TwoDSlidingFitResult &slidingFitResultV,
64 const TwoDSlidingFitResult &slidingFitResultW, const pandora::CartesianVector &vtxMerged3D,
65 const pandora::CartesianVector &endMerged3D, TrackOverlapResult &overlapResult) const;
66
68
70
71 typedef std::vector<LongitudinalTensorTool *> TensorToolVector;
73
78};
79
80//------------------------------------------------------------------------------------------------------------------------------------------
81
86{
87public:
88 typedef ThreeViewLongitudinalTracksAlgorithm::MatchingType::TensorType TensorType;
89 typedef std::vector<TensorType::ElementList::const_iterator> IteratorList;
90
99 virtual bool Run(ThreeViewLongitudinalTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor) = 0;
100};
101
102} // namespace lar_content
103
104#endif // #ifndef LAR_THREE_VIEW_LONGITUDINAL_TRACKS_ALGORITHM_H
Header file for the algorithm class.
Header file for the algorithm tool class.
Header file for the lar track overlap result class.
Header file for the n view track matching algorithm class.
Header file for the three view matching control class.
virtual bool Run(ThreeViewLongitudinalTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor)=0
Run the algorithm tool.
ThreeViewLongitudinalTracksAlgorithm::MatchingType::TensorType TensorType
std::vector< TensorType::ElementList::const_iterator > IteratorList
void ExamineOverlapContainer()
Examine contents of overlap container, collect together best-matching 2D particles and modify cluster...
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.
float m_reducedChi2Cut
The maximum allowed chi2 for associating hit positions from three views.
float m_vertexChi2Cut
The maximum allowed chi2 for associating end points from three views.
NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > > BaseAlgorithm
float m_samplingPitch
Pitch used to generate sampling points along tracks.
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
AlgorithmTool class. Algorithm tools will tend to be tailored for specific parent algorithms,...
CartesianVector class.
Cluster class.
Definition Cluster.h:31
StatusCode
The StatusCode enum.