library: libGeom #include "TGeoCache.h" |
TGeoNodeArray
class description - source file - inheritance tree (.pdf)
public:
TGeoNodeArray()
TGeoNodeArray(Int_t ndaughters, Int_t size = 0)
TGeoNodeArray(const TGeoNodeArray&)
virtual ~TGeoNodeArray()
virtual Int_t AddDaughter(TGeoNode* node, Int_t i)
virtual Int_t AddMatrix(TGeoMatrix* global)
virtual Int_t AddNode(TGeoNode* node)
virtual void cd(Int_t inode)
static TClass* Class()
virtual void ClearDaughter(Int_t ind)
virtual void ClearMatrix()
virtual void ClearNode()
virtual void Compact()
void DeleteArray()
virtual Int_t GetDaughter(Int_t ind) const
virtual Int_t GetMatrixInd() const
virtual Int_t GetNdaughters() const
virtual TGeoNode* GetNode() const
Int_t GetNused() const
Int_t GetSize() const
virtual Int_t GetUsageCount() const
virtual Bool_t HasDaughters() const
virtual void IncreaseArray()
virtual void IncrementUsageCount()
virtual TClass* IsA() const
virtual Bool_t IsPersistent() const
TGeoNodeArray& operator=(const TGeoNodeArray&)
virtual void SetMatrix(Int_t mind)
virtual void SetPersistency(Bool_t flag = kTRUE)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
Int_t fNodeSize size of a node in bytes
Int_t fNdaughters number of daughters for nodes in this array
Int_t* fOffset [fSize*fNodeSize] offset of the current node
Int_t* fArray array of nodes
protected:
Int_t fSize number of nodes stored in array
Int_t fFirstFree index of first free location
Int_t fCurrent index of current node
Int_t fNused number of used nodes
TBits* fBitsArray occupancy flags
public:
static const Int_t fgGeoArrayMaxSize maximum cache size
static const Int_t fgGeoArrayInitSize initial cache size
static const Int_t fgGeoReleasedSpace default number of nodes released on cleaning
Physical tree description.
/*
*/
TGeoNodeArray()
dummy ctor
TGeoNodeArray(Int_t ndaughters, Int_t size)
default constructor
~TGeoNodeArray()
destructor
DeleteArray();
Int_t AddDaughter(TGeoNode *node, Int_t i)
--- Add node as i-th daughter of current node of this array
Int_t AddMatrix(TGeoMatrix *global)
Adds a global matrix to the current node in this array
void Compact()
compact the array
void DeleteArray()
Int_t AddNode(TGeoNode *node)
Add node in the node array. The number of daughters
MUST be equal to fNdaughters (no check for speed reasons)
It does not check if node is already in the cache. This is
done by AddDaughter
first compute the offset of the first free location
void ClearDaughter(Int_t ind)
clear the daughter ind from the list of the current node. Send the
signal back to TGeoNodeCache, that proceeds with dispatching the
clear signal for all the branch
void ClearMatrix()
clears the global matrix of this node from matrix cache
void ClearNode()
clear the current node. All branch from this point downwords
will be deleted
remember the current node
Bool_t HasDaughters() const
void IncreaseArray()
Doubles the array size unless maximum cache limit is reached or
global cache limit is reached. In this case forces the cache
manager to do the garbage collection.
printf("Increasing array %i\n", fNdaughters);
Bool_t IsPersistent() const
returns persistency flag of the node
void SetPersistency(Bool_t flag)
Inline Functions
void cd(Int_t inode)
Int_t GetDaughter(Int_t ind) const
Int_t GetMatrixInd() const
Int_t GetNdaughters() const
TGeoNode* GetNode() const
Int_t GetNused() const
Int_t GetSize() const
Int_t GetUsageCount() const
void IncrementUsageCount()
void SetMatrix(Int_t mind)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
TGeoNodeArray TGeoNodeArray(const TGeoNodeArray&)
TGeoNodeArray& operator=(const TGeoNodeArray&)
Author: Andrei Gheata 18/03/02
Last update: root/geom:$Name: $:$Id: TGeoCache.cxx,v 1.37 2005/09/02 13:54:38 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.