From d70bfa12105866dce9eea9c26e5751c5a872f7d8 Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Tue, 25 May 2021 20:07:58 +0000
Subject: [PATCH] Cleanup of geometry constructions

- Renamed the vertex and tracker barrel detectors
- Commented out endcap tracker
- Added more detailed to space frame construction.
---
 athena.xml                                    |   4 +-
 compact/allsilicon_simplified.xml             |   3 +-
 compact/central_tracker.xml                   | 273 ++++++++++++++++++
 compact/definitions.xml                       | 122 ++++----
 compact/ecal.xml                              |   2 +-
 compact/forward_rich.xml                      |   9 +-
 compact/vertex_tracker.xml                    | 129 ++++-----
 macro/gps.mac                                 |  24 ++
 src/BarrelTrackerWithFrame_geo.cpp            |  37 ++-
 src/ForwardRICH_geo.cpp                       |   2 +-
 src/{ref_utils.cpp => GeometryHelpers.cpp}    |   2 +-
 src/{ref_utils.h => GeometryHelpers.h}        |   0
 ...cker_geo.cpp => SimpleDiskTracker_geo.cpp} |   0
 ...o.cpp => SimpleRectangularTracker_geo.cpp} |   0
 ..._ZDC.cpp => ZeroDegreeCalorimeter_geo.cpp} |   0
 src/ce_MRICH.cpp                              |   2 +-
 16 files changed, 453 insertions(+), 156 deletions(-)
 create mode 100644 compact/central_tracker.xml
 create mode 100644 macro/gps.mac
 rename src/{ref_utils.cpp => GeometryHelpers.cpp} (98%)
 rename src/{ref_utils.h => GeometryHelpers.h} (100%)
 rename src/{ref_DiskTracker_geo.cpp => SimpleDiskTracker_geo.cpp} (100%)
 rename src/{ref_RectangularTracker_geo.cpp => SimpleRectangularTracker_geo.cpp} (100%)
 rename src/{ffi_ZDC.cpp => ZeroDegreeCalorimeter_geo.cpp} (100%)

diff --git a/athena.xml b/athena.xml
index c0b0084c..fc0a1cdd 100644
--- a/athena.xml
+++ b/athena.xml
@@ -111,7 +111,8 @@
   <include ref="ip6/forward_ion_beamline.xml"/>
   <include ref="ip6/beampipe.xml"/>
 
-  <include ref="compact/allsilicon_simplified.xml"/>
+  <include ref="compact/vertex_tracker.xml"/>
+  <include ref="compact/central_tracker.xml"/>
   <include ref="compact/rwell_tracker_barrel.xml"/>
   <include ref="compact/cb_DIRC.xml"/>
 
@@ -119,7 +120,6 @@
   <include ref="compact/ecal.xml"/>
   <include ref="compact/hcal.xml"/>
   <!--include ref="compact/ce_GEM.xml"/-->
-  <!--include ref="compact/vertex_tracker.xml"/-->
   <!--include ref="compact/gem_tracker_endcap.xml"/-->
   <include ref="compact/ce_mrich.xml"/>
   <include ref="compact/tof_endcap.xml"/>
diff --git a/compact/allsilicon_simplified.xml b/compact/allsilicon_simplified.xml
index 7e4b551d..61b42e10 100644
--- a/compact/allsilicon_simplified.xml
+++ b/compact/allsilicon_simplified.xml
@@ -12,7 +12,6 @@
   </comment>
 
   <define>
-    <constant name="ITS3Thickness"              value=".03*mm"/>
 
     <constant name="VtxRadius1"                 value="3.3*cm"/>
     <constant name="VtxRadius2"                 value="5.7*cm"/>
@@ -22,7 +21,7 @@
 
     <constant name="TrkBarrelThickness"         value="0.55/100*9.37*cm"/>
     <constant name="TrkBarrelServiceThickness"  value="TrkBarrelThickness-ITS3Thickness"/>
-      
+
     <constant name="TrkBarrel1Radius1"          value="21.0*cm"/>
     <constant name="TrkBarrel1Radius2"          value="22.68*cm"/>
     <constant name="TrkBarrel1Length1"          value="54.0*cm"/>
