CMS 3D CMS Logo

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

#include <Node.h>

Public Member Functions

void calcOptimumSplit ()
 
void filterEventsToDaughters ()
 
NodefilterEventToDaughter (emtf::Event *e)
 
Double_t getAvgError ()
 
Double_t getErrorReduction ()
 
std::vector< std::vector< emtf::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< emtf::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< emtf::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 11 of file Node.h.

Constructor & Destructor Documentation

Node::Node ( )

Definition at line 31 of file Node.cc.

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

Referenced by theMiracleOfChildBirth().

32 {
33  name = "";
34  leftDaughter = 0;
35  rightDaughter = 0;
36  parent = 0;
37  splitValue = -99;
38  splitVariable = -1;
39  avgError = -1;
40  totalError = -1;
41  errorReduction = -1;
42 }
Node * leftDaughter
Definition: Node.h:63
std::string name
Definition: Node.h:61
Node * parent
Definition: Node.h:65
Double_t totalError
Definition: Node.h:71
Node * rightDaughter
Definition: Node.h:64
Double_t avgError
Definition: Node.h:72
Int_t splitVariable
Definition: Node.h:68
Double_t errorReduction
Definition: Node.h:70
Double_t splitValue
Definition: Node.h:67
Node::Node ( std::string  cName)

Definition at line 44 of file Node.cc.

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

45 {
46  name = cName;
47  leftDaughter = 0;
48  rightDaughter = 0;
49  parent = 0;
50  splitValue = -99;
51  splitVariable = -1;
52  avgError = -1;
53  totalError = -1;
54  errorReduction = -1;
55 }
Node * leftDaughter
Definition: Node.h:63
std::string name
Definition: Node.h:61
Node * parent
Definition: Node.h:65
Double_t totalError
Definition: Node.h:71
Node * rightDaughter
Definition: Node.h:64
Double_t avgError
Definition: Node.h:72
Int_t splitVariable
Definition: Node.h:68
Double_t errorReduction
Definition: Node.h:70
Double_t splitValue
Definition: Node.h:67
Node::~Node ( )

Definition at line 61 of file Node.cc.

References leftDaughter, and rightDaughter.

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

Member Function Documentation

void Node::calcOptimumSplit ( )

Definition at line 213 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().

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

Definition at line 349 of file Node.cc.

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

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

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

Definition at line 394 of file Node.cc.

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

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

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

Definition at line 179 of file Node.cc.

References avgError.

180 {
181  return avgError;
182 }
Double_t avgError
Definition: Node.h:72
Double_t Node::getErrorReduction ( )

Definition at line 89 of file Node.cc.

References errorReduction.

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

90 {
91  return errorReduction;
92 }
Double_t errorReduction
Definition: Node.h:70
std::vector< std::vector< Event * > > & Node::getEvents ( )

Definition at line 198 of file Node.cc.

References events.

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

199 {
200  return events;
201 }
std::vector< std::vector< emtf::Event * > > events
Definition: Node.h:77
Double_t Node::getFitValue ( )

Definition at line 157 of file Node.cc.

References fitValue.

Referenced by emtf::Tree::addXMLAttributes(), and L1TForest::appendCorrection().

158 {
159  return fitValue;
160 }
Double_t fitValue
Definition: Node.h:74
Node * Node::getLeftDaughter ( )
std::string Node::getName ( void  )

Definition at line 77 of file Node.cc.

References name.

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

78 {
79  return name;
80 }
std::string name
Definition: Node.h:61
Int_t Node::getNumEvents ( )

Definition at line 191 of file Node.cc.

References numEvents.

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

192 {
193  return numEvents;
194 }
Int_t numEvents
Definition: Node.h:75
Node * Node::getParent ( )

Definition at line 123 of file Node.cc.

References parent.

124 {
125  return parent;
126 }
Node * parent
Definition: Node.h:65
Node * Node::getRightDaughter ( )
Double_t Node::getSplitValue ( )

Definition at line 135 of file Node.cc.

References splitValue.

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

136 {
137  return splitValue;
138 }
Double_t splitValue
Definition: Node.h:67
Int_t Node::getSplitVariable ( )

Definition at line 145 of file Node.cc.

References splitVariable.

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

