ROOT logo
ROOT » ROOFIT » ROOFITCORE » RooGrid

class RooGrid: public TObject, public RooPrintable



RooGrid is a utility class for RooMCIntegrator which implements an adaptive multi-dimensional Monte Carlo numerical integration, following the VEGAS algorithm.

Function Members (Methods)

public:
RooGrid()
RooGrid(const RooAbsFunc& function)
RooGrid(const RooGrid&)
virtual~RooGrid()
voidTObject::AbstractMethod(const char* method) const
voidaccumulate(const UInt_t* bin, Double_t amount)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
Double_tcoord(Int_t i, Int_t j) const
virtual voidTObject::Copy(TObject& object) const
UInt_t*createIndexVector() const
Double_t*createPoint() const
virtual Int_tRooPrintable::defaultPrintContents(Option_t* opt) const
static ostream&RooPrintable::defaultPrintStream(ostream* os = 0)
virtual RooPrintable::StyleOptionRooPrintable::defaultPrintStyle(Option_t* opt) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidfirstBox(UInt_t* box) const
voidgeneratePoint(const UInt_t* box, Double_t* x, UInt_t* bin, Double_t& vol, Bool_t useQuasiRandom = kTRUE) const
UInt_tgetDimension() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
UInt_tgetNBins() const
UInt_tgetNBoxes() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tgetVolume() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
Bool_tinitialize(const RooAbsFunc& function)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tisValid() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
static voidRooPrintable::nameFieldLength(Int_t newLen)
Bool_tnextBox(UInt_t* box) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
RooGrid&operator=(const RooGrid&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* options = 0) const
virtual voidRooPrintable::printAddress(ostream& os) const
virtual voidRooPrintable::printArgs(ostream& os) const
virtual voidprintClassName(ostream& os) const
virtual voidRooPrintable::printExtras(ostream& os) const
virtual voidprintMultiline(ostream& os, Int_t contents, Bool_t verbose = kFALSE, TString indent = "") const
virtual voidprintName(ostream& os) const
virtual voidRooPrintable::printStream(ostream& os, Int_t contents, RooPrintable::StyleOption style, TString indent = "") const
virtual voidprintTitle(ostream& os) const
virtual voidRooPrintable::printTree(ostream& os, TString indent = "") const
virtual voidRooPrintable::printValue(ostream& os) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidrefine(Double_t alpha = 1.5)
voidTObject::ResetBit(UInt_t f)
voidresetValues()
voidresize(UInt_t bins)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetNBoxes(UInt_t boxes)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
Double_tvalue(Int_t i, Int_t j) const
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
Double_t&coord(Int_t i, Int_t j)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
Double_t&newCoord(Int_t i)
Double_t&value(Int_t i, Int_t j)

Data Members

public:
enum { maxBins
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
enum RooPrintable::ContentsOption { kName
kClassName
kValue
kArgs
kExtras
kAddress
kTitle
kCollectionHeader
};
enum RooPrintable::StyleOption { kInline
kSingleLine
kStandard
kVerbose
kTreeStructure
};
protected:
UInt_t_bins
UInt_t_boxesNumber of dimensions, bins and boxes
Double_t*_d! Internal workspace
Double_t*_delx! Internal workspace
UInt_t_dim
static Int_tRooPrintable::_nameLength
Bool_t_validIs configuration valid
Double_t_volVolume
Double_t*_weight! Internal workspace
Double_t*_xi! Internal workspace
Double_t*_xin! Internal workspace
Double_t*_xl! Internal workspace
Double_t*_xu! Internal workspace

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

RooGrid()
 Default constructor
RooGrid(const RooAbsFunc& function)
 Constructor with given function binding
~RooGrid()
 Destructor
Bool_t initialize(const RooAbsFunc& function)
 Calculate and store the grid dimensions and volume using the
 specified function, and initialize the grid using a single bin.
 Return kTRUE, or else kFALSE if the range is not valid.
void resize(UInt_t bins)
 Adjust the subdivision of each axis to give the specified
 number of bins, using an algorithm that preserves relative
 bin density. The new binning can be finer or coarser than
 the original binning.
void resetValues()
 Reset the values associated with each grid cell.
void generatePoint(const UInt_t* box, Double_t* x, UInt_t* bin, Double_t& vol, Bool_t useQuasiRandom = kTRUE) const
 Generate a random vector in the specified box and and store its
 coordinates in the x[] array provided, the corresponding bin
 indices in the bin[] array, and the volume of this bin in vol.
 The box is specified by the array box[] of box integer indices
 that each range from 0 to getNBoxes()-1.
void firstBox(UInt_t* box) const
 Reset the specified array of box indices to refer to the first box
 in the standard traversal order.
Bool_t nextBox(UInt_t* box) const
 Update the specified array of box indices to refer to the next box
 in the standard traversal order and return kTRUE, or else return
 kFALSE if we the indices already refer to the last box.
void printMultiline(ostream& os, Int_t contents, Bool_t verbose = kFALSE, TString indent = "") const
 Print info about this object to the specified stream.
void printName(ostream& os) const
 Print name of grid object
void printTitle(ostream& os) const
 Print title of grid object
void printClassName(ostream& os) const
 Print class name of grid object
void accumulate(const UInt_t* bin, Double_t amount)
 Add the specified amount to bin[j] of the 1D histograms associated
 with each axis j.
void refine(Double_t alpha = 1.5)
 Refine the grid using the values that have been accumulated so far.
 The parameter alpha controls the stiffness of the rebinning and should
 usually be between 1 (stiffer) and 2 (more flexible). A value of zero
 prevents any rebinning.
RooGrid()
void Print(Option_t* options = 0) const
Bool_t isValid() const
{ return _valid; }
UInt_t getDimension() const
{ return _dim; }
Double_t getVolume() const
{ return _vol; }
UInt_t getNBins() const
{ return _bins; }
UInt_t getNBoxes() const
{ return _boxes; }
void setNBoxes(UInt_t boxes)
{ _boxes= boxes; }
Double_t * createPoint() const
{ return _valid ? new Double_t[_dim] : 0; }
UInt_t * createIndexVector() const
{ return _valid ? new UInt_t[_dim] : 0; }
Double_t coord(Int_t i, Int_t j) const
 Accessor for the j-th normalized grid point along the i-th dimension
{ return _xi[i*_dim + j]; }
Double_t value(Int_t i, Int_t j) const
{ return _d[i*_dim + j]; }
Double_t& coord(Int_t i, Int_t j)
{ return _xi[i*_dim + j]; }
Double_t& value(Int_t i, Int_t j)
{ return _d[i*_dim + j]; }
Double_t& newCoord(Int_t i)
{ return _xin[i]; }