diff --git a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
index 3ea4927d19400bde691cbafcb97e3c5a2edfcb07..e6e7e8b8d3fc0e73b70867f470ca4cfc8c39e007 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml
@@ -1,5 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<lccdd>
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
+       xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
 
   <info name="DriftChamber"
     title="Test with Drift Chamber"
@@ -11,41 +13,34 @@
   </info>
 
   <define>
-    <constant name="SDT_radius_min" value="InnerTracker_inner_radius"/>
-    <constant name="SDT_radius_max" value="OuterTracker_outer_radius"/>
+    <constant name="world_size" value="2226*mm"/>
+    <constant name="world_x" value="world_size"/>
+    <constant name="world_y" value="world_size"/>
+    <constant name="world_z" value="world_size"/>
+
+    <!-- SDT -->
+    <constant name="SDT_radius_min" value="DC_inner_radius"/>
+    <constant name="SDT_radius_max" value="DC_outer_radius"/>
 
     <constant name="SDT_half_length" value="MainTracker_half_length"/>
-    <constant name="SDT_length" value="SDT_half_length*2"/>
     <constant name="DC_length" value="DC_half_length*2"/>
+    <constant name="SDT_length" value="SDT_half_length*2"/>
 
-    <constant name="SDT_inner_chamber_radius_min" value="DC_inner_chamber_layer_rbegin-DC_safe_distance"/>
-    <constant name="SDT_inner_chamber_radius_max" value="InnerTracker_outer_radius-SDT_outer_wall_thickness"/>
-    <constant name="SDT_inner_chamber_half_length" value="DC_half_length"/>
-
-    <constant name="SDT_outer_chamber_radius_min" value="DC_outer_chamber_radius_min-DC_safe_distance"/>
-    <constant name="SDT_outer_chamber_radius_max" value="DC_outer_chamber_radius_max"/>
-    <constant name="SDT_outer_chamber_half_length" value="DC_half_length"/>
+    <constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/>
+    <constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/>
+    <constant name="SDT_chamber_half_length" value="DC_half_length"/>
 
-    <constant name="SDT_inner_chamber_layer_number" value="67"/>
-    <constant name="SDT_outer_chamber_layer_number" value="63"/>
     <constant name="SDT_chamber_layer_width" value="10*mm"/>
+    <constant name="SDT_chamber_cell_width" value="10*mm"/>
     <constant name="Epsilon" value="0*deg"/>
 
-    <constant name="SDT_inner_chamber_inner_wall_radius_min" value="SDT_inner_chamber_radius_min-SDT_inner_wall_thickness"/>
-    <constant name="SDT_inner_chamber_inner_wall_radius_max" value="SDT_inner_chamber_radius_min"/>
-    <constant name="SDT_inner_chamber_outer_wall_radius_min" value="SDT_inner_chamber_radius_max"/>
-    <constant name="SDT_inner_chamber_outer_wall_radius_max" value="SDT_inner_chamber_radius_max+SDT_outer_wall_thickness"/>
-    <constant name="SDT_outer_chamber_inner_wall_radius_min" value="SDT_outer_chamber_radius_min-SDT_inner_wall_thickness"/>
-    <constant name="SDT_outer_chamber_inner_wall_radius_max" value="SDT_outer_chamber_radius_min"/>
-    <constant name="SDT_outer_chamber_outer_wall_radius_min" value="SDT_outer_chamber_radius_max"/>
-    <constant name="SDT_outer_chamber_outer_wall_radius_max" value="SDT_outer_chamber_radius_max+SDT_outer_wall_thickness"/>
+    <constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/>
+    <constant name="SDT_chamber_inner_wall_radius_max" value="SDT_chamber_radius_min"/>
+    <constant name="SDT_chamber_outer_wall_radius_min" value="SDT_chamber_radius_max"/>
+    <constant name="SDT_chamber_outer_wall_radius_max" value="SDT_chamber_radius_max+SDT_outer_wall_thickness"/>
 
     <constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
-    <constant name="DC_Endcap_dz" value="DC_Endcap_z"/>
-
-    <constant name="DC_inner_chamber_enabled" value="1"/>
-    <constant name="DC_outer_chamber_enabled" value="1"/>
 
   </define>
 
@@ -61,29 +56,25 @@
   </regions>
 
   <detectors>
-    <detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="BlueVis" sensitive="true" insideTrackingVolume="true" limits="DC_limits">
+    <detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion" limits="DC_limits">
+      <chamber id="0"/>
       <envelope vis="SeeThrough">
-<!--        <shape type="BooleanShape" operation="Union" material="Air">
-          <shape type="Tube" rmin="SDT_radius_min" rmax="OuterTracker_inner_radius" dz="SDT_half_length" />
-          <shape type="Tube" rmin="SDT_outer_chamber_inner_wall_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
-        </shape> -->
-        <shape type="BooleanShape" operation="Subtraction" material="Air">
+        <shape type="BooleanShape" operation="Union" material="Air">
           <shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
-          <shape type="Tube" rmin="InnerTracker_outer_radius" rmax="SDT_outer_chamber_inner_wall_radius_min" dz="DC_half_length"/>
         </shape>
       </envelope>
 
-      <module id="0" repeat="1" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm">
-           <tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
-           <tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
+      <module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="VisibleRed">
+          <tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
+          <tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
       </module>
-      <module id="1" repeat="3" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm">
-         <tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
-         <tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
+
+      <module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="VisibleGreen">
+          <tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
+          <tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
       </module>
 
       <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
-
       <!-- Use cm as unit if you want to use Pandora for reconstruction -->
      <sensitive type="SimpleDriftChamber"/>
      </detector>
@@ -91,10 +82,9 @@
 
   <readouts>
     <readout name="DriftChamberHitsCollection">
-      <segmentation type="GridDriftChamber" cell_size="10*mm" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_inner_rbegin="DC_inner_chamber_layer_rbegin" DC_inner_rend="DC_inner_chamber_layer_rend" DC_outer_rbegin="DC_outer_chamber_layer_rbegin" DC_outer_rend="DC_outer_chamber_layer_rend" DC_inner_rmin="SDT_inner_chamber_radius_min" DC_inner_rmax="SDT_inner_chamber_radius_max" DC_outer_rmin="SDT_outer_chamber_radius_min" DC_outer_rmax="SDT_outer_chamber_radius_max" DC_inner_layer_number="SDT_inner_chamber_layer_number" DC_outer_layer_number="SDT_outer_chamber_layer_number" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
+      <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
 
