Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
PDEFoam.h
Go to the documentation of this file.
1// @(#)root/tmva $Id$
2// Author: S. Jadach, Tancredi Carli, Dominik Dannheim, Alexander Voigt
3
4/**********************************************************************************
5 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6 * Package: TMVA *
7 * Classes: PDEFoam *
8 * *
9 * *
10 * Description: *
11 * Class for PDEFoam object *
12 * *
13 * Authors (alphabetical): *
14 * S. Jadach - Institute of Nuclear Physics, Cracow, Poland *
15 * Tancredi Carli - CERN, Switzerland *
16 * Dominik Dannheim - CERN, Switzerland *
17 * Alexander Voigt - TU Dresden, Germany *
18 * *
19 * Copyright (c) 2008, 2010: *
20 * CERN, Switzerland *
21 * MPI-K Heidelberg, Germany *
22 * *
23 * Redistribution and use in source and binary forms, with or without *
24 * modification, are permitted according to the terms listed in LICENSE *
25 * (see tmva/doc/LICENSE) *
26 **********************************************************************************/
27
28#ifndef ROOT_TMVA_PDEFoam
29#define ROOT_TMVA_PDEFoam
30
31#include <iosfwd>
32#include <cassert>
33#include <vector>
34#include <map>
35
36#include "TH2D.h"
37#include "TObjArray.h"
38#include "TObjString.h"
39#include "TVectorT.h"
40#include "TString.h"
41#include "TMVA/VariableInfo.h"
42#include "TMVA/Timer.h"
43#include "TObject.h"
44#include "TRandom3.h"
45
46namespace TMVA {
47 class PDEFoamCell;
48 class PDEFoamVect;
49 class PDEFoamDensityBase;
50 class PDEFoamKernelBase;
51 class PDEFoam;
52
53 // separation types
56
57 // foam types
59
60 // enum type for possible foam cell values
61 // kValue : cell value who's rms is minimized
62 // kValueError : error on kValue
63 // kValueDensity : kValue / cell volume
64 // kMeanValue : mean sampling value (saved in fIntegral)
65 // kRms : rms of sampling distribution (saved in fDriver)
66 // kRmsOvMean : rms/mean of sampling distribution (saved in
67 // fDriver and fIntegral)
68 // kCellVolume : volume of cell
71}
72
74#include "TMVA/PDEFoamVect.h"
75#include "TMVA/PDEFoamCell.h"
76
77namespace TMVA {
78
79 class PDEFoam : public TObject {
80 protected:
81 // COMPONENTS //
82 //-------------- Input parameters
83 TString fName; ///< Name of a given instance of the FOAM class
84 Int_t fDim; ///< Dimension of the integration/simulation space
85 Int_t fNCells; ///< Maximum number of cells
86 //-------------------
87 Int_t fNBin; ///< No. of bins in the edge histogram for cell MC exploration
88 Int_t fNSampl; ///< No. of MC events, when dividing (exploring) cell
89 Int_t fEvPerBin; ///< Maximum number of effective (wt=1) events per bin
90 //------------------- MULTI-BRANCHING ---------------------
91 Int_t *fMaskDiv; ///<! [fDim] Dynamic Mask for cell division
92 Int_t *fInhiDiv; ///<! [fDim] Flags for inhibiting cell division
93 //------------------- GEOMETRY ----------------------------
94 Int_t fNoAct; ///< Number of active cells
95 Int_t fLastCe; ///< Index of the last cell
96 PDEFoamCell **fCells; ///< [fNCells] Array of ALL cells
97 //------------------ M.C. generation----------------------------
98 TObjArray *fHistEdg; ///< Histograms of wt, one for each cell edge
99 Double_t *fRvec; ///< [fDim] random number vector from r.n. generator fDim+1 maximum elements
100 //----------- Procedures
101 TRandom3 *fPseRan; ///< Pointer to user-defined generator of pseudorandom numbers
102 //---------- working space for CELL exploration -------------
103 Double_t *fAlpha; ///< [fDim] Internal parameters of the hyperrectangle
104 // --------- PDE-Foam specific variables
105 EFoamType fFoamType; ///< BACKWARDS COMPATIBILITY: type of foam
106 Double_t *fXmin; ///< [fDim] minimum for variable transform
107 Double_t *fXmax; ///< [fDim] maximum for variable transform
108 UInt_t fNElements; ///< BACKWARDS COMPATIBILITY: number of variables in every cell
109 UInt_t fNmin; ///< minimal number of events in cell to split cell
110 UInt_t fMaxDepth; ///< maximum depth of cell tree
111 Float_t fVolFrac; ///< BACKWARDS COMPATIBILITY: volume fraction (with respect to total phase space
112 Bool_t fFillFoamWithOrigWeights; ///< BACKWARDS COMPATIBILITY: fill the foam with boost or orig. weights
113 EDTSeparation fDTSeparation; ///< BACKWARDS COMPATIBILITY: split cells according to decision tree logic
114 Bool_t fPeekMax; ///< BACKWARDS COMPATIBILITY: peek up cell with max. driver integral for split
115 PDEFoamDensityBase *fDistr; ///<! distribution of training events
116 Timer *fTimer; ///<! timer for graphical output
117 TObjArray *fVariableNames;///< collection of all variable names
118 mutable MsgLogger* fLogger; ///<! message logger
119
120 /////////////////////////////////////////////////////////////////
121 // METHODS //
122 /////////////////////////////////////////////////////////////////
123
124 protected:
125 // ---------- TMVA console output
126
127 void OutputGrow(Bool_t finished = false ); // nice TMVA console output
128
129 // ---------- Foam build-up functions
130
131 // Internal foam initialization functions
132 void InitCells(); // Initialisation of all foam cells
133 Int_t CellFill(Int_t, PDEFoamCell*);// Allocates new empty cell and return its index
134 virtual void Explore(PDEFoamCell *Cell); // Exploration of the new cell, determine <wt>, wtMax etc.
135 void Varedu(Double_t [5], Int_t&, Double_t&,Double_t&); // Determines the best edge, variance reduction
136 void MakeAlpha(); // Provides random point inside hyperrectangle
137 void Grow(); // build up foam
138 Long_t PeekMax(); // peek cell with max. driver integral
139 Int_t Divide(PDEFoamCell *); // Divide iCell into two daughters; iCell retained, taged as inactive
140 Double_t Eval(Double_t *xRand, Double_t &event_density); // evaluate distribution on point 'xRand'
141
142 // ---------- Cell value access functions
143
144 // low level functions to access a certain cell value
145 Double_t GetCellElement(const PDEFoamCell *cell, UInt_t i) const; // get Element 'i' in cell 'cell'
146 void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value); // set Element 'i' in cell 'cell' to value 'value'
147
148 // specific function used during evaluation; determines, whether a cell value is undefined
150
151 // finds cell according to given event variables
152 PDEFoamCell* FindCell(const std::vector<Float_t>&) const ;
153 std::vector<TMVA::PDEFoamCell*> FindCells(const std::vector<Float_t>&) const;
154 std::vector<TMVA::PDEFoamCell*> FindCells(const std::map<Int_t,Float_t>&) const;
155 void FindCells(const std::map<Int_t, Float_t>&, PDEFoamCell*, std::vector<PDEFoamCell*> &) const;
156
157 // get internal density
158 PDEFoamDensityBase* GetDistr() const { assert(fDistr); return fDistr; }
159
160 // Square function (fastest implementation)
161 template<typename T> T Sqr(T x) const { return x*x; }
162
163 PDEFoam(const PDEFoam&); // Copy Constructor NOT USED
164
165 // ---------- Public functions ----------------------------------
166 public:
167 PDEFoam(); // Default constructor (used only by ROOT streamer)
168 PDEFoam(const TString&); // Principal user-defined constructor
169 virtual ~PDEFoam(); // Default destructor
170
171 // ---------- Foam creation functions
172
173 void Initialize() {} // initialize the PDEFoam
174 void FillBinarySearchTree( const Event* ev ); // fill event into BST
175 void Create(); // build-up foam
176
177 // function to fill created cell with given value
178 virtual void FillFoamCells(const Event* ev, Float_t wt);
179
180 // remove all cell elements
181 void ResetCellElements();
182
183 // function to call after foam is grown
184 virtual void Finalize() {}
185
186 // ---------- Getters and Setters
187
188 void SetDim(Int_t kDim); // Sets dimension of cubical space
189 void SetnCells(Long_t nCells){fNCells =nCells;} // Sets maximum number of cells
190 void SetnSampl(Long_t nSampl){fNSampl =nSampl;} // Sets no of MC events in cell exploration
191 void SetnBin(Int_t nBin){fNBin = nBin;} // Sets no of bins in histograms in cell exploration
192 void SetEvPerBin(Int_t EvPerBin){fEvPerBin =EvPerBin;} // Sets max. no. of effective events per bin
193 void SetInhiDiv(Int_t, Int_t ); // Set inhibition of cell division along certain edge
194 void SetDensity(PDEFoamDensityBase *dens) { fDistr = dens; }
195
196 // coverity[ -tainted_data_return ]
197 Int_t GetTotDim() const {return fDim; } // Get total dimension
198 TString GetFoamName() const {return fName; } // Get name of foam
199 UInt_t GetNActiveCells() const {return fNoAct;} // returns number of active cells
200 UInt_t GetNInActiveCells() const {return GetNCells()-GetNActiveCells();} // returns number of not active cells
201 UInt_t GetNCells() const {return fNCells;} // returns number of cells
202 PDEFoamCell* GetRootCell() const {return fCells[0];} // get pointer to root cell
203
204 // Getters and Setters for user cut options
205 void SetNmin(UInt_t val) { fNmin=val; }
206 UInt_t GetNmin() { return fNmin; }
207 void SetMaxDepth(UInt_t maxdepth) { fMaxDepth = maxdepth; }
208 UInt_t GetMaxDepth() const { return fMaxDepth; }
209
210 // Getters and Setters for foam boundaries
211 void SetXmin(Int_t idim, Double_t wmin);
212 void SetXmax(Int_t idim, Double_t wmax);
213 Double_t GetXmin(Int_t idim) const {return fXmin[idim];}
214 Double_t GetXmax(Int_t idim) const {return fXmax[idim];}
215
216 // Getters and Setters for variable names
217 void AddVariableName(const char *s) { AddVariableName(new TObjString(s)); }
219 TObjString* GetVariableName(Int_t idx) {return dynamic_cast<TObjString*>(fVariableNames->At(idx));}
220
221 // Delete the fDistr object, which contains the binary search
222 // tree
224
225 // ---------- Transformation functions for event variables into foam boundaries
226 // reason: foam always has boundaries [0, 1]
227
228 Float_t VarTransform(Int_t idim, Float_t x) const; // transform [xmin, xmax] --> [0, 1]
229 std::vector<Float_t> VarTransform(const std::vector<Float_t> &invec) const;
230 Float_t VarTransformInvers(Int_t idim, Float_t x) const; // transform [0, 1] --> [xmin, xmax]
231 std::vector<Float_t> VarTransformInvers(const std::vector<Float_t> &invec) const;
232
233 // ---------- Debug functions
234
235 void CheckAll(Int_t); // Checks correctness of the entire data structure in the FOAM object
236 void PrintCell(Long_t iCell=0); // Print content of cell
237 void PrintCells(); // Prints content of all cells
238
239 // Message logger
240 MsgLogger& Log() const { return *fLogger; }
241
242 // ---------- Foam projection methods
243
244 // project foam to two-dimensional histogram
245 virtual TH2D* Project2(Int_t idim1, Int_t idim2, ECellValue cell_value=kValue,
246 PDEFoamKernelBase *kernel=nullptr, UInt_t nbin=50);
247
248 // Project one-dimensional foam to a 1-dim histogram
249 TH1D* Draw1Dim(ECellValue cell_value, Int_t nbin, PDEFoamKernelBase *kernel=nullptr);
250
251 // Generates C++ code (root macro) for drawing foam with boxes (only 2-dim!)
252 void RootPlot2dim( const TString& filename, TString opt,
253 Bool_t createCanvas = kTRUE, Bool_t colors = kTRUE );
254
255 // ---------- Foam evaluation functions
256
257 // get cell value for a given event
258 virtual Float_t GetCellValue( const std::vector<Float_t>& xvec, ECellValue cv, PDEFoamKernelBase* );
259
260 // get cell values for a given (incomplete) event vector
261 virtual std::vector<Float_t> GetCellValue( const std::map<Int_t,Float_t>& xvec, ECellValue cv );
262
263 // get cell value stored in a foam cell
264 virtual Float_t GetCellValue( const PDEFoamCell* cell, ECellValue cv );
265
266 // ---------- friend classes
267 friend class PDEFoamKernelBase;
269 friend class PDEFoamKernelLinN;
270 friend class PDEFoamKernelGauss;
271
272 // ---------- ROOT class definition
273 ClassDef(PDEFoam,7) // Tree of PDEFoamCells
274 }; // end of PDEFoam
275
276} // namespace TMVA
277
278// ---------- Inline functions
279
280//_____________________________________________________________________
282{
283 // transform variable x from [xmin, xmax] --> [0, 1]
284 return (x-fXmin[idim])/(fXmax[idim]-fXmin[idim]);
285}
286
287//_____________________________________________________________________
288inline std::vector<Float_t> TMVA::PDEFoam::VarTransform(const std::vector<Float_t> &invec) const
289{
290 // transform vector invec from [xmin, xmax] --> [0, 1]
291 std::vector<Float_t> outvec;
292 for(UInt_t i=0; i<invec.size(); i++)
293 outvec.push_back(VarTransform(i, invec.at(i)));
294 return outvec;
295}
296
297//_____________________________________________________________________
299{
300 // transform variable x from [0, 1] --> [xmin, xmax]
301 return x*(fXmax[idim]-fXmin[idim]) + fXmin[idim];
302}
303
304//_____________________________________________________________________
305inline std::vector<Float_t> TMVA::PDEFoam::VarTransformInvers(const std::vector<Float_t> &invec) const
306{
307 // transform vector invec from [0, 1] --> [xmin, xmax]
308 std::vector<Float_t> outvec;
309 for(UInt_t i=0; i<invec.size(); i++)
310 outvec.push_back(VarTransformInvers(i, invec.at(i)));
311 return outvec;
312}
313
314#endif
bool Bool_t
Definition RtypesCore.h:63
long Long_t
Definition RtypesCore.h:54
unsigned int UInt_t
Definition RtypesCore.h:46
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassDef(name, id)
Definition Rtypes.h:337
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 filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmin
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmax
Color * colors
Definition X3DBuffer.c:21
1-D histogram with a double per channel (see TH1 documentation)
Definition TH1.h:669
2-D histogram with a double per channel (see TH1 documentation)
Definition TH2.h:357
ostringstream derivative to redirect and format output
Definition MsgLogger.h:57
This is an abstract class, which provides an interface for a PDEFoam density estimator.
This class is the abstract kernel interface for PDEFoam.
This PDEFoam kernel estimates a cell value for a given event by weighting all cell values with a gaus...
This PDEFoam kernel estimates a cell value for a given event by weighting with cell values of the nea...
This class is a trivial PDEFoam kernel estimator.
Implementation of PDEFoam.
Definition PDEFoam.h:79
void AddVariableName(const char *s)
Definition PDEFoam.h:217
void SetNmin(UInt_t val)
Definition PDEFoam.h:205
Double_t GetCellElement(const PDEFoamCell *cell, UInt_t i) const
Returns cell element i of cell 'cell'.
Definition PDEFoam.cxx:1415
Bool_t fPeekMax
BACKWARDS COMPATIBILITY: peek up cell with max. driver integral for split.
Definition PDEFoam.h:114
void DeleteBinarySearchTree()
Delete the foam's density estimator, which contains the binary search tree.
Definition PDEFoam.cxx:1665
TObjString * GetVariableName(Int_t idx)
Definition PDEFoam.h:219
void SetMaxDepth(UInt_t maxdepth)
Definition PDEFoam.h:207
void MakeAlpha()
Internal subprogram used by Create.
Definition PDEFoam.cxx:636
Timer * fTimer
! timer for graphical output
Definition PDEFoam.h:116
TObjArray * fVariableNames
collection of all variable names
Definition PDEFoam.h:117
Float_t fVolFrac
BACKWARDS COMPATIBILITY: volume fraction (with respect to total phase space.
Definition PDEFoam.h:111
UInt_t GetMaxDepth() const
Definition PDEFoam.h:208
virtual Float_t GetCellValue(const std::vector< Float_t > &xvec, ECellValue cv, PDEFoamKernelBase *)
This function finds the cell, which corresponds to the given untransformed event vector 'xvec' and re...
Definition PDEFoam.cxx:1015
void OutputGrow(Bool_t finished=false)
Overridden function of PDEFoam to avoid native foam output.
Definition PDEFoam.cxx:1459
UInt_t GetNInActiveCells() const
Definition PDEFoam.h:200
UInt_t GetNCells() const
Definition PDEFoam.h:201
Double_t GetXmax(Int_t idim) const
Definition PDEFoam.h:214
void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value)
Set cell element i of cell to value.
Definition PDEFoam.cxx:1431
void SetDensity(PDEFoamDensityBase *dens)
Definition PDEFoam.h:194
Float_t VarTransformInvers(Int_t idim, Float_t x) const
Definition PDEFoam.h:298
Double_t * fRvec
[fDim] random number vector from r.n. generator fDim+1 maximum elements
Definition PDEFoam.h:99
Float_t VarTransform(Int_t idim, Float_t x) const
Definition PDEFoam.h:281
Int_t Divide(PDEFoamCell *)
Internal subprogram used by Create.
Definition PDEFoam.cxx:713
Bool_t fFillFoamWithOrigWeights
BACKWARDS COMPATIBILITY: fill the foam with boost or orig. weights.
Definition PDEFoam.h:112
MsgLogger & Log() const
Definition PDEFoam.h:240
EDTSeparation fDTSeparation
BACKWARDS COMPATIBILITY: split cells according to decision tree logic.
Definition PDEFoam.h:113
void PrintCell(Long_t iCell=0)
Prints geometry of and elements of 'iCell', as well as relations to parent and daughter cells.
Definition PDEFoam.cxx:894
void ResetCellElements()
Remove the cell elements from all cells.
Definition PDEFoam.cxx:970
void Grow()
Internal subprogram used by Create.
Definition PDEFoam.cxx:766
TH1D * Draw1Dim(ECellValue cell_value, Int_t nbin, PDEFoamKernelBase *kernel=nullptr)
Draws 1-dimensional foam (= histogram)
Definition PDEFoam.cxx:1217
MsgLogger * fLogger
! message logger
Definition PDEFoam.h:118
Double_t Eval(Double_t *xRand, Double_t &event_density)
Internal subprogram.
Definition PDEFoam.cxx:746
Int_t fNBin
No. of bins in the edge histogram for cell MC exploration.
Definition PDEFoam.h:87
void PrintCells()
Prints geometry of ALL cells of the FOAM.
Definition PDEFoam.cxx:941
void SetXmax(Int_t idim, Double_t wmax)
set upper foam bound in dimension idim
Definition PDEFoam.cxx:274
PDEFoamDensityBase * GetDistr() const
Definition PDEFoam.h:158
Double_t * fXmin
[fDim] minimum for variable transform
Definition PDEFoam.h:106
virtual ~PDEFoam()
Default destructor.
Definition PDEFoam.cxx:182
PDEFoam()
Default constructor for streamer, user should not use it.
Definition PDEFoam.cxx:101
TRandom3 * fPseRan
Pointer to user-defined generator of pseudorandom numbers.
Definition PDEFoam.h:101
void SetEvPerBin(Int_t EvPerBin)
Definition PDEFoam.h:192
PDEFoamCell * GetRootCell() const
Definition PDEFoam.h:202
virtual TH2D * Project2(Int_t idim1, Int_t idim2, ECellValue cell_value=kValue, PDEFoamKernelBase *kernel=nullptr, UInt_t nbin=50)
Project foam variable idim1 and variable idim2 to histogram.
Definition PDEFoam.cxx:1269
void SetnBin(Int_t nBin)
Definition PDEFoam.h:191
PDEFoamDensityBase * fDistr
! distribution of training events
Definition PDEFoam.h:115
virtual Bool_t CellValueIsUndefined(PDEFoamCell *)
Returns true, if the value of the given cell is undefined.
Definition PDEFoam.cxx:989
virtual void FillFoamCells(const Event *ev, Float_t wt)
This function fills a weight 'wt' into the PDEFoam cell, which corresponds to the given event 'ev'.
Definition PDEFoam.cxx:954
void Create()
Basic initialization of FOAM invoked by the user.
Definition PDEFoam.cxx:290
TObjArray * fHistEdg
Histograms of wt, one for each cell edge.
Definition PDEFoam.h:98
void SetInhiDiv(Int_t, Int_t)
This can be called before Create, after setting kDim It defines which variables are excluded in the p...
Definition PDEFoam.cxx:801
Int_t * fInhiDiv
! [fDim] Flags for inhibiting cell division
Definition PDEFoam.h:92
void InitCells()
Internal subprogram used by Create.
Definition PDEFoam.cxx:354
void AddVariableName(TObjString *s)
Definition PDEFoam.h:218
Int_t GetTotDim() const
Definition PDEFoam.h:197
void Initialize()
Definition PDEFoam.h:173
Double_t * fAlpha
[fDim] Internal parameters of the hyperrectangle
Definition PDEFoam.h:103
virtual void Finalize()
Definition PDEFoam.h:184
PDEFoamCell * FindCell(const std::vector< Float_t > &) const
Find cell that contains 'xvec' (in foam coordinates [0,1]).
Definition PDEFoam.cxx:1079
UInt_t fNElements
BACKWARDS COMPATIBILITY: number of variables in every cell.
Definition PDEFoam.h:108
Int_t * fMaskDiv
! [fDim] Dynamic Mask for cell division
Definition PDEFoam.h:91
void FillBinarySearchTree(const Event *ev)
Insert event to internal foam's density estimator PDEFoamDensityBase.
Definition PDEFoam.cxx:1656
UInt_t fMaxDepth
maximum depth of cell tree
Definition PDEFoam.h:110
Int_t fNCells
Maximum number of cells.
Definition PDEFoam.h:85
PDEFoamCell ** fCells
[fNCells] Array of ALL cells
Definition PDEFoam.h:96
virtual void Explore(PDEFoamCell *Cell)
Internal subprogram used by Create.
Definition PDEFoam.cxx:432
void SetXmin(Int_t idim, Double_t wmin)
set lower foam bound in dimension idim
Definition PDEFoam.cxx:263
UInt_t GetNmin()
Definition PDEFoam.h:206
std::vector< TMVA::PDEFoamCell * > FindCells(const std::vector< Float_t > &) const
Find all cells, that contain txvec.
Definition PDEFoam.cxx:1164
UInt_t GetNActiveCells() const
Definition PDEFoam.h:199
Int_t fDim
Dimension of the integration/simulation space.
Definition PDEFoam.h:84
UInt_t fNmin
minimal number of events in cell to split cell
Definition PDEFoam.h:109
T Sqr(T x) const
Definition PDEFoam.h:161
void Varedu(Double_t[5], Int_t &, Double_t &, Double_t &)
Internal subprogram used by Create.
Definition PDEFoam.cxx:568
Int_t fLastCe
Index of the last cell.
Definition PDEFoam.h:95
void SetnCells(Long_t nCells)
Definition PDEFoam.h:189
Int_t CellFill(Int_t, PDEFoamCell *)
Internal subprogram used by Create.
Definition PDEFoam.cxx:387
Long_t PeekMax()
Internal subprogram used by Create.
Definition PDEFoam.cxx:650
void RootPlot2dim(const TString &filename, TString opt, Bool_t createCanvas=kTRUE, Bool_t colors=kTRUE)
Debugging tool which plots the cells of a 2-dimensional PDEFoam as rectangles in C++ format readable ...
Definition PDEFoam.cxx:1510
TString fName
Name of a given instance of the FOAM class.
Definition PDEFoam.h:83
void SetnSampl(Long_t nSampl)
Definition PDEFoam.h:190
Int_t fNoAct
Number of active cells.
Definition PDEFoam.h:94
Double_t * fXmax
[fDim] maximum for variable transform
Definition PDEFoam.h:107
TString GetFoamName() const
Definition PDEFoam.h:198
Double_t GetXmin(Int_t idim) const
Definition PDEFoam.h:213
void CheckAll(Int_t)
User utility, miscellaneous and debug.
Definition PDEFoam.cxx:821
Int_t fNSampl
No. of MC events, when dividing (exploring) cell.
Definition PDEFoam.h:88
void SetDim(Int_t kDim)
Sets dimension of cubical space.
Definition PDEFoam.cxx:248
Int_t fEvPerBin
Maximum number of effective (wt=1) events per bin.
Definition PDEFoam.h:89
EFoamType fFoamType
BACKWARDS COMPATIBILITY: type of foam.
Definition PDEFoam.h:105
Timing information for training and evaluation of MVA methods.
Definition Timer.h:58
EDTSeparation
Definition PDEFoam.h:54
@ kCrossEntropy
Definition PDEFoam.h:55
@ kMisClassificationError
Definition PDEFoam.h:54
@ kGiniIndexWithLaplace
Definition PDEFoam.h:55
@ kSdivSqrtSplusB
Definition PDEFoam.h:55
@ kGiniIndex
Definition PDEFoam.h:54
@ kFoam
Definition PDEFoam.h:54
EFoamType
Definition PDEFoam.h:58
@ kMultiTarget
Definition PDEFoam.h:58
@ kSeparate
Definition PDEFoam.h:58
@ kDiscr
Definition PDEFoam.h:58
@ kMultiClass
Definition PDEFoam.h:58
@ kMonoTarget
Definition PDEFoam.h:58
ECellValue
Definition PDEFoam.h:69
@ kRmsOvMean
Definition PDEFoam.h:70
@ kCellVolume
Definition PDEFoam.h:70
@ kValueError
Definition PDEFoam.h:69
@ kMeanValue
Definition PDEFoam.h:69
@ kValueDensity
Definition PDEFoam.h:69
@ kRms
Definition PDEFoam.h:70
@ kValue
Definition PDEFoam.h:69
An array of TObjects.
Definition TObjArray.h:31
TObject * At(Int_t idx) const override
Definition TObjArray.h:164
void Add(TObject *obj) override
Definition TObjArray.h:68
Collectable string class.
Definition TObjString.h:28
Mother of all ROOT objects.
Definition TObject.h:41
Random number generator class based on M.
Definition TRandom3.h:27
Basic string class.
Definition TString.h:139
Double_t x[n]
Definition legend1.C:17
create variable transformations