From 7b6331f7d820d0e52243b2f2f0ca48c8cab9c845 Mon Sep 17 00:00:00 2001 From: Andrea Dell'Acqua <andrea.dellacqua@cern.ch> Date: Wed, 30 Nov 2022 13:06:51 +0100 Subject: [PATCH] small changes in the GDML processor (to avoid crashes with elemenent fractions) and in the GeoModelXML (to add a set element as used in the muons) --- GeoModelCore/GeoModelKernel/src/GeoMaterial.cxx | 2 +- GeoModelTools/GDMLtoGM/src/GDMLController.cxx | 1 + .../GeoModelXML/GeoModelXml/src/AssemblyrefProcessor.cxx | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/GeoModelCore/GeoModelKernel/src/GeoMaterial.cxx b/GeoModelCore/GeoModelKernel/src/GeoMaterial.cxx index c4e3bcc47..1727e5e44 100755 --- a/GeoModelCore/GeoModelKernel/src/GeoMaterial.cxx +++ b/GeoModelCore/GeoModelKernel/src/GeoMaterial.cxx @@ -294,7 +294,7 @@ void GeoMaterial::lock () if (getNumElements () == 0) { - throw std::out_of_range ("Attempt to lock a material with no elements"); + throw std::out_of_range ("Attempt to lock a material with no elements "+getName()); return; } diff --git a/GeoModelTools/GDMLtoGM/src/GDMLController.cxx b/GeoModelTools/GDMLtoGM/src/GDMLController.cxx index 914cb4ab8..04418055c 100644 --- a/GeoModelTools/GDMLtoGM/src/GDMLController.cxx +++ b/GeoModelTools/GDMLtoGM/src/GDMLController.cxx @@ -263,6 +263,7 @@ void GDMLController::registerHandlers() new MEEHandler("MEE",this); new atomHandler("atom",this); new fractionHandler("fraction",this); + new fractionHandler("composite",this); new isotopeHandler("isotope",this); new elementHandler("element",this); new materialHandler("material",this); diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/AssemblyrefProcessor.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/AssemblyrefProcessor.cxx index fa940e063..a0e63cf7f 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/src/AssemblyrefProcessor.cxx +++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/AssemblyrefProcessor.cxx @@ -35,7 +35,7 @@ char *toRelease; toRelease = XMLString::transcode(elem->getNodeName()); string nodeName(toRelease); XMLString::release(&toRelease); - if (nodeName != string("assembly")) { + if (nodeName != string("assembly") && nodeName != string("set")) { msglog << MSG::FATAL << "Error in xml/gmx file: assemblyref " << XMLString::transcode(idref) << " referenced a " << nodeName << " instead of an assembly.\n"; std::abort(); -- GitLab