ShowerGrowingAlgorithm class. More...
#include <ShowerGrowingAlgorithm.h>
Public Member Functions | |
ShowerGrowingAlgorithm () | |
Default constructor. More... | |
Protected Types | |
typedef std::unordered_map< const pandora::Cluster *, LArVertexHelper::ClusterDirection > | ClusterDirectionMap |
Protected Types inherited from lar_content::BranchGrowingAlgorithm | |
enum | AssociationType { NONE = 0, SINGLE_ORDER = 1, STANDARD = 2, STRONG = 3 } |
AssociationType enum. More... | |
typedef std::unordered_map< const pandora::Cluster *, Association > | ClusterAssociationMap |
typedef std::unordered_map< const pandora::Cluster *, ClusterAssociationMap > | ClusterUsageMap |
typedef std::unordered_map< const pandora::Cluster *, pandora::ClusterVector > | SeedAssociationList |
Protected Member Functions | |
bool | IsVertexAssociated (const LArPointingCluster &pointingCluster, const pandora::CartesianVector &vertexPosition2D) const |
Whether a pointing cluster is assciated with a provided 2D vertex projection. More... | |
Protected Member Functions inherited from lar_content::BranchGrowingAlgorithm | |
void | FindAssociatedClusters (const pandora::Cluster *const pParticleSeed, pandora::ClusterVector &candidateClusters, ClusterUsageMap &forwardUsageMap, ClusterUsageMap &backwardUsageMap) const |
Find clusters associated with a particle seed. More... | |
void | IdentifyClusterMerges (const pandora::ClusterVector &particleSeedVector, const ClusterUsageMap &backwardUsageMap, SeedAssociationList &seedAssociationList) const |
Identify cluster merges. More... | |
Static Protected Member Functions | |
static bool | SortClusters (const pandora::Cluster *const pLhs, const pandora::Cluster *const pRhs) |
Sorting for clusters to determine order in which seeds are considered. More... | |
Protected Attributes | |
ClusterDirectionMap | m_clusterDirectionMap |
The cluster direction map. More... | |
Private Member Functions | |
pandora::StatusCode | Run () |
void | SimpleModeShowerGrowing (const pandora::ClusterList *const pClusterList, const std::string &clusterListName) const |
Simple single-pass shower growing mode. More... | |
bool | GetNextSeedCandidate (const pandora::ClusterList *const pClusterList, const pandora::ClusterSet &usedClusters, const pandora::Cluster *&pSeedCluster) const |
Get the next seed candidate, using a list of available candidates and a list of those already used. More... | |
void | GetAllVertexSeedCandidates (const pandora::ClusterList *const pClusterList, const pandora::Vertex *const pVertex, pandora::ClusterVector &seedClusters) const |
Get all seed candidates associated with a provided vertex. More... | |
void | GetSeedAssociationList (const pandora::ClusterVector &particleSeedVector, const pandora::ClusterList *const pClusterList, SeedAssociationList &seedAssociationList) const |
Get the seed association list for a given vector of particle seed candidates. More... | |
void | ProcessSeedAssociationDetails (const SeedAssociationList &seedAssociationList, const std::string &clusterListName, pandora::ClusterSet &usedClusters) const |
Process the details stored in a specified seed association list. More... | |
void | ProcessBranchClusters (const pandora::Cluster *const pParentCluster, const pandora::ClusterVector &branchClusters, const std::string &listName) const |
Process the list of branch clusters, merging with specified parent cluster, dealing with any existing pfos as required. More... | |
AssociationType | AreClustersAssociated (const pandora::Cluster *const pClusterSeed, const pandora::Cluster *const pCluster) const |
Determine whether two clusters are associated. More... | |
float | GetFigureOfMerit (const SeedAssociationList &seedAssociationList) const |
Get a figure of merit representing the consistency of the provided seed associated list. More... | |
unsigned int | GetNVertexConnections (const pandora::CartesianVector &vertexPosition2D, const LArPointingClusterList &pointingClusterList) const |
Get the number of clusters associated with the vertex. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
pandora::StringVector | m_inputClusterListNames |
The names of the input cluster lists. More... | |
unsigned int | m_minCaloHitsPerCluster |
The minimum number of calo hits per (seed or branch) cluster. More... | |
float | m_nearbyClusterDistance |
The nearby cluster distance, used for determining cluster associations. More... | |
float | m_remoteClusterDistance |
The remote cluster distance, used for determining cluster associations. More... | |
float | m_directionTanAngle |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. More... | |
float | m_directionApexShift |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. More... | |
float | m_minVertexLongitudinalDistance |
Vertex association check: min longitudinal distance cut. More... | |
float | m_maxVertexLongitudinalDistance |
Vertex association check: max longitudinal distance cut. More... | |
float | m_maxVertexTransverseDistance |
Vertex association check: max transverse distance cut. More... | |
float | m_vertexAngularAllowance |
Vertex association check: pointing angular allowance in degrees. More... | |
ShowerGrowingAlgorithm class.
Definition at line 27 of file ShowerGrowingAlgorithm.h.
|
protected |
Definition at line 54 of file ShowerGrowingAlgorithm.h.
lar_content::ShowerGrowingAlgorithm::ShowerGrowingAlgorithm | ( | ) |
Default constructor.
Definition at line 25 of file ShowerGrowingAlgorithm.cc.
|
privatevirtual |
Determine whether two clusters are associated.
pClusterSeed | address of cluster seed (may be daughter of primary seed) |
pCluster | address of cluster |
Implements lar_content::BranchGrowingAlgorithm.
Definition at line 276 of file ShowerGrowingAlgorithm.cc.
|
private |
Get all seed candidates associated with a provided vertex.
pClusterList | the list of available seed candidates |
pVertex | the address of the vertex |
seedClusters | to receive the list of vertex seed candidates |
Definition at line 164 of file ShowerGrowingAlgorithm.cc.
|
private |
Get a figure of merit representing the consistency of the provided seed associated list.
seedAssociationList | the seed association list |
Definition at line 358 of file ShowerGrowingAlgorithm.cc.
|
private |
Get the next seed candidate, using a list of available candidates and a list of those already used.
pClusterList | the list of available seed candidates |
usedClusters | the list of candidates already considered |
pSeedCluster | to receive the address of the next seed candidate |
Definition at line 133 of file ShowerGrowingAlgorithm.cc.
|
private |
Get the number of clusters associated with the vertex.
vertexPosition2D | the projected vertex position |
pointingClusterList | the list of relevant pointing clusters |
Definition at line 413 of file ShowerGrowingAlgorithm.cc.
|
private |
Get the seed association list for a given vector of particle seed candidates.
particleSeedVector | the particle seed vector |
pClusterList | the address of the input cluster list |
seedAssociationList | to receive the populated seed association list |
Definition at line 201 of file ShowerGrowingAlgorithm.cc.
|
protected |
Whether a pointing cluster is assciated with a provided 2D vertex projection.
pointingCluster | the pointing cluster |
vertexPosition2D | the projected vertex position |
Definition at line 40 of file ShowerGrowingAlgorithm.cc.
|
private |
Process the list of branch clusters, merging with specified parent cluster, dealing with any existing pfos as required.
pParentCluster | the address of the parent cluster |
branchClusters | the list of branch clusters for the specified seed cluster |
listName | the cluster list name |
pfoList | the input pfo list |
Definition at line 258 of file ShowerGrowingAlgorithm.cc.
|
private |
Process the details stored in a specified seed association list.
seedAssociationList | the seed association list |
clusterListName | the cluster list name |
pfoList | the pfo list |
usedClusters | the list of candidates already considered |
Definition at line 238 of file ShowerGrowingAlgorithm.cc.
|
privatevirtual |
Reimplemented from lar_content::BranchGrowingAlgorithm.
Definition at line 428 of file ShowerGrowingAlgorithm.cc.
|
private |
Definition at line 67 of file ShowerGrowingAlgorithm.cc.
|
private |
Simple single-pass shower growing mode.
pClusterList | the list of clusters |
clusterListName | the cluster list name |
Definition at line 100 of file ShowerGrowingAlgorithm.cc.
|
staticprotected |
Sorting for clusters to determine order in which seeds are considered.
pLhs | address of first cluster |
pRhs | address of second cluster |
Definition at line 52 of file ShowerGrowingAlgorithm.cc.
|
mutableprotected |
The cluster direction map.
Definition at line 55 of file ShowerGrowingAlgorithm.h.
|
private |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 152 of file ShowerGrowingAlgorithm.h.
|
private |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 151 of file ShowerGrowingAlgorithm.h.
|
private |
The names of the input cluster lists.
Definition at line 145 of file ShowerGrowingAlgorithm.h.
|
private |
Vertex association check: max longitudinal distance cut.
Definition at line 155 of file ShowerGrowingAlgorithm.h.
|
private |
Vertex association check: max transverse distance cut.
Definition at line 156 of file ShowerGrowingAlgorithm.h.
|
private |
The minimum number of calo hits per (seed or branch) cluster.
Definition at line 147 of file ShowerGrowingAlgorithm.h.
|
private |
Vertex association check: min longitudinal distance cut.
Definition at line 154 of file ShowerGrowingAlgorithm.h.
|
private |
The nearby cluster distance, used for determining cluster associations.
Definition at line 148 of file ShowerGrowingAlgorithm.h.
|
private |
The remote cluster distance, used for determining cluster associations.
Definition at line 149 of file ShowerGrowingAlgorithm.h.
|
private |
Vertex association check: pointing angular allowance in degrees.
Definition at line 157 of file ShowerGrowingAlgorithm.h.