diff --git a/.gitignore b/.gitignore
index b00218754ba48c9d0aa8ac9851d15e65e9da9129..96a61480e4e3cbb4d1cda1cc90743187155d5772 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,5 @@ ip6
 fieldmaps
 
 manifest.txt
+acts.txt
+acts2.txt
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 78f7d6009d5951e3830f0e0840a8cb134551b6ae..c650eaaf0cdda579bcf4bd1c1a719eb016f1d9f7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -141,11 +141,11 @@ dump_geometry:
     ## print some useful output
     - |
       echo "Geometry viewer at:"
-      echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&"
+      echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&"
       for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do
         geo_name=`basename $xml .xml`_geo.root
         echo " - Subsystem view for `basename $xml .xml` at:"
-        echo "   https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/${geo_name}?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&"
+        echo "   https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/${geo_name}?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&"
       done
 
 detector_documentation:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f58365aa273b8423e09e0fec4ab38b948db57f0..6f12b924f5e359549ad5ac730aa25f40ee8c0880 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,7 @@ dd4hep_add_plugin(${a_lib_name} SOURCES
   src/BarrelCalorimeterHybrid_geo.cpp
   src/BarrelCalorimeterInterlayers_geo.cpp
   src/BarrelTrackerWithFrame_geo.cpp
+  src/CompositeTracker_geo.cpp
   src/CylinderTrackerBarrel_geo.cpp
   src/DIRC_geo.cpp
   src/DRich_geo.cpp
diff --git a/athena.xml b/athena.xml
index 8ef1ae0c3f4fa1065b55f169d27ed1ccdccc57fd..3c59a1e865118732a60bbb911aaf68d3cc4bb31d 100644
--- a/athena.xml
+++ b/athena.xml
@@ -102,81 +102,18 @@
   </documentation>
   <include ref="compact/solenoid.xml"/>
 
-  <documentation level="5">
-      ### Tracker subassemblies for ACTS
-  </documentation>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-  </detectors>
-
   <documentation level="10">
     ## Central tracking detectors
   </documentation>
 
-  <include ref="compact/tracking_config_acadia.xml"/>
-
-  <!--include ref="compact/tracking_config_mgpds.xml"/-->
+  <!--include ref="compact/tracking_config_acadia.xml"/-->
+  <include ref="compact/tracking_config_canyonlands.xml"/>
 
   <documentation level="10">
   ### PID detectors
   </documentation>
-  <include ref="compact/pid_config_acadia.xml" />
+  <!--include ref="compact/pid_config_acadia.xml" /-->
+  <include ref="compact/pid_config_canyonlands.xml" />
 
   <documentation level="10">
   ## Central calorimetry
@@ -184,7 +121,6 @@
   <include ref="compact/ecal.xml"/>
   <include ref="compact/hcal.xml"/>
 
-
   <documentation level="11">
   ## Far foward detectors
   </documentation>
diff --git a/compact/central_tracker.xml b/compact/central_tracker.xml
index 4170a378454e626152be570ba38424c944c3a31a..d2ec6ce400505656ae92af69a8a811b66d0220eb 100644
--- a/compact/central_tracker.xml
+++ b/compact/central_tracker.xml
@@ -27,6 +27,10 @@ total X0 0.24% per disk layer (4 sectors per disk):
   </documentation>
 
   <define>
+    <constant name="CentralTrackerSensor_thickness"      value="40*um"/>
+    <constant name="TrackerCarbon_thickness"         value="0.12*mm"/> 
+    <constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/> 
+
     <comment>
       Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
       TrackerBarrelSpaceFrame_height must be smaller than {_rmin2 - _rmin1 - Layer_rOffset - 1mm - stave_thickness}
@@ -35,7 +39,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     <constant name="TrackerBarrelLayer_rOffset"     value="0.5*cm"/>
     <constant name="TrackerBarrelSpaceFrame_width"  value="4.0*cm"/>
     <constant name="TrackerBarrelSpaceFrame_height" value="1.0*cm"/>
-    <constant name="TrackerSensor_thickness"        value="ITS3Thickness"/> 
+    <constant name="TrackerSensor_thickness"        value="CentralTrackerSensor_thickness"/> 
 
     <constant name="TrackerBarrelInner_rmin1"       value="21.0*cm"/>    
     <constant name="TrackerBarrelInner_rmin2"       value="22.68*cm"/>
@@ -155,7 +159,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     </comment>
 
     <detector
-      id="TrackerBarrel_Inner_ID"
+      id="TrackerBarrel_0_ID"
       name="TrackerBarrel_Inner"
       type="athena_TrackerBarrel"
       readout="TrackerBarrelHits"
@@ -219,7 +223,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     </detector>
 
     <detector
-      id="TrackerEndcapP_Inner_ID"
+      id="TrackerEndcapP_0_ID"
       name="TrackerEndcapP_Inner"
       type="athena_TrapEndcapTracker"
       readout="TrackerEndcapHits"
@@ -241,7 +245,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
@@ -260,7 +264,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     </detector>
 
     <detector
-      id="TrackerEndcapN_Inner_ID"
+      id="TrackerEndcapN_0_ID"
       name="TrackerEndcapN_Inner"
       type="athena_TrapEndcapTracker"
       readout="TrackerEndcapHits"
@@ -282,7 +286,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
         <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
@@ -306,7 +310,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
       -----------------------------------
     </comment>
     <detector
-      id="TrackerBarrel_Outer_ID"
+      id="TrackerBarrel_1_ID"
       name="TrackerBarrel_Outer"
       type="athena_TrackerBarrel"
       readout="TrackerBarrelHits"
@@ -370,7 +374,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     </detector>
 
     <detector
-      id="TrackerEndcapP_Outer_ID"
+      id="TrackerEndcapP_1_ID"
       name="TrackerEndcapP_Outer"
       type="athena_TrapEndcapTracker"
       readout="TrackerEndcapHits"
@@ -399,19 +403,19 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <module name="Module2" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <module name="Module3" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
@@ -454,7 +458,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
     </detector>
 
     <detector
-      id="TrackerEndcapN_Outer_ID"
+      id="TrackerEndcapN_1_ID"
       name="TrackerEndcapN_Outer"
       type="athena_TrapEndcapTracker"
       readout="TrackerEndcapHits"
@@ -485,19 +489,19 @@ total X0 0.24% per disk layer (4 sectors per disk):
 
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <module name="Module2" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <module name="Module3" vis="AnlProcess_Blue">
         <trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
-        <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
+        <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
        <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
         <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
       </module>
diff --git a/compact/central_tracker_hybrid_v2.xml b/compact/central_tracker_hybrid_v2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..76e2f935b0926171ac1f9c5c18c39c20eccdc9ae
--- /dev/null
+++ b/compact/central_tracker_hybrid_v2.xml
@@ -0,0 +1,1387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lccdd>
+  <comment>
+    Master tracker parameters
+  </comment>
+  <define>
+    <comment> Main diagonal direction for barrel/endcap transitions </comment>
+    <constant name="TrackerMainDiagonal_tantheta"           value="Eta1_1_tantheta"/>
+
+    <comment> Outer tracker endcap radial limits (somewhat adjusted in the parametrization).</comment>
+    <constant name="TrackerEndcapP_tanthetamax"             value="Eta3_8_tantheta"/>
+    <constant name="TrackerEndcapN_tanthetamax"             value="Eta4_0_tantheta"/>
+    <constant name="TrackerForward_tanthetamax"             value="Eta3_5_tantheta"/>
+
+    <comment> Inner tracker setup </comment>
+    <constant name="InnerTrackerBarrel_rmin"                value="13.38*cm"/>
+    <constant name="InnerTrackerBarrel_offset"              value="4.62*cm"/>
+    <constant name="InnerTrackerBarrel_count"               value="2"/>
+    <constant name="InnerTrackerBarrelMod_width"            value="4.*cm"/>
+    <constant name="InnerTrackerBarrelCone_zmin"            value="16.8*cm"/>
+    <constant name="InnerTrackerBarrelCone_zmax"            value="24.54*cm"/>
+    <constant name="InnerTrackerEndcap_zmin"                value="25*cm"/>
+    <constant name="InnerTrackerEndcap_rmin"                value="Beampipe_rmax + 50*um"/>
+    <constant name="InnerTrackerEndcap_offset"              value="24*cm"/>
+    <constant name="InnerTrackerEndcap_count"               value="2"/>
+
+    <comment> Medial tracker setup </comment>
+    <constant name="MedialTrackerBarrel_rmin"               value="47.72*cm"/>
+    <constant name="MedialTrackerBarrel_offset"             value="1.85*cm"/>
+    <constant name="MedialTrackerBarrel_count"              value="2"/>
+    <constant name="MedialTrackerEndcap_zmin"               value="73*cm"/>
+    <constant name="MedialTrackerEndcap_offset"             value="0*cm"/>
+    <constant name="MedialTrackerEndcap_count"              value="1"/>
+    <constant name="MedialTrackerEndcapP_rmin"              value="Beampipe_rmax + 3*mm"/>
+    <constant name="MedialTrackerEndcapN_rmin"              value="InnerTrackerEndcap_rmin"/>
+
+    <comment> Outer tracker setup </comment>
+    <constant name="OuterTrackerBarrel_rmin"                value="75.61*cm"/>
+    <constant name="OuterTrackerBarrel_offset"              value="1.85*cm"/>
+    <constant name="OuterTrackerBarrel_count"               value="2"/>
+    <constant name="OuterTrackerEndcapP_zmin"               value="103.67*cm"/>
+    <constant name="OuterTrackerEndcapP_offset"             value="30.66*cm"/>
+    <constant name="OuterTrackerEndcapP_count"              value="3"/>
+    <constant name="OuterTrackerEndcapN_zmin"               value="109*cm"/>
+    <constant name="OuterTrackerEndcapN_offset"             value="36.00*cm"/>
+    <constant name="OuterTrackerEndcapN_count"              value="2"/>
+    
+    <comment> Gem disk setup. 
+      Note: some GEM disk z-positions are moved slightly (below in the parametrization)
+            to avoid vertical overlaps with the silicon disks (which is not allowed by ACTS).
+            @FIXME
+    </comment>
+    <constant name="GEMEndcapPDisk1_zmin"                   value="103*cm"/>
+    <constant name="GEMEndcapPDisk2_zmin"                   value="164.5"/>
+    <constant name="GEMEndcapPDisk3_zmin"                   value="ForwardTrackingRegion_zmin + 2*cm"/>
+    <constant name="GEMEndcapP_count"                       value="3"/>
+    <constant name="GEMEndcapN_zmin"                        value="103*cm"/>
+    <constant name="GEMEndcapN_offset"                      value="41.5*cm"/>
+    <constant name="GEMEndcapN_count"                       value="2"/>
+
+    <comment> Silicon tracker parameters </comment>
+    <constant name="SiTrackerBarrelSpaceFrameCF_thickness"  value="0.12*mm"/> 
+    <constant name="SiTrackerBarrelSpaceFrame_height"       value="1.0*cm"/>
+    <constant name="SiTrackerEndcapAl_thickness"            value="0.15*mm"/> 
+    <constant name="SiTrackerEndcapCF_thickness"            value="0.12*mm"/>
+    <constant name="SiTrackerEndcapMod_count"               value="36"/>
+    <constant name="SiTrackerEndcapMod_dz"                  value="0" />
+    <constant name="SiTrackerEndcapMod_overlap"             value="0"/>
+    <constant name="SiTrackerSensor_thickness"              value="40*um"/>
+    <constant name="SiTrackerCyl_rmin"                      value="43.23" />
+    <constant name="SiTrackerServiceConeAl_thickness"       value="2.5*mm" />
+    <constant name="SiTrackerServiceCylAl_thickness"        value="2.5*mm" />
+    <constant name="SiTrackerSupportConeCF_thickness"       value="2*mm" />
+    <constant name="SiTrackerSupportCylCF_thickness"        value="2*mm" />
+
+    <comment> MMGAS tracker parameters </comment>
+    <constant name="MMKaptonOverlay_thickness"              value="50*um"/>
+    <constant name="MMCuGround_thickness"                   value="1.58*um"/>
+    <constant name="MMPCB_thickness"                        value="100*um"/>
+    <constant name="MMCuStrip_thickness"                    value="12*um"/>
+    <constant name="MMKaptonStrip_thickness"                value="75*um"/>
+    <constant name="MMResistiveStrip_thickness"             value="128*um"/>
+    <constant name="MMGas_thickness"                        value="20*um"/>
+    <constant name="MMMesh_thickness"                       value="18*um"/>
+    <constant name="MMGasGap_thickness"                     value="3000*um"/>
+    <constant name="MMDriftCuElectrode_thickness"           value="5*um"/>
+    <constant name="MMDriftKapton_thickness"                value="250*um"/>
+    <constant name="MMDriftCuGround_thickness"              value="0.41*um"/>
+
+    <comment> GEM tracker parameters </comment>
+    <constant name="GEMEndcapMod_count"                     value="12"/>
+    <constant name="GEMFrame_thickness"                     value="13.0*mm"/>
+    <constant name="GEMFrameBotEdge_width"                  value="10.0*mm"/>
+    <constant name="GEMFrameTopEdge_width"                  value="50.0*mm"/>
+    <constant name="GEMFrameSideEdge_width"                 value="10.0*mm"/>
+    <constant name="GEMSpoke_thickness"                     value="1.0*mm"/>
+    <constant name="GEMSpoke_width"                         value="GEMFrameSideEdge_width"/>
+    <comment> Account for the fact that GEMs have holes, so they are not solid volumes </comment>
+    <constant name="GEMAreaFactor" value="0.80" />
+    <comment> GEM layers </comment>
+    <constant name="GEMMylar_thickness"                     value="25.0*um"/>
+    <constant name="GEMGas_thickness"                       value="2.0*mm"/>
+    <constant name="GEMDriftRegion_thickness"               value="3.0*mm"/>
+    <constant name="GEMKapton_thickness"                    value="50*um"/>
+    <constant name="GEMCuFoil_thickness"                    value="10*um"/>
+    <constant name="GEMCuElectrode_thickness"               value="5.0*um"/>
+
+  </define>
+
+  <documentation>
+    ## Inner silicon tracker barrel
+    ### Silicon Tracker
+
+#### Some references:
+
+- 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.
+- https://wiki.bnl.gov/athena/index.php/Tracking
+
+#### ITS3 sensors
+
+ITS3 sensor thickness: 
+- 40um, pixel size: 10um (segmentation)
+- total X0 0.55% per barrel layer:
+-  0.35 mm aluminum ~ 0.4% X0. 
+-  2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
+
+total X0 0.24% per disk layer (4 sectors per disk):
+  - 0.15 mm aluminum ~ 0.16% X0. 
+  - 1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
+
+  </documentation>
+  <define>
+    <constant name="InnerTrackerBarrelMod1_rmin"         value="InnerTrackerBarrel_rmin" />
+    <constant name="InnerTrackerBarrelMod2_rmin"         value="InnerTrackerBarrelMod1_rmin + 1 * InnerTrackerBarrel_offset" />
+    <constant name="InnerTrackerBarrelCone_length"       value="InnerTrackerBarrelCone_zmax - InnerTrackerBarrelCone_zmin" />
+    <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_tantheta - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
+    <constant name="InnerTrackerBarrelMod2_length"       value="2 * InnerTrackerBarrelMod2_rmin / TrackerMainDiagonal_tantheta - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> 
+    <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * TrackerMainDiagonal_tantheta" />
+    <constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
+    <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * TrackerMainDiagonal_tantheta" />
+    <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" />
+    <constant name="InnerTrackerBarrelSupportCone_rmin2" value="InnerTrackerBarrelServiceCone_rmax2" />
+    <constant name="InnerTrackerBarrelSupportCone_rmax2" value="InnerTrackerBarrelSupportCone_rmin2 + SiTrackerSupportConeCF_thickness" />
+    <constant name="InnerTrackerBarrelLayer1_length"     value="InnerTrackerBarrelMod1_length + 1*um" />
+    <constant name="InnerTrackerBarrelLayer2_length"     value="InnerTrackerBarrelMod2_length + 1*um" />
+    <constant name="InnerTrackerBarrelLayer_thickness"   value="1.1*cm" />
+    <comment> Place asymmetrically in the layer (module sits near the bottom). </comment>
+    <constant name="InnerTrackerBarrelLayer1_rmin"       value="InnerTrackerBarrelMod1_rmin - InnerTrackerBarrelLayer_thickness / 25" />
+    <constant name="InnerTrackerBarrelLayer2_rmin"       value="InnerTrackerBarrelMod2_rmin - InnerTrackerBarrelLayer_thickness / 25" />
+    <constant name="InnerTrackerBarrelLayer1_rmax"       value="InnerTrackerBarrelLayer1_rmin + InnerTrackerBarrelLayer_thickness" />
+    <constant name="InnerTrackerBarrelLayer2_rmax"       value="InnerTrackerBarrelLayer2_rmin + InnerTrackerBarrelLayer_thickness" />
+    <constant name="InnerTrackerBarrelEnvelope_length"   value="2 * InnerTrackerBarrelCone_zmax" />
+    <constant name="InnerTrackerBarrelEnvelope_rmin"     value="VertexTrackingRegion_rmax" />
+    <constant name="InnerTrackerBarrelEnvelope_rmax"     value="InnerTrackerBarrelLayer2_rmax" />
+    <comment> Barrel staves, nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment>
+    <comment> (rounded up by 2 to avoid holes)</comment>
+    <constant name="InnerTrackerBarrelModTilt_angle"     value="3.0*degree"/>
+    <constant name="InnerTrackerBarrelMod1_count"        value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod1_rmin))+2"/>
+    <constant name="InnerTrackerBarrelMod2_count"        value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod2_rmin))+2"/>
+  </define>
+  <detectors>
+    <detector
+      id="TrackerBarrel_0_ID"
+      name="InnerTrackerBarrel"
+      type="athena_TrackerBarrel"
+      readout="TrackerBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="InnerTrackerBarrelEnvelope_rmin"
+        rmax="InnerTrackerBarrelEnvelope_rmax" 
+        length="InnerTrackerBarrelEnvelope_length"/>
+      <support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerBarrelServiceCone_rmin1"
+          rmax1="InnerTrackerBarrelServiceCone_rmax1"
+          rmin2="InnerTrackerBarrelServiceCone_rmin2"
+          rmax2="InnerTrackerBarrelServiceCone_rmax2" 
+          z="InnerTrackerBarrelCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
+      </support>
+      <support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerBarrelSupportCone_rmin1"
+          rmax1="InnerTrackerBarrelSupportCone_rmax1"
+          rmin2="InnerTrackerBarrelSupportCone_rmin2"
+          rmax2="InnerTrackerBarrelSupportCone_rmax2" 
+          z="InnerTrackerBarrelCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
+      </support>
+      <support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerBarrelServiceCone_rmin2"
+          rmax1="InnerTrackerBarrelServiceCone_rmax2"
+          rmin2="InnerTrackerBarrelServiceCone_rmin1"
+          rmax2="InnerTrackerBarrelServiceCone_rmax1" 
+          z="InnerTrackerBarrelCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
+      </support>
+      <support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerBarrelSupportCone_rmin2"
+          rmax1="InnerTrackerBarrelSupportCone_rmax2"
+          rmin2="InnerTrackerBarrelSupportCone_rmin1"
+          rmax2="InnerTrackerBarrelSupportCone_rmax1" 
+          z="InnerTrackerBarrelCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
+      </support>
+      <comment>
+        Tracker Barrel Modules
+      </comment>
+      <module name="InnerTrackerBarrel_Mod1" vis="TrackerModuleVis">
+        <frame material="CarbonFiber" vis="TrackerSupportVis" 
+          width="InnerTrackerBarrelMod_width"  
+          height="SiTrackerBarrelSpaceFrame_height" 
+          length="InnerTrackerBarrelMod1_length"
+          thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
+        <module_component name="silicon" 
+          width="InnerTrackerBarrelMod_width"
+          length="InnerTrackerBarrelMod1_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+        <module_component name="aluminum1" material="Aluminum" sensitive="false"
+          width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod1_length" thickness="0.4*mm" vis="TrackerServiceVis"/>
+      </module>
+      <module name="InnerTrackerBarrel_Mod2" vis="TrackerModuleVis">
+        <frame material="CarbonFiber" vis="TrackerSupportVis" 
+          width="InnerTrackerBarrelMod_width"  
+          height="SiTrackerBarrelSpaceFrame_height" 
+          length="InnerTrackerBarrelMod2_length"
+          thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
+        <module_component name="silicon" 
+          width="InnerTrackerBarrelMod_width"
+          length="InnerTrackerBarrelMod2_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+        <module_component name="aluminum1" material="Aluminum" sensitive="false"
+          width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod2_length" thickness="0.4*mm" vis="TrackerServiceVis" />
+      </module>
+      <layer module="InnerTrackerBarrel_Mod1" id="1" vis="TrackerLayerVis">
+        <barrel_envelope
+          inner_r="InnerTrackerBarrelLayer1_rmin"
+          outer_r="InnerTrackerBarrelLayer1_rmax"
+          z_length="InnerTrackerBarrelLayer1_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod1_count" bins1="100" />
+        <rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod1_count" phi0="0.0" rc="InnerTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="InnerTrackerBarrel_Mod2" id="2" vis="TrackerLayerVis">
+        <barrel_envelope
+          inner_r="InnerTrackerBarrelLayer2_rmin"
+          outer_r="InnerTrackerBarrelLayer2_rmax"
+          z_length="InnerTrackerBarrelLayer2_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod2_count" bins1="100" />
+        <rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod2_count" phi0="0.0" rc="InnerTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## Inner silicon tracker disks, symmetric between N and P
+  </documentation>
+  <define>
+    <comment> Global Si endcap variables </comment>
+    <constant name="SiTrackerEndcapMod_thickness"   value="SiTrackerEndcapCF_thickness + SiTrackerEndcapAl_thickness + SiTrackerSensor_thickness" />
+    <constant name="SiTrackerEndcapMod_angle"       value="360.0*degree / SiTrackerEndcapMod_count * (1 + SiTrackerEndcapMod_overlap)" />
+    <constant name="SiTrackerEndcapLayer_thickness" value="SiTrackerEndcapMod_thickness + 2 * SiTrackerEndcapMod_dz + 1*um" />
+    <constant name="SiTrackerServiceCyl_rmin" value="SiTrackerCyl_rmin"/>
+    <constant name="SiTrackerServiceCyl_rmax" value="SiTrackerServiceCyl_rmin + SiTrackerServiceCylAl_thickness"/>
+    <constant name="SiTrackerSupportCyl_rmin" value="SiTrackerServiceCyl_rmax"/>
+    <constant name="SiTrackerSupportCyl_rmax" value="SiTrackerSupportCyl_rmin + SiTrackerSupportCylCF_thickness"/>
+
+    <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_tantheta * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="InnerTrackerEndcapMod1_x1"    value="2 * InnerTrackerEndcapMod1_rmin * sin(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_tantheta * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="InnerTrackerEndcapMod2_x1"    value="2 * InnerTrackerEndcapMod2_rmin * sin(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" />
+
+    <constant name="InnerTrackerEndcapLayer1_rmin"        value="InnerTrackerEndcapMod1_rmin - 1*um" />
+    <constant name="InnerTrackerEndcapLayer1_rmax"        value="InnerTrackerEndcapMod1_rmax + 1*um" />
+    <constant name="InnerTrackerEndcapLayer1_zmin"        value="InnerTrackerEndcapMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
+    <constant name="InnerTrackerEndcapLayer2_rmin"        value="InnerTrackerEndcapMod2_rmin - 1*um" />
+    <constant name="InnerTrackerEndcapLayer2_rmax"        value="InnerTrackerEndcapMod2_rmax + 1*um" />
+    <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_tantheta" />
+    <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_tantheta" />
+    <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" />
+    <constant name="InnerTrackerEndcapSupportCone_rmax1"  value="InnerTrackerEndcapSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
+    <constant name="InnerTrackerEndcapSupportCone_rmin2"  value="SiTrackerSupportCyl_rmin" />
+    <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_tantheta" />
+    <constant name="InnerTrackerEndcapCyl_zmin"           value="InnerTrackerEndcapCone_zmax" />
+    <constant name="InnerTrackerEndcapCyl_zmax"           value="InnerTrackerEndcap_zmax" />
+    <constant name="InnerTrackerEndcapCyl_z"              value="(InnerTrackerEndcapCyl_zmin + InnerTrackerEndcapCyl_zmax)/2" />
+    <constant name="InnerTrackerEndcapCyl_length"         value="InnerTrackerEndcapCyl_zmax - InnerTrackerEndcapCyl_zmin" />
+
+  </define>
+  <detectors>
+    <detector
+      id="TrackerEndcapP_0_ID"
+      name="InnerTrackerEndcapP"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="false">
+      <support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerEndcapServiceCone_rmin1"
+          rmax1="InnerTrackerEndcapServiceCone_rmax1"
+          rmin2="InnerTrackerEndcapServiceCone_rmin2"
+          rmax2="InnerTrackerEndcapServiceCone_rmax2" 
+          z="InnerTrackerEndcapCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
+      </support>
+      <support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerEndcapSupportCone_rmin1"
+          rmax1="InnerTrackerEndcapSupportCone_rmax1"
+          rmin2="InnerTrackerEndcapSupportCone_rmin2"
+          rmax2="InnerTrackerEndcapSupportCone_rmax2" 
+          z="InnerTrackerEndcapCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
+      </support>
+      <support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="InnerTrackerEndcapCyl_length"
+          zstart="InnerTrackerEndcapCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="InnerTrackerEndcapCyl_length"
+          zstart="InnerTrackerEndcapCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <module name="Module2" vis="TrackerModuleVis">
+        <trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="InnerTrackerEndcapLayer1_rmin"
+          rmax="InnerTrackerEndcapLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="InnerTrackerEndcapLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="InnerTrackerEndcapLayer2_rmin"
+          rmax="InnerTrackerEndcapLayer2_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="InnerTrackerEndcapLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module2" />
+      </layer>
+    </detector>
+    <detector
+      id="TrackerEndcapN_0_ID"
+      name="InnerTrackerEndcapN"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="true">
+      <support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerEndcapServiceCone_rmin2"
+          rmax1="InnerTrackerEndcapServiceCone_rmax2"
+          rmin2="InnerTrackerEndcapServiceCone_rmin1"
+          rmax2="InnerTrackerEndcapServiceCone_rmax1" 
+          z="InnerTrackerEndcapCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
+      </support>
+      <support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
+        <shape type="Cone"
+          rmin1="InnerTrackerEndcapSupportCone_rmin2"
+          rmax1="InnerTrackerEndcapSupportCone_rmax2"
+          rmin2="InnerTrackerEndcapSupportCone_rmin1"
+          rmax2="InnerTrackerEndcapSupportCone_rmax1" 
+          z="InnerTrackerEndcapCone_length/2"/>
+        <position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
+      </support>
+      <support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="InnerTrackerEndcapCyl_length"
+          zstart="InnerTrackerEndcapCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="InnerTrackerEndcapCyl_length"
+          zstart="InnerTrackerEndcapCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <module name="Module2" vis="TrackerModuleVis">
+        <trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="InnerTrackerEndcapLayer1_rmin"
+          rmax="InnerTrackerEndcapLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="InnerTrackerEndcapLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="InnerTrackerEndcapLayer2_rmin"
+          rmax="InnerTrackerEndcapLayer2_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="InnerTrackerEndcapLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module2" />
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## Medial barrel tracker (MMGAS)
+  </documentation>
+  <define>
+    <comment> Global MMGAS variables </comment>
+    <constant 
+      name="MMTrackerBarrelMod_thickness"    
+      value="MMKaptonOverlay_thickness + MMCuGround_thickness + MMPCB_thickness
+           + MMCuStrip_thickness + MMKaptonStrip_thickness + MMResistiveStrip_thickness
+           + MMGas_thickness + MMMesh_thickness + MMGasGap_thickness 
+           + MMDriftCuElectrode_thickness + MMDriftKapton_thickness 
+           + MMDriftCuGround_thickness" />
+    <comment> Medial barrel implementation </comment>
+    <comment> The value of InnerTrackerEndcap_zmax is calculated above based on the rmin of the MedialTrackerBarrel </comment>
+    <constant name="MedialTrackerBarrel_length"           value="2 * InnerTrackerEndcap_zmax"/>
+    <constant name="MedialTrackerBarrelMod1_rmin"         value="MedialTrackerBarrel_rmin"/>
+    <constant name="MedialTrackerBarrelMod_length"        value="MedialTrackerBarrel_length - 2*um" />
+    <constant name="MedialTrackerBarrelMod2_rmin"         value="MedialTrackerBarrel_rmin + 1 * MedialTrackerBarrel_offset"/>
+    <constant name="MedialTrackerBarrelMod_count"         value="128" />
+    <constant name="MedialTrackerBarrelMod1_width"        value="2*MedialTrackerBarrelMod1_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
+    <constant name="MedialTrackerBarrelMod2_width"        value="2*MedialTrackerBarrelMod2_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
+
+    <constant name="MedialTrackerBarrelLayer_length"      value="MedialTrackerBarrel_length"/>
+    <constant name="MedialTrackerBarrelLayer_thickness"   value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
+    <constant name="MedialTrackerBarrelLayer1_rmin"       value="MedialTrackerBarrelMod1_rmin - MedialTrackerBarrelLayer_thickness / 5" />
+    <constant name="MedialTrackerBarrelLayer1_rmax"       value="MedialTrackerBarrelLayer1_rmin + MedialTrackerBarrelLayer_thickness" />
+    <constant name="MedialTrackerBarrelLayer2_rmin"       value="MedialTrackerBarrelMod2_rmin - MedialTrackerBarrelLayer_thickness / 5" />
+    <constant name="MedialTrackerBarrelLayer2_rmax"       value="MedialTrackerBarrelLayer2_rmin + MedialTrackerBarrelLayer_thickness" />
+
+    <constant name="MedialTrackerBarrelEnvelope_rmin"   value="MedialTrackerBarrelLayer1_rmin" />
+    <constant name="MedialTrackerBarrelEnvelope_rmax"   value="MedialTrackerBarrelLayer2_rmax" />
+    <constant name="MedialTrackerBarrelEnvelope_length" value="MedialTrackerBarrelLayer_length" />
+  </define>
+  <detectors>
+    <detector
+      id="TrackerBarrel_1_ID"
+      name="MedialTrackerBarrel"
+      type="athena_TrackerBarrel"
+      readout="MPGDTrackerBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="MedialTrackerBarrelEnvelope_rmin"
+        rmax="MedialTrackerBarrelEnvelope_rmax" 
+        length="MedialTrackerBarrelEnvelope_length"/>
+      <module name="MedialTrackerBarrel_Mod1" vis="TrackerMPGDVis">
+        <comment> Going from the inside (sensitive) side to the readout side </comment>
+        <module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
+      </module>
+      <module name="MedialTrackerBarrel_Mod2" vis="TrackerMPGDVis">
+        <comment> Going from the inside (sensitive) side to the readout side </comment>
+        <module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+        <module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
+      </module>
+      <layer module="MedialTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
+        <barrel_envelope
+          inner_r="MedialTrackerBarrelLayer1_rmin"
+          outer_r="MedialTrackerBarrelLayer1_rmax"
+          z_length="MedialTrackerBarrelLayer_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
+        <rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="MedialTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
+        <barrel_envelope
+          inner_r="MedialTrackerBarrelLayer2_rmin"
+          outer_r="MedialTrackerBarrelLayer2_rmax"
+          z_length="MedialTrackerBarrelLayer_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
+        <rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## Medial silicon tracker disks (1 each), symmetric between N and P except for disk rmin
+  </documentation>
+  <define>
+    <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_tantheta * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="MedialTrackerEndcapPMod1_x1"    value="2 * MedialTrackerEndcapPMod1_rmin * sin(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" />
+
+    <constant name="MedialTrackerEndcapPLayer1_rmin"  value="MedialTrackerEndcapPMod1_rmin - 1*um" />
+    <constant name="MedialTrackerEndcapPLayer1_rmax"  value="MedialTrackerEndcapPMod1_rmax + 1*um" />
+    <constant name="MedialTrackerEndcapPLayer1_zmin"  value="MedialTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <constant name="MedialTrackerEndcapNMod1_zmin"  value="MedialTrackerEndcap_zmin" />
+    <constant name="MedialTrackerEndcapNMod1_rmin"  value="MedialTrackerEndcapN_rmin" />
+    <constant name="MedialTrackerEndcapNMod1_rmax"  value="min(MedialTrackerEndcapNMod1_zmin * TrackerMainDiagonal_tantheta * 0.995, SiTrackerCyl_rmin)" />
+    <constant name="MedialTrackerEndcapNMod1_x1"    value="2 * MedialTrackerEndcapNMod1_rmin * sin(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" />
+
+    <constant name="MedialTrackerEndcapNLayer1_rmin"  value="MedialTrackerEndcapNMod1_rmin - 1*um" />
+    <constant name="MedialTrackerEndcapNLayer1_rmax"  value="MedialTrackerEndcapNMod1_rmax + 1*um" />
+    <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_tantheta" />
+    <constant name="MedialTrackerEndcapCyl_zmin"           value="InnerTrackerEndcap_zmax" />
+    <constant name="MedialTrackerEndcapCyl_zmax"           value="MedialTrackerEndcap_zmax" />
+    <constant name="MedialTrackerEndcapCyl_z"              value="(MedialTrackerEndcapCyl_zmin + MedialTrackerEndcapCyl_zmax)/2" />
+    <constant name="MedialTrackerEndcapCyl_length"         value="MedialTrackerEndcapCyl_zmax - MedialTrackerEndcapCyl_zmin" />
+
+  </define>
+  <detectors>
+    <detector
+      id="TrackerEndcapP_1_ID"
+      name="MedialTrackerEndcapP"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="false">
+      <support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="MedialTrackerEndcapCyl_length"
+          zstart="MedialTrackerEndcapCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="MedialTrackerEndcapCyl_length"
+          zstart="MedialTrackerEndcapCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="MedialTrackerEndcapPMod1_x1/2" x2="MedialTrackerEndcapPMod1_x2/2" z="MedialTrackerEndcapPMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="MedialTrackerEndcapPLayer1_rmin"
+          rmax="MedialTrackerEndcapPLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="MedialTrackerEndcapPLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="MedialTrackerEndcapPMod1_rmin + MedialTrackerEndcapPMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+    </detector>
+    <detector
+      id="TrackerEndcapN_1_ID"
+      name="MedialTrackerEndcapN"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="true">
+      <support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="MedialTrackerEndcapCyl_length"
+          zstart="MedialTrackerEndcapCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="MedialTrackerEndcapCyl_length"
+          zstart="MedialTrackerEndcapCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="MedialTrackerEndcapNMod1_x1/2" x2="MedialTrackerEndcapNMod1_x2/2" z="MedialTrackerEndcapNMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="MedialTrackerEndcapNLayer1_rmin"
+          rmax="MedialTrackerEndcapNLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="MedialTrackerEndcapNLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="MedialTrackerEndcapNMod1_rmin + MedialTrackerEndcapNMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## Outer barrel tracker (MMGAS)
+  </documentation>
+  <define>
+    <comment> The value of MedialTrackerEndcap_zmax is calculated above based on the rmin of the OuterTrackerBarrel </comment>
+    <constant name="OuterTrackerBarrel_length"            value="2 * MedialTrackerEndcap_zmax"/>
+    <constant name="OuterTrackerBarrelMod1_rmin"          value="OuterTrackerBarrel_rmin"/>
+    <constant name="OuterTrackerBarrelMod_length"         value="OuterTrackerBarrel_length - 2*um" />
+    <constant name="OuterTrackerBarrelMod2_rmin"          value="OuterTrackerBarrel_rmin + 1 * OuterTrackerBarrel_offset"/>
+    <constant name="OuterTrackerBarrelMod_count"          value="128" />
+    <constant name="OuterTrackerBarrelMod1_width"         value="2*OuterTrackerBarrelMod1_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
+    <constant name="OuterTrackerBarrelMod2_width"         value="2*OuterTrackerBarrelMod2_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
+
+    <constant name="OuterTrackerBarrelLayer_length"       value="OuterTrackerBarrel_length"/>
+    <constant name="OuterTrackerBarrelLayer_thickness"    value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
+    <constant name="OuterTrackerBarrelLayer1_rmin"        value="OuterTrackerBarrelMod1_rmin - OuterTrackerBarrelLayer_thickness / 5" />
+    <constant name="OuterTrackerBarrelLayer1_rmax"        value="OuterTrackerBarrelLayer1_rmin + OuterTrackerBarrelLayer_thickness" />
+    <constant name="OuterTrackerBarrelLayer2_rmin"        value="OuterTrackerBarrelMod2_rmin - OuterTrackerBarrelLayer_thickness / 5" />
+    <constant name="OuterTrackerBarrelLayer2_rmax"        value="OuterTrackerBarrelLayer2_rmin + OuterTrackerBarrelLayer_thickness" />
+
+    <constant name="OuterTrackerBarrelEnvelope_rmin"    value="OuterTrackerBarrelLayer1_rmin" />
+    <constant name="OuterTrackerBarrelEnvelope_rmax"    value="OuterTrackerBarrelLayer2_rmax" />
+    <constant name="OuterTrackerBarrelEnvelope_length"  value="OuterTrackerBarrelLayer_length" />
+  </define>
+  <detectors>
+    <detector
+      id="TrackerBarrel_2_ID"
+      name="OuterTrackerBarrel"
+      type="athena_TrackerBarrel"
+      readout="MPGDTrackerBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="OuterTrackerBarrelEnvelope_rmin"
+        rmax="OuterTrackerBarrelEnvelope_rmax" 
+        length="OuterTrackerBarrelEnvelope_length"/>
+      <module name="OuterTrackerBarrel_Mod1" vis="TrackerMPGDVis">
+        <comment> Going from the inside (sensitive) side to the readout side </comment>
+        <module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
+      </module>
+      <module name="OuterTrackerBarrel_Mod2" vis="TrackerMPGDVis">
+        <comment> Going from the inside (sensitive) side to the readout side </comment>
+        <module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+        <module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
+      </module>
+      <layer module="OuterTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
+        <barrel_envelope
+          inner_r="OuterTrackerBarrelLayer1_rmin"
+          outer_r="OuterTrackerBarrelLayer1_rmax"
+          z_length="OuterTrackerBarrelLayer_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
+        <rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="OuterTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
+        <barrel_envelope
+          inner_r="OuterTrackerBarrelLayer2_rmin"
+          outer_r="OuterTrackerBarrelLayer2_rmax"
+          z_length="OuterTrackerBarrelLayer_length"/>
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
+        <rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## Outer silicon tracker disks (3P, 2N)
+  </documentation>
+  <define>
+    <comment> Positive disks </comment>
+    <constant name="OuterTrackerEndcapPMod1_zmin" value="OuterTrackerEndcapP_zmin" />
+    <constant name="OuterTrackerEndcapPMod1_rmin" value="OuterTrackerEndcapPMod1_zmin * TrackerEndcapP_tanthetamax * 1.07" />
+    <constant name="OuterTrackerEndcapPMod1_rmax"  value="SiTrackerCyl_rmin" />
+    <constant name="OuterTrackerEndcapPMod1_x1"    value="2 * OuterTrackerEndcapPMod1_rmin * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod1_x2"    value="2 * OuterTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod1_y"     value="OuterTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod1_rmin" />
+    <constant name="OuterTrackerEndcapPLayer1_rmin"  value="OuterTrackerEndcapPMod1_rmin - 1*um" />
+    <constant name="OuterTrackerEndcapPLayer1_rmax"  value="OuterTrackerEndcapPMod1_rmax + 1*um" />
+    <constant name="OuterTrackerEndcapPLayer1_zmin"  value="OuterTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <constant name="OuterTrackerEndcapPMod2_zmin" value="OuterTrackerEndcapP_zmin + 1 * OuterTrackerEndcapP_offset" />
+    <constant name="OuterTrackerEndcapPMod2_rmin" value="OuterTrackerEndcapPMod2_zmin * TrackerEndcapP_tanthetamax * 1.08" />
+    <constant name="OuterTrackerEndcapPMod2_rmax"  value="SiTrackerCyl_rmin" />
+    <constant name="OuterTrackerEndcapPMod2_x1"    value="2 * OuterTrackerEndcapPMod2_rmin * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod2_x2"    value="2 * OuterTrackerEndcapPMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod2_y"     value="OuterTrackerEndcapPMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod2_rmin" />
+    <constant name="OuterTrackerEndcapPLayer2_rmin"  value="OuterTrackerEndcapPMod2_rmin - 1*um" />
+    <constant name="OuterTrackerEndcapPLayer2_rmax"  value="OuterTrackerEndcapPMod2_rmax + 1*um" />
+    <constant name="OuterTrackerEndcapPLayer2_zmin"  value="OuterTrackerEndcapPMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <constant name="OuterTrackerEndcapPMod3_zmin" value="OuterTrackerEndcapP_zmin + 2 * OuterTrackerEndcapP_offset" />
+    <constant name="OuterTrackerEndcapPMod3_rmin" value="OuterTrackerEndcapPMod3_zmin * TrackerEndcapP_tanthetamax * 1.09" />
+    <constant name="OuterTrackerEndcapPMod3_rmax"  value="SiTrackerCyl_rmin" />
+    <constant name="OuterTrackerEndcapPMod3_x1"    value="2 * OuterTrackerEndcapPMod3_rmin * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod3_x2"    value="2 * OuterTrackerEndcapPMod3_rmax * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapPMod3_y"     value="OuterTrackerEndcapPMod3_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod3_rmin" />
+    <constant name="OuterTrackerEndcapPLayer3_rmin"  value="OuterTrackerEndcapPMod3_rmin - 1*um" />
+    <constant name="OuterTrackerEndcapPLayer3_rmax"  value="OuterTrackerEndcapPMod3_rmax + 1*um" />
+    <constant name="OuterTrackerEndcapPLayer3_zmin"  value="OuterTrackerEndcapPMod3_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <comment> The Si tracker endcap ends at position of the last disk </comment>
+    <constant name="OuterTrackerEndcapP_zmax"             value="OuterTrackerEndcapPLayer3_zmin + SiTrackerEndcapLayer_thickness" />
+    <constant name="OuterTrackerEndcapPCyl_zmin"           value="MedialTrackerEndcap_zmax" />
+    <constant name="OuterTrackerEndcapPCyl_zmax"           value="OuterTrackerEndcapP_zmax" />
+    <constant name="OuterTrackerEndcapPCyl_z"              value="(OuterTrackerEndcapPCyl_zmin + OuterTrackerEndcapPCyl_zmax)/2" />
+    <constant name="OuterTrackerEndcapPCyl_length"         value="OuterTrackerEndcapPCyl_zmax - OuterTrackerEndcapPCyl_zmin" />
+
+    <comment> Negative disks </comment>
+    <constant name="OuterTrackerEndcapNMod1_zmin" value="OuterTrackerEndcapN_zmin" />
+    <constant name="OuterTrackerEndcapNMod1_rmin" value="OuterTrackerEndcapNMod1_zmin * TrackerEndcapN_tanthetamax * 0.99" />
+    <constant name="OuterTrackerEndcapNMod1_rmax"  value="SiTrackerCyl_rmin" />
+    <constant name="OuterTrackerEndcapNMod1_x1"    value="2 * OuterTrackerEndcapNMod1_rmin * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapNMod1_x2"    value="2 * OuterTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapNMod1_y"     value="OuterTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod1_rmin" />
+    <constant name="OuterTrackerEndcapNLayer1_rmin"  value="OuterTrackerEndcapNMod1_rmin - 1*um" />
+    <constant name="OuterTrackerEndcapNLayer1_rmax"  value="OuterTrackerEndcapNMod1_rmax + 1*um" />
+    <constant name="OuterTrackerEndcapNLayer1_zmin"  value="OuterTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <constant name="OuterTrackerEndcapNMod2_zmin" value="OuterTrackerEndcapN_zmin + 1 * OuterTrackerEndcapN_offset" />
+    <constant name="OuterTrackerEndcapNMod2_rmin" value="OuterTrackerEndcapNMod2_zmin * TrackerEndcapN_tanthetamax * 0.98" />
+    <constant name="OuterTrackerEndcapNMod2_rmax"  value="SiTrackerCyl_rmin" />
+    <constant name="OuterTrackerEndcapNMod2_x1"    value="2 * OuterTrackerEndcapNMod2_rmin * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapNMod2_x2"    value="2 * OuterTrackerEndcapNMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
+    <constant name="OuterTrackerEndcapNMod2_y"     value="OuterTrackerEndcapNMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod2_rmin" />
+    <constant name="OuterTrackerEndcapNLayer2_rmin"  value="OuterTrackerEndcapNMod2_rmin - 1*um" />
+    <constant name="OuterTrackerEndcapNLayer2_rmax"  value="OuterTrackerEndcapNMod2_rmax + 1*um" />
+    <constant name="OuterTrackerEndcapNLayer2_zmin"  value="OuterTrackerEndcapNMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
+
+    <comment> The Si tracker endcap ends at position of the last disk </comment>
+    <constant name="OuterTrackerEndcapN_zmax"             value="OuterTrackerEndcapNLayer2_zmin + SiTrackerEndcapLayer_thickness" />
+    <constant name="OuterTrackerEndcapNCyl_zmin"           value="MedialTrackerEndcap_zmax" />
+    <constant name="OuterTrackerEndcapNCyl_zmax"           value="OuterTrackerEndcapN_zmax" />
+    <constant name="OuterTrackerEndcapNCyl_z"              value="(OuterTrackerEndcapNCyl_zmin + OuterTrackerEndcapNCyl_zmax)/2" />
+    <constant name="OuterTrackerEndcapNCyl_length"         value="OuterTrackerEndcapNCyl_zmax - OuterTrackerEndcapNCyl_zmin" />
+
+  </define>
+  <detectors>
+    <detector
+      id="TrackerEndcapP_2_ID"
+      name="OuterTrackerEndcapP"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="false">
+      <support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="OuterTrackerEndcapPCyl_length"
+          zstart="OuterTrackerEndcapPCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="OuterTrackerEndcapPCyl_length"
+          zstart="OuterTrackerEndcapPCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="OuterTrackerEndcapPMod1_x1/2" x2="OuterTrackerEndcapPMod1_x2/2" z="OuterTrackerEndcapPMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <module name="Module2" vis="TrackerModuleVis">
+        <trd x1="OuterTrackerEndcapPMod2_x1/2" x2="OuterTrackerEndcapPMod2_x2/2" z="OuterTrackerEndcapPMod2_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <module name="Module3" vis="TrackerModuleVis">
+        <trd x1="OuterTrackerEndcapPMod3_x1/2" x2="OuterTrackerEndcapPMod3_x2/2" z="OuterTrackerEndcapPMod3_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="OuterTrackerEndcapPLayer1_rmin"
+          rmax="OuterTrackerEndcapPLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="OuterTrackerEndcapPLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="OuterTrackerEndcapPMod1_rmin + OuterTrackerEndcapPMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="OuterTrackerEndcapPLayer2_rmin"
+          rmax="OuterTrackerEndcapPLayer2_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="OuterTrackerEndcapPLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="OuterTrackerEndcapPMod2_rmin + OuterTrackerEndcapPMod2_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module2" />
+      </layer>
+      <layer id="3">
+        <envelope vis="TrackerLayerVis"
+          rmin="OuterTrackerEndcapPLayer3_rmin"
+          rmax="OuterTrackerEndcapPLayer3_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="OuterTrackerEndcapPLayer3_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="OuterTrackerEndcapPMod3_rmin + OuterTrackerEndcapPMod3_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module3" />
+      </layer>
+    </detector>
+    <detector
+      id="TrackerEndcapN_2_ID"
+      name="OuterTrackerEndcapN"
+      type="athena_TrapEndcapTracker"
+      readout="TrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="true">
+      <support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
+          rmin="SiTrackerServiceCyl_rmin"
+          thickness="SiTrackerServiceCylAl_thickness"
+          length="OuterTrackerEndcapNCyl_length"
+          zstart="OuterTrackerEndcapNCyl_zmin" />
+      <support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
+          rmin="SiTrackerSupportCyl_rmin"
+          thickness="SiTrackerSupportCylCF_thickness"
+          length="OuterTrackerEndcapNCyl_length"
+          zstart="OuterTrackerEndcapNCyl_zmin" />
+      <module name="Module1" vis="TrackerModuleVis">
+        <trd x1="OuterTrackerEndcapNMod1_x1/2" x2="OuterTrackerEndcapNMod1_x2/2" z="OuterTrackerEndcapNMod1_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <module name="Module2" vis="TrackerModuleVis">
+        <trd x1="OuterTrackerEndcapNMod2_x1/2" x2="OuterTrackerEndcapNMod2_x2/2" z="OuterTrackerEndcapNMod2_y/2" />
+        <module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+        <module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
+        <module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="OuterTrackerEndcapNLayer1_rmin"
+          rmax="OuterTrackerEndcapNLayer1_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="OuterTrackerEndcapNLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="OuterTrackerEndcapNMod1_rmin + OuterTrackerEndcapNMod1_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module1" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="OuterTrackerEndcapNLayer2_rmin"
+          rmax="OuterTrackerEndcapNLayer2_rmax"
+          length="SiTrackerEndcapLayer_thickness"
+          zstart="OuterTrackerEndcapNLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
+        <ring 
+          r="OuterTrackerEndcapNMod2_rmin + OuterTrackerEndcapNMod2_y/2"
+          zstart="0"
+          nmodules="SiTrackerEndcapMod_count"
+          dz="SiTrackerEndcapMod_dz"
+          module="Module2" />
+      </layer>
+    </detector>
+  </detectors>
+  <documentation>
+    ## GEM trackers (3P, 2N)
+  </documentation>
+  <define>
+    <constant 
+      name="GEMEndcapMod_thickness"   
+      value="GEMMylar_thickness * 2 + GEMGas_thickness * 5 + GEMDriftRegion_thickness * 1
+           + GEMKapton_thickness * (2 + 3 * GEMAreaFactor)
+           + GEMCuFoil_thickness * (3 * GEMAreaFactor)
+           + GEMCuElectrode_thickness * 2" />
+    <constant name="GEMEndcapMod_dz"                value="GEMEndcapMod_thickness/2 + GEMSpoke_thickness/2" />
+    <constant name="GEMEndcapMod_overlap"           value="0" />
+    <constant name="GEMEndcapMod_angle"             value="360.0*degree / GEMEndcapMod_count * (1 + GEMEndcapMod_overlap)" />
+    <constant name="GEMEndcapLayer_thickness"       value="GEMEndcapMod_thickness + 2 * GEMEndcapMod_dz + 1*um" />
+
+    <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="CentralTrackingRegion_rmax - GEMFrameTopEdge_width * 1.3" />
+    <constant name="GEMEndcapRingMod_x1"            value="2 * GEMEndcapRingMod_rmin * sin(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" />
+    <constant name="GEMEndcapRingModBotFrame_rmin"  value="SiTrackerSupportCyl_rmax" />
+    <constant name="GEMEndcapRingModBotFrame_y"     value="GEMFrameBotEdge_width" />
+    <constant name="GEMEndcapRingModBotFrame_rmax"  value="(GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapRingModBotFrame_x1"    value="2 * GEMEndcapRingModBotFrame_rmin * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapRingModBotFrame_x2"    value="2 * GEMEndcapRingModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapRingModTopFrame_rmin"  value="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y" />
+    <constant name="GEMEndcapRingModTopFrame_y"     value="GEMFrameTopEdge_width" />
+    <constant name="GEMEndcapRingModTopFrame_rmax"  value="(GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapRingModTopFrame_x1"    value="GEMEndcapRingMod_x2" />
+    <constant name="GEMEndcapRingModTopFrame_x2"    value="2 * GEMEndcapRingModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapRingModSpoke_length"   value="GEMEndcapRingMod_rmax - GEMEndcapRingModBotFrame_rmax" />
+    <constant name="GEMEndcapRingModSpoke_r"        value="(GEMEndcapRingMod_rmax + GEMEndcapRingModBotFrame_rmax)/2" />
+    <constant name="GEMEndcapRingLayer_rmin"        value="GEMEndcapRingModBotFrame_rmin - 1*um" />
+    <constant name="GEMEndcapRingLayer_rmax"        value="GEMEndcapRingModTopFrame_rmax + 1*um" />
+
+    <comment> 
+      z position of the "ring" GEMS, note that some are offset slightly 
+      to not overlap in z with the silicon disks (an ACTS limitation).
+    </comment>
+    <constant name="GEMEndcapPMod1_zmin"            value="GEMEndcapPDisk1_zmin + GEMEndcapLayer_thickness" />
+    <constant name="GEMEndcapPMod2_zmin"            value="GEMEndcapPDisk2_zmin - GEMEndcapLayer_thickness" />
+    <constant name="GEMEndcapNMod1_zmin"            value="GEMEndcapN_zmin" />
+    <constant name="GEMEndcapNMod2_zmin"            value="GEMEndcapN_zmin + 1 * GEMEndcapN_offset - GEMEndcapLayer_thickness" />
+    <constant name="GEMEndcapPLayer1_zmin"          value="GEMEndcapPMod1_zmin - GEMEndcapLayer_thickness/2" />
+    <constant name="GEMEndcapPLayer2_zmin"          value="GEMEndcapPMod2_zmin - GEMEndcapLayer_thickness/2" />
+    <constant name="GEMEndcapNLayer1_zmin"          value="GEMEndcapNMod1_zmin - GEMEndcapLayer_thickness/2" />
+    <constant name="GEMEndcapNLayer2_zmin"          value="GEMEndcapNMod2_zmin - GEMEndcapLayer_thickness/2" />
+
+    <comment> Large forward disk (behind the RICH) </comment>
+    <constant name="GEMEndcapPMod3_zmin"            value="GEMEndcapPDisk3_zmin" />
+    <constant name="GEMEndcapPLayer3_zmin"          value="GEMEndcapPMod3_zmin - GEMEndcapLayer_thickness/2" />
+
+    <constant name="GEMEndcapLargeModBotFrame_rmin"  value="GEMEndcapPMod3_zmin * TrackerForward_tanthetamax" />
+    <constant name="GEMEndcapLargeModBotFrame_y"     value="GEMFrameBotEdge_width" />
+    <constant name="GEMEndcapLargeModBotFrame_rmax"  value="(GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapLargeModBotFrame_x1"    value="2 * GEMEndcapLargeModBotFrame_rmin * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapLargeModBotFrame_x2"    value="2 * GEMEndcapLargeModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapLargeMod_rmin"          value="GEMEndcapPMod3_zmin * TrackerForward_tanthetamax + 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_tantheta, 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" />
+    <constant name="GEMEndcapLargeModTopFrame_rmin"  value="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y" />
+    <constant name="GEMEndcapLargeModTopFrame_y"     value="GEMFrameTopEdge_width" />
+    <constant name="GEMEndcapLargeModTopFrame_rmax"  value="(GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapLargeModTopFrame_x1"    value="GEMEndcapLargeMod_x2" />
+    <constant name="GEMEndcapLargeModTopFrame_x2"    value="2 * GEMEndcapLargeModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
+    <constant name="GEMEndcapLargeModSpoke_length"   value="GEMEndcapLargeMod_rmax - GEMEndcapLargeModBotFrame_rmax" />
+    <constant name="GEMEndcapLargeModSpoke_r"        value="(GEMEndcapLargeMod_rmax + GEMEndcapLargeModBotFrame_rmax)/2" />
+    <constant name="GEMEndcapLargeLayer_rmin"        value="GEMEndcapLargeModBotFrame_rmin - 1*um" />
+    <constant name="GEMEndcapLargeLayer_rmax"        value="GEMEndcapLargeModTopFrame_rmax + 1*um" />
+
+  </define>
+  <detectors>
+    <detector
+      id="TrackerEndcapP_3_ID"
+      name="GEMEndcapP"
+      type="athena_TrapEndcapTracker"
+      readout="GEMTrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="false">
+      <module name="RingModule" vis="TrackerGEMModuleVis">
+        <trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
+        <comment> going from back to front </comment>
+        <module_component name="exit_window"      thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerServiceVis" />
+        <module_component name="exit_region"      thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="readout_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="readout_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="induction_region" thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="gem_foil_3_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_3"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region2" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_2_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_2"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region1" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_1_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_1"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="drift_region"     thickness="GEMDriftRegion_thickness"                  material="Ar10CO2" sensitive="true"/>
+        <module_component name="cathode_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="cathode_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="entrance_region"  thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="entrance_window"  thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerMPGDVis" />
+      </module>
+      <module name="RingBotFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="RingTopFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="RingSpoke" vis="TrackerSupportVis">
+        <trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
+        <module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
+      </module>
+      <module name="LargeModule" vis="TrackerGEMModuleVis">
+        <trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
+        <comment> going from back to front </comment>
+        <module_component name="exit_window"      thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerServiceVis" />
+        <module_component name="exit_region"      thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="readout_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="readout_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="induction_region" thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="gem_foil_3_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_3"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region2" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_2_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_2"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region1" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_1_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_1"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="drift_region"     thickness="GEMDriftRegion_thickness"                  material="Ar10CO2" sensitive="true"/>
+        <module_component name="cathode_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="cathode_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="entrance_region"  thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="entrance_window"  thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerMPGDVis" />
+      </module>
+      <module name="LargeBotFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="LargeTopFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="LargeSpoke" vis="TrackerSupportVis">
+        <trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
+        <module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="GEMEndcapRingLayer_rmin"
+          rmax="GEMEndcapRingLayer_rmax"
+          length="GEMEndcapLayer_thickness"
+          zstart="GEMEndcapPLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
+        <ring 
+          r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingModule" />
+        <ring 
+          r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingBotFrame" />
+        <ring 
+          r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingTopFrame" />
+        <ring 
+          r="GEMEndcapRingModSpoke_r"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="0"
+          phi0="GEMEndcapMod_angle/2"
+          module="RingSpoke" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="GEMEndcapRingLayer_rmin"
+          rmax="GEMEndcapRingLayer_rmax"
+          length="GEMEndcapLayer_thickness"
+          zstart="GEMEndcapPLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
+        <ring 
+          r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingModule" />
+        <ring 
+          r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingBotFrame" />
+        <ring 
+          r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingTopFrame" />
+        <ring 
+          r="GEMEndcapRingModSpoke_r"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="0"
+          phi0="GEMEndcapMod_angle/2"
+          module="RingSpoke" />
+      </layer>
+      <layer id="3">
+        <envelope vis="TrackerLayerVis"
+          rmin="GEMEndcapLargeLayer_rmin"
+          rmax="GEMEndcapLargeLayer_rmax"
+          length="GEMEndcapLayer_thickness"
+          zstart="GEMEndcapPLayer3_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
+        <ring 
+          r="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="LargeModule" />
+        <ring 
+          r="GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="LargeBotFrame" />
+        <ring 
+          r="GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="LargeTopFrame" />
+        <ring 
+          r="GEMEndcapLargeModSpoke_r"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="0"
+          phi0="GEMEndcapMod_angle/2"
+          module="LargeSpoke" />
+      </layer>
+    </detector>
+    <detector
+      id="TrackerEndcapN_3_ID"
+      name="GEMEndcapN"
+      type="athena_TrapEndcapTracker"
+      readout="GEMTrackerEndcapHits"
+      vis="TrackerVis"
+      reflect="true">
+      <module name="RingModule" vis="TrackerGEMModuleVis">
+        <trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
+        <comment> going from back to front </comment>
+        <module_component name="exit_window"      thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerServiceVis" />
+        <module_component name="exit_region"      thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="readout_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="readout_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="induction_region" thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="gem_foil_3_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_3"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region2" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_2_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_2"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region1" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_1_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_1"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="drift_region"     thickness="GEMDriftRegion_thickness"                  material="Ar10CO2" sensitive="true"/>
+        <module_component name="cathode_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="cathode_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="entrance_region"  thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="entrance_window"  thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerMPGDVis" />
+      </module>
+      <module name="RingBotFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="RingTopFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="RingSpoke" vis="TrackerSupportVis">
+        <trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
+        <module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
+      </module>
+      <module name="LargeModule" vis="TrackerGEMModuleVis">
+        <trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
+        <comment> going from back to front </comment>
+        <module_component name="exit_window"      thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerServiceVis" />
+        <module_component name="exit_region"      thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="readout_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="readout_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="induction_region" thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="gem_foil_3_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_3"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region2" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_2_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_2"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="transfer_region1" thickness="GEMGas_thickness"                          material="Ar10CO2"/>
+        <module_component name="gem_foil_1_cu"    thickness="GEMCuElectrode_thickness * GEMAreaFactor"  material="Copper"/>
+        <module_component name="gem_foil_1"       thickness="GEMKapton_thickness * GEMAreaFactor"       material="Kapton"/>
+        <module_component name="drift_region"     thickness="GEMDriftRegion_thickness"                  material="Ar10CO2" sensitive="true"/>
+        <module_component name="cathode_cu"       thickness="GEMCuElectrode_thickness"  material="Copper"/>
+        <module_component name="cathode_foil"     thickness="GEMKapton_thickness"       material="Kapton"/>
+        <module_component name="entrance_region"  thickness="GEMGas_thickness"          material="Ar10CO2"/>
+        <module_component name="entrance_window"  thickness="GEMMylar_thickness"        material="Mylar" vis="TrackerMPGDVis" />
+      </module>
+      <module name="LargeBotFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="LargeTopFrame" vis="TrackerSupportVis">
+        <trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
+        <module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
+      </module>
+      <module name="LargeSpoke" vis="TrackerSupportVis">
+        <trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
+        <module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
+      </module>
+      <layer id="1">
+        <envelope vis="TrackerLayerVis"
+          rmin="GEMEndcapRingLayer_rmin"
+          rmax="GEMEndcapRingLayer_rmax"
+          length="GEMEndcapLayer_thickness"
+          zstart="GEMEndcapNLayer1_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
+        <ring 
+          r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingModule" />
+        <ring 
+          r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingBotFrame" />
+        <ring 
+          r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingTopFrame" />
+        <ring 
+          r="GEMEndcapRingModSpoke_r"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="0"
+          phi0="GEMEndcapMod_angle/2"
+          module="RingSpoke" />
+      </layer>
+      <layer id="2">
+        <envelope vis="TrackerLayerVis"
+          rmin="GEMEndcapRingLayer_rmin"
+          rmax="GEMEndcapRingLayer_rmax"
+          length="GEMEndcapLayer_thickness"
+          zstart="GEMEndcapNLayer2_zmin" />
+        <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
+        <ring 
+          r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingModule" />
+        <ring 
+          r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingBotFrame" />
+        <ring 
+          r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="GEMEndcapMod_dz"
+          module="RingTopFrame" />
+        <ring 
+          r="GEMEndcapRingModSpoke_r"
+          zstart="0"
+          nmodules="GEMEndcapMod_count"
+          dz="0"
+          phi0="GEMEndcapMod_angle/2"
+          module="RingSpoke" />
+      </layer>
+    </detector>
+  </detectors>
+
+
+  <readouts>
+    <readout name="TrackerBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
+      <id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
+    </readout>
+    <readout name="TrackerEndcapHits">
+      <segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
+      <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
+    </readout>
+    <readout name="MPGDTrackerBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.150*mm*sqrt(12)" grid_size_y="0.150*mm*sqrt(12)" />
+      <id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
+    </readout>
+    <readout name="GEMTrackerEndcapHits">
+      <segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
+      <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
+    </readout>
+  </readouts>
+
+</lccdd>
diff --git a/compact/definitions.xml b/compact/definitions.xml
index 791ad094c15f4b3790d6d470ee74afc1572aa8e5..63d43c68b3b40c0ad2953be927f1f94ff87cdc03 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -50,79 +50,92 @@ The unused IDs below are saved for future use.
 
 
     <documentation> 
-      #### (25-49) Silicon Vertex Tracker
-
-       - SiVertex subsystem  ID: 25 
-       - Layer 1 subassembly ID: 26
-       - Layer 2 subassembly ID: 27
-       - Layer 3 subassembly ID: 28
-       - Layer 4 subassembly ID: 29
-       - Layer 5 subassembly ID: 30
+      #### (25-39) Silicon Vertex Tracker
+
+       - Vertex subassemblies: 25-27
+       - Vertex barrel and endcaps: 28-30
+       - Unused: 28-30
     </documentation>
-    <constant name="VertexBarrel_ID" value="25"/>
-    <constant name="VertexBarrelSubAssembly_ID" value="26"/>
-    <constant name="VertexEndcapSubAssembly_ID" value="27"/>
-    <constant name="VertexEndcapP_ID" value="30"/>
-    <constant name="VertexEndcapN_ID" value="40"/>
+    <constant name="VertexSubAssembly_0_ID"   value="25"/>
+    <constant name="VertexSubAssembly_1_ID"   value="26"/>
+    <constant name="VertexSubAssembly_2_ID"   value="27"/>
+
+    <constant name="VertexBarrel_0_ID"          value="31"/>
+    <constant name="VertexBarrel_1_ID"          value="32"/>
+    <constant name="VertexBarrel_2_ID"          value="33"/>
+    <constant name="VertexEndcapN_0_ID"         value="34"/>
+    <constant name="VertexEndcapN_1_ID"         value="35"/>
+    <constant name="VertexEndcapN_2_ID"         value="36"/>
+    <constant name="VertexEndcapP_0_ID"         value="37"/>
+    <constant name="VertexEndcapP_1_ID"         value="38"/>
+    <constant name="VertexEndcapP_2_ID"         value="39"/>
     
     <documentation>
-       - Unused IDs: 31-49
+       - Unused IDs: 31-39
     </documentation>
 
     <documentation>
-      #### (50-74) Silicon Tracker System
+      #### (40-84) Tracker System
 
-      SiTracker subsystem  ID: 50
-      Layer 1 subassembly  ID: 51      
-      Layer 2 subassembly  ID: 52      
-      Layer 3 subassembly  ID: 53
-      Layer 4 subassembly  ID: 54
-      Layer 5 subassembly  ID: 55
-      (56-70) etc...
-      Unused IDs: 71-74
+      - Tracker subassemblies: 40-45
+      - Composite tracker systems: 46-57
+      - Tracker detectors: 56-84
+      Unused IDs: (77-79)
 
     </documentation>
 
-    <constant name="TrackerBarrelSubAssembly_Inner_ID" value="50"/>
-    <constant name="TrackerEndcapSubAssembly_Inner_ID" value="51"/>
-
-    <constant name="TrackerBarrelSubAssembly_Outer_ID" value="52"/>
-    <constant name="TrackerEndcapSubAssembly_Outer_ID" value="53"/>
-    <constant name="OuterTrackingSubAssembly_ID" value="54"/>
-
-    <!--constant name="TrackerSubAssemblyLayer4_ID" value="54"/-->
-    <!--constant name="TrackerSubAssemblyLayer5_ID" value="55"/-->
-
-    <constant name="TrackerBarrel_Inner_ID"      value="56"/>
-    <constant name="TrackerEndcapP_Inner_ID"     value="57"/>
-    <constant name="TrackerEndcapN_Inner_ID"     value="58"/>
-
-    <constant name="TrackerBarrel_Outer_ID"      value="59"/>
-    <constant name="TrackerEndcapP_Outer_ID"     value="60"/>
-    <constant name="TrackerEndcapN_Outer_ID"     value="61"/>
-
-    <constant name="TrackerBarrel_Layer3_ID"      value="62"/>
-    <constant name="TrackerEndcapP_Layer3_ID"     value="63"/>
-    <constant name="TrackerEndcapN_Layer3_ID"     value="64"/>
-
-    <constant name="TrackerBarrel_Layer4_ID"      value="65"/>
-    <constant name="TrackerEndcapP_Layer4_ID"     value="66"/>
-    <constant name="TrackerEndcapN_Layer4_ID"     value="67"/>
-
-    <constant name="TrackerBarrel_Layer5_ID"      value="68"/>
-    <constant name="TrackerEndcapP_Layer5_ID"     value="69"/>
-    <constant name="TrackerEndcapN_Layer5_ID"     value="70"/>
-
-    <documentation>
-    #### (75-84) Barrel Tracker IDs
-
-    - MMTrackerBarrel ID: 75
-    - RWellTrackerBarrel ID: 76
-    - Unused IDs: 77-89
-
-    </documentation>
-    <constant name="MMTrackerBarrel_ID" value="75"/>
-    <constant name="RWellTrackerBarrel_ID" value="76"/>
+    <comment> 
+      SubAssembly IDs should increment from inner to outer 
+      (it's not the definition order but rather the ID order that's used 
+      for construction order in the ACTS geometry conversion)
+    </comment>
+    <constant name="TrackerSubAssembly_0_ID"      value="40"/>
+    <constant name="TrackerSubAssembly_1_ID"      value="41"/>
+    <constant name="TrackerSubAssembly_2_ID"      value="42"/>
+    <constant name="TrackerSubAssembly_3_ID"      value="43"/>
+    <constant name="TrackerSubAssembly_4_ID"      value="44"/>
+    <constant name="TrackerSubAssembly_5_ID"      value="45"/>
+
+    <constant name="TrackerCompositeBarrel_0_ID"  value="46"/>
+    <constant name="TrackerCompositeBarrel_1_ID"  value="47"/>
+    <constant name="TrackerCompositeBarrel_2_ID"  value="48"/>
+    <constant name="TrackerCompositeBarrel_3_ID"  value="49"/>
+    <constant name="TrackerCompositeEndcapN_0_ID" value="50"/>
+    <constant name="TrackerCompositeEndcapN_1_ID" value="51"/>
+    <constant name="TrackerCompositeEndcapN_2_ID" value="52"/>
+    <constant name="TrackerCompositeEndcapN_3_ID" value="53"/>
+    <constant name="TrackerCompositeEndcapP_0_ID" value="54"/>
+    <constant name="TrackerCompositeEndcapP_1_ID" value="55"/>
+    <constant name="TrackerCompositeEndcapP_2_ID" value="56"/>
+    <constant name="TrackerCompositeEndcapP_3_ID" value="57"/>
+
+    <constant name="TrackerBarrel_0_ID"           value="58"/>
+    <constant name="TrackerBarrel_1_ID"           value="59"/>
+    <constant name="TrackerBarrel_2_ID"           value="60"/>
+    <constant name="TrackerBarrel_3_ID"           value="61"/>
+    <constant name="TrackerBarrel_4_ID"           value="62"/>
+    <constant name="TrackerBarrel_5_ID"           value="63"/>
+    <constant name="TrackerBarrel_6_ID"           value="64"/>
+    <constant name="TrackerBarrel_7_ID"           value="65"/>
+    <constant name="TrackerBarrel_8_ID"           value="66"/>
+    <constant name="TrackerEndcapN_0_ID"          value="67"/>
+    <constant name="TrackerEndcapN_1_ID"          value="68"/>
+    <constant name="TrackerEndcapN_2_ID"          value="69"/>
+    <constant name="TrackerEndcapN_3_ID"          value="70"/>
+    <constant name="TrackerEndcapN_4_ID"          value="71"/>
+    <constant name="TrackerEndcapN_5_ID"          value="72"/>
+    <constant name="TrackerEndcapN_6_ID"          value="73"/>
+    <constant name="TrackerEndcapN_7_ID"          value="74"/>
+    <constant name="TrackerEndcapN_8_ID"          value="75"/>
+    <constant name="TrackerEndcapP_0_ID"          value="76"/>
+    <constant name="TrackerEndcapP_1_ID"          value="77"/>
+    <constant name="TrackerEndcapP_2_ID"          value="78"/>
+    <constant name="TrackerEndcapP_3_ID"          value="79"/>
+    <constant name="TrackerEndcapP_4_ID"          value="80"/>
+    <constant name="TrackerEndcapP_5_ID"          value="81"/>
+    <constant name="TrackerEndcapP_6_ID"          value="82"/>
+    <constant name="TrackerEndcapP_7_ID"          value="83"/>
+    <constant name="TrackerEndcapP_8_ID"          value="84"/>
 
     <documentation>
     #### (85-99) Reserved IDs
@@ -180,30 +193,27 @@ The unused IDs below are saved for future use.
     <documentation> 
       #### (120-129) (near) Forward reserved
 
-      - Forwardtracking ID: 120
-      - Forward RICH    ID: 121
-
+      - Forward RICH    ID: 120
+      - Forward TRD     ID: 121
+      - Forward TOF     ID: 122
       - Unused IDs: 124-129
     </documentation>
-    <constant name="ForwardTracking_ID" value="120"/>
-    <constant name="ForwardRICH_ID"     value="121"/>
-    <!--constant name="UNUSED"          value="122"/-->
-    <constant name="ForwardTRD_ID"      value="123"/>
-    <constant name="GEMTrackerEndcapP_ID" value="124"/>
-    <constant name="GEMTrackerEndcapN_ID" value="125"/>
-    <constant name="ForwardTOF_ID"      value="126"/>
-    <constant name="BackwardTOF_ID"      value="127"/>
+    <constant name="ForwardRICH_ID"     value="120"/>
+    <constant name="ForwardTRD_ID"      value="121"/>
+    <constant name="ForwardTOF_ID"      value="122"/>
 
     <documentation> 
       #### (130-139) Backward reserved
 
       - Modular RICH ID: 130
-      - Electron Endcap GEM tracking ID: 131
-      - Unused IDs: 132-139
+      - Backward RICH ID: 131
+      - Backward TOD ID: 132
+      - Unused IDs: 133-139
 
     </documentation>
-    <constant name="MRICH_ID"        value="130"/>
-    <!--constant name="UNUSED"          value="131"/-->
+    <constant name="MRICH_ID"           value="130"/>
+    <constant name="BackwardRICH_ID"    value="131"/>
+    <constant name="BackwardTOF_ID"     value="132"/>
 
     <documentation> 
       #### (140-149) Central Magnet
@@ -288,6 +298,17 @@ Examples:
 
     </documentation>
 
+    <documentation>
+      ## Rapidity constants
+    </documentation>
+    <constant name="Eta1_1_tantheta"       value="tan(2*atan(exp(-1.1)))" />
+    <constant name="Eta1_4_tantheta"       value="tan(2*atan(exp(-1.4)))" />
+    <constant name="Eta3_5_tantheta"       value="tan(2*atan(exp(-3.5)))" />
+    <constant name="Eta3_8_tantheta"       value="tan(2*atan(exp(-3.8)))" />
+    <constant name="Eta4_0_tantheta"       value="tan(2*atan(exp(-4.0)))" />
+
+    <comment>Solenoid option</comment>
+
     <documentation>
       ## Solenoid Magnet Parameters
 
@@ -320,68 +341,56 @@ Examples:
 
     </documentation>
 
-    <documentation>
-      ### Vertex Tracker Parameters
-    </documentation>
-    <constant name="VertexTrackerBarrel_rmin"   value="Beampipe_rmax + 1.0*mm"/>
-    <constant name="VertexTrackerBarrel_rmax"   value="200.0*mm"/>
-    <constant name="VertexTrackerBarrel_length" value="300.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="Beampipe_rmax + 1.0*mm"/>
-    <constant name="VertexTrackerEndcapN_rmin"  value="Beampipe_rmax + 1.0*mm"/>
-
-    <constant name="VertexTrackerEndcapP_zmax"  value="300.0*mm"/>
-    <constant name="VertexTrackerEndcapN_zmax"  value="300.0*mm"/>
-
     <documentation>
       ### Vertex Tracking Region
     </documentation>
-    <constant name="VertexTrackingRegion_length" value="VertexTrackerEndcapP_zmax + VertexTrackerEndcapN_zmax "/>
-    <constant name="VertexTrackingRegion_zmax"   value="VertexTrackerEndcapP_zmax"/>
-    <constant name="VertexTrackingRegion_rmax"   value="VertexTrackerBarrel_rmax"/>
+    <constant name="VertexTrackingRegion_rmin"    value="Beampipe_rmax + 1.0*mm" />
+    <constant name="VertexTrackingRegion_rmax"    value="100.0*mm" />
+    <constant name="VertexTrackingRegionP_zmax"   value="240.0*mm" />
+    <constant name="VertexTrackingRegionN_zmax"   value="240.0*mm" />
+    <constant name="VertexTrackingRegion_length"  value="VertexTrackingRegionP_zmax + VertexTrackingRegionN_zmax" />
 
     <documentation>
-      ### Tracker Detector Parameters
+      ### Central Tracker Region
       TrackerBarrel_rmax: also the rmin for the barrel PID system (DIRC)
       Note: The barrel rmax and endcap lengths are the maximum extent allowed for
       the barrel and endcap layers, not the position of the final layer.
     </documentation>
 
-    <constant name="TrackerBarrel_rmin"         value="VertexTrackingRegion_rmax"/>
-    <constant name="TrackerBarrel_rmax"         value="95.*cm"/> 
-    <constant name="TrackerBarrel_thickness"    value="TrackerBarrel_rmax-TrackerBarrel_rmin"/>
-
-    <constant name="TrackerBarrel_length"       value="VertexTrackingRegion_length + 1150.0*mm"/>
-    <constant name="TrackerBarrel_zmax"         value="TrackerBarrel_length/2.0"/>
-    <constant name="TrackerBarrelInside_length" value="VertexTrackingRegion_length"/>
-    <constant name="TrackerBarrelInside_zmax"   value="TrackerBarrelInside_length/2.0"/>
-    <constant name="TrackerEndcapP_length"      value="1025.0*mm"/>
-    <constant name="TrackerEndcapN_length"      value="495.0*mm"/>
+    <constant name="CentralTrackingRegion_rmax"   value="950.0*mm" />
+    <constant name="CentralTrackingRegionP_zmax"  value="1900.0*mm" />
+    <constant name="CentralTrackingRegionN_zmax"  value="1370.0*mm" />
+    <constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" />
 
     <documentation level="0">
 ### PID Detector Region Parameters
     </documentation>
 
-    <constant name="ForwardPID_length"            value="140.0*cm"/>
-    <constant name="ForwardPID_rmin1"             value="Beampipe_rmax + 90*mm"/>
-    <constant name="ForwardPID_rmin2"             value="18.0*cm"/>
+    <constant name="ForwardPIDRegion_zmin"        value="CentralTrackingRegionP_zmax" />
+    <constant name="ForwardPIDRegion_length"      value="140.0*cm" />
+    <constant name="ForwardPIDRegion_rmin1"       value="Beampipe_rmax + 90*mm" />
+    <constant name="ForwardPIDRegion_rmin2"       value="18.0*cm" />
 
-    <constant name="BackwardPID_length"           value="40.0*cm"/>
-    <constant name="BackwardPID_rmax"             value="TrackerBarrel_rmax"/>
+    <constant name="BackwardPIDRegion_zmin"       value="CentralTrackingRegionN_zmax" />
+    <constant name="BackwardPIDRegion_length"     value="40.0*cm" />
+    <constant name="BackwardPIDRegion_rmax"       value="CentralTrackingRegion_rmax" />
 
-    <comment> Note: PID has space for DIRC, ExtraSpace has room for other detectors past the PID</comment>
-    <constant name="BarrelPIDThickness"           value="8.0 * cm"/>
-    <constant name="BarrelExtraSpaceThickness"    value="0.0 * cm"/>
+    <comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment>
+    <constant name="BarrelPIDRegion_thickness"    value="8.0 * cm" />
+    <constant name="BarrelExtraSpace_thickness"   value="0.0 * cm" />
 
-    <documentation level="0">
-### Extra tracking region behind the endcap PID system
+    <documentation>
+    ## Forward/backward tracking region behind the PID detectors
     </documentation>
-    <constant name="ForwardTracking_length"       value="5.0*cm"/>
-    <constant name="BackwardTracking_length"      value="8.0*cm"/>
+
+    <constant name="BackwardTrackingRegion_zmin"         value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" />
+    <constant name="ForwardTrackingRegion_zmin"          value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" />
+    <constant name="ForwardTrackingRegion_length"        value="10.0*cm" />
+    <constant name="BackwardTrackingRegion_length"       value="8.0*cm" />
+
+    <comment> Total length of the endcap detectors in front of the calorimeter</comment>
+    <constant name="BackwardInnerEndcapRegion_length"    value="BackwardPIDRegion_length + BackwardTrackingRegion_length"/>
+    <constant name="ForwardInnerEndcapRegion_length"     value="ForwardPIDRegion_length + ForwardTrackingRegion_length"/>
 
     <documentation>
 ## Service gaps
@@ -391,41 +400,26 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc
     <constant name="ForwardServiceGap_length"     value="10.0*cm"/>
     <constant name="BackwardServiceGap_length"    value="10.0*cm"/>
  
-    <documentation>
-## Central tracking and PID detector boundaries
-    </documentation>
-    <constant name="CentralTracking_rmax"        value="TrackerBarrel_rmax"/>
-    <constant name="CentralTracking_length"      value="TrackerBarrel_length + TrackerEndcapP_length + TrackerEndcapN_length"/>
-
-    <constant name="BackwardPID_zmin" value="TrackerBarrel_length/2. + TrackerEndcapN_length"/>
-    <constant name="ForwardPID_zmin" value="TrackerBarrel_length/2. + TrackerEndcapP_length"/>
-    <constant name="BackwardTracking_zmin" value="BackwardPID_zmin + BackwardPID_length"/>
-    <constant name="ForwardTracking_zmin" value="ForwardPID_zmin + ForwardPID_length"/>
-
-    <comment> Total length of the endcap detectors in front of the calorimeter</comment>
-    <constant name="BackwardInnerEndcap_length"    value="BackwardPID_length + BackwardTracking_length"/>
-    <constant name="ForwardInnerEndcap_length"     value="ForwardPID_length + ForwardTracking_length"/>
-
   <documentation level="3">
 ## Calorimeter Parameters
   </documentation>
     <constant name="CaloSides"                      value="12"/>
 
-    <constant name="EcalEndcapP_zmin"               value="ForwardPID_zmin + ForwardInnerEndcap_length + ForwardServiceGap_length"/>
-    <constant name="EcalEndcapP_length"             value="40*cm"/>
-    <constant name="EcalEndcapP_rmin"               value="200.0*mm"/>
+    <constant name="EcalEndcapP_zmin"               value="ForwardPIDRegion_zmin + ForwardInnerEndcapRegion_length + ForwardServiceGap_length" />
+    <constant name="EcalEndcapP_length"             value="30*cm" />
+    <constant name="EcalEndcapP_rmin"               value="200.0*mm" />
     <constant name="EcalEndcapP_rmax"               value="Solenoid_rmax "/>
 
-    <constant name="EcalEndcapN_zmin"               value="max(BackwardPID_zmin + BackwardInnerEndcap_length, SolenoidBackward_zmax)"/>
-    <constant name="EcalEndcapN_length"             value="60*cm"/>
-    <constant name="EcalEndcapN_rmin"               value="max((EcalEndcapN_zmin + EcalEndcapN_length) * tan(abs(CrossingAngle)) + 12.5 * mm, 5*cm)"/>
-    <constant name="EcalEndcapN_rmax"               value="TrackerBarrel_rmax"/>
+    <constant name="EcalEndcapN_zmin"               value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length" />
+    <constant name="EcalEndcapN_length"             value="60*cm" />
+    <constant name="EcalEndcapN_rmin"               value="max((EcalEndcapN_zmin + EcalEndcapN_length) * tan(abs(CrossingAngle)) + 12.5 * mm, 5*cm)" />
+    <constant name="EcalEndcapN_rmax"               value="CentralTrackingRegion_rmax" />
 
-    <constant name="EcalBarrelEnvelope_thickness"      value="45.0*cm"/>
-    <constant name="EcalBarrel_rmin"                value="CentralTracking_rmax + BarrelPIDThickness + BarrelExtraSpaceThickness"/>
+    <constant name="EcalBarrelRegion_thickness"     value="45.0*cm"/>
+    <constant name="EcalBarrel_rmin"                value="CentralTrackingRegion_rmax + BarrelPIDRegion_thickness + BarrelExtraSpace_thickness"/>
     <constant name="EcalBarrelForward_length"       value="-20*cm"/>
-    <constant name="EcalBarrelForward_zmax"         value="ForwardPID_zmin + EcalBarrelForward_length"/>
-    <constant name="EcalBarrelBackward_zmax"        value="BackwardPID_zmin + BackwardInnerEndcap_length + EcalEndcapN_length"/>
+    <constant name="EcalBarrelForward_zmax"         value="ForwardPIDRegion_zmin + EcalBarrelForward_length"/>
+    <constant name="EcalBarrelBackward_zmax"        value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length + EcalEndcapN_length"/>
     <constant name="EcalBarrel_length"              value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/>
     <constant name="EcalBarrel_offset"              value="(EcalBarrelForward_zmax - EcalBarrelBackward_zmax)/2.0"/>
 
@@ -435,18 +429,18 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc
   </documentation>
     <constant name="DIRCReadout_length"         value="30*cm"/>
     <constant name="DIRCForward_length"         value="0*cm"/>
-    <constant name="DIRCForward_zmax"           value="ForwardPID_zmin + DIRCForward_length"/>
-    <constant name="DIRCBackward_zmax"          value="BackwardPID_zmin + BackwardInnerEndcap_length + EcalEndcapN_length + DIRCReadout_length"/>
+    <constant name="DIRCForward_zmax"           value="ForwardPIDRegion_zmin + DIRCForward_length"/>
+    <constant name="DIRCBackward_zmax"          value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length + EcalEndcapN_length + DIRCReadout_length"/>
     <constant name="DIRC_length"                value="DIRCForward_zmax + DIRCBackward_zmax"/>
     <constant name="DIRC_offset"                value="(DIRCForward_zmax - DIRCBackward_zmax)/2"/>
-    <constant name="DIRC_rmin"                  value="TrackerBarrel_rmax"/>
-    <constant name="DIRC_rmax"                  value="DIRC_rmin + BarrelPIDThickness"/>
+    <constant name="DIRC_rmin"                  value="CentralTrackingRegion_rmax"/>
+    <constant name="DIRC_rmax"                  value="DIRC_rmin + BarrelPIDRegion_thickness"/>
 
     <documentation>
       ## Hadronic Calorimeter Parameters
     </documentation>
 
-    <constant name="HcalEndcapP_zmin"     value="max(EcalEndcapP_zmin + EcalEndcapP_length, Solenoid_length / 2.0 + Solenoid_offset) "/>
+    <constant name="HcalEndcapP_zmin"     value="EcalEndcapP_zmin + EcalEndcapP_length"/>
     <constant name="HcalEndcapP_length"   value="120.0*cm"/>
     <comment> HcalEndcapP needs to clear the expanding beampipe with 2 * crossing angle + its radius of BeampipeOD / 2</comment>
     <constant name="HcalEndcapP_rmin"     value="max((HcalEndcapP_zmin + HcalEndcapP_length) * tan(2.0 * abs(CrossingAngle)) + BeampipeOD / 2.0, 15 * cm)"/>
diff --git a/compact/display.xml b/compact/display.xml
index a335591c4b9eb337c3a5b8eacf210b7f14852298..01a2d888813324a12b3a71aa1060c685f3c76de1 100644
--- a/compact/display.xml
+++ b/compact/display.xml
@@ -10,10 +10,15 @@
     <comment>
       Tracking Visualizations
     </comment>
-    <vis name="TrackerVis"        ref="AnlRed"      />
+    <vis name="TrackerVis"        ref="AnlRed" />
     <vis name="TrackerSupportVis" ref="AnlBlue"         visible="true"  showDaughters="true" />
+    <vis name="TrackerServiceVis" ref="AnlGold"         showDaughters="false" />
     <vis name="TrackerLayerVis"   ref="AnlGray"         visible="true"  showDaughters="true" />
     <vis name="TrackerModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
+    <vis name="TrackerMPGDVis"    ref="AnlRed"          visible="true"  showDaughters="false" />
+    <comment> Visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) </comment>
+    <vis name="TrackerGEMModuleVis"  ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
+    <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
 
     <vis name="VertexSupportVis" ref="AnlBlue"         showDaughters="false" />
     <vis name="VertexLayerVis"   ref="AnlGray"         visible="true"  showDaughters="true" />
