void RecursiveInvisible(TGeoVolume *vol); void RecursiveTransparency(TGeoVolume *vol, Int_t transp); void geomD0(Int_t allVisible = 0) { TGeoManager::Import("http://root.cern/files/d0.root"); gGeoManager->DefaultColors(); gGeoManager->SetMaxVisNodes(40000); // gGeoManager->SetVisLevel(4); if (!allVisible) { RecursiveInvisible(gGeoManager->GetVolume("D0-")); RecursiveInvisible(gGeoManager->GetVolume("D0+")); RecursiveInvisible(gGeoManager->GetVolume("D0WZ")); RecursiveInvisible(gGeoManager->GetVolume("D0WL")); RecursiveTransparency(gGeoManager->GetVolume("MUON"), 90); } gGeoManager->GetVolume("D0")->Draw("ogl"); } void RecursiveInvisible(TGeoVolume *vol) { vol->InvisibleAll(); Int_t nd = vol->GetNdaughters(); for (Int_t i = 0; i < nd; i++) { RecursiveInvisible(vol->GetNode(i)->GetVolume()); } } void RecursiveTransparency(TGeoVolume *vol, Int_t transp) { vol->SetTransparency(transp); Int_t nd = vol->GetNdaughters(); for (Int_t i = 0; i < nd; i++) { RecursiveTransparency(vol->GetNode(i)->GetVolume(), transp); } }