LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
LongitudinalAssociationAlgorithm class. More...
#include "LongitudinalAssociationAlgorithm.h"
Public Member Functions | |
LongitudinalAssociationAlgorithm () | |
Default constructor. More... | |
Protected Types | |
typedef std::unordered_map< const pandora::Cluster *, ClusterAssociation > | ClusterAssociationMap |
Protected Member Functions | |
virtual pandora::StatusCode | Run () |
Private Member Functions | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
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. More... | |
void | PopulateClusterAssociationMap (const pandora::ClusterVector &clusterVector, ClusterAssociationMap &clusterAssociationMap) const |
Populate the cluster association map. More... | |
bool | IsExtremalCluster (const bool isForward, const pandora::Cluster *const pCurrentCluster, const pandora::Cluster *const pTestCluster) const |
Determine which of two clusters is extremal. More... | |
bool | AreClustersAssociated (const pandora::Cluster *const pInnerCluster, const pandora::Cluster *const pOuterCluster) const |
Determine whether two clusters are associated. More... | |
bool | AreClustersAssociated (const pandora::CartesianVector &innerClusterEnd, const pandora::CartesianVector &outerClusterStart, const pandora::ClusterFitResult &innerFit, const pandora::ClusterFitResult &outerFit) const |
Determine whether two clusters are associated. More... | |
Private Attributes | |
unsigned int | m_minClusterLayers |
minimum allowed number of layers for a clean cluster More... | |
unsigned int | m_maxGapLayers |
maximum allowed number of layers between associated clusters More... | |
unsigned int | m_fitLayers |
number of layers to fit at start and end of cluster More... | |
float | m_maxGapDistanceSquared |
maximum allowed distance (squared) between associated clusters More... | |
float | m_minCosRelativeAngle |
maximum allowed relative angle between associated clusters More... | |
float | m_maxTransverseDisplacement |
maximum allowed transverse displacement after extrapolation (normalised to cell size) More... | |
float | m_maxLongitudinalDisplacement |
maximum allowed longitudinal displacement after extrapolation (normalised to cell size) More... | |
float | m_hitSizeZ |
estimated hit size in z (wire number) dimension, units cm More... | |
float | m_hitSizeX |
estimated hit size in x (drift time) dimension, units cm More... | |
LongitudinalAssociationAlgorithm class.
Definition at line 23 of file LongitudinalAssociationAlgorithm.h.
|
protectedinherited |
Definition at line 43 of file ClusterAssociationAlgorithm.h.
lar_content::LongitudinalAssociationAlgorithm::LongitudinalAssociationAlgorithm | ( | ) |
Default constructor.
Definition at line 20 of file LongitudinalAssociationAlgorithm.cc.
|
private |
Determine whether two clusters are associated.
pInnerCluster | address of the inner cluster |
pOuterCluster | address of the outer cluster |
Referenced by IsExtremalCluster(), and PopulateClusterAssociationMap().
|
private |
Determine whether two clusters are associated.
innerClusterEnd | inner cluster end position |
outerClusterStart | outer cluster start position |
innerFit | inner cluster fit result |
outerFit | outer cluster fit result |
|
privatevirtual |
Populate cluster vector with subset of cluster list, containing clusters judged to be clean.
pClusterList | address of the cluster list |
clusterVector | to receive the populated cluster vector |
Implements lar_content::ClusterAssociationAlgorithm.
Definition at line 35 of file LongitudinalAssociationAlgorithm.cc.
References m_minClusterLayers, and lar_content::LArClusterHelper::SortByInnerLayer().
|
privatevirtual |
Determine which of two clusters is extremal.
isForward | whether propagation direction is forward |
pCurrentCluster | current extremal cluster |
pTestCluster | potential extremal cluster |
Implements lar_content::ClusterAssociationAlgorithm.
Definition at line 77 of file LongitudinalAssociationAlgorithm.cc.
References AreClustersAssociated(), m_fitLayers, m_hitSizeX, m_hitSizeZ, m_maxGapDistanceSquared, m_maxGapLayers, m_maxLongitudinalDisplacement, m_maxTransverseDisplacement, m_minCosRelativeAngle, and lar_content::LArClusterHelper::SortByNHits().
|
privatevirtual |
Populate the cluster association map.
clusterVector | the cluster vector |
clusterAssociationMap | to receive the populated cluster association map |
Implements lar_content::ClusterAssociationAlgorithm.
Definition at line 52 of file LongitudinalAssociationAlgorithm.cc.
References AreClustersAssociated().
|
privatevirtual |
Reimplemented from lar_content::ClusterAssociationAlgorithm.
Definition at line 179 of file LongitudinalAssociationAlgorithm.cc.
References m_fitLayers, m_hitSizeX, m_hitSizeZ, m_maxGapDistanceSquared, m_maxGapLayers, m_maxLongitudinalDisplacement, m_maxTransverseDisplacement, m_minClusterLayers, m_minCosRelativeAngle, and lar_content::ClusterAssociationAlgorithm::ReadSettings().
|
protectedvirtualinherited |
Definition at line 28 of file ClusterAssociationAlgorithm.cc.
References lar_content::ClusterAssociationAlgorithm::AmbiguousPropagation(), lar_content::ClusterAssociationAlgorithm::GetListOfCleanClusters(), lar_content::ClusterAssociationAlgorithm::m_mergeMade, lar_content::ClusterAssociationAlgorithm::m_resolveAmbiguousAssociations, lar_content::ClusterAssociationAlgorithm::PopulateClusterAssociationMap(), and lar_content::ClusterAssociationAlgorithm::UnambiguousPropagation().
|
private |
number of layers to fit at start and end of cluster
Definition at line 62 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
estimated hit size in x (drift time) dimension, units cm
Definition at line 68 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
estimated hit size in z (wire number) dimension, units cm
Definition at line 67 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
maximum allowed distance (squared) between associated clusters
Definition at line 63 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
maximum allowed number of layers between associated clusters
Definition at line 61 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
maximum allowed longitudinal displacement after extrapolation (normalised to cell size)
Definition at line 66 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
maximum allowed transverse displacement after extrapolation (normalised to cell size)
Definition at line 65 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().
|
private |
minimum allowed number of layers for a clean cluster
Definition at line 60 of file LongitudinalAssociationAlgorithm.h.
Referenced by GetListOfCleanClusters(), and ReadSettings().
|
private |
maximum allowed relative angle between associated clusters
Definition at line 64 of file LongitudinalAssociationAlgorithm.h.
Referenced by IsExtremalCluster(), and ReadSettings().