LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
CrossGapsExtensionAlgorithm class. More...
#include "CrossGapsExtensionAlgorithm.h"
Public Member Functions | |
CrossGapsExtensionAlgorithm () | |
Default constructor. More... | |
Protected Types | |
typedef std::unordered_map< const pandora::Cluster *, ClusterAssociation > | ClusterAssociationMap |
typedef std::unordered_map< const pandora::Cluster *, ClusterAssociationMap > | ClusterAssociationMatrix |
typedef std::unordered_map< const pandora::Cluster *, pandora::ClusterList > | ClusterMergeMap |
Protected Member Functions | |
void | PopulateClusterMergeMap (const pandora::ClusterVector &clusterVector, ClusterMergeMap &clusterMergeMatrix) const |
Form associations between pointing clusters. More... | |
virtual pandora::StatusCode | Run () |
void | MergeClusters (pandora::ClusterVector &clusterVector, ClusterMergeMap &clusterMergeMap) const |
Merge associated clusters. More... | |
void | CollectAssociatedClusters (const pandora::Cluster *const pSeedCluster, const ClusterMergeMap &clusterMergeMap, pandora::ClusterList &associatedClusterList) const |
Collect up all clusters associations related to a given seed cluster. More... | |
void | CollectAssociatedClusters (const pandora::Cluster *const pSeedCluster, const pandora::Cluster *const pCurrentCluster, const ClusterMergeMap &clusterMergeMap, const pandora::ClusterSet &clusterVetoList, pandora::ClusterList &associatedClusterList) const |
Collect up all clusters associations related to a given seed cluster. More... | |
void | GetSortedListOfCleanClusters (const pandora::ClusterVector &inputClusters, pandora::ClusterVector &outputClusters) const |
Sort the selected clusters, so that they have a well-defined ordering. More... | |
Protected Attributes | |
std::string | m_inputClusterListName |
The name of the input cluster list. If not specified, will access current list. More... | |
Private Member Functions | |
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 | FillClusterAssociationMatrix (const pandora::ClusterVector &clusterVector, ClusterAssociationMatrix &clusterAssociationMatrix) const |
Fill the cluster association matrix. More... | |
void | FillClusterMergeMap (const ClusterAssociationMatrix &clusterAssociationMatrix, ClusterMergeMap &clusterMergeMap) const |
Fill the cluster merge map. More... | |
void | BuildPointingClusterList (const pandora::ClusterVector &clusterVector, LArPointingClusterList &innerPointingClusterList, LArPointingClusterList &outerPointingClusterList) const |
Build lists of pointing clusters that are adjacent to a detector gap. More... | |
void | BuildPointingClusterList (const bool useInner, const LArPointingClusterList &inputPointingClusterList, LArPointingClusterList &outputPointingClusterList) const |
Build a list of pointing clusters that are adjacent to a detector gap. More... | |
bool | IsAssociated (const LArPointingCluster::Vertex &pointingVertex1, const LArPointingCluster::Vertex &pointingVertex2) const |
Use pointing information to determine whether two clusters are associated. More... | |
bool | IsAcrossGap (const float minZ, const float maxZ, const pandora::HitType hitType) const |
Determine whether a start and end position sit either side of a gap. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
float | m_minClusterLength |
float | m_minGapFraction |
float | m_maxGapTolerance |
float | m_maxTransverseDisplacement |
float | m_maxRelativeAngle |
CrossGapsExtensionAlgorithm class.
Definition at line 21 of file CrossGapsExtensionAlgorithm.h.
|
protectedinherited |
Definition at line 97 of file ClusterExtensionAlgorithm.h.
|
protectedinherited |
Definition at line 98 of file ClusterExtensionAlgorithm.h.
|
protectedinherited |
Definition at line 27 of file ClusterMergingAlgorithm.h.
lar_content::CrossGapsExtensionAlgorithm::CrossGapsExtensionAlgorithm | ( | ) |
Default constructor.
Definition at line 22 of file CrossGapsExtensionAlgorithm.cc.
|
private |
Build lists of pointing clusters that are adjacent to a detector gap.
clusterVector | the input vector of clusters |
innerPointingClusterList | the pointing clusters whose inner vertex is close to a detector gap |
outerPointingClusterList | the pointing clusters whose outer vertex is close to a detector gap |
Referenced by FillClusterAssociationMatrix().
|
private |
Build a list of pointing clusters that are adjacent to a detector gap.
useInner | check the inner vertex |
inputPointingClusterList | the input list of pointing clusters |
outputPointingClusterList | the output list of pointing clusters |
Definition at line 110 of file CrossGapsExtensionAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArGeometryHelper::IsInGap(), and m_maxGapTolerance.
|
protectedinherited |
Collect up all clusters associations related to a given seed cluster.
pSeedCluster | pointer to the initial cluster |
clusterMergeMap | the map of cluster associations |
associatedClusterList | the output list of associated clusters |
|
protectedinherited |
Collect up all clusters associations related to a given seed cluster.
pSeedCluster | pointer to the initial cluster |
pCurrentCluster | pointer to the current cluster |
clusterMergeMap | the map of cluster associations |
clusterVetoList | the list of clusters that have already been merged |
associatedClusterList | the output list of associated clusters |
|
privatevirtual |
Fill the cluster association matrix.
clusterVector | the input vector of clusters |
clusterAssociationMatrix | the matrix of associations |
Implements lar_content::ClusterExtensionAlgorithm.
Definition at line 52 of file CrossGapsExtensionAlgorithm.cc.
References BuildPointingClusterList(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArClusterHelper::GetLengthSquared(), lar_content::ClusterExtensionAlgorithm::ClusterAssociation::INNER, IsAcrossGap(), IsAssociated(), lar_content::ClusterExtensionAlgorithm::ClusterAssociation::OUTER, and lar_content::ClusterExtensionAlgorithm::ClusterAssociation::STRONG.
|
privatevirtual |
Fill the cluster merge map.
clusterAssociationMatrix | the matrix of cluster associations |
clusterMergeMap | the map of cluster merges |
Implements lar_content::ClusterExtensionAlgorithm.
Definition at line 154 of file CrossGapsExtensionAlgorithm.cc.
References f, lar_content::ClusterExtensionAlgorithm::ClusterAssociation::GetDaughter(), lar_content::ClusterExtensionAlgorithm::ClusterAssociation::GetFigureOfMerit(), lar_content::ClusterExtensionAlgorithm::ClusterAssociation::GetParent(), lar_content::ClusterExtensionAlgorithm::ClusterAssociation::INNER, lar_content::ClusterExtensionAlgorithm::ClusterAssociation::NONE, lar_content::ClusterExtensionAlgorithm::ClusterAssociation::OUTER, lar_content::LArClusterHelper::SortByNHits(), and lar_content::ClusterExtensionAlgorithm::ClusterAssociation::UNDEFINED.
|
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::ClusterMergingAlgorithm.
Definition at line 33 of file CrossGapsExtensionAlgorithm.cc.
References lar_content::LArClusterHelper::GetLengthSquared(), m_minClusterLength, and lar_content::LArClusterHelper::SortByNHits().
|
protectedinherited |
Sort the selected clusters, so that they have a well-defined ordering.
inputClusters | the input vector of clusters |
outputClusters | the output vector of clusters |
Definition at line 133 of file ClusterMergingAlgorithm.cc.
|
private |
Determine whether a start and end position sit either side of a gap.
minZ | the start position |
maxZ | the end position |
hitType | the hitType |
Definition at line 139 of file CrossGapsExtensionAlgorithm.cc.
References lar_content::LArGeometryHelper::CalculateGapDeltaZ(), and m_minGapFraction.
Referenced by FillClusterAssociationMatrix().
|
private |
Use pointing information to determine whether two clusters are associated.
pointingVertex1 | the first pointing vertex |
pointingVertex2 | the second pointing vertex |
Definition at line 125 of file CrossGapsExtensionAlgorithm.cc.
References lar_content::LArPointingCluster::Vertex::GetPosition(), lar_content::LArPointingClusterHelper::IsEmission(), m_maxRelativeAngle, and m_maxTransverseDisplacement.
Referenced by FillClusterAssociationMatrix().
|
protectedinherited |
Merge associated clusters.
clusterVector | the vector of clean clusters |
clusterMergeMap | the matrix of cluster associations |
Definition at line 61 of file ClusterMergingAlgorithm.cc.
|
protectedvirtualinherited |
Form associations between pointing clusters.
clusterVector | the vector of clean clusters |
clusterMergeMap | the matrix of cluster associations |
Implements lar_content::ClusterMergingAlgorithm.
Definition at line 18 of file ClusterExtensionAlgorithm.cc.
|
privatevirtual |
Reimplemented from lar_content::ClusterMergingAlgorithm.
Definition at line 323 of file CrossGapsExtensionAlgorithm.cc.
References m_maxGapTolerance, m_maxRelativeAngle, m_maxTransverseDisplacement, m_minClusterLength, m_minGapFraction, and lar_content::ClusterMergingAlgorithm::ReadSettings().
|
protectedvirtualinherited |
Definition at line 20 of file ClusterMergingAlgorithm.cc.
|
protectedinherited |
The name of the input cluster list. If not specified, will access current list.
Definition at line 82 of file ClusterMergingAlgorithm.h.
|
private |
Definition at line 75 of file CrossGapsExtensionAlgorithm.h.
Referenced by BuildPointingClusterList(), and ReadSettings().
|
private |
Definition at line 77 of file CrossGapsExtensionAlgorithm.h.
Referenced by IsAssociated(), and ReadSettings().
|
private |
Definition at line 76 of file CrossGapsExtensionAlgorithm.h.
Referenced by IsAssociated(), and ReadSettings().
|
private |
Definition at line 73 of file CrossGapsExtensionAlgorithm.h.
Referenced by GetListOfCleanClusters(), and ReadSettings().
|
private |
Definition at line 74 of file CrossGapsExtensionAlgorithm.h.
Referenced by IsAcrossGap(), and ReadSettings().