diff --git a/compact/LGC.xml b/compact/LGC.xml
index 0e7937c204f278c51339444f1278b3314819bed3..8fde58649d448b595631c6407abca3b551f1c0f0 100644
--- a/compact/LGC.xml
+++ b/compact/LGC.xml
@@ -49,10 +49,10 @@
 <comment>
   Light Gas Cherenkov: Winston cones
 </comment>
-<winston_cone>
+<winston_cone material="PyrexGlass">
   <placement x="0*cm" y="255*cm" z="-40*cm"/>
   <rotation x="55.0*degree" y="0" z="0"/>
-  <cone_dimensions thickness="4*mm" length="30.*cm" radius1="7.0*cm" radius2="21.0*cm" inset_length="7.90909*cm"/>
+  <cone_dimensions thickness="4*mm" length="30.*cm" radius1="7.0*cm" radius2="21.0*cm"/>
   <tube_dimensions radius="11.28*cm" length="30.*cm"/>
 </winston_cone>
 
diff --git a/src/GasCherenkov_geo.cpp b/src/GasCherenkov_geo.cpp
index b476aae4380bdad6b5fd81da0752f689de265e28..cfb46d1626768b06ae9a2567a17043abbf554fb0 100644
--- a/src/GasCherenkov_geo.cpp
+++ b/src/GasCherenkov_geo.cpp
@@ -91,7 +91,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
                           mdim.length()/2., mdim.length()/2.);
         auto   mir_trans = RotationX(M_PI/2.)*Transform3D(Position(0., 0., -mdim.radius()));
         Volume v_mir("vol_mirror_" + std::to_string(i), IntersectionSolid(mir_cutout, mir_shell, mir_trans), mmat);
-        auto   mir_trans2 = Transform3D(Position(0., mloc.y(), mloc.z()))*RotationZYX(mrot.z(), mrot.y(), mrot.x());
+        auto   mir_trans2 = Transform3D(Position(mloc.x(), mloc.y(), mloc.z()))*RotationZYX(mrot.z(), mrot.y(), mrot.x());
         PlacedVolume pv_mir = v_sector.placeVolume(v_mir, mir_trans2);
     }
 
@@ -107,37 +107,34 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
 
     // ---------------
     // Winston Cone 
-    auto   x_winston    = x_det.child(_Unicode(winston_cone));
-
-    xml_dim_t cdims       = x_winston.child(_Unicode(cone_dimensions));
-    double cone_thickness = cdims.thickness();
-    double cone_length    = cdims.length1();
-    double cone_radius1   = cdims.radius1();
-    double cone_radius2   = cdims.radius2();
-    double cone_inset_length = cdims.inset_length();
-
-    xml_dim_t tdims    = x_winston.child(_Unicode(tube_dimensions));
-    double tube_radius = tdims.radius();
-    double tube_length = tdims.length();
-    auto   winston_mat = desc.material(x_winstone.materialStr());
-
-    DetElement   de_wcone(det, "de_winston_cone1", 1);
-    Tube         winston_tube(LGC_winston_tube_inner_radius,
-                      LGC_winston_tube_inner_radius + LGC_winston_cone_thickness,
-                      LGC_winston_tube_length / 2.0);
-    Paraboloid winston_cone1(LGC_winston_cone_inner_radius1 + LGC_winston_cone_thickness,
-                       LGC_winston_cone_inner_radius2 + LGC_winston_cone_thickness,
-                       LGC_winston_cone_length / 2.0 );
-    Paraboloid winston_cone2(LGC_winston_cone_inner_radius1,
-                       LGC_winston_cone_inner_radius2,
-                       LGC_winston_cone_length / 2.0 );
-    SubtractionSolid  winston_cone(winston_cone1, winston_cone2);
+    auto x_winston   = x_det.child(_Unicode(winston_cone));
+    auto winston_mat = desc.material(x_winston.attr<std::string>(_Unicode(material)));
+
+    xml_dim_t wpl  = x_winston.child(_U(placement));
+    xml_dim_t wrot = x_winston.child(_U(rotation));
+
+    xml_dim_t cdims             = x_winston.child(_Unicode(cone_dimensions));
+    double    cone_thickness    = cdims.thickness();
+    double    cone_length       = cdims.attr<double>(_Unicode(length));
+    double    cone_radius1      = cdims.attr<double>(_Unicode(radius1));
+    double    cone_radius2      = cdims.attr<double>(_Unicode(radius2));
+    // double    cone_inset_length = cdims.attr<double>(_Unicode(inset_length));
+
+    xml_dim_t tdims       = x_winston.child(_Unicode(tube_dimensions));
+    double    tube_radius = tdims.radius();
+    double    tube_length = tdims.length();
+
+    DetElement       de_wcone(det, "de_winston_cone1", 1);
+    Tube             winston_tube(tube_radius, tube_radius + cone_thickness, tube_length / 2.0);
+    Paraboloid       winston_cone1(cone_radius1 + cone_thickness, cone_radius2 + cone_thickness, cone_length / 2.0 );
+    Paraboloid       winston_cone2(cone_radius1, cone_radius2, cone_length / 2.0 );
+    SubtractionSolid winston_cone(winston_cone1, winston_cone2);
 
     Volume v_winston_cone_solid("v_winston_cone_solid", winston_cone, winston_mat);
     PlacedVolume pv_winston_cone_solid = v_sector.placeVolume(
-        v_winston_cone_solid, Transform3D(Position(0, LGC_pmt_y_pos, LGC_pmt_z_pos)) *
-                       RotationX(LGC_pmt_tilt_angle) *
-                       Transform3D(Position(0, 0, LGC_winston_tube_length / 2.0 + 5.0 * mm)));
+        v_winston_cone_solid, Transform3D(Position(wpl.x(), wpl.y(), wpl.z())) *
+                       RotationZYX(wrot.z(), wrot.y(), wrot.x()) *
+                       Transform3D(Position(0, 0, tube_length / 2.0 + 5.0 * mm)));
 
     //// ---------------
     return det;