CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
Node Class Reference

#include <Node.h>

Public Member Functions

void calcOptimumSplit ()
 
void filterEventsToDaughters ()
 
NodefilterEventToDaughter (Event *e)
 
Double_t getAvgError ()
 
Double_t getErrorReduction ()
 
std::vector< std::vector
< Event * > > & 
getEvents ()
 
Double_t getFitValue ()
 
NodegetLeftDaughter ()
 
std::string getName ()
 
Int_t getNumEvents ()
 
NodegetParent ()
 
NodegetRightDaughter ()
 
Double_t getSplitValue ()
 
Int_t getSplitVariable ()
 
Double_t getTotalError ()
 
void listEvents ()
 
 Node ()
 
 Node (std::string cName)
 
void setAvgError (Double_t sAvgError)
 
void setErrorReduction (Double_t sErrorReduction)
 
void setEvents (std::vector< std::vector< Event * > > &sEvents)
 
void setFitValue (Double_t sFitValue)
 
void setLeftDaughter (Node *sLeftDaughter)
 
void setName (std::string sName)
 
void setNumEvents (Int_t sNumEvents)
 
void setParent (Node *sParent)
 
void setRightDaughter (Node *sLeftDaughter)
 
void setSplitValue (Double_t sSplitValue)
 
void setSplitVariable (Int_t sSplitVar)
 
void setTotalError (Double_t sTotalError)
 
void theMiracleOfChildBirth ()
 
 ~Node ()
 

Private Attributes

Double_t avgError
 
Double_t errorReduction
 
std::vector< std::vector
< Event * > > 
events
 
Double_t fitValue
 
NodeleftDaughter
 
std::string name
 
Int_t numEvents
 
Nodeparent
 
NoderightDaughter
 
Double_t splitValue
 
Int_t splitVariable
 
Double_t totalError
 

Detailed Description

Definition at line 10 of file Node.h.

Constructor & Destructor Documentation

Node::Node ( )

Definition at line 29 of file Node.cc.

References avgError, errorReduction, leftDaughter, name, parent, rightDaughter, splitValue, splitVariable, and totalError.

Referenced by theMiracleOfChildBirth().

30 {
31  name = "";
32  leftDaughter = 0;
33  rightDaughter = 0;
34  parent = 0;
35  splitValue = -99;
36  splitVariable = -1;
37  avgError = -1;
38  totalError = -1;
39  errorReduction = -1;
40 }
std::string name
Definition: Node.h:60
Double_t totalError
Definition: Node.h:70
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63
Int_t splitVariable
Definition: Node.h:67
Double_t errorReduction
Definition: Node.h:69
Double_t splitValue
Definition: Node.h:66
Double_t avgError
Definition: Node.h:71
Node * parent
Definition: Node.h:64
Node::Node ( std::string  cName)

Definition at line 42 of file Node.cc.

References avgError, errorReduction, leftDaughter, name, parent, rightDaughter, splitValue, splitVariable, and totalError.

43 {
44  name = cName;
45  leftDaughter = 0;
46  rightDaughter = 0;
47  parent = 0;
48  splitValue = -99;
49  splitVariable = -1;
50  avgError = -1;
51  totalError = -1;
52  errorReduction = -1;
53 }
std::string name
Definition: Node.h:60
Double_t totalError
Definition: Node.h:70
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63
Int_t splitVariable
Definition: Node.h:67
Double_t errorReduction
Definition: Node.h:69
Double_t splitValue
Definition: Node.h:66
Double_t avgError
Definition: Node.h:71
Node * parent
Definition: Node.h:64
Node::~Node ( )

Definition at line 59 of file Node.cc.

References leftDaughter, and rightDaughter.

60 {
61 // Recursively delete all nodes in the tree.
62  delete leftDaughter;
63  delete rightDaughter;
64 }
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63

Member Function Documentation

void Node::calcOptimumSplit ( )

Definition at line 211 of file Node.cc.

References avgError, AlCaHLTBitMon_QueryRunRegistry::data, errorReduction, events, fitValue, i, numEvents, splitValue, splitVariable, SUM, filterCSVwithJSON::target, totalError, and findQualityFiles::v.

Referenced by Tree::buildTree().

