From f5df9f743c523c62f5b8517a08fc771704c9e98d Mon Sep 17 00:00:00 2001
From: Andre Sailer <andre.philippe.sailer@cern.ch>
Date: Tue, 27 Apr 2021 16:39:19 +0200
Subject: [PATCH] Segmentations: segmentation plugins only in DDCorePlugins,
 leave lines commented

---
 DDCore/src/plugins/ReadoutSegmentations.cpp   | 77 +++++++++++++++++++
 DDCore/src/segmentations/CartesianGridXY.cpp  |  6 +-
 DDCore/src/segmentations/CartesianGridXYZ.cpp |  5 +-
 DDCore/src/segmentations/CartesianGridXZ.cpp  |  5 +-
 DDCore/src/segmentations/CartesianGridYZ.cpp  |  5 +-
 DDCore/src/segmentations/CartesianStripX.cpp  |  6 +-
 DDCore/src/segmentations/CartesianStripY.cpp  |  6 +-
 DDCore/src/segmentations/CartesianStripZ.cpp  |  6 +-
 DDCore/src/segmentations/GridPhiEta.cpp       |  5 +-
 DDCore/src/segmentations/GridRPhiEta.cpp      |  5 +-
 .../src/segmentations/MegatileLayerGridXY.cpp |  5 +-
 .../src/segmentations/MultiSegmentation.cpp   |  5 +-
 DDCore/src/segmentations/NoSegmentation.cpp   |  6 +-
 DDCore/src/segmentations/PolarGridRPhi.cpp    |  6 +-
 DDCore/src/segmentations/PolarGridRPhi2.cpp   |  6 +-
 .../src/segmentations/ProjectiveCylinder.cpp  |  5 +-
 DDCore/src/segmentations/TiledLayerGridXY.cpp |  5 +-
 DDCore/src/segmentations/WaferGridXY.cpp      |  5 +-
 18 files changed, 134 insertions(+), 35 deletions(-)
 create mode 100644 DDCore/src/plugins/ReadoutSegmentations.cpp

