110 Log() << kFATAL <<
"<PDEFoamDiscriminantDensity::Density()> Binary tree not set!" <<
Endl;
113 std::vector<Double_t> lb(GetBox().
size());
114 std::vector<Double_t> ub(GetBox().
size());
117 const Double_t probevolume_inv = 1.0 / GetBoxVolume();
120 for (
UInt_t idim = 0; idim < GetBox().size(); ++idim) {
121 lb[idim] = xev[idim] - GetBox().at(idim) / 2.0;
122 ub[idim] = xev[idim] + GetBox().at(idim) / 2.0;
126 std::vector<const TMVA::BinarySearchTreeNode*> nodes;
129 const Double_t sumOfWeights = fBst->SearchVolume(&volume, &nodes);
132 event_density = nodes.size() * probevolume_inv;
136 for (std::vector<const TMVA::BinarySearchTreeNode*>::const_iterator it = nodes.begin();
137 it != nodes.end(); ++it) {
138 if ((*it)->GetClass() ==
fClass)
139 n_sig += (*it)->GetWeight();
143 return (n_sig / (sumOfWeights + 0.1)) * probevolume_inv;