00001
00002 #ifndef MVAUtils_Node_H
00003 #define MVAUtils_Node_H
00004
00005 #include <vector>
00006 #include <cstdint>
00007
00008 namespace MVAUtils
00009 {
00017 class Node
00018 {
00019 public:
00020
00021 typedef int32_t index_t;
00022 typedef int8_t var_t;
00023
00028 Node(const int ivar, const float val, const index_t right):
00029 m_var(ivar), m_right(right), m_val(val) {}
00030
00031 bool IsLeaf() const { return m_var < 0; }
00032
00037 index_t GetNext(const float value, index_t index) const ;
00038
00040 var_t GetVar() const { return m_var; }
00041
00043 float GetVal() const { return m_val; }
00044
00045
00046
00049 index_t GetLeft(index_t index) const {return index + 1; }
00050
00053 index_t GetRight(index_t index) const {return index + m_right; }
00054
00056 void Print(index_t index) const;
00057
00058 private:
00059
00060 var_t m_var;
00061
00062
00063 int16_t m_right;
00064 float m_val;
00065 };
00066 }
00067
00068 #endif