SlidingConePfoMopUpAlgorithm class. More...
#include <SlidingConePfoMopUpAlgorithm.h>
Classes | |
class | ClusterMerge |
ClusterMerge class. More... | |
Public Member Functions | |
SlidingConePfoMopUpAlgorithm () | |
Default constructor. More... | |
Public Member Functions inherited from lar_content::PfoMopUpBaseAlgorithm | |
virtual void | MergeAndDeletePfos (const pandora::ParticleFlowObject *const pPfoToEnlarge, const pandora::ParticleFlowObject *const pPfoToDelete) const |
Merge and delete a pair of pfos, with a specific set of conventions for cluster merging, vertex use, etc. More... | |
Public Member Functions inherited from lar_content::MopUpBaseAlgorithm | |
template<typename T > | |
const std::string | GetListName (const T *const pT) const |
Find the name of the list hosting a specific object. More... | |
Private Types | |
typedef std::vector< ClusterMerge > | ClusterMergeList |
typedef std::unordered_map < const pandora::Cluster *, const pandora::ParticleFlowObject * > | ClusterToPfoMap |
typedef std::unordered_map < const pandora::Cluster *, ClusterMergeList > | ClusterMergeMap |
typedef std::unordered_map < const pandora::Cluster *, bool > | VertexAssociationMap |
typedef std::unordered_map < const pandora::Cluster *, const pandora::Cluster * > | ClusterReplacementMap |
Private Member Functions | |
pandora::StatusCode | Run () |
void | GetInteractionVertex (const pandora::Vertex *&pVertex) const |
Get the neutrino interaction vertex if it is available and if the algorithm is configured to do so. More... | |
void | GetThreeDClusters (pandora::ClusterVector &clusters3D, ClusterToPfoMap &clusterToPfoMap) const |
Get all 3d clusters contained in the input pfo lists and a mapping from clusters to pfos. More... | |
void | GetClusterMergeMap (const pandora::Vertex *const pVertex, const pandora::ClusterVector &clusters3D, const ClusterToPfoMap &clusterToPfoMap, ClusterMergeMap &clusterMergeMap) const |
Get the cluster merge map describing all potential 3d cluster merges. More... | |
bool | IsVertexAssociated (const pandora::Cluster *const pCluster, const pandora::Vertex *const pVertex, VertexAssociationMap &vertexAssociationMap, const ThreeDSlidingFitResult *const pSlidingFitResult=nullptr) const |
Whether a 3D cluster is nodally associated with a provided vertex. More... | |
bool | IsVertexAssociated (const pandora::Cluster *const pCluster, const pandora::CartesianVector &vertexPosition, const ThreeDSlidingFitResult *const pSlidingFitResult=nullptr) const |
Whether a 3D cluster is nodally associated with a provided vertex. More... | |
bool | MakePfoMerges (const ClusterToPfoMap &clusterToPfoMap, const ClusterMergeMap &clusterMergeMap) const |
Make pfo merges based on the provided cluster merge map. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
pandora::StringVector | m_inputPfoListNames |
The input pfo list names. More... | |
bool | m_useVertex |
Whether to use the interaction vertex to select useful cone directions. More... | |
unsigned int | m_maxIterations |
The maximum allowed number of algorithm iterations. More... | |
unsigned int | m_maxHitsToConsider3DTrack |
The maximum number of hits in a 3d track cluster to warrant inclusion in algorithm. More... | |
unsigned int | m_minHitsToConsider3DShower |
The minimum number of hits in a 3d shower cluster to attempt cone fits. More... | |
unsigned int | m_halfWindowLayers |
The number of layers to use for half-window of sliding fit. More... | |
unsigned int | m_nConeFitLayers |
The number of layers over which to sum fitted direction to obtain cone fit. More... | |
unsigned int | m_nConeFits |
The number of cone fits to perform, spread roughly uniformly along the shower length. More... | |
float | m_coneLengthMultiplier |
The cone length multiplier to use when calculating bounded cluster fractions. More... | |
float | m_maxConeLength |
The maximum allowed cone length to use when calculating bounded cluster fractions. More... | |
float | m_coneTanHalfAngle1 |
The cone tan half angle to use when calculating bounded cluster fractions 1. More... | |
float | m_coneBoundedFraction1 |
The minimum cluster bounded fraction for association 1. More... | |
float | m_coneTanHalfAngle2 |
The cone tan half angle to use when calculating bounded cluster fractions 2. More... | |
float | m_coneBoundedFraction2 |
The minimum cluster bounded fraction for association 2. More... | |
float | m_minVertexLongitudinalDistance |
Vertex association check: min longitudinal distance cut. More... | |
float | m_maxVertexTransverseDistance |
Vertex association check: max transverse distance cut. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lar_content::PfoMopUpBaseAlgorithm | |
static const pandora::Cluster * | GetParentCluster (const pandora::ClusterList &clusterList, const pandora::HitType hitType) |
Select the parent cluster (same hit type and most hits) using a provided cluster list and hit type. More... | |
Protected Attributes inherited from lar_content::MopUpBaseAlgorithm | |
pandora::StringVector | m_daughterListNames |
The list of potential daughter object list names. More... | |
SlidingConePfoMopUpAlgorithm class.
Definition at line 21 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Definition at line 81 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Definition at line 102 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Definition at line 154 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Definition at line 92 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Definition at line 115 of file SlidingConePfoMopUpAlgorithm.h.
lar_content::SlidingConePfoMopUpAlgorithm::SlidingConePfoMopUpAlgorithm | ( | ) |
Default constructor.
Definition at line 25 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
Get the cluster merge map describing all potential 3d cluster merges.
pVertex | the neutrino interaction vertex, if available |
clusters3D | the sorted list of 3d clusters |
clusterToPfoMap | the mapping from 3d cluster to pfo |
clusterMergeMap | to receive the populated cluster merge map |
Definition at line 124 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
Get the neutrino interaction vertex if it is available and if the algorithm is configured to do so.
pVertex | to receive the neutrino interaction vertex |
Definition at line 78 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
Get all 3d clusters contained in the input pfo lists and a mapping from clusters to pfos.
clusters3D | to receive the sorted list of 3d clusters |
clusterToPfoMap | to receive the mapping from 3d cluster to pfo |
Definition at line 92 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
Whether a 3D cluster is nodally associated with a provided vertex.
pCluster | the address of the cluster |
pVertex | the address of the vertex |
vertexAssociationMap | the vertex association map, which caches the results for efficiency |
pSlidingFitResult | the address of a 3D sliding linear fit, if available, which aids pointing cluster construction efficiency |
|
private |
Whether a 3D cluster is nodally associated with a provided vertex.
pCluster | the address of the cluster |
vertexPosition | the vertex position |
pSlidingFitResult | the address of a 3D sliding linear fit, if available, which aids pointing cluster construction efficiency |
|
private |
Make pfo merges based on the provided cluster merge map.
clusterToPfoMap | the mapping from 3d cluster to pfo |
clusterMergeMap | the populated cluster merge map |
Definition at line 236 of file SlidingConePfoMopUpAlgorithm.cc.
|
privatevirtual |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 307 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
Definition at line 46 of file SlidingConePfoMopUpAlgorithm.cc.
|
private |
The minimum cluster bounded fraction for association 1.
Definition at line 167 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The minimum cluster bounded fraction for association 2.
Definition at line 169 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The cone length multiplier to use when calculating bounded cluster fractions.
Definition at line 164 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The cone tan half angle to use when calculating bounded cluster fractions 1.
Definition at line 166 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The cone tan half angle to use when calculating bounded cluster fractions 2.
Definition at line 168 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The number of layers to use for half-window of sliding fit.
Definition at line 161 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The input pfo list names.
Definition at line 156 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The maximum allowed cone length to use when calculating bounded cluster fractions.
Definition at line 165 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The maximum number of hits in a 3d track cluster to warrant inclusion in algorithm.
Definition at line 159 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The maximum allowed number of algorithm iterations.
Definition at line 158 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Vertex association check: max transverse distance cut.
Definition at line 171 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The minimum number of hits in a 3d shower cluster to attempt cone fits.
Definition at line 160 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Vertex association check: min longitudinal distance cut.
Definition at line 170 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The number of layers over which to sum fitted direction to obtain cone fit.
Definition at line 162 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
The number of cone fits to perform, spread roughly uniformly along the shower length.
Definition at line 163 of file SlidingConePfoMopUpAlgorithm.h.
|
private |
Whether to use the interaction vertex to select useful cone directions.
Definition at line 157 of file SlidingConePfoMopUpAlgorithm.h.