diff --git a/compact/central_tracker.xml b/compact/central_tracker.xml
new file mode 100644
index 00000000..cf8ed445
--- /dev/null
+++ b/compact/central_tracker.xml
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lccdd>
+  <comment> 
+    ---------------
+    Silicon Tracker
+    ---------------
+
+    https://github.com/reynier0611/g4lblvtx/blob/master/macros/auxiliary_studies/simplified_geometry/Fun4All_G4_simplified_v2.C
+    With some added info on ITS3 chip from
+    https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
+    To be used as standin until we get more detailed specs from the working group on the tracker.
+    Note that most details are replaced with 
+
+    Note: initial implementation with hard-coded values,
+          TODO: add parametrization
+  </comment>
+
+  <define>
+
+    <constant name="TrackerBarrelSpaceFrame_width"   value="42.0*mm"/>
+    <constant name="TrackerBarrelSpaceFrame_height"  value="sqrt(3.0)*42.0*mm/2.0"/>
+    <constant name="TrackerSensor_thickness"   value="0.03*mm"/>
+    <constant name="TrackerBarrel_thickness"         value="0.55/100*9.37*cm"/>
+    <constant name="TrackerBarrelService_thickness"  value="TrackerBarrel_thickness-TrackerSensor_thickness"/>
+
+    <comment>
+      Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
+    </comment>
+    <constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
+    <constant name="TrackerBarrel1_rmin1"       value="21.0*cm"/>
+    <constant name="TrackerBarrel1_rmin2"       value="TrackerBarrel1_rmin1 + TrackerBarrelSpaceFrame_width"/>
+    <constant name="TrackerBarrel1_length1"     value="54.0*cm"/>
+    <constant name="TrackerBarrel1_length2"     value="60.0*cm"/>
+
+    <constant name="TrackerBarrel2_rmin1"       value="39.3*cm"/>
+    <constant name="TrackerBarrel2_rmin2"       value="TrackerBarrel2_rmin1 + TrackerBarrelSpaceFrame_width"/>
+    <constant name="TrackerBarrel2_length1"     value="105.0*cm"/>
+    <constant name="TrackerBarrel2_length2"     value="114.0*cm"/>
+
+    <constant name="TrackerBarrelGroup1_thickness"  value="TrackerBarrel1_rmin2 - TrackerBarrel1_rmin1"/>
+    <constant name="TrackerBarrelGroup2_thickness"  value="TrackerBarrel2_rmin2 - TrackerBarrel2_rmin1"/>
+    <constant name="TrackerBarrelGroup1_length"     value="TrackerBarrel1_length2"/>
+    <constant name="TrackerBarrelGroup2_length"     value="TrackerBarrel2_length2"/>
+
+    <constant name="TrackerEndcap_thickness"        value="0.25/100*9.37*cm"/>
+    <constant name="TrackerEndcapService_thickness" value="TrackerEndcap_thickness-TrackerSensor_thickness"/>
+    <constant name="TrackerEndcap_nLayers"          value="3"/>
+    <constant name="TrackerEndcapInner_zmin"        value="25.0*cm"/>
+    <constant name="TrackerEndcapInner_zmax"        value="49.0*cm"/>
+    <constant name="TrackerEndcapOuter_zmin"        value="73.0*cm"/>
+    <constant name="TrackerEndcapOuter_zmax"        value="121.0*cm"/>
+    <constant name="TrackerEndcapOuter_deltaz"      value="(TrackerEndcapOuter_zmax-TrackerEndcapOuter_zmin)/(TrackerEndcap_nLayers-1)" />
+
+    <constant name="TrackerEndcapInner1_rmin" value="Beampipe_rmax+1.0*cm"/>
+    <constant name="TrackerEndcapInner2_rmin" value="Beampipe_rmax+1.0*cm"/>
+    <constant name="TrackerEndcapOuter_rmin"  value="3.18*cm"/>
+
+    <constant name="TrackerEndcapInner1_rmax" value="18.5*cm"/>
+    <constant name="TrackerEndcapInner2_rmax" value="18.5*cm + TrackerBarrelGroup1_thickness"/>
+    <constant name="TrackerEndcapOuter_rmax"  value="43.23*cm"/>
+
+
+    <comment> TODO: These should be computed </comment>
+    <constant name="TrackerBarrelGroup1_NModules" value="30"/>
+    <constant name="TrackerBarrelGroup2_NModules" value="56"/>
+
+  </define>
+
+  <display>
+  </display>
+
+  <detectors>
+
+    <detector id="TrackerSubAssemblyLayer1_ID"
+      name="TrackerSubAssemblyLayer1"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <!--
+      <composite name="VertexTrackerEndcapN"/>
+      <composite name="VertexTrackerEndcapP"/>
+      -->
+      <composite name="TrackerBarrel_Inner1"/>
+    </detector>
+
+    <comment>
+      Inner Tracker Barrel (group 1)
+    </comment>
+    <detector
+      id="TrackerBarrel_Layer1_ID"
+      name="TrackerBarrel_Inner1"
+      type="athena_TrackerBarrel"
+      readout="TrackerBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset"
+        rmax="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
+        length="TrackerBarrelGroup1_length"/>
+      <comment>
+        Tracker Barrel Modules
+      </comment>
+      <module name="TrackerBarrelGroup1_Module1" vis="PurpleVis">
+        <frame 
+          width="TrackerBarrelSpaceFrame_width"  
+          height="TrackerBarrelSpaceFrame_height" 
+          length="TrackerBarrel1_length1"
+          thickness="0.1*mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
+        <module_component name="silicon" 
+          width="TrackerBarrelSpaceFrame_width"
+          length="TrackerBarrel1_length1-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
+          <position z="-0.025*mm" y="0*mm"/>
+        </module_component>
+      </module>
+      <comment>
+        Tracker Barrel Inner Layers
+      </comment>
+      <layer module="TrackerBarrelGroup1_Module1" id="1" vis="VertexVis">
+        <barrel_envelope
+          inner_r="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset"
+          outer_r="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
+          z_length="TrackerBarrel1_length1"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup1_NModules" phi0="0.0" rc="TrackerBarrel1_rmin1" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="TrackerBarrelGroup1_Module1" id="2" vis="VertexVis">
+        <barrel_envelope
+          inner_r="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset"
+          outer_r="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
+          z_length="TrackerBarrel1_length2"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup1_NModules" phi0="0.0" rc="TrackerBarrel1_rmin2" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+    </detector>
+
+    <comment>
+      Outer tracker barrel (Group2)
+    </comment>
+    <detector
+      id="TrackerBarrel_Layer2_ID"
+      name="TrackerBarrel_Outer2"
+      type="athena_TrackerBarrel"
+      readout="TrackerBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset"
+        rmax="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
+        length="TrackerBarrelGroup2_length"/>
+
+      <comment>
+        Tracker Barrel Modules
+      </comment>
+      <module name="TrackerBarrelGroup2_Module1" vis="PurpleVis">
+        <frame 
+          width="TrackerBarrelSpaceFrame_width"  
+          height="TrackerBarrelSpaceFrame_height" 
+          length="TrackerBarrel2_length1"
+          thickness="0.1*mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
+        <module_component name="silicon" 
+          width="TrackerBarrelSpaceFrame_width"
+          length="TrackerBarrel2_length1-0.1*mm" 
+          thickness="0.05*mm" material="Silicon" sensitive="true">
+          <position z="-0.025*mm" y="0*mm"/>
+        </module_component>
+      </module>
+
+      <comment>
+        Tracker Barrel Inner Layers
+      </comment>
+      <layer module="TrackerBarrelGroup2_Module1" id="1" vis="VertexVis">
+        <barrel_envelope
+          inner_r="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset"
+          outer_r="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
+          z_length="TrackerBarrelGroup2_length"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup2_NModules" phi0="0.0" rc="TrackerBarrel2_rmin1" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="TrackerBarrelGroup2_Module1" id="2" vis="VertexVis">
+        <barrel_envelope
+          inner_r="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset"
+          outer_r="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
+          z_length="TrackerBarrelGroup2_length"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup2_NModules" phi0="0.0" rc="TrackerBarrel2_rmin2" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+
+    </detector>
+
+    <!--
+    <detector id="VertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
+      insideTrackingVolume="true" reflect="false" vis="AnlRed">
+      <position x="0" y="0" z="0"/>
+      <layer id="1" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapP_rmin" 
+        outer_r="VertexTrackerEndcapP_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="2" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapP_rmin" 
+        outer_r="VertexTrackerEndcapP_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="3" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapP_zmin + 2*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapP_rmin" 
+        outer_r="VertexTrackerEndcapP_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="4" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapP_zmin + 3*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapP_rmin" 
+        outer_r="VertexTrackerEndcapP_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="5" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapP_zmin + 4*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapP_rmin" 
+        outer_r="VertexTrackerEndcapP_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+    </detector>
+
+    <detector id="VertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
+      insideTrackingVolume="true" reflect="true" vis="AnlRed">
+      <position x="0" y="0" z="0"/>
+      <layer id="1" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapN_rmin" 
+        outer_r="VertexTrackerEndcapN_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="2" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapN_rmin" 
+        outer_r="VertexTrackerEndcapN_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="3" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapN_zmin + 2*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapN_rmin" 
+        outer_r="VertexTrackerEndcapN_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="4" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapN_zmin + 3*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapN_rmin" 
+        outer_r="VertexTrackerEndcapN_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+      <layer id="5" vis="AnlOrange"
+        inner_z="VertexTrackerEndcapN_zmin + 4*VertexTrackerEndcap_delta" 
+        inner_r="VertexTrackerEndcapN_rmin" 
+        outer_r="VertexTrackerEndcapN_rmax">
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
+      </layer>
+    </detector>
+    -->
+
+  </detectors>
+
+  <readouts>
+    <readout name="TrackerBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.150*mm" grid_size_y="0.150*mm" />
+      <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="TrackerEndcapHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
+      <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
+    </readout>
+  </readouts>
+
+
+</lccdd>
diff --git a/compact/definitions.xml b/compact/definitions.xml
index d8dac0d6..77909ff0 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -68,12 +68,10 @@
       Layer 4 subassembly ID: 29
       Layer 5 subassembly ID: 30
     </comment>
