LArSoft
v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
|
kdTree class definiton More...
#include "kdTree.h"
Classes | |
class | KdTreeNode |
define a kd tree node More... | |
Public Types | |
using | KdTreeNodeVec = std::vector< KdTreeNode > |
using | KdTreeNodeList = std::list< KdTreeNode > |
using | Hit3DVec = std::vector< const reco::ClusterHit3D * > |
using | CandPair = std::pair< double, const reco::ClusterHit3D * > |
using | CandPairList = std::list< CandPair > |
Public Member Functions | |
kdTree (fhicl::ParameterSet const &pset) | |
Constructor. More... | |
virtual | ~kdTree () |
Destructor. More... | |
void | configure (fhicl::ParameterSet const &pset) |
Configure our kdTree... More... | |
KdTreeNode & | BuildKdTree (Hit3DVec::iterator, Hit3DVec::iterator, KdTreeNodeList &, int depth=0) const |
Given an input set of ClusterHit3D objects, build a kd tree structure. More... | |
size_t | FindNearestNeighbors (const reco::ClusterHit3D *, const KdTreeNode &, CandPairList &, float &) const |
bool | FindEntry (const reco::ClusterHit3D *, const KdTreeNode &, CandPairList &, float &, bool &, int) const |
bool | FindEntryBrute (const reco::ClusterHit3D *, const KdTreeNode &, int) const |
KdTreeNode | BuildKdTree (const reco::HitPairList &, KdTreeNodeList &) const |
Given an input HitPairList, build out the map of nearest neighbors. More... | |
KdTreeNode | BuildKdTree (const reco::HitPairListPtr &, KdTreeNodeList &) const |
Given an input HitPairListPtr, build out the map of nearest neighbors. More... | |
float | getTimeToExecute () const |
Private Member Functions | |
bool | consistentPairs (const reco::ClusterHit3D *pair1, const reco::ClusterHit3D *pair2, float &hitSeparation) const |
The bigger question: are two pairs of hits consistent? More... | |
float | DistanceBetweenNodes (const reco::ClusterHit3D *, const reco::ClusterHit3D *) const |
Private Attributes | |
bool | m_enableMonitoring |
float | m_timeToBuild |
float | m_pairSigmaPeakTime |
Consider hits consistent if "significance" less than this. More... | |
float | m_refLeafBestDist |
Set neighborhood distance to this when ref leaf found. More... | |
using lar_cluster3d::kdTree::CandPair = std::pair<double,const reco::ClusterHit3D*> |
using lar_cluster3d::kdTree::CandPairList = std::list<CandPair> |
using lar_cluster3d::kdTree::Hit3DVec = std::vector<const reco::ClusterHit3D*> |
using lar_cluster3d::kdTree::KdTreeNodeList = std::list<KdTreeNode> |
using lar_cluster3d::kdTree::KdTreeNodeVec = std::vector<KdTreeNode> |
lar_cluster3d::kdTree::kdTree | ( | fhicl::ParameterSet const & | pset | ) |
Constructor.
pset |
Definition at line 32 of file kdTree.cxx.
References configure().
|
virtual |
kdTree::KdTreeNode & lar_cluster3d::kdTree::BuildKdTree | ( | Hit3DVec::iterator | first, |
Hit3DVec::iterator | last, | ||
KdTreeNodeList & | kdTreeNodeContainer, | ||
int | depth = 0 |
||
) | const |
Given an input set of ClusterHit3D objects, build a kd tree structure.
hitPairList | The input list of 3D hits to run clustering on |
kdTreeVec | Container for the nodes |
Definition at line 120 of file kdTree.cxx.
References reco::ClusterHit3D::getPosition(), art::left(), art::right(), lar_cluster3d::kdTree::KdTreeNode::xPlane, lar_cluster3d::kdTree::KdTreeNode::yPlane, and lar_cluster3d::kdTree::KdTreeNode::zPlane.
Referenced by BuildKdTree(), lar_cluster3d::DBScanAlg::Cluster3DHits(), and lar_cluster3d::MinSpanTreeAlg::Cluster3DHits().
kdTree::KdTreeNode lar_cluster3d::kdTree::BuildKdTree | ( | const reco::HitPairList & | hitPairList, |
KdTreeNodeList & | kdTreeNodeContainer | ||
) | const |
Given an input HitPairList, build out the map of nearest neighbors.
Definition at line 57 of file kdTree.cxx.
References BuildKdTree(), m_enableMonitoring, and m_timeToBuild.
kdTree::KdTreeNode lar_cluster3d::kdTree::BuildKdTree | ( | const reco::HitPairListPtr & | hitPairList, |
KdTreeNodeList & | kdTreeNodeContainer | ||
) | const |
Given an input HitPairListPtr, build out the map of nearest neighbors.
Definition at line 85 of file kdTree.cxx.
References BuildKdTree(), reco::ClusterHit3D::HITINVIEW0, reco::ClusterHit3D::HITINVIEW1, reco::ClusterHit3D::HITINVIEW2, m_enableMonitoring, and m_timeToBuild.
void lar_cluster3d::kdTree::configure | ( | fhicl::ParameterSet const & | pset | ) |
Configure our kdTree...
ParameterSet | The input set of parameters for configuration |
Definition at line 45 of file kdTree.cxx.
References fhicl::ParameterSet::get(), m_enableMonitoring, m_pairSigmaPeakTime, m_refLeafBestDist, and m_timeToBuild.
Referenced by kdTree().
|
private |
The bigger question: are two pairs of hits consistent?
Definition at line 280 of file kdTree.cxx.
References DistanceBetweenNodes(), reco::ClusterHit3D::getAvePeakTime(), reco::ClusterHit3D::getSigmaPeakTime(), reco::ClusterHit3D::getWireIDs(), m_pairSigmaPeakTime, and max.
Referenced by FindEntry(), FindNearestNeighbors(), and getTimeToExecute().
|
private |
Definition at line 324 of file kdTree.cxx.
References reco::ClusterHit3D::getPosition().
Referenced by consistentPairs(), and getTimeToExecute().
bool lar_cluster3d::kdTree::FindEntry | ( | const reco::ClusterHit3D * | refHit, |
const KdTreeNode & | node, | ||
CandPairList & | CandPairList, | ||
float & | bestDist, | ||
bool & | selfNotFound, | ||
int | depth | ||
) | const |
Definition at line 215 of file kdTree.cxx.
References consistentPairs(), lar_cluster3d::kdTree::KdTreeNode::getAxisValue(), lar_cluster3d::kdTree::KdTreeNode::getClusterHit3D(), reco::ClusterHit3D::getPosition(), lar_cluster3d::kdTree::KdTreeNode::getSplitAxis(), lar_cluster3d::kdTree::KdTreeNode::isLeafNode(), lar_cluster3d::kdTree::KdTreeNode::leftTree(), max, and lar_cluster3d::kdTree::KdTreeNode::rightTree().
bool lar_cluster3d::kdTree::FindEntryBrute | ( | const reco::ClusterHit3D * | refHit, |
const KdTreeNode & | node, | ||
int | depth | ||
) | const |
Definition at line 260 of file kdTree.cxx.
References lar_cluster3d::kdTree::KdTreeNode::getClusterHit3D(), lar_cluster3d::kdTree::KdTreeNode::isLeafNode(), lar_cluster3d::kdTree::KdTreeNode::leftTree(), and lar_cluster3d::kdTree::KdTreeNode::rightTree().
size_t lar_cluster3d::kdTree::FindNearestNeighbors | ( | const reco::ClusterHit3D * | refHit, |
const KdTreeNode & | node, | ||
CandPairList & | CandPairList, | ||
float & | bestDist | ||
) | const |
Definition at line 178 of file kdTree.cxx.
References consistentPairs(), lar_cluster3d::kdTree::KdTreeNode::getAxisValue(), lar_cluster3d::kdTree::KdTreeNode::getClusterHit3D(), reco::ClusterHit3D::getPosition(), lar_cluster3d::kdTree::KdTreeNode::getSplitAxis(), lar_cluster3d::kdTree::KdTreeNode::isLeafNode(), lar_cluster3d::kdTree::KdTreeNode::leftTree(), m_refLeafBestDist, max, and lar_cluster3d::kdTree::KdTreeNode::rightTree().
Referenced by lar_cluster3d::MinSpanTreeAlg::AStar(), lar_cluster3d::DBScanAlg::Cluster3DHits(), lar_cluster3d::DBScanAlg::expandCluster(), and lar_cluster3d::MinSpanTreeAlg::RunPrimsAlgorithm().
|
inline |
Definition at line 86 of file kdTree.h.
References consistentPairs(), DistanceBetweenNodes(), and m_timeToBuild.
Referenced by lar_cluster3d::DBScanAlg::Cluster3DHits(), and lar_cluster3d::MinSpanTreeAlg::Cluster3DHits().
|
private |
Definition at line 97 of file kdTree.h.
Referenced by BuildKdTree(), and configure().
|
private |
Consider hits consistent if "significance" less than this.
Definition at line 99 of file kdTree.h.
Referenced by configure(), and consistentPairs().
|
private |
Set neighborhood distance to this when ref leaf found.
Definition at line 100 of file kdTree.h.
Referenced by configure(), and FindNearestNeighbors().
|
mutableprivate |
Definition at line 98 of file kdTree.h.
Referenced by BuildKdTree(), configure(), and getTimeToExecute().