From 30d1bded3abf0334aac979e700fc23ff81cb620e Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Fri, 3 Mar 2023 14:27:38 +0100 Subject: [PATCH] Have named object maps --- DDCore/include/DD4hep/DetectorData.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/DDCore/include/DD4hep/DetectorData.h b/DDCore/include/DD4hep/DetectorData.h index 5d0455d16..06c3db6b4 100644 --- a/DDCore/include/DD4hep/DetectorData.h +++ b/DDCore/include/DD4hep/DetectorData.h @@ -57,10 +57,15 @@ namespace dd4hep { * \ingroup DD4HEP_CORE */ class ObjectHandleMap: public Detector::HandleMap { + public: + /// Name the map + std::string name; public: /// Default constructor - ObjectHandleMap() { - } + ObjectHandleMap() = default; + /// Initializing constructor + ObjectHandleMap(const std::string& name); + /// Append entry to map void append(const Handle<NamedObject>& e, bool throw_on_doubles = true) { if (e.isValid()) { std::string n = e.name(); @@ -77,7 +82,7 @@ namespace dd4hep { } throw InvalidObjectError("Attempt to add an invalid object."); } - + /// Append entry to map template <typename T> void append(const Handle<NamedObject>& e, bool throw_on_doubles = true) { T* obj = dynamic_cast<T*>(e.ptr()); if (obj) { @@ -145,6 +150,8 @@ namespace dd4hep { DetectorData(); /// Default destructor virtual ~DetectorData(); + /// Move constructor + DetectorData(DetectorData&& copy) = delete; /// Copy constructor DetectorData(const DetectorData& copy) = delete; /// Assignment operator @@ -206,5 +213,10 @@ namespace dd4hep { const Detector::HandleMap& idSpecifications() const { return m_idDict; } }; + /// Initializing constructor + inline DetectorData::ObjectHandleMap::ObjectHandleMap(const std::string& nam) + : name(nam) + { + } } /* End namespace dd4hep */ #endif // DD4HEP_DETECTORDATA_H -- GitLab