diff --git a/compact/display_geoviewer.xml b/compact/display_geoviewer.xml
index e5db890e4be47694e936e25c48782ec7b4d87367..217351bda9360f16d4f69112d2148bbb94803ee9 100644
--- a/compact/display_geoviewer.xml
+++ b/compact/display_geoviewer.xml
@@ -11,10 +11,14 @@
       Tracking Visualizations
     </comment>
     <vis name="TrackerVis"        ref="AnlRed"      />
-    <vis name="TrackerSupportVis" ref="AnlBlue"         visible="true"  showDaughters="true" />
+    <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="TrackerSubassemblyVis"   ref="TrackerLayerVis"/>
     <vis name="TrackerModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="true" />
+    <vis name="TrackerMPGDVis"    ref="AnlRed"          visible="true"  showDaughters="true" />
+    <comment> Simple visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) for better performance </comment>
+    <vis name="TrackerGEMModuleVis"  ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
+    <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
 
     <vis name="VertexSupportVis" ref="AnlBlue"         visible="true"  showDaughters="true" />
     <vis name="VertexLayerVis"   ref="AnlGray"         visible="true"  showDaughters="true" />
@@ -65,7 +69,7 @@
     <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="DIRCLayerVis"    ref="AnlTeal"       showDaughters="true" 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"/>
