ClusterAssociationAlgorithm class. More...
#include <ClusterAssociationAlgorithm.h>
Classes | |
| class | ClusterAssociation |
| ClusterAssociation class. More... | |
Public Member Functions | |
| ClusterAssociationAlgorithm () | |
| Default constructor. More... | |
Protected Types | |
| typedef std::unordered_map< const pandora::Cluster *, ClusterAssociation > | ClusterAssociationMap |
Protected Member Functions | |
| virtual pandora::StatusCode | Run () |
| virtual pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
| virtual void | GetListOfCleanClusters (const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const =0 |
| Populate cluster vector with subset of cluster list, containing clusters judged to be clean. More... | |
| virtual void | PopulateClusterAssociationMap (const pandora::ClusterVector &clusterVector, ClusterAssociationMap &clusterAssociationMap) const =0 |
| Populate the cluster association map. More... | |
| virtual bool | IsExtremalCluster (const bool isForward, const pandora::Cluster *const pCurrentCluster, const pandora::Cluster *const pTestCluster) const =0 |
| Determine which of two clusters is extremal. More... | |
Private Member Functions | |
| void | UnambiguousPropagation (const pandora::Cluster *const pCluster, const bool isForward, ClusterAssociationMap &clusterAssociationMap) const |
| Unambiguous propagation. More... | |
| void | AmbiguousPropagation (const pandora::Cluster *const pCluster, const bool isForward, ClusterAssociationMap &clusterAssociationMap) const |
| Ambiguous propagation. More... | |
| void | UpdateForUnambiguousMerge (const pandora::Cluster *const pClusterToEnlarge, const pandora::Cluster *const pClusterToDelete, const bool isForwardMerge, ClusterAssociationMap &clusterAssociationMap) const |
| Update cluster association map to reflect an unambiguous cluster merge. More... | |
| void | UpdateForAmbiguousMerge (const pandora::Cluster *const pCluster, ClusterAssociationMap &clusterAssociationMap) const |
| Update cluster association map to reflect an ambiguous cluster merge. More... | |
| void | NavigateAlongAssociations (const ClusterAssociationMap &clusterAssociationMap, const pandora::Cluster *const pCluster, const bool isForward, const pandora::Cluster *&pExtremalCluster, pandora::ClusterSet &clusterSet) const |
| Navigate along cluster associations, from specified cluster, in specified direction. More... | |
Private Attributes | |
| bool | m_mergeMade |
| bool | m_resolveAmbiguousAssociations |
| Whether to resolve ambiguous associations. More... | |
ClusterAssociationAlgorithm class.
Definition at line 21 of file ClusterAssociationAlgorithm.h.
|
protected |
Definition at line 43 of file ClusterAssociationAlgorithm.h.
| lar_content::ClusterAssociationAlgorithm::ClusterAssociationAlgorithm | ( | ) |
Default constructor.
Definition at line 20 of file ClusterAssociationAlgorithm.cc.
|
private |
Ambiguous propagation.
| pCluster | address of the cluster to propagate |
| isForward | whether propagation direction is forward |
| clusterAssociationMap | the cluster association map |
Definition at line 121 of file ClusterAssociationAlgorithm.cc.
|
protectedpure virtual |
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 |
Implemented in lar_content::TransverseAssociationAlgorithm, lar_content::LongitudinalAssociationAlgorithm, lar_content::CrossGapsAssociationAlgorithm, and lar_content::HitWidthClusterMergingAlgorithm.
|
protectedpure virtual |
Determine which of two clusters is extremal.
| isForward | whether propagation direction is forward |
| pCurrentCluster | current extremal cluster |
| pTestCluster | potential extremal cluster |
Implemented in lar_content::TransverseAssociationAlgorithm, lar_content::LongitudinalAssociationAlgorithm, lar_content::CrossGapsAssociationAlgorithm, and lar_content::HitWidthClusterMergingAlgorithm.
|
private |
Navigate along cluster associations, from specified cluster, in specified direction.
| clusterAssociationMap | the cluster association map |
| pCluster | address of cluster with which to begin search |
| isForward | whether propagation direction is forward |
| pExtremalCluster | to receive the extremal cluster |
| clusterSet | to receive set of clusters traversed |
Definition at line 231 of file ClusterAssociationAlgorithm.cc.
|
protectedpure virtual |
Populate the cluster association map.
| clusterVector | the cluster vector |
| clusterAssociationMap | to receive the populated cluster association map |
Implemented in lar_content::TransverseAssociationAlgorithm, lar_content::LongitudinalAssociationAlgorithm, lar_content::CrossGapsAssociationAlgorithm, and lar_content::HitWidthClusterMergingAlgorithm.
|
protectedvirtual |
Reimplemented in lar_content::HitWidthClusterMergingAlgorithm, lar_content::TransverseAssociationAlgorithm, lar_content::CrossGapsAssociationAlgorithm, and lar_content::LongitudinalAssociationAlgorithm.
Definition at line 254 of file ClusterAssociationAlgorithm.cc.
|
protectedvirtual |
Definition at line 26 of file ClusterAssociationAlgorithm.cc.
|
private |
Unambiguous propagation.
| pCluster | address of the cluster to propagate |
| isForward | whether propagation direction is forward |
| clusterAssociationMap | the cluster association map |
Definition at line 87 of file ClusterAssociationAlgorithm.cc.
|
private |
Update cluster association map to reflect an ambiguous cluster merge.
| pCluster | address of the cluster to be cleared |
| clusterAssociationMap | the cluster association map |
Definition at line 204 of file ClusterAssociationAlgorithm.cc.
|
private |
Update cluster association map to reflect an unambiguous cluster merge.
| pClusterToEnlarge | address of the cluster to be enlarged |
| pClusterToDelete | address of the cluster to be deleted |
| isForwardMerge | whether merge is forward (pClusterToEnlarge is forward-associated with pClusterToDelete) |
| clusterAssociationMap | the cluster association map |
Definition at line 166 of file ClusterAssociationAlgorithm.cc.
|
mutableprivate |
Definition at line 123 of file ClusterAssociationAlgorithm.h.
|
private |
Whether to resolve ambiguous associations.
Definition at line 125 of file ClusterAssociationAlgorithm.h.
1.8.11