From edd5d0fe56e858545bf6ee636d847ef8fccb8c65 Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Fri, 5 Jul 2019 18:05:11 +0200 Subject: [PATCH] Improve event data class for DDDigi --- DDDigi/CMakeLists.txt | 2 +- DDDigi/include/DDDigi/DigiData.h | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/DDDigi/CMakeLists.txt b/DDDigi/CMakeLists.txt index 583a32b9d..2da6aba78 100644 --- a/DDDigi/CMakeLists.txt +++ b/DDDigi/CMakeLists.txt @@ -11,13 +11,13 @@ dd4hep_package( DDDigi USES DDCore [ROOT REQUIRED COMPONENTS Geom GenVector RIO] + BOOST INCLUDE_DIRS include INSTALL_INCLUDES include/DDDigi ) #---Add Library--------------------------------------------------------------------- dd4hep_add_package_library(DDDigi SOURCES src/*.cpp [OPTIONAL TBB REQUIRED] - [OPTIONAL BOOST REQUIRED] ) if( TBB_INCLUDE_DIR ) dd4hep_print( "|++> TBB_INCLUDE_DIR --> ${TBB_INCLUDE_DIR}") diff --git a/DDDigi/include/DDDigi/DigiData.h b/DDDigi/include/DDDigi/DigiData.h index 7f3dc6cbf..175247668 100644 --- a/DDDigi/include/DDDigi/DigiData.h +++ b/DDDigi/include/DDDigi/DigiData.h @@ -15,6 +15,7 @@ /// Framework include files #include "DD4hep/Any.h" +#include "DD4hep/Printout.h" #include "DD4hep/Primitives.h" #include "DD4hep/ObjectExtensions.h" @@ -165,19 +166,22 @@ namespace dd4hep { template<typename T> bool put(const Key& key, dd4hep::any&& object) { bool ret = data.emplace(key.toLong(),object).second; if ( ret ) return ret; - throw std::runtime_error("Invalid requested to store data in event container. Key:%ld",key.toLong()); + except("DigiEvent","Invalid requested to store data in event container. Key:%ld",key.toLong()); + throw std::runtime_error("DigiEvent"); // Will never get here! } /// Retrieve item by key from the event data container template<typename T> T& get(const Key& key) { auto iter = data.find(key.toLong()); if ( iter != data.end() ) return dd4hep::any_cast<T&>((*iter).second); - throw std::runtime_error("Invalid data requested from event container. Key:%ld",key.toLong()); + except("DigiEvent","Invalid data requested from event container. Key:%ld",key.toLong()); + throw std::runtime_error("DigiEvent"); // Will never get here! } /// Retrieve item by key from the event data container template<typename T> const T& get(const Key& key) const { auto iter = data.find(key.toLong()); if ( iter != data.end() ) return dd4hep::any_cast<const T&>((*iter).second); - throw std::runtime_error("Invalid data requested from event container. Key:%ld",key.toLong()); + except("DigiEvent","Invalid data requested from event container. Key:%ld",key.toLong()); + throw std::runtime_error("DigiEvent"); // Will never get here! } /// Add an extension object to the detector element void* addExtension(unsigned long long int k, ExtensionEntry* e) { -- GitLab