-      <!--<id>system:8,chamber:1,layer:8,cellID:16</id> -->
-      <!--<id>system:5,side:-2,layer:9,chamber:8,sensor:8,cellID:16</id> -->
+      <!-- <id>system:8,chamber:1,layer:8,cellID:16</id> -->
       <id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
     </readout>
   </readouts>
diff --git a/Detector/DetCRD/compact/CRD_common_v01/materials.xml b/Detector/DetCRD/compact/CRD_common_v01/materials.xml
index c9f7edf444b55e0cc7e766b4c87892bb081b5d28..1636e38fac798925712717c082a54819c05eacb5 100644
--- a/Detector/DetCRD/compact/CRD_common_v01/materials.xml
+++ b/Detector/DetCRD/compact/CRD_common_v01/materials.xml
@@ -565,9 +565,9 @@
     <!-- Driftchamber: material for the drift chamber -->
    <material name="GasHe_90Isob_10">
      <D value="0.0003983999999999999" unit="g/cm3" />
-     <fraction n="0.3826351004462046" ref="He"/>
-     <fraction n="0.011371937371285891"   ref="H" />
-     <fraction n="0.6059929621825095" ref="C" />
+     <fraction n="0.3826373431212555" ref="He"/>
+     <fraction n="0.1070614182488552"   ref="H" />
+     <fraction n="0.5103012386298891" ref="C" />
    </material>
 
   </materials>
diff --git a/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml b/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml
index 48e8f62bf8e33fae9f9e35114dee34510c8d68b8..9a368f4e34e8669298b25f90bb094515fcd0f8f8 100644
--- a/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml
+++ b/Detector/DetCRD/compact/CRD_o1_v01/CRD_Dimensions_v01_01.xml
@@ -4,11 +4,11 @@
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
 
   <info name="CRDDimensions"
-	title="master file with includes and world dimension"
-	author="C.D.Fu, "
-	url="no"
-	status="development"
-	version="1.0">
+       title="master file with includes and world dimension"
+       author="C.D.Fu, Mengyao Liu"
+       url="no"
+       status="development"
+       version="1.0">
     <comment>
       undeterminded parameters
     </comment>
@@ -81,27 +81,27 @@
     <constant name="Vertex_outer_radius" value="101*mm"/>
     <constant name="Vertex_half_length"  value="200*mm"/>
 
-    <constant name="DC_Endcap_z" value="0.1*mm"/>
+    <constant name="DC_Endcap_dz" value="0.1*mm"/>
     <constant name="DC_half_length"  value="2225*mm" />
-    <constant name="DC_safe_distance" value="0.2*mm"/>
+    <constant name="DC_safe_distance" value="0.02*mm"/>
     <constant name="SDT_inner_wall_thickness" value="0.2*mm"/>
     <constant name="SDT_outer_wall_thickness" value="2.8*mm"/>
-    <constant name="DC_inner_chamber_layer_rbegin" value="235*mm"/>
-    <constant name="DC_inner_chamber_layer_rend" value="905*mm"/>
-    <constant name="DC_outer_chamber_layer_rbegin" value="1085*mm"/>
-    <constant name="DC_outer_chamber_layer_rend" value="1715*mm"/>
-    <constant name="DC_inner_chamber_radius_min" value="DC_inner_chamber_layer_rbegin"/>
-    <constant name="DC_inner_chamber_radius_max" value="909*mm"/>
-    <constant name="DC_outer_chamber_radius_min" value="DC_outer_chamber_layer_rbegin"/>
-    <constant name="DC_outer_chamber_radius_max" value="1716*mm"/>
-    <constant name="MainTracker_half_length"  value="DC_half_length+DC_Endcap_z" />
+    <constant name="MainTracker_half_length"  value="DC_half_length+DC_Endcap_dz" />
+
     <constant name="InnerTracker_half_length"  value="DC_half_length" />
     <constant name="InnerTracker_inner_radius" value="234*mm"/>
-    <constant name="InnerTracker_outer_radius" value="DC_inner_chamber_radius_max"/>
+    <constant name="InnerTracker_outer_radius" value="909*mm"/>
     <constant name="OuterTracker_half_length"  value="DC_half_length"/>
-    <constant name="OuterTracker_inner_radius" value="DC_outer_chamber_radius_min-DC_safe_distance-SDT_inner_wall_thickness"/>
-    <constant name="OuterTracker_outer_radius" value="1720*mm"/>
-    
+    <constant name="OuterTracker_inner_radius" value="1082.18*mm"/>
+    <constant name="OuterTracker_outer_radius" value="1723*mm"/>
+
+    <!-- Parameters of single drift chamber  -->
+    <constant name="DC_chamber_layer_rbegin" value="800*mm"/>
+    <constant name="DC_chamber_layer_rend" value="1800*mm"/>
+
+    <constant name="DC_inner_radius" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/>
+    <constant name="DC_outer_radius" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/>
+
     <constant name="SIT1_inner_radius"   value="152.90*mm"/>
     <constant name="SIT1_half_length"    value="368.00*mm"/>
     <constant name="SIT2_inner_radius"   value="InnerTracker_outer_radius + env_safety"/>
@@ -123,7 +123,7 @@
     <constant name="TUBE_IPOuterTube_end_radius"  value="BeamPipe_Central_inner_radius+BeamPipe_Al_thickness"/>
     <constant name="TUBE_IPOuterBulge_end_z"      value="BeamPipe_Crotch_zmax"/><!--"BeamPipe_ConeAl_zmax"/-->
     <constant name="TUBE_IPOuterBulge_end_radius" value="BeamPipe_Crotch_zmax*tan(CrossingAngle/2)+BeamPipe_Dnstream_inner_radius+BeamPipe_Cu_thickness"/>
-							 <!--"BeamPipe_Expanded_inner_radius+BeamPipe_Al_thickness+5*mm"/-->
+                             <!--"BeamPipe_Expanded_inner_radius+BeamPipe_Al_thickness+5*mm"/-->
 
     <constant name="Ecal_barrel_inner_radius" value="1800*mm"/>
     <constant name="Ecal_barrel_thickness"    value="280*mm"/>
diff --git a/Detector/DetCRD/compact/CRD_o1_v01/CRD_o1_v01.xml b/Detector/DetCRD/compact/CRD_o1_v01/CRD_o1_v01.xml
index 2dff18ec59923381d7e98a1e999e334c4649b4e4..5989f64d3496d404137710b3aa9aa06a1b808b86 100644
--- a/Detector/DetCRD/compact/CRD_o1_v01/CRD_o1_v01.xml
+++ b/Detector/DetCRD/compact/CRD_o1_v01/CRD_o1_v01.xml
@@ -30,10 +30,10 @@
   <include ref="../CRD_common_v01/Beampipe_v01_01.xml"/>
   <include ref="../CRD_common_v01/VXD_v01_01.xml"/>
   <include ref="../CRD_common_v01/FTD_SimpleStaggered_v01_01.xml"/>
