From 1b1df06e84c66eba138d8e7ac1a19cad4ea66167 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Wed, 19 Oct 2016 14:44:41 +0200
Subject: [PATCH] Move to DD4hep segmentations ready for testing...

---
 DDCore/src/plugins/Compact2Objects.cpp | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/DDCore/src/plugins/Compact2Objects.cpp b/DDCore/src/plugins/Compact2Objects.cpp
index 636aa9ad3..21425c6d3 100644
--- a/DDCore/src/plugins/Compact2Objects.cpp
+++ b/DDCore/src/plugins/Compact2Objects.cpp
@@ -899,19 +899,16 @@ template <> void Converter<DetElement>::operator()(xml_h element) const {
     xml_attr_t attr_ro  = element.attr_nothrow(_U(readout));
     SensitiveDetector sd;
     Segmentation seg;
-    if (attr_ro)   {
+    if ( attr_ro )   {
       Readout ro = lcdd.readout(element.attr<string>(attr_ro));
       if (!ro.isValid()) {
         throw runtime_error("No Readout structure present for detector:" + name);
       }
+      seg = ro.segmentation();
       sd = SensitiveDetector(name, "sensitive");
       sd.setHitsCollection(ro.name());
       sd.setReadout(ro);
       lcdd.addSensitiveDetector(sd);
-      seg = ro.segmentation();
-      if ( seg.isValid() )  {
-        seg->sensitive = sd;
-      }
     }
     Ref_t sens = sd;
     DetElement det(Ref_t(PluginService::Create<NamedObject*>(type, &lcdd, &element, &sens)));
@@ -921,7 +918,8 @@ template <> void Converter<DetElement>::operator()(xml_h element) const {
         det->flag |= DetElement::Object::HAVE_SENSITIVE_DETECTOR;
       }
       if ( seg.isValid() )  {
-        seg->detector = det;
+        seg->sensitive = sd;
+        seg->detector  = det;
       }
     }
     printout(det.isValid() ? INFO : ERROR, "Compact", "%s subdetector:%s of type %s %s",
-- 
GitLab