diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml
index a56f0f12b9127f659d0951f69274aba73739101e..7ee0d9ae62e7700f6cffcb4770329e0383344907 100644
--- a/Detector/DetDriftChamber/compact/det.xml
+++ b/Detector/DetDriftChamber/compact/det.xml
@@ -28,7 +28,7 @@
     <constant name="SDT_length" value="SDT_half_length*2"/>
 
     <constant name="SDT_inner_chamber_radius_min" value="235*mm"/>
-    <constant name="SDT_inner_chamber_radius_max" value="909*mm"/>
+    <constant name="SDT_inner_chamber_radius_max" value="906*mm"/>
     <constant name="SDT_inner_chamber_length" value="SDT_length"/>
 
     <constant name="SDT_outer_chamber_radius_min" value="1085*mm"/>
@@ -40,10 +40,14 @@
     <constant name="SDT_chamber_layer_width" value="10*mm"/>
     <constant name="Epsilon" value="0*deg"/>
 
-    <constant name="SDT_inner_wall_radius_min" value="234.8*mm"/>
-    <constant name="SDT_inner_wall_radius_max" value="235*mm"/>
-    <constant name="SDT_outer_wall_radius_min" value="1715*mm"/>
-    <constant name="SDT_outer_wall_radius_max" value="1717.8*mm"/>
+    <constant name="SDT_inner_chamber_inner_wall_radius_min" value="234.8*mm"/>
+    <constant name="SDT_inner_chamber_inner_wall_radius_max" value="235*mm"/>
+    <constant name="SDT_inner_chamber_outer_wall_radius_min" value="906*mm"/>
+    <constant name="SDT_inner_chamber_outer_wall_radius_max" value="908.8*mm"/>
+    <constant name="SDT_outer_chamber_inner_wall_radius_min" value="1084.8*mm"/>
+    <constant name="SDT_outer_chamber_inner_wall_radius_max" value="1085*mm"/>
+    <constant name="SDT_outer_chamber_outer_wall_radius_min" value="1715*mm"/>
+    <constant name="SDT_outer_chamber_outer_wall_radius_max" value="1717.8*mm"/>
 
   </define>
 
@@ -64,8 +68,8 @@
     <detector id="1" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="VisibleBlue" sensitive="true" region="DriftChamberRegion">
       <envelope vis="SeeThrough">
         <shape type="BooleanShape" operation="Union" material="Air">
-          <shape type="Tube" rmin="SDT_radius_min" rmax="SDT_inner_chamber_radius_max" dz="SDT_half_length" />
-          <shape type="Tube" rmin="SDT_outer_chamber_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
+          <shape type="Tube" rmin="SDT_radius_min" rmax="909*mm" dz="SDT_half_length" />
+          <shape type="Tube" rmin="1084.8*mm" rmax="SDT_radius_max" dz="SDT_half_length" />
         </shape>
       </envelope>
 
diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
index bac0d1a9b69540210ddd33a2cb3fc52dc1f518d6..27d2a4f936fd450dddd1c38d0754b9344a3609f3 100644
--- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
@@ -92,21 +92,23 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     dd4hep::Tube det_outer_chamber_solid(outer_chamber_radius_min, outer_chamber_radius_max, outer_chamber_length*0.5);
     dd4hep::Volume det_outer_chamber_vol(det_name+"_outer_chamber_vol", det_outer_chamber_solid, det_mat);
 
-    // - inner wall
-    double inner_wall_rmin = theDetector.constant<double>("SDT_inner_wall_radius_min");
-    double inner_wall_rmax = theDetector.constant<double>("SDT_inner_wall_radius_max");
-    dd4hep::Material inner_wall_mat(theDetector.material("Air"));
-    dd4hep::Tube inner_wall_solid(inner_wall_rmin,inner_wall_rmax,chamber_length*0.5);
-    dd4hep::Volume inner_wall_vol(det_name+"_inner_wall",inner_wall_solid,inner_wall_mat);
-    inner_wall_vol.setVisAttributes(theDetector,"VisibleGreen");
-
-    // - outer wall
-    double outer_wall_rmin = theDetector.constant<double>("SDT_outer_wall_radius_min");
-    double outer_wall_rmax = theDetector.constant<double>("SDT_outer_wall_radius_max");
-    dd4hep::Material outer_wall_mat(theDetector.material("Air"));
-    dd4hep::Tube outer_wall_solid(outer_wall_rmin,outer_wall_rmax,chamber_length*0.5);
-    dd4hep::Volume outer_wall_vol(det_name+"_outer_wall",outer_wall_solid,outer_wall_mat);
-    outer_wall_vol.setVisAttributes(theDetector,"VisibleGreen");
+    // - 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");
+
+    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};
+
+    dd4hep::Tube wall_solid;
+    dd4hep::Volume wall_vol;
 
    // - wire
     dd4hep::Volume module_vol;
