diff --git a/DDCore/include/DD4hep/Segmentations.h b/DDCore/include/DD4hep/Segmentations.h
index 395415df75f8b6cfa79a0e04a1ec2871327716fe..deadd6f0e148e8d1561b31e425385d23659142ef 100644
--- a/DDCore/include/DD4hep/Segmentations.h
+++ b/DDCore/include/DD4hep/Segmentations.h
@@ -51,7 +51,7 @@ namespace DD4hep {
       /// Initializing constructor creating a new object of the given DDSegmentation type
       Segmentation(const std::string& type, const std::string& name, BitField64* decoder);
       /// Default constructor
-      Segmentation() : Handle<Object>() { }
+      Segmentation() = default;
       /// Copy Constructor from object
       Segmentation(const Segmentation& e) : Handle<Object>(e) { }
 #ifndef __CINT__
@@ -69,6 +69,8 @@ namespace DD4hep {
       std::string type() const;
       /// Access to the parameters
       Parameters parameters() const;
+      /// Access to parameter by name
+      Parameter  parameter(const std::string& parameterName) const;
       /// Access the main detector element using this segmetnation object
       Handle<DetElementObject> detector() const;
       /// Access the sensitive detector using this segmetnation object
diff --git a/DDCore/src/Segmentations.cpp b/DDCore/src/Segmentations.cpp
index 7e2c5ed4c7441e4b0addcedcb8e791605190473b..77f13ac8b8cabbb8b1200e35a585086dc71f2eb6 100644
--- a/DDCore/src/Segmentations.cpp
+++ b/DDCore/src/Segmentations.cpp
@@ -26,9 +26,6 @@
 using namespace std;
 using namespace DD4hep;
 using namespace DD4hep::Geometry;
-using DD4hep::DDSegmentation::Parameter;
-using DD4hep::DDSegmentation::Parameters;
-using DD4hep::DDSegmentation::SegmentationParameter;
 
 DD4HEP_INSTANTIATE_HANDLE_UNNAMED(SegmentationObject);
 
@@ -56,10 +53,15 @@ bool Segmentation::useForHitPosition() const {
 }
 
 /// Access to the parameters
-Parameters Segmentation::parameters() const {
+Segmentation::Parameters Segmentation::parameters() const {
   return data<Object>()->parameters();
 }
 
+/// Access to parameter by name
+Segmentation::Parameter  Segmentation::parameter(const std::string& parameterName) const   {
+  return data<Object>()->parameter(parameterName);
+}
+
 /// determine the local position based on the cell ID
 Position Segmentation::position(const long64& cell) const {
   return Position(data<Object>()->segmentation->position(cell));
diff --git a/DDRec/src/gear/createGearForILD.cpp b/DDRec/src/gear/createGearForILD.cpp
index 04ad85f2c05fafb57848bb014c8bbcd611403d85..84718a3bb9e668e7799ca898d7d8a4c265ac18ba 100644
--- a/DDRec/src/gear/createGearForILD.cpp
+++ b/DDRec/src/gear/createGearForILD.cpp
@@ -405,9 +405,9 @@ namespace DD4hep{
 	      Readout readOut = sD.readout() ;
 	      Segmentation seg = readOut.segmentation() ;
 	      
-	      //	    DDSegmentation::DoubleVecParameter rPar =  dynamic_cast<DDSegmentation::DoubleVecParameter>( seg.segmentation()->parameter("grid_r_values"));
-	      DDSegmentation::DoubleVecParameter pPar =  dynamic_cast<DDSegmentation::DoubleVecParameter>( seg.segmentation()->parameter("grid_phi_values"));
-	      DDSegmentation::DoubleParameter    oPPar=  dynamic_cast<DDSegmentation::DoubleParameter>(    seg.segmentation()->parameter("offset_phi"));
+	      //	    DDSegmentation::DoubleVecParameter rPar =  dynamic_cast<DDSegmentation::DoubleVecParameter>( seg.parameter("grid_r_values"));
+	      DDSegmentation::DoubleVecParameter pPar =  dynamic_cast<DDSegmentation::DoubleVecParameter>( seg.parameter("grid_phi_values"));
+	      DDSegmentation::DoubleParameter    oPPar=  dynamic_cast<DDSegmentation::DoubleParameter>(    seg.parameter("offset_phi"));
 	      
 
 	      //offset_phi="-180*degree+(360*degree-BCal_SpanningPhi)*0.5"