diff --git a/compact/definitions.xml b/compact/definitions.xml
index 557b1db48db2653f5bee21bed4a49c8e082ea944..3717a0d10ab65ffa05d2796618634f86a36513d1 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -626,7 +626,7 @@
 
     <constant name="ffi_ZDC_HCAL_offset"    value="5.0*mm"/>
     <constant name="ffi_ZDC_HCAL_st_length" value="20.0*mm"/>
-    <constant name="ffi_ZDC_HCAL_lt_length" value="40.0*mm"/>
+    <constant name="ffi_ZDC_HCAL_lt_length" value="ffi_ZDC_ECAL_width"/><comment> Changed from 40.0mm </comment>
     <constant name="ffi_ZDC_HCAL_st_x_pos"  value="0.60*m"/>
     <constant name="ffi_ZDC_HCAL_st_y_pos"  value="0.0*m"/>
     <constant name="ffi_ZDC_HCAL_st_z_pos"  value="ffi_ZDC_z_pos + ffi_ZDC_ECAL_thickness + 1*cm"/> <comment> Was 34 m, changed to be placed right after ZDC(The ecal) </comment>
diff --git a/src/ffi_ZDC_HCAL.cpp b/src/ffi_ZDC_HCAL.cpp
index 7018bb988732d4ce5eac07f32d4e686004fc4efc..201c351cdac9a1e2fb7e62edddb3492eca083a29 100644
--- a/src/ffi_ZDC_HCAL.cpp
+++ b/src/ffi_ZDC_HCAL.cpp
@@ -36,8 +36,8 @@ static Ref_t createDetector(Detector& lcdd, xml_h e, SensitiveDetector sens) {
 	int layer_num = 1;
 	int slice_num = 1;
 	double totWidth = Layering(x_det).totalThickness();
-	Box envelope ((pixel_x + 18.0*dd4hep::mm)/2.0, (pixel_y + 18.0*dd4hep::mm)/2.0,totWidth/2.0);
-	Volume envelopeVol(det_name+"_envelope",envelope,air); 
+	Box envelope (pixel_x/2.0, pixel_y/2.0, totWidth/2.0);
+	Volume envelopeVol(det_name+"_envelope", envelope,air); 
 	PlacedVolume pv;
 	
 	xml_comp_t x_layer = x_det.child(_U(layer));
@@ -72,14 +72,14 @@ static Ref_t createDetector(Detector& lcdd, xml_h e, SensitiveDetector sens) {
 					slice_vol.setSensitiveDetector(sens);
 				}
 				slice_vol.setAttributes(lcdd,x_slice.regionStr(), x_slice.limitsStr(), x_slice.visStr());
-				pv = layer_vol.placeVolume(slice_vol, Transform3D(RotationZ(M_PI/2.0),Position(0.0,0.0,z-zlayer-layerWidth/2.0+w/2.0)));
+				pv = layer_vol.placeVolume(slice_vol, Transform3D(RotationZYX(0, 0, 0),Position(0.0,0.0,z-zlayer-layerWidth/2.0+w/2.0)));
 				pv.addPhysVolID("slice", slice_num);
 				z += w;
 				++slice_num;
 			}
 			string layer_vis = dd4hep::getAttrOrDefault(x_layer, _Unicode(vis), "InvisibleWithDaughters");
 			layer_vol.setAttributes(lcdd, x_layer.regionStr(), x_layer.limitsStr(), layer_vis);
-			pv = envelopeVol.placeVolume(layer_vol, Transform3D(RotationZ(M_PI/4.0), Position(0,0,zlayer-zmin-totWidth/2.0+layerWidth/2.0)));
+			pv = envelopeVol.placeVolume(layer_vol, Transform3D(RotationZYX(0, 0, 0), Position(0,0,zlayer-zmin-totWidth/2.0+layerWidth/2.0)));
 			pv.addPhysVolID("layer", layer_num);
 			++layer_num;
 		}