diff --git a/DDRec/include/DDRec/DetectorData.h b/DDRec/include/DDRec/DetectorData.h index 50af66a03e2f138ee8a7ed99bb640e29bd84d9bb..dcf1162d4f89d0cab94008382ed73e480ca1d8d3 100644 --- a/DDRec/include/DDRec/DetectorData.h +++ b/DDRec/include/DDRec/DetectorData.h @@ -517,13 +517,22 @@ namespace dd4hep { const T& get(const std::string& key) const { auto it = variantParameters.find(key); if(it == variantParameters.end()) { - throw std::runtime_error{"Key "+key+"not found"}; + throw std::runtime_error{"Key "+key+" not found"}; } return boost::get<T>(it->second); } template <typename T> - T value_or(const std::string& key, T alternative) { + T& get(const std::string& key) { + auto it = variantParameters.find(key); + if(it == variantParameters.end()) { + throw std::runtime_error{"Key "+key+" not found"}; + } + return boost::get<T>(it->second); + } + + template <typename T> + T value_or(const std::string& key, T alternative) const { auto it = variantParameters.find(key); if(it == variantParameters.end()) { return alternative;