212 {
213 // Determines the split variable and split point which would most reduce the error for the given node (region).
214 // In the process we calculate the fitValue and Error. The general aglorithm is based upon Luis Torgo's thesis.
215 // Check out the reference for a more in depth outline. This part is chapter 3.
216 
217  // Intialize some variables.
218  Double_t bestSplitValue = 0;
219  Int_t bestSplitVariable = -1;
220  Double_t bestErrorReduction = -1;
221 
222  Double_t SUM = 0;
223  Double_t SSUM = 0;
224  numEvents = events[0].size();
225 
226  Double_t candidateErrorReduction = -1;
227 
228  // Calculate the sum of the target variables and the sum of
229  // the target variables squared. We use these later.
230  for(unsigned int i=0; i<events[0].size(); i++)
231  {
232  Double_t target = events[0][i]->data[0];
233  SUM += target;
234  SSUM += target*target;
235  }
236 
237  unsigned int numVars = events.size();
238 
239  // Calculate the best split point for each variable
240  for(unsigned int variableToCheck = 1; variableToCheck < numVars; variableToCheck++)
241  {
242 
243  // The sum of the target variables in the left, right nodes
244  Double_t SUMleft = 0;
245  Double_t SUMright = SUM;
246 
247  // The number of events in the left, right nodes
248  Int_t nleft = 1;
249  Int_t nright = events[variableToCheck].size()-1;
250 
251  Int_t candidateSplitVariable = variableToCheck;
252 
253  std::vector<Event*>& v = events[variableToCheck];
254 
255  // Find the best split point for this variable
256  for(unsigned int i=1; i<v.size(); i++)
257  {
258  // As the candidate split point interates, the number of events in the
259  // left/right node increases/decreases and SUMleft/right increases/decreases.
260 
261  SUMleft = SUMleft + v[i-1]->data[0];
262  SUMright = SUMright - v[i-1]->data[0];
263 
264  // No need to check the split point if x on both sides is equal
265  if(v[i-1]->data[candidateSplitVariable] < v[i]->data[candidateSplitVariable])
266  {
267  // Finding the maximum error reduction for Least Squares boils down to maximizing
268  // the following statement.
269  candidateErrorReduction = SUMleft*SUMleft/nleft + SUMright*SUMright/nright - SUM*SUM/numEvents;
270 // std::cout << "candidateErrorReduction= " << candidateErrorReduction << std::endl << std::endl;
271 
272  // if the new candidate is better than the current best, then we have a new overall best.
273  if(candidateErrorReduction > bestErrorReduction)
274  {
275  bestErrorReduction = candidateErrorReduction;
276  bestSplitValue = (v[i-1]->data[candidateSplitVariable] + v[i]->data[candidateSplitVariable])/2;
277  bestSplitVariable = candidateSplitVariable;
278  }
279  }
280 
281  nright = nright-1;
282  nleft = nleft+1;
283  }
284  }
285 
286  // Store the information gained from our computations.
287 
288  // The fit value is the average for least squares.
289  fitValue = SUM/numEvents;
290 // std::cout << "fitValue= " << fitValue << std::endl;
291 
292  // n*[ <y^2>-k^2 ]
293  totalError = SSUM - SUM*SUM/numEvents;
294 // std::cout << "totalError= " << totalError << std::endl;
295 
296  // [ <y^2>-k^2 ]
298 // std::cout << "avgError= " << avgError << std::endl;
299 
300 
301  errorReduction = bestErrorReduction;
302 // std::cout << "errorReduction= " << errorReduction << std::endl;
303 
304  splitVariable = bestSplitVariable;
305 // std::cout << "splitVariable= " << splitVariable << std::endl;
306 
307  splitValue = bestSplitValue;
308 // std::cout << "splitValue= " << splitValue << std::endl;
309 
310  //if(bestSplitVariable == -1) std::cout << "splitVar = -1. numEvents = " << numEvents << ". errRed = " << errorReduction << std::endl;
311 }
int i
Definition: DBlmapReader.cc:9
Int_t numEvents
Definition: Node.h:74
Double_t totalError
Definition: Node.h:70
Double_t fitValue
Definition: Node.h:73
Int_t splitVariable
Definition: Node.h:67
Double_t errorReduction
Definition: Node.h:69
std::vector< std::vector< Event * > > events
Definition: Node.h:76
Double_t splitValue
Definition: Node.h:66
Double_t avgError
Definition: Node.h:71
#define SUM(A, B)
void Node::filterEventsToDaughters ( )

Definition at line 347 of file Node.cc.

References Event::data, alignCSCRings::e, events, getEvents(), i, j, cmsLHEtoEOSManager::l, leftDaughter, alignCSCRings::r, rightDaughter, setNumEvents(), splitValue, and splitVariable.

