8 #ifndef LAR_CROSS_GAPS_ASSOCIATION_ALGORITHM_H 9 #define LAR_CROSS_GAPS_ASSOCIATION_ALGORITHM_H 1 11 #include "Pandora/Algorithm.h" 34 bool IsExtremalCluster(
const bool isForward,
const pandora::Cluster *
const pCurrentCluster,
const pandora::Cluster *
const pTestCluster)
const;
55 bool IsAssociated(
const pandora::CartesianVector &startPosition,
const pandora::CartesianVector &startDirection,
68 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
84 #endif // #ifndef LAR_CROSS_GAPS_ASSOCIATION_ALGORITHM_H float m_minMatchedSamplingFraction
Minimum ratio between matched sampling points and expectation to declare association.
void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const
Populate cluster vector with subset of cluster list, containing clusters judged to be clean...
void PopulateClusterAssociationMap(const pandora::ClusterVector &clusterVector, ClusterAssociationMap &clusterAssociationMap) const
Populate the cluster association map.
unsigned int m_minClusterLayers
The minimum allowed number of layers for a clean cluster.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
unsigned int m_minClusterHits
The minimum allowed number of hits in a clean cluster.
unsigned int m_maxSamplingPoints
The maximum number of extension sampling points considered per association check. ...
bool IsAssociated(const pandora::CartesianVector &startPosition, const pandora::CartesianVector &startDirection, const TwoDSlidingFitResult &targetFitResult) const
Sample points along the extrapolation from a starting position to a target fit result to declare clus...
unsigned int m_slidingFitWindow
The layer window for the sliding linear fits.
float m_gapTolerance
The tolerance to use when querying whether a sampling point is in a gap, units cm.
unsigned int m_maxUnmatchedSampleRun
The maximum run of unmatched (and non-gap) samples to consider before stopping.
Header file for the lar two dimensional sliding fit result class.
Header file for the cluster association algorithm class.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
float m_maxOnClusterDistance
The maximum distance between a sampling point and sliding fit to target cluster.
unsigned int m_minMatchedSamplingPoints
Minimum number of matched sampling points to declare association.
bool AreClustersAssociated(const TwoDSlidingFitResult &innerFitResult, const TwoDSlidingFitResult &outerFitResult) const
Determine whether two clusters are associated.
ClusterAssociationAlgorithm class.
std::unordered_map< const pandora::Cluster *, ClusterAssociation > ClusterAssociationMap
CrossGapsAssociationAlgorithm class.
CrossGapsAssociationAlgorithm()
Default constructor.
bool IsNearCluster(const pandora::CartesianVector &samplingPoint, const TwoDSlidingFitResult &targetFitResult) const
Whether a sampling point lies near a target 2d sliding fit result.
bool IsExtremalCluster(const bool isForward, const pandora::Cluster *const pCurrentCluster, const pandora::Cluster *const pTestCluster) const
Determine which of two clusters is extremal.
float m_sampleStepSize
The sampling step size used in association checks, units cm.
TwoDSlidingFitResult class.