CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
emtf::Node Class Reference

#include <Node.h>

Public Member Functions

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

Private Member Functions

 Node (const Node &)=delete
 
Nodeoperator= (const Node &)=delete
 

Private Attributes

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

Detailed Description

Definition at line 12 of file Node.h.

Constructor & Destructor Documentation

Node::Node ( )

Definition at line 32 of file Node.cc.

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

Referenced by theMiracleOfChildBirth().

33 {
34  name = "";
35  leftDaughter = nullptr;
36  rightDaughter = nullptr;
37  parent = nullptr;
38  splitValue = -99;
39  splitVariable = -1;
40  avgError = -1;
41  totalError = -1;
42  errorReduction = -1;
43 }
Node * leftDaughter
Definition: Node.h:69
int splitVariable
Definition: Node.h:74
std::string name
Definition: Node.h:67
Node * parent
Definition: Node.h:71
double errorReduction
Definition: Node.h:76
double splitValue
Definition: Node.h:73
Node * rightDaughter
Definition: Node.h:70
double avgError
Definition: Node.h:78
double totalError
Definition: Node.h:77
Node::Node ( std::string  cName)

Definition at line 45 of file Node.cc.

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

46 {
47  name = cName;
48  leftDaughter = nullptr;
49  rightDaughter = nullptr;
50  parent = nullptr;
51  splitValue = -99;
52  splitVariable = -1;
53  avgError = -1;
54  totalError = -1;
55  errorReduction = -1;
56 }
Node * leftDaughter
Definition: Node.h:69
int splitVariable
Definition: Node.h:74
std::string name
Definition: Node.h:67
Node * parent
Definition: Node.h:71
double errorReduction
Definition: Node.h:76
double splitValue
Definition: Node.h:73
Node * rightDaughter
Definition: Node.h:70
double avgError
Definition: Node.h:78
double totalError
Definition: Node.h:77
Node::~Node ( )

Definition at line 62 of file Node.cc.

References leftDaughter, and rightDaughter.

63 {
64 // Recursively delete all nodes in the tree.
65  if(leftDaughter) delete leftDaughter;
66  if(rightDaughter) delete rightDaughter;
67 }
Node * leftDaughter
Definition: Node.h:69
Node * rightDaughter
Definition: Node.h:70
emtf::Node::Node ( Node &&  )
default
emtf::Node::Node ( const Node )
privatedelete

Member Function Documentation

void Node::calcOptimumSplit ( )

Definition at line 214 of file Node.cc.

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

Referenced by emtf::Tree::buildTree().

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

Definition at line 350 of file Node.cc.

References emtf::Event::data, MillePedeFileConverter_cfg::e, events, getEvents(), mps_fire::i, checklumidiff::l, leftDaughter, alignCSCRings::r, rightDaughter, setNumEvents(), splitValue, splitVariable, and pfDeepBoostedJetPreprocessParams_cfi::sv.

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

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

Definition at line 395 of file Node.cc.

References emtf::Event::data, leftDaughter, rightDaughter, splitValue, splitVariable, and pfDeepBoostedJetPreprocessParams_cfi::sv.

Referenced by emtf::Tree::filterEventRecursive().

396 {
397 // Anyways, this function takes an event from the parent node
398 // and filters an event into the left or right daughter
399 // node depending on whether it is < or > the split point
400 // for the given split variable.
401 
402  int sv = splitVariable;
403  double sp = splitValue;
404 
405  Node* left = leftDaughter;
406  Node* right = rightDaughter;
407  Node* nextNode = nullptr;
408 
409  if(left ==nullptr || right ==nullptr) return nullptr;
410 
411  if(e->data[sv] < sp) nextNode = left;
412  if(e->data[sv] >= sp) nextNode = right;
413 
414  return nextNode;
415 }
Node * leftDaughter
Definition: Node.h:69
int splitVariable
Definition: Node.h:74
double splitValue
Definition: Node.h:73
Node * rightDaughter
Definition: Node.h:70
std::vector< double > data
Definition: Event.h:31
double Node::getAvgError ( )

Definition at line 180 of file Node.cc.