-    <constant name="cb_VTX_Barrel_ID" value="25"/>
-    <constant name="SiVertexBarrel_ID" value="cb_VTX_Barrel_ID"/>
-    <constant name="SiVertexSubAssembly_ID" value="26"/>
-    <constant name="SiVertexEndcapP_ID" value="30"/>
-    <constant name="SiVertexEndcapN_ID" value="40"/>
-    <constant name="AllSiliconVtx_ID" value="41"/>
+    <constant name="VertexBarrel_ID" value="25"/>
+    <constant name="VertexSubAssembly_ID" value="26"/>
+    <constant name="VertexEndcapP_ID" value="30"/>
+    <constant name="VertexEndcapN_ID" value="40"/>
     
     <comment>
       Unused values reserved for vertex:
@@ -102,49 +100,34 @@
 
     </comment>
 
-    <constant name="SiTrackerSubAssembly_ID" value="50"/>
-    <constant name="SiTrackerSubAssemblyLayer1_ID" value="51"/>
-    <constant name="SiTrackerSubAssemblyLayer2_ID" value="52"/>
-    <constant name="SiTrackerSubAssemblyLayer3_ID" value="53"/>
-    <constant name="SiTrackerSubAssemblyLayer4_ID" value="54"/>
-    <constant name="SiTrackerSubAssemblyLayer5_ID" value="55"/>
+    <constant name="TrackerSubAssembly_ID" value="50"/>
+    <constant name="TrackerSubAssemblyLayer1_ID" value="51"/>
+    <constant name="TrackerSubAssemblyLayer2_ID" value="52"/>
+    <constant name="TrackerSubAssemblyLayer3_ID" value="53"/>
+    <constant name="TrackerSubAssemblyLayer4_ID" value="54"/>
+    <constant name="TrackerSubAssemblyLayer5_ID" value="55"/>
 
-    <constant name="SiTrackerBarrel_Layer1_ID"      value="56"/>
-    <constant name="SiTrackerEndcapP_Layer1_ID"     value="57"/>
-    <constant name="SiTrackerEndcapN_Layer1_ID"     value="58"/>
+    <constant name="TrackerBarrel_Layer1_ID"      value="56"/>
+    <constant name="TrackerEndcapP_Layer1_ID"     value="57"/>
+    <constant name="TrackerEndcapN_Layer1_ID"     value="58"/>
 
