8 #ifndef TRACK_SPLITTING_TOOL_H
9 #define TRACK_SPLITTING_TOOL_H 1
54 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
84 pandora::ClusterSet &usedClusters,
SplitPositionMap &splitPositionMap)
const;
110 #endif // #ifndef TRACK_SPLITTING_TOOL_H
unsigned int m_minMatchedSamplingPoints
The min number of matched sampling points for particle creation.
bool CheckSplitPosition(const pandora::CartesianVector &splitPosition, const float splitX, const TwoDSlidingFitResult &longFitResult) const
Check a candidate split position for consistency with the associated track cluster sliding linear fit...
std::vector< TensorType::ElementList::const_iterator > IteratorList
float m_minSplitToVertexProjection
Min projected distance between split position and either inner or outer vertex of long cluster...
const pandora::Cluster * m_pCluster2
Address of short cluster in view 2.
bool Run(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor)
Run the algorithm tool.
void FindTracks(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, SplitPositionMap &splitPositionMap) const
Find remaining tracks, hidden by spurious track segments (and maybe other ambiguities) in the tensor...
float m_short2MinX
The min x coordinate of short cluster 2.
void SelectElements(const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const
Select a list of the relevant elements from a set of connected tensor elements.
float m_maxAbsoluteShortDeltaX
Max x distance between ends of two short clusters (measured as an absolute distance) ...
float m_minMatchedFraction
The min matched sampling point fraction for particle creation.
float m_longMinX
The min x coordinate of the long cluster.
std::vector< Element > ElementList
float m_minAbsoluteLongDeltaX
Min x distance between ends of short and long clusters (measured as an absolute distance) ...
float m_maxShortDeltaXFraction
Max x distance between ends of two short clusters (measured as fraction of long cluster x length) ...
float m_minLongDeltaXFraction
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length...
std::unordered_map< const pandora::Cluster *, pandora::CartesianPointVector > SplitPositionMap
Header file for the three view transverse tracks algorithm class.
TrackSplittingTool class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float m_longMaxX
The max x coordinate of the long cluster.
bool PassesChecks(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, const bool isMinX, pandora::ClusterSet &usedClusters, SplitPositionMap &splitPositionMap) const
Whether a provided tensor element can be used to construct a pfo.
TrackSplittingTool()
Default constructor.
float m_short2MaxX
The max x coordinate of short cluster 2.
TransverseTensorTool class.
const pandora::Cluster * m_pCluster1
Address of short cluster in view 1.
float m_short1MaxX
The max x coordinate of short cluster 1.
float m_minXOverlapFraction
The min x overlap fraction (between long clusters and short cluster vs. shared overlap) ...
unsigned int m_minMatchedSamplingPointRatio
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
float m_short1MinX
The min x coordinate of short cluster 1.
ThreeViewTransverseTracksAlgorithm class.
float m_maxSplitVsFitPositionDistance
Max allowed distance between split position and sliding linear fit position at the split x coordinate...
const pandora::Cluster * m_pLongCluster
Address of the long cluster.
TwoDSlidingFitResult class.
Particle(const TensorType::Element &element)
Constructor.