diff --git a/DDCore/src/plugins/ReadoutSegmentations.cpp b/DDCore/src/plugins/ReadoutSegmentations.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7462e7d931e8557762d2a7cc375ff5ec24ba8b44 --- /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 88cce3e9eb8d750d0fb8f6254a4867b6196f875b..f6cd2087f2c0ec87d20971208752718523afbcad 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 1f8d420a165866fcbd4a3b50e4737e50d6c1ec4e..a4bec58b4da4f03230c75de63349817dd0dcff51 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 e89599ac6a4f9728c91c7d0df28e0231cb0a80e8..2c151bb0a8baaa6ea8d9d190ed2b705feb42a032 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 1ff9bb5c93218c1c877d0e24b69d562bd2cb94cd..47204dcd77215af7a5e685a927b09b20e582355e 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 a105b93553bf2bd0f8d31d4451c87a83b6114f8f..f0e3743c32a8af534059dd0359e53412775f5a48 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 e2403f11e7aeb6209c9ab8db3647bc0efeada55d..9366f8e263407bd6bb8f61a86d293c539dcdf815 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 d2e27ac6dbf47970f55e3133893dc4abdbc06bfa..3b57882998db3f9d068d8f56ee6a2a7a000c22f2 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 7a8b0e5415a72b3a30f400d05e3f7365ed2745cd..aeb75490c2775db1585332076a323618ef31cc60 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 dafff9915708e0dbf5d4ead9aefd4986c4095562..7da109951604a86e3de9e04c178782ba7c8ff947 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 bbe7c6c5a5582e687f0d40f5779a4541fa8610d5..d9582f589f2dce4050fcef10045dfd6dcc142111 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 bdc3b93eeca0e812d22f1c9b74dd6d789fba1314..2e522472d29068c1015145367808ef85f38530ec 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 67ba05b6936ae04e05d41429ff55d0293a7f1882..2c4257f0cf40283ed744b7b00ba7d597d8713ca3 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 112af39bdff022caa4ec5d65c660b18dc3c0da1a..8ad9473612129316f88b56e0c174216024e107a5 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 6bbf5aa71c3fc05bad27f1563b9e63db7151be80..adf4a4446d522d137de17176b548058046137478 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 6a4e021d961f384a3b59be73c6cf03f6c935cbf1..3819e4baded06cd655864356fb16427ae93ad502 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 36ac181553f022f7579287080fbd75b2bd643e82..32d9432feb30efc144b4b10c6b3ff733bae0e662 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 52c9a4e08df7546e13727eaddc34e38634d3ce3d..608c975497568693428be2e9ad63e6111295f2f7 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>)