diff --git a/compact/drich.xml b/compact/drich.xml
index 59a14b35648b0c01b3a38dbbcb02711312e1be76..f3950cba183ee9908fbad1507527e2085e81d184 100644
--- a/compact/drich.xml
+++ b/compact/drich.xml
@@ -3,10 +3,10 @@
 
 <define>
 <!-- vessel (=snout+tank) geometry -->
-<constant name="DRICH_zmin"               value="ForwardPID_zmin"/> <!-- vessel front -->
-<constant name="DRICH_Length"             value="ForwardPID_length"/>  <!-- overall vessel length (including snout) -->
-<constant name="DRICH_rmin0"              value="ForwardPID_rmin1"/>  <!-- bore radius at dRICh vessel frontplane -->
-<constant name="DRICH_rmin1"              value="ForwardPID_rmin2"/>  <!-- bore radius at dRICh vessel backplane -->
+<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_rmin1"/>  <!-- bore radius at dRICh vessel frontplane -->
+<constant name="DRICH_rmin1"              value="ForwardPIDRegion_rmin2"/>  <!-- 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_barrel.xml b/compact/ecal_barrel.xml
index e56d75e73e3fed6efe1a85cc748161a690230e54..74b0d0c03298a75935838c7a7fb5f98c0cf31cb5 100644
--- a/compact/ecal_barrel.xml
+++ b/compact/ecal_barrel.xml
@@ -21,7 +21,7 @@
     <constant name="EcalBarrel_ModRepeat"            value="CaloSides"/> 
     <constant name="EcalBarrel_ModLength"            value="0.5*m"/>
     <constant name="EcalBarrel_ModWidth"             value="0.5*m"/>