Referenced by Tree::buildTree(), and Tree::filterEventsRecursive().

348 {
349 // Keeping sorted copies of the event vectors allows us to save on
350 // computation time. That way we don't have to resort the events
351 // each time we calculate the splitpoint for a node. We sort them once.
352 // Every time we split a node, we simply filter them down correctly
353 // preserving the order. This way we have O(n) efficiency instead
354 // of O(nlogn) efficiency.
355 
356 // Anyways, this function takes events from the parent node
357 // and filters an event into the left or right daughter
358 // node depending on whether it is < or > the split point
359 // for the given split variable.
360 
361  Int_t sv = splitVariable;
362  Double_t sp = splitValue;
363 
364  Node* left = leftDaughter;
365  Node* right = rightDaughter;
366 
367  std::vector< std::vector<Event*> > l(events.size());
368  std::vector< std::vector<Event*> > r(events.size());
369 
370  for(unsigned int i=0; i<events.size(); i++)
371  {
372  for(unsigned int j=0; j<events[i].size(); j++)
373  {
374  Event* e = events[i][j];
375  if(e->data[sv] < sp) l[i].push_back(e);
376  if(e->data[sv] > sp) r[i].push_back(e);
377  }
378  }
379 
380  events = std::vector< std::vector<Event*> >();
381 
382  left->getEvents().swap(l);
383  right->getEvents().swap(r);
384 
385  // Set the number of events in the node.
386  left->setNumEvents(left->getEvents()[0].size());
387  right->setNumEvents(right->getEvents()[0].size());
388 }
int i
Definition: DBlmapReader.cc:9
Definition: Node.h:10
void setNumEvents(Int_t sNumEvents)
Definition: Node.cc:184
Definition: Event.h:16
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63
int j
Definition: DBlmapReader.cc:9
std::vector< std::vector< Event * > > & getEvents()
Definition: Node.cc:196
Int_t splitVariable
Definition: Node.h:67
std::vector< std::vector< Event * > > events
Definition: Node.h:76
Double_t splitValue
Definition: Node.h:66
Definition: sp.h:21
std::vector< Double_t > data
Definition: Event.h:30
Node * Node::filterEventToDaughter ( Event e)

Definition at line 392 of file Node.cc.

References Event::data, leftDaughter, rightDaughter, splitValue, and splitVariable.

Referenced by Tree::filterEventRecursive().

393 {
394 // Anyways, this function takes an event from the parent node
395 // and filters an event into the left or right daughter
396 // node depending on whether it is < or > the split point
397 // for the given split variable.
398 
399  Int_t sv = splitVariable;
400  Double_t sp = splitValue;
401 
402  Node* left = leftDaughter;
403  Node* right = rightDaughter;
404  Node* nextNode = 0;
405 
406  if(left ==0 || right ==0) return 0;
407 
408  if(e->data[sv] < sp) nextNode = left;
409  if(e->data[sv] > sp) nextNode = right;
410 
411  return nextNode;
412 }
Definition: Node.h:10
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63
Int_t splitVariable
Definition: Node.h:67
Double_t splitValue
Definition: Node.h:66
Definition: sp.h:21
std::vector< Double_t > data
Definition: Event.h:30
Double_t Node::getAvgError ( )

Definition at line 177 of file Node.cc.

References avgError.

178 {
179  return avgError;
180 }
Double_t avgError
Definition: Node.h:71
Double_t Node::getErrorReduction ( )

Definition at line 87 of file Node.cc.

References errorReduction.

Referenced by Tree::rankVariablesRecursive().

88 {
89  return errorReduction;
90 }
Double_t errorReduction
Definition: Node.h:69
std::vector< std::vector< Event * > > & Node::getEvents ( )

Definition at line 196 of file Node.cc.

References events.

Referenced by Tree::filterEvents(), and filterEventsToDaughters().

197 {
198  return events;
199 }
std::vector< std::vector< Event * > > events
Definition: Node.h:76
Double_t Node::getFitValue ( )

Definition at line 155 of file Node.cc.

References fitValue.

Referenced by Tree::addXMLAttributes(), and Forest::appendCorrection().

156 {
157  return fitValue;
158 }
Double_t fitValue
Definition: Node.h:73
Node * Node::getLeftDaughter ( )
std::string Node::getName ( void  )

Definition at line 75 of file Node.cc.

References name.

Referenced by plotting.Plot::draw(), and Tree::saveToXML().

76 {
77  return name;
78 }
std::string name
Definition: Node.h:60
Int_t Node::getNumEvents ( )

