LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
SlidingConeClusterMopUpAlgorithm class. More...
#include "SlidingConeClusterMopUpAlgorithm.h"
Classes | |
class | ClusterMerge |
ClusterMerge class. More... | |
Public Member Functions | |
SlidingConeClusterMopUpAlgorithm () | |
Default constructor. More... | |
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... | |
template<typename T > | |
const std::string | GetListName (const T *const pT) const |
Find the name of the list hosting a specific object. More... | |
Static Public Member Functions | |
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 | |
pandora::StringVector | m_daughterListNames |
The list of potential daughter object list names. 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 |
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 | GetAvailableTwoDClusters (pandora::ClusterVector &availableClusters2D) const |
Get all available 2d clusters contained in the input cluster lists. More... | |
void | GetClusterMergeMap (const pandora::Vertex *const pVertex, const pandora::ClusterVector &clusters3D, const pandora::ClusterVector &availableClusters2D, ClusterMergeMap &clusterMergeMap) const |
Get the cluster merge map describing all potential 3d cluster merges. More... | |
void | MakeClusterMerges (const ClusterToPfoMap &clusterToPfoMap, const ClusterMergeMap &clusterMergeMap) const |
Make cluster 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_maxHitsToConsider2DCluster |
The maximum number of hits in a 2d cluster to allow pick-up via sliding 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_coneTanHalfAngle |
The cone tan half angle to use when calculating bounded cluster fractions. More... | |
float | m_coneBoundedFraction |
The minimum cluster bounded fraction for association. More... | |
SlidingConeClusterMopUpAlgorithm class.
Definition at line 21 of file SlidingConeClusterMopUpAlgorithm.h.
|
private |
Definition at line 81 of file SlidingConeClusterMopUpAlgorithm.h.
|
private |
Definition at line 109 of file SlidingConeClusterMopUpAlgorithm.h.
|
private |
Definition at line 92 of file SlidingConeClusterMopUpAlgorithm.h.
lar_content::SlidingConeClusterMopUpAlgorithm::SlidingConeClusterMopUpAlgorithm | ( | ) |
Default constructor.
Definition at line 24 of file SlidingConeClusterMopUpAlgorithm.cc.
|
private |
Get all available 2d clusters contained in the input cluster lists.
availableClusters2D | to receive the sorted list of available 2d clusters |
Definition at line 120 of file SlidingConeClusterMopUpAlgorithm.cc.
References lar_content::MopUpBaseAlgorithm::m_daughterListNames, m_maxHitsToConsider2DCluster, and lar_content::LArClusterHelper::SortByNHits().
Referenced by Run().
|
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 |
availableClusters2D | the sorted list of available 2d clusters |
clusterMergeMap | to receive the populated cluster merge map |
Definition at line 146 of file SlidingConeClusterMopUpAlgorithm.cc.
References lar_content::CONE_BACKWARD_ONLY, lar_content::CONE_BOTH_DIRECTIONS, lar_content::CONE_FORWARD_ONLY, f, lar_content::SlidingConeClusterMopUpAlgorithm::ClusterMerge::GetBoundedFraction(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::ThreeDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::ThreeDSlidingFitResult::GetGlobalMinLayerPosition(), lar_content::SlidingConeClusterMopUpAlgorithm::ClusterMerge::GetParentCluster(), lar_content::ThreeDSlidingConeFitResult::GetSimpleConeList(), lar_content::ThreeDSlidingConeFitResult::GetSlidingFitResult(), lar_content::LArGeometryHelper::GetWirePitch(), m_coneBoundedFraction, m_coneLengthMultiplier, m_coneTanHalfAngle, m_halfWindowLayers, m_maxConeLength, m_nConeFitLayers, m_nConeFits, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by Run().
|
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 71 of file SlidingConeClusterMopUpAlgorithm.cc.
References m_useVertex.
Referenced by Run().
|
inherited |
Find the name of the list hosting a specific object.
pT | the address of the object |
Definition at line 19 of file MopUpBaseAlgorithm.cc.
Referenced by lar_content::IsolatedClusterMopUpAlgorithm::DissolveClustersToHits(), lar_content::ClusterMopUpBaseAlgorithm::MakeClusterMerges(), and MakeClusterMerges().
|
staticinherited |
Select the parent cluster (same hit type and most hits) using a provided cluster list and hit type.
clusterList | the cluster list |
hitType | the hit type |
Definition at line 61 of file PfoMopUpBaseAlgorithm.cc.
Referenced by MakeClusterMerges(), lar_content::SlidingConeClusterMopUpAlgorithm::ClusterMerge::operator<(), lar_content::SlidingConePfoMopUpAlgorithm::ClusterMerge::operator<(), and lar_content::MasterAlgorithm::StitchPfos().
|
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 85 of file SlidingConeClusterMopUpAlgorithm.cc.
References lar_content::LArPfoHelper::GetThreeDClusterList(), lar_content::LArPfoHelper::IsShower(), lar_content::LArPfoHelper::IsTrack(), m_inputPfoListNames, m_maxHitsToConsider3DTrack, m_minHitsToConsider3DShower, and lar_content::LArClusterHelper::SortByNHits().
Referenced by Run().
|
private |
Make cluster 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 210 of file SlidingConeClusterMopUpAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType(), lar_content::MopUpBaseAlgorithm::GetListName(), lar_content::PfoMopUpBaseAlgorithm::GetParentCluster(), and lar_content::LArClusterHelper::SortByNHits().
Referenced by Run().
|
virtualinherited |
Merge and delete a pair of pfos, with a specific set of conventions for cluster merging, vertex use, etc.
pPfoToEnlarge | the address of the pfo to enlarge |
pPfoToDelete | the address of the pfo to delete (will become a dangling pointer) |
Definition at line 20 of file PfoMopUpBaseAlgorithm.cc.
Referenced by lar_content::SlidingConePfoMopUpAlgorithm::MakePfoMerges(), and lar_content::VertexBasedPfoMopUpAlgorithm::MergePfos().
|
privatevirtual |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 265 of file SlidingConeClusterMopUpAlgorithm.cc.
References m_coneBoundedFraction, m_coneLengthMultiplier, m_coneTanHalfAngle, m_halfWindowLayers, m_inputPfoListNames, m_maxConeLength, m_maxHitsToConsider2DCluster, m_maxHitsToConsider3DTrack, m_maxIterations, m_minHitsToConsider3DShower, m_nConeFitLayers, m_nConeFits, m_useVertex, and lar_content::PfoMopUpBaseAlgorithm::ReadSettings().
|
private |
Definition at line 42 of file SlidingConeClusterMopUpAlgorithm.cc.
References GetAvailableTwoDClusters(), GetClusterMergeMap(), GetInteractionVertex(), GetThreeDClusters(), m_useVertex, and MakeClusterMerges().
|
private |
The minimum cluster bounded fraction for association.
Definition at line 144 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
The cone length multiplier to use when calculating bounded cluster fractions.
Definition at line 141 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
The cone tan half angle to use when calculating bounded cluster fractions.
Definition at line 143 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
protectedinherited |
The list of potential daughter object list names.
Definition at line 35 of file MopUpBaseAlgorithm.h.
Referenced by GetAvailableTwoDClusters(), lar_content::ClusterMopUpBaseAlgorithm::GetDaughterClusterLists(), lar_content::SlidingConePfoMopUpAlgorithm::ReadSettings(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
private |
The number of layers to use for half-window of sliding fit.
Definition at line 138 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
The input pfo list names.
Definition at line 132 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetThreeDClusters(), and ReadSettings().
|
private |
The maximum allowed cone length to use when calculating bounded cluster fractions.
Definition at line 142 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
The maximum number of hits in a 2d cluster to allow pick-up via sliding cone fits.
Definition at line 137 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetAvailableTwoDClusters(), and ReadSettings().
|
private |
The maximum number of hits in a 3d track cluster to warrant inclusion in algorithm.
Definition at line 135 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetThreeDClusters(), and ReadSettings().
|
private |
The maximum allowed number of algorithm iterations.
Definition at line 134 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by ReadSettings().
|
private |
The minimum number of hits in a 3d shower cluster to attempt cone fits.
Definition at line 136 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetThreeDClusters(), and ReadSettings().
|
private |
The number of layers over which to sum fitted direction to obtain cone fit.
Definition at line 139 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
The number of cone fits to perform, spread roughly uniformly along the shower length.
Definition at line 140 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetClusterMergeMap(), and ReadSettings().
|
private |
Whether to use the interaction vertex to select useful cone directions.
Definition at line 133 of file SlidingConeClusterMopUpAlgorithm.h.
Referenced by GetInteractionVertex(), ReadSettings(), and Run().