8 #ifndef LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H
9 #define LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H 1
27 pandora::StatusCode
Run();
28 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
52 bool AreClustersAssociated(
const pandora::CartesianVector &upstreamPoint,
const pandora::CartesianVector &upstreamDirection,
53 const pandora::CartesianVector &downstreamPoint,
const pandora::CartesianVector &downstreamDirection)
const;
63 const pandora::ClusterList &createdMainTrackClusters, pandora::ClusterList &unavailableProtectedClusters)
const;
110 #endif // #ifndef LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H
ClusterAssociation class.
bool AreExtrapolatedHitsNearBoundaries(const pandora::CaloHitVector &extrapolatedHitVector, ClusterAssociation &clusterAssociation) const
Check the separation of the extremal extrapolated hits with the cluster merge points or...
std::pair< TwoDSlidingFitResultMap *, TwoDSlidingFitResultMap * > SlidingFitResultMapPair
void ConsiderClusterAssociation(const ClusterPairAssociation &clusterAssociation, pandora::ClusterVector &clusterVector, SlidingFitResultMapPair &slidingFitResultMapPair) const
Remove the cluster association from the cluster vector so that the same cluster pair is not considere...
std::unordered_map< const pandora::Cluster *, pandora::CaloHitList > ClusterToCaloHitListMap
TrackRefinementBaseAlgorithm class.
float m_maxPredictedMergePointOffset
The threshold separation distance between the predicted and true cluster merge points.
float m_minClusterLengthSum
The threshold cluster and associated cluster length sum.
TrackMergeRefinementAlgorithm class.
bool AreClustersAssociated(const pandora::CartesianVector &upstreamPoint, const pandora::CartesianVector &upstreamDirection, const pandora::CartesianVector &downstreamPoint, const pandora::CartesianVector &downstreamDirection) const
Whether two clusters are assoicated to one another.
bool FindBestClusterAssociation(const pandora::ClusterVector &clusterVector, const SlidingFitResultMapPair &slidingFitResultMapPair, ClusterPairAssociation &clusterAssociation) const
Find the best cluster association.
ClusterPairAssociation class.
pandora::StatusCode Run()
TrackMergeRefinementAlgorithm()
Default constructor.
Header file for the track refinement base class.
const pandora::Cluster * CreateMainTrack(const ClusterPairAssociation &clusterAssociation, const ClusterToCaloHitListMap &clusterToCaloHitListMap, const pandora::ClusterList *pClusterList, pandora::ClusterVector &clusterVector, SlidingFitResultMapPair &slidingFitResultMapPair) const
Refine the cluster endpoints and merge together the associated clusters alongside any extrapolated hi...
float m_minSeparationDistance
The threshold separation distance between associated clusters.
unsigned int m_maxLoopIterations
The maximum number of main loop iterations.
float m_boundaryTolerance
The maximum allowed distance of an extremal extrapolate hit to a cluster merge point.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
void GetUnavailableProtectedClusters(const ClusterPairAssociation &clusterAssociation, const pandora::ClusterList &createdMainTrackClusters, pandora::ClusterList &unavailableProtectedClusters) const
Obtain a list of clusters whos hits are protected and cannot be reassigned.
float m_distanceToLine
The threshold hit distance of an extrapolated hit from the segment connecting line.
float m_minDirectionDeviationCosAngle
The threshold cos opening angle of the associated cluster directions.