References avgError.

Referenced by emtf::Tree::copyFrom().

181 {
182  return avgError;
183 }
double avgError
Definition: Node.h:78
double Node::getErrorReduction ( )

Definition at line 90 of file Node.cc.

References errorReduction.

Referenced by emtf::Tree::copyFrom(), and emtf::Tree::rankVariablesRecursive().

91 {
92  return errorReduction;
93 }
double errorReduction
Definition: Node.h:76
std::vector< std::vector< Event * > > & Node::getEvents ( )

Definition at line 199 of file Node.cc.

References events.

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

200 {
201  return events;
202 }
std::vector< std::vector< Event * > > events
Definition: Node.h:83
double Node::getFitValue ( )

Definition at line 158 of file Node.cc.

References fitValue.

Referenced by emtf::Tree::addXMLAttributes(), emtf::Forest::appendCorrection(), emtf::Tree::copyFrom(), and L1TMuonEndCapForestESProducer::traverse().

159 {
160  return fitValue;
161 }
double fitValue
Definition: Node.h:80
Node * Node::getLeftDaughter ( )
std::string Node::getName ( void  )

Definition at line 78 of file Node.cc.

References name.

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

79 {
80  return name;
81 }
std::string name
Definition: Node.h:67
int Node::getNumEvents ( )

Definition at line 192 of file Node.cc.

References numEvents.

Referenced by emtf::Tree::calcError(), and emtf::Tree::copyFrom().

193 {
194  return numEvents;
195 }
int numEvents
Definition: Node.h:81
Node * Node::getParent ( )

Definition at line 124 of file Node.cc.

References parent.

125 {
126  return parent;
127 }
Node * parent
Definition: Node.h:71
Node * Node::getRightDaughter ( )
double Node::getSplitValue ( )

Definition at line 136 of file Node.cc.

References splitValue.

Referenced by emtf::Tree::addXMLAttributes(), emtf::Tree::copyFrom(), emtf::Tree::getSplitValuesRecursive(), and L1TMuonEndCapForestESProducer::traverse().

137 {
138  return splitValue;
139 }
double splitValue
Definition: Node.h:73
int Node::getSplitVariable ( )
double Node::getTotalError ( )

Definition at line 170 of file Node.cc.

References totalError.

Referenced by emtf::Tree::copyFrom().

171 {
172  return totalError;
173 }
double totalError
Definition: Node.h:77
void Node::listEvents ( )

Definition at line 318 of file Node.cc.

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

319 {
320  std::cout << std::endl << "Listing Events... " << std::endl;
321 
322  for(unsigned int i=0; i < events.size(); i++)
323  {
324  std::cout << std::endl << "Variable " << i << " vector contents: " << std::endl;
325  for(unsigned int j=0; j < events[i].size(); j++)
326  {
327  events[i][j]->outputEvent();
328  }
329  std::cout << std::endl;
330  }
331 }
std::vector< std::vector< Event * > > events
Definition: Node.h:83
Node& emtf::Node::operator= ( const Node )
privatedelete
void Node::setAvgError ( double  sAvgError)

Definition at line 175 of file Node.cc.

References avgError.

176 {
177  avgError = sAvgError;
178 }
double avgError
Definition: Node.h:78
void Node::setErrorReduction ( double  sErrorReduction)

Definition at line 85 of file Node.cc.

References errorReduction.

86 {
87  errorReduction = sErrorReduction;
88 }
double errorReduction
Definition: Node.h:76
void Node::setEvents ( std::vector< std::vector< Event * > > &  sEvents)

Definition at line 204 of file Node.cc.

References events, and numEvents.

Referenced by emtf::Tree::Tree().

205 {
206  events = sEvents;
207  numEvents = events[0].size();
208 }
int numEvents
Definition: Node.h:81
std::vector< std::vector< Event * > > events
Definition: Node.h:83
void Node::setFitValue ( double  sFitValue)

Definition at line 153 of file Node.cc.

References fitValue.

Referenced by emtf::Tree::loadFromCondPayloadRecursive(), and emtf::Tree::loadFromXMLRecursive().

