A++ » INCLUDE » TFoam

class TFoam: public TObject


TFoam is the main class of the multi-dimensional general purpose
Monte Carlo event generator (integrator) FOAM.


Function Members (Methods)

public:
virtual~TFoam()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual voidCarver(Int_t&, Double_t&, Double_t&)
virtual Int_tCellFill(Int_t, TFoamCell*)
virtual voidCheckAll(Int_t)
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
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual Int_tDivide(TFoamCell*)
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 Double_tEval(Double_t*)
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 voidExplore(TFoamCell* Cell)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidFinalize(Double_t&, Double_t&)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidGenerCel2(TFoamCell*&)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual voidGetIntegMC(Double_t&, Double_t&)
virtual voidGetIntNorm(Double_t&, Double_t&)
virtual voidGetMCvect(Double_t*)
virtual Double_tGetMCwt()
virtual voidGetMCwt(Double_t&)
virtual const char*TObject::GetName() const
virtual Long_tGetnCalls() const
virtual Long_tGetnEffev() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Double_tGetPrimary() const
virtual voidGetPrimary(Double_t& prime)
virtual TRandom*GetPseRan() const
virtual TFoamIntegrand*GetRho()
virtual const char*TObject::GetTitle() const
virtual Int_tGetTotDim() const
virtual UInt_tTObject::GetUniqueID() const
virtual const char*GetVersion() const
virtual voidGetWtParams(Double_t, Double_t&, Double_t&, Double_t&)
virtual voidGrow()
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
virtual voidInitCells()
virtual voidInitialize()
virtual voidInitialize(TRandom*, TFoamIntegrand*)
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_tTObject::IsZombie() const
virtual voidLinkCells()
virtual voidTObject::ls(Option_t* option = "") const
virtual voidMakeActiveList()
virtual voidMakeAlpha()
virtual voidMakeEvent()
voidTObject::MayNotUse(const char* method) const
virtual Double_tMCgenerate(Double_t* MCvect)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
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)
TFoam&operator=(const TFoam&)
virtual voidTObject::Paint(Option_t* option = "")
virtual Long_tPeekMax()
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintCells()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidResetPseRan(TRandom* PseRan)
virtual voidResetRho(TFoamIntegrand* Rho)
virtual voidRootPlot2dim(Char_t*)
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 voidSetChat(Int_t Chat)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetEvPerBin(Int_t EvPerBin)
virtual voidSetInhiDiv(Int_t, Int_t)
virtual voidSetkDim(Int_t kDim)
virtual voidSetMaxWtRej(Double_t MaxWtRej)
virtual voidSetnBin(Int_t nBin)
virtual voidSetnCells(Long_t nCells)
virtual voidSetnSampl(Long_t nSampl)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetOptDrive(Int_t OptDrive)
virtual voidSetOptRej(Int_t OptRej)
virtual voidSetPseRan(TRandom* PseRan)
virtual voidSetRho(TFoamIntegrand* Rho)
virtual voidSetRhoInt(void* Rho)
virtual voidSetRhoInt(Double_t(*)(Int_t,Double_t*) fun)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetXdivPRD(Int_t, Int_t, Double_t[])
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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
TFoam()
TFoam(const Char_t*)
TFoam(const TFoam&)
virtual voidTObject::UseCurrentStyle()
virtual voidVaredu(Double_t[], Int_t&, Double_t&, Double_t&)
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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
Double_tSqr(Double_t x) const

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
Double_t*fAlpha[fDim] Internal parameters of the hyperrectangle
TFoamCell**fCells[fNCells] Array of ALL cells
TRefArray*fCellsActArray of pointers to active cells, constructed at the end of foam build-up
Int_tfChatChat=0,1,2 chat level in output, Chat=1 normal level
TStringfDateRelease date of FOAM
Int_tfDimDimension of the integration/simulation space
Int_tfEvPerBinMaximum number of effective (wt=1) events per bin
TObjArray*fHistDbgHistograms of wt, for debug
TObjArray*fHistEdgHistograms of wt, one for each cell edge
TH1D*fHistWtHistogram of the MC wt
Int_t*fInhiDiv! [fDim] Flags for inhibiting cell division
Int_tfLastCeIndex of the last cell
TFoamMaxwt*fMCMonitMonitor of the MC weight for measuring MC efficiency
Double_tfMCerrorand its error
Double_tfMCresultTrue Integral R from MC series
Double_t*fMCvect[fDim] Generated MC vector for the outside user
Double_tfMCwtMC weight
Int_t*fMaskDiv! [fDim] Dynamic Mask for cell division
Double_tfMaxWtRejMaximum weight in rejection for getting wt=1 events
TMethodCall*fMethodCall! ROOT's pointer to user-defined global distribution function
Int_tfNBinNo. of bins in the edge histogram for cell MC exploration
Long_tfNCallsTotal number of the function calls
Int_tfNCellsMaximum number of cells
Long_tfNEffevTotal number of effective events (wt=1) in the foam buildup
Int_tfNSamplNo. of MC events, when dividing (exploring) cell
TStringfNameName of a given instance of the FOAM class
Double_tfNevGenTotal number of the generated MC events
Int_tfNoActNumber of active cells
Int_tfOptDriveOptimization switch =1,2 for variance or maximum weight optimization
Int_tfOptPRDOption switch for predefined division, for quick check
Int_tfOptRejSwitch =0 for weighted events; =1 for unweighted events in MC
Double_t*fPrimAcu[fNoAct] Array of cumulative probability of all active cells
Double_tfPrimePrimary integral R' (R=R'<wt>)
TRandom*fPseRanPointer to user-defined generator of pseudorandom numbers
Int_tfRNmaxMaximum No. of the rand. numb. requested at once
TFoamIntegrand*fRho! Pointer to the user-defined integrand function/distribution
Double_t*fRvec[fRNmax] random number vector from r.n. generator fDim+1 maximum elements
Double_tfSumOveTotal Sum of overveighted events
Double_tfSumWtTotal sum of wt and wt^2
Double_tfSumWt2Total sum of wt and wt^2
TStringfVersionActual version of the FOAM like (1.01m)
Double_tfWtMaxMaximum/Minimum MC weight
Double_tfWtMinMaximum/Minimum MC weight
TFoamVect**fXdivPRD! Lists of division values encoded in one vector per direction

