diff --git a/src/TRestGeant4GeometryInfo.cxx b/src/TRestGeant4GeometryInfo.cxx index 48dfca9..940715c 100644 --- a/src/TRestGeant4GeometryInfo.cxx +++ b/src/TRestGeant4GeometryInfo.cxx @@ -9,6 +9,8 @@ #include +#include "TRestTools.h" + using namespace std; namespace myXml { @@ -85,6 +87,19 @@ void TRestGeant4GeometryInfo::PopulateFromGdml(const TString& gdmlFilename) { nameTable[physicalVolumeName] = refName; childrenTable[volumeName].push_back(physicalVolumeName); } + if (volumeRefNodeName.EqualTo("file")) { + TString fullFileName = myXml::GetNodeAttribute(xml, volumeRefNode, "name"); + TString fileName = TRestTools::GetFileNameRoot(fullFileName.Data()); + TString refName = myXml::GetNodeAttribute(xml, volumeRefNode, "ref"); + if (physicalVolumeName.IsNull()) { + physicalVolumeName = fileName + "_PV"; + } + if (refName.IsNull()) { + refName = fileName; + } + nameTable[physicalVolumeName] = refName; // ????????? + childrenTable[volumeName].push_back(physicalVolumeName); // ???????????? + } volumeRefNode = xml.GetNext(volumeRefNode); } physicalVolumeNode = xml.GetNext(physicalVolumeNode);