diff --git a/Algorithms/MaterialMapping/src/OutcomeRecording.cpp b/Algorithms/MaterialMapping/src/OutcomeRecording.cpp
index 580b7a5d897c5cf272b1b6f0ebbebecca4cbd2e4..09fb0a477317ab063ea739b41f26164d84149a74 100644
--- a/Algorithms/MaterialMapping/src/OutcomeRecording.cpp
+++ b/Algorithms/MaterialMapping/src/OutcomeRecording.cpp
@@ -60,8 +60,8 @@ FW::OutcomeRecording::execute(const FW::AlgorithmContext& context) const
   m_runManager->BeamOn(m_cfg.tracksPerEvent);
   // Retrieve the track material tracks from Geant4
   auto recordedParticles
-      = FW::Geant4::OREventAction::Instance()->outcomingParticles();
-  ACTS_INFO("Received " << recordedParticles.size()
+      = FW::Geant4::OREventAction::Instance()->outcomingParticles(m_cfg.pdg, m_cfg.momentum, m_cfg.phi, m_cfg.theta); // Keeping momentum in Acts units
+  ACTS_INFO("Received " << recordedParticles.particles.size()
                         << " particles. Writing them now onto file...");
 
   // Write the recorded material to the event store
diff --git a/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml b/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml
deleted file mode 100644
index 733439793e2f04597254a8365f88c11e974f9c32..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-    
-    <includes>
-        <gdmlFile  ref="../elements.xml"/>
-        <gdmlFile  ref="../materials.xml"/>
-    </includes>
-    
-    <info name="Demonstrator"
-        title="Demonstrator" 
-        author="Andreas.Salzburger@cern.ch" url="" status="test" version="0">
-        <comment>Demonstrator Detector for the acts webpage and documentation</comment>
-    </info>
-    
-    <define>
-        <!--World-->
-        <constant name="world_size" value="1*m"/>
-        <constant name="world_x" value="world_size"/>
-        <constant name="world_y" value="world_size"/>
-        <constant name="world_z" value="world_size"/>
-        <!--Dimensions of the beam pipe -->
-        <constant name="bp_rmin" value="34.5*mm"/>
-        <constant name="bp_rmax" value="35.5*mm"/>
-        <constant name="bp_length" value="200.*mm"/>        
-        <!--Dimension of the volume  -->
-        <constant name="bv_rmin" value="40.*mm"/>
-        <constant name="bv_rmax" value="80.*mm"/>
-        <constant name="bv_length" value="200.*mm"/>
-        <!--The layer -->
-        <constant name="bl0_rmin" value="45.*mm"/>
-        <constant name="bl0_rmax" value="65.*mm"/>
-        <constant name="bl0_length" value="200.*mm"/>
-        <!--The layer support shell-->
-        <constant name="bl0_s_rmin" value="64.*mm"/>
-        <constant name="bl0_s_rmax" value="65.*mm"/>
-        <constant name="bl0_s_length" value="50.*mm"/>
-        <!--The layer module -->
-        <constant name="bl0_m_dx" value="50.*mm"/>
-        <constant name="bl0_m_dy" value="50.*mm"/>
-        <constant name="bl0_m_dz" value="15.*mm"/> 
-        <constant name="bl0_m_r" value="57.*mm"/>
-        <constant name="bl0_m_nphi" value="8"/>
-        <constant name="bl0_m_phi0" value="0.144"/>
-        <constant name="bl0_m_phiTilt" value="0.25"/>
-        <!-- The module components -->
-        <constant name="bl0_m_c0_dx" value="48.*mm"/>
-        <constant name="bl0_m_c0_dy" value="48.*mm"/>
-        <constant name="bl0_m_c0_dz" value="0.125*mm"/>
-        <constant name="bl0_m_c0_ox" value="0.*mm"/>
-        <constant name="bl0_m_c0_oy" value="0.*mm"/>
-        <constant name="bl0_m_c0_oz" value="-7.43*mm"/>
-          
-        <constant name="bl0_m_c1_dx" value="45.*mm"/>
-        <constant name="bl0_m_c1_dy" value="45.*mm"/>
-        <constant name="bl0_m_c1_dz" value="2.*mm"/>
-        <constant name="bl0_m_c1_ox" value="0.*mm"/>
-        <constant name="bl0_m_c1_oy" value="0.*mm"/>
-        <constant name="bl0_m_c1_oz" value="-6.2*mm"/>
-        
-        <constant name="bl0_m_c2_dx" value="45.*mm"/>
-        <constant name="bl0_m_c2_dy" value="13.*mm"/>
-        <constant name="bl0_m_c2_dz" value="0.75*mm"/>
-        <constant name="bl0_m_c2_ox" value="0.*mm"/>
-        <constant name="bl0_m_c2_oy" value="15.*mm"/>
-        <constant name="bl0_m_c2_oz" value="-4.8*mm"/>  
-        
-        <constant name="bl0_m_c3_dx" value="45.*mm"/>
-        <constant name="bl0_m_c3_dy" value="11.*mm"/>
-        <constant name="bl0_m_c3_dz" value="0.75*mm"/>
-        <constant name="bl0_m_c3_ox" value="0.*mm"/>
-        <constant name="bl0_m_c3_oy" value="15.*mm"/>
-        <constant name="bl0_m_c3_oz" value="-4.7*mm"/>  
-        
-        <constant name="bl0_m_c4_dx" value="55.*mm"/>
-        <constant name="bl0_m_c4_dy" value="8.*mm"/>
-        <constant name="bl0_m_c4_dz" value="3.*mm"/>
-        <constant name="bl0_m_c4_ox" value="0.*mm"/>
-        <constant name="bl0_m_c4_oy" value="13.*mm"/>
-        <constant name="bl0_m_c4_oz" value="7.0*mm"/>  
-        
-        <constant name="bl0_m_p_rmin" value="3.*mm"/>
-        <constant name="bl0_m_p_rmax" value="4.*mm"/>
-        <constant name="bl0_m_p_length" value="55.*mm"/>
-        <constant name="bl0_m_p_ox" value="0.*mm"/>
-        <constant name="bl0_m_p_oy" value="0.*mm"/>
-        <constant name="bl0_m_p_oz" value="-1.*mm"/>  
-        
-        <constant name="bl0_m_cs_dx" value="5.*mm"/>
-        <constant name="bl0_m_cs_dy" value="9.*mm"/>
-        <constant name="bl0_m_cs_dz" value="0.5*mm"/>
-        <constant name="bl0_m_cs_rot" value="1.2"/>
-        <constant name="bl0_m_cs_ox" value="0.*mm"/>
-        <constant name="bl0_m_cs_oy" value="13.*mm"/>
-        <constant name="bl0_m_cs_oz" value="1.*mm"/>  
-        
-        <constant name="bl0_m_m_x1" value="5.*mm"/>
-        <constant name="bl0_m_m_x2" value="1.*mm"/>
-        <constant name="bl0_m_m_length" value="12.*mm"/>
-        <constant name="bl0_m_m_dz" value="3.8*mm"/>
-        <constant name="bl0_m_m_ox" value="0.*mm"/>
-        <constant name="bl0_m_m_oy" value="-11.*mm"/>
-        <constant name="bl0_m_m_oz" value="-1.*mm"/>  
-        
-    </define>
-        
-    <display>
-        <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="yellow" r="0.65" g="0.65" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="grey" r="0.7" g="0.6" b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="bluetrans" alpha="0.5" r="0.0" g="0.0" b="0.5" showDaughters="true" visible="true"/>
-    </display>
-        
-    <readouts>
-        <readout name="BarrelReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:1,layer:1,support:4,module:8,component:8,x:4,y:4</id>
-        </readout>
-    </readouts>
-        
-    <detectors>
-      <detector id="0" name="beampipe" type="DemonstratorBeamPipe" vis="blue">
-        <status id="0" />
-            <description rmin="bp_rmin" rmax="bp_rmax" dz="bp_length" material="Beryllium"/>
-      </detector>
-      <detector id="1" name="barrel" type="DemonstratorBarrel" vis="invisible" readout="BarrelReadout">
-          <dimensions rmin="bv_rmin" rmax="bv_rmax" dz="bv_length"/>
-          <layer id="0" rmin="bl0_rmin" rmax="bl0_rmax" dz="bl0_length" material="Air" vis="invisible">
-            <module dx="bl0_m_dx" dy="bl0_m_dy" dz="bl0_m_dz" material="Air" vis="invisible"> 
-              <placements r="bl0_m_r" nphi="bl0_m_nphi" phi0="bl0_m_phi0" phi_tilt="bl0_m_phiTilt"/>
-              <module_component sensitive="true" material="Silicon" dx="bl0_m_c0_dx" dy="bl0_m_c0_dy" dz="bl0_m_c0_dz" x_offset="bl0_m_c0_ox" y_offset="bl0_m_c0_oy" z_offset="bl0_m_c0_oz" vis="green" />
-              <module_component sensitive="false" material="Kapton" dx="bl0_m_c1_dx" dy="bl0_m_c1_dy" dz="bl0_m_c1_dz" x_offset="bl0_m_c1_ox" y_offset="bl0_m_c1_oy" z_offset="bl0_m_c1_oz" vis="yellow" />
-              <module_component sensitive="false" material="Al" dx="bl0_m_c2_dx" dy="bl0_m_c2_dy" dz="bl0_m_c2_dz" x_offset="bl0_m_c2_ox" y_offset="bl0_m_c2_oy" z_offset="bl0_m_c2_oz" vis="orange" />
-              <module_component sensitive="false" material="Co" dx="bl0_m_c3_dx" dy="bl0_m_c3_dy" dz="bl0_m_c3_dz" x_offset="bl0_m_c3_ox" y_offset="bl0_m_c3_oy" z_offset="bl0_m_c3_oz" vis="blue" />
-              <module_component sensitive="false" material="Kapton" dx="bl0_m_c4_dx" dy="bl0_m_c4_dy" dz="bl0_m_c4_dz" x_offset="bl0_m_c4_ox" y_offset="bl0_m_c4_oy" z_offset="bl0_m_c4_oz" vis="blue" />
-              <tubs material="Ti" rmin="bl0_m_p_rmin" rmax="bl0_m_p_rmax" length="bl0_m_p_length" x_offset="bl0_m_p_ox" y_offset="bl0_m_p_oy" z_offset="bl0_m_p_oz"  vis="grey"/>
-              <anchor material="CarbonFiber" x1="bl0_m_m_x1" x2="bl0_m_m_x2" length="bl0_m_m_length" dz="bl0_m_m_dz"  x_offset="bl0_m_m_ox" y_offset="bl0_m_m_oy" z_offset="bl0_m_m_oz"  vis="grey"/>
-              <box material="Kapton" dx="bl0_m_cs_dx" dy="bl0_m_cs_dy" dz="bl0_m_cs_dz" alpha="bl0_m_cs_rot" x_offset="bl0_m_cs_ox" y_offset="bl0_m_cs_oy" z_offset="bl0_m_cs_oz" vis="blue"/>
-            </module>
-            <support rmin="bl0_s_rmin" rmax="bl0_s_rmax" dz="bl0_s_length" material="CarbonFiber" vis="grey"/>
-          </layer>  
-      </detector>
-    </detectors>
-</lccdd>
diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4692a86527ee6b541910b9c63aff8d1ce70cb8ff
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    
+    <includes>
+        <gdmlFile  ref="../elements.xml"/>
+        <gdmlFile  ref="../materials.xml"/>
+    </includes>
+    
+    <info name="GenericDetectorML"
+        title="A generic detector used for the machine learning challenge."
+        author="" url="" status="test" version="0">
+        <comment></comment>
+    </info>
+    
+    <define>
+        <!--World-->
+        <constant name="world_size" value="30*m"/>
+        <constant name="world_x" value="world_size"/>
+        <constant name="world_y" value="world_size"/>
+        <constant name="world_z" value="world_size"/>
+        <!--BeamPipe-->
+        <constant name="BeamPipe_rmin" value="18.6*mm"/>
+        <constant name="BeamPipe_rmax" value="19.4*mm"/>
+        <constant name="BeamPipe_hLength" value="3000.*mm"/>
+        <!--Barrel0-->
+        <constant name="B0_rmin"            value="22.*mm"/>
+        <constant name="B0_rmax"            value="180.*mm"/>
+        <constant name="B0_dz"              value="500.*mm"/>
+        <constant name="B0_zpos"            value="0.*mm"/>
+        <constant name="B0_M_repeatZ"       value="14"/>
+        <constant name="B0_L_dz"            value="491*mm"/>
+        <constant name="B0_phiTilt"         value="0.14*rad"/>
+        <!--Layer0-->
+        <constant name="B0_L0_rmin"         value="30.*mm"/>
+        <constant name="B0_L0_rmax"         value="34.*mm"/>
+        <constant name="B0_L0_M_repeatPhi"  value="16"/>
+        <!--Layer1-->
+        <constant name="B0_L1_rmin"         value="70.*mm"/>
+        <constant name="B0_L1_rmax"         value="74.*mm"/>
+        <constant name="B0_L1_M_repeatPhi"  value="32"/>
+        <!--Layer2-->
+        <constant name="B0_L2_rmin"         value="114.*mm"/>
+        <constant name="B0_L2_rmax"         value="118.*mm"/>
+        <constant name="B0_L2_M_repeatPhi"  value="52"/>
+        <!--Layer3-->
+        <constant name="B0_L3_rmin"         value="170.*mm"/>
+        <constant name="B0_L3_rmax"         value="174.*mm"/>
+        <constant name="B0_L3_M_repeatPhi"  value="78"/>
+        <!--Module-->
+        <constant name="B0_M_hWidth"          value="8.4*mm"/>
+        <constant name="B0_M_hLength"         value="36.*mm"/>
+        <constant name="B0_M_hThickness"      value="0.15*mm"/>
+        <constant name="B0_M_OverlapZ"        value="2.*mm"/>
+        <constant name="B0_M_offsetR"         value="0.5*mm"/>
+        <!--EndCap0-->
+        <constant name="E0_rmin"            value="22.*mm"/>
+        <constant name="E0_rmax"            value="180.*mm"/>
+        <constant name="E0_dz"              value="600.*mm"/>
+        <constant name="pE0_zpos"           value="1100.*mm"/>
+        <!--Layers-->
+        <constant name="E0_L_dz"            value="2*mm"/>
+        <constant name="E0_L_ringStagger"  value="0.*mm"/>
+        <!--Layer0-->
+        <constant name="E0_L0_pos"          value="-500.*mm"/>        
+        <constant name="E0_L1_pos"          value="-400.*mm"/>
+        <constant name="E0_L2_pos"          value="-280.*mm"/>
+        <constant name="E0_L3_pos"          value="-140.*mm"/>
+        <constant name="E0_L4_pos"          value="0.*mm"/>
+        <constant name="E0_L5_pos"          value="200.*mm"/>
+        <constant name="E0_L6_pos"          value="400.*mm"/>
+        <!--Module and Ring Info-->
+        <!--Module0-->
+        <constant name="E0_M0_X1"            value="8.4*mm"/>
+        <constant name="E0_M0_X2"            value="8.4*mm"/>
+        <constant name="E0_M0_hLength"      value="36.*mm"/>
+        <constant name="E0_M0_hThickness"   value="0.15*mm"/>
+        <constant name="E0_M0_r"            value="66*mm"/>
+        <constant name="E0_M0_modulesInPhi" value="40"/> 
+        <constant name="E0_M0_stagger"      value="4.*mm"/>
+        <constant name="E0_M0_subStagger"   value="0.5*mm"/>
+        <!--Module1-->
+        <constant name="E0_M1_X1"            value="8.4*mm"/>
+        <constant name="E0_M1_X2"            value="8.4*mm"/>
+        <constant name="E0_M1_hLength"      value="36.*mm"/>
+        <constant name="E0_M1_hThickness"   value="0.15*mm"/>
+        <constant name="E0_M1_r"            value="140*mm"/>
+        <constant name="E0_M1_modulesInPhi" value="68"/> 
+        <constant name="E0_M1_stagger"      value="4.*mm"/>
+        <constant name="E0_M1_subStagger"   value="0.*mm"/>
+        <!--Barrel1-->
+        <constant name="B1_rmin"            value="185.*mm"/>
+        <constant name="B1_rmax"            value="700.*mm"/>
+        <constant name="B1_dz"              value="1086*mm"/>
+        <constant name="B1_zpos"            value="0.*mm"/>
+        <constant name="B1_M_repeatZ"       value="21"/> 
+        <constant name="B1_L_dz"            value="5*mm"/>
+        <constant name="B1_phiTilt"		    value="-0.15*rad"/>
+        <!--Layer0-->
+        <constant name="B1_L0_rmin"         value="258.*mm"/>
+        <constant name="B1_L0_rmax"         value="262.*mm"/>
+        <constant name="B1_L0_M_repeatPhi"  value="40"/> 
+        <!--Layer1-->
+        <constant name="B1_L1_rmin"         value="358.*mm"/>
+        <constant name="B1_L1_rmax"         value="362.*mm"/>
+        <constant name="B1_L1_M_repeatPhi"  value="56"/>
+        <!--Layer2-->
+        <constant name="B1_L2_rmin"         value="498.*mm"/>
+        <constant name="B1_L2_rmax"         value="502.*mm"/>
+        <constant name="B1_L2_M_repeatPhi"  value="78"/>
+        <!--Layer3-->
+        <constant name="B1_L3_rmin"         value="658.*mm"/>
+        <constant name="B1_L3_rmax"         value="662.*mm"/>
+        <constant name="B1_L3_M_repeatPhi"  value="102"/>
+        <!--Module-->
+        <constant name="B1_M_hWidth"         value="24.*mm"/>
+        <constant name="B1_M_hLength"        value="54.*mm"/>
+        <constant name="B1_M_hThickness"     value="0.25*mm"/>
+        <constant name="B1_M_OverlapZ"       value="5.*mm"/>
+        <constant name="B1_M_offsetR"        value="3.*mm"/>
+        <!--EndCap1-->
+        <constant name="E1_rmin"            value="185.*mm"/>
+        <constant name="E1_rmax"            value="700*mm"/>
+        <constant name="E1_dz"              value="1000.*mm"/>
+        <constant name="pE1_zpos"           value="2000.*mm"/>
+        <!--Layers-->
+        <constant name="E1_L_dz"            value="2*mm"/>
+        <constant name="E1_L_ringStagger"   value="6.*mm"/>
+        <!--Layer0-->
+        <constant name="E1_L0_pos"          value="-780.*mm"/>        
+        <constant name="E1_L1_pos"          value="-500.*mm"/>
+        <constant name="E1_L2_pos"          value="-200.*mm"/>
+        <constant name="E1_L3_pos"          value="150.*mm"/>
+        <constant name="E1_L4_pos"          value="550.*mm"/>
+        <constant name="E1_L5_pos"          value="950.*mm"/>
+        <!--Module and Ring Info-->
+        <!--Module1-->
+        <constant name="E1_M0_X1"           value="16.4*mm"/>
+        <constant name="E1_M0_X2"           value="24.2*mm"/>
+        <constant name="E1_M0_hLength"      value="78.*mm"/>
+        <constant name="E1_M0_hThickness"   value="0.25*mm"/>
+        <constant name="E1_M0_r"            value="318*mm"/>
+        <constant name="E1_M0_modulesInPhi" value="54"/> 
+        <constant name="E1_M0_stagger"      value="3.*mm"/>
+        <constant name="E1_M0_subStagger"   value="0*mm"/>
+        <!--Module1-->
+        <constant name="E1_M1_X1"           value="24.2*mm"/>
+        <constant name="E1_M1_X2"           value="32.2*mm"/>
+        <constant name="E1_M1_hLength"      value="78.*mm"/>
+        <constant name="E1_M1_hThickness"   value="0.25*mm"/>
+        <constant name="E1_M1_r"            value="470*mm"/>
+        <constant name="E1_M1_modulesInPhi" value="56"/> 
+        <constant name="E1_M1_stagger"      value="3.*mm"/>
+        <constant name="E1_M1_subStagger"   value="0.*mm"/>
+        <!--Module2-->
+        <constant name="E1_M2_X1"           value="32.2*mm"/>
+        <constant name="E1_M2_X2"           value="40.*mm"/>
+        <constant name="E1_M2_hLength"      value="78.*mm"/>
+        <constant name="E1_M2_hThickness"   value="0.25*mm"/>
+        <constant name="E1_M2_r"            value="622*mm"/>
+        <constant name="E1_M2_modulesInPhi" value="60"/> 
+        <constant name="E1_M2_stagger"      value="3.*mm"/>
+        <constant name="E1_M2_subStagger"   value="0.*mm"/>
+        <!--Barrel2-->
+        <constant name="B2_rmin"            value="705.*mm"/>
+        <constant name="B2_rmax"            value="1100.*mm"/>
+        <constant name="B2_dz"              value="1086*mm"/>
+        <constant name="B2_zpos"            value="0.*mm"/>
+        <constant name="B2_M_repeatZ"       value="21"/> 
+        <constant name="B2_L_dz"            value="5*mm"/>
+        <constant name="B2_phiTilt"		    value="-0.15*rad"/>
+        <!--Layer0-->
+        <constant name="B2_L0_rmin"         value="818.*mm"/>
+        <constant name="B2_L0_rmax"         value="822.*mm"/>
+        <constant name="B2_L0_M_repeatPhi"  value="120"/> 
+        <!--Layer1-->
+        <constant name="B2_L1_rmin"         value="1018.*mm"/>
+        <constant name="B2_L1_rmax"         value="1022.*mm"/>
+        <constant name="B2_L1_M_repeatPhi"  value="152"/>
+        <!--Module-->
+        <constant name="B2_M_hWidth"         value="24.*mm"/>
+        <constant name="B2_M_hLength"        value="54.*mm"/>
+        <constant name="B2_M_hThickness"     value="0.35*mm"/>
+        <constant name="B2_M_OverlapZ"       value="5.*mm"/>
+        <constant name="B2_M_offsetR"        value="3.*mm"/>
+        <!--EndCap2-->
+        <constant name="E2_rmin"            value="705.*mm"/>
+        <constant name="E2_rmax"            value="1100*mm"/>
+        <constant name="E2_dz"              value="1000.*mm"/>
+        <constant name="pE2_zpos"           value="2000.*mm"/>
+        <!--Layers-->
+        <constant name="E2_L_dz"            value="2*mm"/>
+        <constant name="E2_L_ringStagger"   value="8.*mm"/>
+        <!--Layer0-->
+        <constant name="E2_L0_pos"          value="-780.*mm"/>        
+        <constant name="E2_L1_pos"          value="-500.*mm"/>
+        <constant name="E2_L2_pos"          value="-200.*mm"/>
+        <constant name="E2_L3_pos"          value="150.*mm"/>
+        <constant name="E2_L4_pos"          value="550.*mm"/>
+        <constant name="E2_L5_pos"          value="950.*mm"/>
+        <!--Module and Ring Info-->
+        <!--ModulE2-->
+        <constant name="E2_M0_X1"           value="54.*mm"/>
+        <constant name="E2_M0_X2"           value="64.2*mm"/>
+        <constant name="E2_M0_hLength"      value="78.*mm"/>
+        <constant name="E2_M0_hThickness"   value="0.35*mm"/>
+        <constant name="E2_M0_r"            value="828*mm"/>
+        <constant name="E2_M0_modulesInPhi" value="48"/> 
+        <constant name="E2_M0_stagger"      value="3.*mm"/>
+        <constant name="E2_M0_subStagger"   value="0*mm"/>
+        <!--ModulE2-->
+        <constant name="E2_M1_X1"           value="66.*mm"/>
+        <constant name="E2_M1_X2"           value="72.*mm"/>
+        <constant name="E2_M1_hLength"      value="78.*mm"/>
+        <constant name="E2_M1_hThickness"   value="0.35*mm"/>
+        <constant name="E2_M1_r"            value="942*mm"/>
+        <constant name="E2_M1_modulesInPhi" value="50"/> 
+        <constant name="E2_M1_stagger"      value="3.*mm"/>
+        <constant name="E2_M1_subStagger"   value="0.*mm"/>
+        
+</define>  
+
+    <display>
+        <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/>
+    </display>
+
+    <readouts>
+        <readout name="B_Pixel_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05625*mm"/>
+            <id>system:5,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+        <readout name="E_Pixel_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05625*mm"/>
+            <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+        <readout name="B_ShortStrip_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.08*mm" grid_size_y="1.2*mm"/>
+            <id>system:5,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+        <readout name="E_ShortStrip_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.08*mm" grid_size_y="1.2*mm"/>
+            <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+         <readout name="B_LongStrip_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.12*mm" grid_size_y="10.8*mm"/>
+            <id>system:5,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+        <readout name="E_LongStrip_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.12*mm" grid_size_y="10.2*mm"/>
+            <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+    </readouts>
+
+
+  <include ref="GenericDetectorML_pixel.xml"/>
+  <include ref="GenericDetectorML_ShortStrip.xml"/>
+  <include ref="GenericDetectorML_LongStrip.xml"/>
+
+    <detectors>
+    <!--BeamPipe-->
+        <detector id="0" name="beampipe" type="BeamPipe">
+            <dimensions rmin="BeamPipe_rmin" rmax="BeamPipe_rmax" z="BeamPipe_hLength" vis="violet" material="Be"/>
+        </detector>
+        <detector id="1" name="Pixel" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel0"/>
+            <composite name="EndCap0"/>
+        </detector>
+        <detector id="2" name="ShortStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel1"/>
+            <composite name="EndCap1"/>
+        </detector>
+        <detector id="3" name="LongStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel2"/>
+            <composite name="EndCap2"/>
+        </detector>
+    </detectors>
+</lccdd>
diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0cf6d02814c24a1c2ca199cd13ac230bf6b9780b
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml
@@ -0,0 +1,42 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="300" name="Barrel2" type="ACTS_GenericMLBarrel" readout="B_LongStrip_Readout">
+        <dimensions rmin="B2_rmin" rmax="B2_rmax" dz="B2_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B2_L0_rmin" outer_r="B2_L0_rmax" z="B2_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B2_M_OverlapZ" repeat="B2_M_repeatZ" offset="B2_M_offsetR"/>
+        	<module name="Module0" width="B2_M_hWidth" length="B2_M_hLength" thickness="B2_M_hThickness" phi_tilt="B2_phiTilt" repeat="B2_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B2_L1_rmin" outer_r="B2_L1_rmax" z="B2_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B2_M_OverlapZ" repeat="B2_M_repeatZ" offset="B2_M_offsetR"/>
+        	<module name="Module0" width="B2_M_hWidth" length="B2_M_hLength" thickness="B2_M_hThickness" phi_tilt="B2_phiTilt" repeat="B2_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--EndCap-->
+    <detector id="302" name="EndCap2" type="ACTS_GenericMLEndcaps" readout="E_LongStrip_Readout">
+ 	   <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="pE2_zpos" vis="invisible"/>
+       <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+         </layer>
+         <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+         </layer>
+         <layer id="4" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L4_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+         </layer>
+         <layer id="5" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L5_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+          </layer>     
+    </detector>
+</detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..93cb7cfa40a3584dcc3279251ee0be9ea6436737
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml
@@ -0,0 +1,50 @@
+<detectors>
+    <!--Barrel-->    
+    <detector id="200" name="Barrel1" type="ACTS_GenericMLBarrel" readout="B_ShortStrip_Readout">
+        <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/>
+        	<module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/>
+        	<module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/>
+        	<module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L2_M_repeatPhi"  material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/>
+        	<module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+    	</layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="202" name="EndCap1" type="ACTS_GenericMLEndcaps" readout="E_ShortStrip_Readout">
+        <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="invisible"/> 
+        <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>   </layer>
+        <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>        </layer>
+        <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>        </layer>
+         <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>        </layer>
+         <layer id="4" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L4_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>       </layer>
+         <layer id="5" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L5_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>    </layer>        
+    </detector>
+</detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7afea633dd26d1210d635b0e1769eb39e0d7ecf5
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml
@@ -0,0 +1,54 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="100" name="Barrel0" type="ACTS_GenericMLBarrel" readout="B_Pixel_Readout">
+        <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/>
+        	<module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/>
+        	<module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/>
+        	<module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L2_M_repeatPhi"  material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L_dz" material="Vacuum" vis="invisible">
+        	<slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/>
+        	<module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+    	</layer>
+    </detector>
+    <!--EndCaps-->
+    <detector id="102" name="EndCap0" type="ACTS_GenericMLEndcaps" readout="E_Pixel_Readout">
+        <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="invisible"/> 
+        <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+         <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+         <layer id="4" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L4_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+         <layer id="5" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L5_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>       
+         <layer id="6" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L6_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible">
+            <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+            <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>  
+    </detector>
+ </detectors>
diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml
deleted file mode 100644
index 8566dbf3060484a07eba5ac9b9bb01a726885a52..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-    
-    <includes>
-        <gdmlFile  ref="../elements.xml"/>
-        <gdmlFile  ref="OpenDataMaterials.xml"/>
-    </includes>
-    
-    <info name="Demonstrator"
-        title="Demonstrator" 
-        author="Andreas.Salzburger@cern.ch" url="" status="test" version="0">
-        <comment>Demonstrator Detector for the acts webpage and documentation</comment>
-    </info>
-    
-    <define>
-        <!--World-->
-        <constant name="world_size" value="10.*m"/>
-        <constant name="world_x" value="world_size"/>
-        <constant name="world_y" value="world_size"/>
-        <constant name="world_z" value="world_size"/>
-        <!--Dimensions of the beam pipe -->
-        <constant name="bp_rmin" value="23.6*mm"/>
-        <constant name="bp_rmax" value="24.4*mm"/>
-        <constant name="bp_length" value="4.0*m"/>
-        <!--Dimensions of the Pixel volume & sub volumes -->
-        <constant name="pix_env_rmin" value="30.*mm"/>
-        <constant name="pix_env_rmax" value="200.*mm"/>
-        <constant name="pix_env_dz" value="2.4*m"/>  
-        <constant name="pix_b_z"  value="0.*m"/>                
-        <constant name="pix_b_dz" value="0.575*m"/> 
-        <constant name="pix_e_nz" value="-1.480*m"/>                
-        <constant name="pix_e_pz" value="1.480*m"/>                
-        <constant name="pix_e_dz" value="0.9*m"/> 
-        <!--Dimensions of the Pixel Support tube -->
-        <constant name="pst_rmin" value="201.*mm"/>
-        <constant name="pst_rmax" value="203.*mm"/>
-        <constant name="pst_length" value="2.0*m"/>        
-        <!--Dimensions of the Short Strips volume & sub volumes -->
-        <constant name="ss_env_rmin" value="204.*mm"/>
-        <constant name="ss_env_rmax" value="720.*mm"/>
-        <constant name="ss_env_dz" value="3.1*m"/>  
-        <constant name="ss_b_z"  value="0.*m"/>                
-        <constant name="ss_b_dz" value="1.2*m"/> 
-        <constant name="ss_e_nz" value="-2.175*m"/>                
-        <constant name="ss_e_pz" value="2.175*m"/>                
-        <constant name="ss_e_dz" value="0.925*m"/>  
-        <!--Dimensions of the Long Strips volume & sub volumes -->
-        <constant name="ls_env_rmin" value="720.*mm"/>
-        <constant name="ls_env_rmax" value="1150.*mm"/>
-        <constant name="ls_env_dz" value="3.1*m"/>  
-        <constant name="ls_b_z"  value="0.*m"/>                
-        <constant name="ls_b_dz" value="1.2*m"/> 
-        <constant name="ls_e_nz" value="-2.175*m"/>                
-        <constant name="ls_e_pz" value="2.175*m"/>                
-        <constant name="ls_e_dz" value="0.925*m"/>   
-        <!--Dimensions of the Solenoid -->
-        <constant name="sol_rmin" value="1140.*mm"/>
-        <constant name="sol_rmax" value="1200.*mm"/>
-        <constant name="sol_hlength" value="2.85*m"/>                                            
-    </define>
-        
-    <display>
-        <vis name="Beryllium" r="0.8" g="0.8"  b="0.8" alpha="0.9" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="Silicon" r="0." g="0." b="0.5" alpha="1.0" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="Kapton" r="0.1328125" g="0.55859375" b="0.02734375" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="CarbonFiber" r="0.4" g="0.4"  b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="CarbonFoam" r="0.5" g="0.5"  b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="yellow" r="0.65" g="0.65" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="grey" r="0.7" g="0.6" b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
-        <vis name="bluetrans" alpha="0.5" r="0.0" g="0.0" b="0.5" showDaughters="true" visible="true"/>
-    </display>
-        
-    <readouts>
-        <readout name="PixelBarrelReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,stave:8,module:4,sensor:2,x:4,y:4</id>
-        </readout>
-        <readout name="PixelEndcapReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,ring:2,module:8,sensor:2,x:4,y:4</id>
-        </readout>
-        <readout name="ShortStripBarrelReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,stave:8,module:8,sensor:2,x:4,y:4</id>
-        </readout>
-        <readout name="ShortStripEndcapReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,ring:2,module:8,sensor:2,x:4,y:4</id>
-        </readout>
-        <readout name="LongStripBarrelReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,stave:8,module:8,sensor:4,x:4,y:4</id>
-        </readout>
-        <readout name="LongStripEndcapReadout">
-            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
-            <id>system:4,layer:4,ring:4,module:8,sensor:4,x:4,y:4</id>
-        </readout>
-    </readouts>       
-    <include ref="OpenDataPixels.xml"/>
-    <include ref="OpenDataShortStrips.xml"/>
-    <include ref="OpenDataLongStrips.xml"/>        
-    <detectors>
-      <detector id="0" name="BeamPipe" type="ODDCylinder" vis="Beryllium">
-            <beampipe/>
-            <tubs name="BeamPipeCylinder" rmin="bp_rmin" rmax="bp_rmax" dz="bp_length" material="Beryllium"/>
-      </detector>
-      <detector id="1" name="Pixels" type="DD4hep_SubdetectorAssembly" vis="invisible">
-          <shape name="PixelVolume" type="Tube" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_env_dz" material="Air"/>
-          <composite name="PixelEndcapN"/>
-          <composite name="PixelBarrel"/>
-          <composite name="PixelEndcapP"/> 
-      </detector>
-      <detector id="2" name="PST" type="ODDCylinder" beampipe="false" vis="CarbonFiber">
-            <tubs name="PixelSupportCylinder" rmin="pst_rmin" rmax="pst_rmax" dz="pst_length" material="CarbonFiber"/>
-      </detector>
-      <detector id="3" name="ShortStrips" type="DD4hep_SubdetectorAssembly" vis="invisible">
-          <shape name="ShortStripVolume" type="Tube" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_env_dz" material="Air"/>
-          <composite name="ShortStripEndcapN"/>
-          <composite name="ShortStripBarrel"/>
-          <composite name="ShortStripEndcapP"/> 
-      </detector>
-      <detector id="4" name="LongStrips" type="DD4hep_SubdetectorAssembly" vis="invisible">
-          <shape name="LongStripVolume" type="Tube" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_env_dz" material="Air"/>
-          <composite name="LongStripEndcapN"/>
-          <composite name="LongStripBarrel"/>
-          <composite name="LongStripEndcapP"/> 
-      </detector>
-      <detector id="5" name="Solenoid" type="ODDCylinder" beampipe="false" vis="grey">
-            <tubs name="Solenoid" rmin="sol_rmin" rmax="sol_rmax" dz="sol_hlength" material="CarbonFiber"/>
-      </detector>
-    </detectors>
-</lccdd>
diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml
deleted file mode 100644
index 7f909a2ee9890b23e4e5e6e788265af0fb191685..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-<detectors>
-    <!--EndcapN-->
-    <detector id="301" name="LongStripEndcapN" type="ODDStripEndcap" readout="LongStripEndcapReadout" vis="invisible">
-        <dimensions name="LongStripEndcapShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_e_dz" z="ls_e_nz"/>
-        <ring name="Ring0" r="820.*mm" nphi="44" reflect="true" phi0="0." gap="8.*mm" z_offset="15.*mm"> 
-          <module name="LongStripEndcapModuleR0" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-             <module_component name="Board" alpha="0." x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-             <module_component name="Foam" alpha="0." x1="55.2*mm" x2="67.2*mm" length="96.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-               <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-               <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-             </module_component>
-              <module_component name="Board" alpha="0.04" x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-              <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          </module> 
-                   
-          <support name="SupportRing0" rmin="720.*mm" rmax="735.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <support name="SupportRing1" rmin="900.*mm" rmax="920.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="922.*mm" gap="23.0*mm" nphi="64" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-    
-        <ring name="Ring1" r="990.*mm" nphi="52" reflect="true" phi0="0." gap="8.*mm" z_offset="-15.*mm"> 
-          <module name="LongStripEndcapModuleR1" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="66.6*mm" x2="78*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-             <module_component name="Board" alpha="0." x1="67.2*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-             <module_component name="Foam" alpha="0." x1="67.2*mm" x2="78.8*mm" length="110.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-               <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-               <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-             </module_component>
-              <module_component name="Board" alpha="0.04" x1="66.6*mm" x2="78.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-              <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          </module> 
-          <support name="SupportRing1" rmin="1070.*mm" rmax="1090.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="1092.*mm" gap="24.*mm" nphi="72" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-        <layer id="0" name="LongStripEndcapN0" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1280.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="LongStripEndcapN2" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="LongStripEndcapN3" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1850.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="LongStripEndcapN4" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2200.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="LongStripEndcapN5" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="LongStripEndcapN6" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2950.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <services>
-         <cable_routing name="OuterCables" nphi="30" phi0="0." number="10" r="1095*mm" rmin="0.*mm" rmax="0.75*mm" dz="0.1*mm" z_offset="1150.*mm" gap="25.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="OuterCooling" nphi="30" phi0="0.104" number="6" r="1095*mm" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="25.*mm" material="Ti" vis="orange"/>          
-        </services>       
-    </detector>
-    <!--Barrel-->
-    <detector id="300" name="LongStripBarrel" type="ODDStripBarrel" readout="LongStripBarrelReadout" vis="invisible">
-        <dimensions name="LongStripBarrelShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_b_dz" z="0.*mm"/>
-        <module name="LongStripBarrelModule" vis="invisible">
-          <module_component name="SensorS" alpha="0.04" dx="96.*mm" dy="108.*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-3.2*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          <module_component name="BoardS" alpha="0.04" dx="96.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-3.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="ConnectorS" alpha="0.04" dx="20.*mm" dy="108.*mm" dz="0.25*mm" x_offset="18.*mm" y_offset="0." z_offset="-2.8*mm" material="Al" vis="red" sensitive="false"/>
-          <module_component name="Rail1" alpha="0.0" dx="16.*mm" dy="108*mm" dz="5*mm" x_offset="-43.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber" sensitive="false"/>         
-          <module_component name="FoamL" alpha="0." dx="30.*mm" dy="108*mm" dz="5*mm" x_offset="-18.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-            <subtraction name="CoolingLine" rmin="0.*mm" rmax="2.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-            <tube name="CoolingPipeL" rmin="1.8*mm" rmax="1.9*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-          </module_component>
-          <module_component name="Rail2" alpha="0.0" dx="16.*mm" dy="108*mm" dz="5*mm" x_offset="43.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber" sensitive="false"/>          
-          <module_component name="FoamR" alpha="0.0" dx="30.*mm" dy="108*mm" dz="5*mm" x_offset="18.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-            <subtraction name="CoolingLine" rmin="0.*mm" rmax="2.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-            <tube name="CoolingPipeR" rmin="1.8*mm" rmax="1.9*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-          </module_component>
-          <module_component name="ConnectorA" alpha="0." dx="20.*mm" dy="108.*mm" dz="0.25*mm" x_offset="-18.*mm" y_offset="0." z_offset="2.8*mm" material="Al" vis="red" sensitive="false"/>
-          <module_component name="BoardA" alpha="0." dx="96.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="3.0*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="SensorA" alpha="0." dx="96.*mm" dy="108.*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="3.2*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-        </module>
-        <stave name="LongStripBarrelStave" nmodules="21" gap="1.*mm" vis="invisible">
-          <eltube name="CableBundle" rmin="0.5*mm" rmax="1.5*mm" r="820.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Cu" vis="orange"/>
-        </stave>
-        <layer id="0" name="LongStripLayer0" rmin="790.*mm" r="820.*mm" rmax="840.*mm" outer_z="20.*mm" nphi="60" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="InnerSupportRings" rmin="795.*mm" rmax="810.*mm" dz="50.*mm" z_offset="300.*mm"  nsides="2" material="CarbonFiber" vis="CarbonFiber"/>
-          <support name="OuterSupportRings" rmin="795.*mm" rmax="810.*mm" dz="50.*mm" z_offset="1000.*mm"  nsides="2" material="CarbonFiber" vis="CarbonFiber"/>
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>
-        </layer>
-        <layer id="1" name="LongStripLayer1" rmin="990.*mm" r="1020.*mm" rmax="1040.*mm" outer_z="20.*mm"  nphi="80" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="InnerSupportRings" rmin="995.*mm" rmax="1010.*mm" dz="50.*mm" z_offset="300.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/>
-          <support name="OuterSupportRings" rmin="995.*mm" rmax="1010.*mm" dz="50.*mm" z_offset="1000.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/>
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>
-        </layer>
-        <support name="SupportRails" rmin="1075.*mm" rmax="1090.*mm" dz="25.*mm" z_offset="1150.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber">
-          <connector/>
-        </support>
-        <services>
-          <cable_routing nphi="30" phi0="0." number="10" rmin="0.*mm" rmax="0.75*mm" dz="2.*mm" z_offset="1150.*mm" gap="15.*mm" material="Cu" vis="orange">
-            <box dz="2.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing nphi="30" phi0="0.104" number="6" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="15.*mm" material="Ti" vis="orange"/>          
-        </services>    
-    </detector>
-    <!--EndcapP-->
-    <detector id="302" name="LongStripEndcapP" type="ODDStripEndcap" readout="LongStripEndcapReadout" vis="invisible">
-        <dimensions name="LongStripEndcapShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_e_dz" z="ls_e_pz"/>
-        <ring name="Ring0" r="820.*mm" nphi="44" reflect="true" phi0="0." gap="8.*mm" z_offset="-15.*mm"> 
-          <module name="LongStripEndcapModuleR0" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-             <module_component name="Board" alpha="0." x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-             <module_component name="Foam" alpha="0." x1="55.2*mm" x2="67.2*mm" length="96.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-               <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-               <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-             </module_component>
-              <module_component name="Board" alpha="0.04" x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-              <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          </module>                   
-          <support name="SupportRing0" rmin="720.*mm" rmax="735.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <support name="SupportRing1" rmin="900.*mm" rmax="920.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="922.*mm" gap="23.0*mm" nphi="64" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-    
-        <ring name="Ring1" r="990.*mm" nphi="52" reflect="true" phi0="0." gap="8.*mm" z_offset="15.*mm"> 
-          <module name="LongStripEndcapModuleR1" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="66.6*mm" x2="78*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-             <module_component name="Board" alpha="0." x1="67.2*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-             <module_component name="Foam" alpha="0." x1="67.2*mm" x2="78.8*mm" length="110.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false">
-               <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-               <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-             </module_component>
-              <module_component name="Board" alpha="0.04" x1="66.6*mm" x2="78.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-              <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          </module> 
-          <support name="SupportRing1" rmin="1070.*mm" rmax="1090.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="1092.*mm" gap="24.*mm" nphi="72" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-        <layer id="0" name="LongStripEndcapP0" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1280.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="LongStripEndcapP2" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="LongStripEndcapP3" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1850.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="LongStripEndcapP4" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2200.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="LongStripEndcapP5" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="LongStripEndcapP6" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2950.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <services>
-         <cable_routing name="OuterCables" nphi="30" phi0="0." number="10" r="1095*mm" rmin="0.*mm" rmax="0.75*mm" dz="0.1*mm" z_offset="1150.*mm" gap="25.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="OuterCooling" nphi="30" phi0="0.104" number="6" r="1095*mm" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="25.*mm" material="Ti" vis="orange"/>          
-        </services>   
-    </detector>
-</detectors>
-
diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml
deleted file mode 100644
index 0c95bf842d5ea9d4dfd460faf2dc186200d68d03..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<materials>
-
-
-  <material name="Air">
-    <D type="density" unit="g/cm3" value="0.0012"/>
-    <fraction n="0.754" ref="N"/>
-    <fraction n="0.234" ref="O"/>
-    <fraction n="0.012" ref="Ar"/>
-  </material>
-
-  <material name="Vacuum">
-    <D type="density" unit="g/cm3" value="0.00000001" />
-    <fraction n="1" ref="H" />
-  </material>
-
-  <material Z="4" name="Beryllium" state="solid">
-        <MEE unit="eV" value="63.7"/>
-        <D unit="g/cm3" value="1.848"/>
-        <atom unit="g/mole" value="9.01218"/>
-        <fraction n="1" ref="Be"/>
-    </material>
-
-  <material name="Epoxy">
-    <D type="density" value="1.3" unit="g/cm3"/>
-    <composite n="44" ref="H"/>
-    <composite n="15" ref="C"/>
-    <composite n="7" ref="O"/>
-  </material>
-
-  <material name="Polystyrene">
-    <D value="1.032" unit="g/cm3"/>
-    <composite n="19" ref="C"/>
-    <composite n="21" ref="H"/>
-  </material>
-
-  <material name="Steel235">
-    <D value="7.85" unit="g/cm3"/>
-    <fraction n="0.998" ref="Fe"/>
-    <fraction n=".002" ref="C"/>
-  </material>
-
-  <material name="SiliconOxide">
-    <D type="density" value="2.65" unit="g/cm3"/>
-    <composite n="1" ref="Si"/>
-    <composite n="2" ref="O"/>
-  </material>
-
-  <material name="AluminumOxide">
-    <D type="density" value="3.89" unit="g/cm3"/>
-    <composite n="2" ref="Al"/>
-    <composite n="3" ref="O"/>
-  </material>
-
-  <material name="CarbonFoam">
-    <D type="density" value="0.245" unit="g/cm3"/>
-    <fraction n="0.65" ref="C"/>
-    <fraction n="0.35" ref="Epoxy"/>
-</material>
-
-  <material name="CarbonFiber">
-    <D type="density" value="1.5" unit="g/cm3"/>
-    <fraction n="0.65" ref="C"/>
-    <fraction n="0.35" ref="Epoxy"/>
-  </material>
-  
-  <material name="CarbonFiber_50D">
-    <D type="density" value="0.75" unit="g/cm3"/>
-    <fraction n="0.65" ref="C"/>
-    <fraction n="0.35" ref="Epoxy"/>
-  </material>  
-
-  <material name="PolystyreneFoam">
-    <D type="density" value="0.0056" unit="g/cm3"/>
-    <fraction n="1.0" ref="Polystyrene"/>
-  </material>
-
-  <material name="PE">
-    <D type="density" value="0.95" unit="g/cm3"/>
-    <fraction n="4" ref="H"/>
-    <fraction n="2" ref="C"/>
-  </material>
-
-  <material name="Kapton">
-    <D value="1.43" unit="g/cm3" />
-    <composite n="22" ref="C"/>
-    <composite n="10" ref="H" />
-    <composite n="2" ref="N" />
-    <composite n="5" ref="O" />
-  </material>
-
-
-  <material name="LAr">
-    <D value="1.396" unit="g/cm3" />
-    <composite n="1" ref="Ar"/>
-  </material>
-
-</materials>
diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml
deleted file mode 100644
index 635921dec62fc2c0156fa39f2178569b740de89e..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<detectors>
-    <!--EndcapN-->
-    <detector id="101" name="PixelEndcapN" type="ODDPixelEndcap" readout="PixelEndcapReadout" vis="invisible">
-        <dimensions name="PixelEndcapShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_e_dz" z="pix_e_nz"/>
-        <module name="PixelEndcapModule" vis="invisible">
-          <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-0.3*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          <module_component name="Board"  alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="0.*mm" y_offset="8.*mm" z_offset="0.3*mm" material="Al" vis="red" sensitive="false"/>
-        </module>
-        <ring id="0" r="76.*mm" nphi="40" z_offset="3.5*mm" phi0="0." gap="0.6*mm" vis="invisible"/>
-        <ring id="1" r="144.*mm" nphi="68" z_offset="-3.5*mm" phi0="0." gap="0.6*mm" vis="invisible"/>
-        <ring_support rmin="36.*mm" rmax="176.*mm" dz="2*mm" material="CarbonFiber" vis="CarbonFiber"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="50.*mm" gap="2.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="70.*mm" gap="3.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="90.*mm" gap="4.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="120.*mm" gap="6.1*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="145.*mm" gap="7.4*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="170.*mm" gap="8.5*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/>
-        <layer id="0" name="PixelEndcapN0" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-620.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="PixelEndcapN1" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-720.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="PixelEndcapN2" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-840.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="PixelEndcapN3" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-980.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="PixelEndcapN4" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1120.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="5" name="PixelEndcapN5" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1320.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="6" name="PixelEndcapN6" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1520.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <disk name="PixelEndplate" z_offset="-1950.*mm" rmin="40.*mm" rmax="189.*mm" dz="5*mm" material="CarbonFiber" vis="CarbonFiber">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </disk>
-        <support name="InnerSupportRail" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="000.*mm" nsides="1" vis="CarbonFiber"/>
-        <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="490.*mm" nsides="2" vis="CarbonFiber"/>                        
-        <services>
-          <cable_routing nphi="8" phi0="0." number="8" r="188.*mm" rmin="0.*mm" rmax="0.2*mm" z_offset="550.*mm" gap="5.*mm" material="Cu" vis="orange">
-            <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>
-          <cooling_routing nphi="8" phi0="0.3926" number="1" r="188.*mm" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="5.*mm" material="Ti" vis="orange"/>          
-        </services>  
-    </detector>
-    <!--Barrel-->
-    <detector id="100" name="PixelBarrel" type="ODDPixelBarrel" readout="PixelBarrelReadout" vis="invisible">
-        <dimensions name="PixelBarrelShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_b_dz" z="0.*mm"/>
-        <module name="PixelBarrelModule" vis="invisible">
-          <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-1.8*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          <module_component name="Board" alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-1.6*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="-8.*mm" y_offset="0." z_offset="-1.35*mm" material="Al" vis="red" sensitive="false"/>
-        </module>
-        <stave name="PixelBarrelStave" nmodules="14" gap="0.5*mm" vis="invisible">
-          <subtraction name="PixelBarrelStaveFoam" material="CarbonFoam" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.5*mm" vis="CarbonFoam">
-             <trd name="FoamStructure" x1="6.*mm" x2="1.*mm" thickness="2.*mm" dz="15.*mm"/>
-             <tubs name="FoamCutout" rmin="0." rmax="1.2*mm"  z_offset="0.*mm" dz="20.*mm"/>
-         </subtraction>
-         <tube name="CoolingPipe" rmin="1.0*mm" rmax="1.1*mm" dz="20.*mm"  x_offset="0.*mm" y_offset="0.*mm" z_offset="0.5*mm" material="Ti" vis="orange" />
-         <eltube name="CableBundle" rmin="0.0*mm" rmax="0.25*mm" dz="50.*mm"  x_offset="-10.*mm" y_offset="0.*mm" z_offset="1.*mm" material="Cu" vis="orange" />
-        </stave>           
-        <layer id="0" name="PixelLayer0" rmin="28.*mm" r="34.*mm" rmax="44.*mm" outer_z="20.*mm" nphi="16" phi_tilt="0.12" phi0="0." vis="invisible">
-          <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/>
-          <support name="SupportCylinder" rmin="38.*mm" rmax="40.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber"/>
-        </layer>
-        <layer id="1" name="PixelLayer1" rmin="56.*mm" r="72.*mm" rmax="82.*mm" outer_z="20.*mm"  nphi="32" phi_tilt="0.12" phi0="0." vis="invisible">
-          <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/>
-          <support name="SupportCylinder" rmin="76.*mm" rmax="78.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber" />          
-        </layer>
-        <layer id="2" name="PixelLayer2" rmin="100.*mm" r="116.*mm" rmax="126.*mm" outer_z="20.*mm" nphi="52" phi_tilt="0.12" phi0="0." vis="invisible">
-          <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/>
-          <support name="SupportCylinder" rmin="120.*mm" rmax="122.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm"  nsides="1" vis="CarbonFiber" />
-        </layer>
-        <layer id="3" name="PixelLayer3" rmin="160.*mm" r="172.*mm" rmax="182.*mm" outer_z="20.*mm" nphi="78" phi_tilt="0.12" phi0="0." vis="invisible">
-          <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/>
-          <support name="SupportCylinder" rmin="176.*mm" rmax="178.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm"  nsides="1" vis="CarbonFiber"/>
-        </layer>
-        <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="550.*mm" nsides="2" vis="CarbonFiber">
-          <connector/>
-        </support>  
-        <support name="InnerSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="200.*mm" nsides="2" vis="CarbonFiber"/>
-        <services>
-          <cable_routing nphi="8" phi0="0." number="8" rmin="0.*mm" rmax="0.25*mm" z_offset="550.*mm" gap="5.*mm" material="Cu" vis="orange">
-            <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>
-          <cooling_routing nphi="8" phi0="0.3926" number="1" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="5.*mm" material="Ti" vis="orange"/>          
-        </services>          
-    </detector>
-    <!--EndcapP-->
-    <detector id="102" name="PixelEndcapP" type="ODDPixelEndcap" readout="PixelEndcapReadout" vis="invisible">
-        <dimensions name="PixelEndcapShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_e_dz" z="pix_e_pz"/>
-        <module name="PixelEndcapModule" vis="invisible">
-          <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-0.3*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-          <module_component name="Board" alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="0*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="0.*mm" y_offset="8.*mm" z_offset="0.3*mm" material="Al" vis="red" sensitive="false"/>
-        </module>
-        <ring id="0" r="76.*mm" nphi="40" z_offset="-3.5*mm" phi0="0." gap="0.6*mm"/>
-        <ring id="1" r="144.*mm" nphi="68" z_offset="3.5*mm" phi0="0." gap="0.6*mm"/>
-        <ring_support rmin="36.*mm" rmax="176.*mm" dz="2*mm" material="CarbonFiber" vis="CarbonFiber"/> 
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="50.*mm" gap="2.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="70.*mm" gap="3.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="90.*mm" gap="4.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="120.*mm" gap="6.1*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="145.*mm" gap="7.4*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="170.*mm" gap="8.5*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/>
-        <layer id="0" name="PixelEndcapP0" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="620.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="PixelEndcapP1" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="720.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="PixelEndcapP2" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="840.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="PixelEndcapP3" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="980.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="PixelEndcapP4" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1120.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="5" name="PixelEndcapP5" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1320.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="6" name="PixelEndcapP6" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1520.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <disk name="PixelEndplate" z_offset="1950.*mm" rmin="40.*mm" rmax="189.*mm" dz="5*mm" material="CarbonFiber" vis="CarbonFiber">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </disk>
-        <support name="InnerSupportRail" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="000.*mm" nsides="1" vis="CarbonFiber"/>
-        <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="490.*mm" nsides="2" vis="CarbonFiber"/>                        
-        <services>
-          <cable_routing nphi="8" phi0="0." number="8" r="188.*mm" rmin="0.*mm" rmax="0.2*mm" z_offset="550.*mm" gap="2.*mm" material="Cu" vis="orange">
-            <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>
-          <cooling_routing nphi="8" phi0="0.3926" number="1" r="188.*mm" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="2.*mm" material="Ti" vis="orange"/>          
-        </services>  
-  </detector>
-</detectors>
-
diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml
deleted file mode 100644
index 36d53dd2bb7804ae5052754c79c17a84d8c79ee1..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<detectors>
-    <!--EndcapN-->
-    <detector id="201" name="ShortStripEndcapN" type="ODDStripEndcap" readout="ShortStripEndcapReadout" vis="invisible">
-        <dimensions name="ShortStripEndcapShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_e_dz" z="ss_e_nz"/>
-        <ring name="Ring0" r="318*mm" nphi="42" reflect="true" phi0="0." gap="2.5*mm" z_offset="5.*mm"> 
-          <module name="ShortStripEndcapModuleR0" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="18.4*mm" x2="30.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="19.2*mm" x2="31.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="10.2*mm" x2="15.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-          <support name="SupportRing0" rmin="220.*mm" rmax="270.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="272.*mm" gap="13.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="366.*mm" gap="18.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing1" rmin="370.*mm" rmax="430.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="432.*mm" gap="21.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-        <ring name="Ring1" r="470*mm" nphi="50" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm">
-          <module name="ShortStripEndcapModuleR1" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="25.2*mm" x2="36.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="26.0*mm" x2="37.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="15.2*mm" x2="22.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-        </ring>        
-        <ring name="Ring2" r="622*mm" nphi="60" reflect="true" phi0="0." gap="2.5*mm" z_offset="5.*mm">
-          <module name="ShortStripEndcapModuleR2" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="32.2*mm" x2="38.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="33.0*mm" x2="38.8*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="22.2*mm" x2="28.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="504.*mm" gap="19.5*mm" nphi="42" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing0" rmin="510.*mm" rmax="570.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="572.*mm" gap="19*mm" nphi="48" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="662.*mm" gap="19.5*mm" nphi="56" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing1" rmin="670.*mm" rmax="710.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-        </ring> 
-        <layer id="0" name="ShortStripEndcapN0" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1280.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="ShortStripEndcapN2" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="ShortStripEndcapN3" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1850.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="ShortStripEndcapN4" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2200.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="ShortStripEndcapN5" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="ShortStripEndcapN6" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2950.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <services>
-          <cable_routing name="InnerCables" nphi="12" phi0="0." number="6" r="215.*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="InnerCooling" nphi="12" phi0="0.262" number="4" r="215.*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/>          
-          <cable_routing name="OuterCables" nphi="12" phi0="0.1303" number="6" r="710*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="OuterCooling" nphi="12" phi0="0.3926" number="4" r="710*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/>          
-        </services>       
-    </detector>
-    <!--Barrel-->
-    <detector id="200" name="ShortStripBarrel" type="ODDStripBarrel" readout="ShortStripBarrelReadout" vis="invisible">
-        <dimensions name="ShortStripBarrelShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_b_dz" z="0.*mm"/>
-        <module name="ShortStripBarrelModule" vis="invisible">
-          <module_component name="Foam" alpha="0." dx="45.*mm" dy="108*mm" dz="4*mm" x_offset="0." y_offset="0." z_offset="-2.8*mm" material="CarbonFoam" vis="CarbonFoam" sensitive="false">
-            <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.8*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> 
-            <tube name="CoolingPipe" rmin="1.5*mm" rmax="1.7*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/>
-          </module_component>
-          <module_component name="Connector" alpha="0." dx="10.*mm" dy="108.*mm" dz="0.25*mm" x_offset="-18.*mm" y_offset="0." z_offset="-0.5*mm" material="Al" vis="red" sensitive="false"/>
-          <module_component name="Board" alpha="0." dx="48.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-0.25*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-          <module_component name="Sensor" alpha="0." dx="48.*mm" dy="108.*mm" dz="0.2*mm" x_offset="0." y_offset="0." z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-        </module>
-        <stave name="ShortStripBarrelStave" nmodules="21" gap="0.5*mm" vis="invisible">
-          <eltube name="CableBundle" rmin="0.5*mm" rmax="1.5*mm" r="245.*mm" x_offset="12.*mm" y_offset="0.*mm" z_offset="-9.*mm" material="Cu" vis="orange"/>
-        </stave>
-        <layer id="0" name="ShortStripLayer0" rmin="240.*mm" r="260.*mm" rmax="280.*mm" outer_z="20.*mm" nphi="40" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="SupportCylinder" rmin="248.*mm" rmax="250.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber"/>
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>
-        </layer>
-        <layer id="1" name="ShortStripLayer1" rmin="340.*mm" r="360.*mm" rmax="380.*mm" outer_z="20.*mm"  nphi="56" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="SupportCylinder" rmin="344.*mm" rmax="346.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" />   
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>                 
-        </layer>
-        <layer id="2" name="ShortStripLayer2" rmin="480.*mm" r="500.*mm" rmax="520.*mm" outer_z="20.*mm" nphi="78" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="SupportCylinder" rmin="484.*mm" rmax="486.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" />
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>
-        </layer>
-        <layer id="3" name="ShortStripLayer3" rmin="640.*mm" r="660.*mm" rmax="680.*mm" outer_z="20.*mm" nphi="102" phi_tilt="-0.15" phi0="0." vis="invisible">
-          <support name="SupportCylinder" rmin="644.*mm" rmax="646.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" />
-          <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/>
-        </layer> 
-        <support name="SupportRails" rmin="695.*mm" rmax="715.*mm" dz="20.*mm" z_offset="1150.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber">
-          <connector/>
-        </support>
-        <services>
-          <cable_routing nphi="12" phi0="0.1303" number="6" rmin="0.*mm" rmax="0.5*mm" dz="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing nphi="12" phi0="0.3926" number="4" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/>          
-        </services>            
-    </detector>
-    <!--EndcapP-->
-    <detector id="202" name="ShortStripEndcapP" type="ODDStripEndcap" readout="ShortStripEndcapReadout" vis="invisible">
-        <dimensions name="ShortStripEndcapShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_e_dz" z="ss_e_pz"/>
-        <ring name="Ring0" r="318*mm" nphi="42" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm"> 
-          <module name="ShortStripEndcapModuleR0" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="18.4*mm" x2="30.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="19.2*mm" x2="31.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="10.2*mm" x2="15.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-          <support name="SupportRing0" rmin="220.*mm" rmax="270.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="272.*mm" gap="13.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="366.*mm" gap="18.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing1" rmin="370.*mm" rmax="430.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="432.*mm" gap="21.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/>
-        </ring>
-        <ring name="Ring1" r="470*mm" nphi="50" reflect="true" phi0="0." gap="2.5*mm" z_offset="+5.*mm">
-          <module name="ShortStripEndcapModuleR1" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="25.2*mm" x2="36.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="26.0*mm" x2="37.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="15.2*mm" x2="22.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-        </ring>        
-        <ring name="Ring2" r="622*mm" nphi="60" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm">
-          <module name="ShortStripEndcapModuleR2" vis="invisible">
-            <module_component name="Sensor" alpha="0." x1="32.2*mm" x2="38.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/>
-            <module_component name="Board" alpha="0." x1="33.0*mm" x2="38.8*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/>
-            <module_component name="Connector" alpha="0." x1="22.2*mm" x2="28.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/>
-          </module>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="504.*mm" gap="19.5*mm" nphi="42" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing0" rmin="510.*mm" rmax="570.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="572.*mm" gap="19*mm" nphi="48" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="662.*mm" gap="19.5*mm" nphi="56" z_offset="0.*mm" material="Ti" vis="orange"/>
-          <support name="SupportRing1" rmin="670.*mm" rmax="710.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-        </ring> 
-        <layer id="0" name="ShortStripEndcapP0" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1280.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="1" name="ShortStripEndcapP2" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="ShortStripEndcapP3" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1850.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="2" name="ShortStripEndcapP4" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2200.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="3" name="ShortStripEndcapP5" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2550.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <layer id="4" name="ShortStripEndcapP6" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2950.*mm" vis="invisible">
-          <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/>
-        </layer>
-        <services>
-          <cable_routing name="InnerCables" nphi="12" phi0="0." number="6" r="215.*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="InnerCooling" nphi="12" phi0="0.262" number="4" r="215.*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/>          
-          <cable_routing name="OuterCables" nphi="12" phi0="0.1303" number="6" r="710*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange">
-            <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/>
-          </cable_routing>  
-          <cooling_routing name="OuterCooling" nphi="12" phi0="0.3926" number="4" r="710*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/>          
-        </services>     
-    </detector>
-</detectors>
-
diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca181d0087fb5a09c7da18da205e018eb14ffb2b
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    
+    <includes>
+        <gdmlFile  ref="../elements.xml"/>
+        <gdmlFile  ref="../materials.xml"/>
+    </includes>
+    
+    <info name="TestTracker1"
+        title="A test tracker in FCC dimensions and 'ATLAS-style'"
+        author="julia.hrdinka@cern.ch" url="" status="test" version="0">
+        <comment>First demonstration tracker in FCC dimensions, containing simple silicon modules, without any substructure or support material. The example contains three hierarchies, a pixel tracker, a short strip and a long strip tracker</comment>
+    </info>
+    
+    <define>
+        <!--World-->
+        <constant name="world_size" value="30*m"/>
+        <constant name="world_x" value="world_size"/>
+        <constant name="world_y" value="world_size"/>
+        <constant name="world_z" value="world_size"/>
+        <constant name="Tube_rmin" value="0.*mm"/>
+        <constant name="Tube_rmax" value="15.*mm"/>
+        <constant name="Tube_length" value="1000.*cm"/>
+        <!--Envelope0-->
+        <constant name="Env0_rmin"          value="1.9*cm"/>
+        <constant name="Env0_rmax"          value="94.*cm"/>
+        <constant name="Env0_dz"            value="300.*cm"/>
+        <!--Barrel0-->
+        <constant name="B0_rmin"            value="2.*cm"/>
+        <constant name="B0_rmax"            value="93.65*cm"/>
+        <constant name="B0_dz"              value="187.5*cm"/>
+        <constant name="B0_zpos"            value="0.*cm"/>
+        <constant name="B0_M_repeatZ"       value="25"/>
+        <constant name="B0_L_dz"            value="186.5*cm"/>
+        <!--Layer0-->
+        <constant name="B0_L0_rmin"         value="3.85*cm"/>
+        <constant name="B0_L0_rmax"         value="8.85*cm"/>
+        <constant name="B0_L0_M_repeatPhi"  value="30"/>
+        <!--Layer1-->
+        <constant name="B0_L1_rmin"         value="27.85*cm"/>
+        <constant name="B0_L1_rmax"         value="31.85*cm"/>
+        <constant name="B0_L1_M_repeatPhi"  value="100"/>
+        <!--Layer2-->
+        <constant name="B0_L2_rmin"         value="50.85*cm"/>
+        <constant name="B0_L2_rmax"         value="55.85*cm"/>
+        <constant name="B0_L2_M_repeatPhi"  value="150"/>
+        <!--Layer3-->
+        <constant name="B0_L3_rmin"         value="74.85*cm"/>
+        <constant name="B0_L3_rmax"         value="79.85*cm"/>
+        <constant name="B0_L3_M_repeatPhi"  value="300"/>
+        <!--Module-->
+        <constant name="B_M_width"          value="12.0*mm"/>
+        <constant name="B_M_length"         value="31.*mm"/>
+        <constant name="B_M_thickness"      value="0.1375*mm"/>
+        <constant name="B_M_offsetZ"        value="60.*mm"/>
+        <constant name="B_M_offsetR"        value="0.3*mm"/>
+        <!--EndCap0-->
+        <constant name="E0_rmin"            value="2.1*cm"/>
+        <constant name="E0_rmax"            value="93.65*cm"/>
+        <constant name="E0_dz"              value="56.25*cm"/>
+        <constant name="pE0_zpos"           value="243.75*cm"/>
+        <constant name="nE0_zpos"           value="-243.75*cm"/>
+        <!--Layer0-->
+        <constant name="E0_L_dz"            value="6.*cm"/>
+        <constant name="E0_L0_pos"          value="-43.35*cm"/>
+        <constant name="E0_L1_pos"          value="-18.45"/>
+        <constant name="E0_L2_pos"          value="18.45"/>
+        <constant name="E0_L3_pos"          value="43.35*cm"/>
+        <!--Module-->
+        <constant name="E_M0_pos"           value="0.*mm"/>
+        <constant name="E_M0_X1"            value="40.*mm"/>
+        <constant name="E_M0_X2"            value="45.*mm"/>
+        <constant name="E0_L0_M0_r"         value="24.1*cm"/>
+        <constant name="E_M_length"         value="22.*cm"/>
+        <constant name="E_M_thickness"      value="0.1375"/>
+        <constant name="E0_L_modulesInPhi"  value="50"/>
+        
+        <constant name="E_M1_pos"           value="-0.275*mm"/>
+        <constant name="E_M1_X1"            value="45.*mm"/>
+        <constant name="E_M1_X2"            value="50.*mm"/>
+        <constant name="E0_L0_M1_r"         value="57.85*cm"/>
+        
+        <constant name="E_M2_pos"           value="0.*mm"/>
+        <constant name="E_M2_X1"            value="80.*mm"/>
+        <constant name="E_M2_X2"            value="100.*mm"/>
+        <constant name="E0_L0_M2_r"         value="101.85*cm"/>
+        
+        <constant name="E_M3_pos"           value="-0.275*mm"/>
+        <constant name="E_M3_X1"            value="100.*mm"/>
+        <constant name="E_M3_X2"            value="143.*mm"/>
+        <constant name="E0_L0_M3_r"         value="130.25*cm"/>
+        
+        <constant name="E_M4_pos"           value="0.*mm"/>
+        <constant name="E_M4_X1"            value="143.*mm"/>
+        <constant name="E_M4_X2"            value="180.*mm"/>
+        <constant name="E0_L0_M4_r"         value="150.25*cm"/>
+        
+        <constant name="E_M5_pos"           value="-0.275*mm"/>
+        <constant name="E_M5_X1"            value="180.*mm"/>
+        <constant name="E_M5_X2"            value="200.*mm"/>
+        <constant name="E0_L0_M5_r"         value="180.625*cm"/>
+        
+        <constant name="E_M6_pos"           value="0.*mm"/>
+        <constant name="E_M6_X1"            value="200.*mm"/>
+        <constant name="E_M6_X2"            value="230.*mm"/>
+        <constant name="E0_L0_M6_r"         value="211.*cm"/>
+        
+        <!--Envelope1-->
+        <constant name="Env1_rmin"          value="937.*mm"/>
+        <constant name="Env1_rmax"          value="156.45*cm"/>
+        <constant name="Env1_dz"            value="500.*cm"/>
+        <!--Barrel1-->
+        <constant name="B1_rmin"            value="938.*mm"/>
+        <constant name="B1_rmax"            value="156.25*cm"/>
+        <constant name="B1_dz"              value="300.*cm"/>
+        <constant name="B1_zpos"            value="0.*cm"/>
+        <constant name="B1_M_repeatZ"       value="23"/> 
+        <constant name="B1_L_dz"            value="288.5*cm"/>
+        <!--Layer0-->
+        <constant name="B1_L0_rmin"         value="98.25*cm"/>
+        <constant name="B1_L0_rmax"         value="107.25*cm"/>
+        <constant name="B1_L0_M_repeatPhi"  value="130"/> 
+        <!--Layer1-->
+        <constant name="B1_L1_rmin"         value="113.25*cm"/>
+        <constant name="B1_L1_rmax"         value="124.25*cm"/>
+        <constant name="B1_L1_M_repeatPhi"  value="150"/>
+        <!--Layer2-->
+        <constant name="B1_L2_rmin"         value="128.25*cm"/>
+        <constant name="B1_L2_rmax"         value="137.25*cm"/>
+        <constant name="B1_L2_M_repeatPhi"  value="180"/>
+        <!--Layer3-->
+        <constant name="B1_L3_rmin"         value="144.25*cm"/>
+        <constant name="B1_L3_rmax"         value="153.25*cm"/>
+        <constant name="B1_L3_M_repeatPhi"  value="200"/>
+        <!--Module-->
+        <constant name="B1_M_width"          value="30.0*mm"/>
+        <constant name="B1_M_length"         value="60.4*mm"/>
+        <constant name="B1_M_thickness"      value="0.1375*mm"/>
+        <constant name="B1_M_offsetZ"        value="120.*mm"/>
+        <constant name="B1_M_offsetR"        value="0.3*mm"/>
+        <!--EndCap0-->
+        <constant name="E1_rmin"            value="2.1*cm"/>
+        <constant name="E1_rmax"            value="156.25*cm"/>
+        <constant name="E1_dz"              value="93.*cm"/>
+        <constant name="nE1_zpos"           value="-406.25*cm"/>
+        <constant name="pE1_zpos"           value="406.25*cm"/>
+        <!--Layer0-->
+        <constant name="E1_L_dz"            value="10.*cm"/>
+        <constant name="E1_L0_pos"          value="62.25*cm"/>
+        <constant name="E1_L1_pos"          value="20.75*cm"/>
+        <constant name="E1_L2_pos"          value="-20.75*cm"/>
+        <constant name="E1_L3_pos"          value="-62.25*cm"/>
+        <!--Envelope2-->
+        <constant name="Env2_rmin"          value="1.9*cm"/>
+        <constant name="Env2_rmax"          value="252*cm"/>
+        <constant name="Env2_dz"            value="800.*cm"/>
+        <!--Barrel2-->
+        <constant name="B2_rmin"            value="156.45*cm"/>
+        <constant name="B2_rmax"            value="250.*cm"/>
+        <constant name="B2_dz"              value="500.*cm"/>
+        <constant name="B2_zpos"            value="0.*cm"/>
+        <constant name="B2_M_repeatZ"       value="24"/>
+        <constant name="B2_L_dz"            value="492.*cm"/>
+        <!--Layer0-->
+        <constant name="B2_L0_rmin"         value="158.*cm"/>
+        <constant name="B2_L0_rmax"         value="167.*cm"/>
+        <constant name="B2_L0_M_repeatPhi"  value="120"/>
+        <!--Layer1-->
+        <constant name="B2_L1_rmin"         value="181.*cm"/>
+        <constant name="B2_L1_rmax"         value="190.*cm"/>
+        <constant name="B2_L1_M_repeatPhi"  value="150"/>
+        <!--Layer2-->
+        <constant name="B2_L2_rmin"         value="204.*cm"/>
+        <constant name="B2_L2_rmax"         value="213.*cm"/>
+        <constant name="B2_L2_M_repeatPhi"  value="180"/>
+        <!--Layer3-->
+        <constant name="B2_L3_rmin"         value="227.*cm"/>
+        <constant name="B2_L3_rmax"         value="236.*cm"/>
+        <constant name="B2_L3_M_repeatPhi"  value="200"/>
+        <!--Module-->
+        <constant name="B2_M_width"          value="50.0*mm"/>
+        <constant name="B2_M_length"         value="100.4*mm"/>
+        <constant name="B2_M_thickness"      value="0.1375*mm"/>
+        <constant name="B2_M_offsetZ"        value="150.*mm"/>
+        <constant name="B2_M_offsetR"        value="0.3*mm"/>
+        <!--EndCap2-->
+        <constant name="E2_rmin"            value="2.1*cm"/>
+        <constant name="E2_rmax"            value="250.*cm"/>
+        <constant name="E2_dz"              value="150.*cm"/>
+        <constant name="nE2_zpos"           value="-650.*cm"/>
+        <constant name="pE2_zpos"           value="650.*cm"/>
+        <!--Layer2-->
+        <constant name="E2_L_dz"            value="10.*cm"/>
+        <constant name="E2_L0_pos"          value="96.*cm"/>
+        <constant name="E2_L1_pos"          value="32.*cm"/>
+        <constant name="E2_L2_pos"          value="-32.*cm"/>
+        <constant name="E2_L3_pos"          value="-96.*cm"/>
+        
+</define>
+
+    <display>
+        <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/>
+    </display>
+
+    <readouts>
+        <readout name="B0_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
+            <id>system:3,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+    </readouts>
+
+
+  <include ref="TestTracker1Pixel.xml"/>
+  <include ref="TestTracker1ShortStrip.xml"/> 
+  <include ref="TestTracker1LongStrip.xml"/>
+
+    <detectors>
+    <!--BeamTube-->
+        <detector id="0" name="beampipe" type="BeamPipe">
+            <status id="0"/>
+            <dimensions rmin="Tube_rmin" rmax="Tube_rmax" z="Tube_length" vis="violet" material="Air"/>
+        </detector>
+        <detector id="1" name="TestTracker1Pixel" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel0"/>
+            <composite name="nEndCap0"/>
+            <composite name="pEndCap0"/>
+        </detector>
+        <detector id="2" name="TestTracker1ShortStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel1"/>
+            <composite name="nEndCap1"/>
+            <composite name="pEndCap1"/>
+        </detector>
+        <detector id="3" name="TestTracker1LongStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <composite name="Barrel2"/>
+            <composite name="nEndCap2"/>
+            <composite name="pEndCap2"/>
+        </detector>
+    </detectors>
+</lccdd>
diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..73d434e0ec531f8860ed5821ed6626697d2205bd
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml
@@ -0,0 +1,158 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="300" name="Barrel2" type="ACTS_Barrel" readout="B0_Readout">
+        <dimensions rmin="B2_rmin" rmax="B2_rmax" dz="B2_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B2_L0_rmin" outer_r="B2_L0_rmax" z="B2_L_dz" material="Air" vis="invisible">
+            <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/>
+            <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B2_L1_rmin" outer_r="B2_L1_rmax" z="B2_L_dz" material="Air" vis="invisible">
+            <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/>
+            <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B2_L2_rmin" outer_r="B2_L2_rmax" z="B2_L_dz" material="Air" vis="invisible">
+            <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/>
+            <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B2_L3_rmin" outer_r="B2_L3_rmax" z="B2_L_dz" material="Air" vis="invisible">
+            <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/>
+            <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--negEndCap-->
+    <detector id="301" name="nEndCap2" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="nE2_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="302" name="pEndCap2" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="pE2_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1"  x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1"  x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1"  x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+</detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3b25c32ea7020a7f6a068cc63305124f088a27dd
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml
@@ -0,0 +1,78 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="100" name="Barrel0" type="ACTS_Barrel" readout="B0_Readout">
+        <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L_dz" material="Air" vis="invisible">
+            <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/>
+            <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L_dz" material="Air" vis="invisible">
+            <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/>
+            <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L_dz" material="Air" vis="invisible">
+            <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/>
+            <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L_dz" material="Air" vis="invisible">
+            <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/>
+            <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--negEndCap-->
+    <detector id="101" name="nEndCap0" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="nE0_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="102" name="pEndCap0" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+ </detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..29bddec7cbf6a290b16a43476e80b5ff57f68539
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml
@@ -0,0 +1,110 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="200" name="Barrel1" type="ACTS_Barrel" readout="B0_Readout">
+        <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="0.*mm" vis="invisible"/>
+        <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L_dz" material="Air" vis="invisible">
+            <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/>
+            <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L_dz" material="Air" vis="invisible">
+            <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/>
+            <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L_dz" material="Air" vis="invisible">
+            <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/>
+            <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L_dz" material="Air" vis="invisible">
+            <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/>
+            <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--negEndCap-->
+    <detector id="201" name="nEndCap1" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="nE1_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="202" name="pEndCap1" type="ACTS_Endcap" readout="B0_Readout">
+        <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="invisible"/>
+        <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="invisible">
+            <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1"  x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1"  x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1"  x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+</detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fa55e2e9bcd08b1173036736d4b2fc5752d42253
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml
@@ -0,0 +1,630 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    
+    <includes>
+        <gdmlFile  ref="../elements.xml"/>
+        <gdmlFile  ref="../materials.xml"/>
+    </includes>
+    
+    <info name="TestTracker2"
+        title="Test-Tracker in FCC-dimension and 'CMS-style'" author="Z. Draszal" url="" status="test" version="0">
+        <comment>More realistic tracker description with dimensions taken from tklayout http://fcc-tklayout.web.cern.ch/fcc-tklayout/FCChh_Delphes/indexINNER.html</comment>
+    </info>
+    
+    <define>
+        <!--World-->
+        <constant name="world_size" value="30*m"/>
+        <constant name="world_x" value="world_size"/>
+        <constant name="world_y" value="world_size"/>
+        <constant name="world_z" value="world_size"/>
+        
+        <constant name="Tube_rmin" value="0.*mm"/>
+        <constant name="Tube_rmax" value="15.*mm"/>
+        <constant name="Tube_length" value="1000.*mm"/>
+        <!--Envelope0-->
+        <constant name="Env0_rmin"          value="21*mm"/>
+        <constant name="Env0_rmax"          value="800.*mm"/>
+        <constant name="Env0_dz"            value="3100.*mm"/>
+        <!--Barrel0-->
+        <constant name="B0_rmin"            value="21*mm"/>
+        <constant name="B0_rmax"            value="700*mm"/>
+        <constant name="B0_dz"              value="1100*mm"/>
+        <constant name="B0_zpos"            value="0.*mm"/>
+        <!--Layer0-->
+        <constant name="B0_L0_rmin"         value="21.5*mm"/>
+        <constant name="B0_L0_rmax"         value="31.5*mm"/>
+        <constant name="B0_L0_M_repeatPhi"  value="14"/>
+        <constant name="B0_L0_M_repeatZ"    value="23"/>
+        <constant name="B0_L0_dz"           value="500.*mm"/>
+        <!--Layer1-->
+        <constant name="B0_L1_rmin"         value="62*mm"/>
+        <constant name="B0_L1_rmax"         value="88*mm"/>
+        <constant name="B0_L1_M_repeatPhi"  value="20"/>
+        <constant name="B0_L1_M_repeatZ"    value="21"/>
+        <constant name="B0_L1_dz"           value="1000.*mm"/>
+        <!--Layer2-->
+        <constant name="B0_L2_rmin"         value="144.7*mm"/>
+        <constant name="B0_L2_rmax"         value="170.7*mm"/>
+        <constant name="B0_L2_M_repeatPhi"  value="20"/>
+        <constant name="B0_L2_M_repeatZ"    value="21"/>
+        <constant name="B0_L2_dz"           value="1000.*mm"/>
+        <!--Layer3-->
+        <constant name="B0_L3_rmin"         value="209.6*mm"/>
+        <constant name="B0_L3_rmax"         value="235.6*mm"/>
+        <constant name="B0_L3_M_repeatPhi"  value="28"/>
+        <constant name="B0_L3_M_repeatZ"    value="21"/>
+        <constant name="B0_L3_dz"           value="1000.*mm"/>
+        <!--Layer4-->
+        <constant name="B0_L4_rmin"         value="290.5*mm"/>
+        <constant name="B0_L4_rmax"         value="316.5*mm"/>
+        <constant name="B0_L4_M_repeatPhi"  value="38"/>
+        <constant name="B0_L4_M_repeatZ"    value="21"/>
+        <constant name="B0_L4_dz"           value="1000.*mm"/>
+        <!--Layer5-->
+        <constant name="B0_L5_rmin"         value="355.2*mm"/>
+        <constant name="B0_L5_rmax"         value="381.2*mm"/>
+        <constant name="B0_L5_M_repeatPhi"  value="46"/>
+        <constant name="B0_L5_M_repeatZ"    value="21"/>
+        <constant name="B0_L5_dz"           value="1000.*mm"/>
+        <!--Layer6-->
+        <constant name="B0_L6_rmin"         value="439.*mm"/>
+        <constant name="B0_L6_rmax"         value="459.*mm"/>
+        <constant name="B0_L6_M_repeatPhi"  value="56"/>
+        <constant name="B0_L6_M_repeatZ"    value="21"/>
+        <constant name="B0_L6_dz"           value="1000.*mm"/>
+        <!--Layer7-->
+        <constant name="B0_L7_rmin"         value="516.7*mm"/>
+        <constant name="B0_L7_rmax"         value="542.7*mm"/>
+        <constant name="B0_L7_M_repeatPhi"  value="66"/>
+        <constant name="B0_L7_M_repeatZ"    value="21"/>
+        <constant name="B0_L7_dz"           value="1000.*mm"/>
+        <!--Layer8-->
+        <constant name="B0_L8_rmin"         value="587.*mm"/>
+        <constant name="B0_L8_rmax"         value="613.*mm"/>
+        <constant name="B0_L8_M_repeatPhi"  value="76"/>
+        <constant name="B0_L8_M_repeatZ"    value="21"/>
+        <constant name="B0_L8_dz"           value="1000.*mm"/>
+        <!--Module-->
+        <constant name="B0_L0_M_width"          value="6.*mm"/> <!--sensor size is smaller-->
+        <constant name="B0_L0_M_length"         value="12.0*mm"/>
+        <constant name="B0_L0_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L0_M_offsetZ"        value="21.*mm"/>
+        <constant name="B0_L0_M_offsetRZ"       value="3.*mm"/> <!--old smaller-->
+        <constant name="B0_L0_M_offsetR"        value="3.*mm"/>
+        
+        <constant name="B0_L1_M_width"          value="13.*mm"/> <!--sensor size is smaller-->
+        <constant name="B0_L1_M_length"         value="25.0*mm"/>
+        <constant name="B0_L1_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L1_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L1_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L1_M_offsetR"        value="3.*mm"/>
+        
+        <constant name="B0_L2_M_width"          value="27.*mm"/>
+        <constant name="B0_L2_M_length"         value="25.0*mm"/>
+        <constant name="B0_L2_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L2_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L2_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L2_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L3_M_width"          value="30.*mm"/>
+        <constant name="B0_L3_M_length"         value="25.0*mm"/>
+        <constant name="B0_L3_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L3_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L3_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L3_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L4_M_width"          value="30.*mm"/>
+        <constant name="B0_L4_M_length"         value="25.0*mm"/>
+        <constant name="B0_L4_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L4_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L4_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L4_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L5_M_width"          value="30.*mm"/>
+        <constant name="B0_L5_M_length"         value="25.0*mm"/>
+        <constant name="B0_L5_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L5_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L5_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L5_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L6_M_width"          value="30.*mm"/>
+        <constant name="B0_L6_M_length"         value="25.0*mm"/>
+        <constant name="B0_L6_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L6_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L6_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L6_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L7_M_width"          value="35.*mm"/>
+        <constant name="B0_L7_M_length"         value="25.0*mm"/>
+        <constant name="B0_L7_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L7_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L7_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L7_M_offsetR"        value="3.0*mm"/>
+        
+        <constant name="B0_L8_M_width"          value="35.*mm"/>
+        <constant name="B0_L8_M_length"         value="25.0*mm"/>
+        <constant name="B0_L8_M_thickness"      value="0.1*mm"/>
+        <constant name="B0_L8_M_offsetZ"        value="46.*mm"/>
+        <constant name="B0_L8_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B0_L8_M_offsetR"        value="3.0*mm"/>
+        <!--EndCap0-->
+        <constant name="E0_rmin"            value="21.*mm"/>
+        <constant name="E0_rmax"            value="700.*mm"/>
+        <constant name="E0_dz"              value="1000.*mm"/>
+        <constant name="pE0_zpos"           value="2100.*mm"/>
+        <constant name="nE0_zpos"           value="-2100.*mm"/>
+        <!--Layers-->
+        <constant name="E0_L_rmin"          value="23.*mm"/>
+        <constant name="E0_L_rmax"          value="650.*mm"/>
+        <constant name="E0_L_dz"            value="6.*cm"/>
+        <constant name="E0_L0_pos"          value="-850.*mm"/>
+        <constant name="E0_L1_pos"          value="-683.5*mm"/>
+        <constant name="E0_L2_pos"          value="-494.8*mm"/>
+        <constant name="E0_L3_pos"          value="-280.9*mm"/>
+        <constant name="E0_L4_pos"          value="-38.5*mm"/>
+        <constant name="E0_L5_pos"          value="236.1*mm"/>
+        <constant name="E0_L6_pos"          value="547.3*mm"/>
+        <constant name="E0_L7_pos"          value="900.*mm"/>
+        <!--Module-->
+        <constant name="E_M_thickness"       value="0.1*mm"/>
+        <!--Ring0-->
+        <constant name="E0_M0_r"             value="62.65*mm"/>
+        <constant name="E_M0_pos"            value="0.*mm"/>
+        <constant name="E_M0_X1"             value="7.5*mm"/>
+        <constant name="E_M0_X2"             value="30.09*mm"/>
+        <constant name="E_M0_length"         value="37.65*mm"/>
+        <constant name="E0_M0_modulesInPhi"  value="12"/>
+        <!--Ring1-->
+        <constant name="E0_M1_r"             value="150.25*mm"/>
+        <constant name="E_M1_pos"            value="1.*mm"/>
+        <constant name="E_M1_X1"             value="25.*mm"/>
+        <constant name="E_M1_X2"             value="35*mm"/>
+        <constant name="E_M1_length"         value="50.25*mm"/>
+        <constant name="E0_M1_modulesInPhi"  value="20"/>
+        <!--Ring2-->
+        <constant name="E0_M2_r"             value="249.05*mm"/>
+        <constant name="E_M2_pos"            value="0.*mm"/>
+        <constant name="E_M2_X1"             value="25.*mm"/>
+        <constant name="E_M2_X2"             value="35.*mm"/>
+        <constant name="E_M2_length"         value="51.45*mm"/>
+        <constant name="E0_M2_modulesInPhi"  value="32"/>
+        <!--Ring3-->
+        <constant name="E0_M3_r"             value="350.6*mm"/>
+        <constant name="E_M3_pos"            value="1.*mm"/>
+        <constant name="E_M3_X1"             value="25.*mm"/>
+        <constant name="E_M3_X2"             value="35.*mm"/>
+        <constant name="E_M3_length"         value="50.1*mm"/>
+        <constant name="E0_M3_modulesInPhi"  value="44"/>
+        <!--Ring4-->
+        <constant name="E0_M4_r"             value="445.4*mm"/>
+        <constant name="E_M4_pos"            value="0.*mm"/>
+        <constant name="E_M4_X1"             value="25.*mm"/>
+        <constant name="E_M4_X2"             value="35.*mm"/>
+        <constant name="E_M4_length"         value="52.5*mm"/>
+        <constant name="E0_M4_modulesInPhi"  value="52"/>
+        <!--Ring5-->
+        <constant name="E0_M5_r"             value="535.35*mm"/>
+        <constant name="E_M5_pos"            value="1.*mm"/>
+        <constant name="E_M5_X1"             value="25.*mm"/>
+        <constant name="E_M5_X2"             value="35.*mm"/>
+        <constant name="E_M5_length"         value="34.65*mm"/>
+        <constant name="E0_M5_modulesInPhi"  value="64"/>
+
+
+        <!--Envelope1-->
+        <constant name="Env1_rmin"          value="21.*mm"/>
+        <constant name="Env1_rmax"          value="5000.*mm"/><!--Old:3000.*mm now for forward tracker bigger, change later-->
+        <constant name="Env1_dz"            value="9100.*m"/><!--with FwrdEndcap: 30 m-->
+        <!--Barrel1-->
+        <constant name="B1_rmin"            value="810.*mm"/>
+        <constant name="B1_rmax"            value="4000.*mm"/><!--Old:2400.*mm now for forward tracker bigger, change later-->
+        <constant name="B1_dz"              value="3100.*mm"/>
+        <constant name="B1_zpos"            value="0.*mm"/>
+        <!--Layer0-->
+        <constant name="B1_L0_rmin"         value="811.*mm"/>
+        <constant name="B1_L0_rmax"         value="839*mm"/>
+        <constant name="B1_L0_M_repeatPhi"  value="52"/>
+        <constant name="B1_L0_M_repeatZ"    value="59"/>
+        <constant name="B1_L0_dz"           value="3000.*mm"/>
+        <!--Layer1-->
+        <constant name="B1_L1_rmin"         value="1017.6*mm"/>
+        <constant name="B1_L1_rmax"         value="1051.6*mm"/>
+        <constant name="B1_L1_M_repeatPhi"  value="64"/>
+        <constant name="B1_L1_M_repeatZ"    value="59"/>
+        <constant name="B1_L1_dz"           value="3000.*mm"/>
+        <!--Layer2-->
+        <constant name="B1_L2_rmin"         value="1244.8*mm"/>
+        <constant name="B1_L2_rmax"         value="1278.8*mm"/>
+        <constant name="B1_L2_M_repeatPhi"  value="78"/>
+        <constant name="B1_L2_M_repeatZ"    value="59"/>
+        <constant name="B1_L2_dz"           value="3000.*mm"/>
+        <!--Layer3-->
+        <constant name="B1_L3_rmin"         value="1462.0*mm"/>
+        <constant name="B1_L3_rmax"         value="1516.*mm"/>
+        <constant name="B1_L3_M_repeatPhi"  value="92"/>
+        <constant name="B1_L3_M_repeatZ"    value="59"/>
+        <constant name="B1_L3_dz"           value="3000.*mm"/>
+        <!--Layer4-->
+        <constant name="B1_L4_rmin"         value="1689.1*mm"/>
+        <constant name="B1_L4_rmax"         value="1743.1*mm"/>
+        <constant name="B1_L4_M_repeatPhi"  value="106"/>
+        <constant name="B1_L4_M_repeatZ"    value="59"/>
+        <constant name="B1_L4_dz"           value="3000.*mm"/>
+        <!--Layer5-->
+        <constant name="B1_L5_rmin"         value="1916.2*mm"/>
+        <constant name="B1_L5_rmax"         value="1970.2*mm"/>
+        <constant name="B1_L5_M_repeatPhi"  value="120"/>
+        <constant name="B1_L5_M_repeatZ"    value="59"/>
+        <constant name="B1_L5_dz"           value="3000.*mm"/>
+        <!--Layer6-->
+        <constant name="B1_L6_rmin"         value="2133.3*mm"/>
+        <constant name="B1_L6_rmax"         value="2207.3*mm"/>
+        <constant name="B1_L6_M_repeatPhi"  value="134"/>
+        <constant name="B1_L6_M_repeatZ"    value="59"/>
+        <constant name="B1_L6_dz"           value="3000.*mm"/>
+        <!--Layer7-->
+        <constant name="B1_L7_rmin"         value="2365.*mm"/>
+        <constant name="B1_L7_rmax"         value="2435.*mm"/>
+        <constant name="B1_L7_M_repeatPhi"  value="150"/>
+        <constant name="B1_L7_M_repeatZ"    value="59"/>
+        <constant name="B1_L7_dz"           value="3000.*mm"/>
+        <!--Module-->
+        <constant name="B1_L0_M_width"          value="55.*mm"/> <!--sensor size is smaller-->
+        <constant name="B1_L0_M_length"         value="28.0*mm"/>
+        <constant name="B1_L0_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L0_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L0_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L0_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L1_M_width"          value="55.*mm"/>
+        <constant name="B1_L1_M_length"         value="28.0*mm"/>
+        <constant name="B1_L1_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L1_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L1_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L1_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L2_M_width"          value="55.*mm"/>
+        <constant name="B1_L2_M_length"         value="28.0*mm"/>
+        <constant name="B1_L2_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L2_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L2_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L2_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L3_M_width"          value="55.*mm"/>
+        <constant name="B1_L3_M_length"         value="28.0*mm"/>
+        <constant name="B1_L3_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L3_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L3_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L3_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L4_M_width"          value="55.*mm"/>
+        <constant name="B1_L4_M_length"         value="28.0*mm"/>
+        <constant name="B1_L4_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L4_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L4_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L4_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L5_M_width"          value="55.*mm"/>
+        <constant name="B1_L5_M_length"         value="28.0*mm"/>
+        <constant name="B1_L5_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L5_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L5_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L5_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L6_M_width"          value="55.*mm"/>
+        <constant name="B1_L6_M_length"         value="28.0*mm"/>
+        <constant name="B1_L6_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L6_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L6_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L6_M_offsetR"        value="4.*mm"/>
+        
+        <constant name="B1_L7_M_width"          value="55.*mm"/>
+        <constant name="B1_L7_M_length"         value="28.0*mm"/>
+        <constant name="B1_L7_M_thickness"      value="0.1*mm"/>
+        <constant name="B1_L7_M_offsetZ"        value="50.*mm"/>
+        <constant name="B1_L7_M_offsetRZ"       value="3.*mm"/>
+        <constant name="B1_L7_M_offsetR"        value="4.*mm"/>
+        
+        <!--EndCap1-->
+        <constant name="E1_rmin"            value="21.*mm"/>
+        <constant name="E1_rmax"            value="4000.*mm"/> <!--Old:2405.*mm now for forward tracker bigger, change later-->
+        <constant name="E1_dz"              value="2500.*mm"/> <!--With FwrdEndcap: 10.95, -14.05, 14.05-->
+        <constant name="pE1_zpos"           value="5603.*mm"/>
+        <constant name="nE1_zpos"           value="-5603.*mm"/>
+        <!--Layers-->
+       <!-- <constant name="E1_L_rmin"          value="23.*mm"/>
+        <constant name="E1_L_rmax"          value="2401.5*mm"/>-->
+        <constant name="E1_L_dz"            value="6.*cm"/>
+        <constant name="E1_L0_pos"          value="-2100.*mm"/>
+        <constant name="E1_L1_pos"          value="-1763.3*mm"/>
+        <constant name="E1_L2_pos"          value="-1394.2*mm"/>
+        <constant name="E1_L3_pos"          value="-989.6*mm"/>
+        <constant name="E1_L4_pos"          value="-546.*mm"/>
+        <constant name="E1_L5_pos"          value="-40.*mm"/>
+        <constant name="E1_L6_pos"          value="473.2*mm"/>
+        <constant name="E1_L7_pos"          value="1057.4*mm"/>
+        <constant name="E1_L8_pos"          value="1697.9*mm"/>
+        <constant name="E1_L9_pos"          value="2400.*mm"/>
+        <constant name="E1_L_rmin"          value="23.*mm"/>
+        <constant name="E1_L_rmax"          value="3500.*mm"/><!--Old:2401.5.*mm now for forward tracker bigger, change later-->
+       <!--Fwrd <constant name="E1_L_dz"            value="6.*cm"/>
+        <constant name="E1_L0_pos"          value="-10550.*mm"/>
+        <constant name="E1_L1_pos"          value="-10213.3*mm"/>
+        <constant name="E1_L2_pos"          value="-9844.2*mm"/>
+        <constant name="E1_L3_pos"          value="-9439.6*mm"/>
+        <constant name="E1_L4_pos"          value="-8996.*mm"/>
+        <constant name="E1_L5_pos"          value="-8509.8*mm"/>
+        <constant name="E1_L6_pos"          value="-7976.8*mm"/>
+        <constant name="E1_L7_pos"          value="-7392.6*mm"/>
+        <constant name="E1_L8_pos"          value="-6752.1*mm"/>
+        <constant name="E1_L9_pos"          value="-6050.*mm"/>-->
+        <!--Module-->
+        <constant name="E_M_thickness"       value="0.1*mm"/>
+        <!--Ring0-->
+        <constant name="E1_M0_r"              value="62.65*mm"/>
+        <constant name="E1_M0_pos"            value="0.*mm"/>
+        <constant name="E1_M0_X1"             value="7.5*mm"/>
+        <constant name="E1_M0_X2"             value="30.09*mm"/>
+        <constant name="E1_M0_length"         value="37.65*mm"/>
+        <constant name="E1_M0_modulesInPhi"   value="12"/>
+        <!--Ring1-->
+        <constant name="E1_M1_r"              value="150.15*mm"/>
+        <constant name="E1_M1_pos"            value="1.*mm"/>
+        <constant name="E1_M1_X1"             value="20.*mm"/>
+        <constant name="E1_M1_X2"             value="35.*mm"/>
+        <constant name="E1_M1_length"         value="50.25*mm"/>
+        <constant name="E1_M1_modulesInPhi"   value="20"/>
+        <!--Ring2-->
+        <constant name="E1_M2_r"             value="250.3*mm"/>
+        <constant name="E1_M2_pos"            value="0.*mm"/>
+        <constant name="E1_M2_X1"             value="20.*mm"/>
+        <constant name="E1_M2_X2"             value="30.*mm"/>
+        <constant name="E1_M2_length"         value="51.35*mm"/>
+        <constant name="E1_M2_modulesInPhi"  value="32"/>
+        <!--Ring3-->
+        <constant name="E1_M3_r"              value="351.55*mm"/>
+        <constant name="E1_M3_pos"            value="1.*mm"/>
+        <constant name="E1_M3_X1"             value="25.*mm"/>
+        <constant name="E1_M3_X2"             value="35.*mm"/>
+        <constant name="E1_M3_length"         value="50.05*mm"/>
+        <constant name="E1_M3_modulesInPhi"   value="44"/>
+        <!--Ring4-->
+        <constant name="E1_M4_r"              value="451.75*mm"/>
+        <constant name="E1_M4_pos"            value="0.*mm"/>
+        <constant name="E1_M4_X1"             value="25.*mm"/>
+        <constant name="E1_M4_X2"             value="35.*mm"/>
+        <constant name="E1_M4_length"         value="52.35*mm"/>
+        <constant name="E1_M4_modulesInPhi"   value="52"/>
+        <!--Ring5-->
+        <constant name="E1_M5_r"              value="553.6*mm"/>
+        <constant name="E1_M5_pos"            value="1.*mm"/>
+        <constant name="E1_M5_X1"             value="25.*mm"/>
+        <constant name="E1_M5_X2"             value="35.*mm"/>
+        <constant name="E1_M5_length"         value="50.3*mm"/>
+        <constant name="E1_M5_modulesInPhi"   value="64"/>
+        <!--Ring6-->
+        <constant name="E1_M6_r"              value="657.9*mm"/>
+        <constant name="E1_M6_pos"            value="0.*mm"/>
+        <constant name="E1_M6_X1"             value="40.*mm"/>
+        <constant name="E1_M6_X2"             value="50.*mm"/>
+        <constant name="E1_M6_length"         value="57.7*mm"/>
+        <constant name="E1_M6_modulesInPhi"   value="48"/>
+        <!--Ring7-->
+        <constant name="E1_M7_r"              value="773.3*mm"/>
+        <constant name="E1_M7_pos"            value="1.*mm"/>
+        <constant name="E1_M7_X1"             value="60.*mm"/>
+        <constant name="E1_M7_X2"             value="70.*mm"/>
+        <constant name="E1_M7_length"         value="57.7*mm"/>
+        <constant name="E1_M7_modulesInPhi"   value="52"/>
+        <!--Ring8-->
+        <constant name="E1_M8_r"              value="884.6*mm"/>
+        <constant name="E1_M8_pos"            value="0.*mm"/>
+        <constant name="E1_M8_X1"             value="60.*mm"/>
+        <constant name="E1_M8_X2"             value="70.*mm"/>
+        <constant name="E1_M8_length"         value="57.7*mm"/>
+        <constant name="E1_M8_modulesInPhi"   value="60"/>
+        <!--Ring9-->
+        <constant name="E1_M9_r"              value="1000.1*mm"/>
+        <constant name="E1_M9_pos"            value="1.*mm"/>
+        <constant name="E1_M9_X1"             value="60.*mm"/>
+        <constant name="E1_M9_X2"             value="70.*mm"/>
+        <constant name="E1_M9_length"         value="57.7*mm"/>
+        <constant name="E1_M9_modulesInPhi"   value="68"/>
+        <!--Ring10-->
+        <constant name="E1_M10_r"              value="1110.5*mm"/>
+        <constant name="E1_M10_pos"            value="0.*mm"/>
+        <constant name="E1_M10_X1"             value="60.*mm"/>
+        <constant name="E1_M10_X2"             value="70.*mm"/>
+        <constant name="E1_M10_length"         value="57.7*mm"/>
+        <constant name="E1_M10_modulesInPhi"   value="76"/>
+        <!--Ring11-->
+        <constant name="E1_M11_r"              value="1226.1*mm"/>
+        <constant name="E1_M11_pos"            value="1.*mm"/>
+        <constant name="E1_M11_X1"             value="60.*mm"/>
+        <constant name="E1_M11_X2"             value="70.*mm"/>
+        <constant name="E1_M11_length"         value="57.7*mm"/>
+        <constant name="E1_M11_modulesInPhi"   value="80"/>
+        <!--Ring12-->
+        <constant name="E1_M12_r"              value="1335.5*mm"/>
+        <constant name="E1_M12_pos"            value="0.*mm"/>
+        <constant name="E1_M12_X1"             value="50.*mm"/>
+        <constant name="E1_M12_X2"             value="60.*mm"/>
+        <constant name="E1_M12_length"         value="57.7*mm"/>
+        <constant name="E1_M12_modulesInPhi"   value="88"/>
+        <!--Ring13-->
+        <constant name="E1_M13_r"              value="1451.3*mm"/>
+        <constant name="E1_M13_pos"            value="1.*mm"/>
+        <constant name="E1_M13_X1"             value="50.*mm"/>
+        <constant name="E1_M13_X2"             value="60.*mm"/>
+        <constant name="E1_M13_length"         value="57.7*mm"/>
+        <constant name="E1_M13_modulesInPhi"   value="96"/>
+        <!--Ring14-->
+        <constant name="E1_M14_r"              value="1559.8*mm"/>
+        <constant name="E1_M14_pos"            value="0.*mm"/>
+        <constant name="E1_M14_X1"             value="50.*mm"/>
+        <constant name="E1_M14_X2"             value="60.*mm"/>
+        <constant name="E1_M14_length"         value="57.7*mm"/>
+        <constant name="E1_M14_modulesInPhi"   value="100"/>
+        <!--Ring15-->
+        <constant name="E1_M15_r"              value="1675.7*mm"/>
+        <constant name="E1_M15_pos"            value="1.*mm"/>
+        <constant name="E1_M15_X1"             value="50.*mm"/>
+        <constant name="E1_M15_X2"             value="60.*mm"/>
+        <constant name="E1_M15_length"         value="57.7*mm"/>
+        <constant name="E1_M15_modulesInPhi"   value="108"/>
+        <!--Ring16-->
+        <constant name="E1_M16_r"              value="1783.2*mm"/>
+        <constant name="E1_M16_pos"            value="0.*mm"/>
+        <constant name="E1_M16_X1"             value="50.*mm"/>
+        <constant name="E1_M16_X2"             value="60.*mm"/>
+        <constant name="E1_M16_length"         value="57.7*mm"/>
+        <constant name="E1_M16_modulesInPhi"   value="116"/>
+        <!--Ring17-->
+        <constant name="E1_M17_r"              value="1899.2*mm"/>
+        <constant name="E1_M17_pos"            value="1.*mm"/>
+        <constant name="E1_M17_X1"             value="50.*mm"/>
+        <constant name="E1_M17_X2"             value="60.*mm"/>
+        <constant name="E1_M17_length"         value="57.7*mm"/>
+        <constant name="E1_M17_modulesInPhi"   value="124"/>
+        <!--Ring18-->
+        <constant name="E1_M18_r"              value="2005.7*mm"/>
+        <constant name="E1_M18_pos"            value="0.*mm"/>
+        <constant name="E1_M18_X1"             value="50.*mm"/>
+        <constant name="E1_M18_X2"             value="60.*mm"/>
+        <constant name="E1_M18_length"         value="57.7*mm"/>
+        <constant name="E1_M18_modulesInPhi"   value="128"/>
+        <!--Ring19-->
+        <constant name="E1_M19_r"              value="2118.9*mm"/>
+        <constant name="E1_M19_pos"            value="1.*mm"/>
+        <constant name="E1_M19_X1"             value="50.*mm"/>
+        <constant name="E1_M19_X2"             value="60.*mm"/>
+        <constant name="E1_M19_length"         value="57.7*mm"/>
+        <constant name="E1_M19_modulesInPhi"   value="136"/>
+        <!--Ring20-->
+        <constant name="E1_M20_r"              value="2227.5*mm"/>
+        <constant name="E1_M20_pos"            value="0.*mm"/>
+        <constant name="E1_M20_X1"             value="50.*mm"/>
+        <constant name="E1_M20_X2"             value="60.*mm"/>
+        <constant name="E1_M20_length"         value="57.7*mm"/>
+        <constant name="E1_M20_modulesInPhi"   value="144"/>
+        <!--Ring21-->
+        <constant name="E1_M21_r"              value="2326.1*mm"/>
+        <constant name="E1_M21_pos"            value="1.*mm"/>
+        <constant name="E1_M21_X1"             value="50.*mm"/>
+        <constant name="E1_M21_X2"             value="60.*mm"/>
+        <constant name="E1_M21_length"         value="40.*mm"/>
+        <constant name="E1_M21_modulesInPhi"   value="152"/>
+
+
+        <!--now adding discs for forward tracker-->
+        <constant name="E1_L10_pos"          value="7.45*m"/>
+        <constant name="E1_L11_pos"          value="7.95*m"/>
+        <constant name="E1_L12_pos"          value="8.45*m"/>
+        <constant name="E1_L13_pos"          value="8.95*m"/>
+        <constant name="E1_L14_pos"          value="9.95*m"/>
+        <!--Ring22-->
+        <constant name="E1_M22_r"              value="2423.8*mm"/>
+        <constant name="E1_M22_pos"            value="0.*mm"/>
+        <constant name="E1_M22_X1"             value="75.*mm"/>
+        <constant name="E1_M22_X2"             value="90.*mm"/>
+        <constant name="E1_M22_length"         value="57.7*mm"/>
+        <constant name="E1_M22_modulesInPhi"   value="161"/>
+        <!--Ring23-->
+        <constant name="E1_M23_r"              value="2539.2*mm"/>
+        <constant name="E1_M23_pos"            value="0.*mm"/>
+        <constant name="E1_M23_X1"             value="75.*mm"/>
+        <constant name="E1_M23_X2"             value="90.*mm"/>
+        <constant name="E1_M23_length"         value="57.7*mm"/>
+        <constant name="E1_M23_modulesInPhi"   value="170"/>
+        <!--Ring24-->
+        <constant name="E1_M24_r"              value="2654.6*mm"/>
+        <constant name="E1_M24_pos"            value="0.*mm"/>
+        <constant name="E1_M24_X1"             value="75.*mm"/>
+        <constant name="E1_M24_X2"             value="90.*mm"/>
+        <constant name="E1_M24_length"         value="57.7*mm"/>
+        <constant name="E1_M24_modulesInPhi"   value="177"/>
+        <!--Ring25-->
+        <constant name="E1_M25_r"              value="2760.0*mm"/>
+        <constant name="E1_M25_pos"            value="0.*mm"/>
+        <constant name="E1_M25_X1"             value="75.*mm"/>
+        <constant name="E1_M25_X2"             value="90.*mm"/>
+        <constant name="E1_M25_length"         value="57.7*mm"/>
+        <constant name="E1_M25_modulesInPhi"   value="195"/>
+        <!--Ring25-->
+        <constant name="E1_M26_r"              value="2875.4*mm"/>
+        <constant name="E1_M26_pos"            value="0.*mm"/>
+        <constant name="E1_M26_X1"             value="75.*mm"/>
+        <constant name="E1_M26_X2"             value="90.*mm"/>
+        <constant name="E1_M26_length"         value="57.7*mm"/>
+        <constant name="E1_M26_modulesInPhi"   value="205"/>
+        <!--Ring27-->
+        <constant name="E1_M27_r"              value="2980.8*mm"/>
+        <constant name="E1_M27_pos"            value="0.*mm"/>
+        <constant name="E1_M27_X1"             value="75.*mm"/>
+        <constant name="E1_M27_X2"             value="90.*mm"/>
+        <constant name="E1_M27_length"         value="57.7*mm"/>
+        <constant name="E1_M27_modulesInPhi"   value="214"/>
+        <!--Ring28-->
+        <constant name="E1_M28_r"              value="3096.2*mm"/>
+        <constant name="E1_M28_pos"            value="0.*mm"/>
+        <constant name="E1_M28_X1"             value="75.*mm"/>
+        <constant name="E1_M28_X2"             value="90.*mm"/>
+        <constant name="E1_M28_length"         value="57.7*mm"/>
+        <constant name="E1_M28_modulesInPhi"   value="222"/>
+        <!--Ring29-->
+        <constant name="E1_M29_r"              value="3211.6*mm"/>
+        <constant name="E1_M29_pos"            value="0.*mm"/>
+        <constant name="E1_M29_X1"             value="75.*mm"/>
+        <constant name="E1_M29_X2"             value="90.*mm"/>
+        <constant name="E1_M29_length"         value="57.7*mm"/>
+        <constant name="E1_M29_modulesInPhi"   value="230"/>
+        
+        
+        
+</define>
+
+    <display>
+        <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/>
+        <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/>
+        <vis name="BarrelVis" alpha="1" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="false"/>
+        <vis name="EndCapVis" alpha="1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/>
+        <vis name="BarrelLayerVis" alpha="1" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="false"/>
+        <vis name="EndcapLayerVis" alpha="1" r="1.0" g="0.0" b="1.0" showDaughters="true" visible="false"/>
+    </display>
+
+    <readouts>
+        <readout name="B0_Readout">
+            <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/>
+            <id>system:3,layer:3,module:15,x:32:-16,y:-16</id>
+        </readout>
+    </readouts>
+
+
+    <include ref="TestTracker2Inner.xml"/>
+    <include ref="TestTracker2Outer.xml"/>
+
+    <detectors>
+    <detector id="0" name="beampipe" type="BeamPipe">
+            <status id="0"/>
+            <dimensions rmin="Tube_rmin" rmax="Tube_rmax" z="Tube_length" vis="violet" material="Air"/>
+        </detector>
+       <detector id="1" name="TestTracker2Inner" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <shape name="EnvelopeShape" type="Tube" rmin="Env0_rmin" rmax="Env0_rmax" dz="Env0_dz" material="Air"/>
+            <composite name="Barrel0"/>
+            <composite name="nEndCap0"/>
+            <composite name="pEndCap0"/>
+        </detector>
+        <detector id="2" name="TestTracker2Outer" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans">
+            <shape name="EnvelopeShape" type="Tube" rmin="Env1_rmin" rmax="Env1_rmax" dz="Env1_dz" material="Air"/>
+            <composite name="Barrel1"/>
+            <composite name="nEndCap1"/>
+            <composite name="pEndCap1"/>
+        </detector>
+    </detectors>
+</lccdd>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95c1d8fc8061926a7e041e98b33f15cdc27f0bd5
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml
@@ -0,0 +1,274 @@
+<detectors>
+    <!--Barrel-->
+   <detector id="100" name="Barrel0" type="ACTS_TKLayoutBarrel" readout="B0_Readout">
+        <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="BarrelVis"/>
+        <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L0_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L0_M_offsetZ" repeat="B0_L0_M_repeatZ" dr="B0_L0_M_offsetR" dz="B0_L0_M_offsetRZ"/>
+            <module name="Module0" width="B0_L0_M_width" length="B0_L0_M_length" thickness="B0_L0_M_thickness" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L1_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L1_M_offsetZ" repeat="B0_L1_M_repeatZ" dr="B0_L1_M_offsetR" dz="B0_L1_M_offsetRZ"/>
+            <module name="Module1" width="B0_L1_M_width" length="B0_L1_M_length" thickness="B0_L1_M_thickness" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L2_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L2_M_offsetZ" repeat="B0_L2_M_repeatZ" dr="B0_L2_M_offsetR" dz="B0_L2_M_offsetRZ"/>
+            <module name="Module2" width="B0_L2_M_width" length="B0_L2_M_length" thickness="B0_L2_M_thickness" repeat="B0_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L3_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L3_M_offsetZ" repeat="B0_L3_M_repeatZ" dr="B0_L3_M_offsetR" dz="B0_L3_M_offsetRZ"/>
+            <module name="Module3" width="B0_L3_M_width" length="B0_L3_M_length" thickness="B0_L3_M_thickness" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="4" inner_r="B0_L4_rmin" outer_r="B0_L4_rmax" z="B0_L4_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L4_M_offsetZ" repeat="B0_L4_M_repeatZ" dr="B0_L4_M_offsetR" dz="B0_L4_M_offsetRZ"/>
+            <module name="Module4" width="B0_L4_M_width" length="B0_L4_M_length" thickness="B0_L4_M_thickness" repeat="B0_L4_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="5" inner_r="B0_L5_rmin" outer_r="B0_L5_rmax" z="B0_L5_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L5_M_offsetZ" repeat="B0_L5_M_repeatZ" dr="B0_L5_M_offsetR" dz="B0_L5_M_offsetRZ"/>
+            <module name="Module5" width="B0_L5_M_width" length="B0_L5_M_length" thickness="B0_L5_M_thickness" repeat="B0_L5_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="6" inner_r="B0_L6_rmin" outer_r="B0_L6_rmax" z="B0_L6_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L6_M_offsetZ" repeat="B0_L6_M_repeatZ" dr="B0_L6_M_offsetR" dz="B0_L6_M_offsetRZ"/>
+            <module name="Module6" width="B0_L6_M_width" length="B0_L6_M_length" thickness="B0_L6_M_thickness" repeat="B0_L6_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="7" inner_r="B0_L7_rmin" outer_r="B0_L7_rmax" z="B0_L7_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B0_L7_M_offsetZ" repeat="B0_L7_M_repeatZ" dr="B0_L7_M_offsetR" dz="B0_L7_M_offsetRZ"/>
+            <module name="Module7" width="B0_L7_M_width" length="B0_L7_M_length" thickness="B0_L7_M_thickness" repeat="B0_L7_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="8" inner_r="B0_L8_rmin" outer_r="B0_L8_rmax" z="B0_L8_dz" material="Air" vis="BarrelLayerVis">
+        <slice z="B0_L8_M_offsetZ" repeat="B0_L8_M_repeatZ" dr="B0_L8_M_offsetR" dz="B0_L8_M_offsetRZ"/>
+        <module name="Module8" width="B0_L8_M_width" length="B0_L8_M_length" thickness="B0_L8_M_thickness" repeat="B0_L8_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--negEndCap-->
+    <detector id="101" name="nEndCap0" type="ACTS_TKLayoutEndcap" readout="B0_Readout">
+        <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="nE0_zpos" vis="EndCapVis"/>
+        <layer id="0" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="4" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L4_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="5" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L5_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="6" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L6_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="7" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L7_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="102" name="pEndCap0" type="ACTS_TKLayoutEndcap" readout="B0_Readout">
+        <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="EndCapVis"/>
+        <layer id="0" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="4" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L4_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="5" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L5_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="6" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L6_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="7" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L7_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+ </detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f439eadb2930f9dde56669e7735732eba71d5090
--- /dev/null
+++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml
@@ -0,0 +1,1239 @@
+<detectors>
+    <!--Barrel-->
+    <detector id="200" name="Barrel1" type="ACTS_TKLayoutBarrel" readout="B0_Readout">
+        <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="B1_zpos" vis="BarrelVis"/>
+        <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L0_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L0_M_offsetZ" repeat="B1_L0_M_repeatZ" dr="B1_L0_M_offsetR" dz="B1_L0_M_offsetRZ"/>
+            <module name="Module0" width="B1_L0_M_width" length="B1_L0_M_length" thickness="B1_L0_M_thickness" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L1_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L1_M_offsetZ" repeat="B1_L1_M_repeatZ" dr="B1_L1_M_offsetR" dz="B1_L1_M_offsetRZ"/>
+            <module name="Module1" width="B1_L1_M_width" length="B1_L1_M_length" thickness="B1_L1_M_thickness" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L2_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L2_M_offsetZ" repeat="B1_L2_M_repeatZ" dr="B1_L2_M_offsetR" dz="B1_L2_M_offsetRZ"/>
+            <module name="Module1" width="B1_L2_M_width" length="B1_L2_M_length" thickness="B1_L2_M_thickness" repeat="B1_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L3_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L3_M_offsetZ" repeat="B1_L3_M_repeatZ" dr="B1_L3_M_offsetR" dz="B1_L3_M_offsetRZ"/>
+            <module name="Module1" width="B1_L3_M_width" length="B1_L3_M_length" thickness="B1_L3_M_thickness" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="4" inner_r="B1_L4_rmin" outer_r="B1_L4_rmax" z="B1_L4_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L4_M_offsetZ" repeat="B1_L4_M_repeatZ" dr="B1_L4_M_offsetR" dz="B1_L4_M_offsetRZ"/>
+            <module name="Module1" width="B1_L4_M_width" length="B1_L4_M_length" thickness="B1_L4_M_thickness" repeat="B1_L4_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="5" inner_r="B1_L5_rmin" outer_r="B1_L5_rmax" z="B1_L5_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L5_M_offsetZ" repeat="B1_L5_M_repeatZ" dr="B1_L5_M_offsetR" dz="B1_L5_M_offsetRZ"/>
+            <module name="Module1" width="B1_L5_M_width" length="B1_L5_M_length" thickness="B1_L5_M_thickness" repeat="B1_L5_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="6" inner_r="B1_L6_rmin" outer_r="B1_L6_rmax" z="B1_L6_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L6_M_offsetZ" repeat="B1_L6_M_repeatZ" dr="B1_L6_M_offsetR" dz="B1_L6_M_offsetRZ"/>
+            <module name="Module1" width="B1_L6_M_width" length="B1_L6_M_length" thickness="B1_L6_M_thickness" repeat="B1_L6_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+        <layer id="7" inner_r="B1_L7_rmin" outer_r="B1_L7_rmax" z="B1_L7_dz" material="Air" vis="BarrelLayerVis">
+            <slice z="B1_L7_M_offsetZ" repeat="B1_L7_M_repeatZ" dr="B1_L7_M_offsetR" dz="B1_L7_M_offsetRZ"/>
+            <module name="Module1" width="B1_L7_M_width" length="B1_L7_M_length" thickness="B1_L7_M_thickness" repeat="B1_L7_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/>
+        </layer>
+    </detector>
+    <!--negEndCap-->
+    <detector id="201" name="nEndCap1" type="ACTS_TKLayoutEndcap" readout="B0_Readout">
+        <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="nE1_zpos" vis="EndCapVis"/>
+        <layer id="0" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="4" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L4_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="5" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L5_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="6" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L6_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="7" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L7_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="8" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L8_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="9" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L9_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+    </detector>
+    <!--posEndCap-->
+    <detector id="202" name="pEndCap1" type="ACTS_TKLayoutEndcap" readout="B0_Readout">
+        <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="EndCapVis"/>
+        <layer id="0" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+           <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="1" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="2" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="3" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="4" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L4_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="5" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L5_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="6" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L6_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="7" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L7_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="8" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L8_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="9" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L9_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <!--Forward-->
+        <!--<layer id="10" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L10_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="11" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L11_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="12" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L12_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="13" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L13_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod26" radius="E1_M26_r" dz="E1_M26_pos" x1="E1_M26_X1" x2="E1_M26_X2" length="E1_M26_length" thickness="E_M_thickness" repeat="E1_M26_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod27" radius="E1_M27_r" dz="E1_M27_pos" x1="E1_M27_X1" x2="E1_M27_X2" length="E1_M27_length" thickness="E_M_thickness" repeat="E1_M27_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>
+        <layer id="14" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L14_pos" material="Air" vis="EndcapLayerVis">
+            <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod26" radius="E1_M26_r" dz="E1_M26_pos" x1="E1_M26_X1" x2="E1_M26_X2" length="E1_M26_length" thickness="E_M_thickness" repeat="E1_M26_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod27" radius="E1_M27_r" dz="E1_M27_pos" x1="E1_M27_X1" x2="E1_M27_X2" length="E1_M27_length" thickness="E_M_thickness" repeat="E1_M27_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod28" radius="E1_M28_r" dz="E1_M28_pos" x1="E1_M28_X1" x2="E1_M28_X2" length="E1_M28_length" thickness="E_M_thickness" repeat="E1_M28_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+            <module name ="TrMod29" radius="E1_M29_r" dz="E1_M29_pos" x1="E1_M29_X1" x2="E1_M29_X2" length="E1_M29_length" thickness="E_M_thickness" repeat="E1_M29_modulesInPhi" material="Silicon" vis="orange" sensitive="true">
+            </module>
+        </layer>-->
+    </detector>
+</detectors>
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/compact/materials.xml b/Detectors/DD4hepDetector/compact/materials.xml
index 17da23d24076822fdfbbfb68fd842f94edb0fd9c..f545a4f489ec9383ef1a830c8406cd5d573cd873 100644
--- a/Detectors/DD4hepDetector/compact/materials.xml
+++ b/Detectors/DD4hepDetector/compact/materials.xml
@@ -35,14 +35,6 @@
     <fraction n="1" ref="H" />
   </material>
 
-  <material Z="4" name="Beryllium" state="solid">
-        <MEE unit="eV" value="63.7"/>
-        <D unit="g/cm3" value="1.848"/>
-        <atom unit="g/mole" value="9.01218"/>
-        <fraction n="1" ref="Be"/>
-    </material>
-
-
   <material name="Epoxy">
     <D type="density" value="1.3" unit="g/cm3"/>
     <composite n="44" ref="H"/>
diff --git a/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp b/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp
index 3fa99b3d6aa9259347a56e60b68c14a6b662fdd0..4a0520e44f8a6005c6d5b7bb2126aab29bf2109c 100644
--- a/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp
+++ b/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp
@@ -53,7 +53,7 @@
 ///   ...
 ///       Acts::ActsExtension* moduleExtension
 ///       = new Acts::ActsExtension(digiModule);
-///   moduleDetElement.addExtension<Acts::ActsExtension>(moduleExtension);
+///   moduleDetElement.addExtension<Acts::IActsExtension>(moduleExtension);
 /// }
 /// @endcode
 ///
@@ -83,7 +83,7 @@
 ///  layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner
 ///  Acts::ActsExtension* layerExtension = new
 ///  Acts::ActsExtension(layConfig);
-///  layer_detElement.addExtension<Acts::ActsExtension>(layerExtension);
+///  layer_detElement.addExtension<Acts::IActsExtension>(layerExtension);
 ///  @endcode
 ///
 /// In case several sensitive detector modules have the same segmentation an
diff --git a/Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp b/Detectors/DD4hepDetector/src/AirTube_geo.cpp
similarity index 73%
rename from Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp
rename to Detectors/DD4hepDetector/src/AirTube_geo.cpp
index 5f8ddc3e5c21932b2455a1cd3020cd254e14d985..2f568b0c968df6a244a5833ebbb07d4245557fbc 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp
+++ b/Detectors/DD4hepDetector/src/AirTube_geo.cpp
@@ -31,10 +31,11 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector /* sens */)
   std::string name  = x_det.nameStr();
 
   DetElement airTube(name, x_det.id());
