ROOT   6.14/05 Reference Guide
TGeoIterator Class Reference

A geometry iterator.

A geometry iterator that sequentially follows all nodes of the geometrical hierarchy of a volume. The iterator has to be initiated with a top volume pointer:

TGeoIterator next(myVolume);

One can use the iterator as any other in ROOT:

TGeoNode *node;
while ((node=next())) {
...
}

The iterator can perform 2 types of iterations that can be selected via:

next.SetType(Int_t type);

Here TYPE can be:

• 0 (default) - 'first daughter next' behavior
• 1 - iteration at the current level only

Supposing the tree structure looks like:

TOP ___ A_1 ___ A1_1 ___ A11_1
| | |___ A12_1
| |_____A2_1 ___ A21_1
| |___ A21_2
|___ B_1 ...

The order of iteration for TYPE=0 is: A_1, A1_1, A11_1, A12_1, A2_1, A21_1, A21_2, B_1, ...

The order of iteration for TYPE=1 is: A_1, B_1, ... At any moment during iteration, TYPE can be changed. If the last iterated node is for instance A1_1 and the iteration type was 0, one can do:

next.SetType(1);

The next iterated nodes will be the rest of A daughters: A2,A3,... The iterator will return 0 after finishing all daughters of A.

During iteration, the following can be retrieved:

The iterator can be reset by changing (or not) the top volume:

### Example:

We want to find out a volume named "MyVol" in the hierarchy of TOP volume.

TIter next(TOP);
TGeoNode *node;
TString name("MyVol");
while ((node=next()))
if (name == node->GetVolume()->GetName()) return node->GetVolume();

Definition at line 243 of file TGeoNode.h.

## Public Member Functions

TGeoIterator (TGeoVolume *top)
Geometry iterator for a branch starting with a TOP node. More...

TGeoIterator (const TGeoIterator &iter)
Copy ctor. More...

virtual ~TGeoIterator ()
Destructor. More...

const TGeoMatrixGetCurrentMatrix () const
Returns global matrix for current node. More...

Int_t GetIndex (Int_t i) const

Int_t GetLevel () const

TGeoNodeGetNode (Int_t level) const
Returns current node at a given level. More...

void GetPath (TString &path) const
Returns the path for the current node. More...

TGeoVolumeGetTopVolume () const

Int_t GetType () const

TGeoIteratorPluginGetUserPlugin () const

TGeoNodeNext ()
Returns next node. More...

TGeoNodeoperator() ()
Returns next node. More...

TGeoIteratoroperator= (const TGeoIterator &iter)
Assignment. More...

void Reset (TGeoVolume *top=0)
Resets the iterator for volume TOP. More...

void SetPluginAutoexec (Bool_t mode)

void SetTopName (const char *name)
Set the top name for path. More...

void SetType (Int_t type)

void SetUserPlugin (TGeoIteratorPlugin *plugin)
Set a plugin. More...

void Skip ()
Stop iterating the current branch. More...

TGeoIterator ()

## Private Member Functions

void IncreaseArray ()
Increase by 30 the size of the array. More...

## Private Attributes

Int_tfArray = nullptr

Int_t fLevel = 0

TGeoHMatrixfMatrix = nullptr

Bool_t fMustResume = kFALSE

Bool_t fMustStop = kFALSE

TGeoIteratorPluginfPlugin = nullptr

Bool_t fPluginAutoexec = kFALSE

TGeoVolumefTop = nullptr

TString fTopName

Int_t fType = 0

#include <TGeoNode.h>

## ◆ TGeoIterator() [1/3]

 TGeoIterator::TGeoIterator ( )
inlineprotected

Definition at line 260 of file TGeoNode.h.

## ◆ TGeoIterator() [2/3]

 TGeoIterator::TGeoIterator ( TGeoVolume * top )

Geometry iterator for a branch starting with a TOP node.

Definition at line 1003 of file TGeoNode.cxx.

## ◆ TGeoIterator() [3/3]

 TGeoIterator::TGeoIterator ( const TGeoIterator & iter )

Copy ctor.

Definition at line 1020 of file TGeoNode.cxx.

## ◆ ~TGeoIterator()

 TGeoIterator::~TGeoIterator ( )
virtual

Destructor.

Definition at line 1038 of file TGeoNode.cxx.

## ◆ GetCurrentMatrix()

 const TGeoMatrix * TGeoIterator::GetCurrentMatrix ( ) const

Returns global matrix for current node.

Definition at line 1156 of file TGeoNode.cxx.

