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... | |
Public Member Functions inherited from lar_cluster3d::IClusterAlg | |
virtual | ~IClusterAlg () noexcept=default |
Virtual Destructor. 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 Member Functions | |
void | RunPrimsAlgorithm (reco::HitPairList &, kdTree::KdTreeNode &, reco::ClusterParametersList &) const |
Driver for Prim's algorithm. More... | |
void | PruneAmbiguousHits (reco::ClusterParameters &, reco::Hit2DToClusterMap &) const |
Prune the obvious ambiguous hits. More... | |
void | FindBestPathInCluster (reco::ClusterParameters &) const |
Algorithm to find the best path through the given cluster. More... | |
reco::HitPairListPtr | DepthFirstSearch (const reco::EdgeTuple &, const reco::Hit3DToEdgeMap &, float &) const |
a depth first search to find longest branches More... | |
void | FindBestPathInCluster (reco::ClusterParameters &, kdTree::KdTreeNode &) const |
Alternative version of FindBestPathInCluster utilizing an A* algorithm. More... | |
void | AStar (const reco::ClusterHit3D *, const reco::ClusterHit3D *, float alpha, kdTree::KdTreeNode &, reco::ClusterParameters &) const |
Algorithm to find shortest path between two 3D hits. More... | |
void | ReconstructBestPath (const reco::ClusterHit3D *, BestNodeMap &, reco::HitPairListPtr &, reco::EdgeList &) const |
float | DistanceBetweenNodes (const reco::ClusterHit3D *, const reco::ClusterHit3D *) const |
void | LeastCostPath (const reco::EdgeTuple &, const reco::ClusterHit3D *, reco::ClusterParameters &, float &) const |
Find the lowest cost path between two nodes using MST edges. More... | |
void | CheckHitSorting (reco::ClusterParameters &clusterParams) const |
Private Attributes | |
bool | m_enableMonitoring |
Data members to follow. More... | |
std::vector< float > | m_timeVector |
std::vector< std::vector< float > > | m_wireDir |
geo::Geometry const * | m_geometry |
PrincipalComponentsAlg | m_pcaAlg |
kdTree | m_kdTree |
std::unique_ptr< lar_cluster3d::IClusterParametersBuilder > | m_clusterBuilder |
Common cluster builder tool. More... | |
Additional Inherited Members | |
Public Types inherited from lar_cluster3d::IClusterAlg | |
enum | TimeValues { BUILDTHREEDHITS = 0, BUILDHITTOHITMAP = 1, RUNDBSCAN = 2, BUILDCLUSTERINFO = 3, PATHFINDING = 4, NUMTIMEVALUES } |
enumerate the possible values for time checking if monitoring timing More... | |
Definition at line 43 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 111 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 110 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 131 of file MinSpanTreeAlg_tool.cc.
|
private |
define data structure for keeping track of channel status
Definition at line 130 of file MinSpanTreeAlg_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 148 of file MinSpanTreeAlg_tool.cc.
lar_cluster3d::MinSpanTreeAlg::~MinSpanTreeAlg | ( | ) |
|
private |
Algorithm to find shortest path between two 3D hits.
Definition at line 533 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 901 of file MinSpanTreeAlg_tool.cc.
|
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 208 of file MinSpanTreeAlg_tool.cc.
|
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 70 of file MinSpanTreeAlg_tool.cc.
|
override |
Definition at line 163 of file MinSpanTreeAlg_tool.cc.
|
private |
a depth first search to find longest branches
Definition at line 722 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 694 of file MinSpanTreeAlg_tool.cc.
|
private |
Algorithm to find the best path through the given cluster.
Definition at line 376 of file MinSpanTreeAlg_tool.cc.
|
private |
Alternative version of FindBestPathInCluster utilizing an A* algorithm.
Definition at line 442 of file MinSpanTreeAlg_tool.cc.
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IClusterAlg.
Definition at line 76 of file MinSpanTreeAlg_tool.cc.
|
private |
Find the lowest cost path between two nodes using MST edges.
Definition at line 641 of file MinSpanTreeAlg_tool.cc.
|
private |
Prune the obvious ambiguous hits.
Definition at line 768 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 620 of file MinSpanTreeAlg_tool.cc.
|
private |
Driver for Prim's algorithm.
Definition at line 254 of file MinSpanTreeAlg_tool.cc.
|
private |
Common cluster builder tool.
Definition at line 145 of file MinSpanTreeAlg_tool.cc.
|
private |
Data members to follow.
Definition at line 136 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 140 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 143 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 142 of file MinSpanTreeAlg_tool.cc.
|
mutableprivate |
Definition at line 137 of file MinSpanTreeAlg_tool.cc.
|
private |
Definition at line 138 of file MinSpanTreeAlg_tool.cc.