113 Log() <<
kFATAL <<
"<PDEFoamDiscriminantDensity::Density()> Binary tree not set!" <<
Endl;
116 std::vector<Double_t> lb(
GetBox().size());
117 std::vector<Double_t> ub(
GetBox().size());
124 lb[idim] = xev[idim] -
GetBox().at(idim) / 2.0;
125 ub[idim] = xev[idim] +
GetBox().at(idim) / 2.0;
129 std::vector<const TMVA::BinarySearchTreeNode*> nodes;
135 event_density = nodes.size() * probevolume_inv;
139 for (std::vector<const TMVA::BinarySearchTreeNode*>::const_iterator it = nodes.begin();
140 it != nodes.end(); ++it) {
141 if ((*it)->GetClass() ==
fClass)
142 n_sig += (*it)->GetWeight();
146 return (n_sig / (sumOfWeights + 0.1)) * probevolume_inv;
MsgLogger & Endl(MsgLogger &ml)
const std::vector< Double_t > & GetBox() const
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
MsgLogger & Log() const
message logger
Double_t GetBoxVolume()
Returns the volume of range searching box fBox.
PDEFoamDiscriminantDensity()
Abstract ClassifierFactory template that handles arbitrary types.
virtual Double_t Density(std::vector< Double_t > &Xarg, Double_t &event_density)
This function is needed during the foam buildup.
Double_t SearchVolume(Volume *, std::vector< const TMVA::BinarySearchTreeNode *> *events=0)
search the whole tree and add up all weigths of events that lie within the given voluem ...