Belle II Software
release-08-01-10
|
Class which holds quadtree structure. More...
#include <QuadTreeNode.h>
Public Types | |
using | This = QuadTreeNode< AX, AY, AItem > |
Type of this class. | |
using | XSpan = std::array< AX, 2 > |
Type for a span in the X direction that is covered by the tree. | |
using | YSpan = std::array< AY, 2 > |
Type for a span in the Y direction that is covered by the tree. | |
using | XBinBounds = std::array< AX, 4 > |
Type to store the minimum and maximum of the two bins in X direction. | |
using | YBinBounds = std::array< AY, 4 > |
Type to store the minimum and maximum of the two bins in Y direction. | |
using | Children = std::vector< This > |
Type of the child node structure for this node. | |
Public Member Functions | |
QuadTreeNode (XSpan xSpan, YSpan ySpan, int level, This *parent) | |
Constructor setting up the potential division points. More... | |
void | insertItem (AItem *item) |
Insert item into node. | |
void | reserveItems (int nItems) |
Reserve memory for holding items. | |
std::vector< AItem * > & | getItems () |
Get items from node. | |
int | getNItems () const |
Check if the node passes threshold on number of hits. | |
void | clearItems () |
Clear items which the node holds. | |
Children & | getChildren () |
Returns the children structure of this node. | |
void | clearChildren () |
Clear items which the node holds and destroy all children below this node. More... | |
int | getLevel () const |
Returns level of the node in tree (i.e., how much ancestors the node has) | |
bool | checkFilled () const |
Check whether node has been processed, i.e. More... | |
void | setFilled () |
Set status of node to "filled" (children nodes has been filled) | |
This * | getParent () const |
Return pointer to the parent of the node. | |
constexpr int | getXNbins () const |
Get number of bins in "Theta" direction. | |
AX | getXMin () const |
Get minimal "Theta" value of the node. | |
AX | getXMax () const |
Get maximal "Theta" value of the node. | |
AX | getXBinWidth (int iBin) |
Getter for the width of the iBin bin in "Theta" direction. | |
AX | getXLowerBound (int iBin) const |
Get lower "Theta" value of given bin. | |
AX | getXUpperBound (int iBin) const |
Get upper "Theta" value of given bin. | |
constexpr int | getYNbins () const |
Get number of bins in "r" direction. | |
AY | getYMin () const |
Get minimal "r" value of the node. | |
AY | getYMax () const |
Get maximal "r" value of the node. | |
AY | getYBinWidth (int iBin) |
Getter for the width of the iBin bin in "r" direction. | |
AY | getYLowerBound (int iBin) const |
Get lower "r" value of given bin. | |
AY | getYUpperBound (int iBin) const |
Get upper "r" value of given bin. | |
Private Attributes | |
XBinBounds | m_xBinBounds |
bins range on theta | |
YBinBounds | m_yBinBounds |
bins range on r | |
int | m_level |
Level of node in the tree. | |
This * | m_parent |
Pointer to the parent node. | |
std::vector< AItem * > | m_items |
Vector of items which belongs to the node. | |
std::vector< This > | m_children |
Pointers to the children nodes. | |
bool | m_filled |
Is the node has been filled with items. | |
Class which holds quadtree structure.
AX | type of the X-axis variable |
AY | type of the Y-axis variable |
AItem | type of the objects which are filled into QuadTree |
Definition at line 29 of file QuadTreeNode.h.
|
inline |
Constructor setting up the potential division points.
Cppcheck may warn to pass the spans by reference here, however this would come at performance penalty.
Definition at line 57 of file QuadTreeNode.h.
|
inline |
Check whether node has been processed, i.e.
children nodes has been filled
Definition at line 132 of file QuadTreeNode.h.
|
inline |
Clear items which the node holds and destroy all children below this node.
This method must only be called on the root node, for fast QuadTree reusage
Definition at line 118 of file QuadTreeNode.h.