-  // Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* airTubeExtension = new Acts::ActsExtension();
-  airTubeExtension->addType("beampipe", "layer");
-  airTube.addExtension<Acts::ActsExtension>(airTubeExtension);
+  // add Extension to Detlement for the RecoGeometry
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBeampipe           = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  airTube.addExtension<Acts::IActsExtension>(detvolume);
 
   PlacedVolume pv;
 
@@ -54,6 +55,18 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector /* sens */)
   Volume tube_vol(
       name + "_inner_cylinder_air", tubeSolid, lcdd.material("Air"));
 
+  /*  Vector3D ocyl(inner_r + 0.5 * tube_thick, 0., 0.);
+
+    VolCylinder cylSurf(tube_vol,
+                        SurfaceType(SurfaceType::Helper),
+                        0.5 * tube_thick,
+                        0.5 * tube_thick,
+                        ocyl);
+
+    volSurfaceList(airTube)->push_back(cylSurf);*/
+
+  //--------------------------------------
+
   Volume mother = lcdd.pickMotherVolume(airTube);
 
   pv = mother.placeVolume(tube_vol);
diff --git a/Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp b/Detectors/DD4hepDetector/src/Barrel_geo.cpp
similarity index 80%
rename from Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp
rename to Detectors/DD4hepDetector/src/Barrel_geo.cpp
index 46eb0e6e836fa345230932e456b49d067b922f13..de42dfaa16d8cf0ab94a8489926f0bef3b057fb3 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp
+++ b/Detectors/DD4hepDetector/src/Barrel_geo.cpp
@@ -8,6 +8,7 @@
 
 #include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp"
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 
 using namespace std;