-    <constant name="EcalBarrel_AvailThickness"       value="EcalBarrelEnvelope_thickness-EcalBarrel_Support_thickness"/>
+    <constant name="EcalBarrel_AvailThickness"       value="EcalBarrelRegion_thickness-EcalBarrel_Support_thickness"/>
     <constant name="EcalBarrel_ReadoutLayerThickness"
       value="EcalBarrel_SiliconThickness
       + EcalBarrel_ElectronicsThickness
diff --git a/compact/ecal_barrel_interlayers.xml b/compact/ecal_barrel_interlayers.xml
index 096b48e6b314be3ce4f1173922119fc7ec3db434..c037147ad5cb46a827ebc016f738c223a4d96183 100644
--- a/compact/ecal_barrel_interlayers.xml
+++ b/compact/ecal_barrel_interlayers.xml
@@ -35,7 +35,7 @@
     <constant name="EcalBarrel_ModRepeat"            value="CaloSides"/>
     <constant name="EcalBarrel_ModLength"            value="0.5*m"/>
     <constant name="EcalBarrel_ModWidth"             value="0.5*m"/>
-    <constant name="EcalBarrel_AvailThickness"       value="EcalBarrelEnvelope_thickness-EcalBarrel_Support_thickness"/>
+    <constant name="EcalBarrel_AvailThickness"       value="EcalBarrelRegion_thickness-EcalBarrel_Support_thickness"/>
 
     <constant name="EcalBarrel_ImagingLayerThickness"
       value="EcalBarrel_SiliconThickness