154 {
155  fitValue = sFitValue;
156 }
double fitValue
Definition: Node.h:80
void Node::setLeftDaughter ( Node sLeftDaughter)

Definition at line 97 of file Node.cc.

References leftDaughter.

98 {
99  leftDaughter = sLeftDaughter;
100 }
Node * leftDaughter
Definition: Node.h:69
void Node::setName ( std::string  sName)

Definition at line 73 of file Node.cc.

References name.

74 {
75  name = sName;
76 }
std::string name
Definition: Node.h:67
void Node::setNumEvents ( int  sNumEvents)

Definition at line 187 of file Node.cc.

References numEvents.

Referenced by filterEventsToDaughters().

188 {
189  numEvents = sNumEvents;
190 }
int numEvents
Definition: Node.h:81
void Node::setParent ( Node sParent)

Definition at line 119 of file Node.cc.

References parent.

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

120 {
121  parent = sParent;
122 }
Node * parent
Definition: Node.h:71
void Node::setRightDaughter ( Node sLeftDaughter)

Definition at line 107 of file Node.cc.

References rightDaughter.

108 {
109  rightDaughter = sRightDaughter;
110 }
Node * rightDaughter
Definition: Node.h:70
void Node::setSplitValue ( double  sSplitValue)

Definition at line 131 of file Node.cc.

References splitValue.

Referenced by emtf::Tree::loadFromCondPayloadRecursive(), and emtf::Tree::loadFromXMLRecursive().

132 {
133  splitValue = sSplitValue;
134 }
double splitValue
Definition: Node.h:73
void Node::setSplitVariable ( int  sSplitVar)

Definition at line 141 of file Node.cc.

References splitVariable.

Referenced by emtf::Tree::loadFromCondPayloadRecursive(), and emtf::Tree::loadFromXMLRecursive().

142 {
143  splitVariable = sSplitVar;
144 }
int splitVariable
Definition: Node.h:74
void Node::setTotalError ( double  sTotalError)

Definition at line 165 of file Node.cc.

References totalError.

166 {
167  totalError = sTotalError;
168 }
double totalError
Definition: Node.h:77
void Node::theMiracleOfChildBirth ( )

Definition at line 335 of file Node.cc.

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

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

336 {
337  // Create Daughter Nodes
338  Node* left = new Node(name + " left");
339  Node* right = new Node(name + " right");
340 
341  // Link the Nodes Appropriately
342  leftDaughter = left;
343  rightDaughter = right;
344  left->setParent(this);
345  right->setParent(this);
346 }
Node * leftDaughter
Definition: Node.h:69
Node()
Definition: Node.cc:32
std::string name
Definition: Node.h:67
Node * rightDaughter
Definition: Node.h:70
void setParent(Node *sParent)
Definition: Node.cc:119

Member Data Documentation

double emtf::Node::avgError
private

Definition at line 78 of file Node.h.

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

double emtf::Node::errorReduction
private

Definition at line 76 of file Node.h.

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

std::vector< std::vector<Event*> > emtf::Node::events
private
double emtf::Node::fitValue
private

Definition at line 80 of file Node.h.

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

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

Definition at line 67 of file Node.h.

Referenced by ElectronMVAID.ElectronMVAID::__call__(), FWLite.ElectronMVAID::__call__(), dirstructure.Directory::__create_pie_image(), DisplayManager.DisplayManager::__del__(), dqm_interfaces.DirID::__eq__(), dirstructure.Directory::__get_full_path(), dirstructure.Comparison::__get_img_name(), dataset.Dataset::__getDataType(), dataset.Dataset::__getFileInfoList(), 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__(), FWLite.WorkingPoints::_reformat_cut_definitions(), 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(), DisplayManager.DisplayManager::Draw(), 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 emtf::Node::numEvents
private

Definition at line 81 of file Node.h.

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

Node* emtf::Node::parent
private

Definition at line 71 of file Node.h.

Referenced by 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(), 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* emtf::Node::rightDaughter
private
double emtf::Node::splitValue
private
int emtf::Node::splitVariable
private
double emtf::Node::totalError
private

Definition at line 77 of file Node.h.

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