Definition at line 189 of file Node.cc.

References numEvents.

Referenced by Tree::calcError().

190 {
191  return numEvents;
192 }
Int_t numEvents
Definition: Node.h:74
Node * Node::getParent ( )

Definition at line 121 of file Node.cc.

References parent.

122 {
123  return parent;
124 }
Node * parent
Definition: Node.h:64
Node * Node::getRightDaughter ( )
Double_t Node::getSplitValue ( )

Definition at line 133 of file Node.cc.

References splitValue.

Referenced by Tree::addXMLAttributes(), and Tree::getSplitValuesRecursive().

134 {
135  return splitValue;
136 }
Double_t splitValue
Definition: Node.h:66
Int_t Node::getSplitVariable ( )

Definition at line 143 of file Node.cc.

References splitVariable.

Referenced by Tree::addXMLAttributes(), Tree::getSplitValuesRecursive(), and Tree::rankVariablesRecursive().

144 {
145  return splitVariable;
146 }
Int_t splitVariable
Definition: Node.h:67
Double_t Node::getTotalError ( )

Definition at line 167 of file Node.cc.

References totalError.

168 {
169  return totalError;
170 }
Double_t totalError
Definition: Node.h:70
void Node::listEvents ( )

Definition at line 315 of file Node.cc.

References gather_cfg::cout, events, i, and j.

316 {
317  std::cout << std::endl << "Listing Events... " << std::endl;
318 
319  for(unsigned int i=0; i < events.size(); i++)
320  {
321  std::cout << std::endl << "Variable " << i << " vector contents: " << std::endl;
322  for(unsigned int j=0; j < events[i].size(); j++)
323  {
324  events[i][j]->outputEvent();
325  }
326  std::cout << std::endl;
327  }
328 }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
std::vector< std::vector< Event * > > events
Definition: Node.h:76
tuple cout
Definition: gather_cfg.py:145
void Node::setAvgError ( Double_t  sAvgError)

Definition at line 172 of file Node.cc.

References avgError.

173 {
174  avgError = sAvgError;
175 }
Double_t avgError
Definition: Node.h:71
void Node::setErrorReduction ( Double_t  sErrorReduction)

Definition at line 82 of file Node.cc.

References errorReduction.

83 {
84  errorReduction = sErrorReduction;
85 }
Double_t errorReduction
Definition: Node.h:69
void Node::setEvents ( std::vector< std::vector< Event * > > &  sEvents)

Definition at line 201 of file Node.cc.

References events, and numEvents.

Referenced by Tree::Tree().

202 {
203  events = sEvents;
204  numEvents = events[0].size();
205 }
Int_t numEvents
Definition: Node.h:74
std::vector< std::vector< Event * > > events
Definition: Node.h:76
void Node::setFitValue ( Double_t  sFitValue)

Definition at line 150 of file Node.cc.

References fitValue.

Referenced by Tree::loadFromXMLRecursive().

151 {
152  fitValue = sFitValue;
153 }
Double_t fitValue
Definition: Node.h:73
void Node::setLeftDaughter ( Node sLeftDaughter)

Definition at line 94 of file Node.cc.

References leftDaughter.

95 {
96  leftDaughter = sLeftDaughter;
97 }
Node * leftDaughter
Definition: Node.h:62
void Node::setName ( std::string  sName)

Definition at line 70 of file Node.cc.

References name.

71 {
72  name = sName;
73 }
std::string name
Definition: Node.h:60
void Node::setNumEvents ( Int_t  sNumEvents)

Definition at line 184 of file Node.cc.

References numEvents.

Referenced by filterEventsToDaughters().

185 {
186  numEvents = sNumEvents;
187 }
Int_t numEvents
Definition: Node.h:74
void Node::setParent ( Node sParent)

Definition at line 116 of file Node.cc.

References parent.

Referenced by lumiQTWidget.LumiCanvas::__init__(), and theMiracleOfChildBirth().

117 {
118  parent = sParent;
119 }
Node * parent
Definition: Node.h:64
void Node::setRightDaughter ( Node sLeftDaughter)

Definition at line 104 of file Node.cc.

References rightDaughter.

105 {
106  rightDaughter = sRightDaughter;
107 }
Node * rightDaughter
Definition: Node.h:63
void Node::setSplitValue ( Double_t  sSplitValue)

Definition at line 128 of file Node.cc.

References splitValue.

Referenced by Tree::loadFromXMLRecursive().

