void printNodeTree(TObjArray *nodeList, Int_t level) { TIter nextNode(nodeList); TGeoNode *node; while( (node=(TGeoNode *)nextNode())!=NULL ) { for(int k=0;k<level;k++) cerr << "\t"; cerr << node->GetVolume()->GetName() << endl; printNodeTree(node->GetNodes(),level+1); } }
TGeoNode * findNode(TObjArray *nodeList,const char *name) { TIter nextNode(nodeList); TGeoNode *node; while( (node=(TGeoNode *)nextNode())!=NULL ) { if(strcmp(node->GetVolume()->GetName(),name)==0) return node; if( (node=findNode(node->GetNodes(),name))!= NULL ) return node; } return NULL; }