LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar_cluster3d::kdTree::KdTreeNode Class Reference

define a kd tree node More...

#include "kdTree.h"

Public Types

enum  SplitAxis {
  xPlane, yPlane, zPlane, leaf,
  null
}
 

Public Member Functions

 KdTreeNode (SplitAxis axis, float axisVal, const KdTreeNode &left, const KdTreeNode &right)
 
 KdTreeNode (const reco::ClusterHit3D *hit)
 
 KdTreeNode ()
 
bool isLeafNode () const
 
bool isNullNode () const
 
SplitAxis getSplitAxis () const
 
float getAxisValue () const
 
const reco::ClusterHit3DgetClusterHit3D () const
 
const KdTreeNodeleftTree () const
 
const KdTreeNoderightTree () const
 

Private Attributes

SplitAxis m_splitAxis
 
float m_axisValue
 
const reco::ClusterHit3Dm_clusterHit3D
 
const KdTreeNodem_leftTree
 
const KdTreeNodem_rightTree
 

Detailed Description

define a kd tree node

Definition at line 127 of file kdTree.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

lar_cluster3d::kdTree::KdTreeNode::KdTreeNode ( SplitAxis  axis,
float  axisVal,
const KdTreeNode left,
const KdTreeNode right 
)
inline

Definition at line 131 of file kdTree.h.

132  : m_splitAxis(axis)
133  , m_axisValue(axisVal)
134  , m_clusterHit3D(0)
135  , m_leftTree(left)
136  , m_rightTree(right)
137  {}
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
const KdTreeNode & m_leftTree
Definition: kdTree.h:168
const KdTreeNode & m_rightTree
Definition: kdTree.h:169
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
const reco::ClusterHit3D * m_clusterHit3D
Definition: kdTree.h:167
lar_cluster3d::kdTree::KdTreeNode::KdTreeNode ( const reco::ClusterHit3D hit)
inline

Definition at line 139 of file kdTree.h.

140  : m_splitAxis(SplitAxis::leaf)
141  , m_axisValue(0.)
142  , m_clusterHit3D(hit)
143  , m_leftTree(*this)
144  , m_rightTree(*this)
145  {}
const KdTreeNode & m_leftTree
Definition: kdTree.h:168
const KdTreeNode & m_rightTree
Definition: kdTree.h:169
const reco::ClusterHit3D * m_clusterHit3D
Definition: kdTree.h:167
lar_cluster3d::kdTree::KdTreeNode::KdTreeNode ( )
inline

Definition at line 147 of file kdTree.h.

148  : m_splitAxis(SplitAxis::null)
149  , m_axisValue(0.)
150  , m_clusterHit3D(0)
151  , m_leftTree(*this)
152  , m_rightTree(*this)
153  {}
const KdTreeNode & m_leftTree
Definition: kdTree.h:168
const KdTreeNode & m_rightTree
Definition: kdTree.h:169
const reco::ClusterHit3D * m_clusterHit3D
Definition: kdTree.h:167

Member Function Documentation

float lar_cluster3d::kdTree::KdTreeNode::getAxisValue ( ) const
inline
const reco::ClusterHit3D* lar_cluster3d::kdTree::KdTreeNode::getClusterHit3D ( ) const
inline
SplitAxis lar_cluster3d::kdTree::KdTreeNode::getSplitAxis ( ) const
inline
bool lar_cluster3d::kdTree::KdTreeNode::isLeafNode ( ) const
inline
bool lar_cluster3d::kdTree::KdTreeNode::isNullNode ( ) const
inline

Definition at line 156 of file kdTree.h.

156 { return m_splitAxis == SplitAxis::null; }
const KdTreeNode& lar_cluster3d::kdTree::KdTreeNode::leftTree ( ) const
inline
const KdTreeNode& lar_cluster3d::kdTree::KdTreeNode::rightTree ( ) const
inline

Member Data Documentation

float lar_cluster3d::kdTree::KdTreeNode::m_axisValue
private

Definition at line 166 of file kdTree.h.

const reco::ClusterHit3D* lar_cluster3d::kdTree::KdTreeNode::m_clusterHit3D
private

Definition at line 167 of file kdTree.h.

const KdTreeNode& lar_cluster3d::kdTree::KdTreeNode::m_leftTree
private

Definition at line 168 of file kdTree.h.

const KdTreeNode& lar_cluster3d::kdTree::KdTreeNode::m_rightTree
private

Definition at line 169 of file kdTree.h.

SplitAxis lar_cluster3d::kdTree::KdTreeNode::m_splitAxis
private

Definition at line 165 of file kdTree.h.


The documentation for this class was generated from the following file: