From 32413eb6f75ca84a5228966825bd8154daa2ac76 Mon Sep 17 00:00:00 2001
From: Zhenyu Ye <yezhenyu@uic.edu>
Date: Tue, 30 Nov 2021 00:42:40 +0000
Subject: [PATCH] Resolve "update TOF for DeathValley"

---
 .gitlab-ci.yml                             |   3 +
 README.md                                  |   2 +-
 athena.xml                                 |   6 +-
 compact/central_tracker_hybrid_v2.xml      |  31 ++--
 compact/definitions.xml                    |  32 +++-
 compact/display.xml                        |  16 +-
 compact/display_detailed.xml               | 179 ++++++++++++------
 compact/display_geoviewer.xml              |  19 +-
 compact/drich.xml                          |   8 +-
 compact/ecal.xml                           |   3 -
 compact/erich.xml                          |  20 +-
 compact/materials.xml                      |  29 +++
 compact/pid_config_deathvalley.xml         |  11 ++
 compact/subsystem_views/calorimeters.xml   |   4 +-
 compact/subsystem_views/dirc_only.xml      |   2 +-
 compact/subsystem_views/drich_only.xml     |   2 +-
 compact/subsystem_views/inner_detector.xml |   7 +-
 compact/subsystem_views/pfrich_only.xml    |   2 +-
 compact/subsystem_views/pid_only.xml       |   4 +-
 compact/subsystem_views/tracking_only.xml  |   8 +-
 compact/subsystem_views/vertex_only.xml    |   2 +-
 compact/tof.xml                            |   4 +-
 compact/tof_barrel.xml                     | 127 +++++++++----
 compact/tof_endcap.xml                     | 201 +++++++++++----------
 compact/tracking_config_deathvalley.xml    | 112 ++++++++++++
 src/BarrelTrackerWithFrame_geo.cpp         |  32 ++--
 26 files changed, 603 insertions(+), 263 deletions(-)
 create mode 100644 compact/pid_config_deathvalley.xml
 create mode 100644 compact/tracking_config_deathvalley.xml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2d684144..d92a00ba 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -119,10 +119,13 @@ dump_geometry:
       sed -i -e '/<detectors>/,/<\/detectors>/d' ${DETECTOR_PATH}/compact/tracking_config*.xml
       mv ${DETECTOR_PATH}/compact/display_geoviewer.xml ${DETECTOR_PATH}/compact/display.xml
       for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do
+        echo $xml
         geo_name=`basename $xml .xml`_geo.root
         cp $xml ${DETECTOR_PATH}/geo.xml
         dd_web_display --output geo/${geo_name} ${DETECTOR_PATH}/geo.xml
       done
+    ## Lower-resolution display of the pfRICH sensors for global views
+    - sed -i 's/_default"\/>/_lores"\/>/' ${DETECTOR_PATH}/compact/erich.xml
     ## full geo with downstream beamline
     - dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml
     ## only central detector geo