129 {
130  splitValue = sSplitValue;
131 }
Double_t splitValue
Definition: Node.h:66
void Node::setSplitVariable ( Int_t  sSplitVar)

Definition at line 138 of file Node.cc.

References splitVariable.

Referenced by Tree::loadFromXMLRecursive().

139 {
140  splitVariable = sSplitVar;
141 }
Int_t splitVariable
Definition: Node.h:67
void Node::setTotalError ( Double_t  sTotalError)

Definition at line 162 of file Node.cc.

References totalError.

163 {
164  totalError = sTotalError;
165 }
Double_t totalError
Definition: Node.h:70
void Node::theMiracleOfChildBirth ( )

Definition at line 332 of file Node.cc.

References leftDaughter, name, Node(), rightDaughter, and setParent().

Referenced by Tree::buildTree(), and Tree::loadFromXMLRecursive().

333 {
334  // Create Daughter Nodes
335  Node* left = new Node(name + " left");
336  Node* right = new Node(name + " right");
337 
338  // Link the Nodes Appropriately
339  leftDaughter = left;
340  rightDaughter = right;
341  left->setParent(this);
342  right->setParent(this);
343 }
std::string name
Definition: Node.h:60
Definition: Node.h:10
Node()
Definition: Node.cc:29
Node * leftDaughter
Definition: Node.h:62
Node * rightDaughter
Definition: Node.h:63
void setParent(Node *sParent)
Definition: Node.cc:116

Member Data Documentation

Double_t Node::avgError
private

Definition at line 71 of file Node.h.

Referenced by calcOptimumSplit(), getAvgError(), Node(), and setAvgError().

Double_t Node::errorReduction
private

Definition at line 69 of file Node.h.

Referenced by calcOptimumSplit(), getErrorReduction(), Node(), and setErrorReduction().

std::vector< std::vector<Event*> > Node::events
private
Double_t Node::fitValue
private

Definition at line 73 of file Node.h.

Referenced by calcOptimumSplit(), getFitValue(), and setFitValue().

Node* Node::leftDaughter
private
std::string Node::name
private

Definition at line 60 of file Node.h.

Referenced by ElectronMVAID.ElectronMVAID::__call__(), dirstructure.Directory::__create_pie_image(), dqm_interfaces.DirID::__eq__(), dirstructure.Directory::__get_full_path(), dirstructure.Comparison::__get_img_name(), dataset.Dataset::__getDataType(), dataset.Dataset::__getFileInfoList(), cuy.divideElement::__init__(), cuy.plotElement::__init__(), cuy.additionElement::__init__(), cuy.superimposeElement::__init__(), cuy.graphElement::__init__(), dirstructure.Comparison::__make_image(), core.autovars.NTupleVariable::__repr__(), core.autovars.NTupleObjectType::__repr__(), core.autovars.NTupleObject::__repr__(), core.autovars.NTupleCollection::__repr__(), dirstructure.Directory::__repr__(), dqm_interfaces.DirID::__repr__(), dirstructure.Comparison::__repr__(), config.Service::__setattr__(), config.CFG::__str__(), counter.Counter::__str__(), average.Average::__str__(), core.autovars.NTupleObjectType::addSubObjects(), core.autovars.NTupleObjectType::addVariables(), core.autovars.NTupleObjectType::allVars(), dirstructure.Directory::calcStats(), validation.Sample::digest(), python.rootplot.utilities.Hist::divide(), python.rootplot.utilities.Hist::divide_wilson(), core.autovars.NTupleVariable::fillBranch(), core.autovars.NTupleObject::fillBranches(), core.autovars.NTupleCollection::fillBranchesScalar(), core.autovars.NTupleCollection::fillBranchesVector(), core.autovars.NTupleCollection::get_cpp_declaration(), core.autovars.NTupleCollection::get_cpp_wrapper_class(), core.autovars.NTupleCollection::get_py_wrapper_class(), utils.StatisticalTest::get_status(), getName(), production_tasks.Task::getname(), dataset.CMSDataset::getPrimaryDatasetEntries(), dataset.PrivateDataset::getPrimaryDatasetEntries(), VIDSelectorBase.VIDSelectorBase::initialize(), core.autovars.NTupleVariable::makeBranch(), core.autovars.NTupleObject::makeBranches(), core.autovars.NTupleCollection::makeBranchesScalar(), core.autovars.NTupleCollection::makeBranchesVector(), Node(), dirstructure.Directory::print_report(), dataset.BaseDataset::printInfo(), dataset.Dataset::printInfo(), production_tasks.MonitorJobs::run(), setName(), python.rootplot.utilities.Hist::TGraph(), python.rootplot.utilities.Hist::TH1F(), theMiracleOfChildBirth(), Vispa.Views.PropertyView.Property::valueChanged(), counter.Counter::write(), and average.Average::write().