-    <constant name="SiTrackerBarrel_Layer2_ID"      value="59"/>
-    <constant name="SiTrackerEndcapP_Layer2_ID"     value="60"/>
-    <constant name="SiTrackerEndcapN_Layer2_ID"     value="61"/>
+    <constant name="TrackerBarrel_Layer2_ID"      value="59"/>
+    <constant name="TrackerEndcapP_Layer2_ID"     value="60"/>
+    <constant name="TrackerEndcapN_Layer2_ID"     value="61"/>
 
-    <constant name="SiTrackerBarrel_Layer3_ID"      value="62"/>
-    <constant name="SiTrackerEndcapP_Layer3_ID"     value="63"/>
-    <constant name="SiTrackerEndcapN_Layer3_ID"     value="64"/>
+    <constant name="TrackerBarrel_Layer3_ID"      value="62"/>
+    <constant name="TrackerEndcapP_Layer3_ID"     value="63"/>
+    <constant name="TrackerEndcapN_Layer3_ID"     value="64"/>
 
-    <constant name="SiTrackerBarrel_Layer4_ID"      value="65"/>
-    <constant name="SiTrackerEndcapP_Layer4_ID"     value="66"/>
-    <constant name="SiTrackerEndcapN_Layer4_ID"     value="67"/>
+    <constant name="TrackerBarrel_Layer4_ID"      value="65"/>
+    <constant name="TrackerEndcapP_Layer4_ID"     value="66"/>
+    <constant name="TrackerEndcapN_Layer4_ID"     value="67"/>
 
-    <constant name="SiTrackerBarrel_Layer5_ID"      value="68"/>
-    <constant name="SiTrackerEndcapP_Layer5_ID"     value="69"/>
-    <constant name="SiTrackerEndcapN_Layer5_ID"     value="70"/>
+    <constant name="TrackerBarrel_Layer5_ID"      value="68"/>
+    <constant name="TrackerEndcapP_Layer5_ID"     value="69"/>
+    <constant name="TrackerEndcapN_Layer5_ID"     value="70"/>
 
-    <constant name="cb_CTD_Si_ID"                   value="74"/>
 
-    <comment>
-      Start over the IDs for all-silicon, as these are mutually exclusive detectors
-    </comment>
-    <constant name="AllSiliconTrk1Assembly_ID"  value="50"/>
-    <constant name="AllSiliconTrkBarrel1_ID"    value="51"/>
-    <constant name="AllSiliconTrkDisk1N_ID"     value="52"/>
-    <constant name="AllSiliconTrkDisk1P_ID"     value="53"/>
-    <constant name="AllSiliconTrk2Assembly_ID"  value="54"/>
-    <constant name="AllSiliconTrkBarrel2_ID"    value="55"/>
-    <constant name="AllSiliconTrkDisk2N_ID"     value="56"/>
-    <constant name="AllSiliconTrkDisk2P_ID"     value="57"/>
-    <constant name="AllSiliconTrkOuterN_ID"     value="58"/>
-    <constant name="AllSiliconTrkOuterP_ID"     value="59"/>
-    <constant name="AllSiliconSupport_ID"     value="60"/>
 
     <comment>
     ===================
@@ -369,6 +352,7 @@
       ============================
       Tracking Detector Parameters
       ============================
+      Generic tracking space allocations
     </comment>
 
     <constant name="ForwardTracking_length" value="0.0*cm"/>
@@ -387,27 +371,30 @@
       Vertex Tracker Parameters
       -------------------------
     </comment>
-    <constant name="VertexTrackerBarrel_rmin"       value="Beampipe_rmax+5.0*mm"/>
-    <constant name="VertexTrackerBarrel_rmax"       value="150.0*mm"/>
-    <constant name="VertexTrackerBarrel_length"     value="400.0*mm"/>
-    <constant name="VertexTrackerBarrel_zmax"       value="VertexTrackerBarrel_length/2.0"/>
-
-    <constant name="VertexTrackerEndcapP_rmax"       value="VertexTrackerBarrel_rmax"/>
-    <constant name="VertexTrackerEndcapN_rmax"       value="VertexTrackerBarrel_rmax"/>
-    <constant name="VertexTrackerEndcapP_rmin"      value="VertexTrackerBarrel_rmin"/>
-    <constant name="VertexTrackerEndcapN_rmin"      value="VertexTrackerBarrel_rmin"/>
-    <constant name="VertexTrackerEndcapP_zmax"      value="600.0*mm"/>
-    <constant name="VertexTrackerEndcapN_zmax"      value="600.0*mm"/>
+    <constant name="VertexTrackerBarrel_rmin"   value="Beampipe_rmax+5.0*mm"/>
+    <constant name="VertexTrackerBarrel_rmax"   value="150.0*mm"/>
+    <constant name="VertexTrackerBarrel_length" value="400.0*mm"/>
+    <constant name="VertexTrackerBarrel_zmax"   value="VertexTrackerBarrel_length/2.0"/>
 
+    <constant name="VertexTrackerEndcapP_rmax"  value="VertexTrackerBarrel_rmax"/>
+    <constant name="VertexTrackerEndcapN_rmax"  value="VertexTrackerBarrel_rmax"/>
+    <constant name="VertexTrackerEndcapP_rmin"  value="VertexTrackerBarrel_rmin"/>
+    <constant name="VertexTrackerEndcapN_rmin"  value="VertexTrackerBarrel_rmin"/>
+    <constant name="VertexTrackerEndcapP_zmax"  value="600.0*mm"/>
+    <constant name="VertexTrackerEndcapN_zmax"  value="600.0*mm"/>
 