@@ -189,7 +191,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
 
         // - wire vol
         //phi <-------------------> -phi
-        //    |       F3        F4|
+        //    |       F4        F3|
         //    |                   |
         //    |       S         F2|
         //    |                   |
@@ -203,26 +205,13 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
             dd4hep::PlacedVolume module_phy = layer_vol.placeVolume(module_vol,transform_module);
            // - Field wire
             dd4hep::PlacedVolume Module_phy;
-           // - Field wire 0
-            dd4hep::Position tr3D_0 = Position((rmid-chamber_layer_width*0.5)*std::cos(wire_phi),(rmid-chamber_layer_width*0.5)*std::sin(wire_phi),0.);
-            dd4hep::Transform3D transform_Module_0(dd4hep::Rotation3D(),tr3D_0);
-            Module_phy = layer_vol.placeVolume(Module_vol,transform_Module_0);
-            // - Field wire 1
-            dd4hep::Position tr3D_1 = Position((rmid-chamber_layer_width*0.5)*std::cos(wire_phi-layer_Phi*0.5),(rmid-chamber_layer_width*0.5)*std::sin(wire_phi-layer_Phi*0.5),0.);
-            dd4hep::Transform3D transform_Module_1(dd4hep::Rotation3D(),tr3D_1);
-            Module_phy = layer_vol.placeVolume(Module_vol,transform_Module_1);
-            // - Field wire 2
-            dd4hep::Position tr3D_2 = Position(rmid*std::cos(wire_phi-layer_Phi*0.5),rmid*std::sin(wire_phi-layer_Phi*0.5),0.);
-            dd4hep::Transform3D transform_Module_2(dd4hep::Rotation3D(),tr3D_2);
-            Module_phy = layer_vol.placeVolume(Module_vol,transform_Module_2);
-            // - Field wire 3
-            dd4hep::Position tr3D_3 = Position((rmid+chamber_layer_width*0.5)*std::cos(wire_phi),(rmid+chamber_layer_width*0.5)*std::sin(wire_phi),0.);
-            dd4hep::Transform3D transform_Module_3(dd4hep::Rotation3D(),tr3D_3);
-            Module_phy = layer_vol.placeVolume(Module_vol,transform_Module_3);
-            // - Field wire 4
-            dd4hep::Position tr3D_4 = Position((rmid+chamber_layer_width*0.5)*std::cos(wire_phi-layer_Phi*0.5),(rmid+chamber_layer_width*0.5)*std::sin(wire_phi-layer_Phi*0.5),0.);
-            dd4hep::Transform3D transform_Module_4(dd4hep::Rotation3D(),tr3D_4);
-            Module_phy = layer_vol.placeVolume(Module_vol,transform_Module_4);
+            double radius[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};
+            double phi[5] = {wire_phi,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi};
+            for(int i=0; i<5; i++) {
+                dd4hep::Position tr3D = Position(radius[i]*std::cos(phi[i]),radius[i]*std::sin(phi[i]),0.);
+                dd4hep::Transform3D transform_Module(dd4hep::Rotation3D(),tr3D);
+                Module_phy = layer_vol.placeVolume(Module_vol,transform_Module);
+            }
         }
 //  }
 
@@ -258,10 +247,14 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
     dd4hep::Transform3D transform(dd4hep::Rotation3D(),
             dd4hep::Position(0,0,0));
     dd4hep::PlacedVolume phv = envelope.placeVolume(det_vol,transform);
-
-    dd4hep::PlacedVolume inner_wall_phy = envelope.placeVolume(inner_wall_vol,transform);
-
-    dd4hep::PlacedVolume outer_wall_phy = envelope.placeVolume(outer_wall_vol,transform);
+    // - place wall
+    dd4hep::PlacedVolume wall_phy;
+    for(int i=0; i<4 ; i++) {
+       wall_solid = Tube(wall_rmin[i],wall_rmax[i],chamber_length*0.5);
+       wall_vol = Volume(det_name+"_wall_vol",wall_solid,wall_mat);
+       wall_vol.setVisAttributes(theDetector,"VisibleGreen");
+       wall_phy = envelope.placeVolume(wall_vol,transform);
+    }
 
     if ( x_det.hasAttr(_U(id)) )  {
         phv.addPhysVolID("system",x_det.id());