@@ -25,10 +26,11 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
   string    det_name = x_det.nameStr();
   // Make DetElement
   DetElement cylinderVolume(det_name, x_det.id());
-  // Add Extension to DetElement for the RecoGeometry
-  Acts::ActsExtension* barrelExtension = new Acts::ActsExtension();
-  barrelExtension->addType("barrel", "detector");
-  cylinderVolume.addExtension<Acts::ActsExtension>(barrelExtension);
+  // add Extension to Detlement for the RecoGeometry
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  cylinderVolume.addExtension<Acts::IActsExtension>(detvolume);
   // make Volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
@@ -93,9 +95,12 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
           // Set Sensitive Volmes sensitive
           if (x_module.isSensitive()) {
             mod_vol.setSensitiveDetector(sens);
-            // Create and attach the extension for DD4Hep/Acts conversion
-            Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-            mod_det.addExtension<Acts::ActsExtension>(moduleExtension);
+
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiModule);
+            mod_det.addExtension<Acts::IActsExtension>(moduleExtension);
           }
           // Place Module Box Volumes in layer
           PlacedVolume placedmodule = layer_vol.placeVolume(
@@ -109,13 +114,18 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
         }
       }
     }
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("active cylinder", "layer");
-    layerExtension->addType("axes", "definitions", "YxZ");
-    lay_det.addExtension<Acts::ActsExtension>(layerExtension);
+    // set granularity of layer material mapping and where material should be
+    // mapped
+    // hand over modules to ACTS
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer = true;
+    layConfig.axes    = "YxZ";
+    /// @todo re-enable material mapping
+    //  layConfig.materialBins1         = 100;
+    //  layConfig.materialBins2         = 100;
+    //  layConfig.layerMaterialPosition = Acts::LayerMaterialPos::outer;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
     // Place layer volume
     PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol);
     placedLayer.addPhysVolID("layer", layer_num);
