diff --git a/compact/ffi_ZDC.xml b/compact/ffi_ZDC.xml
index d149915d668d7652ca6894334bd33859d20fd2d1..36638f190574fc06417d756cfd44213bde496a88 100644
--- a/compact/ffi_ZDC.xml
+++ b/compact/ffi_ZDC.xml
@@ -26,7 +26,7 @@
   <readouts>
     <readout name="ffi_ZDC_Hits">
       <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
-      <id>system:8,module:12,x:32:-16,y:-16</id>  
+      <id>system:8,sector:6,module:6,x:32:-16,y:-16</id>  
     </readout>
   </readouts>
 
diff --git a/src/ffi_ZDC.cpp b/src/ffi_ZDC.cpp
index f9d686a7595628905038fbb57839684cd9df4c26..89690bc244b4578487fde45c8469c283b09e40fc 100644
--- a/src/ffi_ZDC.cpp
+++ b/src/ffi_ZDC.cpp
@@ -31,16 +31,15 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
   double     mGap       = mod.attr<double>(_Unicode(gap));
   int        mNTowers   = mod.attr<double>(_Unicode(ntower));
 
-  DetElement   det(detName, detID);
-  Volume       motherVol = desc.pickMotherVolume(det);
+  //DetElement   det(detName, detID);
+  //Volume       motherVol = desc.pickMotherVolume(det);
   
   // Create Global Volume 
   Box ffi_ZDC_GVol_Solid(Width * 0.5, Width * 0.5, Thickness * 0.5);
   Volume detVol("ffi_ZDC_GVol_Logic", ffi_ZDC_GVol_Solid, Vacuum);
-  Transform3D  tr(RotationZYX(rot.z(), rot.y(), rot.x()), Position(pos.x(), pos.y(), pos.z()));
-  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
-  detPV.addPhysVolID("system", detID);
-
+  //Transform3D  tr(RotationZYX(rot.z(), rot.y(), rot.x()), Position(pos.x(), pos.y(), pos.z()));
+  //PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  //detPV.addPhysVolID("system", detID);
   detVol.setVisAttributes(desc.visAttributes(x_det.visStr()));
 
   // Construct Tower
@@ -48,6 +47,8 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
   Box ffi_ZDC_ECAL_Solid_Tower(mWidth * 0.5, mWidth * 0.5, mThickness * 0.5);
   Volume modVol("ffi_ZDC_ECAL_Logic_Tower", ffi_ZDC_ECAL_Solid_Tower, mPbWO4);  
   modVol.setVisAttributes(desc.visAttributes(mod.visStr()));
+  sens.setType("calorimeter");
+  modVol.setSensitiveDetector(sens);
 
   // Module Position
   double mod_x = 0.0 * mm;
@@ -75,12 +76,15 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
       k++;
       string module_name = detName + _toString(k,"_ECAL_Phys_%d"); 
       PlacedVolume pv_mod = detVol.placeVolume(modVol, Position(mod_x,mod_y,mod_z));
-      pv_mod.addPhysVolID("module",k);
-      sens.setType("calorimeter");
-      modVol.setSensitiveDetector(sens);
+      pv_mod.addPhysVolID("sector", 1).addPhysVolID("module",k);
     }
   }
 
+  DetElement   det(detName, detID);
+  Volume       motherVol = desc.pickMotherVolume(det);
+  Transform3D  tr(RotationZYX(rot.z(), rot.y(), rot.x()), Position(pos.x(), pos.y(), pos.z()));
+  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  detPV.addPhysVolID("system", detID);
   det.setPlacement(detPV);
   return det;
 }