146 {
147  return splitVariable;
148 }
Int_t splitVariable
Definition: Node.h:68
Double_t Node::getTotalError ( )

Definition at line 169 of file Node.cc.

References totalError.

170 {
171  return totalError;
172 }
Double_t totalError
Definition: Node.h:71
void Node::listEvents ( )

Definition at line 317 of file Node.cc.

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

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

Definition at line 174 of file Node.cc.

References avgError.

175 {
176  avgError = sAvgError;
177 }
Double_t avgError
Definition: Node.h:72
void Node::setErrorReduction ( Double_t  sErrorReduction)

Definition at line 84 of file Node.cc.

References errorReduction.

85 {
86  errorReduction = sErrorReduction;
87 }
Double_t errorReduction
Definition: Node.h:70
void Node::setEvents ( std::vector< std::vector< emtf::Event * > > &  sEvents)

Definition at line 203 of file Node.cc.

References events, and numEvents.

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

204 {
205  events = sEvents;
206  numEvents = events[0].size();
207 }
std::vector< std::vector< emtf::Event * > > events
Definition: Node.h:77
Int_t numEvents
Definition: Node.h:75
void Node::setFitValue ( Double_t  sFitValue)

Definition at line 152 of file Node.cc.

References fitValue.

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

153 {
154  fitValue = sFitValue;
155 }
Double_t fitValue
Definition: Node.h:74
void Node::setLeftDaughter ( Node sLeftDaughter)

Definition at line 96 of file Node.cc.

References leftDaughter.

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

Definition at line 72 of file Node.cc.

References name.

73 {
74  name = sName;
75 }
std::string name
Definition: Node.h:61
void Node::setNumEvents ( Int_t  sNumEvents)

Definition at line 186 of file Node.cc.

References numEvents.

Referenced by filterEventsToDaughters().

187 {
188  numEvents = sNumEvents;
189 }
Int_t numEvents
Definition: Node.h:75
void Node::setParent ( Node sParent)

Definition at line 118 of file Node.cc.

References parent.

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

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

Definition at line 106 of file Node.cc.

References rightDaughter.

107 {
108  rightDaughter = sRightDaughter;
109 }
Node * rightDaughter
Definition: Node.h:64
void Node::setSplitValue ( Double_t  sSplitValue)

Definition at line 130 of file Node.cc.

References splitValue.

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

131 {
132  splitValue = sSplitValue;
133 }
Double_t splitValue
Definition: Node.h:67
void Node::setSplitVariable ( Int_t  sSplitVar)

Definition at line 140 of file Node.cc.

References splitVariable.

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

141 {
142  splitVariable = sSplitVar;
143 }
Int_t splitVariable
Definition: Node.h:68
void Node::setTotalError ( Double_t  sTotalError)

Definition at line 164 of file Node.cc.

References totalError.

165 {
166  totalError = sTotalError;
167 }
Double_t totalError
Definition: Node.h:71
void Node::theMiracleOfChildBirth ( )

Definition at line 334 of file Node.cc.

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

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

335 {
336  // Create Daughter Nodes
337  Node* left = new Node(name + " left");
338  Node* right = new Node(name + " right");
339 
340  // Link the Nodes Appropriately
341  leftDaughter = left;
342  rightDaughter = right;
343  left->setParent(this);
344  right->setParent(this);
345 }
Node * leftDaughter
Definition: Node.h:63
Node()
Definition: Node.cc:31
std::string name
Definition: Node.h:61
Node * rightDaughter
Definition: Node.h:64
void setParent(Node *sParent)
Definition: Node.cc:118

Member Data Documentation

Double_t emtf::Node::avgError
private

Definition at line 72 of file Node.h.

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

Double_t emtf::Node::errorReduction
private

Definition at line 70 of file Node.h.

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

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

Definition at line 74 of file Node.h.

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

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

Definition at line 61 of file Node.h.

Referenced by ElectronMVAID.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__(), 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_t emtf::Node::numEvents
private

Definition at line 75 of file Node.h.

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

Node* emtf::Node::parent
private

Definition at line 65 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(), 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* emtf::Node::rightDaughter
private
Double_t emtf::Node::splitValue
private
Int_t emtf::Node::splitVariable
private
Double_t emtf::Node::totalError
private

Definition at line 71 of file Node.h.

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