Int_t Node::numEvents
private

Definition at line 74 of file Node.h.

Referenced by calcOptimumSplit(), getNumEvents(), setEvents(), and setNumEvents().

Node* Node::parent
private

Definition at line 64 of file Node.h.

Referenced by BeautifulSoup.PageElement::_invert(), Vispa.Gui.ConnectableWidget.ConnectableWidget::addMenuEntry(), Vispa.Views.LineDecayView.LineDecayContainer::applyFilter(), Vispa.Views.BoxDecayView.BoxDecayContainer::arrangeUsingRelations(), Vispa.Views.BoxDecayView.BoxDecayContainer::autolayoutAlgorithm(), Vispa.Gui.ZoomableScrollableWidgetOwner.ZoomableScrollableWidgetOwner::autosizeScrollArea(), Vispa.Views.BoxDecayView.BoxDecayContainer::autosizeScrollArea(), Vispa.Gui.PortWidget.PortWidget::connectionPoint(), Vispa.Main.StartupScreen.StartupScreen::createDescriptionWidget(), Vispa.Views.BoxDecayView.BoxDecayContainer::dataAccessor(), Vispa.Views.LineDecayView.LineDecayContainer::dataAccessor(), Vispa.Views.LineDecayView.DecayLine::dataAccessor(), Vispa.Views.LineDecayView.LineDecayContainer::delete(), Vispa.Views.LineDecayView.DecayNode::delete(), Vispa.Views.LineDecayView.DecayLine::delete(), Vispa.Gui.VispaWidget.VispaWidget::delete(), Vispa.Gui.VispaWidget.VispaWidget::dragWidget(), Vispa.Share.ImageExporter.ImageExporter::exportImageDialog(), Vispa.Views.LineDecayView.DecayLine::extendedSize(), argparse.HelpFormatter._Section::format_help(), python.rootplot.argparse.HelpFormatter._Section::format_help(), edmIntegrityCheck.PublishToFileSystem::get(), getParent(), Vispa.Gui.VispaWidget.VispaWidget::keyPressEvent(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.ConnectableWidget.ConnectableWidget::leaveEvent(), Vispa.Gui.PortWidget.PortWidget::moduleParent(), Vispa.Gui.WidgetContainer.WidgetContainer::mouseDoubleClickEvent(), Vispa.Gui.VispaWidget.VispaWidget::mouseDoubleClickEvent(), Vispa.Gui.PortConnection.PointToPointConnection::mousePressEvent(), Vispa.Gui.VispaWidget.VispaWidget::mousePressEvent(), Vispa.Views.LineDecayView.ParticleWidget::mousePressEvent(), Vispa.Views.LineDecayView.DecayNode::move(), Node(), Vispa.Views.LineDecayView.LineDecayContainer::noDecorationsMode(), Vispa.Views.LineDecayView.LineDecayContainer::operationId(), Vispa.Views.LineDecayView.DecayLine::paint(), Vispa.Gui.VispaWidget.VispaWidget::paintEvent(), Vispa.Gui.ConnectableWidget.ConnectableWidget::positionizeMenuWidget(), edmIntegrityCheck.PublishToFileSystem::publish(), Vispa.Views.LineDecayView.DecayLine::qtLineStyle(), Vispa.Views.WidgetView.WidgetView::restoreSelection(), Vispa.Views.WidgetView.WidgetView::select(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), setParent(), Vispa.Views.LineDecayView.LineDecayContainer::sizeHint(), Vispa.Views.LineDecayView.LineDecayContainer::tabController(), Vispa.Views.BoxDecayView.BoxDecayContainer::toggleCollapsed(), Vispa.Views.LineDecayView.DecayNode::unite(), Vispa.Views.PropertyView.PropertyView::valueChanged(), Vispa.Views.BoxDecayView.BoxDecayContainer::widgetByObject(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::widgetDoubleClicked(), and Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::widgetDragged().

Node* Node::rightDaughter
private
Double_t Node::splitValue
private
Int_t Node::splitVariable
private
Double_t Node::totalError
private

Definition at line 70 of file Node.h.

Referenced by calcOptimumSplit(), getTotalError(), Node(), and setTotalError().