-  <include ref="../CRD_common_v01/SIT_SimplePlanar_v01_01.xml"/>
+  <!--<include ref="../CRD_common_v01/SIT_SimplePlanar_v01_01.xml"/> -->
   <include ref="../CRD_common_v01/DC_Simple_v01_01.xml"/>
-  <include ref="../CRD_common_v01/SET_SimplePlanar_v01_01.xml"/>
-  <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_01.xml"/>
+<!--  <include ref="../CRD_common_v01/SET_SimplePlanar_v01_01.xml"/> -->
+<!--  <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_01.xml"/> -->
   <!--include ref="../CRD_common_v01/Ecal_Crystal_Endcap_v01_01.xml"/-->
   <include ref="../CRD_common_v01/Coil_Simple_v01_01.xml"/>
   <include ref="../CRD_common_v01/Hcal_Rpc_Barrel_v01_01.xml"/>
diff --git a/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml b/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml
index 984af96a00dce5aa0aa2c1a8482b9318ec63fdb1..3b8f76a135efcbe73e3491e3bd083d91d2d6f6d8 100644
--- a/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml
+++ b/Detector/DetCRD/compact/CRD_o1_v02/CRD_Dimensions_v01_02.xml
@@ -4,11 +4,11 @@
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
 
   <info name="CRDDimensions"
-	title="master file with includes and world dimension"
-	author="C.D.Fu, "
-	url="no"
-	status="development"
-	version="1.0">
+       title="master file with includes and world dimension"
+       author="C.D.Fu, Mengyao Liu"
+       url="no"
+       status="development"
+       version="1.0">
     <comment>
       undeterminded parameters
     </comment>
@@ -81,26 +81,27 @@
     <constant name="Vertex_outer_radius" value="101*mm"/>
     <constant name="Vertex_half_length"  value="200*mm"/>
 
-    <constant name="DC_Endcap_z" value="0.1*mm"/>
+    <constant name="DC_Endcap_dz" value="0.1*mm"/>
     <constant name="DC_half_length"  value="2225*mm" />
-    <constant name="DC_safe_distance" value="0.2*mm"/>
+    <constant name="DC_safe_distance" value="0.02*mm"/>
     <constant name="SDT_inner_wall_thickness" value="0.2*mm"/>
     <constant name="SDT_outer_wall_thickness" value="2.8*mm"/>
-    <constant name="DC_inner_chamber_layer_rbegin" value="235*mm"/>
-    <constant name="DC_inner_chamber_layer_rend" value="905*mm"/>
-    <constant name="DC_outer_chamber_layer_rbegin" value="1085*mm"/>
-    <constant name="DC_outer_chamber_layer_rend" value="1715*mm"/>
-    <constant name="DC_inner_chamber_radius_min" value="DC_inner_chamber_layer_rbegin"/>
-    <constant name="DC_inner_chamber_radius_max" value="909*mm"/>
-    <constant name="DC_outer_chamber_radius_min" value="DC_outer_chamber_layer_rbegin"/>
-    <constant name="DC_outer_chamber_radius_max" value="1716*mm"/>
-    <constant name="MainTracker_half_length"  value="DC_half_length+DC_Endcap_z" />
+    <constant name="MainTracker_half_length"  value="DC_half_length+DC_Endcap_dz" />
+
     <constant name="InnerTracker_half_length"  value="DC_half_length" />
     <constant name="InnerTracker_inner_radius" value="234*mm"/>
-    <constant name="InnerTracker_outer_radius" value="DC_inner_chamber_radius_max"/>
+    <constant name="InnerTracker_outer_radius" value="909*mm"/>
     <constant name="OuterTracker_half_length"  value="DC_half_length"/>
-    <constant name="OuterTracker_inner_radius" value="DC_outer_chamber_radius_min-DC_safe_distance-SDT_inner_wall_thickness"/>
-    <constant name="OuterTracker_outer_radius" value="1720*mm"/>
+    <constant name="OuterTracker_inner_radius" value="1082.18*mm"/>
+    <constant name="OuterTracker_outer_radius" value="1723*mm"/>
+
+    <!-- Parameters of single drift chamber  -->
+    <constant name="DC_chamber_layer_rbegin" value="800*mm"/>
+    <constant name="DC_chamber_layer_rend" value="1800*mm"/>
+
+    <constant name="DC_inner_radius" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/>
+    <constant name="DC_outer_radius" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/>
+
 
     <constant name="SIT1_inner_radius"   value="140*mm"/>
     <constant name="SIT1_half_length"    value="368.00*mm"/>
@@ -123,7 +124,7 @@
     <constant name="TUBE_IPOuterTube_end_radius"  value="BeamPipe_Central_inner_radius+BeamPipe_Al_thickness"/>
     <constant name="TUBE_IPOuterBulge_end_z"      value="BeamPipe_Crotch_zmax"/><!--"BeamPipe_ConeAl_zmax"/-->
     <constant name="TUBE_IPOuterBulge_end_radius" value="BeamPipe_Crotch_zmax*tan(CrossingAngle/2)+BeamPipe_Dnstream_inner_radius+BeamPipe_Cu_thickness"/>
-							 <!--"BeamPipe_Expanded_inner_radius+BeamPipe_Al_thickness+5*mm"/-->
+                             <!--"BeamPipe_Expanded_inner_radius+BeamPipe_Al_thickness+5*mm"/-->
 
     <constant name="Ecal_barrel_inner_radius" value="1800*mm"/>
     <constant name="Ecal_barrel_thickness"    value="280*mm"/>
diff --git a/Detector/DetCRD/compact/CRD_o1_v02/CRD_o1_v02.xml b/Detector/DetCRD/compact/CRD_o1_v02/CRD_o1_v02.xml
index 8c584bd311e6e22b1dc18bd8864fab67b20fe630..4d34ec727e56b98685cf62e3bf0b79f28e69b604 100644
--- a/Detector/DetCRD/compact/CRD_o1_v02/CRD_o1_v02.xml
+++ b/Detector/DetCRD/compact/CRD_o1_v02/CRD_o1_v02.xml
@@ -30,10 +30,10 @@
   <include ref="../CRD_common_v01/Beampipe_v01_01.xml"/>
   <include ref="../CRD_common_v01/VXD_v01_01.xml"/>
   <include ref="../CRD_common_v01/FTD_SimpleStaggered_v01_02.xml"/>