diff --git a/Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp b/Detectors/DD4hepDetector/src/BeamPipe_geo.cpp
similarity index 80%
rename from Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp
rename to Detectors/DD4hepDetector/src/BeamPipe_geo.cpp
index 43d590604810dbd6348b1a781f9182a6fb06372a..7aa95ab9069622302d2a7ee844926607a6cdd062 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp
+++ b/Detectors/DD4hepDetector/src/BeamPipe_geo.cpp
@@ -19,25 +19,23 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens)
   string    det_name = x_det.nameStr();
   // Make DetElement
   DetElement beamtube(det_name, x_det.id());
-  // Add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* beamPipeExtension = new Acts::ActsExtension();
-  beamPipeExtension->addType("beampipe", "layer");
-  beamtube.addExtension<Acts::ActsExtension>(beamPipeExtension);
+  // add Extension to Detlement for the RecoGeometry
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBeampipe           = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  beamtube.addExtension<Acts::IActsExtension>(detvolume);
 
-  // Create the shape and volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.z());
   Volume tube_vol(
       det_name, tube_shape, lcdd.air());  // air at the moment change later
   tube_vol.setVisAttributes(lcdd, x_det_dim.visStr());
-
   // Place Volume
   Volume       mother_vol = lcdd.pickMotherVolume(beamtube);
   PlacedVolume placedTube = mother_vol.placeVolume(tube_vol);
   placedTube.addPhysVolID("tube", beamtube.id());
   beamtube.setPlacement(placedTube);
 
