81 ClassImp(TMVA::PDEFoamDensityBase);
85 TMVA::PDEFoamDensityBase::PDEFoamDensityBase()
89 fBoxHasChanged(kTRUE),
90 fBst(new TMVA::BinarySearchTree()),
91 fLogger(new MsgLogger(
"PDEFoamDensityBase"))
100 TMVA::PDEFoamDensityBase::PDEFoamDensityBase(std::vector<Double_t> box)
104 fBoxHasChanged(kTRUE),
105 fBst(new TMVA::BinarySearchTree()),
106 fLogger(new MsgLogger(
"PDEFoamDensityBase"))
109 Log() << kFATAL <<
"Dimension of PDEFoamDensityBase is zero" << Endl;
112 fBst->SetPeriode(box.size());
118 TMVA::PDEFoamDensityBase::~PDEFoamDensityBase()
120 if (fBst)
delete fBst;
121 if (fLogger)
delete fLogger;
130 TMVA::PDEFoamDensityBase::PDEFoamDensityBase(
const PDEFoamDensityBase &distr)
133 fBoxVolume(distr.fBoxVolume),
134 fBoxHasChanged(distr.fBoxHasChanged),
135 fBst(new BinarySearchTree(*distr.fBst)),
136 fLogger(new MsgLogger(*distr.fLogger))
144 void TMVA::PDEFoamDensityBase::FillBinarySearchTree(
const Event* ev)
147 Log() << kFATAL <<
"<PDEFoamDensityBase::FillBinarySearchTree> "
148 <<
"Binary tree is not set!" << Endl;
161 Double_t TMVA::PDEFoamDensityBase::GetBoxVolume()
163 if (fBoxHasChanged) {
164 fBoxHasChanged = kFALSE;
165 fBoxVolume = std::accumulate(fBox.begin(), fBox.end(), 1.0,
166 std::multiplies<Double_t>());