-  <include ref="../CRD_common_v01/SIT_SimplePixel_v01_01.xml"/>
+<!--  <include ref="../CRD_common_v01/SIT_SimplePixel_v01_01.xml"/> -->
   <include ref="../CRD_common_v01/DC_Simple_v01_01.xml"/>
-  <include ref="../CRD_common_v01/SET_SimplePlanar_v01_02.xml"/>
-  <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_01.xml"/>
+<!--  <include ref="../CRD_common_v01/SET_SimplePlanar_v01_02.xml"/> -->
+<!--  <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_01.xml"/> -->
   <!--include ref="../CRD_common_v01/Ecal_Crystal_Endcap_v01_01.xml"/-->
   <include ref="../CRD_common_v01/Coil_Simple_v01_01.xml"/>
   <include ref="../CRD_common_v01/Hcal_Rpc_Barrel_v01_01.xml"/>
diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml
index 9058b63d0c1432c8cb1d7b8bbe71e6ac029ba067..4e981b021e24069755937850709a346dbf703a29 100644
--- a/Detector/DetDriftChamber/compact/det.xml
+++ b/Detector/DetDriftChamber/compact/det.xml
@@ -26,61 +26,41 @@
 
     <!-- SDT -->
     <constant name="DetID_DC"  value="7"/>
-    <constant name="SDT_radius_min" value="234*mm"/>
-    <constant name="SDT_radius_max" value="1720*mm"/>
 
-    <constant name="DC_Endcap_dz" value="0.1*mm"/>
-
-    <constant name="SDT_half_length" value="2225*mm+DC_Endcap_dz"/>
-    <constant name="DC_half_length" value="2225*mm"/>
-    <constant name="SDT_length" value="SDT_half_length*2"/>
-    <constant name="DC_length" value="SDT_length-DC_Endcap_dz*2"/>
-
-    <constant name="DC_safe_distance" value="0.2*mm"/>
+    <constant name="DC_safe_distance" value="0.02*mm"/>
 
     <constant name="SDT_inner_wall_thickness" value="0.2*mm"/>
     <constant name="SDT_outer_wall_thickness" value="2.8*mm"/>
 
-    <constant name="DC_inner_chamber_layer_rbegin" value="235*mm"/>
-    <constant name="DC_inner_chamber_layer_rend" value="905*mm"/>
-
-    <constant name="DC_outer_chamber_layer_rbegin" value="1085*mm"/>
-    <constant name="DC_outer_chamber_layer_rend" value="1715*mm"/>
+    <constant name="DC_chamber_layer_rbegin" value="800*mm"/>
+    <constant name="DC_chamber_layer_rend" value="1800*mm"/>
 
-    <constant name="DC_inner_chamber_radius_min" value="DC_inner_chamber_layer_rbegin"/>
-    <constant name="DC_inner_chamber_radius_max" value="909*mm"/>
+    <constant name="SDT_radius_min" value="DC_chamber_layer_rbegin-SDT_inner_wall_thickness-DC_safe_distance"/>
+    <constant name="SDT_radius_max" value="DC_chamber_layer_rend+SDT_outer_wall_thickness+DC_safe_distance"/>
 
-    <constant name="DC_outer_chamber_radius_min" value="DC_outer_chamber_layer_rbegin"/>
-    <constant name="DC_outer_chamber_radius_max" value="1716*mm"/>
+    <constant name="DC_Endcap_dz" value="0.1*mm"/>
 
-    <constant name="SDT_inner_chamber_radius_min" value="DC_inner_chamber_layer_rbegin-DC_safe_distance"/>
-    <constant name="SDT_inner_chamber_radius_max" value="DC_inner_chamber_radius_max-SDT_outer_wall_thickness"/>
-    <constant name="SDT_inner_chamber_half_length" value="DC_half_length"/>
+    <constant name="SDT_half_length" value="2225*mm+DC_Endcap_dz"/>
+    <constant name="DC_half_length" value="2225*mm"/>
+    <constant name="SDT_length" value="SDT_half_length*2"/>
+    <constant name="DC_length" value="SDT_length-DC_Endcap_dz*2"/>
 
-    <constant name="SDT_outer_chamber_radius_min" value="DC_outer_chamber_layer_rbegin-DC_safe_distance"/>
-    <constant name="SDT_outer_chamber_radius_max" value="DC_outer_chamber_radius_max"/>
-    <constant name="SDT_outer_chamber_half_length" value="DC_half_length"/>
+    <constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/>
+    <constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/>
+    <constant name="SDT_chamber_half_length" value="DC_half_length"/>
 
-    <constant name="SDT_inner_chamber_layer_number" value="67"/>
-    <constant name="SDT_outer_chamber_layer_number" value="63"/>
     <constant name="SDT_chamber_layer_width" value="10*mm"/>
+    <constant name="SDT_chamber_cell_width" value="10*mm"/>
     <constant name="Epsilon" value="0*deg"/>
 
-    <constant name="SDT_inner_chamber_inner_wall_radius_min" value="SDT_inner_chamber_radius_min-SDT_inner_wall_thickness"/>
-    <constant name="SDT_inner_chamber_inner_wall_radius_max" value="SDT_inner_chamber_radius_min"/>
-    <constant name="SDT_inner_chamber_outer_wall_radius_min" value="SDT_inner_chamber_radius_max"/>
-    <constant name="SDT_inner_chamber_outer_wall_radius_max" value="SDT_inner_chamber_radius_max+SDT_outer_wall_thickness"/>
-    <constant name="SDT_outer_chamber_inner_wall_radius_min" value="SDT_outer_chamber_radius_min-SDT_inner_wall_thickness"/>
-    <constant name="SDT_outer_chamber_inner_wall_radius_max" value="SDT_outer_chamber_radius_min"/>
-    <constant name="SDT_outer_chamber_outer_wall_radius_min" value="SDT_outer_chamber_radius_max"/>
-    <constant name="SDT_outer_chamber_outer_wall_radius_max" value="SDT_outer_chamber_radius_max+SDT_outer_wall_thickness"/>
+    <constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/>
+    <constant name="SDT_chamber_inner_wall_radius_max" value="SDT_chamber_radius_min"/>
+    <constant name="SDT_chamber_outer_wall_radius_min" value="SDT_chamber_radius_max"/>
+    <constant name="SDT_chamber_outer_wall_radius_max" value="SDT_chamber_radius_max+SDT_outer_wall_thickness"/>
 
     <constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
     <constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
 
