A simple Binary search tree including a volume search method.
Definition at line 65 of file BinarySearchTree.h.
Public Member Functions | |
BinarySearchTree (const BinarySearchTree &b) | |
copy constructor that creates a true copy, i.e. a completely independent tree | |
BinarySearchTree (void) | |
default constructor | |
virtual | ~BinarySearchTree (void) |
destructor | |
void | CalcStatistics (TMVA::Node *n=nullptr) |
calculate basic statistics (mean, rms for each variable) | |
virtual const char * | ClassName () const |
void | Clear (TMVA::Node *n=nullptr) |
clear nodes | |
virtual Node * | CreateNode (UInt_t) const |
virtual BinaryTree * | CreateTree () const |
Double_t | Fill (const std::vector< TMVA::Event * > &events, const std::vector< Int_t > &theVars, Int_t theType=-1) |
create the search tree from the event collection using ONLY the variables specified in "theVars" | |
Double_t | Fill (const std::vector< TMVA::Event * > &events, Int_t theType=-1) |
create the search tree from the events in a TTree using ALL the variables specified included in the Event | |
UInt_t | GetPeriode (void) const |
Double_t | GetSumOfWeights (Int_t theType) const |
return the sum of event (node) weights | |
Double_t | GetSumOfWeights (void) const |
return the sum of event (node) weights | |
void | Insert (const Event *) |
insert a new "event" in the binary tree | |
virtual TClass * | IsA () const |
Float_t | Max (Types::ESBType sb, UInt_t var) |
access to Maximum for signal and background for each variable | |
Float_t | Mean (Types::ESBType sb, UInt_t var) |
access to mean for signal and background for each variable | |
Float_t | Min (Types::ESBType sb, UInt_t var) |
access to Minimum for signal and background for each variable | |
void | NormalizeTree () |
Normalisation of tree. | |
Float_t | RMS (Types::ESBType sb, UInt_t var) |
access to RMS for signal and background for each variable | |
Float_t | RMS (UInt_t var) |
access to RMS for each variable | |
BinarySearchTreeNode * | Search (Event *event) const |
search the tree to find the node matching "event" | |
Double_t | SearchVolume (Volume *, std::vector< const TMVA::BinarySearchTreeNode * > *events=nullptr) |
search the whole tree and add up all weights of events that lie within the given volume | |
Int_t | SearchVolumeWithMaxLimit (TMVA::Volume *, std::vector< const TMVA::BinarySearchTreeNode * > *events=nullptr, Int_t=-1) |
recursively walk through the daughter nodes and add up all weights of events that lie within the given volume a maximum number of events can be given | |
void | SetNormalize (Bool_t norm) |
void | SetPeriode (Int_t p) |
virtual void | Streamer (TBuffer &) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TMVA::BinaryTree | |
BinaryTree (void) | |
constructor for a yet "empty" tree. Needs to be filled afterwards | |
virtual | ~BinaryTree () |
destructor (deletes the nodes and "events" if owned by the tree | |
virtual void * | AddXMLTo (void *parent) const |
add attributes to XML | |
UInt_t | CountNodes (Node *n=nullptr) |
return the number of nodes in the tree. (make a new count --> takes time) | |
Node * | GetLeftDaughter (Node *n) |
get left daughter node current node "n" | |
UInt_t | GetNNodes () const |
Node * | GetRightDaughter (Node *n) |
get right daughter node current node "n" | |
virtual Node * | GetRoot () const |
UInt_t | GetTotalTreeDepth () const |
virtual void | Print (std::ostream &os) const |
recursively print the tree | |
virtual void | Read (std::istream &istr, UInt_t tmva_Version_Code=262657) |
Read the binary tree from an input stream. | |
virtual void | ReadXML (void *node, UInt_t tmva_Version_Code=262657) |
read attributes from XML | |
void | SetRoot (Node *r) |
void | SetTotalTreeDepth (Int_t depth) |
void | SetTotalTreeDepth (Node *n=nullptr) |
descend a tree to find all its leaf nodes, fill max depth reached in the tree at the same time. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static BinarySearchTree * | CreateFromXML (void *node, UInt_t tmva_Version_Code=262657) |
re-create a new tree (decision tree or search tree) from XML | |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TMVA::BinaryTree | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Private Member Functions | |
void | DestroyNode (BinarySearchTreeNode *) |
void | Insert (const Event *, Node *) |
private internal function to insert a event (node) at the proper position | |
Bool_t | InVolume (const std::vector< Float_t > &, Volume *) const |
test if the data points are in the given volume | |
void | NormalizeTree (std::vector< std::pair< Double_t, const TMVA::Event * > >::iterator, std::vector< std::pair< Double_t, const TMVA::Event * > >::iterator, UInt_t) |
normalises the binary-search tree to reduce the branch length and hence speed up the search procedure (on average). | |
BinarySearchTreeNode * | Search (Event *, Node *) const |
Private, recursive, function for searching. | |
Double_t | SearchVolume (Node *, Volume *, Int_t, std::vector< const TMVA::BinarySearchTreeNode * > *events) |
recursively walk through the daughter nodes and add up all weights of events that lie within the given volume | |
Private Attributes | |
Bool_t | fCanNormalize |
the tree can be normalised | |
UInt_t | fCurrentDepth |
internal variable, counting the depth of the tree during insertion | |
std::vector< Float_t > | fMax [2] |
RMS for signal and background for each variable. | |
std::vector< Float_t > | fMeans [2] |
mean for signal and background for each variable | |
std::vector< Float_t > | fMin [2] |
RMS for signal and background for each variable. | |
Double_t | fNEventsW [2] |
Number of events per class, taking into account event weights. | |
std::vector< std::pair< Double_t, const TMVA::Event * > > | fNormalizeTreeTable |
UInt_t | fPeriod |
periode (number of event variables) | |
std::vector< Float_t > | fRMS [2] |
RMS for signal and background for each variable. | |
Bool_t | fStatisticsIsValid |
flag if last stat calculation is still valid, set to false if new node is insert | |
std::vector< Double_t > | fSum [2] |
Sum for signal and background for each variable. | |
Double_t | fSumOfWeights |
Total number of events (weighted) counted during filling should be the same as fNEventsW[0]+fNEventsW[1]. | |
std::vector< Double_t > | fSumSq [2] |
Squared Sum for signal and background for each variable. | |
Additional Inherited Members | |
Protected Member Functions inherited from TMVA::BinaryTree | |
void | DeleteNode (Node *) |
protected, recursive, function used by the class destructor and when Pruning | |
MsgLogger & | Log () const |
Protected Attributes inherited from TMVA::BinaryTree | |
UInt_t | fDepth |
maximal depth in tree reached | |
UInt_t | fNNodes |
total number of nodes in the tree (counted) | |
Node * | fRoot |
the root node of the tree the tree only has it's root node, the "daughters" are taken care of by the "node" properties of the "root" | |
#include <TMVA/BinarySearchTree.h>
TMVA::BinarySearchTree::BinarySearchTree | ( | void | ) |
default constructor
Definition at line 63 of file BinarySearchTree.cxx.
TMVA::BinarySearchTree::BinarySearchTree | ( | const BinarySearchTree & | b | ) |
copy constructor that creates a true copy, i.e. a completely independent tree
Definition at line 77 of file BinarySearchTree.cxx.
|
virtual |
destructor
Definition at line 92 of file BinarySearchTree.cxx.
void TMVA::BinarySearchTree::CalcStatistics | ( | TMVA::Node * | n = nullptr | ) |
calculate basic statistics (mean, rms for each variable)
Definition at line 430 of file BinarySearchTree.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 173 of file BinarySearchTree.h.
|
inlinevirtual |
Implements TMVA::BinaryTree.
Definition at line 81 of file BinarySearchTree.h.
void TMVA::BinarySearchTree::Clear | ( | TMVA::Node * | n = nullptr | ) |
clear nodes
Definition at line 354 of file BinarySearchTree.cxx.
|
static |
re-create a new tree (decision tree or search tree) from XML
Definition at line 103 of file BinarySearchTree.cxx.
Implements TMVA::BinaryTree.
Definition at line 78 of file BinarySearchTree.h.
|
inlinevirtual |
Implements TMVA::BinaryTree.
Definition at line 79 of file BinarySearchTree.h.
|
inlinestatic |
Definition at line 173 of file BinarySearchTree.h.
|
private |
Double_t TMVA::BinarySearchTree::Fill | ( | const std::vector< TMVA::Event * > & | events, |
const std::vector< Int_t > & | theVars, | ||
Int_t | theType = -1 |
||
) |
create the search tree from the event collection using ONLY the variables specified in "theVars"
Definition at line 249 of file BinarySearchTree.cxx.
Double_t TMVA::BinarySearchTree::Fill | ( | const std::vector< TMVA::Event * > & | events, |
Int_t | theType = -1 |
||
) |
create the search tree from the events in a TTree using ALL the variables specified included in the Event
Definition at line 260 of file BinarySearchTree.cxx.
|
inline |
Definition at line 100 of file BinarySearchTree.h.
return the sum of event (node) weights
Definition at line 233 of file BinarySearchTree.cxx.
Double_t TMVA::BinarySearchTree::GetSumOfWeights | ( | void | ) | const |
return the sum of event (node) weights
Definition at line 218 of file BinarySearchTree.cxx.
void TMVA::BinarySearchTree::Insert | ( | const Event * | event | ) |
insert a new "event" in the binary tree
Definition at line 114 of file BinarySearchTree.cxx.
private internal function to insert a event (node) at the proper position
Definition at line 147 of file BinarySearchTree.cxx.
|
private |
test if the data points are in the given volume
Definition at line 415 of file BinarySearchTree.cxx.
|
inlinevirtual |
Reimplemented from TMVA::BinaryTree.
Definition at line 173 of file BinarySearchTree.h.
|
inline |
access to Maximum for signal and background for each variable
Definition at line 128 of file BinarySearchTree.h.
|
inline |
access to mean for signal and background for each variable
Definition at line 119 of file BinarySearchTree.h.
|
inline |
access to Minimum for signal and background for each variable
Definition at line 125 of file BinarySearchTree.h.
void TMVA::BinarySearchTree::NormalizeTree | ( | ) |
Normalisation of tree.
Definition at line 343 of file BinarySearchTree.cxx.
|
private |
normalises the binary-search tree to reduce the branch length and hence speed up the search procedure (on average).
Definition at line 286 of file BinarySearchTree.cxx.
|
inline |
access to RMS for signal and background for each variable
Definition at line 122 of file BinarySearchTree.h.
access to RMS for each variable
Definition at line 133 of file BinarySearchTree.h.
|
private |
Private, recursive, function for searching.
Definition at line 201 of file BinarySearchTree.cxx.
TMVA::BinarySearchTreeNode * TMVA::BinarySearchTree::Search | ( | Event * | event | ) | const |
search the tree to find the node matching "event"
Definition at line 193 of file BinarySearchTree.cxx.
|
private |
recursively walk through the daughter nodes and add up all weights of events that lie within the given volume
Definition at line 380 of file BinarySearchTree.cxx.
Double_t TMVA::BinarySearchTree::SearchVolume | ( | Volume * | volume, |
std::vector< const TMVA::BinarySearchTreeNode * > * | events = nullptr |
||
) |
search the whole tree and add up all weights of events that lie within the given volume
Definition at line 370 of file BinarySearchTree.cxx.
Int_t TMVA::BinarySearchTree::SearchVolumeWithMaxLimit | ( | TMVA::Volume * | volume, |
std::vector< const TMVA::BinarySearchTreeNode * > * | events = nullptr , |
||
Int_t | max_points = -1 |
||
) |
recursively walk through the daughter nodes and add up all weights of events that lie within the given volume a maximum number of events can be given
Definition at line 495 of file BinarySearchTree.cxx.
|
inline |
Definition at line 135 of file BinarySearchTree.h.
|
inline |
Definition at line 97 of file BinarySearchTree.h.
|
virtual |
Reimplemented from TMVA::BinaryTree.
|
inline |
Definition at line 173 of file BinarySearchTree.h.
|
private |
the tree can be normalised
Definition at line 170 of file BinarySearchTree.h.
|
private |
internal variable, counting the depth of the tree during insertion
Definition at line 157 of file BinarySearchTree.h.
|
private |
RMS for signal and background for each variable.
Definition at line 163 of file BinarySearchTree.h.
|
private |
mean for signal and background for each variable
Definition at line 160 of file BinarySearchTree.h.
|
private |
RMS for signal and background for each variable.
Definition at line 162 of file BinarySearchTree.h.
|
private |
Number of events per class, taking into account event weights.
Definition at line 166 of file BinarySearchTree.h.
|
private |
Definition at line 171 of file BinarySearchTree.h.
|
private |
periode (number of event variables)
Definition at line 156 of file BinarySearchTree.h.
|
private |
RMS for signal and background for each variable.
Definition at line 161 of file BinarySearchTree.h.
|
private |
flag if last stat calculation is still valid, set to false if new node is insert
Definition at line 158 of file BinarySearchTree.h.
|
private |
Sum for signal and background for each variable.
Definition at line 164 of file BinarySearchTree.h.
|
private |
Total number of events (weighted) counted during filling should be the same as fNEventsW[0]+fNEventsW[1].
. used as a check
Definition at line 167 of file BinarySearchTree.h.
|
private |
Squared Sum for signal and background for each variable.
Definition at line 165 of file BinarySearchTree.h.