ROOT logo
ROOT » GEOM » GEOM » TGeoNodeCache

class TGeoNodeCache: public TObject

 Physical tree description.





/* */

Function Members (Methods)

public:
TGeoNodeCache()
TGeoNodeCache(TGeoNode* top, Bool_t nodeid = kFALSE, Int_t capacity = 30)
virtual~TGeoNodeCache()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidBuildIdArray()
Bool_tCdDown(Int_t index)
voidCdNode(Int_t nodeid)
voidCdTop()
voidCdUp()
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 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
voidFillIdBranch(const Int_t* br, Int_t startlevel = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
void*GetBranch() const
voidGetBranchNames(Int_t* names) const
voidGetBranchNumbers(Int_t* copyNumbers, Int_t* volumeNumbers) const
voidGetBranchOnlys(Int_t* isonly) const
TGeoHMatrix*GetCurrentMatrix() const
Int_tGetCurrentNodeId() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
const Int_t*GetIdBranch() const
Int_tGetLevel() const
void*GetMatrices() const
TGeoNode*GetMother(Int_t up = 1) const
TGeoHMatrix*GetMotherMatrix(Int_t up = 1) const
virtual const char*TObject::GetName() const
TGeoNode*GetNode() const
Int_tGetNodeId() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*GetPath()
Int_tGetStackLevel() const
virtual const char*TObject::GetTitle() const
TGeoNode*GetTopNode() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasIdArray() 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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsDummy() 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
voidLocalToMaster(const Double_t* local, Double_t* master) const
voidLocalToMasterBomb(const Double_t* local, Double_t* master) const
voidLocalToMasterVect(const Double_t* local, Double_t* master) const
virtual voidTObject::ls(Option_t* option = "") const
voidMasterToLocal(const Double_t* master, Double_t* local) const
voidMasterToLocalBomb(const Double_t* master, Double_t* local) const
voidMasterToLocalVect(const Double_t* master, Double_t* local) const
voidTObject::MayNotUse(const char* method) 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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidPopDummy(Int_t ipop = 9999)
Bool_tPopState(Int_t& nmany, Double_t* point = 0)
Bool_tPopState(Int_t& nmany, Int_t level, Double_t* point = 0)
virtual voidTObject::Print(Option_t* option = "") const
Int_tPushState(Bool_t ovlp, Int_t ntmany = 0, Int_t startlevel = 0, Double_t* point = 0)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRefresh()
voidTObject::ResetBit(UInt_t f)
Bool_tRestoreState(Int_t& nmany, TGeoCacheState* state, Double_t* point = 0)
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)
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()
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:
TGeoNodeCache(const TGeoNodeCache&)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
TGeoNodeCache&operator=(const TGeoNodeCache&)

Data Members

private:
Int_tfCurrentIDunique ID of current node
Int_tfGeoCacheMaxLevelsmaximum supported number of levels
Int_tfGeoCacheStackSizemaximum size of the stack
Int_tfIdBranch[100]current branch of indices
Int_tfIndexindex in array of ID's
Int_tfLevellevel in the current branch
TGeoHMatrix**fMPBpre-built matrices
TGeoHMatrix*fMatrix! current matrix
TGeoHMatrix**fMatrixBranchcurrent branch of global matrices
TGeoNode*fNode! current node
TGeoNode**fNodeBranchcurrent branch of nodes
Int_t*fNodeIdArray! array of node id's
TStringfPathpath for current branch
TObjArray*fStackstack of cache states
Int_tfStackLevelcurrent level in the stack
TGeoNode*fToptop node

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGeoNodeCache()
 Dummy constructor
TGeoNodeCache(TGeoNode* top, Bool_t nodeid = kFALSE, Int_t capacity = 30)
 Default constructor
TGeoNodeCache(const TGeoNodeCache& )
 Copy constructor
TGeoNodeCache& operator=(const TGeoNodeCache& )
 Assignment operator
~TGeoNodeCache()
 Destructor
void BuildIdArray()
 Builds node id array.
void CdNode(Int_t nodeid)
 Change current path to point to the node having this id.
 Node id has to be in range : 0 to fNNodes-1 (no check for performance reasons)
Bool_t CdDown(Int_t index)
 Make daughter INDEX of current node the active state. Compute global matrix.
void CdUp()
 Make mother of current node the active state.
Int_t GetCurrentNodeId() const
 Returns a fixed ID for current physical node
Int_t GetNodeId() const
 Get unique node id.
void GetBranchNames(Int_t* names) const
 Fill names with current branch volume names (4 char - used by GEANT3 interface).
void GetBranchNumbers(Int_t* copyNumbers, Int_t* volumeNumbers) const
 Fill copy numbers of current branch nodes.
void GetBranchOnlys(Int_t* isonly) const
 Fill copy numbers of current branch nodes.
const char * GetPath()
 Returns the current geometry path.
Int_t PushState(Bool_t ovlp, Int_t ntmany = 0, Int_t startlevel = 0, Double_t* point = 0)
 Push current state into heap.
Bool_t PopState(Int_t& nmany, Double_t* point = 0)
 Pop next state/point from heap.
Bool_t PopState(Int_t& nmany, Int_t level, Double_t* point = 0)
 Pop next state/point from heap and restore matrices starting from LEVEL.
Bool_t RestoreState(Int_t& nmany, TGeoCacheState* state, Double_t* point = 0)
 Pop next state/point from a backed-up state.
void LocalToMaster(const Double_t* local, Double_t* master) const
 Local point converted to master frame defined by current matrix.
void MasterToLocal(const Double_t* master, Double_t* local) const
 Point in master frame defined by current matrix converted to local one.
void LocalToMasterVect(const Double_t* local, Double_t* master) const
 Local vector converted to master frame defined by current matrix.
void MasterToLocalVect(const Double_t* master, Double_t* local) const
 Vector in master frame defined by current matrix converted to local one.
void LocalToMasterBomb(const Double_t* local, Double_t* master) const
 Local point converted to master frame defined by current matrix and rescaled with bomb factor.
void MasterToLocalBomb(const Double_t* master, Double_t* local) const
 Point in master frame defined by current matrix converted to local one and rescaled with bomb factor.
void CdTop()
{fLevel=1; CdUp();}
void FillIdBranch(const Int_t* br, Int_t startlevel = 0)
{memcpy(fIdBranch+startlevel,br,(fLevel+1-startlevel)*sizeof(Int_t)); fIndex=fIdBranch[fLevel];}
const Int_t * GetIdBranch() const
{return fIdBranch;}
void * GetBranch() const
{return fNodeBranch;}
void * GetMatrices() const
{return fMatrixBranch;}
TGeoHMatrix * GetCurrentMatrix() const
{return fMatrix;}
TGeoNode * GetMother(Int_t up = 1) const
{return ((fLevel-up)>=0)?fNodeBranch[fLevel-up]:0;}
TGeoHMatrix * GetMotherMatrix(Int_t up = 1) const
{return ((fLevel-up)>=0)?fMatrixBranch[fLevel-up]:0;}
TGeoNode * GetNode() const
{return fNode;}
TGeoNode * GetTopNode() const
{return fTop;}
Int_t GetLevel() const
{return fLevel;}
Int_t GetStackLevel() const
{return fStackLevel;}
Bool_t HasIdArray() const
Bool_t IsDummy() const
{return kTRUE;}
void PopDummy(Int_t ipop = 9999)
{fStackLevel=(ipop>fStackLevel)?(fStackLevel-1):(ipop-1);}
void Refresh()