diff --git a/README.md b/README.md
index bbf2b842..709c5c25 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ The Athena Detector at IP6 for Electron-Ion Collider experiment.
     - [DIRC](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/dirc_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
   - [Tracking](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/tracking_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
     - [Vertex detector](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/vertex_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
-  - [Far-forward](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/ip6_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all)
+  - [Far-forward](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/ip6_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all)
 
 <a href="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.pdf?job=report">
 <img src="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.png?job=report" width="400px" />
diff --git a/athena.xml b/athena.xml
index 3c59a1e8..3539b477 100644
--- a/athena.xml
+++ b/athena.xml
@@ -107,13 +107,15 @@
   </documentation>
 
   <!--include ref="compact/tracking_config_acadia.xml"/-->
-  <include ref="compact/tracking_config_canyonlands.xml"/>
+  <!--include ref="compact/tracking_config_canyonlands.xml"/-->
+  <include ref="compact/tracking_config_deathvalley.xml"/>
 
   <documentation level="10">
   ### PID detectors
   </documentation>
   <!--include ref="compact/pid_config_acadia.xml" /-->
-  <include ref="compact/pid_config_canyonlands.xml" />
+  <!--include ref="compact/pid_config_canyonlands.xml" /-->
+  <include ref="compact/pid_config_deathvalley.xml" />
 
   <documentation level="10">
   ## Central calorimetry
diff --git a/compact/central_tracker_hybrid_v2.xml b/compact/central_tracker_hybrid_v2.xml
index f9b5899e..1d82c4d9 100644
--- a/compact/central_tracker_hybrid_v2.xml
+++ b/compact/central_tracker_hybrid_v2.xml
@@ -19,9 +19,6 @@
 
   </comment>
   <define>
-    <comment> Main diagonal direction for barrel/endcap transitions </comment>
-    <constant name="TrackerMainDiagonal_tan"                value="Eta1_1_tan"/>
-
     <comment> Inner tracker setup </comment>
     <constant name="InnerTrackerBarrel_rmin"                value="13.38*cm"/>
     <constant name="InnerTrackerBarrel_offset"              value="4.62*cm"/>
@@ -147,11 +144,11 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="InnerTrackerBarrelCone_z"            value="(InnerTrackerBarrelCone_zmax + InnerTrackerBarrelCone_zmin)/2" />
     <constant name="InnerTrackerBarrelCone_thickness"    value="SiTrackerSupportConeCF_thickness + SiTrackerServiceConeAl_thickness" />
     <comment> Shorten Module (with non-zero thickness!) to avoid overlaps with support cone</comment>
-    <constant name="InnerTrackerBarrelMod1_length"       value="2 * InnerTrackerBarrelMod1_rmin / TrackerMainDiagonal_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
-    <constant name="InnerTrackerBarrelMod2_length"       value="2 * InnerTrackerBarrelMod2_rmin / TrackerMainDiagonal_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
-    <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * TrackerMainDiagonal_tan" />
+    <constant name="InnerTrackerBarrelMod1_length"       value="2 * InnerTrackerBarrelMod1_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
+    <constant name="InnerTrackerBarrelMod2_length"       value="2 * InnerTrackerBarrelMod2_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
+    <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * CentralTrackingBarrel_tan" />
     <constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
-    <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * TrackerMainDiagonal_tan" />
+    <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * CentralTrackingBarrel_tan" />
     <constant name="InnerTrackerBarrelServiceCone_rmax2" value="InnerTrackerBarrelServiceCone_rmin2 + SiTrackerServiceConeAl_thickness" />
     <constant name="InnerTrackerBarrelSupportCone_rmin1" value="InnerTrackerBarrelServiceCone_rmax1" />
     <constant name="InnerTrackerBarrelSupportCone_rmax1" value="InnerTrackerBarrelSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
@@ -284,14 +281,14 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <comment> Inner Si endcap setup </comment>
     <constant name="InnerTrackerEndcapMod1_zmin"  value="InnerTrackerEndcap_zmin" />
     <constant name="InnerTrackerEndcapMod1_rmin"  value="InnerTrackerEndcap_rmin" />
-    <constant name="InnerTrackerEndcapMod1_rmax"  value="min(InnerTrackerEndcapMod1_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="InnerTrackerEndcapMod1_rmax"  value="min(InnerTrackerEndcapMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
     <constant name="InnerTrackerEndcapMod1_x1"    value="2 * InnerTrackerEndcapMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
     <constant name="InnerTrackerEndcapMod1_x2"    value="2 * InnerTrackerEndcapMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
     <constant name="InnerTrackerEndcapMod1_y"     value="InnerTrackerEndcapMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod1_rmin" />
 
     <constant name="InnerTrackerEndcapMod2_zmin"  value="InnerTrackerEndcapMod1_zmin + 1 * InnerTrackerEndcap_offset" />
     <constant name="InnerTrackerEndcapMod2_rmin"  value="InnerTrackerEndcap_rmin" />
-    <constant name="InnerTrackerEndcapMod2_rmax"  value="min(InnerTrackerEndcapMod2_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="InnerTrackerEndcapMod2_rmax"  value="min(InnerTrackerEndcapMod2_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
     <constant name="InnerTrackerEndcapMod2_x1"    value="2 * InnerTrackerEndcapMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
     <constant name="InnerTrackerEndcapMod2_x2"    value="2 * InnerTrackerEndcapMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
     <constant name="InnerTrackerEndcapMod2_y"     value="InnerTrackerEndcapMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod2_rmin" />
@@ -304,11 +301,11 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="InnerTrackerEndcapLayer2_zmin"        value="InnerTrackerEndcapMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
 
     <constant name="InnerTrackerEndcapCone_zmin"          value="InnerTrackerBarrelCone_zmax" />
-    <constant name="InnerTrackerEndcapServiceCone_rmin1"  value="InnerTrackerEndcapCone_zmin * TrackerMainDiagonal_tan" />
+    <constant name="InnerTrackerEndcapServiceCone_rmin1"  value="InnerTrackerEndcapCone_zmin * CentralTrackingBarrel_tan" />
     <constant name="InnerTrackerEndcapServiceCone_rmax1"  value="InnerTrackerEndcapServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
     <constant name="InnerTrackerEndcapServiceCone_rmin2"  value="SiTrackerServiceCyl_rmin" />
     <constant name="InnerTrackerEndcapServiceCone_rmax2"  value="SiTrackerServiceCyl_rmax" />
-    <constant name="InnerTrackerEndcapCone_zmax"          value="InnerTrackerEndcapServiceCone_rmin2 / TrackerMainDiagonal_tan" />
+    <constant name="InnerTrackerEndcapCone_zmax"          value="InnerTrackerEndcapServiceCone_rmin2 / CentralTrackingBarrel_tan" />
     <constant name="InnerTrackerEndcapCone_z"             value="(InnerTrackerEndcapCone_zmax + InnerTrackerEndcapCone_zmin)/2" />
     <constant name="InnerTrackerEndcapCone_length"        value="InnerTrackerEndcapCone_zmax - InnerTrackerEndcapCone_zmin" />
     <constant name="InnerTrackerEndcapSupportCone_rmin1"  value="InnerTrackerEndcapServiceCone_rmax1" />
@@ -317,7 +314,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="InnerTrackerEndcapSupportCone_rmax2"  value="SiTrackerSupportCyl_rmax" />
 
     <comment> The tracker endcap ends at the same place as the medial tracker barrel that sits around it </comment>
-    <constant name="InnerTrackerEndcap_zmax"              value="MedialTrackerBarrel_rmin / TrackerMainDiagonal_tan" />
+    <constant name="InnerTrackerEndcap_zmax"              value="MedialTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
     <constant name="InnerTrackerEndcapCyl_zmin"           value="InnerTrackerEndcapCone_zmax" />
     <constant name="InnerTrackerEndcapCyl_zmax"           value="InnerTrackerEndcap_zmax" />
     <constant name="InnerTrackerEndcapCyl_z"              value="(InnerTrackerEndcapCyl_zmin + InnerTrackerEndcapCyl_zmax)/2" />
@@ -579,7 +576,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <comment> Medial Si endcap setup </comment>
     <constant name="MedialTrackerEndcapPMod1_zmin"  value="MedialTrackerEndcap_zmin" />
     <constant name="MedialTrackerEndcapPMod1_rmin"  value="MedialTrackerEndcapP_rmin" />
-    <constant name="MedialTrackerEndcapPMod1_rmax"  value="min(MedialTrackerEndcapPMod1_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="MedialTrackerEndcapPMod1_rmax"  value="min(MedialTrackerEndcapPMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
     <constant name="MedialTrackerEndcapPMod1_x1"    value="2 * MedialTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
     <constant name="MedialTrackerEndcapPMod1_x2"    value="2 * MedialTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
     <constant name="MedialTrackerEndcapPMod1_y"     value="MedialTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapPMod1_rmin" />
@@ -590,7 +587,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
     <constant name="MedialTrackerEndcapNMod1_zmin"  value="MedialTrackerEndcap_zmin" />
     <constant name="MedialTrackerEndcapNMod1_rmin"  value="MedialTrackerEndcapN_rmin" />
-    <constant name="MedialTrackerEndcapNMod1_rmax"  value="min(MedialTrackerEndcapNMod1_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="MedialTrackerEndcapNMod1_rmax"  value="min(MedialTrackerEndcapNMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
     <constant name="MedialTrackerEndcapNMod1_x1"    value="2 * MedialTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
     <constant name="MedialTrackerEndcapNMod1_x2"    value="2 * MedialTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
     <constant name="MedialTrackerEndcapNMod1_y"     value="MedialTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapNMod1_rmin" />
@@ -600,7 +597,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="MedialTrackerEndcapNLayer1_zmin"  value="MedialTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
 
     <comment> The tracker endcap ends at the same place as the outer tracker barrel that sits around it </comment>
-    <constant name="MedialTrackerEndcap_zmax"              value="OuterTrackerBarrel_rmin / TrackerMainDiagonal_tan" />
+    <constant name="MedialTrackerEndcap_zmax"              value="OuterTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
     <constant name="MedialTrackerEndcapCyl_zmin"           value="InnerTrackerEndcap_zmax" />
     <constant name="MedialTrackerEndcapCyl_zmax"           value="MedialTrackerEndcap_zmax" />
     <constant name="MedialTrackerEndcapCyl_z"              value="(MedialTrackerEndcapCyl_zmin + MedialTrackerEndcapCyl_zmax)/2" />
@@ -996,7 +993,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
     <comment> Parameters for the "ring" GEMS around the silicon tracker, which are all identical </comment>
     <constant name="GEMEndcapRingMod_rmin"          value="SiTrackerSupportCyl_rmax + GEMFrameBotEdge_width" />
-    <constant name="GEMEndcapRingMod_rmax"          value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * TrackerMainDiagonal_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" />
+    <constant name="GEMEndcapRingMod_rmax"          value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * CentralTrackingBarrel_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" />
     <constant name="GEMEndcapRingMod_x1"            value="2 * GEMEndcapRingMod_rmin * tan(GEMEndcapMod_angle/2)" />
     <constant name="GEMEndcapRingMod_x2"            value="2 * GEMEndcapRingMod_rmax * sin(GEMEndcapMod_angle/2)" />
     <constant name="GEMEndcapRingMod_y"             value="GEMEndcapRingMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapRingMod_rmin" />
@@ -1039,7 +1036,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="GEMEndcapLargeModBotFrame_x2"    value="2 * GEMEndcapLargeModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
     <constant name="GEMEndcapLargeMod_rmin"          value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan + GEMFrameBotEdge_width" />
     <comment> Ensure there's always the length of the service gap in space available above the large GEM (top frame can extend into this at the corners). </comment>
-    <constant name="GEMEndcapLargeMod_rmax"          value="min(GEMEndcapPMod3_zmin * TrackerMainDiagonal_tan, Solenoid_rmax-ForwardServiceGap_length)" />
+    <constant name="GEMEndcapLargeMod_rmax"          value="min(GEMEndcapPMod3_zmin * CentralTrackingBarrel_tan, Solenoid_rmax-ForwardServiceGap_length)" />
     <constant name="GEMEndcapLargeMod_x1"            value="2 * GEMEndcapLargeMod_rmin * sin(GEMEndcapMod_angle/2)" />
     <constant name="GEMEndcapLargeMod_x2"            value="2 * GEMEndcapLargeMod_rmax * sin(GEMEndcapMod_angle/2)" />
     <constant name="GEMEndcapLargeMod_y"             value="GEMEndcapLargeMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapLargeMod_rmin" />
diff --git a/compact/definitions.xml b/compact/definitions.xml
index 7ce5757e..449fcab5 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -372,12 +372,13 @@ Examples:
     </documentation>
 
     <constant name="CentralTrackingRegion_rmax"   value="950.0*mm" />
-    <constant name="CentralTrackingRegionP_zmax"  value="1900.0*mm" />
+    <constant name="CentralTrackingRegionP_zmax"  value="1700.0*mm" />
     <constant name="CentralTrackingRegionN_zmax"  value="1500.0*mm" />
     <constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" />
     <comment>
       tan(theta) to determine rmin in the outer tracking region (due to tapered beampipe)
     </comment>
+    <constant name="CentralTrackingBarrel_tan"    value="Eta1_1_tan" />
     <constant name="CentralTrackingRegionP_tan"   value="Eta3_7_tan * 1.00" />
     <constant name="CentralTrackingRegionN_tan"   value="Eta4_0_tan * 0.99" />
 
@@ -385,16 +386,35 @@ Examples:
 ### PID Detector Region Parameters
     </documentation>
 
+    <comment> Global PID regions with suballocations for TOF and RICH detectors </comment>
     <constant name="ForwardPIDRegion_zmin"        value="CentralTrackingRegionP_zmax" />
-    <constant name="ForwardPIDRegion_length"      value="140.0*cm" />
+    <constant name="ForwardPIDRegion_length"      value="160.0*cm" />
+
+    <comment> Forward TOF region currenlty empty for future upgrades </comment>
+    <constant name="ForwardTOFRegion_zmin"        value="ForwardPIDRegion_zmin" />
+    <constant name="ForwardTOFRegion_length"      value="20.0*cm" />
+    <constant name="ForwardTOFRegion_rmax"        value="CentralTrackingRegion_rmax" />
+    <constant name="ForwardTOFRegion_tan"         value="CentralTrackingRegionP_tan" />
+      
+    <comment> Forward RICH region </comment>
+    <constant name="ForwardRICHRegion_zmin"       value="ForwardTOFRegion_zmin + ForwardTOFRegion_length" />
+    <constant name="ForwardRICHRegion_length"     value="ForwardPIDRegion_length - ForwardTOFRegion_length" />
     <comment> tangent of the opening angle at the front and back of the RICH </comment>
-    <constant name="ForwardPIDRegion_tan1"        value="CentralTrackingRegionP_tan * 0.88" />
-    <constant name="ForwardPIDRegion_tan2"        value="Eta3_6_tan * 0.89" />
+    <constant name="ForwardRICHRegion_tan1"        value="CentralTrackingRegionP_tan * 0.88" />
+    <constant name="ForwardRICHRegion_tan2"        value="Eta3_6_tan * 0.89" />
 
     <constant name="BackwardPIDRegion_zmin"       value="CentralTrackingRegionN_zmax" />
-    <constant name="BackwardPIDRegion_tan"        value="CentralTrackingRegionN_tan * 0.92" />
     <constant name="BackwardPIDRegion_length"     value="60.0*cm" />
     <constant name="BackwardPIDRegion_rmax"       value="CentralTrackingRegion_rmax" />
+    <constant name="BackwardPIDRegion_tan"        value="CentralTrackingRegionN_tan * 0.92" />
+
+    <comment> Backward RICH region </comment>
+    <constant name="BackwardRICHRegion_zmin"       value="BackwardPIDRegion_zmin" />
+    <constant name="BackwardRICHRegion_length"     value="58.0*cm" />
+
+    <comment> Backward TOF region, currently empty for upgrades </comment>
+    <constant name="BackwardTOFRegion_zmin"        value="BackwardRICHRegion_zmin + BackwardRICHRegion_length" />
+    <constant name="BackwardTOFRegion_length"      value="BackwardPIDRegion_length - BackwardRICHRegion_length" />
 
     <comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment>
     <constant name="BarrelPIDRegion_thickness"    value="8.0 * cm" />
@@ -406,7 +426,7 @@ Examples:
 
     <constant name="BackwardTrackingRegion_tan"     value="CentralTrackingRegionN_tan" />
     <constant name="BackwardTrackingRegion_zmin"    value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" />
-    <constant name="ForwardTrackingRegion_tan"      value="ForwardPIDRegion_tan2" />
+    <constant name="ForwardTrackingRegion_tan"      value="ForwardRICHRegion_tan2" />
     <constant name="ForwardTrackingRegion_zmin"     value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" />
     <constant name="ForwardTrackingRegion_length"   value="10.0*cm" />
     <constant name="BackwardTrackingRegion_length"  value="0.0*cm" />
diff --git a/compact/display.xml b/compact/display.xml
index 9744a0c8..ff97364d 100644
--- a/compact/display.xml
+++ b/compact/display.xml
@@ -25,7 +25,21 @@
     <vis name="VertexLayerVis"   ref="AnlGray"         visible="true"  showDaughters="true" />
     <vis name="VertexModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
 
-    <vis name="TOFVis" ref="AnlGreen" showDaughters="true" />
+    <vis name="TOFVis"            ref="AnlTeal"             visible="true"  showDaughters="true"/>
+    <vis name="TOFLayerVis"       ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFModuleVis"      ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFSupportVis"     ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFSensorVis"      ref="TOFVis"              visible="true"  showDaughters="true"/>
+    <comment> By default don't display the barrel module details </comment>
+    <vis name="TOFBarrelModuleVis" ref="TOFVis"             visible="true"  showdaughters="true"/>
+    <comment> extra detailed vizualizations for the barrel </comment>
+    <vis name="TOFHybridVis"      ref="AnlGold"             visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolingTube"    ref="AnlRed"              visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolant"        ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCSkinVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCFoamVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCHoneycombVis"  ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
+
 
     <vis name="FFTrackerVis"        ref="AnlRed" />
     <vis name="FFTrackerSupportVis" ref="AnlBlue"             visible="true"  showDaughters="false" />
diff --git a/compact/display_detailed.xml b/compact/display_detailed.xml
index e138c40e..2bebee61 100644
--- a/compact/display_detailed.xml
+++ b/compact/display_detailed.xml
@@ -11,42 +11,83 @@
     <comment>
       Tracking Visualizations
     </comment>
-    <vis name="TrackerSupportVis" ref="AnlBlue"         showDaughters="false" />
-    <vis name="TrackerLayerVis"   ref="AnlTeal"         visible="true"  showDaughters="true" />
-    <vis name="TrackerModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
-
-    <vis name="VertexSupportVis" ref="AnlBlue"         showDaughters="false" />
-    <vis name="VertexLayerVis"   ref="AnlTeal"         visible="true"  showDaughters="true" />
-    <vis name="VertexModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
-
-    <vis name="TOFVis" ref="AnlGreen" showDaughters="true" />
+    <vis name="TrackerVis"        ref="AnlRed"      />
+    <vis name="TrackerSupportVis" ref="AnlBlue"         visible="true"  showDaughters="false" />
+    <vis name="TrackerServiceVis" ref="AnlGold"         showDaughters="false" />
+    <vis name="TrackerLayerVis"   ref="AnlGray"         visible="true"  showDaughters="true" />
+    <vis name="TrackerModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="true" />
+    <vis name="TrackerMPGDVis"    ref="AnlRed"          visible="true"  showDaughters="true" />
+    <comment> Layer-based visualization for MPGD detectors as it looks better </comment>
+    <vis name="TrackerGEMModuleVis"  ref="TrackerMPGDVis"   visible="true"  showDaughters="false" />
+    <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis"   visible="true"  showDaughters="false" />
+
+    <vis name="VertexLayerVis"        ref="AnlGray"         visible="true"  showDaughters="false" />
+    <vis name="VertexSupportLayerVis" ref="AnlBlue"         visible="true"  showDaughters="false" />
+    <vis name="VertexSupportVis"      ref="VertexSupportLayerVis" visible="true"  showDaughters="true" />
+    <vis name="VertexModuleVis"       ref="TrackerLayerVis" visible="true"  showDaughters="true" />
+
+    <vis name="TOFVis"            ref="AnlTeal"             visible="true"  showDaughters="true"/>
+    <vis name="TOFLayerVis"       ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFModuleVis"      ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFSupportVis"     ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFSensorVis"      ref="TOFVis"              visible="true"  showDaughters="true"/>
+    <vis name="TOFBarrelModuleVis" ref="TOFVis"             visible="true"  showdaughters="true"/>
+    <vis name="TOFHybridVis"      ref="AnlGold"             visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolingTube"    ref="AnlRed"              visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolant"        ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCSkinVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCFoamVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCHoneycombVis"  ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
+
+    <vis name="FFTrackerVis"        ref="AnlRed" />
+    <vis name="FFTrackerSupportVis" ref="AnlBlue"             visible="true"  showDaughters="false" />
+    <vis name="FFTrackerShieldingVis" ref="AnlGray"           visible="true"  showDaughters="false" />
+    <vis name="FFTrackerServiceVis" ref="AnlGold"             visible="true"  showDaughters="false" />
+    <vis name="FFTrackerLayerVis"   ref="TrackerVis"          visible="true"  showDaughters="true" />
+    <vis name="FFTrackerModuleVis"  ref="FFTrackerLayerVis"   visible="true"  showDaughters="true" />
+    <vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis"   visible="true"  showDaughters="true" />
+    <comment> Display shielded modules in all their glory </comment>
+    <vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis"   visible="true"  showDaughters="true" />
 
     <comment>
       ECal Vis
     </comment>
-    <vis name="EcalVis"                 ref="AnlGold"   showDaughters="true"  visible="true"/>
-    <vis name="EcalEndcapVis"           ref="AnlGold"   showDaughters="false" visible="true"/>
-    <vis name="EcalBarrelVis"           ref="AnlGold"   showDaughters="false" visible="true"/>
-    <vis name="EcalBarrelStaveVis"      ref="AnlViolet" showDaughters="false" visible="true" />
-    <vis name="EcalBarrelEnvelopeVis"   ref="AnlViolet" showDaughters="false" visible="true" />
-    <vis name="EcalBarrelSupportVis"    ref="AnlOrange" showDaughters="false" visible="true"/>
-    <vis name="EcalBarrelLayerVis"      ref="AnlBlue"   showDaughters="true"  visible="true"/>
-    <vis name="EcalBarrelSliceVis"      ref="AnlBlue"   showDaughters="false" visible="true"/>
+    <vis name="EcalBarrelLayerVis"      ref="AnlGold"   showDaughters="false" visible="true"/>
+    <vis name="EcalBarrelEnvelopeVis"   ref="AnlGold"   showDaughters="true" visible="false" />
+    <vis name="EcalBarrelStaveVis"      ref="AnlGold"   showDaughters="true" visible="true" />
     <vis name="EcalBarrelFiberLayerVis" ref="AnlGold"   showDaughters="false" visible="true" />
+    <vis name="EcalBarrelSliceVis"      ref="AnlGray"/>
+    <vis name="EcalBarrelSupportVis"    ref="AnlOrange"/>
+
+    <vis name="EcalVis"                 ref="AnlGold"   showDaughters="true"  visible="false"/>
+    <vis name="EcalEndcapVis"           ref="AnlGold"   showDaughters="false" visible="true"/>
+    <vis name="EcalEndcapLayerVis"      ref="AnlGold"   showDaughters="false" visible="true"/>
+    <vis name="EcalEndcapBlockVis"      ref="AnlGold"   showDaughters="false" visible="true"/>
 
-    <vis name="EcalEndcapNModuleVis"    ref="AnlTeal"   showDaughters="false" visible="true"/>
+    <vis name="EcalEndcapNModuleVis"    ref="AnlGold"   showDaughters="false" visible="true"/>
+
+    <vis name="FFPreVis"            ref="AnlGold"             showDaughters="true" visible="true"/>
+    <vis name="FFPreLayerVis"       ref="FFPreVis"            showDaughters="true" visible="true"/>
+    <vis name="FFPreModuleVis"      ref="FFPreLayerVis"       showDaughters="true" visible="true"/>
+    <vis name="FFPreRadiatorVis"    ref="FFPreModuleVis"      showDaughters="true" visible="true"/>
+    <vis name="FFPreReadoutVis"     ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/>
 
     <comment>
       HCal Vis
     </comment>
-    <vis name="HcalVis"               ref="AnlViolet"   showDaughters="true"  visible="true"/>
-    <vis name="HcalBarrelVis"         ref="AnlViolet"   showDaughters="true"  visible="true"/>
-    <vis name="HcalBarrelStaveVis"    ref="AnlViolet"   showDaughters="true"  visible="true"/>
-    <vis name="HcalBarrelLayerVis"    ref="AnlViolet"   showDaughters="false" visible="true"/>
-    <vis name="HcalEndcapVis"         ref="AnlViolet"   showDaughters="true"  visible="true"/>
-    <vis name="HcalEndcapLayerVis"    ref="AnlViolet"   showDaughters="false" visible="true"/>
-    <vis name="HcalSensorVis"         ref="AnlBlue"     showDaughters="false" visible="false"/>
-    <vis name="HcalAbsorberVis"       ref="AnlViolet"   showDaughters="false" visible="false"/>
+    <vis name="HcalVis"               ref="AnlBlue"   showDaughters="true"  visible="true"/>
+    <vis name="HcalBarrelVis"         ref="AnlBlue"   showDaughters="true"  visible="true"/>
+    <vis name="HcalBarrelStaveVis"    ref="AnlBlue"   showDaughters="false" visible="true"/>
+    <vis name="HcalBarrelLayerVis"    ref="AnlBlue"   showDaughters="true" visible="true"/>
+    <vis name="HcalEndcapVis"         ref="AnlBlue"   showDaughters="false" visible="true"/>
+    <vis name="HcalEndcapLayerVis"    ref="AnlBlue"   showDaughters="true" visible="true"/>
+    <vis name="HcalSensorVis"         ref="AnlBlue"   showDaughters="true" visible="true"/>
+    <vis name="HcalAbsorberVis"       ref="AnlGray"   showDaughters="true" visible="true"/>
+
+    <comment>
+      Passive steel for flux return
+    </comment>
+    <vis name="PassiveSteelVis"       ref="AnlViolet" showDaughters="false" visible="true"/>
 
     <comment>
       Solenoid
@@ -59,43 +100,65 @@
     <comment>
       PID Detectors
     </comment>
-    <vis name="RICHVis"      ref="AnlViolet"     showDaughters="true"/>
+    <vis name="RICHVis"         ref="AnlTeal"       showDaughters="true"/>
+
+    <vis name="DIRCVis"         ref="AnlTeal"       showDaughters="true" visible="true"/>
+    <vis name="DIRCLayerVis"    ref="AnlTeal"       showDaughters="false" visible="true"/>
+    <vis name="DIRCModuleVis"   ref="AnlTeal"       showDaughters="true" visible="true"/>
+    <vis name="DIRCSupportVis"  ref="AnlTeal"       showDaughters="true" visible="true"/>
+    <vis name="DIRCFrameVis"    ref="AnlOrange"     showDaughters="true" visible="true"/>
+    <vis name="DIRCBarVis"      ref="AnlTeal"       showDaughters="true" visible="true"/>
+
+    <comment>
+      Beam line with magnets
+    </comment>
+    <vis name="BeamPipeVis"         ref="AnlLightGray"       showDaughters="true" visible="true"/>
+    <vis name="FFMagnetVis"         ref="AnlGreen"            showDaughters="true" visible="true"/>
+    <vis name="FFMagnetCoilVis"     ref="AnlRed"              showDaughters="true" visible="true"/>
+
+    <comment>
+      ZDC visualization
+    </comment>
+
+    <vis name="ffi_ZDC_ECAL_Vis"        ref="AnlGreen" showDaughters="true"  visible="true"/>
+    <vis name="ffi_ZDC_ECAL_module_Vis" ref="AnlRed"   showDaughters="false" visible="true"/>
+    <vis name="ffi_ZDC_HCAL_Vis"        ref="AnlBlue"  showDaughters="true"  visible="true"/>
 
     <comment>
-      Beam line
+      PID visualization
     </comment>
-    <vis name="BeamPipeVis"  ref="AnlLight_Gray" showDaughters="true" visible="true"/>
-
-    <vis name="cb_SolenoidVis"          alpha="0.4"  r= "0.1"  g="0.0"  b="0.1"  showDaughters="true" visible="true"/>
-    <vis name="ffi_ZDC_ECAL_Vis"        alpha="0.1"  r= "0.1"  g="0.0"  b="1.0"  showDaughters="true" visible="true"/>
-    <vis name="ffi_ZDC_ECAL_module_Vis" alpha="1.0"  r= "0.1"  g="1.0"  b="0.9"  showDaughters="true" visible="true"/>
-    <vis name="ffi_ZDC_HCAL_Vis"        alpha="0.1"  r= "0.1"  g="0.0"  b="1.0"  showDaughters="true" visible="true"/>
-    <vis name="cb_CTDVis"               alpha="0.1"  r= "0.1"  g="0.0"  b="1.0"  showDaughters="true" visible="true"/>
-    <vis name="cb_CTD_Si_layerVis"      alpha="1.0"  r= "0.9"  g="1.0"  b="0.1"  showDaughters="true" visible="true"/>
-    <vis name="ce_GEMVis"               alpha="0.1"  r= "0.1"  g="0.0"  b="1.0"  showDaughters="true" visible="true"/>
-    <vis name="cb_GEM_layerVis"         alpha="0.8"  r= "0.8"  g="0.4"  b="0.3"  showDaughters="true" visible="true"/>
-    <vis name="cb_VTX_BarrelVis"        alpha="0.1"  r= "0.1"  g="0.0"  b="1.0"  showDaughters="true" visible="true"/>
-    <vis name="cb_VTX_Barrel_layerVis"  alpha="2.0"  r= "0.0"  g="0.2"  b="0.8"  showDaughters="true" visible="true"/>
-
-    <vis name="ci_GEMVis"  r= "0.8"  g="0.4"  b="0.3" alpha="0.8" showDaughters="true" visible="true"/>
-    <vis name="ci_HCALVis"  r= "0.6"  g="0"  b="0.6" alpha="1.0" showDaughters="true" visible="true"/>
+
+    <vis name="DRICH_vessel_vis"  ref="AnlGray" showDaughters="true" visible="true" />
+    <vis name="DRICH_gas_vis"     ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" />
+    <vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
+    <vis name="DRICH_filter_vis"  alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
+    <vis name="DRICH_mirror_vis"  ref="AnlGray" showDaughters="true" visible="true" />
+    <vis name="DRICH_sensor_vis"  ref="AnlGreen" showDaughters="true" visible="true" />
+    <vis name="ERICH_sensor_vis"  ref="AnlGreen" showDaughters="true" visible="true" /> 
+
+    <vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
+    <vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
+    <vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" />
+    <vis name="MRICH_mirror_vis"  ref="AnlGray" showDaughters="true" visible="true" />
+
+    <vis name="RICHServiceVis"  ref="AnlGray" showDaughters="true" visible="true" />
 
     <comment>
-      Deprecated colors.
-    vis name="GreenVis"       alpha="1.0"  r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RedVis"         alpha="0.2"  r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RPVis"          alpha="0.99"  r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RPLayerVis"     alpha="0.99"  r= "0.0" g="0.7" b="0.3" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" /
-    vis name="BlueVis"        alpha="1.0"  r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="OrangeVis"      alpha="1.0"  r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/
-    vis name="RedGreenVis"    alpha="0.5"  r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="BlueGreenVis"   alpha="0.5"  r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="PurpleVis"      alpha="1.0"  r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="DoubleRedG"     alpha="0.5"  r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/
-    vis name="RBG015"         alpha="0.5"  r= "0.0" g=".2"  b="1.0" showDaughters="true" visible="true"/
-    vis name="RBG510"         alpha="0.5"  r= "1.0" g=".2"  b="0.0" showDaughters="true" visible="true"/
-    vis name="RBG"            alpha="0.5"  r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="GrayVis"        alpha="1.0"  r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/
+      Deprecated values used for IP6 vis
     </comment>
+    <vis name="GreenVis"       ref="AnlGreen" showDaughters="true" visible="true"/>
+    <vis name="RedVis"         ref="AnlRed" showDaughters="true" visible="true"/>
+    <vis name="RPVis"          ref="AnlDelta_Red" showDaughters="true" visible="true"/>
+    <vis name="RPLayerVis"     ref="AnlTeal" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" />
+    <vis name="BlueVis"        ref="AnlBlue" showDaughters="true" visible="true"/>
+    <vis name="OrangeVis"      ref="AnlOrange" showDaughters="true" visible="true"/>
+    <vis name="BlueGreenVis"   alpha="0.5"  r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
+    <vis name="PurpleVis"      alpha="1.0"  r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
+    <vis name="DoubleRedG"     alpha="0.5"  r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/>
+    <vis name="RBG015"         alpha="0.5"  r= "0.0" g=".2"  b="1.0" showDaughters="true" visible="true"/>
+    <vis name="RBG510"         alpha="0.5"  r= "1.0" g=".2"  b="0.0" showDaughters="true" visible="true"/>
+    <vis name="RBG"            alpha="0.5"  r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
+    <vis name="GrayVis"        alpha="1.0"  r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
+		<vis name="AnlRed_1"        alpha="0.5" r="205/256" g="32/256" b="44/256"/>
 
   </display>
diff --git a/compact/display_geoviewer.xml b/compact/display_geoviewer.xml
index ca303cbb..3998698d 100644
--- a/compact/display_geoviewer.xml
+++ b/compact/display_geoviewer.xml
@@ -25,7 +25,18 @@
     <vis name="VertexSupportVis"      ref="VertexSupportLayerVis" visible="true"  showDaughters="true" />
     <vis name="VertexModuleVis"       ref="TrackerLayerVis" visible="true"  showDaughters="true" />
 
-    <vis name="TOFVis" ref="AnlTeal" showDaughters="true" visible="true"/>
+    <vis name="TOFVis"            ref="AnlTeal"             visible="true"  showDaughters="true"/>
+    <vis name="TOFLayerVis"       ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFModuleVis"      ref="TOFVis"              visible="true"  showdaughters="true"/>
+    <vis name="TOFSupportVis"     ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFSensorVis"      ref="TOFVis"              visible="true"  showDaughters="true"/>
+    <vis name="TOFBarrelModuleVis" ref="TOFVis"             visible="true"  showdaughters="true"/>
+    <vis name="TOFHybridVis"      ref="AnlGold"             visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolingTube"    ref="AnlRed"              visible="true"  showDaughters="true"/>
+    <vis name="TOFCoolant"        ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCSkinVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCFoamVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
+    <vis name="TOFCHoneycombVis"  ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
 
     <vis name="FFTrackerVis"        ref="AnlRed" />
     <vis name="FFTrackerSupportVis" ref="AnlBlue"             visible="true"  showDaughters="false" />
@@ -69,7 +80,7 @@
     <vis name="HcalBarrelLayerVis"    ref="AnlBlue"   showDaughters="true" visible="true"/>
     <vis name="HcalEndcapVis"         ref="AnlBlue"   showDaughters="false" visible="true"/>
     <vis name="HcalEndcapLayerVis"    ref="AnlBlue"   showDaughters="true" visible="true"/>
-    <vis name="HcalSensorVis"         ref="AnlBlue"     showDaughters="true" visible="true"/>
+    <vis name="HcalSensorVis"         ref="AnlBlue"   showDaughters="true" visible="true"/>
     <vis name="HcalAbsorberVis"       ref="AnlGray"   showDaughters="true" visible="true"/>
 
     <comment>
@@ -117,12 +128,12 @@
     </comment>
 
     <vis name="DRICH_vessel_vis"  ref="AnlGray" showDaughters="true" visible="true" />
-    <vis name="DRICH_gas_vis"     ref="AnlGreen" alpha="0.5" showDaughters="true" visible="true" />
+    <vis name="DRICH_gas_vis"     ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" />
     <vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
     <vis name="DRICH_filter_vis"  alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
     <vis name="DRICH_mirror_vis"  ref="AnlGray" showDaughters="true" visible="true" />
     <vis name="DRICH_sensor_vis"  ref="AnlGreen" showDaughters="true" visible="true" />
-    <vis name="ERICH_sensor_vis"  ref="AnlBlue" showDaughters="true" visible="false" /> <!-- invisible, to speedup graphics -->
+    <vis name="ERICH_sensor_vis"  ref="AnlGreen" showDaughters="true" visible="true" /> <!-- invisible, to speedup graphics -->
 
     <vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
     <vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
diff --git a/compact/drich.xml b/compact/drich.xml
index 9c27e4db..9a4980f2 100644
--- a/compact/drich.xml
+++ b/compact/drich.xml
@@ -3,10 +3,10 @@
 
 <define>
 <!-- vessel (=snout+tank) geometry -->
-<constant name="DRICH_zmin"               value="ForwardPIDRegion_zmin"/> <!-- vessel front -->
-<constant name="DRICH_Length"             value="ForwardPIDRegion_length"/>  <!-- overall vessel length (including snout) -->
-<constant name="DRICH_rmin0"              value="ForwardPIDRegion_zmin * ForwardPIDRegion_tan1"/>  <!-- bore radius at dRICh vessel frontplane -->
-<constant name="DRICH_rmin1"              value="(ForwardPIDRegion_zmin + ForwardPIDRegion_length) * ForwardPIDRegion_tan2"/>  <!-- bore radius at dRICh vessel backplane -->
+<constant name="DRICH_zmin"               value="ForwardRICHRegion_zmin"/> <!-- vessel front -->
+<constant name="DRICH_Length"             value="ForwardRICHRegion_length"/>  <!-- overall vessel length (including snout) -->
+<constant name="DRICH_rmin0"              value="ForwardRICHRegion_zmin * ForwardRICHRegion_tan1"/>  <!-- bore radius at dRICh vessel frontplane -->
+<constant name="DRICH_rmin1"              value="(ForwardRICHRegion_zmin + ForwardRICHRegion_length) * ForwardRICHRegion_tan2"/>  <!-- bore radius at dRICh vessel backplane -->
 <constant name="DRICH_wall_thickness"     value="0.5*cm"/>  <!-- thickness of radial walls -->
 <constant name="DRICH_window_thickness"   value="0.1*cm"/>  <!-- thickness of entrance and exit walls -->
 <!-- tank geometry: cylinder, holding the majority of detector components -->
diff --git a/compact/ecal.xml b/compact/ecal.xml
index f6ce08ec..0758023f 100644
--- a/compact/ecal.xml
+++ b/compact/ecal.xml
@@ -11,11 +11,8 @@
   <!--include ref="ecal_forward_scfi.xml"/-->
   <include ref="ecal_forward_homogenous.xml"/>
 
-  <!--<include ref="ecal_backward_crystal_glass.xml"/>-->
   <include ref="ecal_backward_hybrid.xml"/>
 
-  <!-- <include ref="ecal_barrel.xml"/> -->
-  <!-- <include ref="ecal_barrel_hybrid.xml"/> -->
   <include ref="ecal_barrel_interlayers.xml"/>
 
 </lccdd>
diff --git a/compact/erich.xml b/compact/erich.xml
index f678748c..6c57d1b4 100644
--- a/compact/erich.xml
+++ b/compact/erich.xml
@@ -3,18 +3,26 @@
 
 <define>
 <!-- vessel geometry -->
-<constant name="ERICH_Length"             value="BackwardPIDRegion_length"/>  <!-- vessel z-length -->
-<constant name="ERICH_zmin"               value="-BackwardPIDRegion_zmin"/> <!-- vessel front -->
+<constant name="ERICH_Length"             value="BackwardRICHRegion_length"/>  <!-- vessel z-length -->
+<constant name="ERICH_zmin"               value="-BackwardRICHRegion_zmin"/> <!-- vessel front -->
 <constant name="ERICH_zmax"               value="ERICH_zmin - ERICH_Length"/>  <!-- vessel back -->
-<constant name="ERICH_rmin0"              value="BackwardPIDRegion_tan * BackwardPIDRegion_zmin"/>  <!-- bore radius at vessel frontplane -->
-<constant name="ERICH_rmin1"              value="BackwardPIDRegion_tan * (BackwardPIDRegion_zmin + BackwardPIDRegion_length)"/>  <!-- bore radius at vessel backplane -->
+<constant name="ERICH_rmin0"              value="BackwardPIDRegion_tan * BackwardRICHRegion_zmin"/>  <!-- bore radius at vessel frontplane -->
+<constant name="ERICH_rmin1"              value="BackwardPIDRegion_tan * (BackwardRICHRegion_zmin + BackwardRICHRegion_length)"/>  <!-- bore radius at vessel backplane -->
 <constant name="ERICH_rmax"               value="BackwardPIDRegion_rmax - 2*cm"/>  <!-- vessel backplane radius -->
 <constant name="ERICH_wall_thickness"     value="0.5*cm"/>  <!-- thickness of radial walls -->
 <constant name="ERICH_window_thickness"   value="0.1*cm"/>  <!-- thickness of entrance and exit walls -->
 <!-- additional parameters -->
 <constant name="ERICH_aerogel_thickness"  value="3.0*cm"/>  <!-- aerogel thickness -->
-<constant name="ERICH_sensor_active_size" value="24.0*mm"/> <!-- sensor side length (effective area) -->
-<constant name="ERICH_sensor_full_size"   value="25.8*mm"/> <!-- sensor side length (full size, with enclosure) -->
+<constant name="ERICH_sensor_active_size_default" value="24.0*mm"/> <!-- sensor side length (effective area) -->
+<constant name="ERICH_sensor_full_size_default"   value="25.8*mm"/> <!-- sensor side length (full size, with enclosure) -->
+<!-- lores values are used for global vizualizations _only_ -->
+<constant name="ERICH_sensor_active_size_lores" value="ERICH_sensor_active_size_default * 4"/>
+<constant name="ERICH_sensor_full_size_lores" value="ERICH_sensor_full_size_default * 4"/>
+<!-- actual values used by the parametrization -->
+<constant name="ERICH_sensor_active_size" value="ERICH_sensor_active_size_default"/>
+<constant name="ERICH_sensor_full_size" value="ERICH_sensor_full_size_default"/>
+
+
 <constant name="ERICH_sensor_thickness"   value="1.5*mm"/> <!-- sensor thickness -->
 <constant name="ERICH_sensor_dist"        value="40*cm"/> <!-- distance between aerogel exit plane and sensor entrance plane -->
 <constant name="ERICH_num_px"             value="8"/> <!-- number of pixels along one side of the sensor -->
diff --git a/compact/materials.xml b/compact/materials.xml
index bdc108fc..e7bdd185 100644
--- a/compact/materials.xml
+++ b/compact/materials.xml
@@ -119,6 +119,35 @@
     <fraction n="0.1369" ref="Si"/>
     <fraction n="0.2610" ref="O"/>
   </material>
+  <documentation level="3">
+    #### Material for TOF
+      a level 3 doc
+  </documentation>
+  <material name="CarbonFoam">
+    <D type="density" value="0.09" unit="g/cm3"/>
+    <fraction n="1.00" ref="C"/>
+  </material>
+  <material name="CFRPMix">
+    <D type="density" value="0.03" unit="g/cm3"/>
+    <fraction n="0.074" ref="O"/>
+    <fraction n="0.870" ref="C"/>
+    <fraction n="0.023" ref="H"/>
+    <fraction n="0.033" ref="Cl"/>
+  </material>
+  <material name="CFRPMix2">
+    <D type="density" value="1.60" unit="g/cm3"/>
+    <fraction n="0.074" ref="O"/>
+    <fraction n="0.870" ref="C"/>
+    <fraction n="0.023" ref="H"/>
+    <fraction n="0.033" ref="Cl"/>
+  </material>
+  <material name="NOVEC7200">
+    <D type="density" value="1.44" unit="g/cm3"/>
+    <fraction n="0.061" ref="O"/>
+    <fraction n="0.019" ref="H"/>
+    <fraction n="0.272" ref="C"/>
+    <fraction n="0.648" ref="F"/>
+  </material>
   <documentation level="3">
     #### Carbon fiber
       a level 3 doc
diff --git a/compact/pid_config_deathvalley.xml b/compact/pid_config_deathvalley.xml
new file mode 100644
index 00000000..c0427fdd
--- /dev/null
+++ b/compact/pid_config_deathvalley.xml
@@ -0,0 +1,11 @@
+<lccdd>
+
+<include ref="fake_dirc.xml"/>
+<!--include ref="dirc.xml"/-->
+<include ref="drich.xml"/>
+<include ref="erich.xml"/>
+
+<!--include ref="tof_endcap.xml"/-->
+<include ref="tof_barrel.xml"/>
+
+</lccdd>
diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml
index 90233393..824bc12d 100644
--- a/compact/subsystem_views/calorimeters.xml
+++ b/compact/subsystem_views/calorimeters.xml
@@ -59,9 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <!--include ref="compact/colors2.xml"/-->
-  <include ref="compact/display.xml" />
-  <!--include ref="compact/display_detailed.xml"/-->
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="0">
diff --git a/compact/subsystem_views/dirc_only.xml b/compact/subsystem_views/dirc_only.xml
index a60d413b..89ecc4d2 100644
--- a/compact/subsystem_views/dirc_only.xml
+++ b/compact/subsystem_views/dirc_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="0">
diff --git a/compact/subsystem_views/drich_only.xml b/compact/subsystem_views/drich_only.xml
index d1dff27e..7193fa50 100644
--- a/compact/subsystem_views/drich_only.xml
+++ b/compact/subsystem_views/drich_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
 
diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml
index 0dfbc064..c1d21177 100644
--- a/compact/subsystem_views/inner_detector.xml
+++ b/compact/subsystem_views/inner_detector.xml
@@ -60,8 +60,7 @@
   <display>
   <include ref="compact/colors.xml" />
   <!--include ref="compact/colors2.xml"/-->
-  <include ref="compact/display.xml" />
-  <!--include ref="compact/display_detailed.xml"/-->
+  <include ref="compact/display.xml"/>
   </display>
 
   <documentation level="0">
@@ -100,12 +99,12 @@
     ## Central tracking detectors
   </documentation>
 
-  <include ref="compact/tracking_config_canyonlands.xml"/>
+  <include ref="compact/tracking_config_deathvalley.xml"/>
 
   <documentation level="10">
   ### PID detectors
   </documentation>
-  <include ref="compact/pid_config_canyonlands.xml"/>
+  <include ref="compact/pid_config_deathvalley.xml"/>
 
   <documentation level="10">
   ## Central calorimetry
diff --git a/compact/subsystem_views/pfrich_only.xml b/compact/subsystem_views/pfrich_only.xml
index b9778762..11971d74 100644
--- a/compact/subsystem_views/pfrich_only.xml
+++ b/compact/subsystem_views/pfrich_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="10">
diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml
index 0ee9acd1..44207a0c 100644
--- a/compact/subsystem_views/pid_only.xml
+++ b/compact/subsystem_views/pid_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="0">
@@ -101,7 +101,7 @@
       PID detectors
       -------------
   </comment>
-  <include ref="compact/pid_config_canyonlands.xml"/>
+  <include ref="compact/pid_config_deathvalley.xml"/>
 
 
   <comment>
diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml
index de12be8e..f3195231 100644
--- a/compact/subsystem_views/tracking_only.xml
+++ b/compact/subsystem_views/tracking_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="0">
@@ -99,12 +99,12 @@
       Central tracking detectors
       --------------------------
   </comment>
-  <include ref="compact/tracking_config_canyonlands.xml"/>
+  <!--include ref="compact/tracking_config_canyonlands.xml"/-->
+  <include ref="compact/tracking_config_deathvalley.xml"/>
 
-  <comment>
       PID detectors
       -------------
-  </comment>
+  <include ref="compact/tof_barrel.xml"/>
 
   <fields>
     <field name="B0PF_Magnet" type="MultipoleMagnet">
diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml
index 18cbd2cd..8c818e8f 100644
--- a/compact/subsystem_views/vertex_only.xml
+++ b/compact/subsystem_views/vertex_only.xml
@@ -59,7 +59,7 @@
 
   <display>
   <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
+  <include ref="compact/display_detailed.xml" />
   </display>
 
   <documentation level="0">
diff --git a/compact/tof.xml b/compact/tof.xml
index c190d55a..d84c36c9 100644
--- a/compact/tof.xml
+++ b/compact/tof.xml
@@ -12,8 +12,10 @@
 
   </documentation>
 
+  <!--include ref="tof_endcap.xml"/-->
   <include ref="tof_barrel.xml"/>
-  <include ref="tof_endcap.xml"/>
+  <include ref="tof_forward.xml"/>
+  <include ref="tof_backward.xml"/>
 
 </lccdd>
 
diff --git a/compact/tof_barrel.xml b/compact/tof_barrel.xml
index 51065482..3d621602 100644
--- a/compact/tof_barrel.xml
+++ b/compact/tof_barrel.xml
@@ -2,28 +2,60 @@
 <lccdd>
 
   <define>
-
-    <constant name="BarrelTOFSpaceFrame_width"   value="40.0*mm"/>
-    <constant name="BarrelTOFSpaceFrame_height"  value="sqrt(3.0)*32.0*mm/2.0"/>
-    <constant name="BarrelTOFSensor_thickness"   value="0.3*mm"/>
-    <constant name="BarrelTOFModule_thickness"   value="2.00/100*9.37*cm"/>
-    <constant name="BarrelTOFService_thickness"  value="BarrelTOFModule_thickness-BarrelTOFSensor_thickness"/>
-
     <comment>
-      Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
+      --------------------------
+      Barrel TOF Parameters
+      --------------------------
     </comment>
-    <constant name="BarrelTOFLayer_rOffset"     value="0.5*cm"/>
+    <constant name="BarrelTOF_Sensor_thickness"       value="0.3*mm"/>
+    <constant name="BarrelTOF_Hybrid_thickness"       value="2*0.008125*cm"/>
+    <constant name="BarrelTOF_CFSkin_thickness"       value="2*0.0075*cm"/>
+    <constant name="BarrelTOF_CFoam_thickness"        value="2*0.29*cm"/>
+    <constant name="BarrelTOF_CHoneycomb_thickness"   value="2*0.29*cm"/>
+    <constant name="BarrelTOF_CoolingTube_thickness"  value="0.08*cm"/>
+    <constant name="BarrelTOF_Coolant_thickness"      value="0.08*cm"/>
+    <constant name="BarrelTOF_Module_thickness"    value="BarrelTOF_Sensor_thickness+2*BarrelTOF_Hybrid_thickness+2*BarrelTOF_CFSkin_thickness+BarrelTOF_CFoam_thickness+BarrelTOF_CoolingTube_thickness+BarrelTOF_Coolant_thickness"/>
 
-    <constant name="BarrelTOF_rmin1"       value="50.0*cm"/>
-    <constant name="BarrelTOF_rmin2"       value="BarrelTOF_rmin1 + BarrelTOFSpaceFrame_width"/>
-    <constant name="BarrelTOF_length1"     value="192.0*cm"/>
-    <constant name="BarrelTOF_length2"     value="200.0*cm"/>
+    <constant name="BarrelTOF_radius_design"           value="50.0*cm"/>
+    <constant name="BarrelTOF_Module_width_design"     value="56.0*mm"/>
+    <constant name="BarrelTOF_Sensor_width_design"     value="32.0*mm"/>
+    <constant name="BarrelTOF_CFoam_width_design"      value="BarrelTOF_Sensor_width_design-5.0*mm"/>
+    <constant name="BarrelTOF_CHoneycomb_width_design" value="BarrelTOF_Module_width_design-BarrelTOF_CFoam_width_design"/>
+    <constant name="BarrelTOF_CoolingTube_width_design" value="0.75*cm"/>
+    <constant name="BarrelTOF_Coolant_width_design"    value="0.75*cm"/>
 
-    <constant name="BarrelTOF_thickness"  value="BarrelTOF_rmin2 - BarrelTOF_rmin1"/>
-    <constant name="BarrelTOF_length"     value="BarrelTOF_length2"/>
+    <constant name="BarrelTOF_Sensor_position_design"  value="0.5*(BarrelTOF_Sensor_width_design-BarrelTOF_Module_width_design)"/>
+    <constant name="BarrelTOF_CFoam_position_design"   value="0.5*(BarrelTOF_CFoam_width_design-BarrelTOF_Module_width_design)"/>
+    <constant name="BarrelTOF_CHoneycomb_position_design"  value="0.5*(BarrelTOF_Module_width_design-BarrelTOF_CHoneycomb_width_design)"/>
+    <constant name="BarrelTOF_CoolingTube_position_design"  value="BarrelTOF_CHoneycomb_position_design"/>
+    <constant name="BarrelTOF_Coolant_position_design" value="BarrelTOF_CHoneycomb_position_design"/>
+    <constant name="BarrelTOF_Service_position_design" value="0.0*mm"/>
 
-    <comment> TODO: These should be computed </comment>
-    <constant name="BarrelTOF_NModules" value="80"/>
+    <constant name="BarrelTOF_scale"               value="1.05"/>
+    <constant name="BarrelTOF_radius"              value="BarrelTOF_scale * BarrelTOF_radius_design"/>
+    <constant name="BarrelTOF_Sensor_width"        value="BarrelTOF_scale * BarrelTOF_Sensor_width_design"/>
+    <constant name="BarrelTOF_CFoam_width"         value="BarrelTOF_scale * BarrelTOF_CFoam_width_design"/>
+    <constant name="BarrelTOF_CHoneycomb_width"    value="BarrelTOF_scale * BarrelTOF_CHoneycomb_width_design"/>
+    <constant name="BarrelTOF_CoolingTube_width"   value="BarrelTOF_scale * BarrelTOF_CoolingTube_width_design"/>
+    <constant name="BarrelTOF_Coolant_width"       value="BarrelTOF_scale * BarrelTOF_Coolant_width_design"/>
+    <constant name="BarrelTOF_Sensor_position"     value="BarrelTOF_scale * BarrelTOF_Sensor_position_design"/>
+    <constant name="BarrelTOF_CFoam_position"      value="BarrelTOF_scale * BarrelTOF_CFoam_position_design"/>
+    <constant name="BarrelTOF_CHoneycomb_position" value="BarrelTOF_scale * BarrelTOF_CHoneycomb_position_design"/>
+    <constant name="BarrelTOF_CoolingTube_position" value="BarrelTOF_scale * BarrelTOF_CoolingTube_position_design"/>
+    <constant name="BarrelTOF_Coolant_position"    value="BarrelTOF_scale * BarrelTOF_Coolant_position_design"/>
+    <constant name="BarrelTOF_Service_position"    value="BarrelTOF_scale * BarrelTOF_Service_position_design"/>
+    <constant name="BarrelTOF_Module_width"        value="BarrelTOF_scale*BarrelTOF_Module_width_design"/>
+    <constant name="BarrelTOF_Module_tiltangle"    value="18.0*degree"/>
+    <constant name="BarrelTOF_Module_nphi"         value="108"/>
+    <constant name="BarrelTOF_Module_nz"           value="1"/>
+
+    <constant name="BarrelTOF_rmin"                value="BarrelTOF_radius"/>
+    <constant name="BarrelTOF_rmax"                value="BarrelTOF_rmin+BarrelTOF_Module_width*tan(BarrelTOF_Module_tiltangle)"/>
+    <constant name="BarrelTOF_thickness"           value="BarrelTOF_rmax-BarrelTOF_rmin"/>
+    <constant name="BarrelTOF_rOffset"             value="16.0*mm"/>
+    <constant name="BarrelTOF_length1"             value="2 * BarrelTOF_rmin / CentralTrackingBarrel_tan * 0.995"/>
+    <constant name="BarrelTOF_length2"             value="2 * BarrelTOF_rmax / CentralTrackingBarrel_tan * 0.995"/>
+    <constant name="BarrelTOF_length"              value="BarrelTOF_length2"/>
 
   </define>
 
@@ -34,46 +66,61 @@
     <detector
       id="BarrelTOF_ID"
       name="BarrelTOF"
-      type="athena_TrackerBarrel"
-      readout="BarrelTOFHits"
+      type="athena_TOFBarrel" 
+      readout="TOFBarrelHits"
       insideTrackingVolume="true">
       <dimensions
-        rmin="BarrelTOF_rmin1-BarrelTOFLayer_rOffset"
-        rmax="BarrelTOF_rmin2-BarrelTOFLayer_rOffset + BarrelTOF_thickness"
+        rmin="BarrelTOF_rmin-BarrelTOF_rOffset"
+        rmax="BarrelTOF_rmax+BarrelTOF_rOffset"
         length="BarrelTOF_length"/>
       <comment>
         Tracker Barrel Modules
       </comment>
-      <module name="BarrelTOF_Module1" vis="TOFVis">
-        <frame  material="CarbonFiber_25percent" vis="TOFVis"
-          width="BarrelTOFSpaceFrame_width"
-          height="BarrelTOFSpaceFrame_height"
-          length="BarrelTOF_length1"
-          thickness="0.1*mm" />
-        <module_component name="silicon" material="Silicon" sensitive="true"
-          width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFSensor_thickness" >
+      <module name="BarrelTOF_Module1" vis="TOFBarrelModuleVis">
+        <module_component name="sensor" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_length1" thickness="BarrelTOF_Sensor_thickness" vis="TOFSensorVis" >
+          <position x="BarrelTOF_Sensor_position" y="0" z="0" />
+        </module_component>
+        <module_component name="hybridtop" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
+          <position x="BarrelTOF_Service_position" y="0" z="0" />
+        </module_component>
+        <module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
+          <position x="BarrelTOF_Service_position" y="0" z="0" />
+        </module_component>
+        <module_component name="coolingtube" material="Aluminum" sensitive="false" width="BarrelTOF_CoolingTube_width" length="BarrelTOF_length1" thickness="BarrelTOF_CoolingTube_thickness" vis="TOFCoolingTubeVis" >
+          <position x="BarrelTOF_CoolingTube_position" y="0" z="0" />
+        </module_component>
+        <module_component name="coolant" material="NOVEC7200" sensitive="false" width="BarrelTOF_Coolant_width" length="BarrelTOF_length1" thickness="BarrelTOF_Coolant_thickness" vis="TOFCoolantVis" >
+          <position x="BarrelTOF_Coolant_position" y="0" z="0" />
+        </module_component>
+        <module_component name="cfoam" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" >
+          <position x="BarrelTOF_CFoam_position" y="0" z="0" />
+        </module_component>
+        <module_component name="choneycomb" material="CFRPMix" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF_length1" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCHoneycombVis" >
+          <position x="BarrelTOF_CHoneycomb_position" y="0" z="-1*BarrelTOF_CFoam_thickness" />
+        </module_component>
+        <module_component name="cfskinbottom" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
+          <position x="BarrelTOF_Service_position" y="0" z="0" />
+        </module_component>
+        <module_component name="hybridbottom" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
+          <position x="BarrelTOF_Service_position" y="0" z="0" />
         </module_component>
-        <module_component name="service" material="Silicon" sensitive="false"
-          width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFService_thickness" />
       </module>
-      <layer module="BarrelTOF_Module1" id="1" vis="TOFVis">
+      <layer module="BarrelTOF_Module1" id="1" vis="TOFLayerVis">
         <barrel_envelope
-          inner_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset"
-          outer_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset + BarrelTOF_thickness-1.0*mm"
+          inner_r="BarrelTOF_rmin-BarrelTOF_rOffset"
+          outer_r="BarrelTOF_rmax+BarrelTOF_rOffset"
           z_length="BarrelTOF_length"/>
-        <rphi_layout phi_tilt="10.0*degree" nphi="BarrelTOF_NModules" phi0="0.0" rc="BarrelTOF_rmin1" dr="0.0 * mm"/>
-        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+        <rphi_layout phi_tilt="BarrelTOF_Module_tiltangle" nphi="BarrelTOF_Module_nphi" phi0="0.0" rc="BarrelTOF_rmin" dr="0.0*mm"/>
+        <z_layout dr="0.0*mm" z0="0.0*mm" nz="BarrelTOF_Module_nz"/>
       </layer>
     </detector>
-
   </detectors>
 
   <readouts>
-    <readout name="BarrelTOFHits">
-      <segmentation type="CartesianGridXY" grid_size_x="0.150*mm" grid_size_y="0.150*mm" />
+    <readout name="TOFBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="BarrelTOF_length1/48" />
       <id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
     </readout>
   </readouts>
 
-
 </lccdd>
diff --git a/compact/tof_endcap.xml b/compact/tof_endcap.xml
index a9b22dc0..b065eaad 100644
--- a/compact/tof_endcap.xml
+++ b/compact/tof_endcap.xml
@@ -3,45 +3,65 @@
   <define>
     <comment>
       --------------------------
-      Forward and backward TOF Parameters
+      Forward TOF Parameters
       --------------------------
     </comment>
+    <comment> Forward/backward TOF position </comment>
+    <constant name="ForwardTOF_length"           value="min(ForwardTOFRegion_length, 2.*cm)"/>
+    <constant name="ForwardTOF_zmin"             value="ForwardTOFRegion_zmin + ForwardTOFRegion_length - ForwardTOF_length - 1*cm"/>
+    <constant name="ForwardTOF_nlayers"          value="2"/>
+    <constant name="ForwardTOFMod_offset"        value="1.2*cm"/>
+    <constant name="BackwardTOF_length"          value="min(BackwardTOFRegion_length, 2.*cm)"/>
+    <constant name="BackwardTOF_zmin"            value="BackwardTOFRegion_zmin + 0.5*cm"/>
+    <constant name="BackwardTOF_nlayers"         value="2"/>
+    <constant name="BackwardTOFMod_offset"       value="1.2*cm"/>
     
-    <constant name="TOFEndcapSensor_thickness"  value="0.3*mm"/>
-    <constant name="TOFEndcap_thickness"        value="2.00/100*9.37*cm"/>
-    <constant name="TOFEndcapService_thickness" value="TOFEndcap_thickness-TOFEndcapSensor_thickness"/>
-    <constant name="TOFEndcap_nLayers"          value="2"/>
+    <comment> LGAD parameters for the endcap TOFs </comment>
+    <constant name="TOFEndcapSensor_thickness"   value="300*um" />
+    <constant name="TOFEndcapService_thickness"  value="5.00/100*9.37*cm-TOFEndcapSensor_thickness" />
+    <constant name="TOFEndcapMod_count"          value="36" />
+    <constant name="TOFEndcapMod_dz"             value="0" />
+    <constant name="TOFEndcapMod_overlap"        value="0" />
+  </define>
+
+  <documentation>
+    ## Forward and backward TOF double-disks,
+    ## a potential ATHENA upgrade
+  </documentation>
+
+  <comment>
+    Actual detector implementation. 
+  </comment>
+  <define>
+
+    <constant name="TOFEndcapMod_thickness"     value="TOFEndcapSensor_thickness + TOFEndcapService_thickness" />
+    <constant name="TOFEndcapMod_angle"         value="360.0*degree / TOFEndcapMod_count * (1 + TOFEndcapMod_overlap)" />
+    <comment> 1 um padding to not have layer and module touch (ACTS requirement) </comment>
+    <constant name="TOFEndcapLayer_thickness"   value="TOFEndcapMod_thickness + 2 * TOFEndcapMod_dz + 1 * um" />
 
-    <constant name="ForwardTOF_zmin"            value="BarrelTracking_length/2.0 + ForwardTracking_length + ForwardRICH_length + ForwardTRD_length"/>
-    <constant name="ForwardTOF_dz"              value="(ForwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/>
-    <constant name="ForwardTOF_rmin1"           value="ForwardPID_rmin1"/>
-    <constant name="ForwardTOF_rmin2"           value="ForwardPID_rmin1"/>
-    <constant name="ForwardTOF_rmax1"           value="Solenoid_rmin"/>
-    <constant name="ForwardTOF_rmax2"           value="Solenoid_rmin"/>
-    <constant name="ForwardTOFModOpeningAngle"  value="30.0*degree"/>
-    <constant name="ForwardTOFMod1_x1"          value="2.0*ForwardTOF_rmin1*sin(ForwardTOFModOpeningAngle/2.0)"/>
-    <constant name="ForwardTOFMod1_x2"          value="2.0*ForwardTOF_rmax1*sin(ForwardTOFModOpeningAngle/2.0)"/>
-    <constant name="ForwardTOFMod1_y"           value="ForwardTOF_rmax1*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin1"/>
-    <constant name="ForwardTOFMod2_x1"          value="2.0*ForwardTOF_rmin2*sin(ForwardTOFModOpeningAngle/2.0)"/>
-    <constant name="ForwardTOFMod2_x2"          value="2.0*ForwardTOF_rmax2*sin(ForwardTOFModOpeningAngle/2.0)"/>
-    <constant name="ForwardTOFMod2_y"           value="ForwardTOF_rmax2*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin2"/>
+    <constant name="ForwardTOFMod_rmin"         value="ForwardTOFRegion_tan * ForwardTOF_zmin" />
+    <constant name="ForwardTOFMod_rmax"         value="ForwardTOFRegion_rmax" />
+    <constant name="ForwardTOFMod_x1"           value="2 * ForwardTOFMod_rmin * tan(TOFEndcapMod_angle/2)" />
+    <constant name="ForwardTOFMod_x2"           value="2 * ForwardTOFMod_rmax * sin(TOFEndcapMod_angle/2)" />
+    <constant name="ForwardTOFMod_y"            value="ForwardTOFMod_rmax * cos(TOFEndcapMod_angle/2) - ForwardTOFMod_rmin" />
+    <constant name="ForwardTOFMod1_zmin"        value="ForwardTOF_zmin" />
+    <constant name="ForwardTOFMod2_zmin"        value="ForwardTOF_zmin + ForwardTOFMod_offset" />
+    <constant name="ForwardTOFLayer_rmin"       value="ForwardTOFMod_rmin - 1*um" />
+    <constant name="ForwardTOFLayer_rmax"       value="ForwardTOFMod_rmax + 1*um" />
+    <constant name="ForwardTOFLayer1_zmin"      value="ForwardTOFMod1_zmin - TOFEndcapLayer_thickness / 2" />
+    <constant name="ForwardTOFLayer2_zmin"      value="ForwardTOFMod2_zmin - TOFEndcapLayer_thickness / 2" />
 
-    <constant name="BackwardTOF_zmin"           value="BarrelTracking_length/2.0 + BackwardTracking_length + BackwardCherenkov_length "/>
-    <constant name="BackwardTOF_dz"             value="(BackwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/>
-    <constant name="BackwardTOF_thickness"      value="BackwardTOF_dz - 1.0*mm"/>
-    <comment> Note, the -1.0*mm is so the layers do not touch surfaces. 
-      This is a limitation of ACTS geometry which will likely go away in the future.</comment>
-    <constant name="BackwardTOF_rmin1"          value="ForwardPID_rmin1"/>
-    <constant name="BackwardTOF_rmin2"          value="ForwardPID_rmin1"/>
-    <constant name="BackwardTOF_rmax1"          value="BarrelTracking_rmax"/>
-    <constant name="BackwardTOF_rmax2"          value="BarrelTracking_rmax"/>
-    <constant name="BackwardTOFModOpeningAngle" value="30.0*degree"/>
-    <constant name="BackwardTOFMod1_x1"         value="2.0*BackwardTOF_rmin1*sin(BackwardTOFModOpeningAngle/2.0)"/>
-    <constant name="BackwardTOFMod1_x2"         value="2.0*BackwardTOF_rmax1*sin(BackwardTOFModOpeningAngle/2.0)"/>
-    <constant name="BackwardTOFMod1_y"          value="BackwardTOF_rmax1*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin1"/>
-    <constant name="BackwardTOFMod2_x1"         value="2.0*BackwardTOF_rmin2*sin(BackwardTOFModOpeningAngle/2.0)"/>
-    <constant name="BackwardTOFMod2_x2"         value="2.0*BackwardTOF_rmax2*sin(BackwardTOFModOpeningAngle/2.0)"/>
-    <constant name="BackwardTOFMod2_y"          value="BackwardTOF_rmax2*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin2"/>
+    <constant name="BackwardTOFMod_rmin"        value="BackwardPIDRegion_tan * BackwardTOF_zmin" />
+    <constant name="BackwardTOFMod_rmax"        value="BackwardPIDRegion_rmax" />
+    <constant name="BackwardTOFMod_x1"          value="2 * BackwardTOFMod_rmin * tan(TOFEndcapMod_angle/2)" />
+    <constant name="BackwardTOFMod_x2"          value="2 * BackwardTOFMod_rmax * sin(TOFEndcapMod_angle/2)" />
+    <constant name="BackwardTOFMod_y"           value="BackwardTOFMod_rmax * cos(TOFEndcapMod_angle/2) - BackwardTOFMod_rmin" />
+    <constant name="BackwardTOFMod1_zmin"       value="BackwardTOF_zmin" />
+    <constant name="BackwardTOFMod2_zmin"       value="BackwardTOF_zmin + BackwardTOFMod_offset" />
+    <constant name="BackwardTOFLayer_rmin"      value="BackwardTOFMod_rmin - 1*um" />
+    <constant name="BackwardTOFLayer_rmax"      value="BackwardTOFMod_rmax + 1*um" />
+    <constant name="BackwardTOFLayer1_zmin"     value="BackwardTOFMod1_zmin - TOFEndcapLayer_thickness / 2" />
+    <constant name="BackwardTOFLayer2_zmin"     value="BackwardTOFMod2_zmin - TOFEndcapLayer_thickness / 2" />
   </define>
 
   <detectors>
@@ -52,40 +72,39 @@
         readout="TOFEndcapHits"
         vis="TOFVis"
         reflect="false">
-        <module name="Module1" vis="TOFVis">
-          <trd x1="ForwardTOFMod1_x1/2.0" x2="ForwardTOFMod1_x2/2.0" z="ForwardTOFMod1_y/2"/>
-          <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
-          <module_component thickness="TOFEndcapService_thickness" material="Silicon"/>
-        </module>
-        <module name="Module2" vis="TOFVis">
-          <trd x1="ForwardTOFMod2_x1/2.0" x2="ForwardTOFMod2_x2/2.0" z="ForwardTOFMod2_y/2"/>
-          <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/>
-          <module_component thickness="TOFEndcapService_thickness" material="Silicon"/>
+        <module name="ForwardModule" vis="TOFModuleVis">
+          <trd x1="ForwardTOFMod_x1/2.0" x2="ForwardTOFMod_x2/2.0" z="ForwardTOFMod_y/2"/>
+          <comment> TRDs are built back-to-front </comment>
+          <module_component thickness="TOFEndcapService_thickness" material="Silicon" vis="TOFVis"/>
+          <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true" vis="TOFSensorVis"/>
         </module>
         <layer id="1">
-          <envelope  vis="TOFVis"
-            rmin="ForwardTOF_rmin1"
-            rmax="ForwardTOF_rmax1"
-            length="BackwardTOF_thickness"
-            zstart="ForwardTOF_zmin" />
-          <ring vis="TOFVis"
-            r="ForwardTOF_rmin1+ForwardTOFMod1_y/2.0"
-            zstart="0.0*mm"
-            nmodules="12" dz="2.5 * mm" module="Module1" />
+          <envelope  vis="TOFLayerVis"
+            rmin="ForwardTOFLayer_rmin"
+            rmax="ForwardTOFLayer_rmax"
+            length="TOFEndcapLayer_thickness"
+            zstart="ForwardTOFLayer1_zmin" />
+          <ring 
+            r="ForwardTOFMod_rmin + ForwardTOFMod_y/2.0"
+            zstart="0"
+            nmodules="TOFEndcapMod_count" 
+            dz="TOFEndcapMod_dz" 
+            module="ForwardModule" />
         </layer>
         <layer id="2">
-          <envelope  vis="TOFVis"
-            rmin="ForwardTOF_rmin2"
-            rmax="ForwardTOF_rmax2"
-            length="BackwardTOF_thickness"
-            zstart="ForwardTOF_zmin + ForwardTOF_dz" />
-          <ring vis="TOFVis"
-            r="ForwardTOF_rmin2+ForwardTOFMod2_y/2.0"
-            zstart="0.0*mm"
-            nmodules="12" dz="2.5 * mm" module="Module2" />
+          <envelope  vis="TOFLayerVis"
+            rmin="ForwardTOFLayer_rmin"
+            rmax="ForwardTOFLayer_rmax"
+            length="TOFEndcapLayer_thickness"
+            zstart="ForwardTOFLayer2_zmin" />
+          <ring 
+            r="ForwardTOFMod_rmin + ForwardTOFMod_y/2.0"
+            zstart="0"
+            nmodules="TOFEndcapMod_count" 
+            dz="TOFEndcapMod_dz" 
+            module="ForwardModule" />
         </layer>
       </detector>
-
       <detector
         id="BackwardTOF_ID"
         name="BackwardTOF"
@@ -93,44 +112,44 @@
         readout="TOFEndcapHits"
         vis="TOFVis"
         reflect="true">
-        <module name="Module1" vis="TOFVis">
-          <trd x1="BackwardTOFMod1_x1/2.0" x2="BackwardTOFMod1_x2/2.0" z="BackwardTOFMod1_y/2"/>
-          <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/>
-          <module_component thickness="TOFEndcapService_thickness" material="Silicon"/>
-        </module>
-        <module name="Module2" vis="TOFVis">
-          <trd x1="BackwardTOFMod2_x1/2.0" x2="BackwardTOFMod2_x2/2.0" z="BackwardTOFMod2_y/2"/>
-          <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/>
-          <module_component thickness="TOFEndcapService_thickness" material="Silicon"/>
+        <module name="BackwardModule" vis="TOFModuleVis">
+          <trd x1="BackwardTOFMod_x1/2.0" x2="BackwardTOFMod_x2/2.0" z="BackwardTOFMod_y/2"/>
+          <comment> TRDs are built back-to-front </comment>
+          <module_component thickness="TOFEndcapService_thickness" material="Silicon" vis="TOFVis"/>
+          <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true" vis="TOFSensorVis"/>
         </module>
         <layer id="1">
-          <envelope  vis="TOFVis"
-            rmin="BackwardTOF_rmin1 + 0 * 1.2*cm"
-            rmax="BackwardTOF_rmax1"
-            length="BackwardTOF_thickness"
-            zstart="BackwardTOF_zmin" />
-          <ring vis="TOFVis"
-            r="BackwardTOF_rmin1+BackwardTOFMod1_y/2.0"
-            zstart="0.0*mm"
-            nmodules="12" dz="2.5 * mm" module="Module1" />
+          <envelope  vis="TOFLayerVis"
+            rmin="BackwardTOFLayer_rmin"
+            rmax="BackwardTOFLayer_rmax"
+            length="TOFEndcapLayer_thickness"
+            zstart="BackwardTOFLayer1_zmin" />
+          <ring 
+            r="BackwardTOFMod_rmin + BackwardTOFMod_y/2.0"
+            zstart="0"
+            nmodules="TOFEndcapMod_count" 
+            dz="TOFEndcapMod_dz" 
+            module="BackwardModule" />
         </layer>
         <layer id="2">
-          <envelope  vis="TOFVis"
-            rmin="BackwardTOF_rmin2"
-            rmax="BackwardTOF_rmax2"
-            length="BackwardTOF_thickness"
-            zstart="BackwardTOF_zmin + BackwardTOF_dz" />
-          <ring vis="TOFVis"
-            r="BackwardTOF_rmin2+BackwardTOFMod2_y/2.0"
-            zstart="0.0*mm"
-            nmodules="12" dz="2.5 * mm" module="Module2" />
+          <envelope  vis="TOFLayerVis"
+            rmin="BackwardTOFLayer_rmin"
+            rmax="BackwardTOFLayer_rmax"
+            length="TOFEndcapLayer_thickness"
+            zstart="BackwardTOFLayer2_zmin" />
+          <ring 
+            r="BackwardTOFMod_rmin + BackwardTOFMod_y/2.0"
+            zstart="0"
+            nmodules="TOFEndcapMod_count" 
+            dz="TOFEndcapMod_dz" 
+            module="BackwardModule" />
         </layer>
       </detector>
   </detectors>
-  
+
   <readouts>
     <readout name="TOFEndcapHits">
-      <segmentation type="CartesianGridXZ" grid_size_x="0.20*mm" grid_size_z="0.20*mm" />
+      <segmentation type="CartesianGridXZ" grid_size_x="50*um" grid_size_z="50*um" />
       <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
     </readout>
   </readouts>
diff --git a/compact/tracking_config_deathvalley.xml b/compact/tracking_config_deathvalley.xml
new file mode 100644
index 00000000..bd6d93ed
--- /dev/null
+++ b/compact/tracking_config_deathvalley.xml
@@ -0,0 +1,112 @@
+<lccdd>
+
+  <display>
+  </display>
+  <define>
+  </define>
+
+  <documentation level="10">
+    ### Silicon tracking configuration
+  </documentation>
+
+  <documentation level="5">
+      ### Tracker subassemblies for ACTS
+  </documentation>
+  <detectors>
+    <detector id="VertexSubAssembly_0_ID"
+      name="VertexBarrelSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="VertexBarrel" />
+    </detector>
+    <detector id="TrackerSubAssembly_0_ID"
+      name="InnerTrackerSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="InnerTrackerEndcapN"/>
+      <composite name="InnerTrackerBarrel"/>
+      <composite name="InnerTrackerEndcapP"/>
+    </detector>
+    <detector id="TrackerSubAssembly_1_ID"
+      name="MedialTrackerSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="MedialTrackerEndcapN"/>
+      <composite name="MedialTrackerCompositeBarrel"/>
+      <composite name="MedialTrackerEndcapP"/>
+    </detector>
+    <detector id="TrackerSubAssembly_2_ID"
+      name="OuterTrackerSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="OuterTrackerCompositeEndcapN"/>
+      <composite name="OuterTrackerBarrel"/>
+      <composite name="OuterTrackerCompositeEndcapP"/>
+    </detector>
+    <!--
+    <detector id="TrackerSubAssembly_3_ID"
+      name="EcalBarrelSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+    </detector>
+    -->
+    <detector id="TrackerSubAssembly_4_ID"
+      name="ForwardBackwardTrackerSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="ForwardGEM"/>
+      <composite name="BackwardNullTracker"/>
+    </detector>
+    <detector id="TrackerCompositeBarrel_0_ID"
+      name="MedialTrackerCompositeBarrel"
+      type="athena_CompositeTracker"
+      actsType="barrel"
+      vis="TrackerSubAssemblyVis">
+      <position x="0*cm" y="0*cm" z="0*um" />
+      <composite name="MedialTrackerBarrel"/>
+      <composite name="BarrelTOF"/>
+    </detector>
+    <detector id="TrackerCompositeEndcapN_0_ID"
+      name="OuterTrackerCompositeEndcapN"
+      type="athena_CompositeTracker"
+      actsType="endcap"
+      vis="TrackerSubAssemblyVis">
+      <position x="0*cm" y="0*cm" z="-1*um" />
+      <composite name="OuterTrackerEndcapN"/>
+      <composite name="GEMEndcapN"/>
+    </detector>
+    <detector id="TrackerCompositeEndcapP_0_ID"
+      name="OuterTrackerCompositeEndcapP"
+      type="athena_CompositeTracker"
+      actsType="endcap"
+      vis="TrackerSubAssemblyVis">
+      <position x="0*cm" y="0*cm" z="0*cm" />
+      <composite name="OuterTrackerEndcapP"/>
+      <composite name="GEMEndcapP"/>
+    </detector>
+    <detector id="TrackerCompositeEndcapN_1_ID"
+      name="BackwardNullTracker"
+      type="athena_CompositeTracker"
+      actsType="endcap"
+      vis="TrackerSubAssemblyVis">
+      <position x="0*cm" y="0*cm" z="-1*um" />
+    </detector>
+
+  </detectors>
+
+  <documentation>
+      ### Material map for ACTS
+      https://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/127
+  </documentation>
+  <plugins>
+    <plugin name="FileLoader">
+      <arg value="file:calibrations/materials-map.cbor"/>
+      <arg value="url:https://eicweb.phy.anl.gov/EIC/detectors/athena/uploads/4a4e7c8eb6089b634d762d112c89bd5d/material-maps.cbor"/>
+    </plugin>
+  </plugins>
+
+  <include ref="vertex_tracker_3layers.xml"/>
+  <include ref="central_tracker_hybrid_v2.xml"/>
+
+</lccdd>
+
diff --git a/src/BarrelTrackerWithFrame_geo.cpp b/src/BarrelTrackerWithFrame_geo.cpp
index 0642d443..64210bc5 100644
--- a/src/BarrelTrackerWithFrame_geo.cpp
+++ b/src/BarrelTrackerWithFrame_geo.cpp
@@ -166,24 +166,26 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi
     double thickness_so_far = 0.0;
     double thickness_sum = -total_thickness/2.0;
     for (xml_coll_t ci(x_mod, _U(module_component)); ci; ++ci, ++ncomponents) {
-      xml_comp_t x_comp = ci;
-      xml_comp_t x_pos  = x_comp.position(false);
-      xml_comp_t x_rot  = x_comp.rotation(false);
-      string     c_nam  = _toString(ncomponents, "component%d");
-      Box        c_box(x_comp.width() / 2, x_comp.length() / 2, x_comp.thickness() / 2);
-      Volume     c_vol(c_nam, c_box, description.material(x_comp.materialStr()));
-
+      xml_comp_t   x_comp = ci;
+      xml_comp_t   x_pos  = x_comp.position(false);
+      xml_comp_t   x_rot  = x_comp.rotation(false);
+      const string c_nam  = _toString(ncomponents, "component%d");
+      Box          c_box(x_comp.width() / 2, x_comp.length() / 2, x_comp.thickness() / 2);
+      Volume       c_vol(c_nam, c_box, description.material(x_comp.materialStr()));
+
+      // Utility variable for the relative z-offset based off the previous components
+      const double zoff = thickness_sum+x_comp.thickness() / 2.0;
       if (x_pos && x_rot) {
-        Position c_pos(x_pos.x(0), x_pos.y(0), x_pos.z(0));
+        Position c_pos(x_pos.x(0), x_pos.y(0), x_pos.z(0) + zoff);
         RotationZYX c_rot(x_rot.z(0), x_rot.y(0), x_rot.x(0));
         pv = m_vol.placeVolume(c_vol, Transform3D(c_rot, c_pos));
       } else if (x_rot) {
-        Position c_pos(0, 0, thickness_sum + x_comp.thickness() / 2.0);
-        pv = m_vol.placeVolume(c_vol, Transform3D(RotationZYX(x_rot.z(0), x_rot.y(0), x_rot.x(0)),c_pos));
+        Position c_pos(0, 0, zoff);
+        pv = m_vol.placeVolume(c_vol, Transform3D(RotationZYX(x_rot.z(0), x_rot.y(0), x_rot.x(0)), c_pos));
       } else if (x_pos) {
-        pv = m_vol.placeVolume(c_vol, Position(x_pos.x(0), x_pos.y(0), x_pos.z(0)));
+        pv = m_vol.placeVolume(c_vol, Position(x_pos.x(0), x_pos.y(0), x_pos.z(0) + zoff));
       } else {
-        pv = m_vol.placeVolume(c_vol, Position(0,0,thickness_sum+x_comp.thickness()/2.0));
+        pv = m_vol.placeVolume(c_vol, Position(0, 0, zoff));
       }
       c_vol.setRegion(description, x_comp.regionStr());
       c_vol.setLimitSet(description, x_comp.limitsStr());
@@ -217,6 +219,11 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi
       }
       thickness_sum += x_comp.thickness();
       thickness_so_far += x_comp.thickness();
+      // apply relative offsets in z-position used to stack components side-by-side
+      if (x_pos) {
+        thickness_sum += x_pos.z(0);
+        thickness_so_far += x_pos.z(0);
+      }
     }
   }
 
@@ -341,3 +348,4 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi
 DECLARE_DETELEMENT(BarrelTrackerWithFrame, create_BarrelTrackerWithFrame)
 DECLARE_DETELEMENT(athena_TrackerBarrel,   create_BarrelTrackerWithFrame)
 DECLARE_DETELEMENT(athena_VertexBarrel,    create_BarrelTrackerWithFrame)
+DECLARE_DETELEMENT(athena_TOFBarrel,       create_BarrelTrackerWithFrame)
-- 
GitLab