diff --git a/compact/gem_tracker_endcap.xml b/compact/gem_tracker_endcap.xml
index ede46043fbeec86ac81793b8f47562ae7345c5e3..912af3720f10a5b13134d565746ae476ef446e36 100644
--- a/compact/gem_tracker_endcap.xml
+++ b/compact/gem_tracker_endcap.xml
@@ -3,14 +3,14 @@
   <comment> Endcap Tracker  </comment>        
 
   <define>
-    <constant name="GEMTrackerEndcapP_thickness"      value="min(10.0*cm,ForwardTracking_length)" />
-    <constant name="GEMTrackerEndcapN_thickness"      value="min(10.0*cm,BackwardTracking_length)" />
-    <constant name="GEMTrackerEndcapP_zmin"           value="ForwardTracking_zmin"/>
-    <constant name="GEMTrackerEndcapN_zmin"           value="BackwardTracking_zmin"/>
+    <constant name="GEMTrackerEndcapP_thickness"      value="min(10.0*cm,ForwardTrackingRegion_length)" />
+    <constant name="GEMTrackerEndcapN_thickness"      value="min(10.0*cm,BackwardTrackingRegion_length)" />
+    <constant name="GEMTrackerEndcapP_zmin"           value="ForwardTrackingRegion_zmin"/>
+    <constant name="GEMTrackerEndcapN_zmin"           value="BackwardTrackingRegion_zmin"/>
     <constant name="GEMTrackerEndcapP_rmin"           value="19*cm" />
     <constant name="GEMTrackerEndcapN_rmin"           value="10*cm" />
     <constant name="GEMTrackerEndcapP_rmax"           value="200*cm" />