-  // Return the detector element
   return beamtube;
 }
 
diff --git a/Detectors/DD4hepDetector/src/CMakeLists.txt b/Detectors/DD4hepDetector/src/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e02833bdb01f4ad91f2170892d26eb0823592cee
--- /dev/null
+++ b/Detectors/DD4hepDetector/src/CMakeLists.txt
@@ -0,0 +1,17 @@
+file(GLOB_RECURSE src_files "src/*.cpp")
+
+add_library (ACTFWDD4hepDetector SHARED ${src_files})
+target_include_directories(ACTFWDD4hepDetector PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/> $<INSTALL_INTERFACE:include>)
+target_include_directories(ACTFWDD4hepDetector PUBLIC ${DD4hep_INCLUDE_DIRS})
+target_include_directories(ACTFWDD4hepDetector PUBLIC ${ROOT_INCLUDE_DIRS})
+target_link_libraries(ACTFWDD4hepDetector PRIVATE ACTFramework)
+target_link_libraries(ACTFWDD4hepDetector PUBLIC ActsCore ActsDD4hepPlugin)
+target_link_libraries(ACTFWDD4hepDetector PUBLIC ${ROOT_LIBRARIES})
+target_link_libraries(ACTFWDD4hepDetector PUBLIC ${DD4hep_LIBRARIES})
+ 
+set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
+set_target_properties(ACTFWDD4hepDetector PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+dd4hep_set_version(ACTFWDD4hepDetector MAJOR 1 MINOR 0 PATCH 0)
+dd4hep_generate_rootmap(ACTFWDD4hepDetector)
+
+install(TARGETS ACTFWDD4hepDetector LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp b/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp
deleted file mode 100644
index 25e51d220ace1b602457e28a72262b5d018d2eba..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace dd4hep;
-
-/**
- Constructor for a cylindrical barrel volume, possibly containing layers and the
- layers possibly containing modules.
- */
-
-static Ref_t
-create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
-{
-  xml_det_t x_det      = xml;
-  string    barrelName = x_det.nameStr();
-  // Make DetElement
-  DetElement barrelDetector(barrelName, x_det.id());
-  // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* barrelExtension = new Acts::ActsExtension();
-  barrelExtension->addType("barrel", "detector");
-  barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension);
-
-  // Make Volume
-  dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
-  Tube   barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
-  Volume barrelVolume(
-      barrelName, barrelShape, lcdd.air());  // air at the moment change later
-  barrelVolume.setVisAttributes(lcdd, x_det.visStr());
-
-  // Loop over the layers and build them
-  for (xml_coll_t j(xml, _U(layer)); j; ++j) {
-
-    // Get the layer xml configuration
-    xml_comp_t   x_layer  = j;
-    double       rmin     = x_layer.rmin();
-    double       rmax     = x_layer.rmax();
-    unsigned int layerNum = x_layer.id();
-    // Create Volume for Layer
-    string     layerName = barrelName + _toString((int)layerNum, "layer%d");
-    Volume     layerVolume(layerName,
-                       Tube(rmin, rmax, x_layer.dz()),
-                       lcdd.material(x_layer.materialStr()));
-    DetElement layerElement(barrelDetector, layerName, layerNum);
-    // Visualization
-    layerVolume.setVisAttributes(lcdd, x_layer.visStr());
-
-    unsigned int supportNum = 0;
-    // Place the support cylinder
-    if (x_layer.hasChild(_U(support))) {
-      xml_comp_t x_support = x_layer.child(_U(support));
-
-      // Create the volume of the support structure
-      Volume supportVolume(
-          "SupportStructure",
-          Tube(x_support.rmin(), x_support.rmax(), x_support.dz()),
-          lcdd.material(x_support.materialStr()));
-      supportVolume.setVisAttributes(lcdd, x_support.visStr());
-      // Place the support structure
-      PlacedVolume placedSupport = layerVolume.placeVolume(supportVolume);
-      placedSupport.addPhysVolID("support", supportNum++);
-    }
-
-    // Construct the volume
-    if (x_layer.hasChild(_U(module))) {
-
-      xml_comp_t x_module = x_layer.child(_U(module));
-      // create the module volume and its corresponing component volumes first
-      Assembly moduleAssembly("module");
-      // Visualization
-      moduleAssembly.setVisAttributes(lcdd, x_module.visStr());
-      if (x_module.isSensitive()) { moduleAssembly.setSensitiveDetector(sens); }
-
-      xml_comp_t   x_mod_placement = x_module.child(_U(parameter));
-      unsigned int nphi            = x_mod_placement.nphi();
-      double       phi0            = x_mod_placement.phi0();
-      double       phiTilt         = x_mod_placement.phi_tilt();
-      double       r               = x_mod_placement.r();
-      double       deltaPhi        = 2 * M_PI / nphi;
-
-      // Place the components inside the module
-      unsigned int compNum = 1;
-
-      std::vector<PlacedVolume> sensComponents;
-
-      for (xml_coll_t comp(x_module, _U(module_component)); comp;
-           ++comp, ++compNum) {
-        xml_comp_t x_comp = comp;
-        // Component volume
-        string componentName = _toString((int)compNum, "component%d");
-        Volume componentVolume(
-            componentName,
-            Box(0.5 * x_comp.dx(), 0.5 * x_comp.dy(), 0.5 * x_comp.dz()),
-            lcdd.material(x_comp.materialStr()));
-        if (x_comp.isSensitive()) {
-          componentVolume.setSensitiveDetector(sens);
-        }
-
-        // Visualization
-        componentVolume.setVisAttributes(lcdd, x_comp.visStr());
-        // Place Module Box Volumes in layer
-        PlacedVolume placedComponent = moduleAssembly.placeVolume(
-            componentVolume,
-            Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset()));
-        placedComponent.addPhysVolID("component", compNum);
-        // Remember the sensitive components of this module
-        if (x_comp.isSensitive()) { sensComponents.push_back(placedComponent); }
-      }
-
-      // Add cooling pipe
-      if (x_module.hasChild(_U(tubs))) {
-        xml_comp_t x_tubs = x_module.child(_U(tubs));
-        Volume     pipeVolume("CoolingPipe",
-                          Tube(x_tubs.rmin(), x_tubs.rmax(), x_tubs.length()),
-                          lcdd.material(x_tubs.materialStr()));
-        pipeVolume.setVisAttributes(lcdd, x_tubs.visStr());
-        // Place the cooling pipe into the module
-        PlacedVolume placedPipe = moduleAssembly.placeVolume(
-            pipeVolume,
-            Transform3D(RotationX(0.5 * M_PI) * RotationY(0.5 * M_PI),
-                        Position(x_tubs.x_offset(),
-                                 x_tubs.y_offset(),
-                                 x_tubs.z_offset())));
-        placedPipe.addPhysVolID("support", supportNum++);
-      }
-
-      // Add mount
-      if (x_module.hasChild(_U(anchor))) {
-        xml_comp_t x_trd = x_module.child(_U(anchor));
-        // create the two shapes first
-        Trapezoid mountShape(
-            x_trd.x1(), x_trd.x2(), x_trd.length(), x_trd.length(), x_trd.dz());
-
-        Volume mountVolume(
-            "ModuleMount", mountShape, lcdd.material(x_trd.materialStr()));
-
-        // Place the mount onto the module
-        PlacedVolume placedMount = moduleAssembly.placeVolume(
-            mountVolume,
-            Transform3D(RotationZ(0.5 * M_PI),
-                        Position(x_trd.x_offset(),
-                                 x_trd.y_offset(),
-                                 x_trd.z_offset())));
-        placedMount.addPhysVolID("support", supportNum++);
-      }
-
-      // Add cable
-      if (x_module.hasChild(_U(box))) {
-        xml_comp_t x_cab = x_module.child(_U(box));
-        Volume     cableVolume(
-            "Cable",
-            Box(0.5 * x_cab.dx(), 0.5 * x_cab.dy(), 0.5 * x_cab.dz()),
-            lcdd.material(x_cab.materialStr()));
-        // Visualization
-        cableVolume.setVisAttributes(lcdd, x_cab.visStr());
-        // Place Module Box Volumes in layer
-        PlacedVolume placedCable = moduleAssembly.placeVolume(
-            cableVolume,
-            Transform3D(RotationX(x_cab.alpha()),
-                        Position(x_cab.x_offset(),
-                                 x_cab.y_offset(),
-                                 x_cab.z_offset())));
-        placedCable.addPhysVolID("support", supportNum++);
-      }
-
-      // Place the modules
-      for (int iphi = 0; iphi < nphi; ++iphi) {
-
-        double   phi        = phi0 + iphi * deltaPhi;
-        string   moduleName = layerName + _toString((int)iphi, "module%d");
-        Position trans(r * cos(phi), r * sin(phi), 0.);
-        // Create detector element
-        DetElement moduleElement(layerElement, moduleName, iphi);
-        // Place the sensitive inside here
-        unsigned int ccomp = 1;
-        for (auto& sensComp : sensComponents) {
-          DetElement componentElement(moduleElement, "component", ccomp++);
-          componentElement.setPlacement(sensComp);
-        }
-
-        // Place Module Box Volumes in layer
-        PlacedVolume placedModule = layerVolume.placeVolume(
-            moduleAssembly,
-            Transform3D(RotationY(0.5 * M_PI) * RotationX(-phi - phiTilt),
-                        trans));
-        placedModule.addPhysVolID("module", iphi + 1);
-
-        // Assign module DetElement to the placed module volume
-        moduleElement.setPlacement(placedModule);
-      }
-    }
-
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("barrel", "layer");
-    Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension);
-    layerElement.addExtension<Acts::ActsExtension>(layerExtension);
-
-    // Place layer volume
-    PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume);
-    placedLayer.addPhysVolID("layer", layerNum);
-    // Assign layer DetElement to layer volume
-    layerElement.setPlacement(placedLayer);
-  }
-
-  // Place Volume
-  Volume       motherVolume = lcdd.pickMotherVolume(barrelDetector);
-  PlacedVolume placedBarrel = motherVolume.placeVolume(barrelVolume);
-  // "system" is hard coded in the DD4Hep::VolumeManager
-  placedBarrel.addPhysVolID("system", barrelDetector.id());
-  barrelDetector.setPlacement(placedBarrel);
-
-  return barrelDetector;
-}
-
-DECLARE_DETELEMENT(DemonstratorBarrel, create_element)
diff --git a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp b/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp
deleted file mode 100644
index f2c5e6dbec62062587a7820ff049b9b039f07556..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t
-create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det    = xml;
-  string    det_name = x_det.nameStr();
-
-  // Make DetElement
-  DetElement beamPipeElement(det_name, x_det.id());
-  // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* beamPipeExtension = new Acts::ActsExtension();
-  beamPipeExtension->addType("beampipe", "layer");
-  beamPipeElement.addExtension<Acts::ActsExtension>(beamPipeExtension);
-
-  // Make Volume
-  xml_comp_t x_det_def = x_det.child(_U(description));
-  Tube       tube_shape(x_det_def.rmin(), x_det_def.rmax(), x_det_def.dz());
-  Volume tube_vol(det_name, tube_shape, lcdd.material(x_det_def.materialStr()));
-  tube_vol.setVisAttributes(lcdd, x_det.visStr());
-
-  // Place it in the mother
-  Volume       mother_vol = lcdd.pickMotherVolume(beamPipeElement);
-  PlacedVolume placedTube = mother_vol.placeVolume(tube_vol);
-  placedTube.addPhysVolID("BeamTube", beamPipeElement.id());
-  beamPipeElement.setPlacement(placedTube);
-
-  return beamPipeElement;
-}
-
-DECLARE_DETELEMENT(DemonstratorBeamPipe, create_element)
diff --git a/Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp b/Detectors/DD4hepDetector/src/Endcap_geo.cpp
similarity index 85%
rename from Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp
rename to Detectors/DD4hepDetector/src/Endcap_geo.cpp
index e5716b23e8f0c7832cf1f2d128781a02a3d31b63..6076812e2caa722e9d6e60932fd54709e4814e89 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp
+++ b/Detectors/DD4hepDetector/src/Endcap_geo.cpp
@@ -8,6 +8,7 @@
 
 #include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp"
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 
 using namespace std;
@@ -27,8 +28,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
   // Make DetElement
   DetElement cylinderVolume(det_name, x_det.id());
   // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  cylinderVolume.addExtension<Acts::ActsExtension>(detvolume);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isEndcap             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  cylinderVolume.addExtension<Acts::IActsExtension>(detvolume);
   // make Volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
@@ -140,18 +143,22 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
           // Set Sensitive Volumes sensitive
           if (x_module.isSensitive()) {
             mod_vol.setSensitiveDetector(sens);
-            // Create and attach the extension for DD4Hep/Acts conversion
-            Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-            mod_det.addExtension<Acts::ActsExtension>(moduleExtension);
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiModule);
+            mod_det.addExtension<Acts::IActsExtension>(moduleExtension);
           }
 
           int comp_num = 0;
           for (auto& sensComp : sensComponents) {
             // Create DetElement
             DetElement comp_det(mod_det, "component", comp_num);
-            // Create and attach the extension
-            Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-            comp_det.addExtension<Acts::ActsExtension>(moduleExtension);
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiComponent);
+            comp_det.addExtension<Acts::IActsExtension>(moduleExtension);
             comp_det.setPlacement(sensComp);
             comp_num++;
           }
@@ -172,13 +179,18 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
         ++module_num_num;
       }
     }
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive disk", "layer");
-    lay_det.addExtension<Acts::ActsExtension>(layerExtension);
-
+    // set granularity of layer material mapping and where material should be
+    // mapped
+    // hand over modules to ACTS
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer = true;
+    layConfig.axes    = "XZy";
+    ///@todo re-enable material mapping
+    // layConfig.materialBins1         = 50;
+    // layConfig.materialBins2         = 50;
+    // layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
     // Placed Layer Volume
     Position     layer_pos(0., 0., x_layer.z());
     PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol, layer_pos);
diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp
similarity index 89%
rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp
rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp
index c01396e4a8346b8c0b5da0adacf570856f1a3cbb..103cccac2a2709ebfc82f45411aa35a6c8ada482 100644
--- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp
+++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp
@@ -6,9 +6,11 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-#include "../DetUtils.h"
+#include "DetUtils.h"
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
+
 #include "DD4hep/DetFactoryHelper.h"
 
 using dd4hep::DetElement;
