Definition at line 27 of file TFoam.h.
|
| TFoam () |
| Default constructor for streamer, user should not use it. More...
|
|
| TFoam (const Char_t *) |
| User constructor, to be employed by the user. More...
|
|
| TFoam (const TFoam &) |
| Copy Constructor NOT IMPLEMENTED (NEVER USED) More...
|
|
virtual | ~TFoam () |
| Default destructor. More...
|
|
virtual void | Carver (Int_t &, Double_t &, Double_t &) |
| Internal subrogram used by Initialize. More...
|
|
virtual Int_t | CellFill (Int_t, TFoamCell *) |
| Internal subprogram used by Initialize. More...
|
|
virtual void | CheckAll (Int_t) |
| User utility, miscellaneous and debug. More...
|
|
virtual Int_t | Divide (TFoamCell *) |
| Internal subrogram used by Initialize. More...
|
|
virtual Double_t | Eval (Double_t *) |
| Internal subprogram. More...
|
|
virtual void | Explore (TFoamCell *Cell) |
| Internal subprogram used by Initialize. More...
|
|
virtual void | Finalize (Double_t &, Double_t &) |
| May be called optionally by the user after the MC run. More...
|
|
virtual void | GenerCel2 (TFoamCell *&) |
| Internal subprogram. More...
|
|
virtual void | GetIntegMC (Double_t &, Double_t &) |
| User subprogram. More...
|
|
virtual void | GetIntNorm (Double_t &, Double_t &) |
| User subprogram. More...
|
|
virtual void | GetMCvect (Double_t *) |
| User may get generated MC point/vector with help of this method. More...
|
|
virtual void | GetMCwt (Double_t &) |
| User may get weight MC weight using this method. More...
|
|
virtual Double_t | GetMCwt () |
| User may get weight MC weight using this method. More...
|
|
virtual Long_t | GetnCalls () const |
|
virtual Long_t | GetnEffev () const |
|
virtual Double_t | GetPrimary () const |
|
virtual void | GetPrimary (Double_t &prime) |
|
virtual TRandom * | GetPseRan () const |
|
virtual TFoamIntegrand * | GetRho () |
|
virtual Int_t | GetTotDim () const |
|
virtual const char * | GetVersion () const |
|
virtual void | GetWtParams (Double_t, Double_t &, Double_t &, Double_t &) |
| May be called optionally after the MC run. More...
|
|
virtual void | Grow () |
| Internal subrogram used by Initialize. More...
|
|
virtual void | InitCells () |
| Internal subprogram used by Initialize. More...
|
|
virtual void | Initialize () |
| Basic initialization of FOAM invoked by the user. More...
|
|
virtual void | Initialize (TRandom *, TFoamIntegrand *) |
| Basic initialization of FOAM invoked by the user. More...
|
|
virtual void | LinkCells (void) |
|
virtual void | MakeActiveList () |
| Internal subrogram used by Initialize. More...
|
|
virtual void | MakeAlpha () |
| Internal subrogram used by Initialize. More...
|
|
virtual void | MakeEvent () |
| User subprogram. More...
|
|
virtual Double_t | MCgenerate (Double_t *MCvect) |
| User subprogram which generates MC event and returns MC weight. More...
|
|
virtual Long_t | PeekMax () |
| Internal subprogram used by Initialize. More...
|
|
virtual void | PrintCells () |
| Prints geometry of ALL cells of the FOAM. More...
|
|
virtual void | ResetPseRan (TRandom *PseRan) |
| User may optionally reset random number generator using this method Usually it is done when FOAM object is restored from the disk. More...
|
|
virtual void | ResetRho (TFoamIntegrand *Rho) |
| User may optionally reset the distribution using this method Usually it is done when FOAM object is restored from the disk. More...
|
|
virtual void | RootPlot2dim (Char_t *) |
| Debugging tool which plots 2-dimensional cells as rectangles in C++ format readable for root. More...
|
|
virtual void | SetChat (Int_t Chat) |
|
virtual void | SetEvPerBin (Int_t EvPerBin) |
|
virtual void | SetInhiDiv (Int_t, Int_t) |
| This can be called before Initialize, after setting kDim It defines which variables are excluded in the process of the cell division. More...
|
|
virtual void | SetkDim (Int_t kDim) |
|
virtual void | SetMaxWtRej (Double_t MaxWtRej) |
|
virtual void | SetnBin (Int_t nBin) |
|
virtual void | SetnCells (Long_t nCells) |
|
virtual void | SetnSampl (Long_t nSampl) |
|
virtual void | SetOptDrive (Int_t OptDrive) |
|
virtual void | SetOptRej (Int_t OptRej) |
|
virtual void | SetPseRan (TRandom *PseRan) |
|
virtual void | SetRho (TFoamIntegrand *Rho) |
| User may use this method to set the distribution object. More...
|
|
virtual void | SetRhoInt (Double_t(*fun)(Int_t, Double_t *)) |
| User may use this method to set the distribution object as a global function pointer (and not as an interpreted function). More...
|
|
virtual void | SetXdivPRD (Int_t, Int_t, Double_t[]) |
| This should be called before Initialize, after setting kDim It predefines values of the cell division for certain variable iDim. More...
|
|
virtual void | Varedu (Double_t [], Int_t &, Double_t &, Double_t &) |
| Internal subrogram used by Initialize. More...
|
|
Basic initialization of FOAM invoked by the user.
Mandatory!
This method starts the process of the cell build-up. User must invoke Initialize with two arguments or Initialize without arguments. This is done BEFORE generating first MC event and AFTER allocating FOAM object and reseting (optionally) its internal parameters/switches. The overall operational scheme of the FOAM is the following:
This method invokes several other methods:
InitCells initializes memory storage for cells and begins exploration process from the root cell. The empty cells are allocated/filled using CellFill. The procedure Grow which loops over cells, picks up the cell with the biggest ``driver integral'', see Comp. Phys. Commun. 152 152 (2003) 55 for explanations, with the help of PeekMax procedure. The chosen cell is split using Divide. Subsequently, the procedure Explore called by the Divide (and by InitCells for the root cell) does the most important job in the FOAM object build-up: it performs a small MC run for each newly allocated daughter cell. Explore calculates how profitable the future split of the cell will be and defines the optimal cell division geometry with the help of Carver or Varedu procedures, for maximum weight or variance optimization respectively. All essential results of the exploration are written into the explored cell object. At the very end of the foam build-up, Finally, MakeActiveList is invoked to create a list of pointers to all active cells, for the purpose of the quick access during the MC generation. The procedure Explore employs MakeAlpha to generate random coordinates inside a given cell with the uniform distribution. The above sequence of the procedure calls is depicted in the following figure:
Definition at line 343 of file TFoam.cxx.