13 namespace fhicl {
class ParameterSet; }
25 namespace lar_cluster3d
47 kdTree(fhicl::ParameterSet
const &pset);
59 void configure(fhicl::ParameterSet
const &pset);
68 using Hit3DVec = std::vector<const reco::ClusterHit3D*>;
78 using CandPair = std::pair<double,const reco::ClusterHit3D*>;
float fRefLeafBestDist
Set neighborhood distance to this when ref leaf found.
std::list< reco::ClusterHit3D > HitPairList
const KdTreeNode & m_leftTree
void configure(fhicl::ParameterSet const &pset)
Configure our kdTree...
std::list< KdTreeNode > KdTreeNodeList
size_t FindNearestNeighbors(const reco::ClusterHit3D *, const KdTreeNode &, CandPairList &, float &) const
std::vector< const reco::ClusterHit3D * > Hit3DVec
kdTree()
Default Constructor.
float DistanceBetweenNodes(const reco::ClusterHit3D *, const reco::ClusterHit3D *) const
const KdTreeNode & m_rightTree
std::pair< double, const reco::ClusterHit3D * > CandPair
KdTreeNode(const reco::ClusterHit3D *hit)
std::list< const reco::ClusterHit3D * > HitPairListPtr
bool consistentPairs(const reco::ClusterHit3D *pair1, const reco::ClusterHit3D *pair2, float &hitSeparation) const
The bigger question: are two pairs of hits consistent?
std::list< CandPair > CandPairList
float DistanceBetweenNodesYZ(const reco::ClusterHit3D *, const reco::ClusterHit3D *) const
bool FindEntry(const reco::ClusterHit3D *, const KdTreeNode &, CandPairList &, float &, bool &, int) const
bool FindEntryBrute(const reco::ClusterHit3D *, const KdTreeNode &, int) const
KdTreeNode(SplitAxis axis, float axisVal, const KdTreeNode &left, const KdTreeNode &right)
float fPairSigmaPeakTime
Consider hits consistent if "significance" less than this.
const KdTreeNode & rightTree() const
int fMaxWireDeltas
Maximum total number of delta wires.
float getAxisValue() const
const reco::ClusterHit3D * getClusterHit3D() const
std::vector< KdTreeNode > KdTreeNodeVec
float getTimeToExecute() const
KdTreeNode & BuildKdTree(Hit3DVec::iterator, Hit3DVec::iterator, KdTreeNodeList &, int depth=0) const
Given an input set of ClusterHit3D objects, build a kd tree structure.
const KdTreeNode & leftTree() const
SplitAxis getSplitAxis() const
const reco::ClusterHit3D * m_clusterHit3D