@@ -33,12 +35,13 @@ createTkLayoutTrackerBarrel(dd4hep::Detector&         lcdd,
 
   // definition of top volume
   // has min/max dimensions of tracker for visualization etc.
-  std::string detectorName = xmlDet.nameStr();
-  DetElement  topDetElement(detectorName, xmlDet.id());
+  std::string                 detectorName = xmlDet.nameStr();
+  DetElement                  topDetElement(detectorName, xmlDet.id());
+  Acts::ActsExtension::Config barrelConfig;
+  barrelConfig.isBarrel = true;
   // detElement owns extension
-  Acts::ActsExtension* detWorldExt = new Acts::ActsExtension();
-  detWorldExt->addType("barrel", "detector");
-  topDetElement.addExtension<Acts::ActsExtension>(detWorldExt);
+  Acts::ActsExtension* detWorldExt = new Acts::ActsExtension(barrelConfig);
+  topDetElement.addExtension<Acts::IActsExtension>(detWorldExt);
   dd4hep::Tube topVolumeShape(dimensions.rmin(),
                               dimensions.rmax(),
                               (dimensions.zmax() - dimensions.zmin()) * 0.5);
@@ -70,13 +73,15 @@ createTkLayoutTrackerBarrel(dd4hep::Detector&         lcdd,
     placedLayerVolume.addPhysVolID("layer", layerCounter);
     DetElement lay_det(
         topDetElement, "layer" + std::to_string(layerCounter), layerCounter);
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer = true;
     // the local coordinate systems of modules in dd4hep and acts differ
     // see http://acts.web.cern.ch/ACTS/latest/doc/group__DD4hepPlugins.html
+    layConfig.axes = "XzY";  // correct translation of local x axis in dd4hep to
+                             // local x axis in acts
     // detElement owns extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive cylinder", "layer");
-    layerExtension->addType("axes", "definitions", "XzY");
-    lay_det.addExtension<Acts::ActsExtension>(layerExtension);
+    Acts::ActsExtension* layerExtension = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(layerExtension);
     lay_det.setPlacement(placedLayerVolume);
     dd4hep::xml::Component xModuleComponentsOdd
         = xModulePropertiesOdd.child("components");
@@ -156,8 +161,9 @@ createTkLayoutTrackerBarrel(dd4hep::Detector&         lcdd,
                                "module" + std::to_string(moduleCounter),
                                moduleCounter);
             // add extension to hand over material
-            Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-            mod_det.addExtension<Acts::ActsExtension>(moduleExtension);
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(compMaterials, digiModule);
+            mod_det.addExtension<Acts::IActsExtension>(moduleExtension);
 
             mod_det.setPlacement(placedModuleVolume);
             ++moduleCounter;
diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp
similarity index 82%
rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp
rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp
index 29cc4acfe88da6b9aed9cb6a1b73ebaee48ea9d6..fdd9b33b349ef60d556474b89db0e31a54e538d8 100644
--- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp
+++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp
@@ -20,10 +20,11 @@ create_element(dd4hep::Detector& lcdd, xml_h e, dd4hep::SensitiveDetector)
   xml_det_t   x_det    = e;
   std::string det_name = x_det.nameStr();
   // Make DetElement
-  DetElement           beamtube(det_name, x_det.id());
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  detvolume->addType("beampipe", "layer");
-  beamtube.addExtension<Acts::ActsExtension>(detvolume);
+  DetElement                  beamtube(det_name, x_det.id());
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBeampipe           = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  beamtube.addExtension<Acts::IActsExtension>(detvolume);
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.z());
   Volume tube_vol(det_name,
diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp
similarity index 92%
rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp
rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp
index b19680fc44c5c16b3390fdeb4a72a81ca0da07d4..56d8056156e80ea4d16bb067ef4f8b560c5e2274 100644
--- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp
+++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp
@@ -6,10 +6,11 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-#include "../DetUtils.h"
 #include "DD4hep/DetFactoryHelper.h"
+#include "DetUtils.h"
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 
 using dd4hep::DetElement;
 using dd4hep::PlacedVolume;
@@ -39,9 +40,10 @@ createTkLayoutTrackerEndcap(dd4hep::Detector&         lcdd,
   DetElement  worldDetElement(detName, xmlDet.id());
   DetElement  posEcapDetElement(worldDetElement, "posEndcap", 0);
 
-  Acts::ActsExtension* ecapDetExt = new Acts::ActsExtension();
-  ecapDetExt->addType("endcap", "detector");
-  posEcapDetElement.addExtension<Acts::ActsExtension>(ecapDetExt);
+  Acts::ActsExtension::Config actsEcapConfig;
+  actsEcapConfig.isEndcap         = true;
+  Acts::ActsExtension* ecapDetExt = new Acts::ActsExtension(actsEcapConfig);
+  posEcapDetElement.addExtension<Acts::IActsExtension>(ecapDetExt);
 
   dd4hep::Assembly envelopeVolume("endcapEnvelope");
   envelopeVolume.setVisAttributes(lcdd.invisible());
@@ -75,12 +77,14 @@ createTkLayoutTrackerEndcap(dd4hep::Detector&         lcdd,
       discVolumeVec.emplace_back("disc", discShape, lcdd.air());
       discDetElementVec.emplace_back(
           posEcapDetElement, "disc" + std::to_string(discCounter), discCounter);
+      Acts::ActsExtension::Config layConfig;
       // the local coordinate systems of modules in dd4hep and acts differ
       // see http://acts.web.cern.ch/ACTS/latest/doc/group__DD4hepPlugins.html
-      Acts::ActsExtension* detlayer = new Acts::ActsExtension();
-      detlayer->addType("sensitive disk", "layer");
-      detlayer->addType("axes", "definitions", "XZY");
-      discDetElementVec.back().addExtension<Acts::ActsExtension>(detlayer);
+      layConfig.axes = "XZY";  // correct translation of local x axis in dd4hep
+                               // to local x axis in acts
+      layConfig.isLayer             = true;
+      Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+      discDetElementVec.back().addExtension<Acts::IActsExtension>(detlayer);
       // iterate over rings
       for (dd4hep::xml::Collection_t xRingColl(xCurrentRings, _U(ring));
            (nullptr != xRingColl);
@@ -190,8 +194,9 @@ createTkLayoutTrackerEndcap(dd4hep::Detector&         lcdd,
                                           compCounter);
 
               // add extension to hand over material
-              Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-              moduleDetElement.addExtension<Acts::ActsExtension>(
+              Acts::ActsExtension* moduleExtension
+                  = new Acts::ActsExtension(compMaterials, digiModule);
+              moduleDetElement.addExtension<Acts::IActsExtension>(
                   moduleExtension);
 
               moduleDetElement.setPlacement(placedComponentVolume);
diff --git a/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp b/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2addf9c9a3528966ca07c07b526cc352941322e6
--- /dev/null
+++ b/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp
@@ -0,0 +1,167 @@
+// This file is part of the Acts project.
+//
+// Copyright (C) 2017 CERN for the benefit of the Acts project
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp"
+#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
+#include "DD4hep/DetFactoryHelper.h"
+
+using namespace std;
+using namespace dd4hep;
+
+/**
+ Constructor for a cylindrical barrel volume, possibly containing layers and the
+ layers possibly containing modules. In Atlas style. This constructor was
+ specifically introduced for the TrackML detector.
+*/
+
+static Ref_t
+create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
+{
+  xml_det_t x_det   = xml;
+  string    detName = x_det.nameStr();
+  // Make DetElement
+  DetElement barrelDetector(detName, x_det.id());
+  // add Extension to Detlement for the RecoGeometry
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* volumeExt = new Acts::ActsExtension(volConfig);
+  barrelDetector.addExtension<Acts::IActsExtension>(volumeExt);
+  // create Volume
+  dd4hep::xml::Dimension x_detDim(x_det.dimensions());
+  Volume                 barrelVolume(detName,
+                      Tube(x_detDim.rmin(), x_detDim.rmax(), x_detDim.dz()),
+                      lcdd.vacuum());  // vacuum at the moment change later
+  barrelVolume.setVisAttributes(lcdd, x_detDim.visStr());
+  // go trough possible layers
+  size_t layerNumber = 0;
+
+  for (xml_coll_t j(xml, _U(layer)); j; ++j) {
+    xml_comp_t x_layer     = j;
+    double     layerRmin   = x_layer.inner_r();
+    double     layerRmax   = x_layer.outer_r();
+    double     layerLength = x_layer.z();
+    // Create Volume and DetElement for Layer
+    string     layerName = detName + _toString((int)layerNumber, "layer%d");
+    Volume     layerVolume(layerName,
+                       Tube(layerRmin, layerRmax, layerLength),
+                       lcdd.material(x_layer.materialStr()));
+    DetElement layerDetector(barrelDetector, layerName, layerNumber);
+    // Visualization
+    layerVolume.setVisAttributes(lcdd, x_layer.visStr());
+    // go trough possible modules
+    if (x_layer.hasChild(_U(module))) {
+      // the module describing the module dimensions
+      xml_comp_t x_module         = x_layer.child(_U(module));
+      double     modHalfLength    = x_module.length();
+      double     modHalfWidth     = x_module.width();
+      double     modHalfThickness = x_module.thickness();
+      // informations for the placement and tilt in phi
+      int    phiRepeat = x_module.repeat();
+      double deltaphi  = 2. * M_PI / phiRepeat;
+      double phiTilt   = x_module.phi_tilt();
+      // informarions for he placement in z
+      xml_comp_t x_slice  = x_layer.child(_U(slice));
+      int        zRepeat  = x_slice.repeat();
+      double     zOverlap = x_slice.dz();
+      double     rOffset  = x_slice.offset();  // half offset
+
+      // Create the module volume
+      Volume modVolume("module",
+                       Box(modHalfLength, modHalfWidth, modHalfThickness),
+                       lcdd.material(x_module.materialStr()));
+
+      // create the Acts::DigitizationModule (needed to do geometric
+      // digitization) for all modules which have the same segmentation
+      auto digiModule
+          = FW::DD4hep::rectangleDigiModule(modHalfLength,
+                                            modHalfWidth,
+                                            modHalfThickness,
+                                            sens.readout().segmentation());
+
+      // Visualization
+      modVolume.setVisAttributes(lcdd, x_module.visStr());
+      size_t moduleNumber = 0;
+      // Place the Modules in z
+      // the distance between the modules in z
+      double dz = (2 * modHalfLength - zOverlap);
+      // the start value in z
+      double startz = -((zRepeat - 1) * 0.5 * dz);
+      // place in z
+      for (int iz = 0; iz < zRepeat; iz++) {
+        // to be added later to the module name
+        string zname = _toString((int)iz, "z%d");
+        // the radial position of the module
+        double r = ((layerRmax + layerRmin) * 0.5);
+        // alterning radial offset for each subsequent module
+        if (iz % 2 == 0) {
+          r += (0.5 * rOffset);
+        } else {
+          r -= (0.5 * rOffset);
+        }
+        // current z position
+        double z = startz + iz * dz;
+        // start phi position
+        double minPhi = -M_PI + 0.5 * deltaphi / dd4hep::rad;
+        // Place the modules in phi
+        for (int iphi = 0; iphi < phiRepeat; ++iphi) {
+          // the unique module name
+          string module_name = zname + _toString((int)iphi, "module%d");
+          // the phi position
+          double phi = minPhi + deltaphi * iphi;
+          // the position of the module within the layer
+          Position trans(r * cos(phi), r * sin(phi), z);
+          // Create the module DetElement
+          DetElement moduleDetector(layerDetector, module_name, moduleNumber);
+          // Set Sensitive Volmes sensitive
+          if (x_module.isSensitive()) {
+            modVolume.setSensitiveDetector(sens);
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiModule);
+            moduleDetector.addExtension<Acts::IActsExtension>(moduleExtension);
+          }
+          // Place Module Box Volumes in layer adding a tilt in phi
+          PlacedVolume placedmodule = layerVolume.placeVolume(
+              modVolume,
+              Transform3D(RotationY(0.5 * M_PI) * RotationX(-phi - phiTilt),
+                          trans));
+          placedmodule.addPhysVolID("module", moduleNumber);
+          // assign module DetElement to the placed module volume
+          moduleDetector.setPlacement(placedmodule);
+          ++moduleNumber;
+        }
+      }
+    }
+    // todo set granularity of layer material mapping and where material should
+    // be mapped
+    // hand over modules to ACTS
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer   = true;
+    layConfig.envelopeR = 2. * Acts::units::_mm;
+    layConfig.envelopeZ = 2. * Acts::units::_mm;  // maybe change later
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    layerDetector.addExtension<Acts::IActsExtension>(detlayer);
+    // Place layer volume
+    PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume);
+    placedLayer.addPhysVolID("layer", layerNumber);
+    // Assign layer DetElement to layer volume
+    layerDetector.setPlacement(placedLayer);
+    ++layerNumber;
+  }
+  // Place Volume
+  Volume       mother_vol = lcdd.pickMotherVolume(barrelDetector);
+  PlacedVolume placedTube = mother_vol.placeVolume(barrelVolume);
+  placedTube.addPhysVolID("system", barrelDetector.id());
+  barrelDetector.setPlacement(placedTube);
+
+  return barrelDetector;
+}
+
+DECLARE_DETELEMENT(ACTS_GenericMLBarrel, create_element)
diff --git a/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp b/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bcf01100418ac6af293e489ebd88ea8c8c3e1d47
--- /dev/null
+++ b/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp
@@ -0,0 +1,259 @@
+// This file is part of the Acts project.
+//
+// Copyright (C) 2017 CERN for the benefit of the Acts project
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp"
+#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
+#include "DD4hep/DetFactoryHelper.h"
+
+using namespace std;
+using namespace dd4hep;
+
+/**
+ Constructor for a disc two like endcap volumes, possibly containing layers and
+ the layers possibly containing modules. Both endcaps, the positive and negative
+ can be build with this constructor. Atlas like style. This constructor was
+ specifically introduced for the TrackML detector, building both the endcap on
+ the negative and the positive side.
+ */
+
+static Ref_t
+create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
+{
+  xml_det_t x_det   = xml;
+  string    detName = x_det.nameStr();
+  // Create endcap envelope (has no shape because barrel needs to be inbetween)
+  dd4hep::Assembly endcapVolume("endcapEnvelope");
+  endcapVolume.setVisAttributes(lcdd.invisible());
+  // Create endcap DetElement for positive side
+  DetElement posEndcapDetector("pos" + detName, x_det.id());
+  // add Extension to Detlement for the RecoGeometry
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isEndcap             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  posEndcapDetector.addExtension<Acts::IActsExtension>(detvolume);
+  // make Volume
+  dd4hep::xml::Dimension x_detDim(x_det.dimensions());
+  Volume                 posEndcapVolume(detName,
+                         Tube(x_detDim.rmin(), x_detDim.rmax(), x_detDim.dz()),
+                         lcdd.vacuum());  // air at the moment change later
+  posEndcapVolume.setVisAttributes(lcdd, x_detDim.visStr());
+  // go trough possible layers
+  size_t layerNumber = 0;
+  for (xml_coll_t j(xml, _U(layer)); j; ++j) {
+    xml_comp_t x_layer = j;
+    // get the dimensions of the layer;
+    double layerRmin    = x_layer.inner_r();
+    double layerRmax    = x_layer.outer_r();
+    double layerLength  = x_layer.dz();
+    double ringStaggerZ = x_layer.z_offset();
+    // Create Volume and DetElement for Layer
+    string     layerName = detName + _toString((int)layerNumber, "layer%d");
+    Volume     layerVolume(layerName,
+                       Tube(layerRmin, layerRmax, layerLength),
+                       lcdd.material(x_layer.materialStr()));
+    DetElement lay_det(posEndcapDetector, layerName, layerNumber);
+    // Visualization
+    layerVolume.setVisAttributes(lcdd, x_layer.visStr());
+    int radialModuleCounter = 0;
+    // go trough possible modules
+    if (x_layer.hasChild(_U(module))) {
+      // radial placement of modules
+      for (xml_coll_t i(x_layer, _U(module)); i; i++) {
+        // The module
+        xml_comp_t x_module = i;
+        // information for placement in phi
+        int    phiRepeat = x_module.repeat();
+        double deltaphi  = 2. * M_PI / phiRepeat;
+        double minPhi    = -M_PI + 0.5 * deltaphi;
+        // information for placement in r
+        double radius = x_module.radius();
+        // information for placement in z
+        double staggerZ    = x_module.z_offset();
+        double subStaggerZ = x_module.dz();
+        double zPosRing    = (radialModuleCounter % 2) ? (0.5 * ringStaggerZ)
+                                                    : (-0.5 * ringStaggerZ);
+        size_t moduleNumber = 0;
+
+        // Create the module volume
+        Volume moduleVolume("module",
+                            Trapezoid(x_module.x1(),
+                                      x_module.x2(),
+                                      x_module.thickness(),
+                                      x_module.thickness(),
+                                      x_module.length()),
+                            lcdd.material(x_module.materialStr()));
+        moduleVolume.setVisAttributes(lcdd, x_module.visStr());
+
+        // create the Acts::DigitizationModule (needed to do geometric
+        // digitization) for all modules which have digitization module
+        auto digiModule
+            = FW::DD4hep::trapezoidalDigiModule(x_module.x1(),
+                                                x_module.x2(),
+                                                x_module.length(),
+                                                x_module.thickness(),
+                                                sens.readout().segmentation());
+
+        // the sensitive placed components to be used later to create the
+        // DetElements
+        std::vector<PlacedVolume> sensComponents;
+        // the possible digitization module
+        std::shared_ptr<const Acts::DigitizationModule> digiComponent = nullptr;
+        // go through possible components - currently not used
+        int compNumber = 0;
+        for (xml_coll_t comp(x_module, _U(module_component)); comp; comp++) {
+          xml_comp_t x_comp = comp;
+          // create the component volume
+          string compName = _toString((int)compNumber, "component%d")
+              + x_comp.materialStr();
+          Volume compVolume(compName,
+                            Trapezoid(x_comp.x1(),
+                                      x_comp.x2(),
+                                      x_comp.thickness(),
+                                      x_comp.thickness(),
+                                      x_comp.length()),
+                            lcdd.material(x_comp.materialStr()));
+          compVolume.setVisAttributes(lcdd, x_comp.visStr());
+
+          // create the Acts::DigitizationModule (needed to do geometric
+          // digitization) for all modules which have the sdigitization
+          // compoenent
+          digiComponent = FW::DD4hep::trapezoidalDigiModule(
+              x_comp.x1(),
+              x_comp.x2(),
+              x_comp.length(),
+              x_comp.thickness(),
+              sens.readout().segmentation());
+
+          // Set Sensitive Volumes sensitive
+          if (x_comp.isSensitive()) compVolume.setSensitiveDetector(sens);
+
+          // place component in module
+          Position     translation(0., x_comp.z(), 0.);
+          PlacedVolume placed_comp
+              = moduleVolume.placeVolume(compVolume, translation);
+          if (x_comp.isSensitive()) sensComponents.push_back(placed_comp);
+          placed_comp.addPhysVolID("component", moduleNumber);
+          ++compNumber;
+        }
+
+        // Place the modules in phi
+        for (int iphi = 0; iphi < phiRepeat; iphi++) {
+          // the phi position of the module
+          double phi = minPhi + deltaphi / dd4hep::rad * iphi;
+          // the unique module name
+          string module_name
+              = _toString((int)(phiRepeat * radialModuleCounter + moduleNumber),
+                          "module%d");
+          // the z position of the module (with alterning stagger for subsequent
+          // modules)
+          double zPos = (iphi % 2) ? (zPosRing - 0.5 * staggerZ)
+                                   : (zPosRing + 0.5 * staggerZ);
+          // phi stagger affects 0 vs 1, 2 vs 3 ... etc
+          // -> only works if it is a %4
+          // phi sub stagger affects 2 vs 4, 1 vs 3 etc.
+          if (subStaggerZ != 0 && !(phiRepeat % 4)) {
+            // switch sides
+            if (!(iphi % 4))
+              zPos += subStaggerZ;
+            else if (!((iphi + 1) % 4))
+              zPos -= subStaggerZ;
+          }
+          // the podition of the module
+          Position trans(radius * cos(phi), radius * sin(phi), zPos);
+          // Create the module DetElement
+          DetElement moduleDetector(lay_det,
+                                    module_name,
+                                    phiRepeat * radialModuleCounter
+                                        + moduleNumber);
+          // Set Sensitive Volumes sensitive
+          if (x_module.isSensitive()) {
+            moduleVolume.setSensitiveDetector(sens);
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiModule);
+            moduleDetector.addExtension<Acts::IActsExtension>(moduleExtension);
+          }
+
+          int compNumber = 0;
+          for (auto& sensComp : sensComponents) {
+            // Create DetElement
+            DetElement compDetector(moduleDetector, "component", compNumber);
+            // create and attach the extension with the shared digitzation
+            // module
+            Acts::ActsExtension* moduleExtension
+                = new Acts::ActsExtension(digiComponent);
+            compDetector.addExtension<Acts::IActsExtension>(moduleExtension);
+            compDetector.setPlacement(sensComp);
+            compNumber++;
+          }
+          // Place Module Box Volumes in layer
+          Transform3D transf(
+              RotationX(0.5 * M_PI) * RotationY(phi + 0.5 * M_PI), trans);
+          PlacedVolume placedmodule
+              = layerVolume.placeVolume(moduleVolume, transf);
+          placedmodule.addPhysVolID(
+              "module", phiRepeat * radialModuleCounter + moduleNumber);
+          // assign module DetElement to the placed module volume
+          moduleDetector.setPlacement(placedmodule);
+          ++moduleNumber;
+        }
+        ++radialModuleCounter;
+      }
+    }
+    // set granularity of layer material mapping and where material should be
+    // mapped
+    // hand over modules to ACTS
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer             = true;
+    layConfig.axes                = "XZy";
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
+    // Placed Layer Volume
+    Position     layerPos(0., 0., x_layer.z());
+    PlacedVolume placedLayer
+        = posEndcapVolume.placeVolume(layerVolume, layerPos);
+    placedLayer.addPhysVolID("layer", layerNumber);
+    lay_det.setPlacement(placedLayer);
+    ++layerNumber;
+  }
+  // Place Volume
+  // if it is the negative endcap the normal vector needs to point into the
+  // outside
+  double     endcapZPos = (x_detDim.z() > 0.) ? x_detDim.z() : -x_detDim.z();
+  Position   posTranslation(0., 0., endcapZPos);
+  Rotation3D posRotation(1., 0., 0., 0., 1., 0., 0., 0., 1.);
+  Position   negTranslation(0., 0., -endcapZPos);
+  Rotation3D negRotation(1., 0., 0., 0., -1., 0., 0., 0., -1.);
+  // Place the two (positive and negative) endcap volumes
+  PlacedVolume placedPosEndcap = endcapVolume.placeVolume(
+      posEndcapVolume, Transform3D(posRotation, posTranslation));
+  placedPosEndcap.addPhysVolID("posneg", 0);
+  PlacedVolume placedNegEndcap = endcapVolume.placeVolume(
+      posEndcapVolume, Transform3D(negRotation, negTranslation));
+  placedPosEndcap.addPhysVolID("posneg", 1);
+  // create endcap detector element for negative side
+  auto negEndcapDetector = posEndcapDetector.clone("neg" + detName);
+  // set the placements of positive and negative endcaps
+  posEndcapDetector.setPlacement(placedPosEndcap);
+  negEndcapDetector.setPlacement(placedNegEndcap);
+  // create envelope detelement
+  DetElement endcapDetector(detName, x_det.id());
+  endcapDetector.add(posEndcapDetector);
+  endcapDetector.add(negEndcapDetector);
+
+  PlacedVolume motherVolume
+      = lcdd.pickMotherVolume(endcapDetector).placeVolume(endcapVolume);
+  motherVolume.addPhysVolID("system", x_det.id());
+  endcapDetector.setPlacement(motherVolume);
+
+  return endcapDetector;
+}
+
+DECLARE_DETELEMENT(ACTS_GenericMLEndcaps, create_element)
diff --git a/Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp b/Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp
similarity index 92%
rename from Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp
rename to Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp
index 71f19943e607005c88438c300e97f938d1fceaaa..0b6062d76658e9df577dce0fd4f36f2f7a38f349 100644
--- a/Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp
+++ b/Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp
@@ -7,6 +7,7 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 
 using namespace std;
@@ -25,9 +26,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
   // Make DetElement
   DetElement cylinderVolume(det_name, x_det.id());
   // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* barrelExtension = new Acts::ActsExtension();
-  barrelExtension->addType("barrel", "detector");
-  cylinderVolume.addExtension<Acts::ActsExtension>(barrelExtension);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  cylinderVolume.addExtension<Acts::IActsExtension>(detvolume);
   // make Volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
@@ -109,7 +111,7 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
                              x_trd.length(),
                              x_trd.thickness());
         Tube      tubs_shape(x_tubs.rmin(), x_tubs.rmax(), x_tubs.dz());
-        // create the subtraction
+        // create the substraction
         Volume sub_vol("subtraction_components",
                        SubtractionSolid(trap_shape,
                                         tubs_shape,
@@ -160,6 +162,7 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
             component_det.setPlacement(sensComp);
             comp_num++;
           }
+
           // Place Module Box Volumes in layer
           PlacedVolume placedmodule = layer_vol.placeVolume(
               mod_vol,
@@ -189,11 +192,16 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
     }
 
     // set granularity of layer material mapping and where material should be
-    // mapped hand over modules to ACTS
-
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive cylinder", "layer");
-    lay_det.addExtension<Acts::ActsExtension>(layerExtension);
+    // mapped
+    // hand over modules to ACTS
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer = true;
+    ///@todo re-enable material mapping
+    // layConfig.materialBins1         = 100;
+    // layConfig.materialBins2         = 100;
+    // layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
     // Place layer volume
     PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol);
     placedLayer.addPhysVolID("layer", layer_num);
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp
deleted file mode 100644
index 9f1c7d0a075bfb5d3126e7f79555846ae3f1ee73..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t
-create_element(Detector& oddd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det   = xml;
-  string    detName = x_det.nameStr();
-
-  // Make DetElement
-  DetElement cylinderElement(detName, x_det.id());
-
-  // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* pcExtension = new Acts::ActsExtension();
-  bool                 isBeamPipe  = x_det.hasChild(_U(beampipe));
-  pcExtension->addType("passive cylinder", "layer");
-  if (isBeamPipe) { pcExtension->addType("beampipe", "layer"); }
-  cylinderElement.addExtension<Acts::ActsExtension>(pcExtension);
-
-  // Make Volume
-  xml_comp_t x_det_tubs = x_det.child(_U(tubs));
-  string     shapeName  = x_det_tubs.nameStr();
-  Tube       tubeShape(
-      shapeName, x_det_tubs.rmin(), x_det_tubs.rmax(), x_det_tubs.dz());
-  Volume tube_vol(detName, tubeShape, oddd.material(x_det_tubs.materialStr()));
-  tube_vol.setVisAttributes(oddd, x_det.visStr());
-
-  // Place it in the mother
-  Volume       mother_vol = oddd.pickMotherVolume(cylinderElement);
-  PlacedVolume placedTube = mother_vol.placeVolume(tube_vol);
-  placedTube.addPhysVolID(detName, cylinderElement.id());
-  cylinderElement.setPlacement(placedTube);
-
-  // And return the element for further parsing
-  return cylinderElement;
-}
-
-DECLARE_DETELEMENT(ODDCylinder, create_element)
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp
deleted file mode 100644
index 2a4687f800796760729b97edd9484b001fa3e70e..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#pragma once
-
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace dd4hep;
-
-/// This method assemples a trapezoidal module for the
-/// strip detectors
-///
-/// @param odd is the top level detector
-/// @param sens is the top level sensitive detector container
-/// @param x_module is the xml component describing the module
-///
-/// It excpects `module_component` xml childs
-///
-// @return a pair for a template module assembly and detector element
-static std::pair<Assembly, DetElement>
-assembleTrapezoidalModule(Detector&          oddd,
-                          SensitiveDetector& sens,
-                          const xml_comp_t&  x_module)
-{
-  // The Module envelope volume
-  Assembly moduleAssembly("module");
-  // Visualization
-  moduleAssembly.setVisAttributes(oddd, x_module.visStr());
-
-  // The module detector element
-  DetElement moduleElement("ModuleElementTemplate", 0);
-
-  // Place the components inside the module
-  unsigned int compNum   = 0;
-  unsigned int sensorNum = 0;
-
-  for (xml_coll_t comp(x_module, _U(module_component)); comp;
-       ++comp, ++compNum) {
-    xml_comp_t x_comp = comp;
-
-    // create the component volume
-    string compName
-        = _toString((int)compNum, "component%d") + x_comp.materialStr();
-
-    Trapezoid trapShape(x_comp.x1(),
-                        x_comp.x2(),
-                        0.5 * x_comp.thickness(),
-                        0.5 * x_comp.thickness(),
-                        x_comp.length());
-
-    Volume componentVolume(
-        compName, trapShape, oddd.material(x_comp.materialStr()));
-    componentVolume.setVisAttributes(oddd, x_comp.visStr());
-
-    // overwrite if you have a subtraction
-    if (x_comp.hasChild(_U(subtraction))) {
-
-      xml_comp_t x_sub = x_comp.child(_U(subtraction));
-      Tube       tubeCutout(x_sub.rmin(), x_sub.rmax(), 1.1 * x_comp.length());
-
-      // Create the subtraction
-      componentVolume = Volume(
-          compName,
-          SubtractionSolid(
-              trapShape,
-              tubeCutout,
-              Position(x_sub.x_offset(), x_sub.y_offset(), x_sub.z_offset())),
-          oddd.material(x_comp.materialStr()));
-
-      // place a fitting pipe if available
-      if (x_comp.hasChild(_U(tube))) {
-        xml_comp_t x_pipe = x_comp.child(_U(tube));
-        Tube       coolingPipe(x_pipe.rmin(), x_pipe.rmax(), x_comp.length());
-        // Create the subtraction
-        Volume pipeVolume(
-            "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr()));
-        pipeVolume.setVisAttributes(oddd, x_pipe.visStr());
-
-        PlacedVolume pacedPipe = componentVolume.placeVolume(
-            pipeVolume,
-            Position(x_pipe.x_offset(), x_pipe.y_offset(), x_pipe.z_offset()));
-      }
-    }
-
-    // Place the component
-    double       stereoAlpha     = x_comp.alpha();
-    PlacedVolume placedComponent = moduleAssembly.placeVolume(
-        componentVolume,
-        Transform3D(
-            RotationY(stereoAlpha),
-            Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset())));
-
-    // Deal with the sensitive sensor
-    if (x_comp.isSensitive()) {
-
-      componentVolume.setSensitiveDetector(sens);
-      placedComponent.addPhysVolID("sensor", sensorNum++);
-
-      // Create the sensor element and place it
-      string     sensorName = _toString((int)sensorNum, "sensor%d");
-      DetElement sensorElement(moduleElement, sensorName, sensorNum);
-      sensorElement.setPlacement(placedComponent);
-
-      // Add the sensor extension
-      Acts::ActsExtension* sensorExtension = new Acts::ActsExtension();
-      sensorExtension->addType("sensor", "detector");
-      sensorExtension->addType("axes", "definitions", "XZY");
-      // Set the extension
-      sensorElement.addExtension<Acts::ActsExtension>(sensorExtension);
-    }
-  }
-
-  // return the module assembly
-  return std::pair<Assembly, DetElement>(moduleAssembly, moduleElement);
-}
-
-/// This method assemples a rectangular module for the
-/// pixel and strip detectors
-///
-/// @param odd is the top level detector
-/// @param sens is the top level sensitive detector container
-/// @param x_module is the xml component describing the module
-/// @param ylength[in,out] is the maximal length in y of all components
-///        to be used for stave building
-///
-/// It excpects `module_component` xml childs
-///
-// @return a pair for a template module assembly and detector element
-static std::pair<Assembly, DetElement>
-assembleRectangularModule(Detector&          oddd,
-                          SensitiveDetector& sens,
-                          const xml_comp_t&  x_module,
-                          double&            ylength)
-{
-
-  // The Module envelope volume
-  Assembly moduleAssembly("module");
-  // Visualization
-  moduleAssembly.setVisAttributes(oddd, x_module.visStr());
-
-  // The module detector element
-  DetElement moduleElement("ModuleElementTemplate", 0);
-
-  // Place the components inside the module
-  unsigned int compNum   = 0;
-  unsigned int sensorNum = 0;
-
-  for (xml_coll_t comp(x_module, _U(module_component)); comp;
-       ++comp, ++compNum) {
-    xml_comp_t x_comp = comp;
-
-    // Component volume
-    string componentName = _toString((int)compNum, "component%d");
-    Box    boxShape(0.5 * x_comp.dx(), 0.5 * x_comp.dy(), 0.5 * x_comp.dz());
-    // Standard component volume without cutout
-    Volume componentVolume(
-        componentName, boxShape, oddd.material(x_comp.materialStr()));
-
-    // overwrite if you have a subtraction
-    if (x_comp.hasChild(_U(subtraction))) {
-      xml_comp_t x_sub = x_comp.child(_U(subtraction));
-      Tube       tubeCutout(x_sub.rmin(), x_sub.rmax(), x_comp.dy());
-
-      // Create the subtraction
-      componentVolume
-          = Volume(componentName,
-                   SubtractionSolid(boxShape,
-                                    tubeCutout,
-                                    Transform3D(RotationX(0.5 * M_PI),
-                                                Position(x_sub.x_offset(),
-                                                         x_sub.y_offset(),
-                                                         x_sub.z_offset()))),
-                   oddd.material(x_comp.materialStr()));
-
-      // place a fitting pipe if available
-      if (x_comp.hasChild(_U(tube))) {
-        xml_comp_t x_pipe = x_comp.child(_U(tube));
-        Tube       coolingPipe(x_pipe.rmin(), x_pipe.rmax(), 0.5 * x_comp.dy());
-        // Create the subtraction
-        Volume pipeVolume(
-            "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr()));
-        pipeVolume.setVisAttributes(oddd, x_pipe.visStr());
-
-        PlacedVolume pacedPipe = componentVolume.placeVolume(
-            pipeVolume,
-            Transform3D(RotationX(0.5 * M_PI),
-                        Position(x_pipe.x_offset(),
-                                 x_pipe.y_offset(),
-                                 x_pipe.z_offset())));
-      }
-    }
-    componentVolume.setVisAttributes(oddd, x_comp.visStr());
-
-    // Calculate the module dimension
-    double cylength = 2.
-        * abs(std::copysign(0.5 * x_comp.dy(), x_comp.y_offset())
-              + x_comp.y_offset());
-    ylength = cylength > ylength ? cylength : ylength;
-
-    // Visualization
-    componentVolume.setVisAttributes(oddd, x_comp.visStr());
-    // Place Module Box Volumes in layer
-    double       stereoAlpha     = x_comp.alpha();
-    PlacedVolume placedComponent = moduleAssembly.placeVolume(
-        componentVolume,
-        Transform3D(
-            RotationZ(stereoAlpha),
-            Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset())));
-
-    // Deal with the sensitive sensor
-    if (x_comp.isSensitive()) {
-
-      componentVolume.setSensitiveDetector(sens);
-      placedComponent.addPhysVolID("sensor", sensorNum++);
-
-      // Create the sensor element and place it
-      string     sensorName = _toString((int)sensorNum, "sensor%d");
-      DetElement sensorElement(moduleElement, sensorName, sensorNum);
-      sensorElement.setPlacement(placedComponent);
-
-      // Add the sensor extension
-      Acts::ActsExtension* sensorExtension = new Acts::ActsExtension();
-      sensorExtension->addType("sensor", "detector");
-      sensorExtension->addType("axes", "definitions", "XYZ");
-      // Set the extension
-      sensorElement.addExtension<Acts::ActsExtension>(sensorExtension);
-    }
-  }
-
-  // return the module assembly
-  return std::pair<Assembly, DetElement>(moduleAssembly, moduleElement);
-}
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp
deleted file mode 100644
index 6eb4246f85db6c6c4e622e3a01af67cbb6ac7a91..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp
+++ /dev/null
@@ -1,257 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-#include "ODDModuleHelper.hpp"
-#include "ODDServiceHelper.hpp"
-
-using namespace std;
-using namespace dd4hep;
-static void
-completeStaveStructure(Detector&   oddd,
-                       xml_comp_t& x_stave,
-                       Assembly&   staveAssembly,
-                       double      staveHlength,
-                       double      ylength)
-{
-
-  unsigned int nModules = x_stave.nmodules();
-
-  // Place carbon foam structure
-  if (x_stave.hasChild(_U(subtraction)) and x_stave.hasChild(_U(tube))) {
-    xml_comp_t x_sub  = x_stave.child(_U(subtraction));
-    xml_comp_t x_trd  = x_sub.child(_U(trd));
-    xml_comp_t x_tubs = x_sub.child(_U(tubs));
-    xml_comp_t x_pipe = x_stave.child(_U(tube));
-
-    // Create the two shapes first
-    Trapezoid foamShape(x_trd.x1(),
-                        x_trd.x2(),
-                        staveHlength + x_trd.dz(),
-                        staveHlength + x_trd.dz(),
-                        x_trd.thickness());
-
-    Tube foamCutout(x_tubs.rmin(), x_tubs.rmax(), staveHlength + x_tubs.dz());
-
-    // Create the subtraction
-    Volume foamVolume("CarbonFoam",
-                      SubtractionSolid(foamShape,
-                                       foamCutout,
-                                       Transform3D(RotationX(0.5 * M_PI))),
-                      oddd.material(x_sub.materialStr()));
-    foamVolume.setVisAttributes(oddd, x_sub.visStr());
-    // Place the volume in the stave
-    PlacedVolume placedFoam = staveAssembly.placeVolume(
-        foamVolume,
-        Position(x_sub.x_offset(), x_sub.y_offset(), x_sub.z_offset()));
-
-    Tube coolingPipe(x_pipe.rmin(), x_pipe.rmax(), staveHlength + x_pipe.dz());
-    // Create the subtraction
-    Volume pipeVolume(
-        "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr()));
-    pipeVolume.setVisAttributes(oddd, x_pipe.visStr());
-
-    // Place the pipe in the stave
-    PlacedVolume placedPipe = staveAssembly.placeVolume(
-        pipeVolume,
-        Transform3D(
-            RotationX(0.5 * M_PI),
-            Position(x_pipe.x_offset(), x_pipe.y_offset(), x_pipe.z_offset())));
-
-    xml_comp_t x_cable = x_stave.child(_U(eltube));
-    // Place the support cables for the modules
-    for (unsigned int modCable = 0; modCable < 0.5 * nModules; ++modCable) {
-
-      double cableLength = staveHlength - modCable * ylength;
-
-      for (int side = -1; side < 2; side += 2) {
-        Tube cable(x_cable.rmin(), x_cable.rmax(), 0.5 * cableLength);
-        // Create the cable volume
-        Volume cableVolume(
-            "Cable", cable, oddd.material(x_cable.materialStr()));
-        cableVolume.setVisAttributes(oddd, x_cable.visStr());
-
-        // Place the pipe in the stave
-        PlacedVolume placedCable = staveAssembly.placeVolume(
-            cableVolume,
-            Transform3D(
-                RotationX(0.5 * M_PI),
-                Position(
-                    x_cable.x_offset() + 2.05 * modCable * x_cable.rmax(),
-                    side * (staveHlength - 0.5 * cableLength + x_cable.dz()),
-                    x_cable.z_offset())));
-      }
-    }
-  }
-}
-
-static Ref_t
-create_element(Detector& oddd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det   = xml;
-  string    detName = x_det.nameStr();
-
-  // Make DetElement
-  DetElement barrelDetector(detName, x_det.id());
-
-  // Add Extension to DetElement for the RecoGeometry
-  Acts::ActsExtension* barrelExtension = new Acts::ActsExtension();
-  barrelExtension->addType("barrel", "detector");
-  barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension);
-
-  // Make Volume
-  dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
-  string                 barrelShapeName = x_det_dim.nameStr();
-
-  // The Shape and Volume
-  Tube   barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
-  Volume barrelVolume(detName, barrelShape, oddd.air());
-  barrelVolume.setVisAttributes(oddd, x_det.visStr());
-
-  // Create the stave volume and DetElement tree
-  xml_comp_t x_stave = x_det.child(_U(stave));
-  Assembly   staveAssembly("stave");
-  // Visualization
-  staveAssembly.setVisAttributes(oddd, x_stave.visStr());
-  // DetElement tree
-  DetElement staveElementTemplate("StaveElementTemplate", 0);
-
-  // Create the module components
-  xml_comp_t x_module = x_det.child(_U(module));
-  double     ylength  = 0.;
-  auto       module = assembleRectangularModule(oddd, sens, x_module, ylength);
-
-  // Place the modules into the stave
-  double       gap          = x_stave.gap();
-  unsigned int nModules     = x_stave.nmodules();
-  double       ystep        = ylength + gap;
-  double       ymin         = (nModules * 0.5 - 0.5) * ylength;
-  double       staveHlength = ymin + 0.5 * ylength;
-
-  // Loop over the modules and place them in the stave
-  for (unsigned int moduleNum = 0; moduleNum < nModules; ++moduleNum) {
-    // Place them along local y
-    PlacedVolume placedModule = staveAssembly.placeVolume(
-        module.first, Position(0., -ymin + moduleNum * ystep, 0.));
-    placedModule.addPhysVolID("module", moduleNum);
-
-    string moduleName = _toString((int)moduleNum, "module%d");
-    // Clone the detector element
-    auto moduleElement = module.second.clone(moduleName, moduleNum);
-    moduleElement.setPlacement(placedModule);
-    // Assign it as child to the stave template
-    staveElementTemplate.add(moduleElement);
-  }
-
-  // Complete the staveStructure
-  completeStaveStructure(oddd, x_stave, staveAssembly, staveHlength, ylength);
-
-  std::vector<double> layerR;
-
-  // Loop over the layers to build staves
-  size_t layerNum = 0;
-  for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layerNum) {
-    xml_comp_t x_layer = lay;
-
-    // The Layer envelope volume
-    string layerName = detName + std::to_string(layerNum);
-    Volume layerVolume(
-        layerName,
-        Tube(x_layer.rmin(), x_layer.rmax(), staveHlength + x_layer.outer_z()),
-        oddd.air());
-    // Visualization
-    layerVolume.setVisAttributes(oddd, x_layer.visStr());
-
-    // The DetElement tree, keep it flat
-    DetElement layerElement(barrelDetector, layerName, layerNum);
-
-    // Place the staves in the layer
-    unsigned int nStaves = x_layer.nphi();
-    double       phiStep = 2. * M_PI / nStaves;
-    double       phiTilt = x_layer.phi_tilt();
-    double       phi0    = x_layer.phi0();
-    double       r       = x_layer.r();
-    layerR.push_back(r);
-
-    // Loop over the staves and place them
-    for (unsigned int staveNum = 0; staveNum < nStaves; ++staveNum) {
-      string staveName = _toString((int)staveNum, "stave%d");
-      // position of the stave
-      double phi = phi0 + staveNum * phiStep;
-      double x   = r * cos(phi);
-      double y   = r * sin(phi);
-      // Now place the stave
-      PlacedVolume placedStave = layerVolume.placeVolume(
-          staveAssembly,
-          Transform3D(RotationY(0.5 * M_PI) * RotationZ(0.5 * M_PI)
-                          * RotationY(phi + phiTilt),
-                      Position(x, y, 0.)));
-      placedStave.addPhysVolID("stave", staveNum);
-
-      // Clone the stave element from the template
-      DetElement staveElement = staveElementTemplate.clone(staveName, staveNum);
-      staveElement.setPlacement(placedStave);
-      // Add to the layer element
-      layerElement.add(staveElement);
-    }
-
-    // Place the support cylinder per layer
-    buildSupportCylinder(oddd, layerVolume, x_layer, layerR);
-
-    // Cleanup the templates
-    // dd4hep::detail::destroyHandle(staveElementTemplate);
-    // dd4hep::detail::destroyHandle(module.second);
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("active cylinder", "layer");
-    Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension);
-    layerElement.addExtension<Acts::ActsExtension>(layerExtension);
-
-    PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume);
-    placedLayer.addPhysVolID("layer", layerNum);
-
-    // Assign layer DetElement to layer volume
-    layerElement.setPlacement(placedLayer);
-  }
-
-  // Place the additional support cylinders per detector
-  buildSupportCylinder(oddd, barrelVolume, x_det, layerR);
-
-  if (x_det.hasChild(_Unicode(services))) {
-    // Grab the services
-    xml_comp_t x_services = x_det.child(_Unicode(services));
-    if (x_services.hasChild(_Unicode(cable_routing))) {
-      xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing));
-      buildBarrelRouting(oddd, barrelVolume, x_cable_routing, layerR);
-    }
-    if (x_services.hasChild(_Unicode(cooling_routing))) {
-      xml_comp_t x_cooling_routing
-          = x_services.child(_Unicode(cooling_routing));
-      buildBarrelRouting(oddd, barrelVolume, x_cooling_routing, layerR);
-    }
-  }
-
-  // Place Volume
-  Volume       motherVolume = oddd.pickMotherVolume(barrelDetector);
-  Position     translation(0., 0., x_det_dim.z());
-  PlacedVolume placedBarrel
-      = motherVolume.placeVolume(barrelVolume, translation);
-  // "system" is hard coded in the DD4Hep::VolumeManager
-  placedBarrel.addPhysVolID("system", barrelDetector.id());
-  barrelDetector.setPlacement(placedBarrel);
-
-  // And return the detector element
-  return barrelDetector;
-}
-
-DECLARE_DETELEMENT(ODDPixelBarrel, create_element)
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp
deleted file mode 100644
index bf28efc391eb51f887296f278ac29affb1feea72..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-#include "ODDModuleHelper.hpp"
-#include "ODDServiceHelper.hpp"
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t
-create_element(Detector& oddd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det   = xml;
-  string    detName = x_det.nameStr();
-
-  // Make DetElement
-  DetElement endcapDetector(detName, x_det.id());
-
-  // Add Extension to DetElement for the RecoGeometry
-  Acts::ActsExtension* endcapExtension = new Acts::ActsExtension();
-  endcapExtension->addType("endcap", "detector");
-  endcapDetector.addExtension<Acts::ActsExtension>(endcapExtension);
-
-  // Make Volume
-  dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
-  string                 endcapShapeName = x_det_dim.nameStr();
-
-  Tube   endcapShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
-  Volume endcapVolume(detName, endcapShape, oddd.air());
-  endcapVolume.setVisAttributes(oddd, x_det.visStr());
-
-  // Place Volume
-  Volume       motherVolume = oddd.pickMotherVolume(endcapDetector);
-  Position     translation(0., 0., x_det_dim.z());
-  PlacedVolume placedEndcap
-      = motherVolume.placeVolume(endcapVolume, translation);
-
-  // Create the module components
-  xml_comp_t x_module = x_det.child(_U(module));
-  double     ylength  = 0.;
-  auto       module = assembleRectangularModule(oddd, sens, x_module, ylength);
-
-  Assembly diskAssembly("disk");
-
-  // DetElement tree
-  DetElement diskElementTemplate("DiskElementTemplate", 0);
-
-  // Loop over the rings to create a template disk
-  size_t ringNum = 0;
-  for (xml_coll_t ring(xml, _U(ring)); ring; ++ring, ++ringNum) {
-
-    // Get the ring
-    xml_comp_t x_ring = ring;
-
-    // The ring name
-    string   ringName = _toString((int)ringNum, "ring%d");
-    Assembly ringAssembly(ringName);
-    ringAssembly.setVisAttributes(oddd, x_ring.visStr());
-
-    // DetElement tree
-    DetElement ringElement(ringName, ringNum);
-
-    double       r        = x_ring.r();
-    double       phi0     = x_ring.phi0();
-    unsigned int nModules = x_ring.nphi();
-    double       zgap     = x_ring.gap();
-    double       phiStep  = 2. * M_PI / nModules;
-
-    // Loop over modules
-    for (unsigned int modNum = 0; modNum < nModules; ++modNum) {
-      // The module name
-      string moduleName = _toString((int)modNum, "module%d");
-      bool   odd        = bool(modNum % 2);
-      // Position it
-      double   phi = phi0 + modNum * phiStep;
-      double   z   = odd ? -zgap : zgap;
-      Position trans(r * cos(phi), r * sin(phi), z);
-      // Place Module Box Volumes, flip if necessary
-      double flip = x_det_dim.z() < 0. ? M_PI : 0.;
-      if (ringNum != 0) { flip += M_PI; }
-      PlacedVolume placedModule = ringAssembly.placeVolume(
-          module.first,
-          Transform3D(RotationZ(phi + 1.5 * M_PI) * RotationY(flip), trans));
-      placedModule.addPhysVolID("module", modNum);
-      // Clone the detector element
-      auto moduleElement = module.second.clone(moduleName, modNum);
-      moduleElement.setPlacement(placedModule);
-      // Assign it as child to the stave template
-      ringElement.add(moduleElement);
-    }
-
-    // Place Ring assembly into disk
-    PlacedVolume placedRing = diskAssembly.placeVolume(
-        ringAssembly, Position(0., 0., x_ring.z_offset()));
-    placedRing.addPhysVolID("ring", ringNum);
-    ringElement.setPlacement(placedRing);
-    // Add it to the Disk element template
-    diskElementTemplate.add(ringElement);
-  }
-
-  xml_comp_t x_support = x_det.child(_Unicode(ring_support));
-  // The support shape
-  Tube   supportShape(x_support.rmin(), x_support.rmax(), x_support.dz());
-  Volume supportVolume(
-      "DiskSupport", supportShape, oddd.material(x_support.materialStr()));
-  supportVolume.setVisAttributes(oddd, x_support.visStr());
-  diskAssembly.placeVolume(supportVolume);
-
-  // Cooling rings
-  buildCoolingRings(oddd, diskAssembly, x_det);
-
-  // Loop over the layers and place the disk
-  size_t layNum = 0;
-  // Remember the layers for the service routing
-  std::vector<double> endcapZ;
-  for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layNum) {
-    // Get the layer
-    xml_comp_t x_layer = lay;
-
-    // The Layer envelope volume
-    string layerName = detName + std::to_string(layNum);
-    Volume layerVolume(layerName,
-                       Tube(x_layer.rmin(), x_layer.rmax(), x_layer.dz()),
-                       oddd.air());
-
-    layerVolume.setVisAttributes(oddd, x_layer.visStr());
-
-    string diskElName = _toString((int)layNum, "disk%d");
-
-    // The DetElement tree
-    DetElement layerElement(layerName, layNum);
-    auto       diskElement = diskElementTemplate.clone(diskElName, layNum);
-
-    // Place the disk into the layer
-    PlacedVolume placedDisk = layerVolume.placeVolume(diskAssembly);
-    diskElement.setPlacement(placedDisk);
-    layerElement.add(diskElement);
-
-    // Place Ring assembly into disk
-    double zeff = x_layer.z_offset() - x_det_dim.z();
-    endcapZ.push_back(zeff);
-
-    PlacedVolume placedLayer
-        = endcapVolume.placeVolume(layerVolume, Position(0., 0., zeff));
-    placedLayer.addPhysVolID("layer", layNum);
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive disk", "layer");
-    layerElement.addExtension<Acts::ActsExtension>(layerExtension);
-    Acts::xml2DiscProtoMaterial(x_layer, *layerExtension);
-    // Finish up the DetElement tree
-    layerElement.setPlacement(placedLayer);
-    endcapDetector.add(layerElement);
-  }
-
-  // Close up the detector
-  if (x_det.hasChild(_U(disk))) {
-
-    // Endplate disk
-    xml_comp_t x_endplate = x_det.child(_U(disk));
-
-    // The Shape and Volume
-    Tube   endplateShape(x_endplate.rmin(), x_endplate.rmax(), x_endplate.dz());
-    Volume endplateVolume(
-        "Endplate", endplateShape, oddd.material(x_endplate.materialStr()));
-    endplateVolume.setVisAttributes(oddd, x_endplate.visStr());
-
-    double zeff = x_endplate.z_offset() - x_det_dim.z();
-    endcapZ.push_back(zeff);
-    PlacedVolume placedEndplate
-        = endcapVolume.placeVolume(endplateVolume, Position(0., 0., zeff));
-
-    DetElement endplateElement("Endplate", 0);
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* endplateExtension = new Acts::ActsExtension();
-    endplateExtension->addType("passive disk", "layer");
-    endplateElement.addExtension<Acts::ActsExtension>(endplateExtension);
-    Acts::xml2DiscProtoMaterial(x_endplate, *endplateExtension);
-
-    // Finish up the DetElement tree
-    endplateElement.setPlacement(placedEndplate);
-    endcapDetector.add(endplateElement);
-  }
-
-  if (x_det.hasChild(_Unicode(services))) {
-    // Grab the services
-    xml_comp_t x_services = x_det.child(_Unicode(services));
-    if (x_services.hasChild(_Unicode(cable_routing))) {
-      xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing));
-      buildEndcapRouting(oddd, endcapVolume, x_cable_routing, endcapZ);
-    }
-    if (x_services.hasChild(_Unicode(cooling_routing))) {
-      xml_comp_t x_cooling_routing
-          = x_services.child(_Unicode(cooling_routing));
-      buildEndcapRouting(oddd, endcapVolume, x_cooling_routing, endcapZ);
-    }
-  }
-
-  // Place the additional support cylinders per detector
-  std::vector<double> layerR;
-  buildSupportCylinder(oddd, endcapVolume, x_det, layerR);
-
-  // "system" is hard coded in the DD4Hep::VolumeManager
-  placedEndcap.addPhysVolID("system", endcapDetector.id());
-  endcapDetector.setPlacement(placedEndcap);
-
-  // And return it
-  return endcapDetector;
-}
-
-DECLARE_DETELEMENT(ODDPixelEndcap, create_element)
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp
deleted file mode 100644
index c32946071f47f53662c4a42268cb171918c947a1..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp
+++ /dev/null
@@ -1,248 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#pragma once
-
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace dd4hep;
-
-/// Helper method to build service routing for the Barrel type
-///
-/// @tparam volume_t the Type of volume (Volume, Assembly)
-///
-/// @param odd the top level detector
-/// @param barrelVolume the volume to put the routing on
-/// @param x_routing the xml description of the routing
-/// @param layerR the layer radii to connect
-template <typename volume_t>
-void
-buildBarrelRouting(Detector&                  oddd,
-                   volume_t&                  barrelVolume,
-                   const xml_comp_t&          x_routing,
-                   const std::vector<double>& layerR)
-{
-
-  // Grab the cables & route them outwards
-  unsigned int nphi = x_routing.nphi();
-
-  double phiStep = 2 * M_PI / nphi;
-  double phi0    = x_routing.phi0();
-  double rmin    = x_routing.rmin();
-  double rmax    = x_routing.rmax();
-  double n       = x_routing.number();
-
-  for (int side = -1; side < 2; side += 2) {
-    // Loop over the layer routings
-    for (unsigned int ib = 1; ib < layerR.size(); ++ib) {
-      for (unsigned int iphi = 0; iphi < nphi; ++iphi) {
-        // Calculate the phi
-        double phi = phi0 + iphi * phiStep;
-
-        // The layer position
-        double gap     = x_routing.gap();
-        double clength = layerR[ib] - layerR[ib - 1] - 2. * gap;
-        double rpos    = 0.5 * (layerR[ib] + layerR[ib - 1]);
-        double xpos    = rpos * cos(phi);
-        double ypos    = rpos * sin(phi);
-        double zpos    = side * x_routing.z_offset();
-
-        Assembly cableboxAssembly("CableBox");
-        if (x_routing.hasChild(_U(box))) {
-          // The box plate for the cables
-          xml_comp_t x_box = x_routing.child(_U(box));
-          Box        box(x_box.dz(), n * ib * rmax, 0.5 * clength);
-          Volume     boxVolume(
-              "CableBand", box, oddd.material(x_routing.materialStr()));
-          boxVolume.setVisAttributes(oddd, x_box.visStr());
-
-          PlacedVolume pacedBox = cableboxAssembly.placeVolume(
-              boxVolume, Position(side * (rmax + x_box.dz()), 0., 0.));
-        }
-
-        Tube   cable(rmin, rmax, 0.5 * clength);
-        Volume cableVolume(
-            "Cable", cable, oddd.material(x_routing.materialStr()));
-        cableVolume.setVisAttributes(oddd, x_routing.visStr());
-
-        for (unsigned int icable = 0; icable < n * ib; ++icable) {
-
-          // Place the pipe in the stave
-          PlacedVolume placedCable = cableboxAssembly.placeVolume(
-              cableVolume, Position(0., (-n * ib + 1 + 2 * icable) * rmax, 0.));
-        }
-        // Place the pipe in the stave
-        PlacedVolume placedCableBox = barrelVolume.placeVolume(
-            cableboxAssembly,
-            Transform3D(RotationZ(phi) * RotationY(0.5 * M_PI),
-                        Position(xpos, ypos, zpos)));
-      }
-    }
-  }
-}
-
-/// Helper method to build service routing for the Endcap type
-///
-/// @tparam volume_t the Type of volume (Volume, Assembly)
-///
-/// @param odd the top level detector
-/// @param endcapVolume the volume to put the routing on
-/// @param x_routing the xml description of the routing
-/// @param endcapZ the layer z positions to connect
-template <typename volume_t>
-void
-buildEndcapRouting(Detector&                  oddd,
-                   volume_t&                  endcapVolume,
-                   const xml_comp_t&          x_routing,
-                   const std::vector<double>& endcapZ)
-{
-
-  // Grab the cables & route them outwards
-  unsigned int nphi = x_routing.nphi();
-
-  double phiStep = 2 * M_PI / nphi;
-  double phi0    = x_routing.phi0();
-  double rmin    = x_routing.rmin();
-  double rmax    = x_routing.rmax();
-  double r       = x_routing.r();
-  double n       = x_routing.number();
-
-  // Loop over the layer routings
-  for (unsigned int iec = 1; iec < endcapZ.size(); ++iec) {
-    for (unsigned int iphi = 0; iphi < nphi; ++iphi) {
-      // Calculate the phi
-      double phi = phi0 + iphi * phiStep;
-
-      // The layer position
-      double gap     = x_routing.gap();
-      double clength = std::abs(endcapZ[iec] - endcapZ[iec - 1]) - 2. * gap;
-      double xpos    = r * cos(phi);
-      double ypos    = r * sin(phi);
-      double zpos    = 0.5 * (endcapZ[iec] + endcapZ[iec - 1]);
-
-      Assembly cableboxAssembly("CableBox");
-      if (x_routing.hasChild(_U(box))) {
-        // The box plate for the cables
-        xml_comp_t x_box = x_routing.child(_U(box));
-        Box        box(x_box.dz(), n * iec * rmax, 0.5 * clength);
-        Volume     boxVolume(
-            "CableBand", box, oddd.material(x_routing.materialStr()));
-        boxVolume.setVisAttributes(oddd, x_box.visStr());
-
-        PlacedVolume pacedBox = cableboxAssembly.placeVolume(
-            boxVolume, Position(rmax + x_box.dz(), 0., 0.));
-      }
-
-      Tube   cable(rmin, rmax, 0.5 * clength);
-      Volume cableVolume(
-          "Cable", cable, oddd.material(x_routing.materialStr()));
-      cableVolume.setVisAttributes(oddd, x_routing.visStr());
-
-      for (unsigned int icable = 0; icable < n * iec; ++icable) {
-
-        // Place the pipe in the stave
-        PlacedVolume placedCable = cableboxAssembly.placeVolume(
-            cableVolume, Position(0., (-n * iec + 1 + 2 * icable) * rmax, 0.));
-      }
-      // Place the pipe in the stave
-      PlacedVolume placedCableBox = endcapVolume.placeVolume(
-          cableboxAssembly,
-          Transform3D(RotationZ(+phi), Position(xpos, ypos, zpos)));
-    }
-  }
-}
-
-/// Helper method to build a cyoindrical like passive structure
-///
-/// @tparam volume_t the Type of volume (Volume, Assembly)
-///
-/// @param odd the top level detector
-/// @param endcapVolume the volume to put the routing on
-/// @param x_mother_comp the xml description of teh mother component
-/// @param layerR the layer radii contaienr to add the new one
-template <typename volume_t>
-void
-buildSupportCylinder(Detector&            oddd,
-                     volume_t&            motherVolume,
-                     const xml_comp_t&    x_mother_comp,
-                     std::vector<double>& layerR)
-{
-  size_t supportNum = 0;
-  for (xml_coll_t sup(x_mother_comp, _U(support)); sup; ++sup, ++supportNum) {
-
-    xml_comp_t x_support = sup;
-    // Create the volume of the support structure
-    string supportName = _toString((int)supportNum, "SupportCylinder%d");
-
-    // Remember the layer radius if it is needed for operation
-    if (x_support.hasChild(_Unicode(connector))) {
-      layerR.push_back(0.5 * (x_support.rmin() + x_support.rmax()));
-    }
-    // If nz is not set to 0, build 2 symmetric ones
-    for (int side = -1; side < x_support.nsides(); side += 2) {
-      // Create the support volume
-      Volume supportVolume(
-          supportName,
-          Tube(x_support.rmin(), x_support.rmax(), x_support.dz()),
-          oddd.material(x_support.materialStr()));
-      supportVolume.setVisAttributes(oddd, x_support.visStr());
-      // Place the support structure
-      PlacedVolume placedSupport = motherVolume.placeVolume(
-          supportVolume, Position(0., 0., side * x_support.z_offset()));
-    }
-  }
-}
-
-/// Helper method to build a cyoindrical like passive structure
-///
-/// @tparam volume_t the Type of volume (Volume, Assembly)
-///
-/// @param odd the top level detector
-/// @param endcapVolume the volume to put the routing on
-/// @param x_mother_comp the xml description of teh mother component
-/// @param layerR the layer radii contaienr to add the new one
-template <typename volume_t>
-void
-buildCoolingRings(Detector&         oddd,
-                  volume_t&         motherVolume,
-                  const xml_comp_t& x_mother_comp)
-{
-  size_t cringNum = 0;
-  for (xml_coll_t cring(x_mother_comp, _Unicode(cooling_ring)); cring;
-       ++cring, ++cringNum) {
-
-    xml_comp_t x_cooling_ring = cring;
-
-    double r       = x_cooling_ring.r();
-    double nPhi    = x_cooling_ring.nphi();
-    double phiStep = 2. * M_PI / nPhi;
-    double zpos    = x_cooling_ring.z_offset();
-    double rmin    = x_cooling_ring.rmin();
-    double rmax    = x_cooling_ring.rmax();
-    double dz      = 2 * (r * M_PI / nPhi - x_cooling_ring.gap());
-
-    // Create the segments around the ring
-    for (unsigned int iphi = 0; iphi < nPhi; ++iphi) {
-      Volume coolingSegement(
-          "CoolingRingSegment",
-          Tube(x_cooling_ring.rmin(), x_cooling_ring.rmax(), dz),
-          oddd.material(x_cooling_ring.materialStr()));
-      coolingSegement.setVisAttributes(oddd, x_cooling_ring.visStr());
-
-      // position & orientation
-      double   phi = iphi * phiStep;
-      Position segementPos(r * cos(phi), r * sin(phi), zpos);
-      // Place the support structure
-      PlacedVolume placedSegment = motherVolume.placeVolume(
-          coolingSegement,
-          Transform3D(RotationY(0.5 * M_PI) * RotationX(0.5 * M_PI - phi),
-                      segementPos));
-    }
-  }
-}
\ No newline at end of file
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp
deleted file mode 100644
index 6c283902d3a54d3a15a86e54661f3b20d54c90e1..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-#include "ODDModuleHelper.hpp"
-#include "ODDServiceHelper.hpp"
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t
-create_element(Detector& oddd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det   = xml;
-  string    detName = x_det.nameStr();
-
-  // Make DetElement
-  DetElement barrelDetector(detName, x_det.id());
-
-  // Add Extension to DetElement for the RecoGeometry
-  Acts::ActsExtension* barrelExtension = new Acts::ActsExtension();
-  barrelExtension->addType("barrel", "detector");
-  barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension);
-
-  // Make Volume
-  dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
-  string                 barrelShapeName = x_det_dim.nameStr();
-
-  Tube   barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
-  Volume barrelVolume(detName, barrelShape, oddd.air());
-  barrelVolume.setVisAttributes(oddd, x_det.visStr());
-
-  // Create the stave volume and DetElement tree
-  xml_comp_t x_stave = x_det.child(_U(stave));
-  Assembly   staveAssembly("stave");
-  // Visualization
-  staveAssembly.setVisAttributes(oddd, x_stave.visStr());
-  // DetElement tree
-  DetElement staveElementTemplate("StaveElementTemplate", 0);
-
-  // Build a template module for the Barrel
-  xml_comp_t x_module = x_det.child(_U(module));
-  double     length   = 0.;
-  auto       module   = assembleRectangularModule(oddd, sens, x_module, length);
-
-  // Place the modules into the stave
-  double       gap          = x_stave.gap();
-  unsigned int nModules     = x_stave.nmodules();
-  double       ystep        = length + gap;
-  double       ymin         = (nModules * 0.5 - 0.5) * length;
-  double       staveHlength = ymin + 0.5 * length;
-
-  // Loop over the modules and place them in the stave
-  for (unsigned int moduleNum = 0; moduleNum < nModules; ++moduleNum) {
-
-    double positionY = -ymin + moduleNum * ystep;
-    // Place the cable bundle, one per stave
-    if (x_stave.hasChild(_U(eltube))) {
-      // Retrieve cable parameters
-      xml_comp_t x_cable = x_stave.child(_U(eltube));
-
-      double rMin = x_cable.rmin();
-      double rMax = x_cable.rmax();
-
-      // For an odd number of modules this will create an asymmetric powering
-      // (as it should)
-      double rStep  = (rMax - rMin) / (0.5 * nModules);
-      double rCable = rMin + abs(moduleNum - 0.5 * nModules) * rStep;
-
-      Tube cable(0., rCable, 0.495 * ystep);
-      // Create the scable volume
-      Volume cableVolume("Cable", cable, oddd.material(x_cable.materialStr()));
-      cableVolume.setVisAttributes(oddd, x_cable.visStr());
-
-      // Place the pipe in the stave
-      PlacedVolume placedCable = staveAssembly.placeVolume(
-          cableVolume,
-          Transform3D(
-              RotationX(0.5 * M_PI),
-              Position(x_cable.x_offset(), positionY, x_cable.z_offset())));
-    }
-
-    // Place them along local y
-    PlacedVolume placedModule
-        = staveAssembly.placeVolume(module.first, Position(0., positionY, 0.));
-    placedModule.addPhysVolID("module", moduleNum);
-
-    string moduleName = _toString((int)moduleNum, "module%d");
-    // Clone the detector element
-    auto moduleElement = module.second.clone(moduleName, moduleNum);
-    moduleElement.setPlacement(placedModule);
-    // Assign it as child to the stave template
-    staveElementTemplate.add(moduleElement);
-  }
-
-  // Remember the layer radii
-  std::vector<double> layerR;
-
-  // Loop over the layers to build staves
-  size_t layerNum = 0;
-  for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layerNum) {
-    xml_comp_t x_layer = lay;
-
-    string layerName = detName + std::to_string(layerNum);
-    // The Module envelope volume
-    Volume layerVolume(
-        layerName,
-        Tube(x_layer.rmin(), x_layer.rmax(), staveHlength + x_layer.outer_z()),
-        oddd.air());
-    // Visualization
-    layerVolume.setVisAttributes(oddd, x_layer.visStr());
-
-    // The DetElement tree, keep it flat
-    DetElement layerElement(barrelDetector, layerName, layerNum);
-
-    // Place the staves in the layer
-    unsigned int nStaves = x_layer.nphi();
-    double       phiStep = 2. * M_PI / nStaves;
-    double       phiTilt = x_layer.phi_tilt();
-    double       phi0    = x_layer.phi0();
-    double       r       = x_layer.r();
-    layerR.push_back(r);
-
-    // Loop over the staves and place them
-    for (unsigned int staveNum = 0; staveNum < nStaves; ++staveNum) {
-      string staveName = _toString((int)staveNum, "stave%d");
-      // position of the stave
-      double phi = phi0 + staveNum * phiStep;
-      double x   = r * cos(phi);
-      double y   = r * sin(phi);
-      // Now place the stave
-      PlacedVolume placedStave = layerVolume.placeVolume(
-          staveAssembly,
-          Transform3D(RotationY(0.5 * M_PI) * RotationZ(0.5 * M_PI)
-                          * RotationY(phi + phiTilt),
-                      Position(x, y, 0.)));
-      placedStave.addPhysVolID("stave", staveNum);
-
-      // Clone the stave element from the template
-      DetElement staveElement = staveElementTemplate.clone(staveName, staveNum);
-      staveElement.setPlacement(placedStave);
-      // Add to the layer element
-      layerElement.add(staveElement);
-    }
-
-    // Place the support cylinder
-    std::vector<double> dummyR;
-    buildSupportCylinder(oddd, barrelVolume, x_layer, dummyR);
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive cylinder", "layer");
-    layerElement.addExtension<Acts::ActsExtension>(layerExtension);
-    Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension);
-    PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume);
-    placedLayer.addPhysVolID("layer", layerNum);
-
-    // Assign layer DetElement to layer volume
-    layerElement.setPlacement(placedLayer);
-
-  }  // loop over layers
-
-  // Place the support rails
-  buildSupportCylinder(oddd, barrelVolume, x_det, layerR);
-
-  // Route the services out on both sides
-  if (x_det.hasChild(_Unicode(services))) {
-    // Grab the services
-    xml_comp_t x_services = x_det.child(_Unicode(services));
-    if (x_services.hasChild(_Unicode(cable_routing))) {
-      xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing));
-      buildBarrelRouting(oddd, barrelVolume, x_cable_routing, layerR);
-    }
-    if (x_services.hasChild(_Unicode(cooling_routing))) {
-      xml_comp_t x_cooling_routing
-          = x_services.child(_Unicode(cooling_routing));
-      buildBarrelRouting(oddd, barrelVolume, x_cooling_routing, layerR);
-    }
-  }
-
-  // Place Volume
-  Volume       motherVolume = oddd.pickMotherVolume(barrelDetector);
-  Position     translation(0., 0., x_det_dim.z());
-  PlacedVolume placedBarrel
-      = motherVolume.placeVolume(barrelVolume, translation);
-  // "system" is hard coded in the DD4Hep::VolumeManager
-  placedBarrel.addPhysVolID("system", barrelDetector.id());
-  barrelDetector.setPlacement(placedBarrel);
-
-  // And return it
-  return barrelDetector;
-}
-
-DECLARE_DETELEMENT(ODDStripBarrel, create_element)
diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp
deleted file mode 100644
index 8a2b2bbd30cb19ab4c82af9cb40b4567c1e021b8..0000000000000000000000000000000000000000
--- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// This file is part of the Acts project.
-//
-// Copyright (C) 2019 CERN for the benefit of the Acts project
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
-#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp"
-#include "DD4hep/DetFactoryHelper.h"
-#include "ODDModuleHelper.hpp"
-#include "ODDServiceHelper.hpp"
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t
-create_element(Detector& oddd, xml_h xml, SensitiveDetector sens)
-{
-
-  xml_det_t x_det   = xml;
-  string    detName = x_det.nameStr();
-
-  // Make DetElement
-  DetElement endcapDetector(detName, x_det.id());
-
-  // Add Extension to DetElement for the RecoGeometry
-  Acts::ActsExtension* endcapExtension = new Acts::ActsExtension();
-  endcapExtension->addType("endcap", "detector");
-  endcapDetector.addExtension<Acts::ActsExtension>(endcapExtension);
-
-  // Make Volume
-  dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
-  string                 endcapShapeName = x_det_dim.nameStr();
-
-  Tube   endcapShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
-  Volume endcapVolume(detName, endcapShape, oddd.air());
-  endcapVolume.setVisAttributes(oddd, x_det.visStr());
-
-  Assembly diskAssembly("Disk");
-
-  // DetElement tree
-  DetElement diskElementTemplate("DiskElementTemplate", 0);
-
-  // build the ring templates
-  size_t ringNum = 0;
-  for (xml_coll_t ring(x_det, _U(ring)); ring; ++ring, ++ringNum) {
-
-    xml_comp_t x_ring = ring;
-
-    string   ringName = "Ring" + std::to_string(ringNum);
-    Assembly ringAssembly(ringName);
-
-    // DetElement tree
-    DetElement ringElement(ringName, ringNum);
-
-    if (x_ring.hasChild(_U(module))) {
-
-      xml_comp_t x_module = x_ring.child(_U(module));
-      auto       module   = assembleTrapezoidalModule(oddd, sens, x_module);
-
-      // place the modules
-      unsigned int nPhi    = x_ring.nphi();
-      double       phiStep = 2 * M_PI / nPhi;
-      double       phi0    = x_ring.phi0();
-      double       r       = x_ring.r();
-      double       zgap    = x_ring.gap();
-      bool         reflect = x_ring.reflect();
-
-      for (unsigned int modNum = 0; modNum < nPhi; ++modNum) {
-        // The module name
-        string moduleName = _toString((int)modNum, "module%d");
-
-        bool odd = bool(modNum % 2);
-
-        // Position parameters
-        double phi = phi0 + modNum * phiStep;
-        double x   = r * cos(phi);
-        double y   = r * sin(phi);
-        double z   = odd ? -zgap : zgap;
-
-        // Place Module Box Volumes, flip if necessary
-        Position trans(x, y, z);
-        double   flip = odd ? M_PI : 0.;
-
-        double angX = 0.5 * M_PI + flip;
-        double angY = odd ? 0.5 * M_PI - phi : 0.5 * M_PI + phi;
-
-        PlacedVolume placedModule = ringAssembly.placeVolume(
-            module.first,
-            Transform3D(
-                RotationX(angX) * RotationY(angY),
-                trans));  // RotationZ(phi + 1.5 * M_PI) * RotationY(flip)
-        placedModule.addPhysVolID("module", modNum);
-        // Clone the detector element
-        auto moduleElement = module.second.clone(moduleName, modNum);
-        moduleElement.setPlacement(placedModule);
-        // Assign it as child to the stave template
-        ringElement.add(moduleElement);
-      }
-
-      // Now add the ring detector Element to the disk
-      diskElementTemplate.add(ringElement);
-
-      size_t supportNum = 0;
-      for (xml_coll_t sup(x_ring, _U(support)); sup; ++sup, ++supportNum) {
-        xml_comp_t x_support = sup;
-        // Create the volume of the support structure
-        string supportName = _toString((int)supportNum, "RingSupport%d");
-        Volume supportVolume(
-            supportName,
-            Tube(x_support.rmin(), x_support.rmax(), x_support.dz()),
-            oddd.material(x_support.materialStr()));
-        supportVolume.setVisAttributes(oddd, x_support.visStr());
-        // Place the support structure
-        PlacedVolume placedSupport = ringAssembly.placeVolume(
-            supportVolume, Position(0., 0., x_support.z_offset()));
-      }
-
-      // Cooling rings
-      buildCoolingRings(oddd, ringAssembly, x_ring);
-
-      PlacedVolume placedRing = diskAssembly.placeVolume(
-          ringAssembly, Position(0., 0., x_ring.z_offset()));
-
-      placedRing.addPhysVolID("ring", ringNum);
-      ringElement.setPlacement(placedRing);
-    }
-  }
-
-  // Loop over the layers and place the disk, remember the z positions
-  std::vector<double> endcapZ;
-  size_t              layNum = 0;
-  for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layNum) {
-
-    xml_comp_t x_layer = lay;
-    // The Layer envelope volume
-    string layerName = detName + std::to_string(layNum);
-    Volume layerVolume(layerName,
-                       Tube(x_layer.rmin(), x_layer.rmax(), x_layer.dz()),
-                       oddd.air());
-
-    layerVolume.setVisAttributes(oddd, x_layer.visStr());
-
-    string diskElName = _toString((int)layNum, "disk%d");
-
-    // The DetElement tree
-    DetElement layerElement(layerName, layNum);
-    auto       diskElement = diskElementTemplate.clone(diskElName, layNum);
-
-    // Place the disk into the layer
-    PlacedVolume placedDisk = layerVolume.placeVolume(diskAssembly);
-    diskElement.setPlacement(placedDisk);
-    layerElement.add(diskElement);
-
-    // Place Ring assembly into disk
-    double       zeff = x_layer.z_offset() - x_det_dim.z();
-    PlacedVolume placedLayer
-        = endcapVolume.placeVolume(layerVolume, Position(0., 0., zeff));
-    placedLayer.addPhysVolID("layer", layNum);
-    endcapZ.push_back(zeff);
-
-    // Place the layer with appropriate Acts::Extension
-    // Configure the ACTS extension
-    Acts::ActsExtension* layerExtension = new Acts::ActsExtension();
-    layerExtension->addType("sensitive disk", "layer");
-    layerElement.addExtension<Acts::ActsExtension>(layerExtension);
-    Acts::xml2DiscProtoMaterial(x_layer, *layerExtension);
-    // Finish up the DetElement tree
-    layerElement.setPlacement(placedLayer);
-    endcapDetector.add(layerElement);
-  }
-
-  if (x_det.hasChild(_Unicode(services))) {
-    // Grab the services - cables
-    xml_comp_t x_services = x_det.child(_Unicode(services));
-    for (xml_coll_t crout(x_services, _Unicode(cable_routing)); crout;
-         ++crout) {
-      xml_comp_t x_cable_routing = crout;
-      buildEndcapRouting(oddd, endcapVolume, x_cable_routing, endcapZ);
-    }
-    // Grab for services - cooling
-    for (xml_coll_t crout(x_services, _Unicode(cooling_routing)); crout;
-         ++crout) {
-      xml_comp_t x_cooling_routing = crout;
-      buildEndcapRouting(oddd, endcapVolume, x_cooling_routing, endcapZ);
-    }
-  }
-
-  // Place Volume
-  Volume       motherVolume = oddd.pickMotherVolume(endcapDetector);
-  Position     translation(0., 0., x_det_dim.z());
-  PlacedVolume placedEndcap
-      = motherVolume.placeVolume(endcapVolume, translation);
-  // "system" is hard coded in the DD4Hep::VolumeManager
-  placedEndcap.addPhysVolID("system", endcapDetector.id());
-  endcapDetector.setPlacement(placedEndcap);
-
-  // And return it
-  return endcapDetector;
-}
-
-DECLARE_DETELEMENT(ODDStripEndcap, create_element)
diff --git a/Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp b/Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp
similarity index 87%
rename from Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp
rename to Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp
index 17a9b8c83524a63164241fba2efe208dd03a52be..a1a07575cef6eb517b1e685b8328b4faeced962a 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp
+++ b/Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp
@@ -7,11 +7,11 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 #include "XML/XMLElements.h"
 
 namespace det {
-
 /**
 Factory for a shape from multiple cylinders. Meant for material approximations.
 Expected xml structure:
@@ -23,7 +23,6 @@ Expected xml structure:
 </detector>
 @author: Joschka Lingemann
 */
-
 static dd4hep::Ref_t
 createSimpleLayeredCylinder(dd4hep::Detector&         lcdd,
                             dd4hep::xml::Handle_t     xmlElement,
@@ -34,9 +33,10 @@ createSimpleLayeredCylinder(dd4hep::Detector&         lcdd,
   std::string        name = xmlDet.nameStr();
   dd4hep::DetElement detElement(name, xmlDet.id());
   // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  detvolume->addType("barrel", "detector");
-  detElement.addExtension<Acts::ActsExtension>(detvolume);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  detElement.addExtension<Acts::IActsExtension>(detvolume);
   // Create volume
   dd4hep::Volume experimentalHall = lcdd.pickMotherVolume(detElement);
   xml_comp_t     dimensions(xmlDet.dimensions());
@@ -66,9 +66,10 @@ createSimpleLayeredCylinder(dd4hep::Detector&         lcdd,
       layerVolume.setSensitiveDetector(sensDet);
     }
     // Set Acts Extension
-    Acts::ActsExtension* detlayer = new Acts::ActsExtension();
-    detlayer->addType("passive cylinder", "layer");
-    lay_det.addExtension<Acts::ActsExtension>(detlayer);
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer             = true;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
 
     // place the layer into the mother volume with a possible translation
     dd4hep::Position     transLayer(0., 0., layerDet.z_offset());
diff --git a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp b/Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp
similarity index 89%
rename from Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp
rename to Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp
index 2f74b9b3b51a07007b6155c48a9d4bdcd99e18a5..64d1c4e51003ef6eb1a68e09234860fd0b51eb66 100644
--- a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp
+++ b/Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp
@@ -7,6 +7,7 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 
 using namespace std;
@@ -25,9 +26,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
   // Make DetElement
   DetElement cylinderVolume(det_name, x_det.id());
   // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  detvolume->addType("barrel", "detector");
-  cylinderVolume.addExtension<Acts::ActsExtension>(detvolume);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  cylinderVolume.addExtension<Acts::IActsExtension>(detvolume);
   // make Volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
@@ -82,9 +84,6 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
           Position trans(radius * cos(phi), radius * sin(phi), k * dz);
           // Create the module DetElement
           DetElement mod_det(lay_det, module_name, module_num);
-          // Create and attach the extension for DD4Hep/Acts conversion
-          Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-          mod_det.addExtension<Acts::ActsExtension>(moduleExtension);
           // Set Sensitive Volmes sensitive
           if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); }
           // Place Module Box Volumes in layer
@@ -103,9 +102,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
     // set granularity of layer material mapping and where material should be
     // mapped
     // hand over modules to ACTS
-    Acts::ActsExtension* detlayer = new Acts::ActsExtension();
-    detlayer->addType("sensitive cylinder", "layer");
-    lay_det.addExtension<Acts::ActsExtension>(detlayer);
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer             = true;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
     // Place layer volume
     PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol);
     placedLayer.addPhysVolID("layer", layer_num);
