8 #ifndef LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H
9 #define LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H 1
11 #include "Pandora/Algorithm.h"
13 #include "Helpers/ClusterFitHelper.h"
32 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
35 bool IsExtremalCluster(
const bool isForward,
const pandora::Cluster *
const pCurrentCluster,
const pandora::Cluster *
const pTestCluster)
const;
45 bool AreClustersAssociated(
const pandora::Cluster *
const pInnerCluster,
const pandora::Cluster *
const pOuterCluster)
const;
57 bool AreClustersAssociated(
const pandora::CartesianVector &innerClusterEnd,
const pandora::CartesianVector &outerClusterStart,
58 const pandora::ClusterFitResult &innerFit,
const pandora::ClusterFitResult &outerFit)
const;
73 #endif // #ifndef LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H
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.
float m_maxLongitudinalDisplacement
maximum allowed longitudinal displacement after extrapolation (normalised to cell size) ...
float m_minCosRelativeAngle
maximum allowed relative angle between associated clusters
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::unordered_map< const pandora::Cluster *, ClusterAssociation > ClusterAssociationMap
LongitudinalAssociationAlgorithm()
Default constructor.
unsigned int m_minClusterLayers
minimum allowed number of layers for a clean cluster
LongitudinalAssociationAlgorithm class.
Header file for the cluster association algorithm class.
float m_hitSizeX
estimated hit size in x (drift time) dimension, units cm
float m_maxGapDistanceSquared
maximum allowed distance (squared) between associated clusters
bool IsExtremalCluster(const bool isForward, const pandora::Cluster *const pCurrentCluster, const pandora::Cluster *const pTestCluster) const
Determine which of two clusters is extremal.
unsigned int m_maxGapLayers
maximum allowed number of layers between associated clusters
float m_hitSizeZ
estimated hit size in z (wire number) dimension, units cm
bool AreClustersAssociated(const pandora::Cluster *const pInnerCluster, const pandora::Cluster *const pOuterCluster) const
Determine whether two clusters are associated.
ClusterAssociationAlgorithm class.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
unsigned int m_fitLayers
number of layers to fit at start and end of cluster
float m_maxTransverseDisplacement
maximum allowed transverse displacement after extrapolation (normalised to cell size) ...