+    <comment>
+      Vertex Tracking Region
+    </comment>
     <constant name="VertexTrackingRegion_length" value="VertexTrackerEndcapP_zmax + VertexTrackerEndcapN_zmax "/>
     <constant name="VertexTrackingRegion_zmin"   value="VertexTrackingRegion_length/2.0"/>
     <constant name="VertexTrackingRegion_rmax"   value="VertexTrackingRegion_length/2.0"/>
 
-    <comment>Deprecated</comment>
-    <constant name="VertexTrackerOuterRadius"       value="VertexTrackerBarrel_rmax"/>
-    <constant name="VertexTrackerInnerRadius"       value="VertexTrackerBarrel_rmin"/>
-    <constant name="VertexTrackerOuterBarrelLength" value="VertexTrackingRegion_length"/>
+    <comment>Deprecated
+    name="VertexTrackerOuterRadius"       value="VertexTrackerBarrel_rmax"
+    name="VertexTrackerInnerRadius"       value="VertexTrackerBarrel_rmin"
+    name="VertexTrackerOuterBarrelLength" value="VertexTrackingRegion_length"
+    </comment>
 
     <comment>
       --------------------------
@@ -423,15 +410,18 @@
     <constant name="TrackerBarrelInner_zmax"   value="TrackerBarrelInner_length/2.0"/>
     <constant name="TrackerBarrelOuter_zmax"   value="TrackerBarrelOuter_length/2.0"/>
 
-    <comment> Deprecated </comment>
-    <constant name="SiliconTrackerInnerRadius"       value="TrackerBarrel_rmin"/>
-    <constant name="SiliconTrackerInnerBarrelLength" value="TrackerBarrelInner_length"/>
-    <constant name="SiliconTrackerOuterRadius"       value="TrackerBarrel_rmax"/>
-    <constant name="SiliconTrackerOuterBarrelLength" value="TrackerBarrelOuter_length"/>
-    <constant name="SiliconTrackerOuterBarrel_zmax"  value="TrackerBarrelOuter_length/2.0"/>
+    <comment> Deprecated
+    constant name="SiliconTrackerInnerRadius"       value="TrackerBarrel_rmin"
+    constant name="SiliconTrackerInnerBarrelLength" value="TrackerBarrelInner_length"
+    constant name="SiliconTrackerOuterRadius"       value="TrackerBarrel_rmax"
+    constant name="SiliconTrackerOuterBarrelLength" value="TrackerBarrelOuter_length"
+    constant name="SiliconTrackerOuterBarrel_zmax"  value="TrackerBarrelOuter_length/2.0"
+    </comment>
 
     <comment>
-      Central tracking boundaries
+      --------------------------------------------
+      Central tracking and PID detector boundaries
+      --------------------------------------------
 
       The central tracking detectors are assumed to be symmtric about the origin.
       
@@ -449,8 +439,6 @@
     <constant name="tracker_region_rmax"   value="Solenoid_rmax/2.0"/>
     <constant name="tracker_region_zmax"   value="Solenoid_length/2.0"/>
 
-
-
     <comment>
       ----------------------
       Calorimeter Parameters
@@ -491,7 +479,7 @@
     <constant name="EcalEndcapP_zmin"           value="CentralTracking_length/2.0 + ForwardPIDLength"/>
     <constant name="EcalEndcapN_zmin"           value="CentralTracking_length/2.0 + BackwardPIDLength"/>
 
-    <constant name="BarrelLength"               value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength" />
+    <constant name="BarrelLength"               value="TrackerBarrelOuter_length + ForwardPIDLength + BackwardPIDLength" />
     <constant name="Barrel_offset"              value="(EcalEndcapP_zmin-EcalEndcapN_zmin)/2.0" />
 
     <comment>
diff --git a/compact/ecal.xml b/compact/ecal.xml
index 1bb5c23f..06b0c6a0 100644
--- a/compact/ecal.xml
+++ b/compact/ecal.xml
@@ -1,7 +1,7 @@
 <lccdd>
 
   <define>
-    <constant name="CrystalEndcap_rmin"  value="VertexTrackerInnerRadius"/>
+    <constant name="CrystalEndcap_rmin"  value="VertexTrackerBarrel_rmin"/>
     <constant name="CrystalEndcap_rmax"  value="EcalEndcapN_rmin"/>
     <constant name="CrystalBox_x_length" value="20.0*mm"/>
     <constant name="CrystalBox_y_length" value="20.0*mm"/>
diff --git a/compact/forward_rich.xml b/compact/forward_rich.xml
index 56342011..f29d6bf6 100644
--- a/compact/forward_rich.xml
+++ b/compact/forward_rich.xml
@@ -3,14 +3,19 @@
   <define>
     <constant name="ForwardRICH_zmin"   value="BarrelTracking_length/2.0 + ForwardTracking_length "/>
     <constant name="ForwardRICH_rmin"   value="ForwardPID_rmin1"/>
-    <constant name="ForwardRICH_rmax0"  value="SiliconTrackerOuterRadius"/>
+    <constant name="ForwardRICH_rmax0"  value="TrackerBarrel_rmax"/>
     <constant name="ForwardRICH_rmax1"  value="EcalBarrel_rmin"/>
     <constant name="ForwardRICH_rmax2"  value="Solenoid_rmin-6*cm"/>
     <constant name="ForwardRICHDepth"   value="0.9*m"/>
   </define>
 
   <detectors>
