diff --git a/compact/hcal/backward.xml b/compact/hcal/backward.xml
index 2df2373cd..5f23ab662 100644
--- a/compact/hcal/backward.xml
+++ b/compact/hcal/backward.xml
@@ -20,7 +20,7 @@
+ value="HcalEndcapNSteelThickness + HcalEndcapNPolystyreneThickness + HcalEndcapNLayerGap"/>
diff --git a/configurations/backward_hcal_only.yml b/configurations/backward_hcal_only.yml
new file mode 100644
index 000000000..1e331c41b
--- /dev/null
+++ b/configurations/backward_hcal_only.yml
@@ -0,0 +1,4 @@
+features:
+ hcal:
+ backward:
+ backward_endcap_flux:
diff --git a/src/PolyhedraEndcapCalorimeter2_geo.cpp b/src/PolyhedraEndcapCalorimeter2_geo.cpp
index 546b84278..c8cbc56c4 100644
--- a/src/PolyhedraEndcapCalorimeter2_geo.cpp
+++ b/src/PolyhedraEndcapCalorimeter2_geo.cpp
@@ -70,11 +70,12 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
string s_name = _toString(s_num, "slice%d");
double s_thick = x_slice.thickness();
Material s_mat = description.material(x_slice.materialStr());
- Volume s_vol(s_name, PolyhedraRegular(numsides, rmin, rmax, s_thick), s_mat);
+ Volume s_vol(s_name, PolyhedraRegular(numsides, M_PI / numsides, rmin, rmax, s_thick), s_mat);
s_vol.setVisAttributes(description.visAttributes(x_slice.visStr()));
sliceZ += s_thick / 2;
- PlacedVolume s_phv = l_vol.placeVolume(s_vol, Position(0, 0, sliceZ));
+ PlacedVolume s_phv = l_vol.placeVolume(
+ s_vol, Transform3D(RotationZYX(-M_PI / numsides, 0, 0), Position(0, 0, sliceZ)));
s_phv.addPhysVolID("slice", s_num);
if (x_slice.isSensitive()) {
sens.setType("calorimeter");