diff --git a/DDCore/src/plugins/ReadoutSegmentations.cpp b/DDCore/src/plugins/ReadoutSegmentations.cpp
new file mode 100644
index 000000000..7462e7d93
--- /dev/null
+++ b/DDCore/src/plugins/ReadoutSegmentations.cpp
@@ -0,0 +1,77 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+
+// Framework includes
+#include "DD4hep/detail/SegmentationsInterna.h"
+#include "DD4hep/Factories.h"
+
+using namespace dd4hep;
+using namespace dd4hep::DDSegmentation;
+
+namespace {
+  template<typename T> dd4hep::SegmentationObject*
+  create_segmentation(const dd4hep::BitFieldCoder* decoder)  {
+    return new dd4hep::SegmentationWrapper<T>(decoder);
+  }
+}
+
+#include "DDSegmentation/NoSegmentation.h"
+DECLARE_SEGMENTATION(NoSegmentation,create_segmentation<dd4hep::DDSegmentation::NoSegmentation>)
+
+#include "DDSegmentation/CartesianGridXY.h"
+DECLARE_SEGMENTATION(CartesianGridXY,create_segmentation<dd4hep::DDSegmentation::CartesianGridXY>)
+
+#include "DDSegmentation/CartesianGridXZ.h"
+DECLARE_SEGMENTATION(CartesianGridXZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXZ>)
+
+#include "DDSegmentation/CartesianGridYZ.h"
+DECLARE_SEGMENTATION(CartesianGridYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridYZ>)
+
+#include "DDSegmentation/CartesianGridXYZ.h"
+DECLARE_SEGMENTATION(CartesianGridXYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXYZ>)
+
+#include "DDSegmentation/CartesianStripX.h"
+DECLARE_SEGMENTATION(CartesianStripX,create_segmentation<dd4hep::DDSegmentation::CartesianStripX>)
+
+#include "DDSegmentation/CartesianStripY.h"
+DECLARE_SEGMENTATION(CartesianStripY,create_segmentation<dd4hep::DDSegmentation::CartesianStripY>)
+
+#include "DDSegmentation/CartesianStripZ.h"
+DECLARE_SEGMENTATION(CartesianStripZ,create_segmentation<dd4hep::DDSegmentation::CartesianStripZ>)
+
+#include "DDSegmentation/TiledLayerGridXY.h"
+DECLARE_SEGMENTATION(TiledLayerGridXY,create_segmentation<dd4hep::DDSegmentation::TiledLayerGridXY>)
+
+#include "DDSegmentation/MegatileLayerGridXY.h"
+DECLARE_SEGMENTATION(MegatileLayerGridXY,create_segmentation<dd4hep::DDSegmentation::MegatileLayerGridXY>)
+
+#include "DDSegmentation/WaferGridXY.h"
+DECLARE_SEGMENTATION(WaferGridXY,create_segmentation<dd4hep::DDSegmentation::WaferGridXY>)
+
+#include "DDSegmentation/PolarGridRPhi.h"
+DECLARE_SEGMENTATION(PolarGridRPhi,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi>)
+
+#include "DDSegmentation/GridPhiEta.h"
+DECLARE_SEGMENTATION(GridPhiEta,create_segmentation<dd4hep::DDSegmentation::GridPhiEta>)
+
+#include "DDSegmentation/GridRPhiEta.h"
+DECLARE_SEGMENTATION(GridRPhiEta,create_segmentation<dd4hep::DDSegmentation::GridRPhiEta>)
+
+#include "DDSegmentation/PolarGridRPhi2.h"
+DECLARE_SEGMENTATION(PolarGridRPhi2,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi2>)
+
+#include "DDSegmentation/ProjectiveCylinder.h"
+DECLARE_SEGMENTATION(ProjectiveCylinder,create_segmentation<dd4hep::DDSegmentation::ProjectiveCylinder>)
+
+#include "DDSegmentation/MultiSegmentation.h"
+DECLARE_SEGMENTATION(MultiSegmentation,create_segmentation<dd4hep::DDSegmentation::MultiSegmentation>)
diff --git a/DDCore/src/segmentations/CartesianGridXY.cpp b/DDCore/src/segmentations/CartesianGridXY.cpp
index 88cce3e9e..f6cd2087f 100644
--- a/DDCore/src/segmentations/CartesianGridXY.cpp
+++ b/DDCore/src/segmentations/CartesianGridXY.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/CartesianGridXY.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -80,5 +79,6 @@ std::vector<double> CartesianGridXY::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-
-DECLARE_SEGMENTATION(CartesianGridXY,dd4hep::create_segmentation<dd4hep::DDSegmentation::CartesianGridXY>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianGridXY,dd4hep::create_segmentation<dd4hep::DDSegmentation::CartesianGridXY>)
diff --git a/DDCore/src/segmentations/CartesianGridXYZ.cpp b/DDCore/src/segmentations/CartesianGridXYZ.cpp
index 1f8d420a1..a4bec58b4 100644
--- a/DDCore/src/segmentations/CartesianGridXYZ.cpp
+++ b/DDCore/src/segmentations/CartesianGridXYZ.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/CartesianGridXYZ.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -76,4 +75,6 @@ std::vector<double> CartesianGridXYZ::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(CartesianGridXYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXYZ>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianGridXYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXYZ>)
diff --git a/DDCore/src/segmentations/CartesianGridXZ.cpp b/DDCore/src/segmentations/CartesianGridXZ.cpp
index e89599ac6..2c151bb0a 100644
--- a/DDCore/src/segmentations/CartesianGridXZ.cpp
+++ b/DDCore/src/segmentations/CartesianGridXZ.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/CartesianGridXZ.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -83,4 +82,6 @@ std::vector<double> CartesianGridXZ::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(CartesianGridXZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXZ>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianGridXZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXZ>)
diff --git a/DDCore/src/segmentations/CartesianGridYZ.cpp b/DDCore/src/segmentations/CartesianGridYZ.cpp
index 1ff9bb5c9..47204dcd7 100644
--- a/DDCore/src/segmentations/CartesianGridYZ.cpp
+++ b/DDCore/src/segmentations/CartesianGridYZ.cpp
@@ -7,7 +7,6 @@
  *     by Christian Grefe, CERN
  */
 #include "DDSegmentation/CartesianGridYZ.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -81,4 +80,6 @@ std::vector<double> CartesianGridYZ::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(CartesianGridYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridYZ>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianGridYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridYZ>)
