Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
LongitudinalAssociationAlgorithm.h
Go to the documentation of this file.
1
8#ifndef LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H
9#define LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H 1
10
11#include "Pandora/Algorithm.h"
12
14
16
17namespace lar_content
18{
19
24{
25public:
30
31private:
33 void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const;
34 void PopulateClusterAssociationMap(const pandora::ClusterVector &clusterVector, ClusterAssociationMap &clusterAssociationMap) const;
35 bool IsExtremalCluster(const bool isForward, const pandora::Cluster *const pCurrentCluster, const pandora::Cluster *const pTestCluster) const;
36
45 bool AreClustersAssociated(const pandora::Cluster *const pInnerCluster, const pandora::Cluster *const pOuterCluster) const;
46
57 bool AreClustersAssociated(const pandora::CartesianVector &innerClusterEnd, const pandora::CartesianVector &outerClusterStart,
58 const pandora::ClusterFitResult &innerFit, const pandora::ClusterFitResult &outerFit) const;
59
60 unsigned int m_minClusterLayers;
61 unsigned int m_maxGapLayers;
62 unsigned int m_fitLayers;
67 float m_hitSizeZ;
68 float m_hitSizeX;
69};
70
71} // namespace lar_content
72
73#endif // #ifndef LAR_LONGITUDINAL_ASSOCIATION_ALGORITHM_H
Header file for the algorithm class.
Header file for the cluster association algorithm class.
Header file for the cluster fit helper class.
std::unordered_map< const pandora::Cluster *, ClusterAssociation > ClusterAssociationMap
unsigned int m_fitLayers
number of layers to fit at start and end of cluster
unsigned int m_minClusterLayers
minimum allowed number of layers for a clean cluster
bool AreClustersAssociated(const pandora::Cluster *const pInnerCluster, const pandora::Cluster *const pOuterCluster) const
Determine whether two clusters are associated.
float m_maxGapDistanceSquared
maximum allowed distance (squared) between associated clusters
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)
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.
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_minCosRelativeAngle
maximum allowed relative angle between associated clusters
float m_hitSizeX
estimated hit size in x (drift time) dimension, units cm
float m_maxTransverseDisplacement
maximum allowed transverse displacement after extrapolation (normalised to cell size)
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
float m_hitSizeZ
estimated hit size in z (wire number) dimension, units cm
unsigned int m_maxGapLayers
maximum allowed number of layers between associated clusters
CartesianVector class.
ClusterFitResult class.
Cluster class.
Definition Cluster.h:31
std::vector< const Cluster * > ClusterVector
MANAGED_CONTAINER< const Cluster * > ClusterList
StatusCode
The StatusCode enum.