-    <constant name="DC_inner_chamber_enabled" value="1"/>
-    <constant name="DC_outer_chamber_enabled" value="1"/>
-
   </define>
 
   <display>
@@ -104,15 +84,11 @@
   </regions>
 
   <detectors>
-    <detector id="7" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion" limits="DC_limits">
+    <detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion" limits="DC_limits">
+      <chamber id="0"/>
       <envelope vis="SeeThrough">
-<!--        <shape type="BooleanShape" operation="Union" material="Air">
-          <shape type="Tube" rmin="SDT_radius_min" rmax="SDT_inner_chamber_outer_wall_radius_max" dz="SDT_half_length" />
-          <shape type="Tube" rmin="SDT_outer_chamber_inner_wall_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
-        </shape> -->
-        <shape type="BooleanShape" operation="Subtraction" material="Air">
+        <shape type="BooleanShape" operation="Union" material="Air">
           <shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
-          <shape type="Tube" rmin="DC_inner_chamber_radius_max" rmax="SDT_outer_chamber_inner_wall_radius_min" dz="DC_half_length"/>
         </shape>
       </envelope>
 
@@ -134,10 +110,11 @@
 
   <readouts>
     <readout name="DriftChamberHitsCollection">
-      <segmentation type="GridDriftChamber" cell_size="10*mm" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_inner_rbegin="DC_inner_chamber_layer_rbegin" DC_inner_rend="DC_inner_chamber_layer_rend" DC_outer_rbegin="DC_outer_chamber_layer_rbegin" DC_outer_rend="DC_outer_chamber_layer_rend" DC_inner_rmin="SDT_inner_chamber_radius_min" DC_inner_rmax="SDT_inner_chamber_radius_max" DC_outer_rmin="SDT_outer_chamber_radius_min" DC_outer_rmax="SDT_outer_chamber_radius_max" DC_inner_layer_number="SDT_inner_chamber_layer_number" DC_outer_layer_number="SDT_outer_chamber_layer_number" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
+      <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
+
 
       <!-- <id>system:8,chamber:1,layer:8,cellID:16</id> -->
-      <id>system:5,side:-2,layer:9,chamber:8,sensor:8,cellID:16</id>
+      <id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
     </readout>
   </readouts>
 
diff --git a/Detector/DetDriftChamber/compact/materials.xml b/Detector/DetDriftChamber/compact/materials.xml
index 44ee58bf7f60632ec8addf1cee047ed2f259cb5b..33a6ace58a76dca0f2703f2662163ab6a5496de4 100644
--- a/Detector/DetDriftChamber/compact/materials.xml
+++ b/Detector/DetDriftChamber/compact/materials.xml
@@ -151,9 +151,9 @@
   <!-- Driftchamber: material for the drift chamber -->
   <material name="GasHe_90Isob_10">
     <D value="0.0003983999999999999" unit="g/cm3" />
-    <fraction n="0.3826351004462046" ref="He"/>
-    <fraction n="0.011371937371285891"   ref="H" />
-    <fraction n="0.6059929621825095" ref="C" />
+    <fraction n="0.3826373431212555" ref="He"/>
+    <fraction n="0.1070614182488552"   ref="H" />
+    <fraction n="0.5103012386298891" ref="C" />
   </material>
 
 </materials>
diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
index be9dfb78445995639c9fcaa8cfd92db2d2b37906..bb02ad39e3d2347af6a5a9ee76ee51593227d3d7 100644
--- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
@@ -35,6 +35,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
 
     xml_det_t x_det = e;
 
+    xml_coll_t c(x_det,_U(chamber));
+    xml_comp_t x_chamber = c;
+
     std::string det_name = x_det.nameStr();
     std::string det_type = x_det.typeStr();
 
@@ -43,32 +46,21 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // - global
     double chamber_half_length     = theDetector.constant<double>("DC_half_length");
 
-    // - inner chamber
-    double inner_chamber_radius_min = theDetector.constant<double>("SDT_inner_chamber_radius_min");
-    double inner_chamber_radius_max = theDetector.constant<double>("SDT_inner_chamber_radius_max");
-    double inner_chamber_half_length     = theDetector.constant<double>("SDT_inner_chamber_half_length");
-
-    // - outer chamber
-    double outer_chamber_radius_min = theDetector.constant<double>("SDT_outer_chamber_radius_min");
-    double outer_chamber_radius_max = theDetector.constant<double>("SDT_outer_chamber_radius_max");
-    double outer_chamber_half_length     = theDetector.constant<double>("SDT_outer_chamber_half_length");
+    // - chamber
+    double chamber_radius_min = theDetector.constant<double>("SDT_chamber_radius_min");
+    double chamber_radius_max = theDetector.constant<double>("SDT_chamber_radius_max");
+    double SDT_half_length     = theDetector.constant<double>("SDT_chamber_half_length");
+    int chamberID = x_chamber.id();
 
     // - layer
-    int inner_chamber_layer_number = theDetector.constant<int>("SDT_inner_chamber_layer_number");
-    int outer_chamber_layer_number = theDetector.constant<int>("SDT_outer_chamber_layer_number");
     double chamber_layer_width  = theDetector.constant<double>("SDT_chamber_layer_width");
-    double inner_chamber_layer_rbegin = theDetector.constant<double>("DC_inner_chamber_layer_rbegin");
-    double inner_chamber_layer_rend = theDetector.constant<double>("DC_inner_chamber_layer_rend");
-    double outer_chamber_layer_rbegin = theDetector.constant<double>("DC_outer_chamber_layer_rbegin");
-    double outer_chamber_layer_rend = theDetector.constant<double>("DC_outer_chamber_layer_rend");
+    double chamber_cell_width  = theDetector.constant<double>("SDT_chamber_cell_width");
+    double chamber_layer_rbegin = theDetector.constant<double>("DC_chamber_layer_rbegin");
+    double chamber_layer_rend = theDetector.constant<double>("DC_chamber_layer_rend");
+    int chamber_layer_number = floor((chamber_layer_rend-chamber_layer_rbegin)/chamber_layer_width);
 
     double epsilon = theDetector.constant<double>("Epsilon");
 
-    // - Control the number of drift chambersr
-    int inner_chamber_enabled = theDetector.constant<int>("DC_inner_chamber_enabled");
-    int outer_chamber_enabled = theDetector.constant<int>("DC_outer_chamber_enabled");
-
-
     // =======================================================================
     // Detector Construction
     // =======================================================================
@@ -88,40 +80,26 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     // - global
     Assembly det_vol( det_name+"_assembly" ) ;
 