-    <detector id="ForwardRICH_ID" name="ForwardRICH" type="refdet_ForwardRICH" readout="ForwardRICHHits" vis="RICHVis">
+    <detector 
+      id="ForwardRICH_ID" 
+      name="ForwardRICH" 
+      type="refdet_ForwardRICH" 
+      readout="ForwardRICHHits" 
+      vis="RICHVis">
       <dimensions 
         z0="ForwardRICH_zmin" 
         snout_length="ForwardRICH_length - ForwardRICHDepth"
diff --git a/compact/vertex_tracker.xml b/compact/vertex_tracker.xml
index be68f343..5258b5a4 100644
--- a/compact/vertex_tracker.xml
+++ b/compact/vertex_tracker.xml
@@ -2,25 +2,23 @@
 <lccdd>
   <define>
 
-    <constant name="VertexTrackerRadius1" value="46*mm"/>
-    <constant name="VertexTrackerRadius2" value="54*mm"/>
-    <constant name="VertexTrackerRadius3" value="62*mm"/>
-    <constant name="VertexTrackerRadius4" value="70*mm"/>
-    <constant name="VertexTrackerRadius5" value="80*mm"/>
-    <constant name="VertexTrackerRadius6" value="95*mm"/>
-    <constant name="VertexTrackerRadius7" value="110*mm"/>
-    <constant name="VertexTrackerRadius8" value="125*mm"/>
-    <constant name="VertexTrackerNModules1" value="14"/>
-    <constant name="VertexTrackerNModules2" value="18"/>
-    <constant name="VertexTrackerNModules3" value="22"/>
-    <constant name="VertexTrackerNModules4" value="24"/>
-    <constant name="VertexTrackerNModules5" value="28"/>
-    <constant name="VertexTrackerNModules6" value="32"/>
-    <constant name="VertexTrackerNModules7" value="36"/>
-    <constant name="VertexTrackerNModules8" value="40"/>
-
+    <constant name="ITS3Thickness"                  value="0.03*mm"/>
+    <constant name="VertexBarrel_rmin1"             value="3.3*cm"/>
+    <constant name="VertexBarrel_rmin2"             value="5.7*cm"/>
+    <constant name="VertexBarrelModule_maxThickness" value="VertexBarrel_rmin2 - VertexBarrel_rmin1"/>
+    <constant name="VertexBarrel_length"            value="30*cm"/>
+    <constant name="VertexBarrel_thickness"         value="0.05/100*9.37*cm"/>
+    <constant name="VertexBarrelService_thickness"  value="VertexBarrel_thickness-ITS3Thickness"/>
+    <constant name="VertexBarrel_rmin"              value="VertexBarrel_rmin1"/>
+    <constant name="VertexBarrel_rmax"              value="VertexBarrel_rmin2+VertexBarrelModule_maxThickness"/>
+    <constant name="VertexBarrelLayer_rOffset"      value="4.0*mm"/>
+
+    <comment> TODO: These should be computed </comment>
+    <constant name="VertexBarrel_NModules1" value="14"/>
+    <constant name="VertexBarrel_NModules2" value="24"/>
 
     <!--
+
     <constant name="VertexTrackerEndcapP_rmin" value="VertexTrackerInnerRadius"/>
     <constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerOuterRadius"/>
     <constant name="VertexTrackerEndcapP_zmin" value="VertexTrackerBarrel_length + 5*mm"/>
@@ -45,83 +43,63 @@
 
   <detectors>
 
-    <detector id="SiVertexSubAssembly_ID" 
-      name="SiVertexSubAssembly" 
+    <detector id="VertexSubAssembly_ID" 
+      name="VertexSubAssembly" 
       type="DD4hep_SubdetectorAssembly" 
-      vis="SiTrackerSubAssemblyVis">
+      vis="TrackerSubAssemblyVis">
       <composite name="VertexTrackerEndcapN"/>
       <composite name="VertexTrackerEndcapP"/> 
-      <composite name="SiVertexBarrel"/>
+      <composite name="VertexBarrel"/>
     </detector>
 
 
-    <detector id="SiVertexBarrel_ID" name="SiVertexBarrel" type="refdet_SiVertexBarrel"
-      readout="SiVertexBarrelHits" insideTrackingVolume="true" >
-      <dimensions rmin="VertexTrackerBarrel_rmin" rmax="VertexTrackerBarrel_rmax" length="VertexTrackerBarrel_length"/>
+    <detector 
+      id="VertexBarrel_ID"
+      name="VertexBarrel"
+      type="athena_VertexBarrel"
+      readout="VertexBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions rmin="VertexBarrel_rmin-VertexBarrelLayer_rOffset" rmax="VertexBarrel_rmax-VertexBarrelLayer_rOffset" length="VertexBarrel_length"/>
 
       <comment> Define available modules </comment>
-      <module name="SOIPIXD" vis="PurpleVis">
-        <frame width="15*mm"  height="3.0*mm" length="VertexTrackerBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
-        <module_component name="silicon" width="14.0*mm" length="VertexTrackerBarrel_length-0.1*mm" 
-          thickness="0.05*mm" material="Silicon" sensitive="true">
+      <module name="Module1" vis="PurpleVis">
+        <frame width="15*mm"  height="10.0*mm" length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
+        <module_component name="silicon" 
+          width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
           <position z="-0.025*mm" y="0*mm"/>
         </module_component>
       </module>
 
