diff --git a/DDCore/src/Segementations.cpp b/DDCore/src/Segementations.cpp index 317efd6b0fee14731c054d541898466e595362d6..a055c3cd92e3d286e9805233c8e0c2f801071697 100644 --- a/DDCore/src/Segementations.cpp +++ b/DDCore/src/Segementations.cpp @@ -55,15 +55,20 @@ const string Segmentation::type() const { /// Assign segmentation object void Segmentation::setSegmentation(DD4hep::DDSegmentation::Segmentation* segmentation) { - Object& o = object<Object>(); - if (o.segmentation != 0) { - delete o.segmentation; - } - o.segmentation = segmentation; + Object& o = object<Object>(); + if (o.segmentation != 0) { + delete o.segmentation; + } + o.segmentation = segmentation; } + /// Access segmentation object DD4hep::DDSegmentation::Segmentation* Segmentation::segmentation() { - return object<Object>().segmentation; + Object& o = object<Object>(); + if (o.segmentation != 0) + return o.segmentation; + throw runtime_error("DD4hep: The segmentation object "+string(type())+ + " knows no implementation object [This is no longer allowed in the presence of DDSegmentation]"); } /// Add an extension object to the detector element