-    // - inner
-    dd4hep::Tube det_inner_chamber_solid(inner_chamber_radius_min, inner_chamber_radius_max, inner_chamber_half_length);
-    dd4hep::Volume det_inner_chamber_vol(det_name+"_inner_chamber_vol", det_inner_chamber_solid, chamber_mat);
+    // - chamber volume
+    dd4hep::Tube det_chamber_solid(chamber_radius_min, chamber_radius_max, chamber_half_length);
+    dd4hep::Volume det_chamber_vol(det_name+"_chamber_vol", det_chamber_solid, chamber_mat);
     if ( x_det.isSensitive() )   {
-       det_inner_chamber_vol.setRegion(theDetector,x_det.regionStr());
-       det_inner_chamber_vol.setLimitSet(theDetector,x_det.limitsStr());
-       det_inner_chamber_vol.setSensitiveDetector(sens);
+       det_chamber_vol.setRegion(theDetector,x_det.regionStr());
+       det_chamber_vol.setLimitSet(theDetector,x_det.limitsStr());
+       det_chamber_vol.setSensitiveDetector(sens);
        sd.setType("tracker");
     }
 
-     // - outer
-     dd4hep::Tube det_outer_chamber_solid(outer_chamber_radius_min, outer_chamber_radius_max, outer_chamber_half_length);
-     dd4hep::Volume det_outer_chamber_vol(det_name+"_outer_chamber_vol", det_outer_chamber_solid, chamber_mat);
-     if ( x_det.isSensitive() )   {
-        det_outer_chamber_vol.setRegion(theDetector,x_det.regionStr());
-        det_outer_chamber_vol.setLimitSet(theDetector,x_det.limitsStr());
-        det_outer_chamber_vol.setSensitiveDetector(sens);
-        sd.setType("tracker");
-     }
-
     // - wall
-    double inner_chamber_inner_wall_rmin = theDetector.constant<double>("SDT_inner_chamber_inner_wall_radius_min");
-    double inner_chamber_inner_wall_rmax = theDetector.constant<double>("SDT_inner_chamber_inner_wall_radius_max");
-    double inner_chamber_outer_wall_rmin = theDetector.constant<double>("SDT_inner_chamber_outer_wall_radius_min");
-    double inner_chamber_outer_wall_rmax = theDetector.constant<double>("SDT_inner_chamber_outer_wall_radius_max");
-    double outer_chamber_outer_wall_rmin = theDetector.constant<double>("SDT_outer_chamber_outer_wall_radius_min");
-    double outer_chamber_outer_wall_rmax = theDetector.constant<double>("SDT_outer_chamber_outer_wall_radius_max");
-    double outer_chamber_inner_wall_rmin = theDetector.constant<double>("SDT_outer_chamber_inner_wall_radius_min");
-    double outer_chamber_inner_wall_rmax = theDetector.constant<double>("SDT_outer_chamber_inner_wall_radius_max");
+    double chamber_inner_wall_rmin = theDetector.constant<double>("SDT_chamber_inner_wall_radius_min");
+    double chamber_inner_wall_rmax = theDetector.constant<double>("SDT_chamber_inner_wall_radius_max");
+    double chamber_outer_wall_rmin = theDetector.constant<double>("SDT_chamber_outer_wall_radius_min");
+    double chamber_outer_wall_rmax = theDetector.constant<double>("SDT_chamber_outer_wall_radius_max");
 
     dd4hep::Material wall_mat(theDetector.material("CarbonFiber"));
 
-    double wall_rmin[4] = {inner_chamber_inner_wall_rmin,inner_chamber_outer_wall_rmin,outer_chamber_inner_wall_rmin,outer_chamber_outer_wall_rmin};
-    double wall_rmax[4] = {inner_chamber_inner_wall_rmax,inner_chamber_outer_wall_rmax,outer_chamber_inner_wall_rmax,outer_chamber_outer_wall_rmax};
+    double wall_rmin[2] = {chamber_inner_wall_rmin, chamber_outer_wall_rmin};
+    double wall_rmax[2] = {chamber_inner_wall_rmax, chamber_outer_wall_rmax};
 
    // - wire
     dd4hep::Volume module_vol;
@@ -175,24 +153,15 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     auto DCHseg = dynamic_cast<dd4hep::DDSegmentation::GridDriftChamber*>(_geoSeg->segmentation());
 
     // - layer
-    int chamber_id = -1;
+    int chamber_id = 0;
     int layerIndex = -1;
