108 Log() << kFATAL <<
"COPY CONSTRUCTOR NOT IMPLEMENTED" <<
Endl;
131 std::map<Int_t, Float_t> txvec;
132 for (std::map<Int_t, Float_t>::const_iterator it = xvec.begin();
133 it != xvec.end(); ++it) {
134 Float_t coordinate = it->second;
135 Int_t dim = it->first;
138 if (coordinate <=
fXmin[dim])
139 coordinate =
fXmin[dim] + std::numeric_limits<float>::epsilon();
140 else if (coordinate >=
fXmax[dim])
141 coordinate =
fXmax[dim] - std::numeric_limits<float>::epsilon();
143 txvec.insert(std::pair<Int_t, Float_t>(dim,
VarTransform(dim, coordinate)));
147 std::map<Int_t, Float_t>
target;
150 std::vector<PDEFoamCell*> cells =
FindCells(txvec);
154 return std::vector<Float_t>(
GetTotDim() - xvec.size(), 0);
160 if (txvec.find(idim) == txvec.end())
161 target.insert(std::pair<Int_t, Float_t>(idim, 0));
172 Log() <<
"<PDEFoamMultiTarget::GetCellValue>: "
173 <<
"unknown target selection type!" <<
Endl;
178 std::vector<Float_t>
result;
180 for (std::map<Int_t, Float_t>::const_iterator it =
target.begin();
182 result.push_back(it->second);
207 for (std::vector<PDEFoamCell*>::const_iterator cell_it = cells.begin();
208 cell_it != cells.end(); ++cell_it) {
214 if (cell_density > max_dens) {
217 (*cell_it)->GetHcub(cellPosi, cellSize);
220 max_dens = cell_density;
223 for (std::map<Int_t, Float_t>::iterator target_it =
target.begin();
224 target_it !=
target.end(); ++target_it) {
225 const Int_t dim = target_it->first;
251 std::map<Int_t, Float_t> norm;
254 for (std::vector<PDEFoamCell*>::const_iterator cell_it = cells.begin();
255 cell_it != cells.end(); ++cell_it) {
262 (*cell_it)->GetHcub(cellPosi, cellSize);
265 for (std::map<Int_t, Float_t>::iterator target_it =
target.begin();
266 target_it !=
target.end(); ++target_it) {
267 const Int_t dim = target_it->first;
268 target_it->second += cell_density *
270 norm[dim] += cell_density;
275 for (std::map<Int_t, Float_t>::iterator target_it =
target.begin();
276 target_it !=
target.end(); ++target_it) {
279 const Int_t dim = target_it->first;
282 if (norm[dim] > std::numeric_limits<Float_t>::epsilon()) {
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 Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
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
PDEFoamEvent(const PDEFoamEvent &)
Copy Constructor NOT IMPLEMENTED (NEVER USED)
This PDEFoam variant is used to estimate multiple targets by creating an event density foam (PDEFoamE...
PDEFoamMultiTarget(const PDEFoamMultiTarget &)
Copy Constructor NOT IMPLEMENTED (NEVER USED)
virtual void CalculateMean(std::map< Int_t, Float_t > &, const std::vector< PDEFoamCell * > &)
This function calculates the mean target value from a given number of cells.
ETargetSelection fTargetSelection
virtual void CalculateMpv(std::map< Int_t, Float_t > &, const std::vector< PDEFoamCell * > &)
This function calculates the most probable target value from a given number of cells.
virtual std::vector< Float_t > GetCellValue(const std::map< Int_t, Float_t > &, ECellValue)
This function is overridden from PDFEFoam.
PDEFoamMultiTarget()
Default constructor for streamer, user should not use it.
Float_t VarTransformInvers(Int_t idim, Float_t x) const
Float_t VarTransform(Int_t idim, Float_t x) const
Double_t * fXmin
[fDim] minimum for variable transform
std::vector< TMVA::PDEFoamCell * > FindCells(const std::vector< Float_t > &) const
Find all cells, that contain txvec.
Double_t * fXmax
[fDim] maximum for variable transform
MsgLogger & Endl(MsgLogger &ml)