-    <constant name="GEMTrackerEndcapN_rmax"           value="BackwardPID_rmax" />
+    <constant name="GEMTrackerEndcapN_rmax"           value="BackwardPIDRegion_rmax" />
     <constant name="GEMTrackerEndcapOpeningAngle"     value="30.4*degree"/>
     <constant name="GEMTrackerEndcap_dz"              value="15*mm" />
     <comment>
@@ -87,7 +87,7 @@
 
   <detectors>
     <detector
-      id="GEMTrackerEndcapP_ID"
+      id="TrackerEndcapP_3_ID"
       name="GEMTrackerEndcapP"
       type="athena_GEMTrackerEndcap"
       readout="GEMTrackerEndcapHits"
@@ -151,7 +151,7 @@
     </detector>
 
     <detector
-      id="GEMTrackerEndcapN_ID"
+      id="TrackerEndcapN_3_ID"
       name="GEMTrackerEndcapN"
       type="athena_GEMTrackerEndcap"
       readout="GEMTrackerEndcapHits"
diff --git a/compact/materials.xml b/compact/materials.xml
index 4829091dba36c1632c098cf201fb2a74fc5928cd..4b844019d6df07f46419665c429324bafb6fdf1f 100644
--- a/compact/materials.xml
+++ b/compact/materials.xml
@@ -318,4 +318,23 @@
     <composite n="8" ref="C"/>
     <composite n="8" ref="H"/>
   </material>
+  <material name="MMGAS_ResistivePaste">
+    <D type="density" unit="g/cm3" value="0.77906"/>
+    <composite n="1" ref="C"/>
+  </material>
+  <material name="MMGAS_InoxForMesh" state="solid">
+  	<D type="density" unit="g/cm3" value="2.8548"/>
+    <fraction n="0.19" ref="Cr"/>
+  	<fraction n="0.68" ref="Fe"/>
+   	<fraction n="0.02" ref="Mn"/>
+   	<fraction n="0.10" ref="Ni"/>
+   	<fraction n="0.01" ref="Si"/>
+  </material>
+  <material name="Ar90IsoButane" state="gas">
+    <D type="density" unit="g/cm3" value="0.00170335"/>
+    <fraction n="0.90" ref="Ar"/>
+    <fraction n="0.0826586" ref="C"/>
+    <fraction n="0.0173414" ref="H"/>
+  </material>
+
 </materials>
diff --git a/compact/mrich.xml b/compact/mrich.xml
index 703e620df7f5ba2047719b60309c06f6a1ba2956..3f816e429c64f5218de3cbb524862061ad5ee8cf 100644
--- a/compact/mrich.xml
+++ b/compact/mrich.xml
@@ -2,9 +2,9 @@
   <comment> MRICH </comment>        
   <define>
     <constant name="MRICH_rmin"   value="10*cm"/>
