diff --git a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h index 861cd14b49403dddcc1f7321893357c11c5114e7..99a97794071c414a94be9911a127812d6e273976 100644 --- a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h +++ b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #ifndef GEOMODELKERNEL_GEOFULLPHYSVOL_H @@ -32,8 +32,8 @@ class GeoFullPhysVol final : public GeoVFullPhysVol public: GeoFullPhysVol (const GeoLogVol* LogVol); - /// Adds a Graph Node to the Geometry Graph. - void add(GeoGraphNode* graphNode); + /// Adds a Graph Node to the Geometry Graph + virtual void add(GeoGraphNode* graphNode) override final; /// Returns the number of child physical volumes. virtual unsigned int getNChildVols() const override; diff --git a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPhysVol.h b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPhysVol.h index 1c35d4ad8d180009dae47d25714c6f381d47266f..bd2ac00fd6c7b6df49dfa844034f78bdff67526c 100644 --- a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPhysVol.h +++ b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPhysVol.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #ifndef GEOMODELKERNEL_GEOPHYSVOL_H @@ -36,7 +36,8 @@ class GeoPhysVol : public GeoVPhysVol GeoPhysVol(const GeoPhysVol &right) = delete; GeoPhysVol & operator=(const GeoPhysVol &right) = delete; - void add(GeoGraphNode* graphNode); + /// Adds a Graph Node to the Geometry Graph + virtual void add(GeoGraphNode* graphNode) override final; /// Returns the number of child physical volumes. virtual unsigned int getNChildVols() const override final; diff --git a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h index b8f9089a4fed90e0849a6cfc5fe371acf9e2823e..d90aefb16095b4354c8dd22211ee2fa88406c737 100644 --- a/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h +++ b/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #ifndef GEOMODELKERNEL_GEOVPHYSVOL_H @@ -86,6 +86,9 @@ class GeoVPhysVol : public GeoGraphNode virtual const GeoGraphNode * const *getChildNode (unsigned int i) const=0; virtual const GeoGraphNode * const *findChildNode(const GeoGraphNode *n) const=0; + /// Adds a Graph Node to the Geometry Graph + virtual void add(GeoGraphNode* graphNode) = 0; + protected: virtual ~GeoVPhysVol(); diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx index b30e41fb8593270dc2cb8225c737df5aaf9706da..b89b976a21304e2bf8dd4fdd73496f7f4ea9c160 100644 --- a/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx +++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "GeoModelXml/Gmx2Geo.h" @@ -16,6 +16,8 @@ #include <xercesc/util/PlatformUtils.hpp> #include "GeoModelKernel/GeoPhysVol.h" +#include "GeoModelKernel/GeoVPhysVol.h" + #include "GeoModelKernel/GeoVolumeTagCatalog.h" #include "ExpressionEvaluator/IEvaluator.h" @@ -105,17 +107,17 @@ Gmx2Geo::Gmx2Geo(const string& xmlFile, GeoPhysVol *addHere, GmxInterface &gmxIn // ADA - check if an envelope is requested, in case we take is and fill it up with the addbranch's contents. XMLCh * envelope_tmp=XMLString::transcode("envelope"); - GeoPhysVol* physVol=addHere; + GeoVPhysVol* physVol=addHere; if (addbranch->hasAttribute(envelope_tmp)) { char *toRelease=XMLString::transcode(addbranch->getAttribute(envelope_tmp)); std::cout<<" envelope requested "<<toRelease<<std::endl; std::string envel=toRelease; XMLString::release(&toRelease); - GeoPhysVol* tmpVol=dynamic_cast<GeoPhysVol*>(GeoVolumeTagCatalog::VolumeTagCatalog()->getTaggedVolume("Envelope",envel)); + GeoVPhysVol* tmpVol=GeoVolumeTagCatalog::VolumeTagCatalog()->getTaggedVolume("Envelope",envel); if (tmpVol) { - std::cout<< " volume "<<envel<<" found in the envelope catalog"<<std::endl; + std::cout<< " Volume "<<envel<<" found in the envelope catalog"<<std::endl; physVol=tmpVol; } }