diff --git a/compact/LGC.xml b/compact/LGC.xml
index 5f9e3d03a5c8ee3625d159011d955dea0d9ea136..0e7937c204f278c51339444f1278b3314819bed3 100644
--- a/compact/LGC.xml
+++ b/compact/LGC.xml
@@ -50,12 +50,10 @@
   Light Gas Cherenkov: Winston cones
 </comment>
 <winston_cone>
-  <cone>
-    <dimensions thickness="4*mm" length="30.*cm" radius1="7.0*cm" radius2="21.0*cm" inset_length="7.90909*cm"/>
-  </cone>
-  <tube>
-    <dimensions radius="11.28*cm" length="30.*cm"/>
-  </tube>
+  <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"/>
+  <tube_dimensions radius="11.28*cm" length="30.*cm"/>
 </winston_cone>
 
 <comment>
diff --git a/src/GasCherenkov_geo.cpp b/src/GasCherenkov_geo.cpp
index 5868c82e832bc63686a7df7536b3e787a5f880b3..b476aae4380bdad6b5fd81da0752f689de265e28 100644
--- a/src/GasCherenkov_geo.cpp
+++ b/src/GasCherenkov_geo.cpp
@@ -105,43 +105,44 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
         det.add(amod);
     }
 
-    //// ---------------
-    return det;
-}
-/*
     // ---------------
     // Winston Cone 
-    double LGC_winston_cone_thickness = 4*mm;
-    double LGC_winston_tube_inner_radius = 11.28*cm;
-    double LGC_winston_tube_length = 30.0*cm;
-    double LGC_winston_cone_length = 30.0*cm;
-    double LGC_winston_cone_inner_radius1 = 7.8*cm;
-    double LGC_winston_cone_inner_radius2 = 21.0*cm;
-    double LGC_winston_cone_inset_length = 7.90909*cm;
-    DetElement   de_winston_cone(det,"de_winston_cone1",1);
+    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);
-    //Cone        winston_cone(LGC_winston_cone_length / 2.0, LGC_winston_cone_inner_radius1,
-    //                  LGC_winston_cone_inner_radius1 + LGC_winston_cone_thickness,
-    //                  LGC_winston_cone_inner_radius2,
-    //                  LGC_winston_cone_inner_radius2 + LGC_winston_cone_thickness );
-    //UnionSolid  winston_cone_solid(winston_tube,winston_cone,Position(0,0,LGC_winston_tube_length / 2.0 - LGC_winston_cone_inset_length));
     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);
 
-    Volume v_winston_cone_solid("v_winston_cone_solid", winston_cone, PyrexGlass);
+    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)));
 
+    //// ---------------
+    return det;
+}
+/*
     //std::cout << " LGC_pmt_y_pos/cm " << LGC_pmt_y_pos/cm  << "\n";
     //std::cout << " LGC_pmt_z_pos/cm " << LGC_pmt_z_pos/cm  << "\n";
     //mirrorPV.addPhysVolID("layer", 2).addPhysVolID("module", 1);