Class Charts

Inheritance Chart:
TObject
TFoam

Function documentation

TFoam()
METHODS

TFoam(const Char_t* )
virtual ~TFoam()
TFoam(const TFoam& )
 Initialization
void Initialize()
void Initialize(TRandom* , TFoamIntegrand* )
void InitCells()
Int_t CellFill(Int_t , TFoamCell* )
void Explore(TFoamCell* Cell)
void Carver(Int_t& , Double_t& , Double_t& )
void Varedu(Double_t[] , Int_t& , Double_t& , Double_t& )
void MakeAlpha()
void Grow()
Long_t PeekMax()
Int_t Divide(TFoamCell* )
void MakeActiveList()
void GenerCel2(TFoamCell*& )
 Generation
Double_t Eval(Double_t* )
void MakeEvent()
void GetMCvect(Double_t* )
void GetMCwt(Double_t& )
Double_t GetMCwt()
Double_t MCgenerate(Double_t* MCvect)
 Finalization
void GetIntegMC(Double_t& , Double_t& )
void GetIntNorm(Double_t& , Double_t& )
void GetWtParams(Double_t , Double_t& , Double_t& , Double_t& )
void Finalize(Double_t& , Double_t& )
TFoamIntegrand * GetRho()
{return fRho;}
TRandom * GetPseRan() const
{return fPseRan;}
void SetRhoInt(void* Rho)
void SetRhoInt(Double_t(*)(Int_t,Double_t*) fun)
void SetRho(TFoamIntegrand* Rho)
void ResetRho(TFoamIntegrand* Rho)
void SetPseRan(TRandom* PseRan)
{fPseRan=PseRan;}
void ResetPseRan(TRandom* PseRan)
 Getters and Setters
void SetkDim(Int_t kDim)
{fDim = kDim;}
void SetnCells(Long_t nCells)
{fNCells =nCells;}
void SetnSampl(Long_t nSampl)
{fNSampl =nSampl;}
void SetnBin(Int_t nBin)
{fNBin = nBin;}
void SetChat(Int_t Chat)
{fChat = Chat;}
void SetOptRej(Int_t OptRej)
{fOptRej =OptRej;}
void SetOptDrive(Int_t OptDrive)
{fOptDrive =OptDrive;}
void SetEvPerBin(Int_t EvPerBin)
{fEvPerBin =EvPerBin;}
void SetMaxWtRej(Double_t MaxWtRej)
{fMaxWtRej=MaxWtRej;}
void SetInhiDiv(Int_t , Int_t )
void SetXdivPRD(Int_t , Int_t , Double_t[] )
 Getters and Setters
const char * GetVersion() const
{return fVersion.Data();}
Int_t GetTotDim() const
{ return fDim;}
Double_t GetPrimary() const
{return fPrime;}
void GetPrimary(Double_t& prime)
{prime = fPrime;}
Long_t GetnCalls() const
{return fNCalls;}
Long_t GetnEffev() const
 Debug
{return fNEffev;}
void CheckAll(Int_t )
void PrintCells()
void RootPlot2dim(Char_t* )
void LinkCells(void)
 Inline
Double_t Sqr(Double_t x) const
{ return x*x;}