-      <module name="UFSD">
-        <frame width="15*mm"  height="3.0*mm" length="VertexTrackerBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
-        <module_component name="silicon" width="14.0*mm" length="VertexTrackerBarrel_length-0.1*mm" 
-          thickness="0.05*mm" material="Silicon" sensitive="true">
+      <module name="Module2">
+        <frame width="15*mm"  height="10.0*mm" length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
+        <module_component name="silicon" 
+          width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
           <position z="-0.025*mm" y="0*mm"/>
         </module_component>
       </module>
 
       <comment> Layers composed of many arrayed modules  </comment>
-      <layer module="SOIPIXD" id="2" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius1+VertexTrackerRadius2)/2" 
-                         outer_r="(VertexTrackerRadius2+VertexTrackerRadius3)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules2" phi0="0.0" rc="VertexTrackerRadius2" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
-      </layer>
-      <layer module="UFSD" id="3" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius2+VertexTrackerRadius3)/2" 
-                         outer_r="(VertexTrackerRadius3+VertexTrackerRadius4)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules3" phi0="0.0" rc="VertexTrackerRadius3" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
-      </layer>
-      <layer module="UFSD" id="4" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius3+VertexTrackerRadius4)/2" 
-                         outer_r="(VertexTrackerRadius4+VertexTrackerRadius5)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules4" phi0="0.0" rc="VertexTrackerRadius4" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
-      </layer>
-      <layer module="UFSD" id="5" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius4+VertexTrackerRadius5)/2" 
-                         outer_r="(VertexTrackerRadius5+VertexTrackerRadius6)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules5" phi0="0.0" rc="VertexTrackerRadius5" dr="0.0 * mm"/>
+      <layer module="Module1" id="1" vis="VertexVis">
+        <barrel_envelope 
+          inner_r="VertexBarrel_rmin1-VertexBarrelLayer_rOffset" 
+          outer_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset"
+          z_length="VertexBarrel_length"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules1" phi0="0.0" rc="VertexBarrel_rmin1" dr="0.0 * mm"/>
         <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
       </layer>
-      <layer module="UFSD" id="6" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius5+VertexTrackerRadius6)/2" 
-                         outer_r="(VertexTrackerRadius6+VertexTrackerRadius7)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules6" phi0="0.0" rc="VertexTrackerRadius6" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
-      </layer>
-      <layer module="SOIPIXD" id="7" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius6+VertexTrackerRadius7)/2" 
-                         outer_r="(VertexTrackerRadius7+VertexTrackerRadius8)/2" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules7" phi0="0.0" rc="VertexTrackerRadius7" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
-      </layer>
-      <layer module="SOIPIXD" id="8" vis="SiVertexVis">
-        <barrel_envelope inner_r="(VertexTrackerRadius7+VertexTrackerRadius8)/2" 
-                         outer_r="VertexTrackerRadius8+5*mm" z_length="VertexTrackerBarrel_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules8" phi0="0.0" rc="VertexTrackerRadius8" dr="0.0 * mm"/>
+      <layer module="Module2" id="2" vis="VertexVis">
+        <barrel_envelope 
+          inner_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset" 
+          outer_r="VertexBarrel_rmax-VertexBarrelLayer_rOffset"
+          z_length="VertexBarrel_length"/>
+        <rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules2" phi0="0.0" rc="VertexBarrel_rmin2" dr="0.0 * mm"/>
         <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
       </layer>
+
     </detector>
 
-    <detector id="SiVertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
+    <!--
+    <detector id="VertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
       insideTrackingVolume="true" reflect="false" vis="AnlRed">
       <position x="0" y="0" z="0"/>
       <layer id="1" vis="AnlOrange"
@@ -156,7 +134,7 @@
       </layer>
     </detector>
 
-    <detector id="SiVertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
+    <detector id="VertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
       insideTrackingVolume="true" reflect="true" vis="AnlRed">
       <position x="0" y="0" z="0"/>
       <layer id="1" vis="AnlOrange"
@@ -190,15 +168,16 @@
         <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
     </detector>
+    -->
 
   </detectors>
 
   <readouts>
-    <readout name="SiVertexBarrelHits">
-      <segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
+    <readout name="VertexBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.050*mm" grid_size_y="0.050*mm" />
       <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
     </readout>
-    <readout name="VertexTrackerEndcapHits">
+    <readout name="VertexEndcapHits">
       <segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
       <id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
     </readout>
diff --git a/macro/gps.mac b/macro/gps.mac
new file mode 100644
index 00000000..7eaf882e
--- /dev/null
+++ b/macro/gps.mac
@@ -0,0 +1,24 @@
+/control/verbose 2
+/run/initialize
+
+/gps/verbose 2
+/gps/particle pi-
+/gps/number 1
+
+/gps/ene/type Gauss
+/gps/ene/mono  10.0 GeV
+/gps/ene/sigma 3.0 GeV
+
+/gps/pos/type Volume
+/gps/pos/shape Cylinder
+/gps/pos/centre 0.0 0.0 0.0 cm
+/gps/pos/radius 0.01 cm
+/gps/pos/halfz  10 cm
+/gps/position 0 0 0 cm
+
+#/gps/direction 0 0.1 1.0 
+/gps/ang/type iso
+/gps/ang/mintheta  10 degree
+/gps/ang/maxtheta  170 degree
+
+/run/beamOn 100
diff --git a/src/BarrelTrackerWithFrame_geo.cpp b/src/BarrelTrackerWithFrame_geo.cpp
index b28c1f88..0b298451 100644
--- a/src/BarrelTrackerWithFrame_geo.cpp
+++ b/src/BarrelTrackerWithFrame_geo.cpp
@@ -48,6 +48,35 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
   Volume assembly(det_name,topVolumeShape,air);
 
 