-    for(int layer_id = 0; layer_id < (inner_chamber_layer_number+outer_chamber_layer_number); layer_id++) {
+    for(int layer_id = 0; layer_id < chamber_layer_number; layer_id++) {
         double rmin,rmax,offset=0;
         dd4hep::Volume* current_vol_ptr = nullptr;
-        if(inner_chamber_enabled && (layer_id < inner_chamber_layer_number)) {
-           current_vol_ptr = &det_inner_chamber_vol;
-           rmin = inner_chamber_layer_rbegin+(layer_id*chamber_layer_width);
-           rmax = rmin+chamber_layer_width;
-           chamber_id = 0;
-           layerIndex = layer_id;
-        } else if(outer_chamber_enabled && (layer_id >= inner_chamber_layer_number)) {
-           current_vol_ptr = &det_outer_chamber_vol;
-           rmin = outer_chamber_layer_rbegin+((layer_id-inner_chamber_layer_number)*chamber_layer_width);
-           rmax = rmin+chamber_layer_width;
-           chamber_id = 1;
-           layerIndex = layer_id - inner_chamber_layer_number;
-        } else continue;
+        current_vol_ptr = &det_chamber_vol;
+        rmin = chamber_layer_rbegin+(layer_id*chamber_layer_width);
+        rmax = rmin+chamber_layer_width;
+        layerIndex = layer_id;
 
         //Construction of drift chamber layers
         double rmid = delta_a_func(rmin,rmax);
@@ -216,7 +185,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
         //    |                     |
         //    |   F0    F1   F2   F3|
         //    -----------------------
-     if(layer_id == 0 || layer_id ==66 || layer_id ==67 || layer_id ==129) {
+//     if(layer_id == 0 || layer_id == 1 || layer_id == 2 || layer_id == 99) {
         for(int icell=0; icell< numWire; icell++) {
             double wire_phi = (icell+0.5)*layer_Phi + offset;
             // - signal wire
@@ -227,7 +196,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
             double radius[9] = {rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5};
             double phi[9] = {wire_phi+layer_Phi*0.25,wire_phi,wire_phi-layer_Phi*0.25,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.25,wire_phi,wire_phi+layer_Phi*0.25};
             int num = 5;
-            if(layer_id==(inner_chamber_layer_number-1)||layer_id==(inner_chamber_layer_number+outer_chamber_layer_number-1)) { num = 9; }
+            if(layer_id==(chamber_layer_number-1)) {
+               num = 9;
+            }
             for(int i=0; i<num ; i++) {
                 dd4hep::Position tr3D = Position(radius[i]*std::cos(phi[i]),radius[i]*std::sin(phi[i]),0.);
 
@@ -237,34 +208,24 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
         }
   }
 
-  }
+//  }
 
     // - place in det
-    // inner
-    dd4hep::Transform3D transform_inner_chamber(dd4hep::Rotation3D(),
+    // - chamber
+    dd4hep::Transform3D transform_chamber(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
-    if(inner_chamber_enabled) {
-         dd4hep::PlacedVolume det_inner_chamber_phy = det_vol.placeVolume(det_inner_chamber_vol,
-                 transform_inner_chamber);
+    dd4hep::PlacedVolume det_chamber_phy = det_vol.placeVolume(det_chamber_vol,
+                 transform_chamber);
 
-         det_inner_chamber_phy.addPhysVolID("chamber", 0);
-    }
-    // outer
-    dd4hep::Transform3D transform_outer_chamber(dd4hep::Rotation3D(),
-            dd4hep::Position(0,0,0));
-    if(outer_chamber_enabled) {
-       dd4hep::PlacedVolume det_outer_chamber_phy = det_vol.placeVolume(det_outer_chamber_vol,
-               transform_inner_chamber);
+    det_chamber_phy.addPhysVolID("chamber", chamberID);
 
-       det_outer_chamber_phy.addPhysVolID("chamber", 1);
-    }
     // - place in world
     dd4hep::Transform3D transform(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
     dd4hep::PlacedVolume phv = envelope.placeVolume(det_vol,transform);
     // - place wall
     dd4hep::PlacedVolume wall_phy;
-    for(int i=0; i<4; i++) {
+    for(int i=0; i<2; i++) {
        dd4hep::Tube wall_solid(wall_rmin[i],wall_rmax[i],chamber_half_length);
        dd4hep::Volume wall_vol(det_name+"_wall_vol",wall_solid,wall_mat);
        wall_vol.setVisAttributes(theDetector,"VisibleGreen");
diff --git a/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h b/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h
index f8854d51685eeb122a9a3bfbd183bc194442fdf9..7c1a0864b143b4b13080933667af169b5aa6d7e3 100644
--- a/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h
+++ b/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h
@@ -66,20 +66,15 @@ public:
   inline double cell_Size() const { return m_cellSize; }
   inline double epsilon0() const { return m_epsilon0; }
   inline double detectorLength() const { return m_detectorLength; }
-  inline double DC_inner_rbegin() const { return m_DC_inner_rbegin; }
-  inline double DC_inner_rend() const { return m_DC_inner_rend; }
-  inline double DC_outer_rbegin() const { return m_DC_outer_rbegin; }
-  inline double DC_outer_rend() const { return m_DC_outer_rend; }
-  inline double DC_inner_rmin() const { return m_DC_inner_rmin; }
-  inline double DC_inner_rmax() const { return m_DC_inner_rmax; }
-  inline double DC_outer_rmin() const { return m_DC_outer_rmin; }
-  inline double DC_outer_rmax() const { return m_DC_outer_rmax; }
   inline double safe_distance() const { return m_safe_distance; }
   inline double layer_width() const { return m_layer_width; }
-  inline int DC_inner_layer_number() const { return m_DC_inner_layer_number; }
-  inline int DC_outer_layer_number() const { return m_DC_outer_layer_number; }
+  inline double DC_rbegin() const { return m_DC_rbegin; }
+  inline double DC_rend() const { return m_DC_rend; }
+  inline double DC_rmax() const { return m_DC_rmax; }
+  inline double DC_rmin() const { return m_DC_rmin; }
   inline const std::string& fieldNamePhi() const { return m_phiID; }
   inline const std::string& Layerid() const { return layer_id; }
+
   // Setters
 
   inline double phiFromXY(const Vector3D& aposition) const {
@@ -167,18 +162,12 @@ protected:
   double m_cellSize;
   double m_epsilon0;
   double m_detectorLength;
-  double m_DC_inner_rbegin;
-  double m_DC_inner_rend;
-  double m_DC_outer_rbegin;
-  double m_DC_outer_rend;
-  double m_DC_inner_rmin;
-  double m_DC_inner_rmax;
-  double m_DC_outer_rmin;
-  double m_DC_outer_rmax;
   double m_layer_width;
   double m_safe_distance;
-  int m_DC_inner_layer_number;
-  int m_DC_outer_layer_number;
+  double m_DC_rbegin;
+  double m_DC_rend;
+  double m_DC_rmax;
+  double m_DC_rmin;
 
   std::string m_phiID;
   std::string layer_id;
diff --git a/Detector/DetSegmentation/src/GridDriftChamber.cpp b/Detector/DetSegmentation/src/GridDriftChamber.cpp
index 247424b5d078b5c093881dfe4ef72b07726d45b4..ec2e07070a42467cc91a5e8806047f71bb09b9d5 100644
--- a/Detector/DetSegmentation/src/GridDriftChamber.cpp
+++ b/Detector/DetSegmentation/src/GridDriftChamber.cpp
@@ -14,10 +14,6 @@ GridDriftChamber::GridDriftChamber(const std::string& cellEncoding) : Segmentati
   registerParameter("detector_length", "Length of the wire", m_detectorLength, 1., SegmentationParameter::LengthUnit);
   registerIdentifier("identifier_phi", "Cell ID identifier for phi", m_phiID, "cellID");
   registerIdentifier("layerID", "layer id", layer_id, "layer");
-  registerParameter("DC_inner_rmin", "DC_inner_rmin", m_DC_inner_rmin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_inner_rmax", "DC_inner_rmax", m_DC_inner_rmax, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rmin", "DC_outer_rmin", m_DC_outer_rmin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rmax", "DC_outer_rmax", m_DC_outer_rmax, 0., SegmentationParameter::LengthUnit);
 }
 
 GridDriftChamber::GridDriftChamber(const BitFieldCoder* decoder) : Segmentation(decoder) {
@@ -30,18 +26,12 @@ GridDriftChamber::GridDriftChamber(const BitFieldCoder* decoder) : Segmentation(
   registerParameter("detector_length", "Length of the wire", m_detectorLength, 1., SegmentationParameter::LengthUnit);
   registerIdentifier("identifier_phi", "Cell ID identifier for phi", m_phiID, "cellID");
   registerIdentifier("layerID", "layer id", layer_id, "layer");
-  registerParameter("DC_inner_rbegin", "DC_inner_rbegin", m_DC_inner_rbegin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_inner_rend", "DC_inner_rend", m_DC_inner_rend, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rbegin", "DC_outer_rbegin", m_DC_outer_rbegin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rend", "DC_outer_rend", m_DC_outer_rend, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_inner_rmin", "DC_inner_rmin", m_DC_inner_rmin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_inner_rmax", "DC_inner_rmax", m_DC_inner_rmax, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rmin", "DC_outer_rmin", m_DC_outer_rmin, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_rmax", "DC_outer_rmax", m_DC_outer_rmax, 0., SegmentationParameter::LengthUnit);
   registerParameter("safe_distance", "safe_distance", m_safe_distance, 0., SegmentationParameter::LengthUnit);
   registerParameter("layer_width", "layer_width", m_layer_width, 0., SegmentationParameter::LengthUnit);
-  registerParameter("DC_inner_layer_number", "DC_inner_layer_number", m_DC_inner_layer_number, 0,SegmentationParameter::LengthUnit);
-  registerParameter("DC_outer_layer_number", "DC_outer_layer_number", m_DC_outer_layer_number, 0, SegmentationParameter::LengthUnit);
+  registerParameter("DC_rbegin", "DC_rbegin", m_DC_rbegin, 0., SegmentationParameter::LengthUnit);
+  registerParameter("DC_rend", "DC_rend", m_DC_rend, 0., SegmentationParameter::LengthUnit);
+  registerParameter("DC_rmin", "DC_rmin", m_DC_rmin, 0., SegmentationParameter::LengthUnit);
+  registerParameter("DC_rmax", "DC_rmax", m_DC_rmax, 0., SegmentationParameter::LengthUnit);
 }
 
 Vector3D GridDriftChamber::position(const CellID& /*cID*/) const {
@@ -60,24 +50,18 @@ CellID GridDriftChamber::cellID(const Vector3D& /*localPosition*/, const Vector3
   double posy = globalPosition.Y;
   double radius = sqrt(posx*posx+posy*posy);
 
+  int m_DC_layer_number = floor((m_DC_rend-m_DC_rbegin)/m_layer_width);
   double DC_layerdelta = m_layer_width;
 
   int layerid;
-  if( radius<= m_DC_inner_rend && radius>= m_DC_inner_rbegin) {
-      layerid = floor((radius - m_DC_inner_rbegin)/DC_layerdelta);
-  } else if ( radius<= m_DC_outer_rend && radius>= m_DC_outer_rbegin ) {
-      layerid = floor((radius - m_DC_outer_rbegin)/DC_layerdelta);
-  } else if ( radius>= (m_DC_inner_rmin-m_safe_distance) && radius < m_DC_inner_rbegin) {
+  if( radius<= m_DC_rend && radius>= m_DC_rbegin) {
+      layerid = floor((radius - m_DC_rbegin)/DC_layerdelta);
+  } else if ( radius>= (m_DC_rmin-m_safe_distance) && radius < m_DC_rbegin) {
       layerid = 0;
-  } else if ( radius> m_DC_inner_rend && radius <= (m_DC_inner_rmax+m_safe_distance)) {
-      layerid = m_DC_inner_layer_number-1;
-  } else if ( radius>= (m_DC_outer_rmin-m_safe_distance) && radius < m_DC_outer_rbegin) {
-      layerid = 0;
-  } else if ( radius> m_DC_outer_rend && radius <= (m_DC_outer_rmax+m_safe_distance)) {
-      layerid = m_DC_outer_layer_number-1;
+  } else if ( radius> m_DC_rend && radius <= (m_DC_rmax+m_safe_distance)) {
+      layerid = m_DC_layer_number-1;
   }
 
-
   updateParams(chamberID,layerid);
 
   double phi_hit = phiFromXY(globalPosition);
@@ -118,8 +102,6 @@ void GridDriftChamber::cellposition(const CellID& cID, TVector3& Wstart,
   Wend = returnWirePosition(phi_end, 1);
 }
 
-
-
 double GridDriftChamber::distanceTrackWire(const CellID& cID, const TVector3& hit_start,
                                            const TVector3& hit_end) const {
 
diff --git a/Detector/DetSegmentation/src/plugins/SegmentationFactories.cpp b/Detector/DetSegmentation/src/plugins/SegmentationFactories.cpp
index 9c06d3835694cff4ba0d5419ff370cf4ff96b5e3..c00530a1c487a823b928acc75c54e30af7b4f347 100644
--- a/Detector/DetSegmentation/src/plugins/SegmentationFactories.cpp
+++ b/Detector/DetSegmentation/src/plugins/SegmentationFactories.cpp
@@ -19,4 +19,3 @@ dd4hep::SegmentationObject* create_segmentation(const dd4hep::BitFieldCoder* dec
 
 #include "DetSegmentation/GridDriftChamber.h"
 DECLARE_SEGMENTATION(GridDriftChamber, create_segmentation<dd4hep::DDSegmentation::GridDriftChamber>)
-
diff --git a/Service/GearSvc/src/GearSvc.cpp b/Service/GearSvc/src/GearSvc.cpp
index 5e4f21754ade341c5b4f241891f185fef2618ba2..e793bdbe8ac98c691ce7a6e085964d41709456f7 100644
--- a/Service/GearSvc/src/GearSvc.cpp
+++ b/Service/GearSvc/src/GearSvc.cpp
@@ -756,12 +756,11 @@ StatusCode GearSvc::convertDC(dd4hep::DetElement& dc){
       if(nodeName.find("chamber_vol")!=-1||nodeName.find("assembly")!=-1){
 	if(grid){
 	  // if more than one chamber, just use the outer, TODO
-	  dcData->rMinReadout = grid->DC_outer_rbegin();
-	  dcData->rMaxReadout = grid->DC_outer_rend();
+	  dcData->rMinReadout = grid->DC_rbegin();
+	  dcData->rMaxReadout = grid->DC_rend();
 	  dcData->driftLength = grid->detectorLength();
-	  dcData->maxRow      = grid->DC_outer_layer_number();
 	  dcData->padHeight   = grid->layer_width();
-          dcData->padWidth    = dcData->padHeight;
+      dcData->padWidth    = dcData->padHeight;
 	}
 	else{
 	  TGeoNode* next = daughter;