Hello I'm trying to draw objects from a GEANT3 geometry, which I have successfully read into ROOT. I managed to get a pointer to a certain volume and then draw it, using (name is a character string variable containing the name of the volume I want to draw) TGeoVolume *volu = gGeoManager->GetListOfVolumes()->FindObject(name); name->Draw(); but I need to do the same for TGeoNodes, because I want to draw only the parts of the detector that saw a hit. The same recipe to get the pointer doesn't work, though, (I mean TGeoNode *node = gGeoManager->GetListOfNodes()->FindObject(name); node->Draw(); ) giving the message Error: illegal pointer to class object node 0x0 803 FILE:(tmpfile) LINE:1 *** Interpreter error recovered *** and neither does GetNode(), GetNodes() and FindNode(). The message I get is Error: Can't call TObjArray::GetNode("SDSC") in current scope FILE:(tmpfile) LINE:1 Possible candidates are... filename line:size busy function type and name (in TObjArray) filename line:size busy function type and name (in TSeqCollection) filename line:size busy function type and name (in TCollection) filename line:size busy function type and name (in TObject) Error: non class,struct,union object GetListOfNodes() used with . or -> FILE:(tmpfile) LINE:1 *** Interpreter error recovered *** I guess I have to set the node I want to retrieve as current node, but how do I do that? Or do I also need to specify the copy number when I call TGeoNode functions? In the next step, when I'll draw the nodes, is it possible to draw only the ones that saw a hit but in global coordinates (if the node appears always in the middle of the screen, as it happens for volumes, it's not very helpful...)? Maybe if I overlay them with a basic drawing of the whole detector? Thanks Ilektra Christidi
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET