ThePEG 2.3.0
|
ACDCGenCell is the class representing a generation cell in ACDCGen. More...
#include <ACDCGenCell.h>
Public Member Functions | |
ACDCGenCell (double newG) | |
Constructor taking the maximum value as argument. | |
ACDCGenCell (double newG, double newV) | |
Constructor taking the maximum value and the volume as argument. | |
~ACDCGenCell () | |
The destuctor will also delete all child cells. | |
template<typename RndType > | |
ACDCGenCell * | generate (DVector &lo, DVector &up, RndType *rnd) |
Choose a cell recursively according to their relative overestimated integrals. | |
ACDCGenCell * | generate (DVector &lo, DVector &up, DVector &rndv) |
Choose a cell recursively according to their relative overestimated integrals. | |
ACDCGenCell * | getCell (DVector &lo, const DVector &x, DVector &up) |
Find a cell. | |
void | smooth (double frac) |
Smooth out the levels. | |
bool | isSplit () const |
Returns true if this cell has been split. | |
double | doMaxInt (double rescale=1.0) |
Recalculate (recursively) the overestimated integral for this cell (and of the sub-cells) and return it. | |
double | maxInt () const |
Return the last calculated the overestimated integral for this cell. | |
void | splitme (double lo, double newDiv, double up, DimType newDim) |
Split this cell into two. | |
void | g (double newG) |
Set a new overestimated maximum function value in this cell. | |
double | g () const |
Return the overestimated maximum function value in this cell. | |
double | v () const |
Return the volume of this cell. | |
DimType | dim () const |
Return the direction in which it has been split. | |
double | div () const |
Return the point of division in the dim() direction. | |
ACDCGenCell * | upper () const |
Return the upper sub-cell. | |
ACDCGenCell * | lower () const |
Return the lower sub-cell. | |
int | nBins () const |
Return the number of cells in this sub-tree which have not been split. | |
int | depth () const |
Return the maximum depth of this sub-tree. | |
void | extract (DVector &lo, DVector &up, vector< ACDCGenCellInfo > &v) const |
Append ACDCGenCellInfo objects describing this subtree to a given vector. | |
long | getIndex (const ACDCGenCell *c) const |
Get the index of the given cell. | |
long | getIndex (const ACDCGenCell *c, long &indx) const |
Helper function for getIndex(const ACDCGenCell *) with an extra argument to use as counter. | |
ACDCGenCell * | getCell (long i) |
Return the cell corresponding to the given index i. | |
ACDCGenCell * | getCell (long i, long &indx) |
Helper function for getCell(long) with an extra argument to use as counter. | |
Public Attributes | |
double | theG |
If the cell has not been split this is the overestimated maximum function value in this cell. | |
double | theV |
The volume of this cell. | |
ACDCGenCell * | theUpper |
Pointers to the upper sub-cell. | |
ACDCGenCell * | theLower |
Pointers to the lower sub-cell. | |
double | theDivision |
The point of division in the dim() direction. | |
DimType | theSplitDimension |
The direction in which it has been split. | |
Private Member Functions | |
ACDCGenCell () | |
Default constructor is private and not implemented. | |
ACDCGenCell (const ACDCGenCell &) | |
Copy constructor is private and not implemented. | |
ACDCGenCell & | operator= (const ACDCGenCell &)=delete |
Assignment is private and not implemented. | |
ACDCGenCell is the class representing a generation cell in ACDCGen.
Definition at line 20 of file ACDCGenCell.h.
|
inline |
Return the direction in which it has been split.
Return -1 if it has not been split.
|
inline |
Return the point of division in the dim() direction.
Return -1.0 if it has not been split.
|
inline |
Recalculate (recursively) the overestimated integral for this cell (and of the sub-cells) and return it.
Optionally rescale the overestimated integral.
|
inline |
Append ACDCGenCellInfo objects describing this subtree to a given vector.
lo | the lower-left corner of this cell. |
up | the upper-right corner of this cell. |
v | the vector where the ACDCGenCellInfo objects will be appended. |
|
inline |
Choose a cell recursively according to their relative overestimated integrals.
lo | the lower-left corner of the chosen cell. |
up | the upper-right corner of the chosen cell. |
rndv | a pre-generated set of random numbers (one for each dimension) used to choose sub-cell and then rescales that random number to be reused by the sub-cell. |
|
inline |
Choose a cell recursively according to their relative overestimated integrals.
lo | the lower-left corner of the chosen cell. |
up | the upper-right corner of the chosen cell. |
rnd | the random generator object used to throw dice to choose sub-cell. |
|
inline |
Find a cell.
For a given phase space point, x, find the corresponding cell. Afterwards, the up and lo vectors will contain the upper-right and lower-left corners of the chosen cell.
|
inline |
Return the lower sub-cell.
Return null if it has not been split.
|
inline |
Smooth out the levels.
If one cell has an overestimated integral which is less than frac of the adjacent one, rescale it to avoid situations where it is never sampled.
|
inline |
Split this cell into two.
The cell is split along the newDim direction, where the lower and upper limit is given by lo and up and the point of division is given by newDiv.
|
inline |
Return the upper sub-cell.
Return null if it has not been split.
double ACDCGenerator::ACDCGenCell::theDivision |
The point of division in the dim() direction.
Definition at line 210 of file ACDCGenCell.h.
double ACDCGenerator::ACDCGenCell::theG |
If the cell has not been split this is the overestimated maximum function value in this cell.
Otherwise it is the weighted average of the sub-cells values.
Definition at line 190 of file ACDCGenCell.h.
ACDCGenCell* ACDCGenerator::ACDCGenCell::theLower |
Pointers to the lower sub-cell.
Definition at line 205 of file ACDCGenCell.h.
DimType ACDCGenerator::ACDCGenCell::theSplitDimension |
The direction in which it has been split.
Definition at line 215 of file ACDCGenCell.h.
ACDCGenCell* ACDCGenerator::ACDCGenCell::theUpper |
Pointers to the upper sub-cell.
Definition at line 200 of file ACDCGenCell.h.
double ACDCGenerator::ACDCGenCell::theV |
The volume of this cell.
Definition at line 195 of file ACDCGenCell.h.