-    <constant name="MRICH_rmax"   value="BackwardPID_rmax"/>
-    <constant name="MRICH_length" value="BackwardPID_length"/>
-    <constant name="MRICH_zmin"   value="BackwardPID_zmin"/>
+    <constant name="MRICH_rmax"   value="BackwardPIDRegion_rmax"/>
+    <constant name="MRICH_length" value="BackwardPIDRegion_length"/>
+    <constant name="MRICH_zmin"   value="BackwardPIDRegion_zmin"/>
 
     <constant name="MRICHAerogel_thickness"           value="30.0*mm"/>
     <constant name="MRICHAerogel_width"               value="126.5*mm"/>
diff --git a/compact/mrich_alt.xml b/compact/mrich_alt.xml
index b12897eb58e8f018762e4006aaba05a8940e89d5..72a7f9a29e369a027bdd3d319e9e1e6cba4c3a8c 100644
--- a/compact/mrich_alt.xml
+++ b/compact/mrich_alt.xml
@@ -2,9 +2,9 @@
   <comment> MRICH (alternative design) </comment>        
   <define>
     <constant name="MRICH_rmin"   value="10*cm"/>
-    <constant name="MRICH_rmax"   value="BackwardPID_rmax"/>
-    <constant name="MRICH_length" value="BackwardPID_length"/>
-    <constant name="MRICH_zmin"   value="BackwardPID_zmin"/>
+    <constant name="MRICH_rmax"   value="BackwardPIDRegion_rmax"/>
+    <constant name="MRICH_length" value="BackwardPIDRegion_length"/>
+    <constant name="MRICH_zmin"   value="BackwardPIDRegion_zmin"/>
 
     <constant name="MRICHAerogel_thickness"           value="30.0*mm"/>
     <constant name="MRICHAerogel_width"               value="126.5*mm"/>
diff --git a/compact/pid_config_canyonlands.xml b/compact/pid_config_canyonlands.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb98490f6f4a1c4eb8522552be572793c48a08a5
--- /dev/null
+++ b/compact/pid_config_canyonlands.xml
@@ -0,0 +1,8 @@
+<lccdd>
+
+<include ref="fake_dirc.xml"/>
+<!--include ref="dirc.xml"/-->
+<!--include ref="mrich.xml"/-->
+<include ref="drich.xml"/>
+
+</lccdd>
diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml
index 81386563f184eebe48dc53474ce999b1fda1f43d..90233393031feb5516e402c397fec2cb40958f4e 100644
--- a/compact/subsystem_views/calorimeters.xml
+++ b/compact/subsystem_views/calorimeters.xml
@@ -97,50 +97,6 @@
   </documentation>
   <include ref="compact/solenoid.xml"/>
 
-  <documentation level="5">
-      ### Tracker subassemblies for ACTS
-  </documentation>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-  </detectors>
-
-
   <documentation level="10">
   ## Central calorimetry
   </documentation>
diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml
index 9031454a023ec85223c883691273e7cc6041cb7c..0dfbc0640c17d7cf07d76b0fa36e3f3053912597 100644
--- a/compact/subsystem_views/inner_detector.xml
+++ b/compact/subsystem_views/inner_detector.xml
@@ -96,81 +96,16 @@
       Note: When changing magnet, also select dimensions in definitions.xml.
   </documentation>
 
-  <documentation level="5">
-      ### Tracker subassemblies for ACTS
-  </documentation>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-  </detectors>
-
   <documentation level="10">
     ## Central tracking detectors
   </documentation>
 
-  <include ref="compact/tracking_config_acadia.xml"/>
-
-  <!--include ref="compact/tracking_config_mgpds.xml"/-->
+  <include ref="compact/tracking_config_canyonlands.xml"/>
 
   <documentation level="10">
   ### PID detectors
   </documentation>
-  <include ref="compact/pid_config_acadia.xml"/>
+  <include ref="compact/pid_config_canyonlands.xml"/>
 
   <documentation level="10">
   ## Central calorimetry
diff --git a/compact/subsystem_views/inner_tracking_only.xml b/compact/subsystem_views/inner_tracking_only.xml
deleted file mode 100644
index 9b0bb13e5f542d94842b87ff987358f9267deb3e..0000000000000000000000000000000000000000
--- a/compact/subsystem_views/inner_tracking_only.xml
+++ /dev/null
@@ -1,242 +0,0 @@
-<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
-       xmlns:xs="http://www.w3.org/2001/XMLSchema"
-       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
-
-       <debug>
-         <type name="surface"       value="0"/>
-         <type name="material"       value="0"/>
-         <type name="readout"       value="0"/>
-         <type name="segmentation"  value="0"/>
-         <type name="limits"        value="0"/>
-         <type name="region"        value="0"/>
-         <type name="includes"      value="0"/>
-       </debug>
-
-  <documentation level="-1">
-  # Athena Detector 
-  - https://eicweb.phy.anl.gov/EIC/detectors/athena.git 
-  - https://eicweb.phy.anl.gov/EIC/detectors/ip6.git
-  </documentation>
-
-  <!-- Some information about detector  -->
-  <info name="Athena Detector" title="Athena Detector"
-        author="Athena Collaboration"
-	url="https://eicweb.phy.anl.gov/EIC/detectors/athena.git"
-	status="development"
-	version="v1 2021-03-16">
-  <comment> Athena </comment>
-  </info>
-  <define>
-  <documentation level="2">
-      ## Main Constant Definitions
-
-      The ip6 (or other ip) defines should be included first.
-      These files have only a define tags.
-  </documentation>
-    <include ref="ip6/ip6_defs.xml" /> 
-    <include ref="ip6/far_forward_fields_275.xml" />
-    <include ref="compact/definitions.xml" />
-  </define>
-
-  <includes>
-    <gdmlFile ref="compact/elements.xml"/>
-    <gdmlFile ref="compact/materials.xml"/>
-    <file     ref="compact/optical_materials.xml"/>
-  </includes>
-
-  <limits>
-    <limitset name="EICBeamlineLimits">
-      <limit name="step_length_max" particles="*" value="1.0" unit="mm" />
-      <limit name="track_length_max" particles="*" value="1.0" unit="mm" />
-      <limit name="time_max" particles="*" value="0.1" unit="ns" />
-      <limit name="ekin_min" particles="*" value="0.001" unit="MeV" />
-      <limit name="range_min" particles="*" value="0.1" unit="mm" />
-    </limitset>
-    <limitset name="cal_limits">
-      <limit name="step_length_max" particles="*" value="5.0" unit="mm"/>
-    </limitset>
-  </limits>
-
-  <display>
-  <include ref="compact/colors.xml" />
-  <include ref="compact/display.xml" />
-  </display>
-
-  <documentation level="0">
-    ## Detector Subsystems
-
-    ### IP Subsystems
-
-    The interaction point subsystems are included before the central detector subsystems.
-    This is becuase the IP subsystems, for exmaple the beampipe, will define paramters
-    which are subsquently used in the central detector construction -- e.g. the vertex tracker
-    uses the beampipe OD to help define its placement. 
-
-    The IP subsystems include the Far forward and backward regions. The list of subsystem includes:
-     - Interaction region beampipe 
-     - B0 tracker
-     - Off-momentum tracker
-     - Far forward roman pots
-     - Zero Degree Calorimeter
-     - Beam line magnets.
-     - and more...
-  </documentation>
-
-  <comment>
-      Beamline elements
-      -----------------
-  </comment>
-
-  <comment>
-      Main magnet
-      -----------
-      Note: When changing magnet, also select dimensions in definitions.xml.
-  </comment>
-  <!--include ref="compact/solenoid.xml"/-->
-
-  <comment>
-      Tracker subassemblies for ACTS
-      ------------------------------
-  </comment>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-
-  </detectors>
-
-  <comment>
-      Central tracking detectors
-      --------------------------
-  </comment>
-  <include ref="compact/vertex_tracker.xml"/>
-  <include ref="compact/central_tracker.xml"/>
-
-  <comment>
-      PID detectors
-      -------------
-  </comment>
-
-  <fields>
-    <field name="B0PF_Magnet" type="MultipoleMagnet">
-      <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/>
-      <rotation x="0" y="B0PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/>
-      <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/>
-      <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
-    </field>
-    <field name="B0APF_Magnet" type="MultipoleMagnet">
-      <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/>
-      <rotation x="0" y="B0APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/>
-      <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/>
-      <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
-    </field>
-    <field name="Q1APF_Magnet" type="MultipoleMagnet">
-      <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/>
-      <rotation x="0" y="Q1APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/>
-      <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="Q1BPF_Magnet" type="MultipoleMagnet">
-      <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/>
-      <rotation x="0" y="Q1BPF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/>
-      <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="Q2PF_Magnet" type="MultipoleMagnet">
-      <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/>
-      <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/>
-      <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B1PF_Magnet" type="MultipoleMagnet">
-      <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/>
-      <rotation x="0" y="B1PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/>
-      <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B1APF_Magnet" type="MultipoleMagnet">
-      <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/>
-      <rotation x="0" y="B1APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/>
-      <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B2PF_Magnet" type="MultipoleMagnet">
-      <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/>
-      <rotation x="0" y="B2PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/>
-      <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-  </fields>
-
-  <comment>
-      FB elements
-      -----------
-      None (TODO)
-  </comment>
-
-  <readouts>
-  </readouts>
-
-</lccdd>
diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml
index c5103a4a46a61d6ce46d47edcf9e2b143c79f529..0ee9acd1d78923da3c447fbb38454c6749bc87e5 100644
--- a/compact/subsystem_views/pid_only.xml
+++ b/compact/subsystem_views/pid_only.xml
@@ -86,76 +86,13 @@
       Beamline elements
       -----------------
   </comment>
+  <include ref="ip6/beampipe.xml" />
   <comment>
       Main magnet
       -----------
       Note: When changing magnet, also select dimensions in definitions.xml.
   </comment>
 
-  <comment>
-      Tracker subassemblies for ACTS
-      ------------------------------
-  </comment>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-  </detectors>
-
   <documentation level="10">
     ## Central tracking detectors
   </documentation>
@@ -164,7 +101,7 @@
       PID detectors
       -------------
   </comment>
-  <include ref="compact/pid_config_acadia.xml"/>
+  <include ref="compact/pid_config_canyonlands.xml"/>
 
 
   <comment>
diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml
index 1f23d873de60e8b13fe4bf6683ee768b3edfc52d..de12be8e303c67673c89aac97f74ecffe93706bf 100644
--- a/compact/subsystem_views/tracking_only.xml
+++ b/compact/subsystem_views/tracking_only.xml
@@ -86,6 +86,7 @@
       Beamline elements
       -----------------
   </comment>
+  <include ref="ip6/beampipe.xml" />
 
   <comment>
       Main magnet
@@ -94,76 +95,11 @@
   </comment>
   <!--include ref="compact/solenoid.xml"/-->
 
-  <comment>
-      Tracker subassemblies for ACTS
-      ------------------------------
-  </comment>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-
-  </detectors>
-
   <comment>
       Central tracking detectors
       --------------------------
   </comment>
-  <include ref="compact/tracking_config_acadia.xml"/>
+  <include ref="compact/tracking_config_canyonlands.xml"/>
 
   <comment>
       PID detectors
diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml
index 20852f15a9168a44220ff34fbbf3a4aa6677a5a7..18cbd2cd29c6891e9ae4d849a8146bb913731497 100644
--- a/compact/subsystem_views/vertex_only.xml
+++ b/compact/subsystem_views/vertex_only.xml
@@ -94,75 +94,11 @@
   </comment>
   <!--include ref="compact/solenoid.xml"/-->
 
-  <comment>
-      Tracker subassemblies for ACTS
-      ------------------------------
-  </comment>
-  <detectors>
-    <detector id="VertexBarrelSubAssembly_ID"
-      name="VertexBarrelSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexBarrel" />
-    </detector>
-    <detector id="VertexEndcapSubAssembly_ID"
-      name="VertexEndcapSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="VertexEndcapN" />
-      <composite name="VertexEndcapP" />
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Inner_ID"
-      name="TrackerBarrelSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Inner"/>
-    </detector>
-    <detector id="TrackerEndcapSubAssembly_Inner_ID"
-      name="TrackerEndcapSubAssembly_Inner"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerEndcapN_Inner"/>
-      <composite name="TrackerEndcapP_Inner"/>
-    </detector>
-
-    <detector id="TrackerBarrelSubAssembly_Outer_ID"
-      name="TrackerSubAssembly_Outer"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TrackerSubAssemblyVis">
-      <composite name="TrackerBarrel_Outer"/>
-      <composite name="TrackerEndcapP_Outer"/>
-      <composite name="TrackerEndcapN_Outer"/>
-    </detector>
-
-    <comment>
-      TOF disabled for baseline
-      <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="TOFSubAssemblyVis">
-      <composite name="BarrelTOF"/>
-      <composite name="ForwardTOF"/>
-      <composite name="BackwardTOF"/>
-    </detector>
-    </comment>
-
-    <detector id="OuterTrackingSubAssembly_ID"
-      name="OuterTrackingSubAssembly"
-      type="DD4hep_SubdetectorAssembly"
-      vis="SubAssemblyVis">
-      <composite name="GEMTrackerEndcapP"/>
-      <composite name="GEMTrackerEndcapN"/>
-    </detector>
-
-  </detectors>
-
   <comment>
       Central tracking detectors
       --------------------------
   </comment>
-  <include ref="compact/vertex_tracker.xml"/>
+  <include ref="compact/vertex_tracker_3layers.xml"/>
 
   <comment>
       PID detectors
diff --git a/compact/tracking_config_acadia.xml b/compact/tracking_config_acadia.xml
index 03b4fdaf9bada6cbe7103b3a34322b660809f788..be7e595d9502291e2df43c963d640236df4bf873 100644
--- a/compact/tracking_config_acadia.xml
+++ b/compact/tracking_config_acadia.xml
@@ -9,6 +9,45 @@
     ### 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="VertexEndcapN" />
+      <composite name="VertexBarrel" />
+      <composite name="VertexEndcapP" />
+    </detector>
+    <detector id="TrackerSubAssembly_0_ID"
+      name="TrackerBarrelSubAssembly_Inner"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="TrackerEndcapN_Inner"/>
+      <composite name="TrackerBarrel_Inner"/>
+      <composite name="TrackerEndcapP_Inner"/>
+    </detector>
+    <detector id="TrackerSubAssembly_1_ID"
+      name="TrackerSubAssembly_Outer"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="TrackerBarrel_Outer"/>
+      <composite name="TrackerEndcapP_Outer"/>
+      <composite name="TrackerEndcapN_Outer"/>
+    </detector>
+
+    <detector id="TrackerSubAssembly_1_ID"
+      name="OuterTrackingSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="SubAssemblyVis">
+      <composite name="GEMTrackerEndcapP"/>
+      <composite name="GEMTrackerEndcapN"/>
+    </detector>
+
+  </detectors>
+
   <include ref="vertex_tracker.xml"/>
   <include ref="central_tracker.xml"/>
   <include ref="gem_tracker_endcap.xml"/>
diff --git a/compact/tracking_config_canyonlands.xml b/compact/tracking_config_canyonlands.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34518ba6a14bd0578737535ae5f62a608d4b96a4
--- /dev/null
+++ b/compact/tracking_config_canyonlands.xml
@@ -0,0 +1,71 @@
+<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="MedialTrackerBarrel"/>
+      <composite name="MedialTrackerEndcapP"/>
+    </detector>
+    <detector id="TrackerSubAssembly_2_ID"
+      name="OuterTrackerSubAssembly"
+      type="DD4hep_SubdetectorAssembly"
+      vis="TrackerSubAssemblyVis">
+      <composite name="OuterTrackerEndcapNAssembly"/>
+      <composite name="OuterTrackerBarrel"/>
+      <composite name="OuterTrackerEndcapPAssembly"/>
+    </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>
+
+  </detectors>
+
+  <include ref="vertex_tracker_3layers.xml"/>
+  <include ref="central_tracker_hybrid_v2.xml"/>
+
+</lccdd>
+
diff --git a/compact/vertex_tracker.xml b/compact/vertex_tracker.xml
index accefce6b35170460dcd85f4314cdc96805127a4..b21915495bff1828b4caa9a1f48079a334bc0145 100644
--- a/compact/vertex_tracker.xml
+++ b/compact/vertex_tracker.xml
@@ -5,8 +5,8 @@
       THis value probably can live in the file that includes this one.
     </comment>
     <constant name="ITS3Thickness"       value="40*um"/>
