Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
TrackMergeRefinementAlgorithm.h
Go to the documentation of this file.
1
8#ifndef LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H
9#define LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H 1
10
12
13namespace lar_content
14{
19{
20public:
25
26private:
29
39 bool FindBestClusterAssociation(const pandora::ClusterVector &clusterVector, const SlidingFitResultMapPair &slidingFitResultMapPair,
40 ClusterPairAssociation &clusterAssociation) const;
41
52 bool AreClustersAssociated(const pandora::CartesianVector &upstreamPoint, const pandora::CartesianVector &upstreamDirection,
53 const pandora::CartesianVector &downstreamPoint, const pandora::CartesianVector &downstreamDirection) const;
54
62 void GetUnavailableProtectedClusters(const ClusterPairAssociation &clusterAssociation,
63 const pandora::ClusterList &createdMainTrackClusters, pandora::ClusterList &unavailableProtectedClusters) const;
64
73 bool AreExtrapolatedHitsNearBoundaries(const pandora::CaloHitVector &extrapolatedHitVector, ClusterAssociation &clusterAssociation) const;
74
82 void ConsiderClusterAssociation(const ClusterPairAssociation &clusterAssociation, pandora::ClusterVector &clusterVector,
83 SlidingFitResultMapPair &slidingFitResultMapPair) const;
84
96 const pandora::Cluster *CreateMainTrack(const ClusterPairAssociation &clusterAssociation, const ClusterToCaloHitListMap &clusterToCaloHitListMap,
97 const pandora::ClusterList *pClusterList, pandora::ClusterVector &clusterVector, SlidingFitResultMapPair &slidingFitResultMapPair) const;
98
99 unsigned int m_maxLoopIterations;
106};
107
108} // namespace lar_content
109
110#endif // #ifndef LAR_TRACK_MERGE_REFINEMENT_ALGORITHM_H
Header file for the track refinement base class.
ClusterAssociation class.
ClusterPairAssociation 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_minClusterLengthSum
The threshold cluster and associated cluster length sum.
float m_boundaryTolerance
The maximum allowed distance of an extremal extrapolate hit to a cluster merge point.
float m_maxPredictedMergePointOffset
The threshold separation distance between the predicted and true cluster merge points.
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 AreExtrapolatedHitsNearBoundaries(const pandora::CaloHitVector &extrapolatedHitVector, ClusterAssociation &clusterAssociation) const
Check the separation of the extremal extrapolated hits with the cluster merge points or,...
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...
float m_distanceToLine
The threshold hit distance of an extrapolated hit from the segment connecting line.
unsigned int m_maxLoopIterations
The maximum number of main loop iterations.
bool FindBestClusterAssociation(const pandora::ClusterVector &clusterVector, const SlidingFitResultMapPair &slidingFitResultMapPair, ClusterPairAssociation &clusterAssociation) const
Find the best cluster association.
float m_minSeparationDistance
The threshold separation distance between associated clusters.
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_minDirectionDeviationCosAngle
The threshold cos opening angle of the associated cluster directions.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
std::pair< TwoDSlidingFitResultMap *, TwoDSlidingFitResultMap * > SlidingFitResultMapPair
std::unordered_map< const pandora::Cluster *, pandora::CaloHitList > ClusterToCaloHitListMap
CartesianVector class.
Cluster class.
Definition Cluster.h:31
std::vector< const CaloHit * > CaloHitVector
std::vector< const Cluster * > ClusterVector
MANAGED_CONTAINER< const Cluster * > ClusterList
StatusCode
The StatusCode enum.