diff --git a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp b/Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp
similarity index 89%
rename from Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp
rename to Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp
index b7c29db9736930fdf018ea2eca90931df30046e9..ce792ef585afa7401ccc8dd360da1e3dc110dd82 100644
--- a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp
+++ b/Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp
@@ -7,6 +7,7 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "DD4hep/DetFactoryHelper.h"
 
 using namespace std;
@@ -26,9 +27,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
   // Make DetElement
   DetElement cylinderVolume(det_name, x_det.id());
   // add Extension to Detlement for the RecoGeometry
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  detvolume->addType("endcap", "detector");
-  cylinderVolume.addExtension<Acts::ActsExtension>(detvolume);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isEndcap             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  cylinderVolume.addExtension<Acts::IActsExtension>(detvolume);
   // make Volume
   dd4hep::xml::Dimension x_det_dim(x_det.dimensions());
   Tube   tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz());
@@ -82,9 +84,6 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
           // Create the module DetElement
           DetElement mod_det(
               lay_det, module_name, repeat * module_num_num + module_num);
-          // Create and attach the extension for DD4Hep/Acts conversion
-          Acts::ActsExtension* moduleExtension = new Acts::ActsExtension();
-          mod_det.addExtension<Acts::ActsExtension>(moduleExtension);
           // Set Sensitive Volmes sensitive
           if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); }
           // Place Module Box Volumes in layer