-   <constant name="TrackerCarbon_thickness"         value="0.12*mm"/> 
-    <constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/> 
+    <constant name="VertexCarbon_thickness"         value="0.12*mm"/> 
+    <constant name="VertexEndcapAluminumThickness" value="0.15*mm"/> 
 
     <documentation>
       #### Vertex Tracker Barrel Parameters
@@ -27,7 +27,14 @@ Simple carbon fiber support shell.
 
     </documentation>
 
-    <constant name="VertexBarrel_length"            value="VertexTrackerBarrel_length"/>
+    <constant name="VertexBarrel_length"            value="300.0*mm"/>
+    <constant name="VertexTrackerEndcapP_rmin"      value="VertexTrackingRegion_rmin"/>
+    <constant name="VertexTrackerEndcapN_rmin"      value="VertexTrackingRegion_rmin"/>
+    <constant name="VertexTrackerEndcapP_rmax"      value="VertexTrackingRegion_rmax"/>
+    <constant name="VertexTrackerEndcapN_rmax"      value="VertexTrackingRegion_rmax"/>
+    <constant name="VertexTrackerEndcapP_zmax"      value="VertexTrackingRegionP_zmax"/>
+    <constant name="VertexTrackerEndcapN_zmax"      value="VertexTrackingRegionN_zmax"/>
+
     <constant name="VertexBarrelLayer_length"       value="VertexBarrel_length - 1*mm"/>
     <constant name="VertexBarrelMod_length"         value="VertexBarrel_length - 2*mm"/>
 
@@ -98,8 +105,11 @@ Simple carbon fiber support shell.
   </display>
 
   <detectors>
+    <documentation level="5">
+        ### Actual detectors
+    </documentation>
     <detector
-      id="VertexBarrel_ID"
+      id="VertexBarrel_0_ID"
       name="VertexBarrel"
       type="athena_VertexBarrel"
       readout="VertexBarrelHits"
@@ -177,7 +187,7 @@ Simple carbon fiber support shell.
     </detector>
 
     <detector
-      id="VertexEndcapP_ID"
+      id="VertexEndcapP_0_ID"
       name="VertexEndcapP"
       type="athena_TrapEndcapTracker"
       readout="VertexEndcapHits"
@@ -201,8 +211,8 @@ Simple carbon fiber support shell.
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
         <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
-       <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
-        <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
+       <module_component thickness="VertexEndcapAluminumThickness"  material="Aluminum"/>
+        <module_component thickness="VertexCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <layer id="1">
         <envelope  vis="TrackerVis"
@@ -220,7 +230,7 @@ Simple carbon fiber support shell.
 
 
     <detector
-      id="VertexEndcapN_ID"
+      id="VertexEndcapN_0_ID"
       name="VertexEndcapN"
       type="athena_TrapEndcapTracker"
       readout="VertexEndcapHits"
@@ -243,8 +253,8 @@ Simple carbon fiber support shell.
       <module name="Module1" vis="AnlProcess_Blue">
         <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
         <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
-       <module_component thickness="TrackerEndcapAluminum_thickness"  material="Aluminum"/>
-        <module_component thickness="TrackerCarbon_thickness"          material="CarbonFiber"/>
+       <module_component thickness="VertexEndcapAluminumThickness"  material="Aluminum"/>
+        <module_component thickness="VertexCarbon_thickness"          material="CarbonFiber"/>
       </module>
       <layer id="1">
         <envelope  vis="TrackerVis"
@@ -260,58 +270,6 @@ Simple carbon fiber support shell.
       </layer>
     </detector>
 
-
-    <!--
-    <detector id="VertexEndcapP_ID" 
-      name="VertexEndcapP" 
-      type="athena_SimpleDiskTracker"
-      readout="VertexEndcapHits"
-      insideTrackingVolume="true" 
-      reflect="false" vis="TrackerVis">
-      <position x="0" y="0" z="0.0*mm"/>
-      <layer id="1" vis="AnlOrange"
-        inner_z="VertexTrackerEndcapP_zmin + 0.5*VertexTrackerEndcap_delta" 
-        inner_r="VertexTrackerEndcapP_rmin-3*mm" 
-        outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-        <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="2" vis="AnlOrange"
-        inner_z="VertexTrackerEndcapP_zmin + 1.5*VertexTrackerEndcap_delta" 
-        inner_r="VertexTrackerEndcapP_rmin" 
-        outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-        <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-    </detector>
-
-    <detector id="VertexEndcapN_ID" 
-      name="VertexEndcapN" 
-      type="athena_SimpleDiskTracker"
-      readout="VertexEndcapHits"
-      insideTrackingVolume="true"
-      reflect="true" vis="TrackerVis">
-      <position x="0" y="0" z="-0.0*mm-1.0e-9*mm"/>
-      <layer id="1" vis="AnlOrange"
-        inner_z="VertexTrackerEndcapN_zmin + 0.5*VertexTrackerEndcap_delta" 
-        inner_r="VertexTrackerEndcapN_rmin" 
-        outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-        <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="2" vis="AnlOrange"
-        inner_z="VertexTrackerEndcapN_zmin + 1.5*VertexTrackerEndcap_delta" 
-        inner_r="VertexTrackerEndcapN_rmin" 
-        outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-        <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange"  sensitive="true"/>
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-    </detector>
-    -->
   </detectors>
 
   <readouts>
diff --git a/compact/vertex_tracker_3layers.xml b/compact/vertex_tracker_3layers.xml
new file mode 100644
index 0000000000000000000000000000000000000000..20327d9ad979d9325bb6f3c56bce8875fd1ca7f6
--- /dev/null
+++ b/compact/vertex_tracker_3layers.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lccdd>
+  <define>
+    <comment>
+      Main parameters
+    </comment>
+
+    <constant name="SiVertexSensor_thickness"           value="40*um"/>
+    <constant name="VertexBarrelMod_length"             value="280.0*mm"/>
+    <constant name="VertexBarrelMod_rmin"               value="3.3*cm"/>
+    <constant name="VertexBarrelMod_offset"             value="1.05*cm"/>
+    <constant name="VertexBarrelMod_count"              value="3"/>
+    <constant name="VertexBarrelShell_thickness"        value="300.0*um"/>
+
+    <documentation>
+      #### Vertex Tracker Barrel Parameters
+
+- The sensor modules are 2 half-cylinders.
+- There are 2 sensitive layers
+- Each sensor has a thickness is 40um
+- There is an outer shell for structural support 300um thick.
+- The ID of this shell is set (arbitrarily) to 10 cm.
+
+      ##### Sensor layers
+
+Currently there are 2 sensor layers. Each is composed of 2 half-cylinders modules with only 40um of silicon thickness.
+
+      ##### Support shell
+
+Simple carbon fiber support shell.
+
+    </documentation>
+
+    <constant name="VertexBarrelEnvelope_length"    value="VertexTrackingRegion_length"/>
+    <constant name="VertexBarrelLayer_length"       value="VertexBarrelEnvelope_length - 1*mm"/>
+
+    <constant name="VertexBarrelLayer_thickness"    value="0.2*cm"/>
+    <constant name="VertexBarrelMod_thickness"      value="0.1*cm"/>
+
+    <constant name="VertexBarrelMod1_rmin"          value="VertexBarrelMod_rmin"/>
+    <constant name="VertexBarrelMod2_rmin"          value="VertexBarrelMod_rmin + 1 * VertexBarrelMod_offset"/>
+    <constant name="VertexBarrelMod3_rmin"          value="VertexBarrelMod_rmin + 2 * VertexBarrelMod_offset"/>
+
+    <constant name="VertexBarrelLayer1_rmin"        value="VertexBarrelMod_rmin - VertexBarrelLayer_thickness/2.0"/>
+    <constant name="VertexBarrelLayer1_rmax"        value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness"/>
+    <constant name="VertexBarrelLayer2_rmin"        value="VertexBarrelLayer1_rmin + 1 * VertexBarrelMod_offset"/>
+    <constant name="VertexBarrelLayer2_rmax"        value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness"/>
+    <constant name="VertexBarrelLayer3_rmin"        value="VertexBarrelLayer1_rmin + 2 * VertexBarrelMod_offset"/>
+    <constant name="VertexBarrelLayer3_rmax"        value="VertexBarrelLayer3_rmin + VertexBarrelLayer_thickness"/>
+
+    <comment> 
+      "Support" is to "shell" like "layer" is to "module", and is need for the flat stave barrel implementation.
+    </comment>
+    <constant name="VertexBarrelShell_rmin"         value="VertexBarrelMod_rmin + VertexBarrelMod_count * VertexBarrelMod_offset"/>
+    <constant name="VertexBarrelShell_rmax"         value="VertexBarrelShell_rmin + VertexBarrelShell_thickness"/>
+    <constant name="VertexBarrelShell_length"       value="VertexBarrelMod_length"/>
+
+    <constant name="VertexBarrelSupport_thickness"  value="0.1*cm"/>
+    <constant name="VertexBarrelSupport_rmin"       value="VertexBarrelShell_rmin-VertexBarrelSupport_thickness/2.0"/>
+    <constant name="VertexBarrelSupport_rmax"       value="VertexBarrelSupport_rmin + VertexBarrelSupport_thickness"/>
+    <constant name="VertexBarrelSupport_length"     value="VertexBarrelLayer_length"/>
+
+    <comment>
+      Extra parameters to approximate a cylinder as a set of skinny staves
+      due to ACTS limitations.
+    </comment>
+    <constant name="VertexBarrelStave_count"       value="128"/>
+    <constant name="VertexBarrelStave1_width"      value="2*VertexBarrelMod1_rmin * tan(180*degree/VertexBarrelStave_count)"/>
+    <constant name="VertexBarrelStave2_width"      value="2*VertexBarrelMod2_rmin * tan(180*degree/VertexBarrelStave_count)"/>
+    <constant name="VertexBarrelStave3_width"      value="2*VertexBarrelMod3_rmin * tan(180*degree/VertexBarrelStave_count)"/>
+    <constant name="VertexBarrelShellStave_width"  value="2*VertexBarrelShell_rmin * tan(180*degree/VertexBarrelStave_count)"/>
+  </define>
+
+  <display>
+  </display>
+
+  <detectors>
+    <documentation level="5">
+        ### Actual detectors
+    </documentation>
+    <detector
+      id="VertexBarrel_0_ID"
+      name="VertexBarrel"
+      type="athena_VertexBarrel"
+      readout="VertexBarrelHits"
+      insideTrackingVolume="true">
+      <dimensions
+        rmin="VertexBarrelLayer1_rmin"
+        rmax="VertexBarrelSupport_rmax"
+        length="VertexBarrelEnvelope_length" />
+      <comment>Vertex Barrel Modules</comment>
+      <module name="Module1" vis="VertexLayerVis">
+        <module_component name="ITS3"
+                          material="Silicon" 
+                          sensitive="true"
+                          width="VertexBarrelStave1_width" 
+                          length="VertexBarrelMod_length"
+                          thickness="SiVertexSensor_thickness" 
+                          vis="VertexLayerVis" />
+      </module>
+      <module name="Module2" vis="VertexLayerVis">
+        <module_component name="ITS3"
+                          material="Silicon" 
+                          sensitive="true"
+                          width="VertexBarrelStave2_width" 
+                          length="VertexBarrelMod_length"
+                          thickness="SiVertexSensor_thickness" 
+                          vis="VertexLayerVis" />
+      </module>
+      <module name="Module3" vis="VertexLayerVis">
+        <module_component name="ITS3"
+                          material="Silicon" 
+                          sensitive="true"
+                          width="VertexBarrelStave3_width" 
+                          length="VertexBarrelMod_length"
+                          thickness="SiVertexSensor_thickness" 
+                          vis="VertexLayerVis" />
+      </module>
+      <module name="SupportShell" vis="VertexSupportVis">
+        <module_component name="CF Shell"
+                          material="CarbonFiber" 
+                          sensitive="false"
+                          width="VertexBarrelShellStave_width" 
+                          length="VertexBarrelShell_length"
+                          thickness="VertexBarrelShell_thickness" 
+                          vis="VertexSupportVis" />
+      </module>
+      <comment> Layers composed of many arrayed modules  </comment>
+      <layer module="Module1" id="1" vis="VertexLayerVis">
+        <barrel_envelope
+          inner_r="VertexBarrelLayer1_rmin"
+          outer_r="VertexBarrelLayer1_rmax"
+          z_length="VertexBarrelLayer_length" />
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
+        <comment>
+          phi0     : Starting phi of first module.
+          phi_tilt : Phi tilt of a module.
+          rc       : Radius of the module center.
+          nphi     : Number of modules in phi.
+          rphi_dr  : The delta radius of every other module.
+          z0       : Z position of first module in phi.
+          nz       : Number of modules to place in z.
+          dr       : Radial displacement parameter, of every other module.
+        </comment>
+        <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod1_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="Module2" id="2" vis="VertexLayerVis">
+        <barrel_envelope
+          inner_r="VertexBarrelLayer2_rmin"
+          outer_r="VertexBarrelLayer2_rmax"
+          z_length="VertexBarrelLayer_length" />
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
+        <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod2_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="Module3" id="3" vis="VertexLayerVis">
+        <barrel_envelope
+          inner_r="VertexBarrelLayer3_rmin"
+          outer_r="VertexBarrelLayer3_rmax"
+          z_length="VertexBarrelLayer_length" />
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
+        <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod3_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+      <layer module="SupportShell" id="VertexBarrelMod_count + 1" vis="VertexSupportVis">
+        <barrel_envelope
+          inner_r="VertexBarrelSupport_rmin"
+          outer_r="VertexBarrelSupport_rmax"
+          z_length="VertexBarrelSupport_length" />
+        <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
+        <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelShell_rmin" dr="0.0 * mm"/>
+        <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
+      </layer>
+    </detector>
+  </detectors>
+
+  <readouts>
+    <readout name="VertexBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
+      <id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
+    </readout>
+  </readouts>
+
+</lccdd>
diff --git a/src/CompositeTracker_geo.cpp b/src/CompositeTracker_geo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..33ee7407e77c8a866f16dcd75d30b63e2ec57c17
--- /dev/null
+++ b/src/CompositeTracker_geo.cpp
@@ -0,0 +1,65 @@
+//==========================================================================
+//  Based off DD4hep_SubDetectorAssembly
+//
+//  This is a simple plugin to allow compositing different detectors
+//  into a single barrel or endcap for ACTS
+//  Note: positive/negative position strings differentiate between
+//        positive/negative endcaps
+//--------------------------------------------------------------------------
+
+#include "DD4hep/DetFactoryHelper.h"
+#include "DD4hep/Printout.h"
+#include "XML/Utilities.h"
+
+#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+
+using namespace dd4hep;
+using namespace dd4hep::detail;
+
+static Ref_t create_element(Detector& description, xml_h e, Ref_t)
+{
+  xml_det_t         x_det(e);
+  const std::string det_name = x_det.nameStr();
+  DetElement        sdet(det_name, x_det.id());
+  Volume            vol;
+  Position          pos;
+
+  const bool usePos = x_det.hasChild(_U(position));
+
+  sdet.setType("compound");
+  xml::setDetectorTypeFlag(e, sdet);
+
+  const std::string actsType = getAttrOrDefault(x_det, _Unicode(actsType), "endcap");
+  printout(DEBUG, det_name, "+++ Creating composite tracking detector (type: " + actsType + ")");
+  assert(actsType == "barrel" || actsType == "endcap");
+
+  // ACTS extension
+  {
+    Acts::ActsExtension* detWorldExt = new Acts::ActsExtension();
+    detWorldExt->addType(actsType, "detector");
+    sdet.addExtension<Acts::ActsExtension>(detWorldExt);
+  }
+
+  if (usePos) {
+    pos = Position(x_det.position().x(), x_det.position().y(), x_det.position().z());
+  }
+  vol = Assembly(det_name);
+  vol.setAttributes(description, x_det.regionStr(), x_det.limitsStr(), x_det.visStr());
+
+  Volume       mother = description.pickMotherVolume(sdet);
+  PlacedVolume pv;
+  if (usePos) {
+    pv = mother.placeVolume(vol, pos);
+  } else {
+    pv = mother.placeVolume(vol);
+  }
+  sdet.setPlacement(pv);
+  for (xml_coll_t c(x_det, _U(composite)); c; ++c) {
+    xml_dim_t         component = c;
+    const std::string nam       = component.nameStr();
+    description.declareParent(nam, sdet);
+  }
+  return sdet;
+}
+
+DECLARE_DETELEMENT(athena_CompositeTracker, create_element)