CrossedTrackSplittingAlgorithm class.
float m_minCosRelativeAngle
maximum relative angle between tracks after un-crossing
float m_maxClusterSeparation
maximum separation of two clusters
void FindCandidateSplitPositions(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, pandora::CartesianPointVector &candidateVector) const
Find average positions of pairs of hits within a maximum separation.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
pandora::StatusCode TidyUpStep()
Tidy up any information cached in e.g. the preparation step.
float m_maxClusterSeparationSquared
maximum separation of two clusters (squared)
pandora::StatusCode FindBestSplitPosition(const TwoDSlidingFitResult &slidingFit1, const TwoDSlidingFitResult &slidingFit2, pandora::CartesianVector &splitPosition, pandora::CartesianVector &direction1, pandora::CartesianVector &direction2) const
Find the best split position and direction for a pair of clusters.
KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > HitKDTree2D
std::unordered_map< const pandora::Cluster *, pandora::ClusterSet > ClusterToClustersMap
std::unordered_map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
pandora::StatusCode PreparationStep(const pandora::ClusterVector &clusterVector)
Perform any preparatory actions, such as caching information for subsequent expensive calculations.
ClusterToClustersMap m_nearbyClusters
The nearby clusters map.
CrossedTrackSplittingAlgorithm()
Default constructor.
std::vector< HitKDNode2D > HitKDNode2DList
float m_searchRegion1D
Search region, applied to each dimension, for look-up from kd-trees.
KDTreeNodeInfoT< const pandora::CaloHit *, 2 > HitKDNode2D
Class that implements the KDTree partition of 2D space and a closest point search algorithm.
Data stored in each KDTree node. The dim1/dim2 fields are usually the duplication of some PFRecHit va...
TwoDSlidingFitResult class.
TwoDSlidingFitSplittingAndSwitchingAlgorithm class.