## ◆ GetIndex()

 Int_t TGeoIterator::GetIndex ( Int_t i ) const
inline

Definition at line 273 of file TGeoNode.h.

## ◆ GetLevel()

 Int_t TGeoIterator::GetLevel ( ) const
inline

Definition at line 274 of file TGeoNode.h.

## ◆ GetNode()

 TGeoNode * TGeoIterator::GetNode ( Int_t level ) const

Returns current node at a given level.

Definition at line 1172 of file TGeoNode.cxx.

## ◆ GetPath()

 void TGeoIterator::GetPath ( TString & path ) const

Returns the path for the current node.

Definition at line 1183 of file TGeoNode.cxx.

## ◆ GetTopVolume()

 TGeoVolume* TGeoIterator::GetTopVolume ( ) const
inline

Definition at line 280 of file TGeoNode.h.

## ◆ GetType()

 Int_t TGeoIterator::GetType ( ) const
inline

Definition at line 281 of file TGeoNode.h.

## ◆ GetUserPlugin()

 TGeoIteratorPlugin* TGeoIterator::GetUserPlugin ( ) const
inline

Definition at line 278 of file TGeoNode.h.

## ◆ IncreaseArray()

 void TGeoIterator::IncreaseArray ( )
private

Increase by 30 the size of the array.

Definition at line 1200 of file TGeoNode.cxx.

## ◆ Next()

 TGeoNode * TGeoIterator::Next ( )

Returns next node.

Definition at line 1069 of file TGeoNode.cxx.

## ◆ operator()()

 TGeoNode * TGeoIterator::operator() ( )

Returns next node.

Definition at line 1148 of file TGeoNode.cxx.

## ◆ operator=()

 TGeoIterator & TGeoIterator::operator= ( const TGeoIterator & iter )

Assignment.

Definition at line 1047 of file TGeoNode.cxx.

## ◆ Reset()

 void TGeoIterator::Reset ( TGeoVolume * top = 0 )

Resets the iterator for volume TOP.

Definition at line 1211 of file TGeoNode.cxx.

## ◆ SetPluginAutoexec()

 void TGeoIterator::SetPluginAutoexec ( Bool_t mode )
inline

Definition at line 284 of file TGeoNode.h.

## ◆ SetTopName()

 void TGeoIterator::SetTopName ( const char * name )

Set the top name for path.

Definition at line 1222 of file TGeoNode.cxx.

## ◆ SetType()

 void TGeoIterator::SetType ( Int_t type )
inline

Definition at line 285 of file TGeoNode.h.

## ◆ SetUserPlugin()

 void TGeoIterator::SetUserPlugin ( TGeoIteratorPlugin * plugin )

Set a plugin.

Definition at line 1269 of file TGeoNode.cxx.

## ◆ Skip()

 void TGeoIterator::Skip ( )

Stop iterating the current branch.

The iteration of the next node will behave as if the branch starting from the current node (included) is not existing.

Definition at line 1231 of file TGeoNode.cxx.

## ◆ fArray

 Int_t* TGeoIterator::fArray = nullptr
private

Definition at line 251 of file TGeoNode.h.

## ◆ fLevel

 Int_t TGeoIterator::fLevel = 0
private

Definition at line 249 of file TGeoNode.h.

## ◆ fMatrix

 TGeoHMatrix* TGeoIterator::fMatrix = nullptr
private

Definition at line 252 of file TGeoNode.h.

## ◆ fMustResume

 Bool_t TGeoIterator::fMustResume = kFALSE
private

Definition at line 247 of file TGeoNode.h.

## ◆ fMustStop

 Bool_t TGeoIterator::fMustStop = kFALSE
private

Definition at line 248 of file TGeoNode.h.

## ◆ fPlugin

 TGeoIteratorPlugin* TGeoIterator::fPlugin = nullptr
private

Definition at line 255 of file TGeoNode.h.

## ◆ fPluginAutoexec

 Bool_t TGeoIterator::fPluginAutoexec = kFALSE
private

Definition at line 256 of file TGeoNode.h.

## ◆ fTop

 TGeoVolume* TGeoIterator::fTop = nullptr
private

Definition at line 246 of file TGeoNode.h.

## ◆ fTopName

 TString TGeoIterator::fTopName
private

Definition at line 253 of file TGeoNode.h.

## ◆ fType

 Int_t TGeoIterator::fType = 0
private

Definition at line 250 of file TGeoNode.h.

Libraries for TGeoIterator:
[legend]

The documentation for this class was generated from the following files: