diff --git a/DDCore/src/segmentations/MegatileLayerGridXY.cpp b/DDCore/src/segmentations/MegatileLayerGridXY.cpp
index d9582f589f2dce4050fcef10045dfd6dcc142111..3ed0fb958d3c9dbc328f3e0f36f7bbfbe6e660da 100644
--- a/DDCore/src/segmentations/MegatileLayerGridXY.cpp
+++ b/DDCore/src/segmentations/MegatileLayerGridXY.cpp
@@ -6,13 +6,13 @@
  *              D Jeans UTokyo
  */
 
-#include "DDSegmentation/MegatileLayerGridXY.h"
+#include <DDSegmentation/MegatileLayerGridXY.h>
+#include <DD4hep/Printout.h>
 
 #undef NDEBUG
 #include <cmath>
 #include <cassert>
 #include <algorithm>
-#include <iostream>
 
 namespace dd4hep {
   namespace DDSegmentation {
@@ -76,9 +76,9 @@ namespace dd4hep {
       cellPosition.Y = ( cellIndexY + 0.5 ) * (_currentSegInfo.megaTileSizeY / _currentSegInfo.nCellsY ) + _currentSegInfo.megaTileOffsetY;
 
       if ( fabs( cellPosition.X )>10000e0 || fabs( cellPosition.Y )>10000e0 ) {
-        std::cout << "crazy cell position: " << cellPosition.X << " " << cellPosition.Y << std::endl;
-        std::cout << "layer, wafer, cellx,y indices: " << layerIndex << " " << waferIndex
-                  << " " << cellIndexX << " " << cellIndexY << std::endl;
+        printout(WARNING,"MegatileLayerGridXY", "crazy cell position: x: %f y: %f ", cellPosition.X, cellPosition.Y);
+        printout(WARNING,"MegatileLayerGridXY", "layer, wafer, cellx,y indices: %d %d %d %d",
+		 layerIndex, waferIndex, cellIndexX, cellIndexY);
         assert(0 && "crazy cell position?");
       }
 
diff --git a/DDCore/src/segmentations/MultiSegmentation.cpp b/DDCore/src/segmentations/MultiSegmentation.cpp
index 2e522472d29068c1015145367808ef85f38530ec..6dd0c4c00ec75d8c202855b8a170b541dcbd4baa 100644
--- a/DDCore/src/segmentations/MultiSegmentation.cpp
+++ b/DDCore/src/segmentations/MultiSegmentation.cpp
@@ -5,11 +5,11 @@
  *      Author: Christian Grefe, CERN
  */
 
-#include "DDSegmentation/MultiSegmentation.h"
+#include <DDSegmentation/MultiSegmentation.h>
+#include <DD4hep/Printout.h>
 
 #include <iomanip>
 #include <stdexcept>
-#include <iostream>
 
 using namespace std;
 
@@ -71,12 +71,12 @@ namespace dd4hep {
           if ( e.key_min<= seg_id && e.key_max >= seg_id )   {
             Segmentation* s = e.segmentation;
             if ( m_debug > 0 )   {
-              cout << "MultiSegmentation: id:" << setw(4) << hex << seg_id << dec << "  " << s->name();
+              printout(ALWAYS,"MultiSegmentation","Id: %04X %s", seg_id, s->name().c_str());
               const Parameters& pars = s->parameters();
-              for(Parameters::const_iterator j=pars.begin(); j!=pars.end();++j)  {
-                cout << " " << (*j)->name() << "=" << (*j)->value();
+              for( const auto* p : pars )   {
+                printout(ALWAYS,"MultiSegmentation"," Param  %s = %s",
+			 p->name().c_str(), p->value().c_str());
               }
-              cout << endl;
             }
             return *s;
           }
diff --git a/DDCore/src/segmentations/TiledLayerGridXY.cpp b/DDCore/src/segmentations/TiledLayerGridXY.cpp
index 32d9432feb30efc144b4b10c6b3ff733bae0e662..a3630381a8310a1d74d474bc81c53e408dd808d0 100644
--- a/DDCore/src/segmentations/TiledLayerGridXY.cpp
+++ b/DDCore/src/segmentations/TiledLayerGridXY.cpp
@@ -5,12 +5,12 @@
  *      Author: Shaojun Lu, DESY
  */
 
-#include "DDSegmentation/TiledLayerGridXY.h"
+#include <DDSegmentation/TiledLayerGridXY.h>
+#include <DD4hep/Printout.h>
 
 // C/C++ includes
 #include <algorithm>
 #include <sstream>
-#include <iostream>
 #include <stdexcept>
 #include <cmath>
 
@@ -24,7 +24,7 @@ TiledLayerGridXY::TiledLayerGridXY(const std::string& cellEncoding) :
 	_type = "TiledLayerGridXY";
 	_description = "Cartesian segmentation in the local XY-plane using optimal tiling depending on the layer dimensions";
     
-	std::cout << " ######### dd4hep::DDSegmentation::TiledLayerGridXY() " << std::endl ; 
+	printout(INFO, "TiledLayerGridXY", " ######### dd4hep::DDSegmentation::TiledLayerGridXY() "); 
       
 	// register all necessary parameters
 	registerParameter("grid_size_x", "Cell size in X", _gridSizeX, 1., SegmentationParameter::LengthUnit);
@@ -46,7 +46,7 @@ TiledLayerGridXY::TiledLayerGridXY(const BitFieldCoder* decode) : CartesianGrid(
 	_type = "TiledLayerGridXY";
 	_description = "Cartesian segmentation in the local XY-plane using optimal tiling depending on the layer dimensions";
     
-	std::cout << " ######### dd4hep::DDSegmentation::TiledLayerGridXY() " << std::endl ; 
+	printout(INFO, "TiledLayerGridXY", " ######### dd4hep::DDSegmentation::TiledLayerGridXY() "); 
       
 	// register all necessary parameters
 	registerParameter("grid_size_x", "Cell size in X", _gridSizeX, 1., SegmentationParameter::LengthUnit);