diff --git a/DDCore/src/segmentations/CartesianStripX.cpp b/DDCore/src/segmentations/CartesianStripX.cpp
index a105b9355..f0e3743c3 100644
--- a/DDCore/src/segmentations/CartesianStripX.cpp
+++ b/DDCore/src/segmentations/CartesianStripX.cpp
@@ -7,7 +7,6 @@
  */
 
 #include "DDSegmentation/CartesianStripX.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -65,4 +64,7 @@ std::vector<double> CartesianStripX::cellDimensions(const CellID&) const {
 
 }  // namespace DDSegmentation
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(CartesianStripX,create_segmentation<dd4hep::DDSegmentation::CartesianStripX>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianStripX,create_segmentation<dd4hep::DDSegmentation::CartesianStripX>)
diff --git a/DDCore/src/segmentations/CartesianStripY.cpp b/DDCore/src/segmentations/CartesianStripY.cpp
index e2403f11e..9366f8e26 100644
--- a/DDCore/src/segmentations/CartesianStripY.cpp
+++ b/DDCore/src/segmentations/CartesianStripY.cpp
@@ -7,7 +7,6 @@
  */
 
 #include "DDSegmentation/CartesianStripY.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -65,4 +64,7 @@ std::vector<double> CartesianStripY::cellDimensions(const CellID&) const {
 
 }  // namespace DDSegmentation
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(CartesianStripY,create_segmentation<dd4hep::DDSegmentation::CartesianStripY>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianStripY,create_segmentation<dd4hep::DDSegmentation::CartesianStripY>)
diff --git a/DDCore/src/segmentations/CartesianStripZ.cpp b/DDCore/src/segmentations/CartesianStripZ.cpp
index d2e27ac6d..3b5788299 100644
--- a/DDCore/src/segmentations/CartesianStripZ.cpp
+++ b/DDCore/src/segmentations/CartesianStripZ.cpp
@@ -7,7 +7,6 @@
  */
 
 #include "DDSegmentation/CartesianStripZ.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -65,4 +64,7 @@ std::vector<double> CartesianStripZ::cellDimensions(const CellID&) const {
 
 }  // namespace DDSegmentation
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(CartesianStripZ,create_segmentation<dd4hep::DDSegmentation::CartesianStripZ>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(CartesianStripZ,create_segmentation<dd4hep::DDSegmentation::CartesianStripZ>)
diff --git a/DDCore/src/segmentations/GridPhiEta.cpp b/DDCore/src/segmentations/GridPhiEta.cpp
index 7a8b0e541..aeb75490c 100644
--- a/DDCore/src/segmentations/GridPhiEta.cpp
+++ b/DDCore/src/segmentations/GridPhiEta.cpp
@@ -1,6 +1,5 @@
 #include "DDSegmentation/GridPhiEta.h"
 #include "DDSegmentation/SegmentationUtil.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -59,4 +58,6 @@ double GridPhiEta::phi(const CellID& cID) const {
 }
 }
 
-DECLARE_SEGMENTATION(GridPhiEta,create_segmentation<dd4hep::DDSegmentation::GridPhiEta>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(GridPhiEta,create_segmentation<dd4hep::DDSegmentation::GridPhiEta>)
diff --git a/DDCore/src/segmentations/GridRPhiEta.cpp b/DDCore/src/segmentations/GridRPhiEta.cpp
index dafff9915..7da109951 100644
--- a/DDCore/src/segmentations/GridRPhiEta.cpp
+++ b/DDCore/src/segmentations/GridRPhiEta.cpp
@@ -1,6 +1,5 @@
 #include "DDSegmentation/GridRPhiEta.h"
 #include "DDSegmentation/SegmentationUtil.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -51,4 +50,6 @@ double GridRPhiEta::r(const CellID& cID) const {
 }
 }
 