+//  The Cold Plate is approximately 30 mm wide and is based on the same carbon-ply layup
+//as for the IB Stave. Two pipes with an inner diameter of 2.67 mm and a wall thickness
+//of 64 μm have been used. The two pipes are interconnected at one end of the Cold Plate
+//providing a loop, whose inlet and outlet are on the same side and correspond to the
+//
+//requirements have led to an equilateral section of the frame with a 42 mm wide side, that
+//provides almost the same rigidity for all the possible Stave positions.
+//
+//                     module mat                um
+//
+//Aluminium                                      50
+//Polyimide                                      100
+//Carbon fibre                                   120
+//Silicon                                        50
+//Eccobond-45                                    100
+//
+//Metal layers                 Aluminium        200
+//Insulating layers            Polyimide        200
+//Glue Cooling tube wall       Eccobond-45      100
+//
+//Carbon fleece            40
+//Carbon paper             30
+//Polyimide                64
+//Water                    
+//Carbon fibre             120
+//Eccobond-45              100
+
+
+
   sens.setType("tracker");
 
   // loop over the modules
@@ -68,7 +97,7 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
     Trd1 moduleframe_part1(frame_width / 2, 0.001 * mm, m_env.length() / 2,
                            frame_height / 2);
     Trd1 moduleframe_part2(frame_width2/2, 0.001 * mm,
-                           m_env.length() / 2, frame_height2/2);
+                           m_env.length() / 2 + 0.01 * mm, frame_height2/2);
     SubtractionSolid moduleframe(moduleframe_part1, moduleframe_part2,Position(0.0,frame_thickness,0.0));
     Volume v_module(m_nam+"_vol", moduleframe, description.material(m_env.materialStr()));
     v_module.setVisAttributes(description, m_env.visStr());
@@ -126,7 +155,7 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
     int lay_id = x_layer.id();
     string m_nam = x_layer.moduleStr();
     string lay_nam = _toString(x_layer.id(), "layer%d");
-    Tube lay_tub(x_barrel.inner_r()+0.1*mm, x_barrel.outer_r()-0.1*mm, x_barrel.z_length() / 2);
+    Tube lay_tub(x_barrel.inner_r(), x_barrel.outer_r(), x_barrel.z_length()/2.0 );
     Volume lay_vol(lay_nam, lay_tub, air);  // Create the layer envelope volume.
     lay_vol.setVisAttributes(description.visAttributes(x_layer.visStr()));
     double phi0 = x_layout.phi0();          // Starting phi of first module.
@@ -221,6 +250,6 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
 //@}
 // clang-format off
 DECLARE_DETELEMENT(BarrelTrackerWithFrame, create_detector)
-DECLARE_DETELEMENT(athena_SiVertexTracker, create_detector)
-DECLARE_DETELEMENT(athena_SiBarrelTracker, create_detector)
+DECLARE_DETELEMENT(athena_VertexBarrel, create_detector)
+DECLARE_DETELEMENT(athena_TrackerBarrel, create_detector)
 DECLARE_DETELEMENT(refdet_SiVertexBarrel, create_detector)
diff --git a/src/ForwardRICH_geo.cpp b/src/ForwardRICH_geo.cpp
index d7156622..0c8f73b0 100644
--- a/src/ForwardRICH_geo.cpp
+++ b/src/ForwardRICH_geo.cpp
@@ -10,7 +10,7 @@
 #include <XML/Helper.h>
 #include "TMath.h"
 #include "TString.h"
-#include "ref_utils.h"
+#include "GeometryHelpers.h"
 #include "Math/Point2D.h"
 #include "DDRec/Surface.h"
 #include "DDRec/DetectorData.h"
diff --git a/src/ref_utils.cpp b/src/GeometryHelpers.cpp
similarity index 98%
rename from src/ref_utils.cpp
rename to src/GeometryHelpers.cpp
index 629679bd..c60c239b 100644
--- a/src/ref_utils.cpp
+++ b/src/GeometryHelpers.cpp
@@ -1,4 +1,4 @@
-#include "ref_utils.h"
+#include "GeometryHelpers.h"
 
 // some utility functions that can be shared
 namespace ref::utils {
diff --git a/src/ref_utils.h b/src/GeometryHelpers.h
similarity index 100%
rename from src/ref_utils.h
rename to src/GeometryHelpers.h
diff --git a/src/ref_DiskTracker_geo.cpp b/src/SimpleDiskTracker_geo.cpp
similarity index 100%
rename from src/ref_DiskTracker_geo.cpp
rename to src/SimpleDiskTracker_geo.cpp
diff --git a/src/ref_RectangularTracker_geo.cpp b/src/SimpleRectangularTracker_geo.cpp
similarity index 100%
rename from src/ref_RectangularTracker_geo.cpp
rename to src/SimpleRectangularTracker_geo.cpp
diff --git a/src/ffi_ZDC.cpp b/src/ZeroDegreeCalorimeter_geo.cpp
similarity index 100%
rename from src/ffi_ZDC.cpp
rename to src/ZeroDegreeCalorimeter_geo.cpp
diff --git a/src/ce_MRICH.cpp b/src/ce_MRICH.cpp
index 3eec5237..ccc2a2b3 100644
--- a/src/ce_MRICH.cpp
+++ b/src/ce_MRICH.cpp
@@ -7,7 +7,7 @@
 #include "DD4hep/OpticalSurfaces.h"
 #include "DD4hep/DetFactoryHelper.h"
 #include "DD4hep/Printout.h"
-#include "ref_utils.h"
+#include "GeometryHelpers.h"
 
 using namespace std;
 using namespace dd4hep;
-- 
GitLab