119     fCutValue( 
n.fCutValue ),
 
  120     fCutType ( 
n.fCutType ),
 
  122     fResponse( 
n.fResponse ),
 
  124     fNodeType( 
n.fNodeType ),
 
  125     fPurity  ( 
n.fPurity),
 
  126     fIsTerminalNode( 
n.fIsTerminalNode )
 
 
  159   if (GetNFisherCoeff() == 0){
 
  161      result = (
e.GetValueFast(this->GetSelector()) >= this->GetCutValue() );
 
 
  181   if (!this->GoesRight(
e)) 
return kTRUE;
 
 
  193   if ( ( this->GetNSigEvents() + this->GetNBkgEvents() ) > 0 ) {
 
  194      fPurity = this->GetNSigEvents() / ( this->GetNSigEvents() + this->GetNBkgEvents());
 
  197      Log() << kINFO << 
"Zero events in purity calculation , return purity=0.5" << 
Endl;
 
  198      std::ostringstream 
oss;
 
 
  211   os << 
"< ***  "  << std::endl;
 
  212   os << 
" d: "     << this->GetDepth()
 
  213      << std::setprecision(6)
 
  214      << 
"NCoef: "  << this->GetNFisherCoeff();
 
  215   for (
Int_t i=0; i< (
Int_t) this->GetNFisherCoeff(); i++) { os << 
"fC"<<i<<
": " << this->GetFisherCoeff(i);}
 
  216   os << 
" ivar: "  << this->GetSelector()
 
  217      << 
" cut: "   << this->GetCutValue()
 
  218      << 
" cType: " << this->GetCutType()
 
  219      << 
" s: "     << this->GetNSigEvents()
 
  220      << 
" b: "     << this->GetNBkgEvents()
 
  221      << 
" nEv: "   << this->GetNEvents()
 
  222      << 
" suw: "   << this->GetNSigEvents_unweighted()
 
  223      << 
" buw: "   << this->GetNBkgEvents_unweighted()
 
  224      << 
" nEvuw: " << this->GetNEvents_unweighted()
 
  225      << 
" sepI: "  << this->GetSeparationIndex()
 
  226      << 
" sepG: "  << this->GetSeparationGain()
 
  227      << 
" nType: " << this->GetNodeType()
 
  230   os << 
"My address is " << (
Longptr_t)
this << 
", ";
 
  231   if (this->GetParent() != 
NULL) os << 
" parent at addr: "         << (
Longptr_t)this->GetParent();
 
  232   if (this->GetLeft()   != 
NULL) os << 
" left daughter at addr: "  << (
Longptr_t)this->GetLeft();
 
  233   if (this->GetRight()  != 
NULL) os << 
" right daughter at addr: " << (
Longptr_t)this->GetRight();
 
  235   os << 
" **** > " << std::endl;
 
 
  243   os << this->GetDepth()
 
  244      << std::setprecision(6)
 
  245      << 
" "         << this->GetPos()
 
  246      << 
"NCoef: "   << this->GetNFisherCoeff();
 
  247   for (
Int_t i=0; i< (
Int_t) this->GetNFisherCoeff(); i++) {os << 
"fC"<<i<<
": " << this->GetFisherCoeff(i);}
 
  248   os << 
" ivar: "   << this->GetSelector()
 
  249      << 
" cut: "    << this->GetCutValue()
 
  250      << 
" cType: "  << this->GetCutType()
 
  251      << 
" s: "      << this->GetNSigEvents()
 
  252      << 
" b: "      << this->GetNBkgEvents()
 
  253      << 
" nEv: "    << this->GetNEvents()
 
  254      << 
" suw: "    << this->GetNSigEvents_unweighted()
 
  255      << 
" buw: "    << this->GetNBkgEvents_unweighted()
 
  256      << 
" nEvuw: "  << this->GetNEvents_unweighted()
 
  257      << 
" sepI: "   << this->GetSeparationIndex()
 
  258      << 
" sepG: "   << this->GetSeparationGain()
 
  259      << 
" res: "    << this->GetResponse()
 
  260      << 
" rms: "    << this->GetRMS()
 
  261      << 
" nType: "  << this->GetNodeType();
 
  262   if (this->GetCC() > 10000000000000.) os << 
" CC: " << 100000. << std::endl;
 
  263   else os << 
" CC: "  << this->GetCC() << std::endl;
 
  265   if (this->GetLeft()  != 
NULL) this->GetLeft() ->PrintRec(os);
 
  266   if (this->GetRight() != 
NULL) this->GetRight()->PrintRec(os);
 
 
  287   this->SetDepth(
depth);
 
  323   this->SetCutValue(
cutVal);
 
  327      this->SetNSigEvents(
nsig);
 
  328      this->SetNBkgEvents(
nbkg);
 
  329      this->SetNEvents(
nEv);
 
 
  351   SetNSigEvents_unweighted(0);
 
  352   SetNBkgEvents_unweighted(0);
 
  353   SetNEvents_unweighted(0);
 
  354   SetSeparationIndex(-1);
 
  355   SetSeparationGain(-1);
 
  358   if (this->GetLeft()  != 
NULL) ((
DecisionTreeNode*)(this->GetLeft()))->ClearNodeAndAllDaughters();
 
  359   if (this->GetRight() != 
NULL) ((
DecisionTreeNode*)(this->GetRight()))->ClearNodeAndAllDaughters();
 
 
  367   SetNBValidation( 0.0 );
 
  368   SetNSValidation( 0.0 );
 
  372   if(GetLeft() != 
NULL && GetRight() != 
NULL) {
 
  373      GetLeft()->ResetValidationData();
 
  374      GetRight()->ResetValidationData();
 
 
  382   os << 
"----------------------" << std::endl
 
  383      << 
"|~T_t| " << GetNTerminal() << std::endl
 
  384      << 
"R(t): " << GetNodeR() << std::endl
 
  385      << 
"R(T_t): " << GetSubTreeR() << std::endl
 
  386      << 
"g(t): " << GetAlpha() << std::endl
 
  387      << 
"G(t): "  << GetAlphaMinSubtree() << std::endl;
 
 
  394   this->PrintPrune(os);
 
  395   if(this->GetLeft() != 
NULL && this->GetRight() != 
NULL) {
 
 
  406   if (fTrainInfo) fTrainInfo->fCC = 
cc;
 
  407   else Log() << kFATAL << 
"call to SetCC without trainingInfo" << 
Endl;
 
 
  417   else Log() << kFATAL << 
"You asked for Min of the event sample in node for variable " 
  418              << 
ivar << 
" that is out of range" << 
Endl;
 
 
  429   else Log() << kFATAL << 
"You asked for Max of the event sample in node for variable " 
  430              << 
ivar << 
" that is out of range" << 
Endl;
 
 
  440      if ( 
ivar >= fTrainInfo->fSampleMin.size()) fTrainInfo->fSampleMin.resize(
ivar+1);
 
 
  450   if( ! fTrainInfo ) 
return;
 
  451   if ( 
ivar >= fTrainInfo->fSampleMax.size() )
 
  452      fTrainInfo->fSampleMax.resize(
ivar+1);
 
 
  463   if (
gTools().HasAttr(node, 
"NCoef")){
 
  465      this->SetNFisherCoeff(
nCoef);
 
  467      for (
Int_t i=0; i< (
Int_t) this->GetNFisherCoeff(); i++) {
 
  469         this->SetFisherCoeff(i,tmp);
 
  472      this->SetNFisherCoeff(0);
 
  480   if( 
gTools().HasAttr(node, 
"purity") ) {
 
 
  498   for (
Int_t i=0; i< (
Int_t) this->GetNFisherCoeff(); i++)
 
 
  520   if ((
Int_t) fFisherCoeff.size()<
ivar+1) fFisherCoeff.resize(
ivar+1) ;
 
 
  554   fgTmva_Version_Code = code;
 
 
  562   return fgTmva_Version_Code;
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
 
void Print(Option_t *option="") const override
 
#define TMVA_VERSION(a, b, c)
 
virtual void AddContentToNode(std::stringstream &s) const
adding attributes to tree node (well, was used in BinarySearchTree, and somehow I guess someone progr...
 
virtual void ReadAttributes(void *node, UInt_t tmva_Version_Code=262657)
 
void SetCC(Double_t cc)
Set CC, if traininfo defined, otherwise Log Fatal.
 
DTNodeTrainingInfo * fTrainInfo
 
virtual ~DecisionTreeNode()
destructor
 
static void SetIsTraining(bool on)
 
void PrintPrune(std::ostream &os) const
printout of the node (can be read in with ReadDataRecord)
 
void PrintRecPrune(std::ostream &os) const
recursive printout of the node and its daughters
 
void SetFisherCoeff(Int_t ivar, Double_t coeff)
set fisher coefficients
 
static UInt_t fgTmva_Version_Code
set only when read from weightfile
 
virtual void SetLeft(Node *l)
 
void SetSampleMax(UInt_t ivar, Float_t xmax)
set the maximum of variable ivar from the training sample that pass/end up in this node,...
 
void ClearNodeAndAllDaughters()
clear the nodes (their S/N, Nevents etc), just keep the structure of the tree
 
virtual Bool_t GoesLeft(const Event &) const
test event if it descends the tree at this node to the left
 
static void SetTmvaVersionCode(UInt_t code)
 
virtual void ReadContent(std::stringstream &s)
reading attributes from tree node (well, was used in BinarySearchTree, and somehow I guess someone pr...
 
void SetPurity(void)
return the S/(S+B) (purity) for the node REM: even if nodes with purity 0.01 are very PURE background...
 
virtual void Print(std::ostream &os) const
print the node
 
virtual Bool_t GoesRight(const Event &) const
test event if it descends the tree at this node to the right
 
DecisionTreeNode()
constructor of an essentially "empty" node floating in space
 
virtual void AddAttributesToNode(void *node) const
add attribute to xml
 
virtual Bool_t ReadDataRecord(std::istream &is, UInt_t tmva_Version_Code=262657)
Read the data block.
 
static UInt_t GetTmvaVersionCode()
 
void ResetValidationData()
temporary stored node values (number of events, etc.) that originate not from the training but from t...
 
virtual void PrintRec(std::ostream &os) const
recursively print the node and its daughters (--> print the 'tree')
 
static bool fgIsTraining
static variable to flag training phase in which we need fTrainInfo
 
virtual void SetRight(Node *r)
 
virtual void SetParent(Node *p)
 
Float_t GetSampleMax(UInt_t ivar) const
return the maximum of variable ivar from the training sample that pass/end up in this node,...
 
Float_t GetSampleMin(UInt_t ivar) const
return the minimum of variable ivar from the training sample that pass/end up in this node,...
 
void SetSampleMin(UInt_t ivar, Float_t xmin)
set the minimum of variable ivar from the training sample that pass/end up in this node,...
 
ostringstream derivative to redirect and format output
 
Node for the BinarySearch or Decision Trees.
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
create variable transformations
 
MsgLogger & Endl(MsgLogger &ml)