From c0483c812e596639627b773d441f847e3e92a575 Mon Sep 17 00:00:00 2001
From: Shaojun Lu <shaojun.lu@desy.de>
Date: Wed, 18 May 2016 09:34:04 +0000
Subject: [PATCH]  Updated TiledLayerGridXY segmentation, and added two
 functions to set and access the layer identifier string, which may be defined
 in the compact xml file.

---
 DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h | 8 ++++++++
 DDSegmentation/src/TiledLayerGridXY.cpp                  | 3 +--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h b/DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h
index ea9cf8c15..c1cb91a61 100644
--- a/DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h
+++ b/DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h
@@ -68,6 +68,10 @@ public:
 	const std::string& fieldNameY() const {
 		return _yId;
 	}
+	/// access the field name used for Layer
+	const std::string& fieldNameLayer() const {
+		return _identifierLayer;
+	}
 	/// set the grid size in X
 	void setGridSizeX(double cellSize) {
 		_gridSizeX = cellSize;
@@ -100,6 +104,10 @@ public:
 	void setFieldNameY(const std::string& fieldName) {
 		_yId = fieldName;
 	}
+	/// set the field name used for Y
+	void setFieldNameLayer(const std::string& fieldName) {
+	        _identifierLayer= fieldName;
+	}
 	/// set the layer boundary dimension for X
 	void setBoundaryLayerX(double halfX)
 	{
diff --git a/DDSegmentation/src/TiledLayerGridXY.cpp b/DDSegmentation/src/TiledLayerGridXY.cpp
index 2c05b508a..6d7b4bf55 100644
--- a/DDSegmentation/src/TiledLayerGridXY.cpp
+++ b/DDSegmentation/src/TiledLayerGridXY.cpp
@@ -32,8 +32,7 @@ TiledLayerGridXY::TiledLayerGridXY(const std::string& cellEncoding) :
 	registerParameter("offset_y", "Cell offset in Y", _offsetY, 0., SegmentationParameter::LengthUnit, true);
 	registerIdentifier("identifier_x", "Cell ID identifier for X", _xId, "x");
 	registerIdentifier("identifier_y", "Cell ID identifier for Y", _yId, "y");
-	registerParameter("identifier_layer", "Cell encoding identifier for layer", _identifierLayer, std::string("layer"),
-			SegmentationParameter::NoUnit, true);
+	registerIdentifier("identifier_layer", "Cell encoding identifier for layer", _identifierLayer, "layer");
 	registerParameter("layer_offsetX", "List of layer x offset", _layerOffsetX, std::vector<double>(),
 			SegmentationParameter::NoUnit, true);
 	registerParameter("layer_offsetY", "List of layer y offset", _layerOffsetY, std::vector<double>(),
-- 
GitLab