@@ -104,10 +103,11 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens)
     // set granularity of layer material mapping and where material should be
     // mapped
     // hand over modules to ACTS
-    Acts::ActsExtension* detlayer = new Acts::ActsExtension();
-    detlayer->addType("axes", "definitions", "XZy");
-    detlayer->addType("sensitive disk", "layer");
-    lay_det.addExtension<Acts::ActsExtension>(detlayer);
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer             = true;
+    layConfig.axes                = "XZy";
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    lay_det.addExtension<Acts::IActsExtension>(detlayer);
     double layerZpos = x_layer.z();
     // Placed Layer Volume
     Position     layer_pos(0., 0., layerZpos);
diff --git a/Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp b/Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp
similarity index 93%
rename from Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp
rename to Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp
index f6a3681e824a1442b292b262f085d2970620d8cd..5bfebaf99786f8fdbcae77a1bc23020bfae1e4c9 100644
--- a/Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp
+++ b/Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp
@@ -30,6 +30,7 @@ using namespace dd4hep;
 // using namespace DDSurfaces;
 
 #include "Acts/Plugins/DD4hep/ActsExtension.hpp"
+#include "Acts/Plugins/DD4hep/IActsExtension.hpp"
 #include "Acts/Utilities/Units.hpp"
 
 static Ref_t
@@ -46,9 +47,10 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens)
   DetElement tracker(name, x_det.id());
 
   // add Extension to Detlement for the RecoGeometry of ACTS
-  Acts::ActsExtension* detvolume = new Acts::ActsExtension();
-  detvolume->addType("barrel", "detector");
-  tracker.addExtension<Acts::ActsExtension>(detvolume);
+  Acts::ActsExtension::Config volConfig;
+  volConfig.isBarrel             = true;
+  Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig);
+  tracker.addExtension<Acts::IActsExtension>(detvolume);
 
   PlacedVolume pv;
 
@@ -88,11 +90,13 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens)
     DetElement layerDE(tracker, _toString(layer_id, "layer_%d"), x_det.id());
 
     // add Extension for translation to ACTS TrackingGeometry
-    Acts::ActsExtension* detlayer = new Acts::ActsExtension("zyx");
-    detlayer->addValue(10. * Acts::units::_mm, "r", "envelope");
-    detlayer->addValue(10. * Acts::units::_mm, "z", "envelope");
-    detlayer->addType("sensitive plane", "layer");
-    layerDE.addExtension<Acts::ActsExtension>(detlayer);
+    Acts::ActsExtension::Config layConfig;
+    layConfig.isLayer             = true;
+    layConfig.axes                = "zyx";
+    layConfig.envelopeR           = 10. * Acts::units::_mm;
+    layConfig.envelopeZ           = 10. * Acts::units::_mm;
+    Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig);
+    layerDE.addExtension<Acts::IActsExtension>(detlayer);
 
     pv = assembly.placeVolume(layer_assembly);
 
diff --git a/Examples/MaterialMapping/src/ParticleRecordingExample.cpp b/Examples/MaterialMapping/src/ParticleRecordingExample.cpp
index 8ef7ad355f91c698ad89659203dcaba9a72a87ad..753dc989e045f1259c4182c8ec1f402d7bf028be 100644
--- a/Examples/MaterialMapping/src/ParticleRecordingExample.cpp
+++ b/Examples/MaterialMapping/src/ParticleRecordingExample.cpp
@@ -7,6 +7,7 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #include <string>
+#include <fstream>
 #include <boost/program_options.hpp>
 #include "ACTFW/DD4hepDetector/DD4hepDetectorOptions.hpp"
 #include "ACTFW/DD4hepDetector/DD4hepGeometryService.hpp"
@@ -33,7 +34,9 @@
 
 namespace po = boost::program_options;
 
-using PartRec = std::vector<std::vector<FW::Geant4::ParticleRecord>>;
+using PartRec = FW::Geant4::Collection;
+//~ using PartRec = std::map<int, std::vector<FW::Geant4::ParticleRecord>>;
+//~ using PartRec = 	std::map<int, std::vector<FW::Data::SimVertex<FW::Data::SimParticle>>;
 using WriteIt = FW::WriterT<PartRec>;
 
 namespace FW
@@ -54,10 +57,16 @@ public:
     /// @param cfg Configuration struct
     /// @param level Message level declaration
     ParticleRecordWriting(const Config&        cfg,
-                       Acts::Logging::Level level = Acts::Logging::INFO) : WriteIt(cfg.collection, "ParticleRecordWriter", level), m_cfg(cfg) {}
+                       Acts::Logging::Level level = Acts::Logging::INFO) : WriteIt(cfg.collection, "ParticleRecordWriter", level), m_cfg(cfg) 
+    {
+		ofs.open("geantOut.txt");		
+	}
 
     /// Virtual destructor
-    ~ParticleRecordWriting() override {}
+    ~ParticleRecordWriting() override 
+    {
+		ofs.close();
+	}
 
     /// End-of-run hook
     ProcessCode
@@ -73,31 +82,75 @@ public:
     /// particles to be attached
     ProcessCode
     writeT(const AlgorithmContext&       context,
-           const PartRec& vertices) final override
+           const PartRec& collection) final override
 	{
 		int eventNr = context.eventNumber;
 		
-		std::cout << "evtNr: " << eventNr << std::endl;
-		for(const auto& evt : vertices)
+		std::cout << "Writing event " << eventNr << std::endl;
+		ofs << eventNr << " " << collection.pdg << " " << collection.momentum << " " << collection.phi << " " << -log(tan(collection.theta * 0.5)) << "\n";
+		
+		std::set<std::string> procsElse;
+		for(const auto& part : collection.particles)
 		{
-			std::cout << "New Track: " << std::endl;
-			for(const auto& p : evt)
+			//~ check the number of charged particles in the event, the type of particles, their energy spectrum, the angular distribution			
+			if(part.second.back().volume == "No volume")
+			{			
+				writeToFile(part.second.back());
+				
+				std::set<std::string> procs;
+				for(const auto& p : part.second)
+				{
+					procs.insert(p.process);
+				}
+				for(auto it = procs.cbegin(); it != procs.cend(); it++)
+					ofs << " " << *it;
+				ofs << "\n";
+			}
+			else
 			{
-				//~ if(p.volume == "No volume")
-					std::cout << "TID: " << p.trackid << ",Parent: " << p.parentid << ", PID: " << p.pdg <<
-						", Position: (" << p.position[0] << ", " << p.position[1] << ", " << p.position[2] << 
-						"), Momentum: (" << p.momentum[0] << ", " << p.momentum[1] << ", " << p.momentum[2] << "), Volume: " << p.volume << ", Process: " << p.process << std::endl;				
+				for(const auto& p : part.second)
+				{
+					procsElse.insert(p.process);
+				}
 			}
+			//~ std::cout << "TID: " << part.second.back().trackid << ",Parent: " << part.second.back().parentid << ", PID: " << part.second.back().pdg <<
+				//~ ", Position: (" << part.second.back().position[0] << ", " << part.second.back().position[1] << ", " << part.second.back().position[2] << 
+				//~ "), Momentum: (" << part.second.back().momentum[0] << ", " << part.second.back().momentum[1] << ", " << part.second.back().momentum[2] << "), Volume: " << part.second.back().volume << ", Process: " << part.second.back().process << std::endl;
+		}
+		if(procsElse.empty())
+			ofs << "#\n";
+		else
+		{
+			ofs << "999 ";
+			for(auto it = procsElse.cbegin(); it != procsElse.cend(); it++)
+				ofs << *it << " ";
+			ofs << "\n#\n";
 		}
+		
 		return ProcessCode::SUCCESS;
 	}
 
   private:
     Config     m_cfg;         ///< The config class
+    std::ofstream ofs;
+    
+    void
+    writeToFile(const FW::Geant4::ParticleRecord& p)
+    {
+		const double r = sqrt(p.momentum[0] * p.momentum[0] + p.momentum[1] * p.momentum[1] + p.momentum[2] * p.momentum[2]);
+		Acts::Vector3D dir;
+		dir << p.momentum[0] / r, p.momentum[1] / r, p.momentum[2] / r;
+		
+		const double theta = acos(dir.z());
+		const double eta = -log(tan(theta * 0.5));
+		
+		const double phi = atan2(dir.y(), dir.x());
+		
+		ofs << p.pdg << " " << p.charge << " " << r << " " << phi << " " << eta;
+	}
 };
 }
 
-//~ FW::Sequencer
 void
 fatrasSequencerBuild(boost::program_options::variables_map& vm, DD4hepDetector& detector)
 {
@@ -137,11 +190,9 @@ fatrasSequencerBuild(boost::program_options::variables_map& vm, DD4hepDetector&
 
   // (E) PATTERN RECOGNITION
   
-  //~ return fatrasSequencer;
-  //~ fatrasSequencer.run();
+  fatrasSequencer.run();
 }
 
-//~ FW::Sequencer
 void
 g4SequencerBuild(boost::program_options::variables_map& vm)
 {
@@ -199,8 +250,7 @@ g4SequencerBuild(boost::program_options::variables_map& vm)
 
   // Append the algorithm and run
   g4Sequencer.addAlgorithm(g4rAlgorithm);
-  //~ return g4Sequencer;
-  //~ g4Sequencer.run();
+  g4Sequencer.run();
 }
 
 int
@@ -234,13 +284,8 @@ main(int argc, char* argv[])
   }
 
 std::cout << "Building fatras sequencer" << std::endl;
-  //~ FW::Sequencer fatrasSequencer = fatrasSequencerBuild(vm, detector);
   fatrasSequencerBuild(vm, detector);
 std::cout << "Building g4 sequencer" << std::endl;
-  //~ FW::Sequencer g4Sequencer = g4SequencerBuild(vm);
-  g4SequencerBuild(vm);
+  //~ g4SequencerBuild(vm);
 std::cout << "Done" << std::endl;
-
-  //~ fatrasSequencer.run();
-  //~ g4Sequencer.run();
 }
\ No newline at end of file
diff --git a/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp b/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp
index 4c8dee48518db786f8108a0be8b2d428eebdb494..45bc592e0972b77cbfbe57a129d4ba625d893138 100644
--- a/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp
+++ b/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp
@@ -36,6 +36,13 @@ namespace Geant4 {
 		std::string volume, process;
 	};
 	
+	struct Collection
+	{
+		std::map<int, std::vector<ParticleRecord>> particles;
+		int pdg;
+		double momentum, phi, theta;
+	};
+	
   class ORSteppingAction;
 
   /// @class OREventAction
@@ -69,36 +76,19 @@ namespace Geant4 {
 
     void AddParticle(ParticleRecord& p)
     {
-		Acts::Vector3D pos(p.position[0], p.position[1], p.position[2]);
-		Acts::Vector3D mom(p.momentum[0], p.momentum[1], p.momentum[2]);
-		Data::SimParticle particle(pos, mom, p.mass, p.charge, p.pdg);
-			
-		if(m_vertex.find(p.globalTime) == m_vertex.end())
-		{
-			Acts::Vector3D vertex(p.vertex[0], p.vertex[1], p.vertex[2]);
-			Data::SimVertex vtx(vertex, {}, {particle});
-			m_vertex[p.globalTime] = vtx;
-		}
-		else
-			if(m_particles.find(p.trackid) == m_particles.end())
-			{
-				m_vertex[p.globalTime].out.push_back(particle);
-			}
-			else
-			{
-				m_vertex[p.globalTime].in.push_back(particle);
-			}
-			
 		m_particles[p.trackid].push_back(p);
 	}
 	
-	std::vector<Data::SimVertex<Data::SimParticle>>
-	outcomingParticles() const
+	Collection	
+	outcomingParticles(const int pdg, const double momentum, const double phi, const double theta) const
 	{
-		std::vector<Data::SimVertex<Data::SimParticle>> out;
-		for(const auto& vtx : m_vertex)
-			out.push_back(vtx.second);
-		return out;
+		Collection c;
+		c.particles = m_particles;
+		c.pdg = pdg;
+		c.momentum = momentum;
+		c.phi = phi;
+		c.theta = theta;
+		return c;
 	}
 	
     /// Interface method
@@ -106,16 +96,11 @@ namespace Geant4 {
     void
     Reset();
 
-
   private:
     /// Instance of the EventAction
     static OREventAction* fgInstance;
 
 	std::map<int, std::vector<ParticleRecord>> m_particles;
-	std::vector<std::vector<ParticleRecord>> m_events;
-	std::map<double, Data::SimVertex<Data::SimParticle>> m_vertex;
-  };  
-
-
+  };
 }  // namespace Geant4
 }  // namespace FW
diff --git a/Plugins/Geant4/src/OREventAction.cpp b/Plugins/Geant4/src/OREventAction.cpp
index ea30a77fd1c30dcee5cab22c3e822583af384916..0fd816bec320f2ea781d30087508f5aadc1f0296 100644
--- a/Plugins/Geant4/src/OREventAction.cpp
+++ b/Plugins/Geant4/src/OREventAction.cpp
@@ -47,16 +47,10 @@ FW::Geant4::OREventAction::BeginOfEventAction(const G4Event*)
 void
 FW::Geant4::OREventAction::EndOfEventAction(const G4Event*)
 {
-	std::vector<ParticleRecord> outgoing;
-	for(std::map<int, std::vector<ParticleRecord>>::iterator it = m_particles.begin(); it != m_particles.end(); it++)
-		for(const ParticleRecord& pr : it->second)
-			outgoing.push_back(pr);
-	m_events.push_back(outgoing);
 }
 
 void
 FW::Geant4::OREventAction::Reset()
 {
 	m_particles.clear();
-	m_events.clear();
 }
\ No newline at end of file
diff --git a/Plugins/Geant4/src/ORSteppingAction.cpp b/Plugins/Geant4/src/ORSteppingAction.cpp
index fc397e360651eb850b8d7fe3029bcba0cf8e3375..b5a0fc83e5786dc590e9dc20e22945cfc78f10db 100644
--- a/Plugins/Geant4/src/ORSteppingAction.cpp
+++ b/Plugins/Geant4/src/ORSteppingAction.cpp
@@ -12,6 +12,7 @@
 #include "Acts/Utilities/Units.hpp"
 #include "G4Step.hh"
 #include "G4VProcess.hh"
+//~ #include "SystemOfUnits.h"
 
 FW::Geant4::ORSteppingAction* FW::Geant4::ORSteppingAction::fgInstance
     = nullptr;
@@ -47,18 +48,18 @@ void
 FW::Geant4::ORSteppingAction::UserSteppingAction(const G4Step* step)
 {	
 	ParticleRecord p;
-	p.position[0] = step->GetPostStepPoint()->GetPosition().x();
-	p.position[1] = step->GetPostStepPoint()->GetPosition().y();
-	p.position[2] = step->GetPostStepPoint()->GetPosition().z();
-	p.momentum[0] = step->GetPostStepPoint()->GetMomentum().x();
-	p.momentum[1] = step->GetPostStepPoint()->GetMomentum().y();
-	p.momentum[2] = step->GetPostStepPoint()->GetMomentum().z();
+	p.position[0] = step->GetPostStepPoint()->GetPosition().x() / CLHEP::mm;
+	p.position[1] = step->GetPostStepPoint()->GetPosition().y() / CLHEP::mm;
+	p.position[2] = step->GetPostStepPoint()->GetPosition().z() / CLHEP::mm;
+	p.momentum[0] = step->GetPostStepPoint()->GetMomentum().x() / CLHEP::GeV;
+	p.momentum[1] = step->GetPostStepPoint()->GetMomentum().y() / CLHEP::GeV;
+	p.momentum[2] = step->GetPostStepPoint()->GetMomentum().z() / CLHEP::GeV;
 	p.globalTime = step->GetPostStepPoint()->GetGlobalTime();
 	p.pdg = step->GetTrack()->GetDynamicParticle()->GetPDGcode();
 	p.vertex[0] = step->GetTrack()->GetVertexPosition().x();
 	p.vertex[1] = step->GetTrack()->GetVertexPosition().y();
 	p.vertex[2] = step->GetTrack()->GetVertexPosition().z();
-	p.energy = step->GetPostStepPoint()->GetTotalEnergy();
+	p.energy = step->GetPostStepPoint()->GetTotalEnergy() / CLHEP::GeV;
 	p.mass = step->GetPostStepPoint()->GetMass();
 	p.charge = step->GetPostStepPoint()->GetCharge();
 	p.trackid = step->GetTrack()->GetTrackID();