LArSoft
v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
|
Public Types | |
enum | TimeValues { BUILDTHREEDHITS = 0, BUILDHITTOHITMAP = 1, RUNDBSCAN = 2, BUILDCLUSTERINFO = 3, PATHFINDING = 4, NUMTIMEVALUES } |
enumerate the possible values for time checking if monitoring timing More... | |
Public Member Functions | |
MinSpanTreeAlg (const fhicl::ParameterSet &) | |
Constructor. More... | |
~MinSpanTreeAlg () | |
Destructor. More... | |
void | configure (fhicl::ParameterSet const &pset) override |
void | Cluster3DHits (reco::HitPairList &hitPairList, reco::ClusterParametersList &clusterParametersList) const override |
Given a set of recob hits, run DBscan to form 3D clusters. More... | |
void | Cluster3DHits (reco::HitPairListPtr &hitPairList, reco::ClusterParametersList &clusterParametersList) const override |
Given a set of recob hits, run DBscan to form 3D clusters. More... | |
float | getTimeToExecute (TimeValues index) const override |
If monitoring, recover the time to execute a particular function. More... | |
virtual void | configure (const fhicl::ParameterSet &)=0 |
Interface for configuring the particular algorithm tool. More... | |
Private Types | |
using | BestNodeTuple = std::tuple< const reco::ClusterHit3D *, float, float > |
using | BestNodeMap = std::unordered_map< const reco::ClusterHit3D *, BestNodeTuple > |
using | ChannelStatusVec = std::vector< size_t > |
define data structure for keeping track of channel status More... | |
using | ChannelStatusByPlaneVec = std::vector< ChannelStatusVec > |
Private Attributes | |
bool | m_enableMonitoring |
Data members to follow. More... | |
std::vector< float > | m_timeVector |
std::vector< std::vector< float > > | m_wireDir |
geo::Geometry * | m_geometry |
ClusterParamsBuilder | m_clusterBuilder |
PrincipalComponentsAlg | m_pcaAlg |
kdTree | m_kdTree |
Definition at line 42 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 110 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 109 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 132 of file MinSpanTreeAlg_tool.cc.
|
private |
define data structure for keeping track of channel status
Definition at line 131 of file MinSpanTreeAlg_tool.cc.
|
inherited |
enumerate the possible values for time checking if monitoring timing
Enumerator | |
---|---|
BUILDTHREEDHITS | |
BUILDHITTOHITMAP | |
RUNDBSCAN | |
BUILDCLUSTERINFO | |
PATHFINDING | |
NUMTIMEVALUES |
Definition at line 61 of file IClusterAlg.h.
|
explicit |
Constructor.
pset |
Definition at line 148 of file MinSpanTreeAlg_tool.cc.
References configure().
lar_cluster3d::MinSpanTreeAlg::~MinSpanTreeAlg | ( | ) |
|
private |
Algorithm to find shortest path between two 3D hits.
Definition at line 545 of file MinSpanTreeAlg_tool.cc.
References DistanceBetweenNodes(), lar_cluster3d::kdTree::FindNearestNeighbors(), reco::ClusterHit3D::getPosition(), m_kdTree, max, reco::ClusterHit3D::PATHCHECKED, ReconstructBestPath(), and reco::ClusterHit3D::setStatusBit().
Referenced by FindBestPathInCluster(), and getTimeToExecute().
|
private |
Definition at line 937 of file MinSpanTreeAlg_tool.cc.
References DEFINE_ART_CLASS_TOOL, reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getHits(), reco::PrincipalComponents::getSvdOK(), reco::ClusterHit3D::getWireIDs(), m_pcaAlg, m_wireDir, and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D().
|
overridevirtual |
Given a set of recob hits, run DBscan to form 3D clusters.
hitPairList | The input list of 3D hits to run clustering on |
hitPairClusterMap | A map of hits that have been clustered |
clusterParametersList | A list of cluster objects (parameters from associated hits) |
Driver for processing input 2D hits, transforming to 3D hits and building lists of associated 3D hits (candidate 3D clusters)
Implements lar_cluster3d::IClusterAlg.
Definition at line 207 of file MinSpanTreeAlg_tool.cc.
References lar_cluster3d::ClusterParamsBuilder::BuildClusterInfo(), lar_cluster3d::IClusterAlg::BUILDCLUSTERINFO, lar_cluster3d::IClusterAlg::BUILDHITTOHITMAP, lar_cluster3d::kdTree::BuildKdTree(), trkf::fill(), FindBestPathInCluster(), lar_cluster3d::kdTree::getTimeToExecute(), m_clusterBuilder, m_enableMonitoring, m_kdTree, m_timeVector, and RunPrimsAlgorithm().
|
inlineoverridevirtual |
Given a set of recob hits, run DBscan to form 3D clusters.
hitPairListPtr | The input list of 3D hits to run clustering on |
clusterParametersList | A list of cluster objects (parameters from associated hits) |
Implements lar_cluster3d::IClusterAlg.
Definition at line 69 of file MinSpanTreeAlg_tool.cc.
|
pure virtualinherited |
Interface for configuring the particular algorithm tool.
ParameterSet | The input set of parameters for configuration |
Implemented in lar_cluster3d::DBScanAlg.
|
override |
Definition at line 164 of file MinSpanTreeAlg_tool.cc.
References geo::GeometryCore::ChannelToWire(), geo::WireGeo::Direction(), fhicl::ParameterSet::get(), m_enableMonitoring, m_geometry, m_timeVector, m_wireDir, lar_cluster3d::IClusterAlg::NUMTIMEVALUES, and geo::GeometryCore::WirePtr().
Referenced by MinSpanTreeAlg().
|
private |
a depth first search to find longest branches
Definition at line 758 of file MinSpanTreeAlg_tool.cc.
References max.
Referenced by FindBestPathInCluster(), and getTimeToExecute().
|
private |
Definition at line 730 of file MinSpanTreeAlg_tool.cc.
References reco::ClusterHit3D::getPosition().
Referenced by AStar(), FindBestPathInCluster(), and ReconstructBestPath().
|
private |
Algorithm to find the best path through the given cluster.
Definition at line 366 of file MinSpanTreeAlg_tool.cc.
References DepthFirstSearch(), reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getHit3DToEdgeMap(), reco::ClusterParameters::getHitPairListPtr(), m_enableMonitoring, m_timeVector, max, and lar_cluster3d::IClusterAlg::PATHFINDING.
Referenced by Cluster3DHits(), and getTimeToExecute().
|
private |
Alternative version of FindBestPathInCluster utilizing an A* algorithm.
Definition at line 432 of file MinSpanTreeAlg_tool.cc.
References AStar(), DistanceBetweenNodes(), reco::PrincipalComponents::getAvePosition(), reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getBestHitPairListPtr(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getHit3DToEdgeMap(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), reco::PrincipalComponents::getSvdOK(), art::left(), m_enableMonitoring, m_pcaAlg, m_timeVector, max, min, lar_cluster3d::IClusterAlg::PATHFINDING, lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), and art::right().
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IClusterAlg.
Definition at line 75 of file MinSpanTreeAlg_tool.cc.
References AStar(), DepthFirstSearch(), FindBestPathInCluster(), m_timeVector, PruneAmbiguousHits(), and RunPrimsAlgorithm().
|
private |
Find the lowest cost path between two nodes using MST edges.
Definition at line 681 of file MinSpanTreeAlg_tool.cc.
References max.
|
private |
Prune the obvious ambiguous hits.
Definition at line 804 of file MinSpanTreeAlg_tool.cc.
References reco::ClusterParameters::getHitPairListPtr().
Referenced by getTimeToExecute().
|
private |
Definition at line 660 of file MinSpanTreeAlg_tool.cc.
References DistanceBetweenNodes().
Referenced by AStar().
|
private |
Driver for Prim's algorithm.
Definition at line 253 of file MinSpanTreeAlg_tool.cc.
References reco::ClusterHit3D::CLUSTERATTACHED, lar_cluster3d::kdTree::FindNearestNeighbors(), art::left(), m_enableMonitoring, m_kdTree, m_timeVector, art::right(), lar_cluster3d::IClusterAlg::RUNDBSCAN, and reco::ClusterHit3D::setStatusBit().
Referenced by Cluster3DHits(), and getTimeToExecute().
|
private |
Definition at line 143 of file MinSpanTreeAlg_tool.cc.
Referenced by Cluster3DHits().
|
private |
Data members to follow.
Definition at line 137 of file MinSpanTreeAlg_tool.cc.
Referenced by Cluster3DHits(), configure(), FindBestPathInCluster(), and RunPrimsAlgorithm().
|
private |
Definition at line 141 of file MinSpanTreeAlg_tool.cc.
Referenced by configure().
|
private |
Definition at line 145 of file MinSpanTreeAlg_tool.cc.
Referenced by AStar(), Cluster3DHits(), and RunPrimsAlgorithm().
|
private |
Definition at line 144 of file MinSpanTreeAlg_tool.cc.
Referenced by CheckHitSorting(), and FindBestPathInCluster().
|
mutableprivate |
Definition at line 138 of file MinSpanTreeAlg_tool.cc.
Referenced by Cluster3DHits(), configure(), FindBestPathInCluster(), getTimeToExecute(), and RunPrimsAlgorithm().
|
private |
Definition at line 139 of file MinSpanTreeAlg_tool.cc.
Referenced by CheckHitSorting(), and configure().