-DECLARE_SEGMENTATION(GridRPhiEta,create_segmentation<dd4hep::DDSegmentation::GridRPhiEta>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(GridRPhiEta,create_segmentation<dd4hep::DDSegmentation::GridRPhiEta>)
diff --git a/DDCore/src/segmentations/MegatileLayerGridXY.cpp b/DDCore/src/segmentations/MegatileLayerGridXY.cpp
index bbe7c6c5a..d9582f589 100644
--- a/DDCore/src/segmentations/MegatileLayerGridXY.cpp
+++ b/DDCore/src/segmentations/MegatileLayerGridXY.cpp
@@ -7,7 +7,6 @@
  */
 
 #include "DDSegmentation/MegatileLayerGridXY.h"
-#include "DD4hep/Factories.h"
 
 #undef NDEBUG
 #include <cmath>
@@ -188,4 +187,6 @@ namespace dd4hep {
   } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(MegatileLayerGridXY,create_segmentation<dd4hep::DDSegmentation::MegatileLayerGridXY>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(MegatileLayerGridXY,create_segmentation<dd4hep::DDSegmentation::MegatileLayerGridXY>)
diff --git a/DDCore/src/segmentations/MultiSegmentation.cpp b/DDCore/src/segmentations/MultiSegmentation.cpp
index bdc3b93ee..2e522472d 100644
--- a/DDCore/src/segmentations/MultiSegmentation.cpp
+++ b/DDCore/src/segmentations/MultiSegmentation.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/MultiSegmentation.h"
-#include "DD4hep/Factories.h"
 
 #include <iomanip>
 #include <stdexcept>
@@ -103,4 +102,6 @@ namespace dd4hep {
   } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(MultiSegmentation,create_segmentation<dd4hep::DDSegmentation::MultiSegmentation>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(MultiSegmentation,create_segmentation<dd4hep::DDSegmentation::MultiSegmentation>)
diff --git a/DDCore/src/segmentations/NoSegmentation.cpp b/DDCore/src/segmentations/NoSegmentation.cpp
index 67ba05b69..2c4257f0c 100644
--- a/DDCore/src/segmentations/NoSegmentation.cpp
+++ b/DDCore/src/segmentations/NoSegmentation.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/NoSegmentation.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
   namespace DDSegmentation {
@@ -40,4 +39,7 @@ namespace dd4hep {
 
   } /* namespace DDSegmentation */
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(NoSegmentation,create_segmentation<dd4hep::DDSegmentation::NoSegmentation>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(NoSegmentation,create_segmentation<dd4hep::DDSegmentation::NoSegmentation>)
diff --git a/DDCore/src/segmentations/PolarGridRPhi.cpp b/DDCore/src/segmentations/PolarGridRPhi.cpp
index 112af39bd..8ad947361 100644
--- a/DDCore/src/segmentations/PolarGridRPhi.cpp
+++ b/DDCore/src/segmentations/PolarGridRPhi.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/PolarGridRPhi.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -85,4 +84,7 @@ std::vector<double> PolarGridRPhi::cellDimensions(const CellID& cID) const {
 
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(PolarGridRPhi,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(PolarGridRPhi,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi>)
diff --git a/DDCore/src/segmentations/PolarGridRPhi2.cpp b/DDCore/src/segmentations/PolarGridRPhi2.cpp
index 6bbf5aa71..adf4a4446 100644
--- a/DDCore/src/segmentations/PolarGridRPhi2.cpp
+++ b/DDCore/src/segmentations/PolarGridRPhi2.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/PolarGridRPhi2.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -107,4 +106,7 @@ std::vector<double> PolarGridRPhi2::cellDimensions(const CellID& cID) const {
 
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
-DECLARE_SEGMENTATION(PolarGridRPhi2,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi2>)
+
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(PolarGridRPhi2,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi2>)
diff --git a/DDCore/src/segmentations/ProjectiveCylinder.cpp b/DDCore/src/segmentations/ProjectiveCylinder.cpp
index 6a4e021d9..3819e4bad 100644
--- a/DDCore/src/segmentations/ProjectiveCylinder.cpp
+++ b/DDCore/src/segmentations/ProjectiveCylinder.cpp
@@ -7,7 +7,6 @@
 
 #include "DDSegmentation/ProjectiveCylinder.h"
 #include "DDSegmentation/SegmentationUtil.h"
-#include "DD4hep/Factories.h"
 
 #define _USE_MATH_DEFINES
 #include <cmath>
@@ -85,4 +84,6 @@ double ProjectiveCylinder::phi(const CellID& cID) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(ProjectiveCylinder,create_segmentation<dd4hep::DDSegmentation::ProjectiveCylinder>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(ProjectiveCylinder,create_segmentation<dd4hep::DDSegmentation::ProjectiveCylinder>)
diff --git a/DDCore/src/segmentations/TiledLayerGridXY.cpp b/DDCore/src/segmentations/TiledLayerGridXY.cpp
index 36ac18155..32d9432fe 100644
--- a/DDCore/src/segmentations/TiledLayerGridXY.cpp
+++ b/DDCore/src/segmentations/TiledLayerGridXY.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/TiledLayerGridXY.h"
-#include "DD4hep/Factories.h"
 
 // C/C++ includes
 #include <algorithm>
@@ -127,4 +126,6 @@ std::vector<double> TiledLayerGridXY::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(TiledLayerGridXY,create_segmentation<dd4hep::DDSegmentation::TiledLayerGridXY>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(TiledLayerGridXY,create_segmentation<dd4hep::DDSegmentation::TiledLayerGridXY>)
diff --git a/DDCore/src/segmentations/WaferGridXY.cpp b/DDCore/src/segmentations/WaferGridXY.cpp
index 52c9a4e08..608c97549 100644
--- a/DDCore/src/segmentations/WaferGridXY.cpp
+++ b/DDCore/src/segmentations/WaferGridXY.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DDSegmentation/WaferGridXY.h"
-#include "DD4hep/Factories.h"
 
 namespace dd4hep {
 namespace DDSegmentation {
@@ -130,4 +129,6 @@ std::vector<double> WaferGridXY::cellDimensions(const CellID&) const {
 } /* namespace DDSegmentation */
 } /* namespace dd4hep */
 
-DECLARE_SEGMENTATION(WaferGridXY,create_segmentation<dd4hep::DDSegmentation::WaferGridXY>)
+// This is done DDCore/src/plugins/ReadoutSegmentations.cpp so the plugin is not part of libDDCore
+// needs also #include "DD4hep/Factories.h"
+// DECLARE_SEGMENTATION(WaferGridXY,create_segmentation<dd4hep::DDSegmentation::WaferGridXY>)
-- 
GitLab