12 #ifndef ROOT_TGeoBranchArray 13 #define ROOT_TGeoBranchArray 19 #ifndef ROOT_TGeoMatrix 68 static size_t SizeOf(
size_t maxlevel)
124 bool operator ()(
Int_t i1,
Int_t i2) {
return **(fData+i1) < **(fData+i2);}
130 bool operator ()(
Int_t i1,
Int_t i2) {
return **(fData+i1) > **(fData+i2);}
static void ReleaseInstance(TGeoBranchArray *obj)
Releases the space allocated for the object.
Geometrical transformation package.
Bool_t operator!=(const TGeoBranchArray &other) const
Not equal operator.
static size_t SizeOf(size_t maxlevel)
Matrix class used for computing global transformations Should NOT be used for node definition...
size_t GetMaxLevel() const
Bool_t operator>(const TGeoBranchArray &other) const
Is equal operator.
Bool_t operator==(const TGeoBranchArray &other) const
Is equal operator.
void InitFromNavigator(TGeoNavigator *nav)
Init the branch array from current navigator state.
const TGeoHMatrix * GetMatrix() const
#define ClassDef(name, id)
TGeoBranchArray(TRootIOCtor *)
Bool_t operator<(const TGeoBranchArray &other) const
Is equal operator.
static TGeoBranchArray * MakeCopy(const TGeoBranchArray &other)
Make a copy of a branch array at the location (if indicated)
compareBAdesc(TGeoBranchArray **d)
virtual void Print(Option_t *option="") const
Print branch information.
virtual Bool_t IsSortable() const
Bool_t operator<=(const TGeoBranchArray &other) const
Is equal operator.
void UpdateArray(size_t nobj)
Updates the internal addresses for n contiguous objects which have the same fMaxLevel Updates the int...
virtual ~TGeoBranchArray()
void GetPath(TString &path) const
Fill path pointed by the array.
Bool_t operator>=(const TGeoBranchArray &other) const
Is equal operator.
void CleanMatrix()
Garbage collect the stored matrix.
static TGeoBranchArray * MakeCopyAt(const TGeoBranchArray &other, void *addr)
Make a copy of a branch array at the location (if indicated)
static Long64_t BinarySearch(Long64_t n, const TGeoBranchArray **array, TGeoBranchArray *value)
Binary search in an array of n pointers to branch arrays, to locate value.
TGeoNode * GetNode(Int_t level) const
void Init(TGeoNode **branch, TGeoMatrix *global, Int_t level)
Init the branch array from an array of nodes, the global matrix for the path and the level...
compareBAasc(TGeoBranchArray **d)
static TGeoBranchArray * MakeInstance(size_t maxlevel)
Make an instance of the class which allocates the node array.
TGeoNode ** GetArray() const
void AddLevel(Int_t dindex)
Add and extra daughter to the current path array. No validity check performed !
TGeoBranchArray & operator=(const TGeoBranchArray &)
Assignment. Not valid anymore. Use TGeoBranchArray::MakeCopy instead.
Mother of all ROOT objects.
Class providing navigation API for TGeo geometries.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
static size_t SizeOfInstance(size_t maxlevel)
#define dest(otri, vertexptr)
An array of daughter indices making a geometry path.
static TGeoBranchArray * MakeInstanceAt(size_t maxlevel, void *addr)
Make an instance of the class which allocates the node array.
void CopyTo(TGeoBranchArray *dest)
Raw memcpy of the branch array content to an existing destination.
TGeoBranchArray(Int_t level)
Constructor. Allocates the array with a size given by level.
void UpdateNavigator(TGeoNavigator *nav) const
Update the navigator to reflect the branch.
static void Sort(Int_t n, TGeoBranchArray **array, Int_t *index, Bool_t down=kTRUE)
Sorting of an array of branch array pointers.
TGeoNode * GetCurrentNode() const
virtual Int_t Compare(const TObject *obj) const
Compare with other object of same type.
TGeoNode * fRealArray[1]
[fMaxLevel+1] Array of nodes