diff --git a/CMakeLists.txt b/CMakeLists.txt
index e14bac96acd2984d0d679386a33f7865a48117a5..3f71c40e36406a8b01bbe85daa26e75b0d98e6bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -110,6 +110,7 @@ add_subdirectory(DDSurfaces)
 add_subdirectory(DDRec)
 add_subdirectory(DDSense)
 add_subdirectory(DDEve)
+add_subdirectory(DDDetectors)
 
 if(DD4HEP_USE_GEANT4)
 
diff --git a/examples/CLICSiD/CMakeLists.txt b/examples/CLICSiD/CMakeLists.txt
index de12fa6ae5b163c465f5028e4c6f12bd509c064b..f8822685684ca43d5310c2f46f13274e24e45b5c 100644
--- a/examples/CLICSiD/CMakeLists.txt
+++ b/examples/CLICSiD/CMakeLists.txt
@@ -27,8 +27,6 @@ IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
   MESSAGE(STATUS "CMAKE_INSTALL_PREFIX is ${CMAKE_INSTALL_PREFIX} - overwrite with -D CMAKE_INSTALL_PREFIX" )
 ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 
-
-
 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 find_package( DD4hep )
@@ -42,41 +40,10 @@ set( ROOT_COMPONENT_LIBRARIES Geom Reflex)
 
 #-------------------------------------------------------------
 # add additional packages here
-
-
 #-------------------------------------------------------------
 
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include
-  include
-  ${DD4hep_INCLUDE_DIRS}
-  ${ROOT_INCLUDE_DIR}
-  )
-
-file(GLOB sources src/*.cpp )
-file(GLOB headers include/*.h)
-
 include(DD4hep_XML_setup)
 
-if(DD4HEP_USE_PYROOT)
-  ROOT_GENERATE_DICTIONARY(G__CLICSiD ${headers} LINKDEF include/ROOT/LinkDef.h)
-  list(APPEND sources G__CLICSiD.cxx)
-endif()
-
-add_library(${PackageName} SHARED ${sources})
-
-add_executable(CalorimeterReco CalorimeterReco.cpp)
-
-target_link_libraries(${PackageName} ${DD4hep_LIBRARIES} ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} )
-target_link_libraries(CalorimeterReco ${PackageName} ${DD4hep_LIBRARIES} ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} )
-
-#---Rootmap generation--------------------------------------------------------------
-
-if(APPLE)
-  dd4hep_generate_rootmap_apple(${PackageName} )
-else()
-  dd4hep_generate_rootmap(${PackageName} )
-endif()
-
 #---Testing-------------------------------------------------------------------------
 if(BUILD_TESTING)
   include(CTest)
@@ -87,7 +54,6 @@ configure_file( ${DD4hep_ROOT}/cmake/run_test_package.sh run_test_${PackageName}
 INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/run_test_${PackageName}.sh
   DESTINATION bin )
 
-
 #---- configure run environment ---------------
 configure_file( ${DD4hep_ROOT}/cmake/thisdd4hep_package.sh.in  this${PackageName}.sh @ONLY)
 
@@ -97,11 +63,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/this${PackageName}.sh
 
 
 #--- install target-------------------------------------
-
-install(TARGETS ${PackageName}
-  RUNTIME DESTINATION bin
-  LIBRARY DESTINATION lib
-  )
 install(DIRECTORY compact
   DESTINATION examples/${PackageName}
   PATTERN ".svn" EXCLUDE )
diff --git a/examples/CLICSiD/CalorimeterReco.cpp b/examples/CLICSiD/CalorimeterReco.cpp
deleted file mode 100644
index 8fb94093b8c5a66953a39e7d882be72419deb232..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/CalorimeterReco.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * CLICSiDCalorimeterReco.cpp
- *
- *  Created on: Apr 5, 2013
- *      Author: Christian Grefe, CERN
- */
-
-#include "DD4hep/LCDD.h"
-#include "DDRec/API/Calorimeter.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DDRec;
-using namespace Geometry;
-
-void printCalorimeterInformation(const DetElement& det) {
-	std::string delimiter = "-------------------------------------\n";
-
-	cout << "Detector name: " << det.name() << ", type: " << det.type() << endl;
-	Calorimeter calorimeter(det);
-	cout << delimiter << "Layer interface:" << endl;
-	cout << "\tNumber of layers: " << calorimeter.numberOfLayers() << endl;
-	cout << "\tTotal thickness: " << calorimeter.totalThickness() << " cm" << endl;
-	cout << "\tTotal interaction lengths: " << calorimeter.totalInteractionLength() << " Lambda_int" << endl;
-	cout << "\tTotal radiation lengths: " << calorimeter.totalRadiationLength() << " X_0" << endl;
-	for (int layerIndex = 1; layerIndex <= calorimeter.numberOfLayers(); layerIndex++) {
-		cout << "\t\tLayer " << layerIndex << ": d = " << calorimeter.thickness(layerIndex)
-				<< " cm , Lambda/Lambda_int = " << calorimeter.interactionLength(layerIndex) << ", X/X_0 = "
-				<< calorimeter.radiationLength(layerIndex) << ", Sensors: "
-				<< calorimeter.numberOfSensors(layerIndex) << endl;
-	}
-
-	cout << delimiter << "Subdetector interface:" << endl;
-	cout << "\tInner radius: " << calorimeter.getRMin() << " cm" << endl;
-	cout << "\tOuter radius: " << calorimeter.getRMax() << " cm" << endl;
-	cout << "\tMinimum z: " << calorimeter.getZMin() << " cm" << endl;
-	cout << "\tMaximum z: " << calorimeter.getZMax() << " cm" << endl;
-	cout << "\tNumber of sides: " << calorimeter.getNSides() << endl;
-
-	cout << delimiter << endl;
-}
-
-int main(int argc, char** argv) {
-
-	LCDD& lcdd = LCDD::getInstance();
-	lcdd.fromCompact(argv[1]);
-	printCalorimeterInformation(lcdd.detector("MuonBarrel"));
-	//printCalorimeterInformation(lcdd.detector("HcalBarrel"));
-
-	return 0;
-}
diff --git a/examples/CLICSiD/compact/BarrelCalorimeter.xml b/examples/CLICSiD/compact/BarrelCalorimeter.xml
deleted file mode 100644
index d61c1c088ba140342f107a8b0a538672dbaa23de..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/compact/BarrelCalorimeter.xml
+++ /dev/null
@@ -1,427 +0,0 @@
-<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" 
-    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-    xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
-
-    <info name="clic_sid_cdr"
-        title="CLIC Silicon Detector CDR"
-        author="Christian Grefe"
-        url="https://twiki.cern.ch/twiki/bin/view/CLIC/ClicSidCdr"
-        status="development"
-        version="$Id: compact.xml 513 2013-04-05 14:31:53Z gaede $">
-        <comment>The compact format for the CLIC Silicon Detector used for the conceptual design report</comment>        
-    </info>
-
-    <includes>
-        <gdmlFile  ref="elements.xml"/>
-        <gdmlFile  ref="materials.xml"/>
-        <pyBuilder ref="../drivers"/>
-    </includes>
-    
-    <define>
-        <constant name="world_side" value="30000"/>
-        <constant name="world_x" value="world_side"/>
-        <constant name="world_y" value="world_side"/>
-        <constant name="world_z" value="world_side"/>
-        
-        <constant name="CrossingAngle" value="0.020"/>
-        
-        <constant name="CaloSides" value="12"/>
-        <constant name="MuonSides" value="8"/>
-        
-        <constant name="EcalBarrel_rmin" value="126.50*cm"/>
-        <constant name="EcalBarrel_zmax" value="176.50*cm"/>
-        <constant name="EcalEndcap_rmin" value="21.0*cm"/>
-        <constant name="EcalEndcap_rmax" value="(EcalBarrel_rmin - 1.5*cm) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="EcalEndcap_zmin" value="165.70*cm"/>
-        
-        <constant name="HcalBarrel_rmin" value="141.90*cm"/>
-        <constant name="HcalBarrel_layers" value="(int) 75"/>
-        <constant name="HcalBarrel_layer_thickness" value="1.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmin" value="EcalBarrel_zmax + 4.0*cm"/> <!-- Gap for cables -->
-        <constant name="HcalEndcap_rmin" value="50.0*cm"/>
-        <constant name="HcalEndcap_rmax" value="(HcalBarrel_rmin + HcalBarrel_layers * HcalBarrel_layer_thickness) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="HcalEndcap_layers" value="60"/>
-        <constant name="HcalEndcap_layer_thickness" value="2.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmax" value="HcalEndcap_zmin + HcalEndcap_layers * HcalEndcap_layer_thickness"/>
-        
-        <constant name="tracking_region_radius" value="EcalBarrel_rmin - 1.0"/>
-        <constant name="tracking_region_zmax" value="EcalEndcap_zmin - 1.0"/>
-        <constant name="VXD_CF_sensor" value="0.026*cm"/>
-        <constant name="VXD_CF_support" value="0.05*cm"/>
-        
-        <constant name="SolenoidBarrelInnerRadius" value="HcalEndcap_rmax + 2.0*cm"/>
-        <constant name="SolenoidCoilOuterZ" value="HcalEndcap_zmax"/> <!-- Aligned with HCAL endcap -->
-        <constant name="SolenoidBarrelInnerCryostatThickness" value="3.0*cm"/>
-        <constant name="SolenoidBarrelInnerAirgapThickness" value="11.0*cm"/>
-        <constant name="SolenoidBarrelAlConductorThickness" value="38.4*cm"/>
-        <constant name="SolenoidBarrelQuenchbackThickness" value="5.0*cm"/>
-        <constant name="SolenoidBarrelOuterAirgapThickness" value="18.7*cm"/>
-        <constant name="SolenoidBarrelOuterCryostatThickness" value="4.0*cm"/>
-        <constant name="SolenoidEndcapCryostatThickness" value="6.0*cm"/>
-        <constant name="SolenoidEndcapAirgapThickness" value="12.0*cm"/>
-        <constant name="SolenoidBarrelOuterZ" value="SolenoidCoilOuterZ+SolenoidEndcapAirgapThickness"/>
-        <constant name="SolenoidBarrelConductorInnerRadius" value="SolenoidBarrelInnerRadius + SolenoidBarrelInnerCryostatThickness + SolenoidBarrelInnerAirgapThickness"/>
-        <constant name="SolenoidBarrelOuterCryostatInnerRadius" value="SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/>
-        <constant name="SolenoidBarrelOuterRadius" value="SolenoidBarrelOuterCryostatInnerRadius + SolenoidBarrelOuterAirgapThickness + SolenoidBarrelOuterCryostatThickness"/>
-        <constant name="SolenoidalFieldRadius" value="(SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness / 2.0)"/>
-        
-        <constant name="MuonBarrel_rmin" value="SolenoidBarrelOuterRadius + 1.0*cm"/>
-        <constant name="MuonBarrel_zmax" value="SolenoidBarrelOuterZ + SolenoidEndcapCryostatThickness"/>
-        <constant name="MuonBarrel_layers" value="15"/>
-        <constant name="MuonBarrel_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmin" value="MuonBarrel_zmax + 10.0*cm"/> <!-- Space for cables etc. -->
-        <constant name="MuonEndcap_rmin" value="69.0*cm"/> <!-- Space for QD0 and anti-solenoid-->
-        <constant name="MuonEndcap_rmax" value="(MuonBarrel_rmin + 57.0*cm + MuonBarrel_layers * MuonBarrel_layer_thickness) / (cos(pi/MuonSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="MuonEndcap_layers" value="18"/>
-        <constant name="MuonEndcap_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmax" value="MuonEndcap_zmin + MuonEndcap_layers * MuonEndcap_layer_thickness"/>
-        
-        <constant name="LumiCal_rmin" value="6.4*cm"/>
-        <constant name="LumiCal_rmax" value="EcalEndcap_rmin + 3.0*cm"/>
-        <constant name="LumiCal_zmin" value="HcalEndcap_zmin"/>
-        <constant name="LumiCal_thickness" value="20*0.371*cm + 15*0.643*cm"/>
-        <constant name="LumiCal_zmax" value="LumiCal_zmin + LumiCal_thickness"/>
-        <constant name="LumiCalElectronics_rmax" value="LumiCal_rmax+5.0*cm"/>
-        
-        <constant name="SupportTube_thickness" value="1.0*cm"/>
-        <constant name="ForwardVacuumValve_thickness" value="36.0*cm"/>
-        <constant name="ForwardShielding_thickness" value="5.0*cm"/>
-        <constant name="ForwardMask_thickness" value="10.0*cm"/>
-        <constant name="ForwardMask_zmin" value="LumiCal_zmax + ForwardShielding_thickness + ForwardVacuumValve_thickness"/>
-        <constant name="BeamCal_rmax" value="13.0*cm"/>
-        <constant name="BeamCal_zmin" value="ForwardMask_zmin + ForwardMask_thickness"/>
-        
-        <constant name="VertexSupport_r1" value="16.87*cm"/>
-        <constant name="VertexSupport_r2" value="18.42*cm"/>
-        <constant name="VertexSupport_zmax" value="89.48*cm"/>
-        
-        <constant name="VertexBarrel_zmax" value="10.0*cm"/>
-        <constant name="VertexBarrel_r1" value="2.7*cm"/>
-        <constant name="VertexBarrel_r2" value="3.8*cm"/>
-        <constant name="VertexBarrel_r3" value="5.1*cm"/>
-        <constant name="VertexBarrel_r4" value="6.4*cm"/>
-        <constant name="VertexBarrel_r5" value="7.7*cm"/>
-        
-        <constant name="CentralBeamPipe_zmax" value="23.0*cm"/>
-        <constant name="CentralBeamPipe_rmax" value="VertexBarrel_r1 - 0.2*cm"/>
-        <constant name="CentralBeamPipe_thickness" value="CentralBeamPipe_rmax * 0.02"/> <!-- 1% of the diameter -->
-        <constant name="CentralBeamPipe_rmin" value="CentralBeamPipe_rmax - CentralBeamPipe_thickness"/>
-        <constant name="BeamPipe_thickness" value="0.4*cm"/>
-        <constant name="BeamPipe_endThickness" value="0.1*cm"/>
-        <constant name="BeamPipe_zmax" value="LumiCal_zmin - 0.5*cm"/>
-        <constant name="BeamPipe_rmax" value="19.0*cm"/>
-        <constant name="BeamPipe_rmin" value="BeamPipe_rmax - BeamPipe_thickness"/>
-        <constant name="bp_cone_slope" value="(BeamPipe_rmax-CentralBeamPipe_rmax)/(tracking_region_zmax-CentralBeamPipe_zmax)"/>
-        <constant name="BeamPipe_zmin" value="CentralBeamPipe_zmax + (BeamPipe_thickness - CentralBeamPipe_thickness)/bp_cone_slope"/>
-        <constant name="BeamPipeLiner_thickness" value="0.0*cm"/>
-        
-        <constant name="VertexEndcap_rmax" value="11.5*cm"/>
-        <constant name="VertexEndcap_z1" value="12.0*cm"/>
-        <constant name="VertexEndcap_z2" value="16.0*cm"/>
-        <constant name="VertexEndcap_z3" value="20.0*cm"/>
-        <constant name="VertexEndcap_z4" value="24.0*cm"/>
-        <constant name="VertexEndcap_offset" value="0.2*cm"/>
-        <constant name="VertexEndcapModules" value="16"/>
-        <constant name="VertexEndcap_rmin1" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin2" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin3" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin4" value="(VertexEndcap_z4 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        
-        <constant name="ForwardTracker_rmax" value="16.87*cm"/>
-        <constant name="ForwardTracker_z1" value="28.0*cm"/>
-        <constant name="ForwardTracker_z2" value="50.0*cm"/>
-        <constant name="ForwardTracker_z3" value="83.0*cm"/>
-        <constant name="ForwardTracker_offset" value="0.2*cm"/>
-        <constant name="ForwardTrackerModules" value="16"/>
-        <constant name="ForwardTracker_rmin1" value="(ForwardTracker_z1 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin2" value="(ForwardTracker_z2 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin3" value="(ForwardTracker_z3 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        
-        <constant name="VertexService_zmin" value="ForwardTracker_z1 + 1.0*cm"/>
-        <constant name="VertexService_zmax" value="VertexService_zmin + 2.0*cm"/>
-        <constant name="VertexServiceThickness" value="0.3*cm"/>
-        <constant name="VertexCableThickness" value="0.005*cm"/>
-        
-        <constant name="IncomingBP_radius" value="0.25*cm"/>
-        <constant name="IncomingBP_thickness" value="0.05*cm"/>
-        <constant name="OutgoingBP_radius" value="tan(CrossingAngle/2)*BeamCal_zmin"/>
-        <constant name="OutgoingBP_thickness" value="0.1*cm"/>
-        
-    </define>
-    <materials>
-        <material name="TungstenDens23">
-            <D value="17.7" unit="g/cm3"/>
-            <fraction n="0.925" ref="W"/>
-            <fraction n="0.066" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens24">
-            <D value="17.8" unit="g/cm3"/>
-            <fraction n="0.93" ref="W"/>
-            <fraction n="0.061" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens25">
-            <D value="18.2" unit="g/cm3"/>
-            <fraction n="0.950" ref="W"/>
-            <fraction n="0.044" ref="Ni"/>
-            <fraction n="0.006" ref="Fe"/>
-        </material>
-        <material name="CarbonFiber_25percent">
-            <D type="density" value="0.375" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="CarbonFiber_15percent">
-            <D type="density" value="0.225" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="Rohacell31_50percent">
-            <D type="density" value="0.016" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="Rohacell31_15percent">
-            <D type="density" value="0.0048" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="BoratedPolyethylene5">
-            <D value="0.93" unit="g/cm3"/>
-            <fraction n="0.612" ref="C"/>
-            <fraction n="0.222" ref="O"/>
-            <fraction n="0.116" ref="H"/>
-            <fraction n="0.050" ref="B"/>
-        </material>
-        <material name="SiliconCarbide">
-            <D value="3.1" unit="g/cm3"/>
-            <composite n="1" ref="Si"/>
-            <composite n="1" ref="C"/>
-        </material> 
-        <material name="SiliconCarbide_6percent">
-            <D value="0.186" unit="g/cm3"/>
-            <fraction n="1.0" ref="SiliconCarbide"/>
-        </material>
-        <material name="Graphite">
-        	<D value="1.7" unit="g/cm3"/>
-        	<composite n="1" ref="C"/>
-        </material>      
-    </materials>
-    <limits>
-        <limitset name="cal_limits">
-            <limit name="step_length_max" particles="*" value="5.0" unit="mm" />
-        </limitset>
-    </limits>
-
-
-    <display>
-        <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
-        <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
-
-        <vis name="MuonBarrelVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelStavesVis"    alpha="1" r="0"    g="0.7"  b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelLayerVis"     alpha="1" r="0"    g="1"    b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonBarrelAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
-
-        <vis name="MuonEndcapVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapLayerVis"     alpha="1" r="0"    g="1"    b="0.3"  showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonEndcapAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
-                       
-    </display>
-    <detectors>
-
-        <comment>Calorimeters</comment>
-<!--
-        <detector id="5" name="EcalBarrel" type="EcalBarrel" readout="EcalBarrelHits" vis="EcalBarrelVis" calorimeterType="EM_BARREL">
-            <comment>EM Calorimeter Barrel</comment>
-            <dimensions numsides="(int) CaloSides" rmin="EcalBarrel_rmin" z="EcalBarrel_zmax*2" />
-            <staves vis="EcalBarrelStaveVis"/>
-            <layer repeat="1">
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>      
-            <layer repeat="20">
-                <slice material = "TungstenDens24" thickness = "0.25*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-            <layer repeat="10">
-                <slice material = "TungstenDens24" thickness = "0.5*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-        </detector>
-
-        <detector id="6" name="EcalEndcap" type="PolyhedraEndcapCalorimeter2" reflect="true" readout="EcalEndcapHits" vis="EcalEndcapVis" calorimeterType="EM_ENDCAP">
-            <comment>EM Calorimeter Endcaps</comment>
-            <dimensions numsides="(int) CaloSides" zmin="EcalEndcap_zmin" rmin="EcalEndcap_rmin" rmax="EcalEndcap_rmax" />
-            <layer repeat="1">
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>       
-            <layer repeat="20">
-                <slice material = "TungstenDens24" thickness = "0.25*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-            <layer repeat="10">
-                <slice material = "TungstenDens24" thickness = "0.5*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-        </detector>
--->
-
-        <detector id="10" name="MuonBarrel" type="PolyhedraBarrelCalorimeter2" readout="MuonBarrelHits" vis="MuonBarrelVis" calorimeterType="MUON_BARREL" gap="0.*cm" material="Steel235">
-            <comment>Muon Calorimeter Barrel</comment>
-            <dimensions numsides="(int) MuonSides" rmin="MuonBarrel_rmin" z="MuonBarrel_zmax * 2"/>
-            <staves vis="MuonBarrelStavesVis"/>
-            <!-- Start with an active layer, followed by a thin 5.0cm absorber layer. The second active layer is followed by a thick 20.0cm steel layer to take the forces. -->
-            <layer repeat="1" vis="MuonBarrelLayerVis">
-            	<slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="5.0*cm" vis="MuonBarrelAbsorberVis"/>
-           </layer>
-           <layer repeat="1" vis="MuonBarrelLayerVis">
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
-            <layer repeat="(int) MuonBarrel_layers" vis="MuonBarrelLayerVis">
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="10.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
-            <!-- The last Iron layer is again 20.0cm to take the forces. -->
-            <layer repeat="1" vis="MuonBarrelLayerVis">
-            	<slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-            	<slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
-        </detector>
-
-<!--
-        <detector id="11" name="MuonEndcap" type="PolyhedraEndcapCalorimeter2" readout="MuonEndcapHits" reflect="true" vis="MuonEndcapVis" calorimeterType="MUON_ENDCAP">
-            <comment>Muon Calorimeter Endcaps</comment>
-            <dimensions numsides="(int) MuonSides" zmin="MuonEndcap_zmin" rmin="MuonEndcap_rmin" rmax="MuonEndcap_rmax" />
-            <layer repeat="(int) MuonEndcap_layers" vis="MuonEndcapLayerVis">
-                <slice material="Iron" thickness="10.0*cm"  vis="MuonEndcapAbsorberVis"/>
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-            </layer>
-        </detector>
--->
-    </detectors>
-
-    <readouts>
-
-        <readout name="MuonBarrelHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-<!--
-        <readout name="EcalBarrelHits">
-            <segmentation type="EcalBarrelCartesianGridXY" gridSizeX="3.5" gridSizeY="3.5" />
-            <id>system:6,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>        
-        <readout name="EcalEndcapHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.5" gridSizeY="3.5" />
-            <id>system:6,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>
-
-        <readout name="MuonEndcapHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>  
--->
-    </readouts>
-
-    <fields>
-        <field name="GlobalSolenoid" type="solenoid" 
-          inner_field="5.0*tesla"
-          outer_field="-1.5*tesla" 
-          zmax="SolenoidCoilOuterZ"
-          outer_radius="SolenoidalFieldRadius">
-        </field>
-    </fields>
-</lccdd>
diff --git a/examples/CLICSiD/compact/VertexBarrel.xml b/examples/CLICSiD/compact/VertexBarrel.xml
deleted file mode 100644
index 8e653fc5ad7a33bb1ebbc431ee7eac820f6baae0..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/compact/VertexBarrel.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-        <detector id="1" name="SiVertexBarrel" type="SiTrackerBarrel" readout="SiVertexBarrelHits" insideTrackingVolume="true">
-            <comment>Vertex Detector Barrel</comment>
-            <module name="VtxBarrelModuleInner" vis="SiVertexBarrelModuleVis">
-                <module_envelope width="10.0*mm" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6*mm"/>
-                <module_component width="7.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false" vis="SiVertexPassiveVis">
-                    <position z="-0.12*mm"/>
-                </module_component>
-                <module_component width="9.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true" vis="SiVertexSensitiveVis">
-                    <position z="0.225*mm"/>
-                </module_component>
-            </module>
-            <module name="VtxBarrelModuleOuter" vis="SiVertexBarrelModuleVis">
-                <module_envelope width="14.0*mm" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6*mm"/>
-                <module_component width="11.6*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false" vis="SiVertexPassiveVis">
-                    <position z="-0.12*mm"/>
-                </module_component>
-                <module_component width="13.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true" vis="SiVertexSensitiveVis">
-                    <position z="0.210*mm"/>
-                </module_component>
-            </module>
-            <layer module="VtxBarrelModuleInner" id="1" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r1 - 0.2*cm" outer_r="VertexBarrel_r1 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0*rad" nphi="18" phi0="0.2618*rad" rc="VertexBarrel_r1" dr="-1.15*mm"/>
-                <z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="2" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r2 - 0.2*cm" outer_r="VertexBarrel_r2 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0*rad" nphi="18" phi0="0.2618*rad" rc="VertexBarrel_r2" dr="-1.13*mm"/>
-                <z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="3" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r3 - 0.2*cm" outer_r="VertexBarrel_r3 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0*rad" nphi="24" phi0="0.0*rad" rc="VertexBarrel_r3" dr="-0.89*mm"/>
-                <z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="4" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r4 - 0.2*cm" outer_r="VertexBarrel_r4 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0*rad" nphi="30" phi0="0.1309*rad" rc="VertexBarrel_r4" dr="0.81*mm"/>
-                <z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="5" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r5 - 0.2*cm" outer_r="VertexBarrel_r5 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0*rad" nphi="36" phi0="0.0*rad" rc="VertexBarrel_r5" dr="0.77*mm"/>
-                <z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
-            </layer>
-        </detector>
-
diff --git a/examples/CLICSiD/compact/compact.xml b/examples/CLICSiD/compact/compact.xml
index 58749eb4aa59738ce7362295bbb41e36553a0fed..3c5505649c52839091e3e59b72eae170a83184c4 100644
--- a/examples/CLICSiD/compact/compact.xml
+++ b/examples/CLICSiD/compact/compact.xml
@@ -1,1550 +1,1590 @@
 <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">
+       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
 
-    <info name="clic_sid_cdr"
+  <info name="clic_sid_cdr"
         title="CLIC Silicon Detector CDR"
         author="Christian Grefe"
         url="https://twiki.cern.ch/twiki/bin/view/CLIC/ClicSidCdr"
         status="development"
         version="$Id$">
-        <comment>The compact format for the CLIC Silicon Detector used for the conceptual design report</comment>        
-    </info>
+    <comment>The compact format for the CLIC Silicon Detector used for the conceptual design report</comment>        
+  </info>
 
-    <includes>
-        <gdmlFile  ref="elements.xml"/>
-        <gdmlFile  ref="materials.xml"/>
-        <pyBuilder ref="../drivers"/>
-    </includes>
+  <includes>
+    <gdmlFile  ref="elements.xml"/>
+    <gdmlFile  ref="materials.xml"/>
+    <pyBuilder ref="../drivers"/>
+  </includes>
+  
+  <define>
+    <constant name="world_side" value="30000*mm"/>
+    <constant name="world_x" value="world_side"/>
+    <constant name="world_y" value="world_side"/>
+    <constant name="world_z" value="world_side"/>
     
-    <define>
-        <constant name="world_side" value="30000*mm"/>
-        <constant name="world_x" value="world_side"/>
-        <constant name="world_y" value="world_side"/>
-        <constant name="world_z" value="world_side"/>
-        
-        <constant name="CrossingAngle" value="0.020*rad"/>
-        
-        <constant name="CaloSides" value="12"/>
-        <constant name="MuonSides" value="8"/>
-        
-        <constant name="EcalBarrel_rmin" value="126.50*cm + world_side - world_side"/>
-        <constant name="EcalBarrel_rmin" value="126.50*cm"/>
-        <constant name="EcalBarrel_zmax" value="176.50*cm"/>
-        <constant name="EcalEndcap_rmin" value="21.0*cm"/>
-	<!-- Correction from going from inner circle to outer circle -->
-        <constant name="EcalEndcap_rmax" value="(EcalBarrel_rmin - 1.5*cm) / (cos(pi/CaloSides))"/> 
-        <constant name="EcalEndcap_zmin" value="165.70*cm"/>
-        
-        <constant name="HcalBarrel_rmin" value="141.90*cm"/>
-        <constant name="HcalBarrel_layers" value="(int) 75"/>
-        <constant name="HcalBarrel_layer_thickness" value="1.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmin" value="EcalBarrel_zmax + 4.0*cm"/> <!-- Gap for cables -->
-        <constant name="HcalEndcap_rmin" value="50.0*cm"/>
-	<!-- Correction from going from inner circle to outer circle -->
-        <constant name="HcalEndcap_rmax" value="(HcalBarrel_rmin + HcalBarrel_layers * HcalBarrel_layer_thickness) / (cos(pi/CaloSides))"/>
-        <constant name="HcalEndcap_layers" value="60"/>
-        <constant name="HcalEndcap_layer_thickness" value="2.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmax" value="HcalEndcap_zmin + HcalEndcap_layers * HcalEndcap_layer_thickness"/>
-        
-        <constant name="tracking_region_radius" value="EcalBarrel_rmin - 1.0*mm"/>
-        <constant name="tracking_region_zmax" value="EcalEndcap_zmin - 1.0*mm"/>
-        <constant name="VXD_CF_sensor" value="0.026*cm"/>
-        <constant name="VXD_CF_support" value="0.05*cm"/>
-        
-        <constant name="SolenoidBarrelInnerRadius" value="HcalEndcap_rmax + 2.0*cm"/>
-        <constant name="SolenoidCoilOuterZ" value="HcalEndcap_zmax"/> <!-- Aligned with HCAL endcap -->
-        <constant name="SolenoidBarrelInnerCryostatThickness" value="3.0*cm"/>
-        <constant name="SolenoidBarrelInnerAirgapThickness" value="11.0*cm"/>
-        <constant name="SolenoidBarrelAlConductorThickness" value="38.4*cm"/>
-        <constant name="SolenoidBarrelQuenchbackThickness" value="5.0*cm"/>
-        <constant name="SolenoidBarrelOuterAirgapThickness" value="18.7*cm"/>
-        <constant name="SolenoidBarrelOuterCryostatThickness" value="4.0*cm"/>
-        <constant name="SolenoidEndcapCryostatThickness" value="6.0*cm"/>
-        <constant name="SolenoidEndcapAirgapThickness" value="12.0*cm"/>
-        <constant name="SolenoidBarrelOuterZ" value="SolenoidCoilOuterZ+SolenoidEndcapAirgapThickness"/>
-        <constant name="SolenoidBarrelConductorInnerRadius" value="SolenoidBarrelInnerRadius + SolenoidBarrelInnerCryostatThickness + SolenoidBarrelInnerAirgapThickness"/>
-        <constant name="SolenoidBarrelOuterCryostatInnerRadius" value="SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/>
-        <constant name="SolenoidBarrelOuterRadius" value="SolenoidBarrelOuterCryostatInnerRadius + SolenoidBarrelOuterAirgapThickness + SolenoidBarrelOuterCryostatThickness"/>
-        <constant name="SolenoidalFieldRadius" value="(SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness / 2.0)"/>
-        
-        <constant name="MuonBarrel_rmin" value="SolenoidBarrelOuterRadius + 1.0*cm"/>
-        <constant name="MuonBarrel_zmax" value="SolenoidBarrelOuterZ + SolenoidEndcapCryostatThickness"/>
-        <constant name="MuonBarrel_layers" value="15"/>
-        <constant name="MuonBarrel_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmin" value="MuonBarrel_zmax + 10.0*cm"/> <!-- Space for cables etc. -->
-        <constant name="MuonEndcap_rmin" value="69.0*cm"/> <!-- Space for QD0 and anti-solenoid-->
-	<!-- Correction from going from inner circle to outer circle -->
-        <constant name="MuonEndcap_rmax" value="(MuonBarrel_rmin + 57.0*cm + MuonBarrel_layers * MuonBarrel_layer_thickness) / (cos(pi/MuonSides))"/> 
-        <constant name="MuonEndcap_layers" value="18"/>
-        <constant name="MuonEndcap_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmax" value="MuonEndcap_zmin + MuonEndcap_layers * MuonEndcap_layer_thickness"/>
-        
-        <constant name="LumiCal_rmin" value="6.4*cm"/>
-        <constant name="LumiCal_rmax" value="EcalEndcap_rmin + 3.0*cm"/>
-        <constant name="LumiCal_zmin" value="HcalEndcap_zmin"/>
-        <constant name="LumiCal_thickness" value="20*0.371*cm + 15*0.643*cm"/>
-        <constant name="LumiCal_zmax" value="LumiCal_zmin + LumiCal_thickness"/>
-        <constant name="LumiCalElectronics_rmax" value="LumiCal_rmax+5.0*cm"/>
-        
-        <constant name="SupportTube_thickness" value="1.0*cm"/>
-        <constant name="ForwardVacuumValve_thickness" value="36.0*cm"/>
-        <constant name="ForwardShielding_thickness" value="5.0*cm"/>
-        <constant name="ForwardMask_thickness" value="10.0*cm"/>
-        <constant name="ForwardMask_zmin" value="LumiCal_zmax + ForwardShielding_thickness + ForwardVacuumValve_thickness"/>
-        <constant name="BeamCal_rmax" value="13.0*cm"/>
-        <constant name="BeamCal_zmin" value="ForwardMask_zmin + ForwardMask_thickness"/>
-        
-        <constant name="VertexSupport_r1" value="16.87*cm"/>
-        <constant name="VertexSupport_r2" value="18.42*cm"/>
-        <constant name="VertexSupport_zmax" value="89.48*cm"/>
-        
-        <constant name="VertexBarrel_zmax" value="10.0*cm"/>
-        <constant name="VertexBarrel_r1" value="2.7*cm"/>
-        <constant name="VertexBarrel_r2" value="3.8*cm"/>
-        <constant name="VertexBarrel_r3" value="5.1*cm"/>
-        <constant name="VertexBarrel_r4" value="6.4*cm"/>
-        <constant name="VertexBarrel_r5" value="7.7*cm"/>
-        
-        <constant name="CentralBeamPipe_zmax" value="23.0*cm"/>
-        <constant name="CentralBeamPipe_rmax" value="VertexBarrel_r1 - 0.2*cm"/>
-        <constant name="CentralBeamPipe_thickness" value="CentralBeamPipe_rmax * 0.02"/> <!-- 1% of the diameter -->
-        <constant name="CentralBeamPipe_rmin" value="CentralBeamPipe_rmax - CentralBeamPipe_thickness"/>
-        <constant name="BeamPipe_thickness" value="0.4*cm"/>
-        <constant name="BeamPipe_endThickness" value="0.1*cm"/>
-        <constant name="BeamPipe_zmax" value="LumiCal_zmin - 0.5*cm"/>
-        <constant name="BeamPipe_rmax" value="19.0*cm"/>
-        <constant name="BeamPipe_rmin" value="BeamPipe_rmax - BeamPipe_thickness"/>
-        <constant name="bp_cone_slope" value="(BeamPipe_rmax-CentralBeamPipe_rmax)/(tracking_region_zmax-CentralBeamPipe_zmax)"/>
-        <constant name="BeamPipe_zmin" value="CentralBeamPipe_zmax + (BeamPipe_thickness - CentralBeamPipe_thickness)/bp_cone_slope"/>
-        <constant name="BeamPipeLiner_thickness" value="0.0*cm"/>
-        
-        <constant name="VertexEndcap_rmax" value="11.5*cm"/>
-        <constant name="VertexEndcap_z1" value="12.0*cm"/>
-        <constant name="VertexEndcap_z2" value="16.0*cm"/>
-        <constant name="VertexEndcap_z3" value="20.0*cm"/>
-        <constant name="VertexEndcap_z4" value="24.0*cm"/>
-        <constant name="VertexEndcap_offset" value="0.2*cm"/>
-        <constant name="VertexEndcapModules" value="16"/>
-        <constant name="VertexEndcap_rmin1" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin2" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin3" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin4" value="(VertexEndcap_z4 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        
-        <constant name="ForwardTracker_rmax" value="16.87*cm"/>
-        <constant name="ForwardTracker_z1" value="28.0*cm"/>
-        <constant name="ForwardTracker_z2" value="50.0*cm"/>
-        <constant name="ForwardTracker_z3" value="83.0*cm"/>
-        <constant name="ForwardTracker_offset" value="0.2*cm"/>
-        <constant name="ForwardTrackerModules" value="16"/>
-        <constant name="ForwardTracker_rmin1" value="(ForwardTracker_z1 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin2" value="(ForwardTracker_z2 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin3" value="(ForwardTracker_z3 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        
-        <constant name="VertexService_zmin" value="ForwardTracker_z1 + 1.0*cm"/>
-        <constant name="VertexService_zmax" value="VertexService_zmin + 2.0*cm"/>
-        <constant name="VertexServiceThickness" value="0.3*cm"/>
-        <constant name="VertexCableThickness" value="0.005*cm"/>
-        
-        <constant name="IncomingBP_radius" value="0.25*cm"/>
-        <constant name="IncomingBP_thickness" value="0.05*cm"/>
-        <constant name="OutgoingBP_radius" value="tan(CrossingAngle/2/rad)*BeamCal_zmin"/>
-        <constant name="OutgoingBP_thickness" value="0.1*cm"/>
-        
-    </define>
-    <materials>
-        <material name="TungstenDens23">
-            <D value="17.7" unit="g/cm3"/>
-            <fraction n="0.925" ref="W"/>
-            <fraction n="0.066" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens24">
-            <D value="17.8" unit="g/cm3"/>
-            <fraction n="0.93" ref="W"/>
-            <fraction n="0.061" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens25">
-            <D value="18.2" unit="g/cm3"/>
-            <fraction n="0.950" ref="W"/>
-            <fraction n="0.044" ref="Ni"/>
-            <fraction n="0.006" ref="Fe"/>
-        </material>
-        <material name="CarbonFiber_25percent">
-            <D type="density" value="0.375" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="CarbonFiber_15percent">
-            <D type="density" value="0.225" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="Rohacell31_50percent">
-            <D type="density" value="0.016" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="Rohacell31_15percent">
-            <D type="density" value="0.0048" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="BoratedPolyethylene5">
-            <D value="0.93" unit="g/cm3"/>
-            <fraction n="0.612" ref="C"/>
-            <fraction n="0.222" ref="O"/>
-            <fraction n="0.116" ref="H"/>
-            <fraction n="0.050" ref="B"/>
-        </material>
-        <material name="SiliconCarbide">
-            <D value="3.1" unit="g/cm3"/>
-            <composite n="1" ref="Si"/>
-            <composite n="1" ref="C"/>
-        </material> 
-        <material name="SiliconCarbide_6percent">
-            <D value="0.186" unit="g/cm3"/>
-            <fraction n="1.0" ref="SiliconCarbide"/>
-        </material>
-        <material name="Graphite">
-        	<D value="1.7" unit="g/cm3"/>
-        	<composite n="1" ref="C"/>
-        </material>      
-    </materials>
-    <limits>
-        <limitset name="cal_limits">
-            <limit name="step_length_max" particles="*" value="5.0" unit="mm" />
-        </limitset>
-    </limits>
-
-    <display>
-        <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
-        <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
-        <vis name="SiVertexBarrelModuleVis" alpha="1.0" r="1" g="1" b="0.6" drawingStyle="wireframe" showDaughters="true" visible="true"/>
-        <vis name="SiVertexSensitiveVis" alpha="1.0" r="1" g="0.2" b="0.2" drawingStyle="solid" showDaughters="true" visible="true"/>
-        <vis name="SiVertexPassiveVis"   alpha="1.0" r="0" g="0.2" b="1" drawingStyle="solid" showDaughters="true" visible="true"/>
-        <vis name="SiVertexBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="false"/>
-        
-        <vis name="SiVertexEndcapLayerVis" alpha="1.0" r="1" g="0.75" b="0" showDaughters="false" visible="true"/>
+    <constant name="CrossingAngle" value="0.020*rad"/>
+    
+    <constant name="CaloSides" value="12"/>
+    <constant name="MuonSides" value="8"/>
+    
+    <constant name="EcalBarrel_rmin" value="126.50*cm"/>
+    <constant name="EcalBarrel_zmax" value="176.50*cm"/>
+    <constant name="EcalEndcap_rmin" value="21.0*cm"/>
+    <constant name="EcalEndcap_rmax" value="(EcalBarrel_rmin - 1.5*cm) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
+    <constant name="EcalEndcap_zmin" value="165.70*cm"/>
+    
+    <constant name="HcalBarrel_rmin" value="141.90*cm"/>
+    <constant name="HcalBarrel_layers" value="(int) 75"/>
+    <constant name="HcalBarrel_layer_thickness" value="1.0*cm + 0.65*cm"/>
+    <constant name="HcalEndcap_zmin" value="EcalBarrel_zmax + 4.0*cm"/> <!-- Gap for cables -->
+    <constant name="HcalEndcap_rmin" value="50.0*cm"/>
+    <constant name="HcalEndcap_rmax" value="(HcalBarrel_rmin + HcalBarrel_layers * HcalBarrel_layer_thickness) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
+    <constant name="HcalEndcap_layers" value="60"/>
+    <constant name="HcalEndcap_layer_thickness" value="2.0*cm + 0.65*cm"/>
+    <constant name="HcalEndcap_zmax" value="HcalEndcap_zmin + HcalEndcap_layers * HcalEndcap_layer_thickness"/>
+    
+    <constant name="tracking_region_radius" value="EcalBarrel_rmin - 1.0*mm"/>
+    <constant name="tracking_region_zmax" value="EcalEndcap_zmin - 1.0*mm"/>
+    <constant name="VXD_CF_sensor" value="0.026*cm"/>
+    <constant name="VXD_CF_support" value="0.05*cm"/>
+    
+    <constant name="SolenoidBarrelInnerRadius" value="HcalEndcap_rmax + 2.0*cm"/>
+    <constant name="SolenoidCoilOuterZ" value="HcalEndcap_zmax"/> <!-- Aligned with HCAL endcap -->
+    <constant name="SolenoidBarrelInnerCryostatThickness" value="3.0*cm"/>
+    <constant name="SolenoidBarrelInnerAirgapThickness" value="11.0*cm"/>
+    <constant name="SolenoidBarrelAlConductorThickness" value="38.4*cm"/>
+    <constant name="SolenoidBarrelQuenchbackThickness" value="5.0*cm"/>
+    <constant name="SolenoidBarrelOuterAirgapThickness" value="18.7*cm"/>
+    <constant name="SolenoidBarrelOuterCryostatThickness" value="4.0*cm"/>
+    <constant name="SolenoidEndcapCryostatThickness" value="6.0*cm"/>
+    <constant name="SolenoidEndcapAirgapThickness" value="12.0*cm"/>
+    <constant name="SolenoidBarrelOuterZ" value="SolenoidCoilOuterZ+SolenoidEndcapAirgapThickness"/>
+    <constant name="SolenoidBarrelConductorInnerRadius" value="SolenoidBarrelInnerRadius + SolenoidBarrelInnerCryostatThickness + SolenoidBarrelInnerAirgapThickness"/>
+    <constant name="SolenoidBarrelOuterCryostatInnerRadius" value="SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/>
+    <constant name="SolenoidBarrelOuterRadius" value="SolenoidBarrelOuterCryostatInnerRadius + SolenoidBarrelOuterAirgapThickness + SolenoidBarrelOuterCryostatThickness"/>
+    <constant name="SolenoidalFieldRadius" value="(SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness / 2.0)"/>
+    
+    <constant name="MuonBarrel_rmin" value="SolenoidBarrelOuterRadius + 1.0*cm"/>
+    <constant name="MuonBarrel_zmax" value="SolenoidBarrelOuterZ + SolenoidEndcapCryostatThickness"/>
+    <constant name="MuonBarrel_layers" value="15"/>
+    <constant name="MuonBarrel_layer_thickness" value="10.0*cm + 4.0*cm"/>
+    <constant name="MuonEndcap_zmin" value="MuonBarrel_zmax + 10.0*cm"/> <!-- Space for cables etc. -->
+    <constant name="MuonEndcap_rmin" value="69.0*cm"/> <!-- Space for QD0 and anti-solenoid-->
+    <constant name="MuonEndcap_rmax" value="(MuonBarrel_rmin + 57.0*cm + MuonBarrel_layers * MuonBarrel_layer_thickness) / (cos(pi/MuonSides))"/> <!-- Correction from going from inner circle to outer circle -->
+    <constant name="MuonEndcap_layers" value="18"/>
+    <constant name="MuonEndcap_layer_thickness" value="10.0*cm + 4.0*cm"/>
+    <constant name="MuonEndcap_zmax" value="MuonEndcap_zmin + MuonEndcap_layers * MuonEndcap_layer_thickness"/>
+    
+    <constant name="LumiCal_rmin" value="6.4*cm"/>
+    <constant name="LumiCal_rmax" value="EcalEndcap_rmin + 3.0*cm"/>
+    <constant name="LumiCal_zmin" value="HcalEndcap_zmin"/>
+    <constant name="LumiCal_thickness" value="20*0.371*cm + 15*0.643*cm"/>
+    <constant name="LumiCal_zmax" value="LumiCal_zmin + LumiCal_thickness"/>
+    <constant name="LumiCalElectronics_rmax" value="LumiCal_rmax+5.0*cm"/>
+    
+    <constant name="SupportTube_thickness" value="1.0*cm"/>
+    <constant name="ForwardVacuumValve_thickness" value="36.0*cm"/>
+    <constant name="ForwardShielding_thickness" value="5.0*cm"/>
+    <constant name="ForwardMask_thickness" value="10.0*cm"/>
+    <constant name="ForwardMask_zmin" value="LumiCal_zmax + ForwardShielding_thickness + ForwardVacuumValve_thickness"/>
+    <constant name="BeamCal_rmax" value="13.0*cm"/>
+    <constant name="BeamCal_zmin" value="ForwardMask_zmin + ForwardMask_thickness"/>
+    
+    <constant name="VertexSupport_r1" value="16.87*cm"/>
+    <constant name="VertexSupport_r2" value="18.42*cm"/>
+    <constant name="VertexSupport_zmax" value="89.48*cm"/>
+    
+    <constant name="VertexBarrel_zmax" value="10.0*cm"/>
+    <constant name="VertexBarrel_r1" value="2.7*cm"/>
+    <constant name="VertexBarrel_r2" value="3.8*cm"/>
+    <constant name="VertexBarrel_r3" value="5.1*cm"/>
+    <constant name="VertexBarrel_r4" value="6.4*cm"/>
+    <constant name="VertexBarrel_r5" value="7.7*cm"/>
+    
+    <constant name="CentralBeamPipe_zmax" value="23.0*cm"/>
+    <constant name="CentralBeamPipe_rmax" value="VertexBarrel_r1 - 0.2*cm"/>
+    <constant name="CentralBeamPipe_thickness" value="CentralBeamPipe_rmax * 0.02"/> <!-- 1% of the diameter -->
+    <constant name="CentralBeamPipe_rmin" value="CentralBeamPipe_rmax - CentralBeamPipe_thickness"/>
+    <constant name="BeamPipe_thickness" value="0.4*cm"/>
+    <constant name="BeamPipe_endThickness" value="0.1*cm"/>
+    <constant name="BeamPipe_zmax" value="LumiCal_zmin - 0.5*cm"/>
+    <constant name="BeamPipe_rmax" value="19.0*cm"/>
+    <constant name="BeamPipe_rmin" value="BeamPipe_rmax - BeamPipe_thickness"/>
+    <constant name="bp_cone_slope" value="(BeamPipe_rmax-CentralBeamPipe_rmax)/(tracking_region_zmax-CentralBeamPipe_zmax)"/>
+    <constant name="BeamPipe_zmin" value="CentralBeamPipe_zmax + (BeamPipe_thickness - CentralBeamPipe_thickness)/bp_cone_slope"/>
+    <constant name="BeamPipeLiner_thickness" value="0.0*cm"/>
+    
+    <constant name="VertexEndcap_rmax" value="11.5*cm"/>
+    <constant name="VertexEndcap_z1" value="12.0*cm"/>
+    <constant name="VertexEndcap_z2" value="16.0*cm"/>
+    <constant name="VertexEndcap_z3" value="20.0*cm"/>
+    <constant name="VertexEndcap_z4" value="24.0*cm"/>
+    <constant name="VertexEndcap_offset" value="0.2*cm"/>
+    <constant name="VertexEndcapModules" value="16"/>
+    <constant name="VertexEndcap_rmin1" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
+    <constant name="VertexEndcap_rmin2" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
+    <constant name="VertexEndcap_rmin3" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
+    <constant name="VertexEndcap_rmin4" value="(VertexEndcap_z4 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset"/>
+    
+    <constant name="ForwardTracker_rmax" value="16.87*cm"/>
+    <constant name="ForwardTracker_z1" value="28.0*cm"/>
+    <constant name="ForwardTracker_z2" value="50.0*cm"/>
+    <constant name="ForwardTracker_z3" value="83.0*cm"/>
+    <constant name="ForwardTracker_offset" value="0.2*cm"/>
+    <constant name="ForwardTrackerModules" value="16"/>
+    <constant name="ForwardTracker_rmin1" value="(ForwardTracker_z1 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
+    <constant name="ForwardTracker_rmin2" value="(ForwardTracker_z2 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
+    <constant name="ForwardTracker_rmin3" value="(ForwardTracker_z3 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
+    
+    <constant name="VertexService_zmin" value="ForwardTracker_z1 + 1.0*cm"/>
+    <constant name="VertexService_zmax" value="VertexService_zmin + 2.0*cm"/>
+    <constant name="VertexServiceThickness" value="0.3*cm"/>
+    <constant name="VertexCableThickness" value="0.005*cm"/>
+    
+    <constant name="IncomingBP_radius" value="0.25*cm"/>
+    <constant name="IncomingBP_thickness" value="0.05*cm"/>
+    <constant name="OutgoingBP_radius" value="tan(CrossingAngle/2/rad)*BeamCal_zmin"/>
+    <constant name="OutgoingBP_thickness" value="0.1*cm"/>
+    
+  </define>
+  <materials>
+    <material name="TungstenDens23">
+      <D value="17.7" unit="g/cm3"/>
+      <fraction n="0.925" ref="W"/>
+      <fraction n="0.066" ref="Ni"/>
+      <fraction n="0.009" ref="Fe"/>
+    </material>
+    <material name="TungstenDens24">
+      <D value="17.8" unit="g/cm3"/>
+      <fraction n="0.93" ref="W"/>
+      <fraction n="0.061" ref="Ni"/>
+      <fraction n="0.009" ref="Fe"/>
+    </material>
+    <material name="TungstenDens25">
+      <D value="18.2" unit="g/cm3"/>
+      <fraction n="0.950" ref="W"/>
+      <fraction n="0.044" ref="Ni"/>
+      <fraction n="0.006" ref="Fe"/>
+    </material>
+    <material name="CarbonFiber_25percent">
+      <D type="density" value="0.375" unit="g/cm3"/>
+      <fraction n="1.0" ref="CarbonFiber"/>
+    </material>
+    <material name="CarbonFiber_15percent">
+      <D type="density" value="0.225" unit="g/cm3"/>
+      <fraction n="1.0" ref="CarbonFiber"/>
+    </material>
+    <material name="Rohacell31_50percent">
+      <D type="density" value="0.016" unit="g/cm3"/>
+      <fraction n="1.0" ref="Rohacell31"/>
+    </material>
+    <material name="Rohacell31_15percent">
+      <D type="density" value="0.0048" unit="g/cm3"/>
+      <fraction n="1.0" ref="Rohacell31"/>
+    </material>
+    <material name="BoratedPolyethylene5">
+      <D value="0.93" unit="g/cm3"/>
+      <fraction n="0.612" ref="C"/>
+      <fraction n="0.222" ref="O"/>
+      <fraction n="0.116" ref="H"/>
+      <fraction n="0.050" ref="B"/>
+    </material>
+    <material name="SiliconCarbide">
+      <D value="3.1" unit="g/cm3"/>
+      <composite n="1" ref="Si"/>
+      <composite n="1" ref="C"/>
+    </material> 
+    <material name="SiliconCarbide_6percent">
+      <D value="0.186" unit="g/cm3"/>
+      <fraction n="1.0" ref="SiliconCarbide"/>
+    </material>
+    <material name="Graphite">
+      <D value="1.7" unit="g/cm3"/>
+      <composite n="1" ref="C"/>
+    </material>      
+  </materials>
+  <limits>
+    <limitset name="cal_limits">
+      <limit name="step_length_max" particles="*" value="5.0" unit="mm" />
+    </limitset>
+  </limits>
 
-        <vis name="SiTrackerBarrelModuleVis" alpha="1.0" r="0" g="1" b="0.6" drawingStyle="wireframe" showDaughters="false" visible="true"/>
-        <vis name="SiTrackerBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="true"/>
-        
-        <vis name="SiTrackerEndcapModuleVis" alpha="0.1" r="0.8" g="1.0" b="0.1" drawingStyle="wireframe" showDaughters="false" visible="true"/>        
-            
-        <vis name="SiTrackerForwardVis" alpha="1.0" r="0.8" g="0.1" b="0.1" showDaughters="false" visible="true"/>
-            
-        <vis name="EcalBarrelVis" alpha="1.0" r="0" g="0" b="0.3" showDaughters="true" visible="true"/>
-        <vis name="EcalBarrelStaveVis" alpha="1.0" r="1" g="0.9" b="0.5" showDaughters="false" visible="true"/>
+  <display>
+    <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
+    <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
+    <vis name="SiVertexBarrelModuleVis" alpha="1.0" r="1" g="1" b="0.6" drawingStyle="wireframe" showDaughters="true" visible="true"/>
+    <vis name="SiVertexSensitiveVis" alpha="1.0" r="1" g="0.2" b="0.2" drawingStyle="solid" showDaughters="true" visible="true"/>
+    <vis name="SiVertexPassiveVis"   alpha="1.0" r="0" g="0.2" b="1" drawingStyle="solid" showDaughters="true" visible="true"/>
+    <vis name="SiVertexBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="false"/>
+    
+    <vis name="SiVertexEndcapLayerVis" alpha="1.0" r="1" g="0.75" b="0" showDaughters="false" visible="true"/>
 
-        <vis name="EcalEndcapVis"       alpha="1" r="0.77" g="0.74" b="0.86" showDaughters="false" visible="true"/>
+    <vis name="SiTrackerBarrelModuleVis" alpha="1.0" r="0" g="1" b="0.6" drawingStyle="wireframe" showDaughters="false" visible="true"/>
+    <vis name="SiTrackerBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="true"/>
+    
+    <vis name="SiTrackerEndcapModuleVis" alpha="0.1" r="0.8" g="1.0" b="0.1" drawingStyle="wireframe" showDaughters="false" visible="true"/>        
+    
+    <vis name="SiTrackerForwardVis" alpha="1.0" r="0.8" g="0.1" b="0.1" showDaughters="false" visible="true"/>
+    
+    <vis name="EcalBarrelVis" alpha="1.0" r="0" g="0" b="0.3" showDaughters="true" visible="true"/>
+    <vis name="EcalBarrelStaveVis" alpha="1.0" r="1" g="0.9" b="0.5" showDaughters="false" visible="true"/>
 
-        <vis name="HcalBarrelVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelStavesVis"    alpha="1" r="1"    g="0"    b="0.3" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelSensorVis"    alpha="1" r="1"    g="1"    b="0.7" showDaughters="true" visible="true"/>
+    <vis name="EcalEndcapVis"       alpha="1" r="0.77" g="0.74" b="0.86" showDaughters="false" visible="true"/>
 
-        <vis name="HcalEndcapVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="false" visible="true"/>
-        <vis name="HcalEndcapLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="false" visible="true"/>
-        
-        <vis name="SolenoidBarrelLayerVis" alpha="1" r="0"    g="0.3"  b="0.3" showDaughters="false" visible="true"/>
-        <vis name="SolenoidCoilEndsVis"    alpha="1" r="0"    g="0.9"  b="0.9" showDaughters="false" visible="true"/>
-        <vis name="AntiSolenoidVis"        alpha="1" r="0.3"  g="1"    b="1"   showDaughters="false" visible="true"/>
+    <vis name="HcalBarrelVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="true" visible="true"/>
+    <vis name="HcalBarrelStavesVis"    alpha="1" r="1"    g="0"    b="0.3" showDaughters="true" visible="true"/>
+    <vis name="HcalBarrelLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="true" visible="true"/>
+    <vis name="HcalBarrelSensorVis"    alpha="1" r="1"    g="1"    b="0.7" showDaughters="true" visible="true"/>
 
-        <vis name="MuonBarrelVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelStavesVis"    alpha="1" r="0"    g="0.7"  b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelLayerVis"     alpha="1" r="0"    g="1"    b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonBarrelAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
+    <vis name="HcalEndcapVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="false" visible="true"/>
+    <vis name="HcalEndcapLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="false" visible="true"/>
+    
+    <vis name="SolenoidBarrelLayerVis" alpha="1" r="0"    g="0.3"  b="0.3" showDaughters="false" visible="true"/>
+    <vis name="SolenoidCoilEndsVis"    alpha="1" r="0"    g="0.9"  b="0.9" showDaughters="false" visible="true"/>
+    <vis name="AntiSolenoidVis"        alpha="1" r="0.3"  g="1"    b="1"   showDaughters="false" visible="true"/>
 
-        <vis name="MuonEndcapVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapLayerVis"     alpha="1" r="0"    g="1"    b="0.3"  showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonEndcapAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
-                       
-        
-        <vis name="BeamPipeVis" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true"/>
-        <vis name="CableVis" showDaughters="false" visible="true"/>
-        
-        <vis name="SupportTubeVis" r="0.1" g="0.1" b="0.99" showDaughters="false" visible="true"/>
-        <vis name="TungstenShieldingVis" r="0.99" g="0.1" b="0.2" showDaughters="false" visible="true"/>
-        
-        <vis name="SupportVis" r="0.8" g="0.8" b="0" showDaughters="false" visible="true"/>
-        <vis name="LumiCalVis" showDaughters="false" visible="true"/>
-        <vis name="GreenVis" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
-        <vis name="RedVis" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
-        <vis name="BlueVis" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
-    </display>
+    <vis name="MuonBarrelVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
+    <vis name="MuonBarrelStavesVis"    alpha="1" r="0"    g="0.7"  b="0.3" showDaughters="true" visible="true"/>
+    <vis name="MuonBarrelLayerVis"     alpha="1" r="0"    g="1"    b="0.3" showDaughters="true" visible="true"/>
+    <vis name="MuonBarrelSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
+    <vis name="MuonBarrelAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
 
+    <vis name="MuonEndcapVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
+    <vis name="MuonEndcapLayerVis"     alpha="1" r="0"    g="1"    b="0.3"  showDaughters="true" visible="true"/>
+    <vis name="MuonEndcapSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
+    <vis name="MuonEndcapAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
+    
+    
+    <vis name="BeamPipeVis" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true"/>
+    <vis name="CableVis" showDaughters="false" visible="true"/>
+    
+    <vis name="SupportTubeVis" r="0.1" g="0.1" b="0.99" showDaughters="false" visible="true"/>
+    <vis name="TungstenShieldingVis" r="0.99" g="0.1" b="0.2" showDaughters="false" visible="true"/>
+    
+    <vis name="SupportVis" r="0.8" g="0.8" b="0" showDaughters="false" visible="true"/>
+    <vis name="LumiCalVis" showDaughters="false" visible="true"/>
+    <vis name="GreenVis" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
+    <vis name="RedVis" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
+    <vis name="BlueVis" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
+  </display>
 
 
-    <detectors>
 
-        <comment>Trackers</comment> 
-	<include ref="VertexBarrel.xml"/>
+  <detectors>
 
-        <comment>Vertex Detector Endcaps</comment>
-        <detector id="2" name="SiVertexEndcap" type="SiTrackerEndcap2" readout="SiVertexEndcapHits" reflect="true">    
-            <module name="SiVertexEndcapModule1">
-                <trd x1="VertexEndcap_rmin1 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin1) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
-                <module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
-            </module>
-            <module name="SiVertexEndcapModule2">
-                <trd x1="VertexEndcap_rmin2 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin2) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
-                <module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
-            </module>
-            <module name="SiVertexEndcapModule3">
-                <trd x1="VertexEndcap_rmin3 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin3) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
-                <module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
-            </module>
-            <module name="SiVertexEndcapModule4">
-                <trd x1="VertexEndcap_rmin4 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin4) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
-                <module_component thickness="0.013*cm"   material="Carbon"  vis="SiVertexPassiveVis"/>
-            </module>
-            <layer id="1"  vis="SiVertexEndcapLayerVis">
-                <ring r="(VertexEndcap_rmax + VertexEndcap_rmin1) / 2" zstart="VertexEndcap_z1" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule1"/>
-            </layer>
-            <layer id="2"  vis="SiVertexEndcapLayerVis">
-                <ring r="(VertexEndcap_rmax + VertexEndcap_rmin2) / 2" zstart="VertexEndcap_z2" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule2"/>
-            </layer>
-            <layer id="3"  vis="SiVertexEndcapLayerVis">
-                <ring r="(VertexEndcap_rmax + VertexEndcap_rmin3) / 2" zstart="VertexEndcap_z3" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule3"/>
-            </layer>
-            <layer id="4"  vis="SiVertexEndcapLayerVis">
-                <ring r="(VertexEndcap_rmax + VertexEndcap_rmin4) / 2" zstart="VertexEndcap_z4" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule4"/>
-            </layer>
-        </detector> 
+    <comment>Trackers</comment> 
+    <detector id="1" name="SiVertexBarrel" type="DD4hep_SiTrackerBarrel" readout="SiVertexBarrelHits" insideTrackingVolume="true">
+      <comment>Vertex Detector Barrel</comment>
+      <module name="VtxBarrelModuleInner" vis="SiVertexBarrelModuleVis">
+	<module_envelope width="10.0*mm" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6*mm"/>
+	<module_component width="7.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false" vis="SiVertexPassiveVis">
+	  <position z="-0.12*mm"/>
+	</module_component>
+	<module_component width="9.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true" vis="SiVertexSensitiveVis">
+	  <position z="0.225*mm"/>
+	</module_component>
+      </module>
+      <module name="VtxBarrelModuleOuter" vis="SiVertexBarrelModuleVis">
+	<module_envelope width="14.0*mm" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6*mm"/>
+	<module_component width="11.6*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false" vis="SiVertexPassiveVis">
+	  <position z="-0.12*mm"/>
+	</module_component>
+	<module_component width="13.8*mm" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true" vis="SiVertexSensitiveVis">
+	  <position z="0.210*mm"/>
+	</module_component>
+      </module>
+      <layer module="VtxBarrelModuleInner" id="1" vis="SiVertexBarrelLayerVis">
+	<barrel_envelope inner_r="VertexBarrel_r1 - 0.2*cm" outer_r="VertexBarrel_r1 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
+	<rphi_layout phi_tilt="0.0*rad" nphi="18" phi0="0.2618*rad" rc="VertexBarrel_r1" dr="-1.15*mm"/>
+	<z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
+      </layer>
+      <layer module="VtxBarrelModuleOuter" id="2" vis="SiVertexBarrelLayerVis">
+	<barrel_envelope inner_r="VertexBarrel_r2 - 0.2*cm" outer_r="VertexBarrel_r2 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
+	<rphi_layout phi_tilt="0.0*rad" nphi="18" phi0="0.2618*rad" rc="VertexBarrel_r2" dr="-1.13*mm"/>
+	<z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
+      </layer>
+      <layer module="VtxBarrelModuleOuter" id="3" vis="SiVertexBarrelLayerVis">
+	<barrel_envelope inner_r="VertexBarrel_r3 - 0.2*cm" outer_r="VertexBarrel_r3 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
+	<rphi_layout phi_tilt="0.0*rad" nphi="24" phi0="0.0*rad" rc="VertexBarrel_r3" dr="-0.89*mm"/>
+	<z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
+      </layer>
+      <layer module="VtxBarrelModuleOuter" id="4" vis="SiVertexBarrelLayerVis">
+	<barrel_envelope inner_r="VertexBarrel_r4 - 0.2*cm" outer_r="VertexBarrel_r4 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
+	<rphi_layout phi_tilt="0.0*rad" nphi="30" phi0="0.1309*rad" rc="VertexBarrel_r4" dr="0.81*mm"/>
+	<z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
+      </layer>
+      <layer module="VtxBarrelModuleOuter" id="5" vis="SiVertexBarrelLayerVis">
+	<barrel_envelope inner_r="VertexBarrel_r5 - 0.2*cm" outer_r="VertexBarrel_r5 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
+	<rphi_layout phi_tilt="0.0*rad" nphi="36" phi0="0.0*rad" rc="VertexBarrel_r5" dr="0.77*mm"/>
+	<z_layout dr="0.0*mm" z0="0.0*mm" nz="1"/>
+      </layer>
+    </detector>
 
-        <detector id="3" name="SiTrackerBarrel" type="SiTrackerBarrel" readout="SiTrackerBarrelHits">
-            <comment>Outer Tracker Barrel</comment>
-            <module name="SiTrackerModule_Layer1" vis="SiTrackerBarrelModuleVis">                
-                <module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
-                    <position z="-0.14*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="-0.122*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
-                    <position z="-0.024*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
-                    <position z="0.07475*cm" />
-                </module_component>
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="0.0915*cm" />
-                </module_component>                
-                <module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
-                    <position z="0.1145*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
-                    <position z="0.12974*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0038*cm" material="Kapton" sensitive="false">
-                    <position z="0.1375*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00038*cm" material="Copper" sensitive="false">
-                    <position z="0.146*cm"/>
-                </module_component>                
-            </module>
-            <module name="SiTrackerModule_Layer2" vis="SiTrackerBarrelModuleVis">                
-                <module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
-                    <position z="-0.14*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="-0.122*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
-                    <position z="-0.024*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
-                    <position z="0.07475*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="0.0915*cm" />
-                </module_component>                
-                <module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
-                    <position z="0.1145*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
-                    <position z="0.12974*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0051*cm" material="Kapton" sensitive="false">
-                    <position z="0.1375*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00052*cm" material="Copper" sensitive="false">
-                    <position z="0.146*cm"/>
-                </module_component>                
-            </module>
-            <module name="SiTrackerModule_Layer3" vis="SiTrackerBarrelModuleVis">                
-                <module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
-                    <position z="-0.14*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="-0.122*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
-                    <position z="-0.024*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
-                    <position z="0.07475*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="0.0915*cm" />
-                </module_component>                
-                <module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
-                    <position z="0.1145*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
-                    <position z="0.12974*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0064*cm" material="Kapton" sensitive="false">
-                    <position z="0.1375*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00065*cm" material="Copper" sensitive="false">
-                    <position z="0.146*cm"/>
-                </module_component>                
-            </module>
-            <module name="SiTrackerModule_Layer4" vis="SiTrackerBarrelModuleVis">                
-                <module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
-                    <position z="-0.14*cm" />
-                </module_component>               
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="-0.122*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
-                    <position z="-0.024*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
-                    <position z="0.07475*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="0.0915*cm" />
-                </module_component>                
-                <module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
-                    <position z="0.1145*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
-                    <position z="0.12974*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0078*cm" material="Kapton" sensitive="false">
-                    <position z="0.1375*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00079*cm" material="Copper" sensitive="false">
-                    <position z="0.146*cm"/>
-                </module_component>                
-            </module>
-            <module name="SiTrackerModule_Layer5" vis="SiTrackerBarrelModuleVis">                
-                <module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
-                    <position z="-0.14*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="-0.122*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
-                    <position z="-0.024*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
-                    <position z="0.07475*cm" />
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
-                    <position z="0.0915*cm" />
-                </module_component>                
-                <module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
-                    <position z="0.1145*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
-                    <position z="0.12974*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.0091*cm" material="Kapton" sensitive="false">
-                    <position z="0.1375*cm"/>
-                </module_component>                
-                <module_component width="97.79*mm" length="97.79*mm" thickness="0.00093*cm" material="Copper" sensitive="false">
-                    <position z="0.146*cm"/>
-                </module_component>                
-            </module>
-            <layer module="SiTrackerModule_Layer1" id="1" vis="SiTrackerBarrelLayerVis">
-                <barrel_envelope inner_r="215.075*mm" outer_r="245.0*mm" z_length="578 * 2*mm"/>
-                <rphi_layout phi_tilt="0.17506*rad" nphi="20" phi0="0." rc="(216.355 + 5.0)*mm" dr="0.0"/>
-                <z_layout dr="4.0*mm" z0="512.128*mm" nz="13"/>
-            </layer>                
-            <layer module="SiTrackerModule_Layer2" id="2" vis="SiTrackerBarrelLayerVis">
-                <barrel_envelope inner_r="465.075*mm" outer_r="501.0*mm" z_length="749.8 * 2*mm"/>
-                <rphi_layout phi_tilt="0.12217*rad" nphi="38" phi0="0.087*rad" rc="(466.355 + 5.0)*mm" dr="0.0"/>
-                <z_layout dr="4.0*mm" z0="690.605*mm" nz="17"/>
-            </layer>
-            <layer module="SiTrackerModule_Layer3" id="3" vis="SiTrackerBarrelLayerVis">
-                <barrel_envelope inner_r="715.075*mm" outer_r="756.0*mm" z_length="1013.9 * 2*mm"/>
-                <rphi_layout phi_tilt="0.11493*rad" nphi="58" phi0="0.058*rad" rc="(716.355 + 5.0)*mm" dr="0.0"/>
-                <z_layout dr="4.0*mm" z0="954.625*mm" nz="23"/>
-            </layer>            
-            <layer module="SiTrackerModule_Layer4" id="4" vis="SiTrackerBarrelLayerVis">
-                <barrel_envelope inner_r="965.075*mm" outer_r="1012.0*mm" z_length="1272.3 * 2*mm"/>
-                <rphi_layout phi_tilt="0.11502*rad" nphi="80" phi0="0.0436*rad" rc="(966.355 + 5.0)*mm" dr="0.0"/>
-                <z_layout dr="4.0*mm" z0="1213.073*mm" nz="29"/>
-            </layer>                        
-            <layer module="SiTrackerModule_Layer5" id="5" vis="SiTrackerBarrelLayerVis">
-                <barrel_envelope inner_r="1215.075*mm" outer_r="1263.0*mm" z_length="1535.7 * 2*mm"/>
-                <rphi_layout phi_tilt="0.11467*rad" nphi="102" phi0="0.01745*rad" rc="(1216.355 + 5.0)*mm" dr="0.0"/>
-                <z_layout dr="4.0*mm" z0="1476.497*mm" nz="35"/>
-            </layer>
-        </detector>
+    <comment>Vertex Detector Endcaps</comment>
+    <detector id="2" name="SiVertexEndcap" type="DD4hep_SiTrackerEndcap2" readout="SiVertexEndcapHits" reflect="true">    
+      <module name="SiVertexEndcapModule1">
+	<trd x1="VertexEndcap_rmin1 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin1) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
+	<module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
+      </module>
+      <module name="SiVertexEndcapModule2">
+	<trd x1="VertexEndcap_rmin2 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin2) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
+	<module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
+      </module>
+      <module name="SiVertexEndcapModule3">
+	<trd x1="VertexEndcap_rmin3 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin3) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
+	<module_component thickness="0.013*cm"   material="Carbon" vis="SiVertexPassiveVis" />
+      </module>
+      <module name="SiVertexEndcapModule4">
+	<trd x1="VertexEndcap_rmin4 * tan(pi/(VertexEndcapModules-0.1))" x2="VertexEndcap_rmax * sin(pi/(VertexEndcapModules-0.1*cm))" z="(VertexEndcap_rmax - VertexEndcap_rmin4) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true"  vis="SiVertexSensitiveVis"/>
+	<module_component thickness="0.013*cm"   material="Carbon"  vis="SiVertexPassiveVis"/>
+      </module>
+      <layer id="1"  vis="SiVertexEndcapLayerVis">
+	<ring r="(VertexEndcap_rmax + VertexEndcap_rmin1) / 2" zstart="VertexEndcap_z1" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule1"/>
+      </layer>
+      <layer id="2"  vis="SiVertexEndcapLayerVis">
+	<ring r="(VertexEndcap_rmax + VertexEndcap_rmin2) / 2" zstart="VertexEndcap_z2" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule2"/>
+      </layer>
+      <layer id="3"  vis="SiVertexEndcapLayerVis">
+	<ring r="(VertexEndcap_rmax + VertexEndcap_rmin3) / 2" zstart="VertexEndcap_z3" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule3"/>
+      </layer>
+      <layer id="4"  vis="SiVertexEndcapLayerVis">
+	<ring r="(VertexEndcap_rmax + VertexEndcap_rmin4) / 2" zstart="VertexEndcap_z4" nmodules="(int) VertexEndcapModules" dz="0.011*cm" module="SiVertexEndcapModule4"/>
+      </layer>
+    </detector> 
 
-        <detector id="4" name="SiTrackerEndcap" type="SiTrackerEndcap2" readout="SiTrackerEndcapHits" reflect="true">
-            <comment>Outer Tracker Endcaps</comment>
-            <module name="Module1" vis="SiTrackerEndcapModuleVis">
-                <trd x1="36.112*mm" x2="46.635*mm" z="100.114/2*mm" />
-                <module_component thickness="0.00052*cm"   material="Copper" />
-                <module_component thickness="0.0051*cm"   material="Kapton" />
-                <module_component thickness="0.00048*cm" material="Silicon" />
-                <module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
-                <module_component thickness="0.016*cm" material="CarbonFiber_50D" />
-                <module_component thickness="0.18*cm" material="Rohacell31_50D" />
-                <module_component thickness="0.016*cm" material="CarbonFiber_50D" />
-                <module_component thickness="0.0175*cm" material="Epoxy" />
-                <module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
-                <module_component thickness="0.00048*cm" material="Silicon" />
-                <module_component thickness="0.0051*cm"   material="Kapton" />
-                <module_component thickness="0.00052*cm"   material="Copper" />
-            </module> 
-            <module name="Module2" vis="SiTrackerEndcapModuleVis">
-                <trd x1="45.245*mm" x2="54.680*mm" z="89.773/2*mm" />
-                <module_component thickness="0.00079*cm"   material="Copper" />
-                <module_component thickness="0.0078*cm"   material="Kapton" />
-                <module_component thickness="0.00048*cm" material="Silicon" />
-                <module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
-                <module_component thickness="0.016*cm" material="CarbonFiber_50D" />
-                <module_component thickness="0.18*cm" material="Rohacell31_50D" />
-                <module_component thickness="0.016*cm" material="CarbonFiber_50D" />
-                <module_component thickness="0.0175*cm" material="Epoxy" />
-                <module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
-                <module_component thickness="0.00048*cm" material="Silicon" />
-                <module_component thickness="0.0078*cm"   material="Kapton" />
-                <module_component thickness="0.00079*cm"   material="Copper" />
-            </module>
-            <layer id="1">
-                <ring r="256.716*mm" zstart="(787.105+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
-                <ring r="353.991*mm" zstart="(778.776+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
-                <ring r="449.180*mm" zstart="(770.544+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
-            </layer>
-            <layer id="2">
-                <ring r="256.716*mm" zstart="(1073.293+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
-                <ring r="353.991*mm" zstart="(1064.966+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
-                <ring r="449.180*mm" zstart="(1056.734+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
-                <ring r="538.520*mm" zstart="(1048.466+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
-                <ring r="625.654*mm" zstart="(1041.067+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
-                <ring r="703.666*mm" zstart="(1033.725+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
-            </layer>
-            <layer id="3">
-                <ring r="256.716*mm" zstart="(1353.786+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
-                <ring r="353.991*mm" zstart="(1345.457+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
-                <ring r="449.180*mm" zstart="(1337.225+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
-                <ring r="538.520*mm" zstart="(1328.957+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
-                <ring r="625.654*mm" zstart="(1321.558+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
-                <ring r="703.666*mm" zstart="(1314.217+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
-                <ring r="793.448*mm" zstart="(1306.828+1.75)*mm" nmodules="58" dz="1.75*mm" module="Module2" phi0="pi/58"/>
-                <ring r="874.239*mm" zstart="(1299.486+1.75)*mm" nmodules="64" dz="1.75*mm" module="Module2"/>
-                <ring r="958.364*mm" zstart="(1292.189+1.75)*mm" nmodules="68" dz="1.75*mm" module="Module2"/>
-            </layer>
-            <layer id="4">
-                <ring r="256.716*mm" zstart="(1639.164+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
-                <ring r="353.991*mm" zstart="(1630.835+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
-                <ring r="449.180*mm" zstart="(1622.603+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
-                <ring r="538.520*mm" zstart="(1614.335+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
-                <ring r="625.654*mm" zstart="(1606.936+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
-                <ring r="703.666*mm" zstart="(1599.595+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
-                <ring r="793.448*mm" zstart="(1592.206+1.75)*mm" nmodules="58" dz="1.75*mm" module="Module2" phi0="pi/58"/>
-                <ring r="874.239*mm" zstart="(1584.864+1.75)*mm" nmodules="64" dz="1.75*mm" module="Module2"/>
-                <ring r="958.364*mm" zstart="(1577.567+1.75)*mm" nmodules="68" dz="1.75*mm" module="Module2"/>
-                <ring r="1040.970*mm" zstart="(1570.222+1.75)*mm" nmodules="72" dz="1.75*mm" module="Module2"/>
-                <ring r="1124.167*mm" zstart="(1562.916+1.75)*mm" nmodules="78" dz="1.75*mm" module="Module2" phi0="pi/78"/>
-                <ring r="1206.937*mm" zstart="(1555.647+1.75)*mm" nmodules="84" dz="1.75*mm" module="Module2"/>
-            </layer>
-        </detector>
-        
-        <detector id="5" name="SiTrackerForward" type="SiTrackerEndcap2" readout="SiTrackerForwardHits" reflect="true">    
-            <comment>Forward Tracker inside Vertex Support Barrel</comment>
-            <module name="SiTrackerForwardModule1">
-                <trd x1="ForwardTracker_rmin1 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin1) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
-                <module_component thickness="0.013*cm"   material="Carbon" />
-            </module>
-            <module name="SiTrackerForwardModule2">
-                <trd x1="ForwardTracker_rmin2 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin2) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
-                <module_component thickness="0.013*cm"   material="Carbon" />
-            </module>
-            <module name="SiTrackerForwardModule3">
-                <trd x1="ForwardTracker_rmin3 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin3) / 2" />
-                <module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
-                <module_component thickness="0.013*cm"   material="Carbon" />
-            </module>
-            <layer id="1">
-                <ring r="(ForwardTracker_rmax + ForwardTracker_rmin1) / 2" zstart="ForwardTracker_z1" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule1"/>
-            </layer>
-            <layer id="2">
-                <ring r="(ForwardTracker_rmax + ForwardTracker_rmin2) / 2" zstart="ForwardTracker_z2" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule2"/>
-            </layer>
-            <layer id="3">
-                <ring r="(ForwardTracker_rmax + ForwardTracker_rmin3) / 2" zstart="ForwardTracker_z3" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule3"/>
-            </layer>
-        </detector>
+    <detector id="3" name="SiTrackerBarrel" type="DD4hep_SiTrackerBarrel" readout="SiTrackerBarrelHits">
+      <comment>Outer Tracker Barrel</comment>
+      <module name="SiTrackerModule_Layer1" vis="SiTrackerBarrelModuleVis">                
+	<module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
+	  <position z="-0.14*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="-0.122*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
+	  <position z="-0.024*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
+	  <position z="0.07475*cm" />
+	</module_component>
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="0.0915*cm" />
+	</module_component>                
+	<module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
+	  <position z="0.1145*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
+	  <position z="0.12974*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0038*cm" material="Kapton" sensitive="false">
+	  <position z="0.1375*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00038*cm" material="Copper" sensitive="false">
+	  <position z="0.146*cm"/>
+	</module_component>                
+      </module>
+      <module name="SiTrackerModule_Layer2" vis="SiTrackerBarrelModuleVis">                
+	<module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
+	  <position z="-0.14*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="-0.122*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
+	  <position z="-0.024*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
+	  <position z="0.07475*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="0.0915*cm" />
+	</module_component>                
+	<module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
+	  <position z="0.1145*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
+	  <position z="0.12974*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0051*cm" material="Kapton" sensitive="false">
+	  <position z="0.1375*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00052*cm" material="Copper" sensitive="false">
+	  <position z="0.146*cm"/>
+	</module_component>                
+      </module>
+      <module name="SiTrackerModule_Layer3" vis="SiTrackerBarrelModuleVis">                
+	<module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
+	  <position z="-0.14*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="-0.122*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
+	  <position z="-0.024*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
+	  <position z="0.07475*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="0.0915*cm" />
+	</module_component>                
+	<module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
+	  <position z="0.1145*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
+	  <position z="0.12974*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0064*cm" material="Kapton" sensitive="false">
+	  <position z="0.1375*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00065*cm" material="Copper" sensitive="false">
+	  <position z="0.146*cm"/>
+	</module_component>                
+      </module>
+      <module name="SiTrackerModule_Layer4" vis="SiTrackerBarrelModuleVis">                
+	<module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
+	  <position z="-0.14*cm" />
+	</module_component>               
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="-0.122*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
+	  <position z="-0.024*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
+	  <position z="0.07475*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="0.0915*cm" />
+	</module_component>                
+	<module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
+	  <position z="0.1145*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
+	  <position z="0.12974*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0078*cm" material="Kapton" sensitive="false">
+	  <position z="0.1375*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00079*cm" material="Copper" sensitive="false">
+	  <position z="0.146*cm"/>
+	</module_component>                
+      </module>
+      <module name="SiTrackerModule_Layer5" vis="SiTrackerBarrelModuleVis">                
+	<module_envelope width="97.79*mm" length="97.79*mm" thickness="0.3*cm"/>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.02*cm" material="PEEK" sensitive="false">
+	  <position z="-0.14*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="-0.122*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.18*cm" material="Rohacell31_50D" sensitive="false">
+	  <position z="-0.024*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0175*cm" material="Epoxy" sensitive="false">
+	  <position z="0.07475*cm" />
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.016*cm" material="CarbonFiber_50D" sensitive="false">
+	  <position z="0.0915*cm" />
+	</module_component>                
+	<module_component width="92.031*mm" length="92.031*mm" thickness="0.03*cm" material="Silicon" sensitive="true">
+	  <position z="0.1145*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00048*cm" material="Silicon" sensitive="false">
+	  <position z="0.12974*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.0091*cm" material="Kapton" sensitive="false">
+	  <position z="0.1375*cm"/>
+	</module_component>                
+	<module_component width="97.79*mm" length="97.79*mm" thickness="0.00093*cm" material="Copper" sensitive="false">
+	  <position z="0.146*cm"/>
+	</module_component>                
+      </module>
+      <layer module="SiTrackerModule_Layer1" id="1" vis="SiTrackerBarrelLayerVis">
+	<barrel_envelope inner_r="215.075*mm" outer_r="245.0*mm" z_length="578 * 2*mm"/>
+	<rphi_layout phi_tilt="0.17506*rad" nphi="20" phi0="0." rc="(216.355 + 5.0)*mm" dr="0.0"/>
+	<z_layout dr="4.0*mm" z0="512.128*mm" nz="13"/>
+      </layer>                
+      <layer module="SiTrackerModule_Layer2" id="2" vis="SiTrackerBarrelLayerVis">
+	<barrel_envelope inner_r="465.075*mm" outer_r="501.0*mm" z_length="749.8 * 2*mm"/>
+	<rphi_layout phi_tilt="0.12217*rad" nphi="38" phi0="0.087*rad" rc="(466.355 + 5.0)*mm" dr="0.0"/>
+	<z_layout dr="4.0*mm" z0="690.605*mm" nz="17"/>
+      </layer>
+      <layer module="SiTrackerModule_Layer3" id="3" vis="SiTrackerBarrelLayerVis">
+	<barrel_envelope inner_r="715.075*mm" outer_r="756.0*mm" z_length="1013.9 * 2*mm"/>
+	<rphi_layout phi_tilt="0.11493*rad" nphi="58" phi0="0.058*rad" rc="(716.355 + 5.0)*mm" dr="0.0"/>
+	<z_layout dr="4.0*mm" z0="954.625*mm" nz="23"/>
+      </layer>            
+      <layer module="SiTrackerModule_Layer4" id="4" vis="SiTrackerBarrelLayerVis">
+	<barrel_envelope inner_r="965.075*mm" outer_r="1012.0*mm" z_length="1272.3 * 2*mm"/>
+	<rphi_layout phi_tilt="0.11502*rad" nphi="80" phi0="0.0436*rad" rc="(966.355 + 5.0)*mm" dr="0.0"/>
+	<z_layout dr="4.0*mm" z0="1213.073*mm" nz="29"/>
+      </layer>                        
+      <layer module="SiTrackerModule_Layer5" id="5" vis="SiTrackerBarrelLayerVis">
+	<barrel_envelope inner_r="1215.075*mm" outer_r="1263.0*mm" z_length="1535.7 * 2*mm"/>
+	<rphi_layout phi_tilt="0.11467*rad" nphi="102" phi0="0.01745*rad" rc="(1216.355 + 5.0)*mm" dr="0.0"/>
+	<z_layout dr="4.0*mm" z0="1476.497*mm" nz="35"/>
+      </layer>
+    </detector>
 
-        <comment>Calorimeters</comment>
-        <detector id="6" name="EcalBarrel" type="EcalBarrel" readout="EcalBarrelHits" vis="EcalBarrelVis" calorimeterType="EM_BARREL">
-            <comment>EM Calorimeter Barrel</comment>
-            <dimensions numsides="(int) CaloSides" rmin="EcalBarrel_rmin" z="EcalBarrel_zmax*2" />
-            <staves vis="EcalBarrelStaveVis"/>
-            <layer repeat="1">
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>      
-            <layer repeat="20">
-                <slice material = "TungstenDens24" thickness = "0.25*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-            <layer repeat="10">
-                <slice material = "TungstenDens24" thickness = "0.5*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-        </detector>
+    <detector id="4" name="SiTrackerEndcap" type="DD4hep_SiTrackerEndcap2" readout="SiTrackerEndcapHits" reflect="true">
+      <comment>Outer Tracker Endcaps</comment>
+      <module name="Module1" vis="SiTrackerEndcapModuleVis">
+	<trd x1="36.112*mm" x2="46.635*mm" z="100.114/2*mm" />
+	<module_component thickness="0.00052*cm"   material="Copper" />
+	<module_component thickness="0.0051*cm"   material="Kapton" />
+	<module_component thickness="0.00048*cm" material="Silicon" />
+	<module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
+	<module_component thickness="0.016*cm" material="CarbonFiber_50D" />
+	<module_component thickness="0.18*cm" material="Rohacell31_50D" />
+	<module_component thickness="0.016*cm" material="CarbonFiber_50D" />
+	<module_component thickness="0.0175*cm" material="Epoxy" />
+	<module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
+	<module_component thickness="0.00048*cm" material="Silicon" />
+	<module_component thickness="0.0051*cm"   material="Kapton" />
+	<module_component thickness="0.00052*cm"   material="Copper" />
+      </module> 
+      <module name="Module2" vis="SiTrackerEndcapModuleVis">
+	<trd x1="45.245*mm" x2="54.680*mm" z="89.773/2*mm" />
+	<module_component thickness="0.00079*cm"   material="Copper" />
+	<module_component thickness="0.0078*cm"   material="Kapton" />
+	<module_component thickness="0.00048*cm" material="Silicon" />
+	<module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
+	<module_component thickness="0.016*cm" material="CarbonFiber_50D" />
+	<module_component thickness="0.18*cm" material="Rohacell31_50D" />
+	<module_component thickness="0.016*cm" material="CarbonFiber_50D" />
+	<module_component thickness="0.0175*cm" material="Epoxy" />
+	<module_component thickness="0.03*cm"   material="Silicon" sensitive="true" />
+	<module_component thickness="0.00048*cm" material="Silicon" />
+	<module_component thickness="0.0078*cm"   material="Kapton" />
+	<module_component thickness="0.00079*cm"   material="Copper" />
+      </module>
+      <layer id="1">
+	<ring r="256.716*mm" zstart="(787.105+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
+	<ring r="353.991*mm" zstart="(778.776+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
+	<ring r="449.180*mm" zstart="(770.544+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
+      </layer>
+      <layer id="2">
+	<ring r="256.716*mm" zstart="(1073.293+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
+	<ring r="353.991*mm" zstart="(1064.966+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
+	<ring r="449.180*mm" zstart="(1056.734+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
+	<ring r="538.520*mm" zstart="(1048.466+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
+	<ring r="625.654*mm" zstart="(1041.067+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
+	<ring r="703.666*mm" zstart="(1033.725+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
+      </layer>
+      <layer id="3">
+	<ring r="256.716*mm" zstart="(1353.786+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
+	<ring r="353.991*mm" zstart="(1345.457+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
+	<ring r="449.180*mm" zstart="(1337.225+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
+	<ring r="538.520*mm" zstart="(1328.957+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
+	<ring r="625.654*mm" zstart="(1321.558+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
+	<ring r="703.666*mm" zstart="(1314.217+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
+	<ring r="793.448*mm" zstart="(1306.828+1.75)*mm" nmodules="58" dz="1.75*mm" module="Module2" phi0="pi/58"/>
+	<ring r="874.239*mm" zstart="(1299.486+1.75)*mm" nmodules="64" dz="1.75*mm" module="Module2"/>
+	<ring r="958.364*mm" zstart="(1292.189+1.75)*mm" nmodules="68" dz="1.75*mm" module="Module2"/>
+      </layer>
+      <layer id="4">
+	<ring r="256.716*mm" zstart="(1639.164+1.75)*mm" nmodules="24" dz="1.75*mm" module="Module1"/>
+	<ring r="353.991*mm" zstart="(1630.835+1.75)*mm" nmodules="32" dz="1.75*mm" module="Module1"/>
+	<ring r="449.180*mm" zstart="(1622.603+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module1"/>
+	<ring r="538.520*mm" zstart="(1614.335+1.75)*mm" nmodules="40" dz="1.75*mm" module="Module2"/>
+	<ring r="625.654*mm" zstart="(1606.936+1.75)*mm" nmodules="48" dz="1.75*mm" module="Module2"/>
+	<ring r="703.666*mm" zstart="(1599.595+1.75)*mm" nmodules="54" dz="1.75*mm" module="Module2" phi0="pi/54"/>
+	<ring r="793.448*mm" zstart="(1592.206+1.75)*mm" nmodules="58" dz="1.75*mm" module="Module2" phi0="pi/58"/>
+	<ring r="874.239*mm" zstart="(1584.864+1.75)*mm" nmodules="64" dz="1.75*mm" module="Module2"/>
+	<ring r="958.364*mm" zstart="(1577.567+1.75)*mm" nmodules="68" dz="1.75*mm" module="Module2"/>
+	<ring r="1040.970*mm" zstart="(1570.222+1.75)*mm" nmodules="72" dz="1.75*mm" module="Module2"/>
+	<ring r="1124.167*mm" zstart="(1562.916+1.75)*mm" nmodules="78" dz="1.75*mm" module="Module2" phi0="pi/78"/>
+	<ring r="1206.937*mm" zstart="(1555.647+1.75)*mm" nmodules="84" dz="1.75*mm" module="Module2"/>
+      </layer>
+    </detector>
+    
+    <detector id="5" name="SiTrackerForward" type="DD4hep_SiTrackerEndcap2" readout="SiTrackerForwardHits">    
+      <comment>Forward Tracker inside Vertex Support Barrel</comment>
+      <module name="SiTrackerForwardModule1">
+	<trd x1="ForwardTracker_rmin1 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin1) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
+	<module_component thickness="0.013*cm"   material="Carbon" />
+      </module>
+      <module name="SiTrackerForwardModule2">
+	<trd x1="ForwardTracker_rmin2 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin2) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
+	<module_component thickness="0.013*cm"   material="Carbon" />
+      </module>
+      <module name="SiTrackerForwardModule3">
+	<trd x1="ForwardTracker_rmin3 * tan(pi/(ForwardTrackerModules-0.1))" x2="ForwardTracker_rmax * sin(pi/(ForwardTrackerModules-0.1))" z="(ForwardTracker_rmax - ForwardTracker_rmin3) / 2" />
+	<module_component thickness="0.005*cm" material="Silicon" sensitive="true" />
+	<module_component thickness="0.013*cm"   material="Carbon" />
+      </module>
+      <layer id="1">
+	<ring r="(ForwardTracker_rmax + ForwardTracker_rmin1) / 2" zstart="ForwardTracker_z1" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule1"/>
+      </layer>
+      <layer id="2">
+	<ring r="(ForwardTracker_rmax + ForwardTracker_rmin2) / 2" zstart="ForwardTracker_z2" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule2"/>
+      </layer>
+      <layer id="3">
+	<ring r="(ForwardTracker_rmax + ForwardTracker_rmin3) / 2" zstart="ForwardTracker_z3" nmodules="(int) ForwardTrackerModules" dz="0.011*mm" module="SiTrackerForwardModule3"/>
+      </layer>
+    </detector>
 
-        <detector id="7" name="EcalEndcap" type="PolyhedraEndcapCalorimeter2" reflect="true" readout="EcalEndcapHits" vis="EcalEndcapVis" calorimeterType="EM_ENDCAP">
-            <comment>EM Calorimeter Endcaps</comment>
-            <dimensions numsides="(int) CaloSides" zmin="EcalEndcap_zmin" rmin="EcalEndcap_rmin" rmax="EcalEndcap_rmax" />
-            <layer repeat="1">
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>       
-            <layer repeat="20">
-                <slice material = "TungstenDens24" thickness = "0.25*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-            <layer repeat="10">
-                <slice material = "TungstenDens24" thickness = "0.5*cm" />
-                <slice material = "Air"     thickness = "0.025*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-        </detector>
+    <comment>Calorimeters</comment>
+    <detector id="6" name="EcalBarrel" type="DD4hep_EcalBarrel" readout="EcalBarrelHits" vis="EcalBarrelVis" calorimeterType="EM_BARREL">
+      <comment>EM Calorimeter Barrel</comment>
+      <dimensions numsides="(int) CaloSides" rmin="EcalBarrel_rmin" z="EcalBarrel_zmax*2" />
+      <staves vis="EcalBarrelStaveVis"/>
+      <layer repeat="1">
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>      
+      <layer repeat="20">
+	<slice material = "TungstenDens24" thickness = "0.25*cm" />
+	<slice material = "Air"     thickness = "0.025*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+      <layer repeat="10">
+	<slice material = "TungstenDens24" thickness = "0.5*cm" />
+	<slice material = "Air"     thickness = "0.025*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+    </detector>
 
-        <detector id="8" name="HcalBarrel" type="PolyhedraBarrelCalorimeter2" readout="HcalBarrelHits" vis="HcalBarrelVis" calorimeterType="HAD_BARREL" gap="0.*cm" material="Steel235">
-            <comment>Hadron Calorimeter Barrel</comment>
-            <dimensions numsides="(int) CaloSides" rmin="HcalBarrel_rmin" z="EcalBarrel_zmax*2"/>
-            <staves vis="HcalBarrelStavesVis"/>
-            <layer repeat="(int) HcalBarrel_layers">
-                <slice material = "TungstenDens24" thickness = "1.00*cm" />
-                <slice material = "Polystyrene" thickness = "0.50*cm" sensitive = "yes" limits="cal_limits" vis="HcalBarrelSensorVis"/>       
-                <slice material = "Air" thickness = "0.15*cm" />
-            </layer>
-        </detector>
+    <detector id="7" name="EcalEndcap" type="DD4hep_PolyhedraEndcapCalorimeter2" reflect="true" readout="EcalEndcapHits" vis="EcalEndcapVis" calorimeterType="EM_ENDCAP">
+      <comment>EM Calorimeter Endcaps</comment>
+      <dimensions numsides="(int) CaloSides" zmin="EcalEndcap_zmin" rmin="EcalEndcap_rmin" rmax="EcalEndcap_rmax" />
+      <layer repeat="1">
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>       
+      <layer repeat="20">
+	<slice material = "TungstenDens24" thickness = "0.25*cm" />
+	<slice material = "Air"     thickness = "0.025*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+      <layer repeat="10">
+	<slice material = "TungstenDens24" thickness = "0.5*cm" />
+	<slice material = "Air"     thickness = "0.025*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+    </detector>
 
+    <detector id="8" name="HcalBarrel" type="DD4hep_PolyhedraBarrelCalorimeter2" readout="HcalBarrelHits" vis="HcalBarrelVis" calorimeterType="HAD_BARREL" gap="0.*cm" material="Steel235">
+      <comment>Hadron Calorimeter Barrel</comment>
+      <dimensions numsides="(int) CaloSides" rmin="HcalBarrel_rmin" z="EcalBarrel_zmax*2"/>
+      <staves vis="HcalBarrelStavesVis"/>
+      <layer repeat="(int) HcalBarrel_layers">
+	<slice material = "TungstenDens24" thickness = "1.00*cm" />
+	<slice material = "Polystyrene" thickness = "0.50*cm" sensitive = "yes" limits="cal_limits" vis="HcalBarrelSensorVis"/>       
+	<slice material = "Air" thickness = "0.15*cm" />
+      </layer>
+    </detector>
 
-        <detector id="9" name="HcalEndcap" type="PolyhedraEndcapCalorimeter2" readout="HcalEndcapHits" vis="HcalEndcapVis" calorimeterType="HAD_ENDCAP">
-            <comment>Hadron Calorimeter Endcaps</comment>
-            <dimensions numsides="(int) CaloSides" zmin="HcalEndcap_zmin" rmin="HcalEndcap_rmin" rmax="HcalEndcap_rmax" />
-            <layer repeat="(int) HcalEndcap_layers">
-                <slice material = "Steel235" thickness = "2.0*cm" />
-                <slice material = "Polystyrene" thickness = "0.50*cm" sensitive = "yes" limits="cal_limits" />        
-                <slice material = "Air" thickness = "0.15*cm" />
-            </layer>
-        </detector>
 
-        <detector id="10" name="HcalPlug" type="PolyhedraEndcapCalorimeter2" readout="HcalPlugHits" vis="MuonEndcapVis">
-            <comment>Hadron Calorimeter Plug</comment>
-            <dimensions numsides="(int) CaloSides" zmin="SolenoidCoilOuterZ" rmin="MuonEndcap_rmin" rmax="HcalEndcap_rmax" />
-            <layer repeat="1" vis="MuonEndcapLayerVis">
-                <slice material="Iron" thickness="15.0*cm"  vis="MuonEndcapAbsorberVis"/>
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="9.0*cm"  vis="MuonEndcapAbsorberVis"/>
-            </layer>
-        </detector>
+    <detector id="9" name="HcalEndcap" type="DD4hep_PolyhedraEndcapCalorimeter2" readout="HcalEndcapHits" vis="HcalEndcapVis" calorimeterType="HAD_ENDCAP">
+      <comment>Hadron Calorimeter Endcaps</comment>
+      <dimensions numsides="(int) CaloSides" zmin="HcalEndcap_zmin" rmin="HcalEndcap_rmin" rmax="HcalEndcap_rmax" />
+      <layer repeat="(int) HcalEndcap_layers">
+	<slice material = "Steel235" thickness = "2.0*cm" />
+	<slice material = "Polystyrene" thickness = "0.50*cm" sensitive = "yes" limits="cal_limits" />        
+	<slice material = "Air" thickness = "0.15*cm" />
+      </layer>
+    </detector>
 
+    <detector id="10" name="HcalPlug" type="DD4hep_PolyhedraEndcapCalorimeter2" readout="HcalPlugHits" vis="MuonEndcapVis">
+      <comment>Hadron Calorimeter Plug</comment>
+      <dimensions numsides="(int) CaloSides" zmin="SolenoidCoilOuterZ" rmin="MuonEndcap_rmin" rmax="HcalEndcap_rmax" />
+      <layer repeat="1" vis="MuonEndcapLayerVis">
+	<slice material="Iron" thickness="15.0*cm"  vis="MuonEndcapAbsorberVis"/>
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+	<slice material="Iron" thickness="9.0*cm"  vis="MuonEndcapAbsorberVis"/>
+      </layer>
+    </detector>
 
-        <detector id="11" name="MuonBarrel" type="PolyhedraBarrelCalorimeter2" readout="MuonBarrelHits" vis="MuonBarrelVis" calorimeterType="MUON_BARREL" gap="0.*cm" material="Steel235">
-            <comment>Muon Calorimeter Barrel</comment>
-            <dimensions numsides="(int) MuonSides" rmin="MuonBarrel_rmin" z="MuonBarrel_zmax * 2"/>
-            <staves vis="MuonBarrelStavesVis"/>
 
-            <layer repeat="1" vis="MuonBarrelLayerVis">
-            	<slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="5.0*cm" vis="MuonBarrelAbsorberVis"/>
-           </layer>
-           <layer repeat="1" vis="MuonBarrelLayerVis">
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
-            <layer repeat="(int) MuonBarrel_layers" vis="MuonBarrelLayerVis">
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-                <slice material="Iron" thickness="10.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
+    <detector id="11" name="MuonBarrel" type="DD4hep_PolyhedraBarrelCalorimeter2" readout="MuonBarrelHits" vis="MuonBarrelVis" calorimeterType="MUON_BARREL" gap="0.*cm" material="Steel235">
+      <comment>Muon Calorimeter Barrel</comment>
+      <dimensions numsides="(int) MuonSides" rmin="MuonBarrel_rmin" z="MuonBarrel_zmax * 2"/>
+      <staves vis="MuonBarrelStavesVis"/>
 
-            <layer repeat="1" vis="MuonBarrelLayerVis">
-            	<slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-            	<slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
-            </layer>
-        </detector>
+      <layer repeat="1" vis="MuonBarrelLayerVis">
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+	<slice material="Iron" thickness="5.0*cm" vis="MuonBarrelAbsorberVis"/>
+      </layer>
+      <layer repeat="1" vis="MuonBarrelLayerVis">
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+	<slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
+      </layer>
+      <layer repeat="(int) MuonBarrel_layers" vis="MuonBarrelLayerVis">
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+	<slice material="Iron" thickness="10.0*cm" vis="MuonBarrelAbsorberVis"/>
+      </layer>
 
-        <detector id="12" name="MuonEndcap" type="PolyhedraEndcapCalorimeter2" readout="MuonEndcapHits" reflect="true" vis="MuonEndcapVis" calorimeterType="MUON_ENDCAP">
-            <comment>Muon Calorimeter Endcaps</comment>
-            <dimensions numsides="(int) MuonSides" zmin="MuonEndcap_zmin" rmin="MuonEndcap_rmin" rmax="MuonEndcap_rmax" />
-            <layer repeat="(int) MuonEndcap_layers" vis="MuonEndcapLayerVis">
-                <slice material="Iron" thickness="10.0*cm"  vis="MuonEndcapAbsorberVis"/>
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
-                <slice material="PyrexGlass" thickness="0.2*cm" />
-                <slice material="Air" thickness="0.35*cm" />
-                <slice material="Aluminum" thickness="0.1*cm" />
-                <slice material="Air" thickness="1.0*cm" />
-            </layer>
-        </detector>
+      <layer repeat="1" vis="MuonBarrelLayerVis">
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes" vis="MuonBarrelSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+	<slice material="Iron" thickness="20.0*cm" vis="MuonBarrelAbsorberVis"/>
+      </layer>
+    </detector>
 
-        <detector id="13" name="LumiCal" reflect="true" type="CylindricalEndcapCalorimeter" readout="LumiCalHits" vis="LumiCalVis" calorimeterType="LUMI">
-            <comment>Luminosity Calorimeter</comment>
-            <dimensions inner_r = "LumiCal_rmin" inner_z = "LumiCal_zmin" outer_r = "LumiCal_rmax" />
-            <layer repeat="20" >
-                <slice material = "TungstenDens24" thickness = "0.271*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-            <layer repeat="15" >
-                <slice material = "TungstenDens24" thickness = "0.543*cm" />
-                <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" />
-                <slice material = "Copper"  thickness = "0.005*cm" />
-                <slice material = "Kapton"  thickness = "0.030*cm" />
-                <slice material = "Air"     thickness = "0.033*cm" />
-            </layer>
-        </detector>
+    <detector id="12" name="MuonEndcap" type="DD4hep_PolyhedraEndcapCalorimeter2" readout="MuonEndcapHits" reflect="true" vis="MuonEndcapVis" calorimeterType="MUON_ENDCAP">
+      <comment>Muon Calorimeter Endcaps</comment>
+      <dimensions numsides="(int) MuonSides" zmin="MuonEndcap_zmin" rmin="MuonEndcap_rmin" rmax="MuonEndcap_rmax" />
+      <layer repeat="(int) MuonEndcap_layers" vis="MuonEndcapLayerVis">
+	<slice material="Iron" thickness="10.0*cm"  vis="MuonEndcapAbsorberVis"/>
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="RPCGasDefault" thickness="0.2*cm" sensitive="yes"  vis="MuonEndcapSensorVis"/>
+	<slice material="PyrexGlass" thickness="0.2*cm" />
+	<slice material="Air" thickness="0.35*cm" />
+	<slice material="Aluminum" thickness="0.1*cm" />
+	<slice material="Air" thickness="1.0*cm" />
+      </layer>
+    </detector>
 
-        <detector name="LumiReadout_Forward" type="PolyconeSupport" vis="LumiCalVis">
-        	<comment>Readout for Luminosity Calorimeter</comment>
-        	<material name="G10"/>
-        	<zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="LumiCal_zmin"/>
-        	<zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="LumiCal_zmin+LumiCal_thickness"/>
-        </detector>
-        
-      	<detector name="LumiReadout_Backward" type="PolyconeSupport" vis="LumiCalVis">
-        	<comment>Readout for Luminosity Calorimeter</comment>
-        	<material name="G10"/>
-        	<zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="-LumiCal_zmin"/>
-        	<zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="-(LumiCal_zmin+LumiCal_thickness)"/>
-        </detector>
-        
-        <detector id="14" name="BeamCal" reflect="true" type="ForwardDetector" readout="BeamCalHits" vis="LumiCalVis" calorimeterType="BEAM">
-            <comment>Beam Calorimeter</comment>
-            <dimensions outer_r="BeamCal_rmax" inner_r="0.0*cm" inner_z="BeamCal_zmin" />
-            <beampipe crossing_angle="CrossingAngle" outgoing_r="OutgoingBP_radius + 0.05*cm" incoming_r="IncomingBP_radius + 0.05*cm" />
-            <layer repeat="50">
-                <slice material="TungstenDens24" thickness="0.271*cm" />
-                <slice material="Silicon" thickness="0.032*cm" sensitive="yes" />
-                <slice material="Copper" thickness="0.005*cm" />
-                <slice material="Kapton" thickness="0.030*cm" />
-                <slice material="Air" thickness="0.033*cm" />
-            </layer>
-        </detector>
+    <detector id="13" name="LumiCal" reflect="true" type="DD4hep_CylindricalEndcapCalorimeter" readout="LumiCalHits" vis="LumiCalVis" calorimeterType="LUMI">
+      <comment>Luminosity Calorimeter</comment>
+      <dimensions inner_r = "LumiCal_rmin" inner_z = "LumiCal_zmin" outer_r = "LumiCal_rmax" />
+      <layer repeat="20" >
+	<slice material = "TungstenDens24" thickness = "0.271*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+      <layer repeat="15" >
+	<slice material = "TungstenDens24" thickness = "0.543*cm" />
+	<slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" />
+	<slice material = "Copper"  thickness = "0.005*cm" />
+	<slice material = "Kapton"  thickness = "0.030*cm" />
+	<slice material = "Air"     thickness = "0.033*cm" />
+      </layer>
+    </detector>
 
-        <comment>Dead material and supports</comment>
-        <comment>Beampipe</comment> 
-        <detector name="Beampipe" type="PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
-            <comment>Central Be Beampipe</comment>
-            <material name="Beryllium"/>
-            <zplane rmin="CentralBeamPipe_rmin" rmax="CentralBeamPipe_rmax" z="-CentralBeamPipe_zmax"/>
-            <zplane rmin="CentralBeamPipe_rmin" rmax="CentralBeamPipe_rmax" z="CentralBeamPipe_zmax" />
-        </detector>
-        <detector name="SteelConeZbackward" type="PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
-      		<material name="Iron"/>            
-      		<zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="-tracking_region_zmax" /> 
-      		<zplane rmin="CentralBeamPipe_rmin"
-            		rmax="(BeamPipe_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		z="-BeamPipe_zmin" />
-           	<zplane rmin="CentralBeamPipe_rmin"
-           			rmax="CentralBeamPipe_rmax"
-           			z="-CentralBeamPipe_zmax"/>
-    	</detector>
-    	<detector name="SteelConeZbackward2" type="PolyconeSupport" insideTrackingVolume="false" vis="BeamPipeVis">
-      		<material name="Iron"/>            
-            <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="-(tracking_region_zmax + 0.01*cm)" /> 
-            <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="- BeamPipe_zmax" />
-            <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="BeamPipe_rmax"
-            		z="- (LumiCal_zmin - 2*BeamPipe_endThickness)" />
-            <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="LumiCal_rmin - BeamPipe_endThickness"
-            		z="- (LumiCal_zmin - BeamPipe_endThickness)" />
-			<zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="LumiCal_rmin - BeamPipe_endThickness"
-            		z="- (ForwardMask_zmin - BeamPipe_endThickness)" />
-    	</detector>
-		<detector name="SteelConeZforward" type="PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
-      		<material name="Iron"/>
-      		<zplane rmin="CentralBeamPipe_rmin"
-           			rmax="CentralBeamPipe_rmax"
-           			z="CentralBeamPipe_zmax"/>            
-      		<zplane rmin="CentralBeamPipe_rmin"
-            		rmax="(BeamPipe_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		z="BeamPipe_zmin" /> 
-      		<zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="tracking_region_zmax" />
-    	</detector>
-    	<detector name="SteelConeZforward2" type="PolyconeSupport" insideTrackingVolume="false" vis="BeamPipeVis">
-      		<material name="Iron"/>            
-            <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="tracking_region_zmax + 0.01*cm" /> 
-            <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
-            		rmax="BeamPipe_rmax"
-            		z="BeamPipe_zmax" />
-            <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="BeamPipe_rmax"
-            		z="LumiCal_zmin - 2*BeamPipe_endThickness" />
-            <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="LumiCal_rmin - BeamPipe_endThickness"
-            		z="LumiCal_zmin - BeamPipe_endThickness" />
-			<zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		rmax="LumiCal_rmin - BeamPipe_endThickness"
-            		z="ForwardMask_zmin - BeamPipe_endThickness" />
-    	</detector>
+    <detector name="LumiReadout_Forward" type="DD4hep_PolyconeSupport" vis="LumiCalVis">
+      <comment>Readout for Luminosity Calorimeter</comment>
+      <material name="G10"/>
+      <zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="LumiCal_zmin"/>
+      <zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="LumiCal_zmin+LumiCal_thickness"/>
+    </detector>
+    
+    <detector name="LumiReadout_Backward" type="DD4hep_PolyconeSupport" vis="LumiCalVis">
+      <comment>Readout for Luminosity Calorimeter</comment>
+      <material name="G10"/>
+      <zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="-LumiCal_zmin"/>
+      <zplane rmin="LumiCal_rmax" rmax="LumiCalElectronics_rmax" z="-(LumiCal_zmin+LumiCal_thickness)"/>
+    </detector>
+    
+    <detector id="14" name="BeamCal" reflect="true" type="DD4hep_ForwardDetector" readout="BeamCalHits" vis="LumiCalVis" calorimeterType="BEAM">
+      <comment>Beam Calorimeter</comment>
+      <dimensions outer_r="BeamCal_rmax" inner_r="0.0*cm" inner_z="BeamCal_zmin" />
+      <beampipe crossing_angle="CrossingAngle" outgoing_r="OutgoingBP_radius + 0.05*cm" incoming_r="IncomingBP_radius + 0.05*cm" />
+      <layer repeat="50">
+	<slice material="TungstenDens24" thickness="0.271*cm" />
+	<slice material="Silicon" thickness="0.032*cm" sensitive="yes" />
+	<slice material="Copper" thickness="0.005*cm" />
+	<slice material="Kapton" thickness="0.030*cm" />
+	<slice material="Air" thickness="0.033*cm" />
+      </layer>
+    </detector>
 
-        <detector name="NorthIncomingBeampipe" type="TubeSegment" vis="BeamPipeVis">
-            <material name="Iron" />
-            <tubs rmin="IncomingBP_radius - IncomingBP_thickness" rmax="IncomingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
-            <position x="-((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="(ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
-            <rotation x="0.0" y="CrossingAngle/2.0/rad" z="0.0" />
-        </detector>
+    <comment>Dead material and supports</comment>
+    <comment>Beampipe</comment> 
+    <detector name="Beampipe" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
+      <comment>Central Be Beampipe</comment>
+      <material name="Beryllium"/>
+      <zplane rmin="CentralBeamPipe_rmin" rmax="CentralBeamPipe_rmax" z="-CentralBeamPipe_zmax"/>
+      <zplane rmin="CentralBeamPipe_rmin" rmax="CentralBeamPipe_rmax" z="CentralBeamPipe_zmax" />
+    </detector>
+    <detector name="SteelConeZbackward" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
+      <material name="Iron"/>            
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="-tracking_region_zmax" /> 
+      <zplane rmin="CentralBeamPipe_rmin"
+	      rmax="(BeamPipe_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      z="-BeamPipe_zmin" />
+      <zplane rmin="CentralBeamPipe_rmin"
+	      rmax="CentralBeamPipe_rmax"
+	      z="-CentralBeamPipe_zmax"/>
+    </detector>
+    <detector name="SteelConeZbackward2" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="BeamPipeVis">
+      <material name="Iron"/>            
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="-(tracking_region_zmax + 0.01*cm)" /> 
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="- BeamPipe_zmax" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="BeamPipe_rmax"
+	      z="- (LumiCal_zmin - 2*BeamPipe_endThickness)" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="LumiCal_rmin - BeamPipe_endThickness"
+	      z="- (LumiCal_zmin - BeamPipe_endThickness)" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="LumiCal_rmin - BeamPipe_endThickness"
+	      z="- (ForwardMask_zmin - BeamPipe_endThickness)" />
+    </detector>
+    <detector name="SteelConeZforward" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="BeamPipeVis">
+      <material name="Iron"/>
+      <zplane rmin="CentralBeamPipe_rmin"
+	      rmax="CentralBeamPipe_rmax"
+	      z="CentralBeamPipe_zmax"/>            
+      <zplane rmin="CentralBeamPipe_rmin"
+	      rmax="(BeamPipe_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      z="BeamPipe_zmin" /> 
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="tracking_region_zmax" />
+    </detector>
+    <detector name="SteelConeZforward2" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="BeamPipeVis">
+      <material name="Iron"/>            
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="tracking_region_zmax + 0.01*cm" /> 
+      <zplane rmin="BeamPipe_rmax - BeamPipe_thickness"
+	      rmax="BeamPipe_rmax"
+	      z="BeamPipe_zmax" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="BeamPipe_rmax"
+	      z="LumiCal_zmin - 2*BeamPipe_endThickness" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="LumiCal_rmin - BeamPipe_endThickness"
+	      z="LumiCal_zmin - BeamPipe_endThickness" />
+      <zplane rmin="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      rmax="LumiCal_rmin - BeamPipe_endThickness"
+	      z="ForwardMask_zmin - BeamPipe_endThickness" />
+    </detector>
 
+    <detector name="NorthIncomingBeampipe" type="DD4hep_TubeSegment" vis="BeamPipeVis">
+      <material name="Iron" />
+      <tubs rmin="IncomingBP_radius - IncomingBP_thickness" rmax="IncomingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
+      <position x="-((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="(ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
+      <rotation x="0.0" y="CrossingAngle/2.0/rad" z="0.0" />
+    </detector>
 
-        <detector name="SouthIncomingBeampipe" type="TubeSegment" vis="BeamPipeVis">
-            <material name="Iron" />
-            <tubs rmin="IncomingBP_radius - IncomingBP_thickness" rmax="IncomingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
-            <position x="-((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="- (ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
-            <rotation x="0.0" y="-CrossingAngle/2.0/rad" z="0.0" />
-        </detector>
 
-        <detector name="NorthOutgoingBeampipe" type="TubeSegment" vis="BeamPipeVis">
-            <material name="Iron" />
-            <tubs rmin="OutgoingBP_radius - OutgoingBP_thickness" rmax="OutgoingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
-            <position x="((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="(ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
-            <rotation x="0.0" y="-CrossingAngle/2.0/rad" z="0.0" />
-        </detector>
+    <detector name="SouthIncomingBeampipe" type="DD4hep_TubeSegment" vis="BeamPipeVis">
+      <material name="Iron" />
+      <tubs rmin="IncomingBP_radius - IncomingBP_thickness" rmax="IncomingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
+      <position x="-((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="- (ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
+      <rotation x="0.0" y="-CrossingAngle/2.0/rad" z="0.0" />
+    </detector>
 
-        <detector name="SouthOutgoingBeampipe" type="TubeSegment" vis="BeamPipeVis">
-            <material name="Iron" />
-            <tubs rmin="OutgoingBP_radius - OutgoingBP_thickness" rmax="OutgoingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
-            <position x="((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="- (ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
-            <rotation x="0.0" y="CrossingAngle/2.0/rad" z="0.0" />
-        </detector>
+    <detector name="NorthOutgoingBeampipe" type="DD4hep_TubeSegment" vis="BeamPipeVis">
+      <material name="Iron" />
+      <tubs rmin="OutgoingBP_radius - OutgoingBP_thickness" rmax="OutgoingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
+      <position x="((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="(ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
+      <rotation x="0.0" y="-CrossingAngle/2.0/rad" z="0.0" />
+    </detector>
 
-        <!-- Beam pipe liner is not needed, use thicker conical steel pipe instead
-        <detector name="BeamPipeLiner" type="PolyconeSupport" insideTrackingVolume="true" vis="InvisibleNoDaughters">
-            <comment>BeamPipe Liner to shield bremsstrahlung photons</comment>
-            <material name="Titanium"/>
-            <zplane rmin="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness" z="-tracking_region_zmax" />
-            <zplane rmin="CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmax - BeamPipe_thickness"  z="-(CentralBeamPipe_zmax + 0.01*cm)"/>
-            <zplane rmin="CentralBeamPipe_rmin - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmin" z="-CentralBeamPipe_zmax"  />
-            <zplane rmin="CentralBeamPipe_rmin - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmin" z="CentralBeamPipe_zmax" />
-            <zplane rmin="CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmax - BeamPipe_thickness" z="CentralBeamPipe_zmax + 0.01*cm" />
-            <zplane rmin="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness" z="tracking_region_zmax" />
-        </detector>
-        -->
+    <detector name="SouthOutgoingBeampipe" type="DD4hep_TubeSegment" vis="BeamPipeVis">
+      <material name="Iron" />
+      <tubs rmin="OutgoingBP_radius - OutgoingBP_thickness" rmax="OutgoingBP_radius" zhalf="(MuonEndcap_zmax - ForwardMask_zmin)/2.0" />
+      <position x="((ForwardMask_zmin + MuonEndcap_zmax)/2.0*tan(CrossingAngle/rad)/2.0)" y="0" z="- (ForwardMask_zmin + MuonEndcap_zmax)/2.0" />
+      <rotation x="0.0" y="CrossingAngle/2.0/rad" z="0.0" />
+    </detector>
 
-        <detector name="BeamPipeVacuum" type="PolyconeSupport" insideTrackingVolume="true" vis="InvisibleNoDaughters">
-            <comment>Vacuum inside beampipe</comment>
-            <material name="Vacuum"/>
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness"
-            		z="-tracking_region_zmax" />
-            <zplane rmin="0.*cm"
-            		rmax="CentralBeamPipe_rmin - BeamPipeLiner_thickness"
-            		z="-BeamPipe_zmin"  />
-            <zplane rmin="0.*cm"
-            		rmax="CentralBeamPipe_rmin - BeamPipeLiner_thickness"
-            		z="BeamPipe_zmin" />
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness"
-            		z="tracking_region_zmax" />
-        </detector>
-        <detector name="ForwardVacuum" type="PolyconeSupport" insideTrackingVolume="false" vis="InvisibleNoDaughters">
-            <material name="Vacuum"/>
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness"
-            		z="tracking_region_zmax + 0.01*cm" /> 
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness"
-            		z="BeamPipe_zmax" />
-            <zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="LumiCal_zmin - 2*BeamPipe_endThickness" />
-            <zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="LumiCal_zmin - BeamPipe_endThickness" />
-	    <zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="ForwardMask_zmin - BeamPipe_endThickness" />
-        </detector> 
-        <detector name="BackwardVacuum" type="PolyconeSupport" insideTrackingVolume="false" vis="InvisibleNoDaughters">
-            <material name="Vacuum"/>
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness"
-            		z="- (tracking_region_zmax + 0.01*cm)" /> 
-            <zplane rmin="0.*cm"
-            		rmax="BeamPipe_rmax - BeamPipe_thickness"
-            		z="- BeamPipe_zmax" />
-            <zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="- (LumiCal_zmin - 2*BeamPipe_endThickness)" />
-            <zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="- (LumiCal_zmin - BeamPipe_endThickness)" />
-			<zplane rmin="0.*cm"
-            		rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
-            		z="- (ForwardMask_zmin - BeamPipe_endThickness)" />
-        </detector>
-        <comment>Vertex Detector Supports and Readout</comment>
-        <detector name="VertexBarrelSupports" type="MultiLayerTracker" vis="SupportVis" reflect="true">
-            <comment>Double-walled Carbon Fiber support tube</comment>
-            <layer id="6" inner_r = "16.87*cm" outer_z = "89.48*cm">
-                <slice material = "CarbonFiber" thickness ="VXD_CF_support"/>
-            </layer>
-            <layer id="7" inner_r = "18.42*cm" outer_z = "89.48*cm">
-                <slice material = "CarbonFiber" thickness ="VXD_CF_support"/>
-            </layer>
-        </detector>
-        <detector name="VertexEndSupports" type="DiskTracker" reflect="true" vis="SupportVis">    
-            <layer id="7" inner_r = "(86.88*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset" inner_z = "86.88*cm" outer_r = "16.87*cm">
-                <slice material = "CarbonFiber" thickness = "VXD_CF_support" />
-            </layer>
-            <layer id="8" inner_r = "(89.43*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset" inner_z = "89.43*cm" outer_r = "16.87*cm">
-                <slice material = "CarbonFiber" thickness = "VXD_CF_support" />
-            </layer>
-        </detector>
-        <detector name="VertexReadout" type="DiskTracker" reflect="true" vis="CableVis">
-            <comment>Readout and Cabling</comment>
-            <layer id="1" inner_r = "VertexBarrel_r1" outer_r="VertexBarrel_r1 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm" vis="GreenVis">
-                <slice material = "G10" thickness ="0.5*cm"/>
-            </layer>
-            <layer id="2" inner_r = "VertexBarrel_r2" outer_r="VertexBarrel_r2 + 0.02*cm" inner_z="VertexBarrel_zmax + 0.1*cm" vis = "BlueVis">
-                <slice material = "G10" thickness ="0.5*cm"/>
-            </layer>
-            <layer id="3" inner_r = "VertexBarrel_r3" outer_r="VertexBarrel_r3 + 0.02*cm"  inner_z="VertexBarrel_zmax + 0.1*cm" vis="RedVis">
-                <slice material = "G10" thickness ="0.5*cm"/>
-            </layer>
-            <layer id="4" inner_r = "VertexBarrel_r4" outer_r = "VertexBarrel_r4 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm">
-                <slice material = "G10" thickness ="0.5*cm"/>
-            </layer>
-            <layer id="5" inner_r = "VertexBarrel_r5" outer_r = "VertexBarrel_r5 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm">
-                <slice material = "G10" thickness ="0.5*cm"/>
-            </layer>
-            <layer id="6" inner_r = "VertexBarrel_r1 - 0.1*cm" outer_r = "VertexBarrel_r2"  inner_z= "VertexBarrel_zmax + 0.6*cm">
-                <slice material = "Copper" thickness ="0.0057*cm"/>
-            </layer>
-            <layer id="7" inner_r = "VertexBarrel_r2 - 0.01*cm" outer_r = "VertexBarrel_r3"  inner_z= "VertexBarrel_zmax + 0.6*cm">
-                <slice material = "Copper" thickness ="0.0031*cm"/>
-            </layer>
-            <layer id="8" inner_r = "VertexBarrel_r3 - 0.01*cm" outer_r = "VertexBarrel_r4"  inner_z= "VertexBarrel_zmax + 0.6*cm">
-                <slice material = "Copper" thickness ="0.0016*cm"/>
-            </layer>
-            <layer id="9" inner_r = "VertexBarrel_r4 - 0.01*cm" outer_r = "VertexBarrel_r5"  inner_z= "VertexBarrel_zmax + 0.6*cm">
-                <slice material = "Copper" thickness ="0.0007*cm"/>
-            </layer>
-            <layer id="10" inner_r = "VertexEndcap_rmin1 - 0.1*cm"  outer_r = "VertexEndcap_rmin1 - 0.01*cm" inner_z = "VertexEndcap_z1 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="11" inner_r = "VertexEndcap_rmin2 - 0.1*cm"  outer_r = "VertexEndcap_rmin2 - 0.01*cm" inner_z = "VertexEndcap_z2 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="12" inner_r = "VertexEndcap_rmin3 - 0.1*cm"  outer_r = "VertexEndcap_rmin3 - 0.01*cm" inner_z = "VertexEndcap_z3 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="13" inner_r = "VertexEndcap_rmin4 - 0.1*cm"  outer_r = "VertexEndcap_rmin4 - 0.01*cm" inner_z = "VertexEndcap_z4 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="14" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z1 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="15" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z2 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="16" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z3 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-            <layer id="17" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z4 - 0.1*cm">
-                <slice material = "G10" thickness = "0.02*cm" />
-            </layer>
-        </detector>
-        <detector name="VXDcableZforwardBarrel" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-        	<material name="Copper"/>
-        	<zplane rmin = "(CentralBeamPipe_rmax)"
-        			rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
-        			z="VertexBarrel_zmax + 0.61*cm"/>
-        	<zplane rmin = "(CentralBeamPipe_rmax)"
-        			rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
-        			z="CentralBeamPipe_zmax"/>
-        </detector>
-        <detector name="VXDcableZbackwardBarrel" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-        	<material name="Copper"/>
-        	<zplane rmin = "(CentralBeamPipe_rmax)"
-        			rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
-        			z="-(VertexBarrel_zmax + 0.61*cm)"/>
-        	<zplane rmin = "(CentralBeamPipe_rmax)"
-        			rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
-        			z="-CentralBeamPipe_zmax"/>
-        </detector> 
-        <detector name="VXDcableZbackwardOuter" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="Copper"/>
-            <zplane rmin = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax)" 
-            		rmax = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.004*cm)" 
-            		z="-tracking_region_zmax" />
-            <zplane rmin="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.01*cm"
-            		z="-(VertexService_zmax + 0.01*cm)"/>
-        </detector>
-        <detector name="VXDcableZbackwardInner" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="Copper"/>
-            <zplane rmin="CentralBeamPipe_rmax"
-            		rmax="CentralBeamPipe_rmax + VertexCableThickness"
-            		z="-(CentralBeamPipe_zmax)"/>
-            <zplane rmin="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexCableThickness"
-            		z="-(VertexService_zmin - 0.01*cm)"/>
-        </detector>
-        <detector name="VXDcableZforwardOuter" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="Copper"/>
-            <zplane rmin = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax)" 
-            		rmax = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.004*cm)" 
-            		z="tracking_region_zmax" />
-            <zplane rmin="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.01*cm"
-            		z="VertexService_zmax + 0.01*cm"/>
-        </detector>
-        <detector name="VXDcableZforwardInner" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="Copper"/>
-            <zplane rmin="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexCableThickness"
-            		z="VertexService_zmin - 0.01*cm"/>
-            <zplane rmin="CentralBeamPipe_rmax"
-            		rmax="CentralBeamPipe_rmax + VertexCableThickness"
-            		z="CentralBeamPipe_zmax"/>
-        </detector>
-        <detector name="VXDserviceZbackward" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="G10"/>
-            <zplane rmin = "(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
-            		z="-VertexService_zmax"/>
-            <zplane rmin = "(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
-            		z="-VertexService_zmin"/>
-        </detector>
-        <detector name="VXDserviceZforward" type="PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
-            <material name="G10"/>
-           	<zplane rmin = "(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-           			rmax="(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
-           			z="VertexService_zmin"/>
-            <zplane rmin = "(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
-            		rmax="(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
-            		z="VertexService_zmax"/>
-        </detector>
+    <!-- Beam pipe liner is not needed, use thicker conical steel pipe instead
+	 <detector name="BeamPipeLiner" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="InvisibleNoDaughters">
+	 <comment>BeamPipe Liner to shield bremsstrahlung photons</comment>
+	 <material name="Titanium"/>
+	 <zplane rmin="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness" z="-tracking_region_zmax" />
+	 <zplane rmin="CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmax - BeamPipe_thickness"  z="-(CentralBeamPipe_zmax + 0.01*cm)"/>
+	 <zplane rmin="CentralBeamPipe_rmin - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmin" z="-CentralBeamPipe_zmax"  />
+	 <zplane rmin="CentralBeamPipe_rmin - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmin" z="CentralBeamPipe_zmax" />
+	 <zplane rmin="CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="CentralBeamPipe_rmax - BeamPipe_thickness" z="CentralBeamPipe_zmax + 0.01*cm" />
+	 <zplane rmin="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness" rmax="(tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax - BeamPipe_thickness" z="tracking_region_zmax" />
+	 </detector>
+    -->
 
-        <comment>Outer Tracker Supports and Readout</comment>
-        <detector name="TrackerBarrelSupports" type="MultiLayerTracker" reflect="true">
-            <comment>Barrels</comment>
-            <layer id="1" inner_r="206.0*mm" outer_z="577.328*mm">
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-                <slice material="Rohacell31_15percent" thickness="0.8075*cm" />
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-            </layer>
-            <layer id="2" inner_r="456.0*mm" outer_z="749.781*mm">
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-                <slice material="Rohacell31_15percent" thickness="0.8075*cm" />
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-            </layer>
-            <layer id="3" inner_r="706.0*mm" outer_z="1013.802*mm">
-                <slice material= "CarbonFiber" thickness = "0.05*cm" />
-                <slice material= "Rohacell31_15percent" thickness="0.8075*cm" />
-                <slice material= "CarbonFiber" thickness="0.05*cm" />
-            </layer>
-            <layer id="4" inner_r="956.0*mm" outer_z="1272.251*mm">
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-                <slice material="Rohacell31_15percent" thickness="0.8075*cm" />
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-            </layer>
-            <layer id="5" inner_r="1206.0*mm" outer_z="1535.676*mm">
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-                <slice material="Rohacell31_15percent" thickness="0.8075*cm" />
-                <slice material="CarbonFiber" thickness="0.05*cm" />
-            </layer>
-        </detector>
+    <detector name="BeamPipeVacuum" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="InvisibleNoDaughters">
+      <comment>Vacuum inside beampipe</comment>
+      <material name="Vacuum"/>
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness"
+	      z="-tracking_region_zmax" />
+      <zplane rmin="0.*cm"
+	      rmax="CentralBeamPipe_rmin - BeamPipeLiner_thickness"
+	      z="-BeamPipe_zmin"  />
+      <zplane rmin="0.*cm"
+	      rmax="CentralBeamPipe_rmin - BeamPipeLiner_thickness"
+	      z="BeamPipe_zmin" />
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness - BeamPipeLiner_thickness"
+	      z="tracking_region_zmax" />
+    </detector>
+    <detector name="ForwardVacuum" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="InvisibleNoDaughters">
+      <material name="Vacuum"/>
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness"
+	      z="tracking_region_zmax + 0.01*cm" /> 
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness"
+	      z="BeamPipe_zmax" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="LumiCal_zmin - 2*BeamPipe_endThickness" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="LumiCal_zmin - BeamPipe_endThickness" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="ForwardMask_zmin - BeamPipe_endThickness" />
+    </detector> 
+    <detector name="BackwardVacuum" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="InvisibleNoDaughters">
+      <material name="Vacuum"/>
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness"
+	      z="- (tracking_region_zmax + 0.01*cm)" /> 
+      <zplane rmin="0.*cm"
+	      rmax="BeamPipe_rmax - BeamPipe_thickness"
+	      z="- BeamPipe_zmax" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="- (LumiCal_zmin - 2*BeamPipe_endThickness)" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="- (LumiCal_zmin - BeamPipe_endThickness)" />
+      <zplane rmin="0.*cm"
+	      rmax="LumiCal_rmin - 2*BeamPipe_endThickness"
+	      z="- (ForwardMask_zmin - BeamPipe_endThickness)" />
+    </detector>
+    <comment>Vertex Detector Supports and Readout</comment>
+    <detector name="VertexBarrelSupports" type="DD4hep_MultiLayerTracker" vis="SupportVis" reflect="true">
+      <comment>Double-walled Carbon Fiber support tube</comment>
+      <layer id="6" inner_r = "16.87*cm" outer_z = "89.48*cm">
+	<slice material = "CarbonFiber" thickness ="VXD_CF_support"/>
+      </layer>
+      <layer id="7" inner_r = "18.42*cm" outer_z = "89.48*cm">
+	<slice material = "CarbonFiber" thickness ="VXD_CF_support"/>
+      </layer>
+    </detector>
+    <detector name="VertexEndSupports" type="DD4hep_DiskTracker" reflect="true" vis="SupportVis">    
+      <layer id="7" inner_r = "(86.88*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset" inner_z = "86.88*cm" outer_r = "16.87*cm">
+	<slice material = "CarbonFiber" thickness = "VXD_CF_support" />
+      </layer>
+      <layer id="8" inner_r = "(89.43*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset" inner_z = "89.43*cm" outer_r = "16.87*cm">
+	<slice material = "CarbonFiber" thickness = "VXD_CF_support" />
+      </layer>
+    </detector>
+    <detector name="VertexReadout" type="DD4hep_DiskTracker" reflect="true" vis="CableVis">
+      <comment>Readout and Cabling</comment>
+      <layer id="1" inner_r = "VertexBarrel_r1" outer_r="VertexBarrel_r1 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm" vis="GreenVis">
+	<slice material = "G10" thickness ="0.5*cm"/>
+      </layer>
+      <layer id="2" inner_r = "VertexBarrel_r2" outer_r="VertexBarrel_r2 + 0.02*cm" inner_z="VertexBarrel_zmax + 0.1*cm" vis = "BlueVis">
+	<slice material = "G10" thickness ="0.5*cm"/>
+      </layer>
+      <layer id="3" inner_r = "VertexBarrel_r3" outer_r="VertexBarrel_r3 + 0.02*cm"  inner_z="VertexBarrel_zmax + 0.1*cm" vis="RedVis">
+	<slice material = "G10" thickness ="0.5*cm"/>
+      </layer>
+      <layer id="4" inner_r = "VertexBarrel_r4" outer_r = "VertexBarrel_r4 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm">
+	<slice material = "G10" thickness ="0.5*cm"/>
+      </layer>
+      <layer id="5" inner_r = "VertexBarrel_r5" outer_r = "VertexBarrel_r5 + 0.02*cm"  inner_z= "VertexBarrel_zmax + 0.1*cm">
+	<slice material = "G10" thickness ="0.5*cm"/>
+      </layer>
+      <layer id="6" inner_r = "VertexBarrel_r1 - 0.1*cm" outer_r = "VertexBarrel_r2"  inner_z= "VertexBarrel_zmax + 0.6*cm">
+	<slice material = "Copper" thickness ="0.0057*cm"/>
+      </layer>
+      <layer id="7" inner_r = "VertexBarrel_r2 - 0.01*cm" outer_r = "VertexBarrel_r3"  inner_z= "VertexBarrel_zmax + 0.6*cm">
+	<slice material = "Copper" thickness ="0.0031*cm"/>
+      </layer>
+      <layer id="8" inner_r = "VertexBarrel_r3 - 0.01*cm" outer_r = "VertexBarrel_r4"  inner_z= "VertexBarrel_zmax + 0.6*cm">
+	<slice material = "Copper" thickness ="0.0016*cm"/>
+      </layer>
+      <layer id="9" inner_r = "VertexBarrel_r4 - 0.01*cm" outer_r = "VertexBarrel_r5"  inner_z= "VertexBarrel_zmax + 0.6*cm">
+	<slice material = "Copper" thickness ="0.0007*cm"/>
+      </layer>
+      <layer id="10" inner_r = "VertexEndcap_rmin1 - 0.1*cm"  outer_r = "VertexEndcap_rmin1 - 0.01*cm" inner_z = "VertexEndcap_z1 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="11" inner_r = "VertexEndcap_rmin2 - 0.1*cm"  outer_r = "VertexEndcap_rmin2 - 0.01*cm" inner_z = "VertexEndcap_z2 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="12" inner_r = "VertexEndcap_rmin3 - 0.1*cm"  outer_r = "VertexEndcap_rmin3 - 0.01*cm" inner_z = "VertexEndcap_z3 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="13" inner_r = "VertexEndcap_rmin4 - 0.1*cm"  outer_r = "VertexEndcap_rmin4 - 0.01*cm" inner_z = "VertexEndcap_z4 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="14" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z1 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="15" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z2 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="16" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z3 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+      <layer id="17" inner_r = "VertexEndcap_rmax + 0.01*cm"  outer_r = "VertexEndcap_rmax + 0.5*cm" inner_z = "VertexEndcap_z4 - 0.1*cm">
+	<slice material = "G10" thickness = "0.02*cm" />
+      </layer>
+    </detector>
+    <detector name="VXDcableZforwardBarrel" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin = "(CentralBeamPipe_rmax)"
+	      rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
+	      z="VertexBarrel_zmax + 0.61*cm"/>
+      <zplane rmin = "(CentralBeamPipe_rmax)"
+	      rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
+	      z="CentralBeamPipe_zmax"/>
+    </detector>
+    <detector name="VXDcableZbackwardBarrel" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin = "(CentralBeamPipe_rmax)"
+	      rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
+	      z="-(VertexBarrel_zmax + 0.61*cm)"/>
+      <zplane rmin = "(CentralBeamPipe_rmax)"
+	      rmax = "(CentralBeamPipe_rmax + VertexCableThickness)"
+	      z="-CentralBeamPipe_zmax"/>
+    </detector> 
+    <detector name="VXDcableZbackwardOuter" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax)" 
+	      rmax = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.004*cm)" 
+	      z="-tracking_region_zmax" />
+      <zplane rmin="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.01*cm"
+	      z="-(VertexService_zmax + 0.01*cm)"/>
+    </detector>
+    <detector name="VXDcableZbackwardInner" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin="CentralBeamPipe_rmax"
+	      rmax="CentralBeamPipe_rmax + VertexCableThickness"
+	      z="-(CentralBeamPipe_zmax)"/>
+      <zplane rmin="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexCableThickness"
+	      z="-(VertexService_zmin - 0.01*cm)"/>
+    </detector>
+    <detector name="VXDcableZforwardOuter" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax)" 
+	      rmax = "((tracking_region_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.004*cm)" 
+	      z="tracking_region_zmax" />
+      <zplane rmin="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmax + 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + 0.01*cm"
+	      z="VertexService_zmax + 0.01*cm"/>
+    </detector>
+    <detector name="VXDcableZforwardInner" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="Copper"/>
+      <zplane rmin="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmin - 0.01*cm - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexCableThickness"
+	      z="VertexService_zmin - 0.01*cm"/>
+      <zplane rmin="CentralBeamPipe_rmax"
+	      rmax="CentralBeamPipe_rmax + VertexCableThickness"
+	      z="CentralBeamPipe_zmax"/>
+    </detector>
+    <detector name="VXDserviceZbackward" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="G10"/>
+      <zplane rmin = "(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
+	      z="-VertexService_zmax"/>
+      <zplane rmin = "(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
+	      z="-VertexService_zmin"/>
+    </detector>
+    <detector name="VXDserviceZforward" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="CableVis">
+      <material name="G10"/>
+      <zplane rmin = "(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmin - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
+	      z="VertexService_zmin"/>
+      <zplane rmin = "(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax"
+	      rmax="(VertexService_zmax - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexServiceThickness"
+	      z="VertexService_zmax"/>
+    </detector>
 
-        <comment>Dished endcap disks</comment>
-        <detector name="SiTrackerEndcapSupport1" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="(750.417-0.001)*mm" />
-            <zplane rmin="504.711*mm" rmax="510.448*mm" z="(750.919-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(777.034-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(777.535-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport2" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="750.919*mm" />
-            <zplane rmin="438.449*mm" rmax="510.448*mm" z="757.218*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="777.535*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="783.834*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport3" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="(757.218+0.001)*mm" />
-            <zplane rmin="504.711*mm" rmax="510.448*mm" z="(757.720+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(783.834+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(784.336+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport4" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="(1014.437-0.001)*mm" />
-            <zplane rmin="758.059*mm" rmax="763.796*mm" z="(1014.939-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1063.219-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1063.721-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport5" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="1014.939*mm" />
-            <zplane rmin="691.797*mm" rmax="763.796*mm" z="1021.238*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="1063.721*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="1070.020*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport6" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="(1021.238+0.001)*mm" />
-            <zplane rmin="758.059*mm" rmax="763.796*mm" z="(1021.740+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1070.020+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1070.522+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport7" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(1272.885-0.001)*mm" />
-            <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(1273.387-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1343.711-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1344.213-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport8" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="1273.387*mm" />
-            <zplane rmin="943.753*mm" rmax="1015.748*mm" z="1279.686*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="1344.213*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="1350.512*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport9" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(1279.686+0.001)*mm" />
-            <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(1280.188+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1350.512+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1351.014+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport10" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(1536.560-0.001)*mm" />
-            <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(1537.062-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1629.089-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1629.591-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport11" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="1537.062*mm" />
-            <zplane rmin="1191.810*mm" rmax="1263.808*mm" z="1543.361*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="1629.591*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="1635.890*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport12" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(1543.361+0.001)*mm" />
-            <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(1543.863+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1635.890+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1636.392+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport1Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="(-750.417+0.001)*mm" />
-            <zplane rmin="504.711*mm" rmax="510.448*mm" z="(-750.919+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-777.034+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-777.535+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport2Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="-750.919*mm" />
-            <zplane rmin="438.449*mm" rmax="510.448*mm" z="-757.218*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="-777.535*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="-783.834*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport3Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="510.448*mm" rmax="510.448*mm" z="(-757.218-0.001)*mm" />
-            <zplane rmin="504.711*mm" rmax="510.448*mm" z="(-757.720-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-783.834-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-784.336-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport4Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="(-1014.437+0.001)*mm" />
-            <zplane rmin="758.059*mm" rmax="763.796*mm" z="(-1014.939+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1063.219+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1063.721+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport5Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="-1014.939*mm" />
-            <zplane rmin="691.797*mm" rmax="763.796*mm" z="-1021.238*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1063.721*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1070.020*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport6Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="763.796*mm" rmax="763.796*mm" z="(-1021.238-0.001)*mm" />
-            <zplane rmin="758.059*mm" rmax="763.796*mm" z="(-1021.740-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1070.020-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1070.522-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport7Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(-1272.885+0.001)*mm" />
-            <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(-1273.387+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1343.711+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1344.213+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport8Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="-1273.387*mm" />
-            <zplane rmin="943.753*mm" rmax="1015.748*mm" z="-1279.686*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1344.213*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1350.512*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport9Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(-1279.686-0.001)*mm" />
-            <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(-1280.188-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1350.512-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1351.014-0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport10Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(-1536.560+0.001)*mm" />
-            <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(-1537.062+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1629.089+0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1629.591+0.001)*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport11Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="Rohacell31"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="-1537.062*mm" />
-            <zplane rmin="1191.810*mm" rmax="1263.808*mm" z="-1543.361*mm" />
-            <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1629.591*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1635.890*mm" />
-        </detector>
-        <detector name="SiTrackerEndcapSupport12Reflect" type="PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
-            <material name="CarbonFiber"/>
-            <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(-1543.361-0.001)*mm" />
-            <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(-1543.863-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1635.890-0.001)*mm" />
-            <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1636.392-0.001)*mm" />
-        </detector>        
-        <detector name="TrackerReadout" type="DiskTracker" reflect="true" vis="GreenVis">
-            <comment>Readouts</comment>
-            <layer id="1" inner_r="25.7*cm" inner_z="590.402*mm" outer_r="45.6*cm">
-                <slice material="G10" thickness="0.057*cm" />
-                <slice material="Copper" thickness="0.0038*cm" />
-            </layer>
-            <layer id="2" inner_r="51.0*cm" inner_z="762.854*mm" outer_r="70.6*cm">
-                <slice material = "G10" thickness="0.102*cm" />
-                <slice material = "Copper" thickness="0.0068*cm" />
-            </layer>
-            <layer id="3" inner_r="76.3*cm" inner_z="1026.874*mm" outer_r="95.6*cm">
-                <slice material="G10" thickness="0.108*cm" />
-                <slice material="Copper" thickness="0.0072*cm" />
-            </layer>
-            <layer id="4" inner_r="101.3*cm" inner_z="1285.322*mm" outer_r="120.6*cm">
-                <slice material="G10" thickness="0.186*cm" />
-                <slice material="Copper" thickness="0.0124*cm" />
-            </layer>
-            <layer id="5" inner_r= "101.3*cm" inner_z="1610.0*mm" outer_r="120.6*cm">
-                <slice material="G10" thickness="0.246*cm" />
-                <slice material="Copper" thickness="0.0164*cm" />
-            </layer>
-        </detector>
-        <comment>Masks and Shielding</comment>
-        <detector name="LumiShielding_Forward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="LumiCal_zmax"/>
-        	<zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="LumiCal_zmax+ForwardShielding_thickness"/>
-        </detector>
-        <detector name="LumiShielding_Backward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="-LumiCal_zmax"/>
-        	<zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="-(LumiCal_zmax+ForwardShielding_thickness)"/>
-        </detector>
-        <detector name="ECalShielding_Forward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="HcalEndcap_zmin"/>
-        	<zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="HcalEndcap_zmin+ForwardShielding_thickness"/>
-        </detector>
-        <detector name="ECalShielding_Backward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="-HcalEndcap_zmin"/>
-        	<zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="-(HcalEndcap_zmin+ForwardShielding_thickness)"/>
-        </detector>
-        <detector name="ShieldingTube_Forward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
-        			z="HcalEndcap_zmin + ForwardShielding_thickness"/>
-        	<zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
-        			z="HcalEndcap_zmax"/>
-		</detector>
-		<detector name="ShieldingTube_Backward" type="PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
-        	<material name="TungstenDens24" />
-        	<zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
-        			z="-(HcalEndcap_zmin + ForwardShielding_thickness)"/>
-        	<zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
-        			z="-HcalEndcap_zmax"/>
-		</detector>
-		<detector name="SupportTube_Forward" type="PolyconeSupport" insideTrackingVolume="false" vis="SupportTubeVis">
-        	<material name="Steel235" />
-        	<zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness"
-        			z="HcalEndcap_zmin"/>
-        	<zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness"
-        			z="MuonEndcap_zmax"/>
-		</detector>
-		<detector name="SupportTube_Backward" type="PolyconeSupport" insideTrackingVolume="false" vis="SupportTubeVis">
-        	<material name="Steel235" />
-        	<zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness"
-        			z="-HcalEndcap_zmin"/>
-        	<zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
-        			rmax="HcalEndcap_rmin - SupportTube_thickness"
-        			z="-MuonEndcap_zmax"/>
-		</detector>
-		<detector name="AntiSolenoid_Forward" type="PolyconeSupport" insideTrackingVolume="false" vis="AntiSolenoidVis">
-			<material name="Steel235" />
-        	<zplane rmin="HcalEndcap_rmin + 1.0*cm"
-        			rmax="MuonEndcap_rmin - 1.0*cm"
-        			z="HcalEndcap_zmax + 1.0*cm"/>
-        	<zplane rmin="HcalEndcap_rmin + 1.0*cm"
-        			rmax="MuonEndcap_rmin - 1.0*cm"
-        			z="MuonEndcap_zmax"/>
-        </detector>
-        <detector name="AntiSolenoid_Backward" type="PolyconeSupport" insideTrackingVolume="false" vis="AntiSolenoidVis">
-			<material name="Steel235" />
-        	<zplane rmin="HcalEndcap_rmin + 1.0*cm"
-        			rmax="MuonEndcap_rmin - 1.0*cm"
-        			z="-(HcalEndcap_zmax + 1.0*cm)"/>
-        	<zplane rmin="HcalEndcap_rmin + 1.0*cm"
-        			rmax="MuonEndcap_rmin - 1.0*cm"
-        			z="-MuonEndcap_zmax"/>
-        </detector>
+    <comment>Outer Tracker Supports and Readout</comment>
+    <detector name="TrackerBarrelSupports" type="DD4hep_MultiLayerTracker" reflect="true">
+      <comment>Barrels</comment>
+      <layer id="1" inner_r="206.0*mm" outer_z="577.328*mm">
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+	<slice material="Rohacell31_15percent" thickness="0.8075*cm" />
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+      </layer>
+      <layer id="2" inner_r="456.0*mm" outer_z="749.781*mm">
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+	<slice material="Rohacell31_15percent" thickness="0.8075*cm" />
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+      </layer>
+      <layer id="3" inner_r="706.0*mm" outer_z="1013.802*mm">
+	<slice material= "CarbonFiber" thickness = "0.05*cm" />
+	<slice material= "Rohacell31_15percent" thickness="0.8075*cm" />
+	<slice material= "CarbonFiber" thickness="0.05*cm" />
+      </layer>
+      <layer id="4" inner_r="956.0*mm" outer_z="1272.251*mm">
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+	<slice material="Rohacell31_15percent" thickness="0.8075*cm" />
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+      </layer>
+      <layer id="5" inner_r="1206.0*mm" outer_z="1535.676*mm">
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+	<slice material="Rohacell31_15percent" thickness="0.8075*cm" />
+	<slice material="CarbonFiber" thickness="0.05*cm" />
+      </layer>
+    </detector>
 
-        <detector name="ForwardLowZ" type="ForwardDetector" vis="TungstenShieldingVis" reflect="true">
-            <dimensions outer_r="BeamCal_rmax" inner_r="0.0*cm" inner_z="ForwardMask_zmin" />
-            <beampipe crossing_angle="CrossingAngle" outgoing_r="OutgoingBP_radius + 0.05*cm" incoming_r="IncomingBP_radius + 0.05*cm" />
-            <layer repeat="1">
-                <slice material = "Graphite" thickness = "ForwardMask_thickness" sensitive = "no" />
-            </layer>
-        </detector>
-  
-        <comment>Solenoid</comment>
-        <detector name="SolenoidCoilBarrel" type="MultiLayerTracker" insideTrackingVolume="false" reflect="true">
-            <layer id="1" inner_r="SolenoidBarrelInnerRadius" outer_z="SolenoidBarrelOuterZ" vis="SolenoidBarrelLayerVis">
-                <slice material="Steel235" thickness="SolenoidBarrelInnerCryostatThickness" />
-                <slice material="Vacuum"   thickness="SolenoidBarrelInnerAirgapThickness" />
-            </layer>
-            <layer id="2" inner_r="SolenoidBarrelConductorInnerRadius" outer_z="SolenoidCoilOuterZ" vis="SolenoidBarrelLayerVis">
-                <slice material="Aluminum" thickness="SolenoidBarrelAlConductorThickness" />
-                <slice material="Aluminum" thickness="SolenoidBarrelQuenchbackThickness" />
-            </layer>
-            <layer id="3" inner_r="SolenoidBarrelOuterCryostatInnerRadius" outer_z="SolenoidBarrelOuterZ" vis="SolenoidBarrelLayerVis">
-                <slice material="Vacuum"   thickness="SolenoidBarrelOuterAirgapThickness" />
-                <slice material="Steel235" thickness="SolenoidBarrelOuterCryostatThickness" />
-            </layer>
-        </detector>
+    <comment>Dished endcap disks</comment>
+    <detector name="SiTrackerEndcapSupport1" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="(750.417-0.001)*mm" />
+      <zplane rmin="504.711*mm" rmax="510.448*mm" z="(750.919-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(777.034-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(777.535-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport2" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="750.919*mm" />
+      <zplane rmin="438.449*mm" rmax="510.448*mm" z="757.218*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="777.535*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="783.834*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport3" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="(757.218+0.001)*mm" />
+      <zplane rmin="504.711*mm" rmax="510.448*mm" z="(757.720+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(783.834+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(784.336+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport4" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="(1014.437-0.001)*mm" />
+      <zplane rmin="758.059*mm" rmax="763.796*mm" z="(1014.939-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1063.219-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1063.721-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport5" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="1014.939*mm" />
+      <zplane rmin="691.797*mm" rmax="763.796*mm" z="1021.238*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="1063.721*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="1070.020*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport6" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="(1021.238+0.001)*mm" />
+      <zplane rmin="758.059*mm" rmax="763.796*mm" z="(1021.740+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1070.020+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1070.522+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport7" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(1272.885-0.001)*mm" />
+      <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(1273.387-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1343.711-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1344.213-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport8" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="1273.387*mm" />
+      <zplane rmin="943.753*mm" rmax="1015.748*mm" z="1279.686*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="1344.213*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="1350.512*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport9" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(1279.686+0.001)*mm" />
+      <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(1280.188+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1350.512+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1351.014+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport10" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(1536.560-0.001)*mm" />
+      <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(1537.062-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1629.089-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1629.591-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport11" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="1537.062*mm" />
+      <zplane rmin="1191.810*mm" rmax="1263.808*mm" z="1543.361*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="1629.591*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="1635.890*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport12" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(1543.361+0.001)*mm" />
+      <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(1543.863+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(1635.890+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(1636.392+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport1Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="(-750.417+0.001)*mm" />
+      <zplane rmin="504.711*mm" rmax="510.448*mm" z="(-750.919+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-777.034+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-777.535+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport2Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="-750.919" />
+      <zplane rmin="438.449*mm" rmax="510.448*mm" z="-757.218" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="-777.535" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="-783.834" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport3Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="510.448*mm" rmax="510.448*mm" z="(-757.218-0.001)*mm" />
+      <zplane rmin="504.711*mm" rmax="510.448*mm" z="(-757.720-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-783.834-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-784.336-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport4Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="(-1014.437+0.001)*mm" />
+      <zplane rmin="758.059*mm" rmax="763.796*mm" z="(-1014.939+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1063.219+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1063.721+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport5Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="-1014.939*mm" />
+      <zplane rmin="691.797*mm" rmax="763.796*mm" z="-1021.238*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1063.721*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1070.020*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport6Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="763.796*mm" rmax="763.796*mm" z="(-1021.238-0.001)*mm" />
+      <zplane rmin="758.059*mm" rmax="763.796*mm" z="(-1021.740-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1070.020-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1070.522-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport7Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(-1272.885+0.001)*mm" />
+      <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(-1273.387+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1343.711+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1344.213+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport8Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="-1273.387*mm" />
+      <zplane rmin="943.753*mm" rmax="1015.748*mm" z="-1279.686*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1344.213*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1350.512*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport9Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1015.748*mm" rmax="1015.748*mm" z="(-1279.686-0.001)*mm" />
+      <zplane rmin="1010.011*mm" rmax="1015.748*mm" z="(-1280.188-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1350.512-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1351.014-0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport10Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(-1536.560+0.001)*mm" />
+      <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(-1537.062+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1629.089+0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1629.591+0.001)*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport11Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="Rohacell31"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="-1537.062*mm" />
+      <zplane rmin="1191.810*mm" rmax="1263.808*mm" z="-1543.361*mm" />
+      <zplane rmin="206.234*mm" rmax="278.187*mm" z="-1629.591*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="-1635.890*mm" />
+    </detector>
+    <detector name="SiTrackerEndcapSupport12Reflect" type="DD4hep_PolyconeSupport" insideTrackingVolume="true" vis="SupportVis">
+      <material name="CarbonFiber"/>
+      <zplane rmin="1263.808*mm" rmax="1263.808*mm" z="(-1543.361-0.001)*mm" />
+      <zplane rmin="1258.071*mm" rmax="1263.808*mm" z="(-1543.863-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="211.970*mm" z="(-1635.890-0.001)*mm" />
+      <zplane rmin="206.234*mm" rmax="206.234*mm" z="(-1636.392-0.001)*mm" />
+    </detector>        
+    <detector name="TrackerReadout" type="DD4hep_DiskTracker" reflect="true" vis="GreenVis">
+      <comment>Readouts</comment>
+      <layer id="1" inner_r="25.7*cm" inner_z="590.402*mm" outer_r="45.6*cm">
+	<slice material="G10" thickness="0.057*cm" />
+	<slice material="Copper" thickness="0.0038*cm" />
+      </layer>
+      <layer id="2" inner_r="51.0*cm" inner_z="762.854*mm" outer_r="70.6*cm">
+	<slice material = "G10" thickness="0.102*cm" />
+	<slice material = "Copper" thickness="0.0068*cm" />
+      </layer>
+      <layer id="3" inner_r="76.3*cm" inner_z="1026.874*mm" outer_r="95.6*cm">
+	<slice material="G10" thickness="0.108*cm" />
+	<slice material="Copper" thickness="0.0072*cm" />
+      </layer>
+      <layer id="4" inner_r="101.3*cm" inner_z="1285.322*mm" outer_r="120.6*cm">
+	<slice material="G10" thickness="0.186*cm" />
+	<slice material="Copper" thickness="0.0124*cm" />
+      </layer>
+      <layer id="5" inner_r= "101.3*cm" inner_z="1610.0*mm" outer_r="120.6*cm">
+	<slice material="G10" thickness="0.246*cm" />
+	<slice material="Copper" thickness="0.0164*cm" />
+      </layer>
+    </detector>
+    <comment>Masks and Shielding</comment>
+    <detector name="LumiShielding_Forward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="LumiCal_zmax"/>
+      <zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="LumiCal_zmax+ForwardShielding_thickness"/>
+    </detector>
+    <detector name="LumiShielding_Backward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="-LumiCal_zmax"/>
+      <zplane rmin="LumiCal_rmin" rmax="LumiCalElectronics_rmax" z="-(LumiCal_zmax+ForwardShielding_thickness)"/>
+    </detector>
+    <detector name="ECalShielding_Forward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="HcalEndcap_zmin"/>
+      <zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="HcalEndcap_zmin+ForwardShielding_thickness"/>
+    </detector>
+    <detector name="ECalShielding_Backward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="-HcalEndcap_zmin"/>
+      <zplane rmin="LumiCalElectronics_rmax" rmax="HcalEndcap_rmin-SupportTube_thickness-1.0*cm" z="-(HcalEndcap_zmin+ForwardShielding_thickness)"/>
+    </detector>
+    <detector name="ShieldingTube_Forward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
+	      z="HcalEndcap_zmin + ForwardShielding_thickness"/>
+      <zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
+	      z="HcalEndcap_zmax"/>
+    </detector>
+    <detector name="ShieldingTube_Backward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="TungstenShieldingVis">
+      <material name="TungstenDens24" />
+      <zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
+	      z="-(HcalEndcap_zmin + ForwardShielding_thickness)"/>
+      <zplane rmin="HcalEndcap_rmin - SupportTube_thickness - ForwardShielding_thickness - 1.0*cm"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness - 1.0*cm"
+	      z="-HcalEndcap_zmax"/>
+    </detector>
+    <detector name="SupportTube_Forward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="SupportTubeVis">
+      <material name="Steel235" />
+      <zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness"
+	      z="HcalEndcap_zmin"/>
+      <zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness"
+	      z="MuonEndcap_zmax"/>
+    </detector>
+    <detector name="SupportTube_Backward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="SupportTubeVis">
+      <material name="Steel235" />
+      <zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness"
+	      z="-HcalEndcap_zmin"/>
+      <zplane rmin="HcalEndcap_rmin - 2*SupportTube_thickness"
+	      rmax="HcalEndcap_rmin - SupportTube_thickness"
+	      z="-MuonEndcap_zmax"/>
+    </detector>
+    <detector name="AntiSolenoid_Forward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="AntiSolenoidVis">
+      <material name="Steel235" />
+      <zplane rmin="HcalEndcap_rmin + 1.0*cm"
+	      rmax="MuonEndcap_rmin - 1.0*cm"
+	      z="HcalEndcap_zmax + 1.0*cm"/>
+      <zplane rmin="HcalEndcap_rmin + 1.0*cm"
+	      rmax="MuonEndcap_rmin - 1.0*cm"
+	      z="MuonEndcap_zmax"/>
+    </detector>
+    <detector name="AntiSolenoid_Backward" type="DD4hep_PolyconeSupport" insideTrackingVolume="false" vis="AntiSolenoidVis">
+      <material name="Steel235" />
+      <zplane rmin="HcalEndcap_rmin + 1.0*cm"
+	      rmax="MuonEndcap_rmin - 1.0*cm"
+	      z="-(HcalEndcap_zmax + 1.0*cm)"/>
+      <zplane rmin="HcalEndcap_rmin + 1.0*cm"
+	      rmax="MuonEndcap_rmin - 1.0*cm"
+	      z="-MuonEndcap_zmax"/>
+    </detector>
 
-        <detector name="SolenoidCoilEnds" type="DiskTracker" reflect="true" insideTrackingVolume="false">
-            <layer id="1" inner_r="SolenoidBarrelInnerRadius" inner_z="SolenoidBarrelOuterZ" outer_r="SolenoidBarrelOuterRadius" vis="SolenoidCoilEndsVis">
-                <slice material="Steel235" thickness="SolenoidEndcapCryostatThickness" />
-            </layer>
-        </detector>
+    <detector name="ForwardLowZ" type="DD4hep_ForwardDetector" vis="TungstenShieldingVis" reflect="true">
+      <dimensions outer_r="BeamCal_rmax" inner_r="0.0*cm" inner_z="ForwardMask_zmin" />
+      <beampipe crossing_angle="CrossingAngle" outgoing_r="OutgoingBP_radius + 0.05*cm" incoming_r="IncomingBP_radius + 0.05*cm" />
+      <layer repeat="1">
+	<slice material = "Graphite" thickness = "ForwardMask_thickness" sensitive = "no" />
+      </layer>
+    </detector>
+    
+    <comment>Solenoid</comment>
+    <detector name="SolenoidCoilBarrel" type="DD4hep_MultiLayerTracker" insideTrackingVolume="false" reflect="true">
+      <layer id="1" inner_r="SolenoidBarrelInnerRadius" outer_z="SolenoidBarrelOuterZ" vis="SolenoidBarrelLayerVis">
+	<slice material="Steel235" thickness="SolenoidBarrelInnerCryostatThickness" />
+	<slice material="Vacuum"   thickness="SolenoidBarrelInnerAirgapThickness" />
+      </layer>
+      <layer id="2" inner_r="SolenoidBarrelConductorInnerRadius" outer_z="SolenoidCoilOuterZ" vis="SolenoidBarrelLayerVis">
+	<slice material="Aluminum" thickness="SolenoidBarrelAlConductorThickness" />
+	<slice material="Aluminum" thickness="SolenoidBarrelQuenchbackThickness" />
+      </layer>
+      <layer id="3" inner_r="SolenoidBarrelOuterCryostatInnerRadius" outer_z="SolenoidBarrelOuterZ" vis="SolenoidBarrelLayerVis">
+	<slice material="Vacuum"   thickness="SolenoidBarrelOuterAirgapThickness" />
+	<slice material="Steel235" thickness="SolenoidBarrelOuterCryostatThickness" />
+      </layer>
+    </detector>
 
-    </detectors>
+    <detector name="SolenoidCoilEnds" type="DD4hep_DiskTracker" reflect="true" insideTrackingVolume="false">
+      <layer id="1" inner_r="SolenoidBarrelInnerRadius" inner_z="SolenoidBarrelOuterZ" outer_r="SolenoidBarrelOuterRadius" vis="SolenoidCoilEndsVis">
+	<slice material="Steel235" thickness="SolenoidEndcapCryostatThickness" />
+      </layer>
+    </detector>
 
-    <readouts>
-        <readout name="SiTrackerEndcapHits">
-            <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:20</id>
-        </readout>        
-        <readout name="SiTrackerBarrelHits">
-            <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:20</id>
-        </readout>
-        <readout name="SiVertexBarrelHits">
-            <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:24</id>
-        </readout>
-        <readout name="SiVertexEndcapHits">
-            <id>system:8,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:26</id>
-        </readout>
-        <readout name="EcalBarrelHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.5" grid_size_y="3.5" />
-            <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>        
-        <readout name="EcalEndcapHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.5" grid_size_y="3.5" />
-            <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalBarrelHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:6,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalEndcapHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalPlugHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="MuonBarrelHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="MuonEndcapHits">
-            <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="SiTrackerForwardHits">
-            <id>system:8,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:28</id>
-        </readout>
-        <readout name="LumiCalHits">
-            <segmentation type="CartesianGridXY" grid_size_x="0.35*cm" grid_size_y="0.35*cm" />
-            <id>system:8,barrel:3,layer:8,slice:8,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="BeamCalHits">
-            <segmentation type="CartesianGridXY" grid_size_x="0.35*cm" grid_size_y="0.35*cm" />
-            <id>system:8,layer:8,barrel:3,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-    </readouts>
+  </detectors>
 
-    <fields>
-        <field name="GlobalSolenoid" type="solenoid" 
-          inner_field="5.0*tesla"
-          outer_field="-1.5*tesla" 
-          zmax="SolenoidCoilOuterZ"
-          outer_radius="SolenoidalFieldRadius">
-        </field>
-    </fields>
+  <readouts>
+    <readout name="SiTrackerEndcapHits">
+      <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:20</id>
+    </readout>        
+    <readout name="SiTrackerBarrelHits">
+      <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:20</id>
+    </readout>
+    <readout name="SiVertexBarrelHits">
+      <id>system:8,barrel:3,layer:4,module:14,sensor:2,side:32:-2,strip:24</id>
+    </readout>
+    <readout name="SiVertexEndcapHits">
+      <id>system:8,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:26</id>
+    </readout>
+    <readout name="EcalBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.5" grid_size_y="3.5" />
+      <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
+    </readout>        
+    <readout name="EcalEndcapHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.5" grid_size_y="3.5" />
+      <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="HcalBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
+      <id>system:8,barrel:3,module:6,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="HcalEndcapHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
+      <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="HcalPlugHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
+      <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="MuonBarrelHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
+      <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="MuonEndcapHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*cm" grid_size_y="3.0*cm" />
+      <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="SiTrackerForwardHits">
+      <id>system:8,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:28</id>
+    </readout>
+    <readout name="LumiCalHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.35*cm" grid_size_y="0.35*cm" />
+      <id>system:8,barrel:3,layer:8,slice:8,x:32:-16,y:-16</id>
+    </readout>
+    <readout name="BeamCalHits">
+      <segmentation type="CartesianGridXY" grid_size_x="0.35*cm" grid_size_y="0.35*cm" />
+      <id>system:8,layer:8,barrel:3,layer:8,slice:5,x:32:-16,y:-16</id>
+    </readout>
+  </readouts>
+  <fields>
+    <field name="GlobalSolenoid" type="solenoid" 
+	   inner_field="5.0*tesla"
+	   outer_field="-1.5*tesla" 
+	   zmax="SolenoidCoilOuterZ"
+	   outer_radius="SolenoidalFieldRadius">
+    </field>
+  </fields>
 </lccdd>
diff --git a/examples/CLICSiD/compact/sensitive_detectors.xml b/examples/CLICSiD/compact/sensitive_detectors.xml
deleted file mode 100644
index 7d5e2cc673319898c243a0f1937184d3d1703623..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/compact/sensitive_detectors.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<geant4>
-  <sensitive_detectors>
-    <sd name="SiVertexBarrel" 
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="SiVertexBarrel"
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="SiVertexEndcap"
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="SiTrackerBarrel"
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="SiTrackerEndcap"
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="SiTrackerForward"
-        type="Geant4Tracker" 
-        ecut="10.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="EcalBarrel"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="EcalEndcap"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-<!--
-    <sd name="HcalBarrel"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
--->
-    <sd name="HcalEndcap"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="HcalPlug"  
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="MuonBarrel"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        limits="cal_limits"
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="MuonEndcap"
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="LumiCal" 
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-    <sd name="BeamCal" 
-        type="Geant4Calorimeter" 
-        ecut="100.0*MeV" 
-        verbose="true" 
-        hit_aggregation="position">
-    </sd>
-  </sensitive_detectors>
-
-  <properties>
-     <attributes name="geant4_field"
-          id="0"
-          type="Geant4FieldSetup"
-          object="GlobalSolenoid"
-          global="true"
-          min_chord_step="0.01*mm"
-          delta_chord="0.25*mm"
-          delta_intersection="1e-05*mm"
-          delta_one_step="0.001*mm"
-          eps_min="5e-05*mm"
-          eps_max="0.001*mm"
-          stepper="HelixSimpleRunge"
-          equation="Mag_UsualEqRhs">
-     </attributes>
-  </properties>
-
-</geant4>
diff --git a/examples/CLICSiD/compact/t_compact.xml b/examples/CLICSiD/compact/t_compact.xml
deleted file mode 100644
index 569853eaf980dbc9eda2cd4596b1e495a2618993..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/compact/t_compact.xml
+++ /dev/null
@@ -1,382 +0,0 @@
-<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" 
-    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-    xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
-
-    <info name="clic_sid_cdr"
-        title="CLIC Silicon Detector CDR"
-        author="Christian Grefe"
-        url="https://twiki.cern.ch/twiki/bin/view/CLIC/ClicSidCdr"
-        status="development"
-        version="$Id$">
-        <comment>The compact format for the CLIC Silicon Detector used for the conceptual design report</comment>        
-    </info>
-
-    <includes>
-        <gdmlFile  ref="file:/Users/mato/Development/AIDA/DD4hep/DDExamples/CLICSiD/compact/elements.xml"/>
-        <gdmlFile  ref="file:/Users/mato/Development/AIDA/DD4hep/DDExamples/CLICSiD/compact/materials.xml"/>
-        <pyBuilder ref="../drivers"/>
-    </includes>
-    
-    <define>
-        <constant name="world_side" value="30000"/>
-        <constant name="world_x" value="world_side"/>
-        <constant name="world_y" value="world_side"/>
-        <constant name="world_z" value="world_side"/>
-        
-        <constant name="CrossingAngle" value="0.020"/>
-        
-        <constant name="CaloSides" value="12"/>
-        <constant name="MuonSides" value="8"/>
-        
-        <constant name="EcalBarrel_rmin" value="126.50*cm"/>
-        <constant name="EcalBarrel_zmax" value="176.50*cm"/>
-        <constant name="EcalEndcap_rmin" value="21.0*cm"/>
-        <constant name="EcalEndcap_rmax" value="(EcalBarrel_rmin - 1.5*cm) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="EcalEndcap_zmin" value="165.70*cm"/>
-        
-        <constant name="HcalBarrel_rmin" value="141.90*cm"/>
-        <constant name="HcalBarrel_layers" value="(int) 75"/>
-        <constant name="HcalBarrel_layer_thickness" value="1.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmin" value="EcalBarrel_zmax + 4.0*cm"/> <!-- Gap for cables -->
-        <constant name="HcalEndcap_rmin" value="50.0*cm"/>
-        <constant name="HcalEndcap_rmax" value="(HcalBarrel_rmin + HcalBarrel_layers * HcalBarrel_layer_thickness) / (cos(pi/CaloSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="HcalEndcap_layers" value="60"/>
-        <constant name="HcalEndcap_layer_thickness" value="2.0*cm + 0.65*cm"/>
-        <constant name="HcalEndcap_zmax" value="HcalEndcap_zmin + HcalEndcap_layers * HcalEndcap_layer_thickness"/>
-        
-        <constant name="tracking_region_radius" value="EcalBarrel_rmin - 1.0"/>
-        <constant name="tracking_region_zmax" value="EcalEndcap_zmin - 1.0"/>
-        <constant name="VXD_CF_sensor" value="0.026*cm"/>
-        <constant name="VXD_CF_support" value="0.05*cm"/>
-        
-        <constant name="SolenoidBarrelInnerRadius" value="HcalEndcap_rmax + 2.0*cm"/>
-        <constant name="SolenoidCoilOuterZ" value="HcalEndcap_zmax"/> <!-- Aligned with HCAL endcap -->
-        <constant name="SolenoidBarrelInnerCryostatThickness" value="3.0*cm"/>
-        <constant name="SolenoidBarrelInnerAirgapThickness" value="11.0*cm"/>
-        <constant name="SolenoidBarrelAlConductorThickness" value="38.4*cm"/>
-        <constant name="SolenoidBarrelQuenchbackThickness" value="5.0*cm"/>
-        <constant name="SolenoidBarrelOuterAirgapThickness" value="18.7*cm"/>
-        <constant name="SolenoidBarrelOuterCryostatThickness" value="4.0*cm"/>
-        <constant name="SolenoidEndcapCryostatThickness" value="6.0*cm"/>
-        <constant name="SolenoidEndcapAirgapThickness" value="12.0*cm"/>
-        <constant name="SolenoidBarrelOuterZ" value="SolenoidCoilOuterZ+SolenoidEndcapAirgapThickness"/>
-        <constant name="SolenoidBarrelConductorInnerRadius" value="SolenoidBarrelInnerRadius + SolenoidBarrelInnerCryostatThickness + SolenoidBarrelInnerAirgapThickness"/>
-        <constant name="SolenoidBarrelOuterCryostatInnerRadius" value="SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/>
-        <constant name="SolenoidBarrelOuterRadius" value="SolenoidBarrelOuterCryostatInnerRadius + SolenoidBarrelOuterAirgapThickness + SolenoidBarrelOuterCryostatThickness"/>
-        <constant name="SolenoidalFieldRadius" value="(SolenoidBarrelConductorInnerRadius + SolenoidBarrelAlConductorThickness / 2.0)"/>
-        
-        <constant name="MuonBarrel_rmin" value="SolenoidBarrelOuterRadius + 1.0*cm"/>
-        <constant name="MuonBarrel_zmax" value="SolenoidBarrelOuterZ + SolenoidEndcapCryostatThickness"/>
-        <constant name="MuonBarrel_layers" value="15"/>
-        <constant name="MuonBarrel_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmin" value="MuonBarrel_zmax + 10.0*cm"/> <!-- Space for cables etc. -->
-        <constant name="MuonEndcap_rmin" value="69.0*cm"/> <!-- Space for QD0 and anti-solenoid-->
-        <constant name="MuonEndcap_rmax" value="(MuonBarrel_rmin + 57.0*cm + MuonBarrel_layers * MuonBarrel_layer_thickness) / (cos(pi/MuonSides))"/> <!-- Correction from going from inner circle to outer circle -->
-        <constant name="MuonEndcap_layers" value="18"/>
-        <constant name="MuonEndcap_layer_thickness" value="10.0*cm + 4.0*cm"/>
-        <constant name="MuonEndcap_zmax" value="MuonEndcap_zmin + MuonEndcap_layers * MuonEndcap_layer_thickness"/>
-        
-        <constant name="LumiCal_rmin" value="6.4*cm"/>
-        <constant name="LumiCal_rmax" value="EcalEndcap_rmin + 3.0*cm"/>
-        <constant name="LumiCal_zmin" value="HcalEndcap_zmin"/>
-        <constant name="LumiCal_thickness" value="20*0.371*cm + 15*0.643*cm"/>
-        <constant name="LumiCal_zmax" value="LumiCal_zmin + LumiCal_thickness"/>
-        <constant name="LumiCalElectronics_rmax" value="LumiCal_rmax+5.0*cm"/>
-        
-        <constant name="SupportTube_thickness" value="1.0*cm"/>
-        <constant name="ForwardVacuumValve_thickness" value="36.0*cm"/>
-        <constant name="ForwardShielding_thickness" value="5.0*cm"/>
-        <constant name="ForwardMask_thickness" value="10.0*cm"/>
-        <constant name="ForwardMask_zmin" value="LumiCal_zmax + ForwardShielding_thickness + ForwardVacuumValve_thickness"/>
-        <constant name="BeamCal_rmax" value="13.0*cm"/>
-        <constant name="BeamCal_zmin" value="ForwardMask_zmin + ForwardMask_thickness"/>
-        
-        <constant name="VertexSupport_r1" value="16.87*cm"/>
-        <constant name="VertexSupport_r2" value="18.42*cm"/>
-        <constant name="VertexSupport_zmax" value="89.48*cm"/>
-        
-        <constant name="VertexBarrel_zmax" value="10.0*cm"/>
-        <constant name="VertexBarrel_r1" value="2.7*cm"/>
-        <constant name="VertexBarrel_r2" value="3.8*cm"/>
-        <constant name="VertexBarrel_r3" value="5.1*cm"/>
-        <constant name="VertexBarrel_r4" value="6.4*cm"/>
-        <constant name="VertexBarrel_r5" value="7.7*cm"/>
-        
-        <constant name="CentralBeamPipe_zmax" value="23.0*cm"/>
-        <constant name="CentralBeamPipe_rmax" value="VertexBarrel_r1 - 0.2*cm"/>
-        <constant name="CentralBeamPipe_thickness" value="CentralBeamPipe_rmax * 0.02"/> <!-- 1% of the diameter -->
-        <constant name="CentralBeamPipe_rmin" value="CentralBeamPipe_rmax - CentralBeamPipe_thickness"/>
-        <constant name="BeamPipe_thickness" value="0.4*cm"/>
-        <constant name="BeamPipe_endThickness" value="0.1*cm"/>
-        <constant name="BeamPipe_zmax" value="LumiCal_zmin - 0.5*cm"/>
-        <constant name="BeamPipe_rmax" value="19.0*cm"/>
-        <constant name="BeamPipe_rmin" value="BeamPipe_rmax - BeamPipe_thickness"/>
-        <constant name="bp_cone_slope" value="(BeamPipe_rmax-CentralBeamPipe_rmax)/(tracking_region_zmax-CentralBeamPipe_zmax)"/>
-        <constant name="BeamPipe_zmin" value="CentralBeamPipe_zmax + (BeamPipe_thickness - CentralBeamPipe_thickness)/bp_cone_slope"/>
-        <constant name="BeamPipeLiner_thickness" value="0.0*cm"/>
-        
-        <constant name="VertexEndcap_rmax" value="11.5*cm"/>
-        <constant name="VertexEndcap_z1" value="12.0*cm"/>
-        <constant name="VertexEndcap_z2" value="16.0*cm"/>
-        <constant name="VertexEndcap_z3" value="20.0*cm"/>
-        <constant name="VertexEndcap_z4" value="24.0*cm"/>
-        <constant name="VertexEndcap_offset" value="0.2*cm"/>
-        <constant name="VertexEndcapModules" value="16"/>
-        <constant name="VertexEndcap_rmin1" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin2" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin3" value="CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        <constant name="VertexEndcap_rmin4" value="(VertexEndcap_z4 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + VertexEndcap_offset"/>
-        
-        <constant name="ForwardTracker_rmax" value="16.87*cm"/>
-        <constant name="ForwardTracker_z1" value="28.0*cm"/>
-        <constant name="ForwardTracker_z2" value="50.0*cm"/>
-        <constant name="ForwardTracker_z3" value="83.0*cm"/>
-        <constant name="ForwardTracker_offset" value="0.2*cm"/>
-        <constant name="ForwardTrackerModules" value="16"/>
-        <constant name="ForwardTracker_rmin1" value="(ForwardTracker_z1 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin2" value="(ForwardTracker_z2 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        <constant name="ForwardTracker_rmin3" value="(ForwardTracker_z3 - CentralBeamPipe_zmax)*bp_cone_slope + CentralBeamPipe_rmax + ForwardTracker_offset"/>
-        
-        <constant name="VertexService_zmin" value="ForwardTracker_z1 + 1.0*cm"/>
-        <constant name="VertexService_zmax" value="VertexService_zmin + 2.0*cm"/>
-        <constant name="VertexServiceThickness" value="0.3*cm"/>
-        <constant name="VertexCableThickness" value="0.005*cm"/>
-        
-        <constant name="IncomingBP_radius" value="0.25*cm"/>
-        <constant name="IncomingBP_thickness" value="0.05*cm"/>
-        <constant name="OutgoingBP_radius" value="tan(CrossingAngle/2)*BeamCal_zmin"/>
-        <constant name="OutgoingBP_thickness" value="0.1*cm"/>
-        
-    </define>
-    <materials>
-        <material name="TungstenDens23">
-            <D value="17.7" unit="g/cm3"/>
-            <fraction n="0.925" ref="W"/>
-            <fraction n="0.066" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens24">
-            <D value="17.8" unit="g/cm3"/>
-            <fraction n="0.93" ref="W"/>
-            <fraction n="0.061" ref="Ni"/>
-            <fraction n="0.009" ref="Fe"/>
-        </material>
-        <material name="TungstenDens25">
-            <D value="18.2" unit="g/cm3"/>
-            <fraction n="0.950" ref="W"/>
-            <fraction n="0.044" ref="Ni"/>
-            <fraction n="0.006" ref="Fe"/>
-        </material>
-        <material name="CarbonFiber_25percent">
-            <D type="density" value="0.375" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="CarbonFiber_15percent">
-            <D type="density" value="0.225" unit="g/cm3"/>
-            <fraction n="1.0" ref="CarbonFiber"/>
-        </material>
-        <material name="Rohacell31_50percent">
-            <D type="density" value="0.016" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="Rohacell31_15percent">
-            <D type="density" value="0.0048" unit="g/cm3"/>
-            <fraction n="1.0" ref="Rohacell31"/>
-        </material>
-        <material name="BoratedPolyethylene5">
-            <D value="0.93" unit="g/cm3"/>
-            <fraction n="0.612" ref="C"/>
-            <fraction n="0.222" ref="O"/>
-            <fraction n="0.116" ref="H"/>
-            <fraction n="0.050" ref="B"/>
-        </material>
-        <material name="SiliconCarbide">
-            <D value="3.1" unit="g/cm3"/>
-            <composite n="1" ref="Si"/>
-            <composite n="1" ref="C"/>
-        </material> 
-        <material name="SiliconCarbide_6percent">
-            <D value="0.186" unit="g/cm3"/>
-            <fraction n="1.0" ref="SiliconCarbide"/>
-        </material>
-        <material name="Graphite">
-        	<D value="1.7" unit="g/cm3"/>
-        	<composite n="1" ref="C"/>
-        </material>      
-    </materials>
-    <limits>
-        <limitset name="cal_limits">
-            <limit name="step_length_max" particles="*" value="5.0" unit="mm" />
-        </limitset>
-    </limits>
-
-    <display>
-        <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
-        <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
-        <vis name="SiVertexBarrelModuleVis" alpha="1.0" r="1" g="1" b="0.6" drawingStyle="wireframe" showDaughters="false" visible="true"/>
-        <vis name="SiVertexBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="true"/>
-        
-        <vis name="SiVertexEndcapLayerVis" alpha="1.0" r="1" g="0.75" b="0" showDaughters="false" visible="true"/>
-        <vis name="SiVertexEndcapModuleVis" alpha="1.0" r="1" g="0.75" b="0" showDaughters="false" visible="true"/>
-      
-        <vis name="SiTrackerBarrelModuleVis" alpha="1.0" r="1" g="1" b="0.6" drawingStyle="wireframe" showDaughters="false" visible="true"/>
-        <vis name="SiTrackerBarrelLayerVis" alpha="1.0" r="1" g="1" b="0.6" showDaughters="true" visible="true"/>
-        
-        <vis name="SiTrackerEndcapModuleVis" alpha="0.1" r="0.8" g="1.0" b="0.1" drawingStyle="wireframe" showDaughters="false" visible="true"/>        
-            
-        <vis name="SiTrackerForwardVis" alpha="1.0" r="0.8" g="0.1" b="0.1" showDaughters="false" visible="true"/>
-            
-        <vis name="EcalBarrelVis" alpha="1.0" r="0" g="0" b="0.3" showDaughters="true" visible="true"/>
-        <vis name="EcalBarrelStaveVis" alpha="1.0" r="1" g="0.9" b="0.5" showDaughters="false" visible="true"/>
-
-        <vis name="EcalEndcapVis"       alpha="1" r="0.77" g="0.74" b="0.86" showDaughters="false" visible="true"/>
-
-        <vis name="HcalBarrelVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelStavesVis"    alpha="1" r="1"    g="0"    b="0.3" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="true" visible="true"/>
-        <vis name="HcalBarrelSensorVis"    alpha="1" r="1"    g="1"    b="0.7" showDaughters="true" visible="true"/>
-
-        <vis name="HcalEndcapVis"          alpha="1" r="1"    g="1"    b="0.1" showDaughters="false" visible="true"/>
-        <vis name="HcalEndcapLayerVis"     alpha="1" r="1"    g="0"    b="0.5" showDaughters="false" visible="true"/>
-        
-        <vis name="SolenoidBarrelLayerVis" alpha="1" r="0"    g="0.3"  b="0.3" showDaughters="false" visible="true"/>
-        <vis name="SolenoidCoilEndsVis"    alpha="1" r="0"    g="0.9"  b="0.9" showDaughters="false" visible="true"/>
-        <vis name="AntiSolenoidVis"        alpha="1" r="0.3"  g="1"    b="1"   showDaughters="false" visible="true"/>
-
-        <vis name="MuonBarrelVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelStavesVis"    alpha="1" r="0"    g="0.7"  b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelLayerVis"     alpha="1" r="0"    g="1"    b="0.3" showDaughters="true" visible="true"/>
-        <vis name="MuonBarrelSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonBarrelAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
-
-        <vis name="MuonEndcapVis"          alpha="1" r="1"    g="0.4"  b="0.62" showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapLayerVis"     alpha="1" r="0"    g="1"    b="0.3"  showDaughters="true" visible="true"/>
-        <vis name="MuonEndcapSensorVis"    alpha="1" r="0.54" g="0.4"  b="0.41" visible="true"/>
-        <vis name="MuonEndcapAbsorberVis"  alpha="1" r="0.28" g="0.4"  b="0.62" visible="true"/>        
-                       
-        
-        <vis name="BeamPipeVis" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true"/>
-        <vis name="CableVis" showDaughters="false" visible="true"/>
-        
-        <vis name="SupportTubeVis" r="0.1" g="0.1" b="0.99" showDaughters="false" visible="true"/>
-        <vis name="TungstenShieldingVis" r="0.99" g="0.1" b="0.2" showDaughters="false" visible="true"/>
-        
-        <vis name="SupportVis" r="0.8" g="0.8" b="0" showDaughters="false" visible="true"/>
-        <vis name="LumiCalVis" showDaughters="false" visible="true"/>
-        <vis name="GreenVis" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
-        <vis name="RedVis" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
-        <vis name="BlueVis" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
-    </display>
-    <detectors>
-        <comment>Trackers</comment> 
-        <comment>Vertex Detector Endcaps</comment>
-      
-      
-        <detector id="1" name="SiVertexBarrel" type="SiTrackerBarrel" readout="SiVertexBarrelHits" insideTrackingVolume="true">
-            <comment>Vertex Detector Barrel</comment>
-            <module name="VtxBarrelModuleInner" vis="SiVertexBarrelModuleVis">
-                <module_envelope width="10.0" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6"/>
-                <module_component width="7.8" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false">
-                    <position z="-0.12"/>
-                </module_component>
-                <module_component width="9.8" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true">
-                    <position z="0.225"/>
-                </module_component>
-            </module>
-            <module name="VtxBarrelModuleOuter" vis="SiVertexBarrelModuleVis">
-                <module_envelope width="14.0" length="(VertexBarrel_zmax - 0.1*cm) * 2" thickness="0.6"/>
-                <module_component width="11.6" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.0130*cm" material="Carbon" sensitive="false">
-                    <position z="-0.12"/>
-                </module_component>
-                <module_component width="13.8" length="(VertexBarrel_zmax - 0.15*cm) * 2" thickness="0.005*cm" material="Silicon" sensitive="true">
-                    <position z="0.210"/>
-                </module_component>
-            </module>
-            <layer module="VtxBarrelModuleInner" id="1" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r1 - 0.2*cm" outer_r="VertexBarrel_r1 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0" nphi="18" phi0="0.2618" rc="VertexBarrel_r1" dr="-1.15"/>
-                <z_layout dr="0.0" z0="0.0" nz="1"/>
-            </layer>
-            <!--layer module="VtxBarrelModuleOuter" id="2" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r2 - 0.2*cm" outer_r="VertexBarrel_r2 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0" nphi="18" phi0="0.2618" rc="VertexBarrel_r2" dr="-1.13"/>
-                <z_layout dr="0.0" z0="0.0" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="3" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r3 - 0.2*cm" outer_r="VertexBarrel_r3 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0" nphi="24" phi0="0.0" rc="VertexBarrel_r3" dr="-0.89"/>
-                <z_layout dr="0.0" z0="0.0" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="4" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r4 - 0.2*cm" outer_r="VertexBarrel_r4 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0" nphi="30" phi0="0.1309" rc="VertexBarrel_r4" dr="0.81"/>
-                <z_layout dr="0.0" z0="0.0" nz="1"/>
-            </layer>
-            <layer module="VtxBarrelModuleOuter" id="5" vis="SiVertexBarrelLayerVis">
-                <barrel_envelope inner_r="VertexBarrel_r5 - 0.2*cm" outer_r="VertexBarrel_r5 + 0.2*cm" z_length="VertexBarrel_zmax * 2"/>
-                <rphi_layout phi_tilt="0.0" nphi="36" phi0="0.0" rc="VertexBarrel_r5" dr="0.77"/>
-                <z_layout dr="0.0" z0="0.0" nz="1"/>
-            </layer-->
-        </detector>
-      
-    </detectors>
-
-    <readouts>
-        <readout name="SiTrackerEndcapHits">
-            <id>system:6,barrel:3,layer:4,module:16,sensor:1,side:32:-2,strip:20</id>
-        </readout>        
-        <readout name="SiTrackerBarrelHits">
-            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:v32:-2,strip:20</id>
-        </readout>
-        <readout name="SiVertexBarrelHits">
-            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:24</id>
-        </readout>
-        <readout name="SiVertexEndcapHits">
-            <id>system:6,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:26</id>
-        </readout>
-        <readout name="EcalBarrelHits">
-            <segmentation type="EcalBarrelCartesianGridXY" gridSizeX="3.5" gridSizeY="3.5" />
-            <id>system:6,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>        
-        <readout name="EcalEndcapHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.5" gridSizeY="3.5" />
-            <id>system:6,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalBarrelHits">
-            <segmentation type="RegularNgonCartesianGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:6,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalEndcapHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:6,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="HcalPlugHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="MuonBarrelHits">
-            <segmentation type="RegularNgonCartesianGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="MuonEndcapHits">
-            <segmentation type="GlobalGridXY" gridSizeX="3.0*cm" gridSizeY="3.0*cm" />
-            <id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="SiTrackerForwardHits">
-            <id>system:6,barrel:3,layer:4,wedge:6,module:6,sensor:1,side:32:-2,strip:28</id>
-        </readout>
-        <readout name="LumiCalHits">
-            <segmentation type="GridXYZ" gridSizeX="0.35*cm" gridSizeY="0.35*cm" />
-            <id>system:8,layer:8,barrel:3,x:32:-16,y:-16</id>
-        </readout>
-        <readout name="BeamCalHits">
-            <segmentation type="GridXYZ" gridSizeX="0.35*cm" gridSizeY="0.35*cm" />
-            <id>system:8,layer:8,barrel:3,x:32:-16,y:-16</id>
-        </readout>
-    </readouts>
-    <fields>
-        <field type="Solenoid" name="GlobalSolenoid" inner_field="5.0"
-        outer_field="-1.5" zmax="SolenoidCoilOuterZ"
-        outer_radius="SolenoidalFieldRadius" />
-    </fields>
-</lccdd>
diff --git a/examples/CLICSiD/drivers/SiTrackerBarrel.py b/examples/CLICSiD/drivers/SiTrackerBarrel.py
deleted file mode 100644
index bfcf0edb82f3fad7aeaa99d5d0aefa834fdad79e..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/drivers/SiTrackerBarrel.py
+++ /dev/null
@@ -1,110 +0,0 @@
-def detector_SiTrackerBarrel(lcdd, det):
-  sdet    = DetElement(lcdd, det.name, det.type, det.id)
-  mother  = lcdd.trackingVolume()
-
-  #---Loop over modules------------------------------------------------------------------
-  for mod in det.findall('module'):
-    env = mod.find('module_envelope')
-    m_nam = det.name+'_'+mod.name
-    m_box = Box(lcdd, m_nam+'_box', env.width, env.length, env.thickness)
-    m_vol = Volume(lcdd, m_nam, m_box, lcdd.material('Air'))
-    m_de  = DetElement(lcdd,m_nam,det.type+'/Module',det.id)
-    
-    #---Loop over components-----------------------------------------------------------
-    n_comp, n_sensor = 0, 0
-    for c in mod.findall('module_component'):
-      c_nam = m_nam+'_component%d' % n_comp
-      c_box = Box(lcdd, c_nam+'_box', c.width/2, c.length/2, c.thickness/2)
-      c_vol = Volume(lcdd, c_nam, c_box, lcdd.material(c.material))
-      c_de  = DetElement(lcdd,c_nam, det.type+'/Module/Component', det.id)
-      pos = c.find('position')
-      rot = c.find('rotation')
-      if pos and rot :
-        c_phv = m_vol.placeVolume(c_vol, getPosition(pos), getRotation(rot))
-      elif pos :
-        c_phv = m_vol.placeVolume(c_vol, getPosition(pos))
-      elif rot :
-        c_phv = m_vol.placeVolume(c_vol, getRotation(rot))
-      else:
-        c_phv = m_vol.placeVolume(c_vol)
-      if c.getB('sensitive'):
-        c_phv.addPhysVolID('sensor',n_sensor)
-        #c_vol.setSensitiveDetector(sens)
-        n_sensor += 1
-      c_de.setAttributes(lcdd, c_vol, c.get('region',''), c.get('limits',''), mod.get('vis',''))
-      m_de.add(c_de)
-      n_comp += 1
-    #--Endloop components------------------------------------------------------------
-    m_vol.setVisAttributes(lcdd.visAttributes(mod.vis))
-    sdet.add(m_de)
-  #---Loop over layers---------------------------------------------------------------
-  for layer in det.findall('layer'):
-    barrel   = layer.find('barrel_envelope')
-    x_layout = layer.find('rphi_layout')
-    z_layout = layer.find('z_layout')
-    m_nam    = det.name+'_'+layer.module
-    m_de     = sdet.child(m_nam)
-    m_vol    = lcdd.volume(m_nam);
-    lay_nam  = det.name+'_layer%d'%layer.id
-    lay_tub  = Tube(lcdd, lay_nam+'_tube', barrel.inner_r, barrel.outer_r, barrel.z_length)
-    lay_vol  = Volume(lcdd, lay_nam,lay_tub,  lcdd.material(c.material))
-    phi0     = x_layout.getF('phi0')      # Starting phi of first module.
-    phi_tilt = x_layout.getF('phi_tilt')  # Phi tilt of a module.
-    rc       = x_layout.getF('rc')        # Radius of the module center.
-    nphi     = x_layout.getI('nphi')      # Number of modules in phi.
-    rphi_dr  = x_layout.getF('dr')        # The delta radius of every other module.
-    phi_incr = (pi * 2) / nphi            # Phi increment for one module.
-    phic     = phi0                       # Phi of the module center.
-    z0       = z_layout.getF('z0')        # Z position of first module in phi.
-    nz       = z_layout.getF('nz')        # Number of modules to place in z.
-    z_dr     = z_layout.getF('dr')        # Radial displacement parameter, of every other module.
-      
-    # Z increment for module placement along Z axis.
-    # Adjust for z0 at center of module rather than the end of cylindrical envelope.
-    z_incr   = nz > 1 and (2.0 * z0) / (nz - 1) or 0.0
-    # Starting z for module placement along Z axis.
-    module_z = -z0
-    module = 0
-      
-    #---Loop over the number of modules in phi.
-    for ii in range(nphi):
-      dx = z_dr * cos(phic + phi_tilt)	# Delta x of module position.
-      dy = z_dr * sin(phic + phi_tilt)	# Delta y of module position.
-      x = rc * cos(phic)                # Basic x module position.
-      y = rc * sin(phic)               	# Basic y module position.
-        
-      #---Loop over the number of modules in z.
-      for j in range(nz) :
-        # Create a unique name for the module in this logical volume, layer, phi, and z.
-        m_place = lay_nam + '_phi%d'%ii + '_z%d'%j
-        z = module_z;
-        # Module PhysicalVolume.
-        m_physvol = lay_vol.placeVolume(m_vol,Position(x,y,z),
-                                              Rotation(pi/2,-((pi/2)-phic-phi_tilt),0))
-        m_physvol.addPhysVolID('module', module)
-        module += 1
-          
-        # Adjust the x and y coordinates of the module.
-        x += dx
-        y += dy
-        # Flip sign of x and y adjustments.
-        dx *= -1
-        dy *= -1
-        # Add z increment to get next z placement pos.
-        module_z += z_incr
-      # Increment the phi placement of module.
-      phic += phi_incr
-      # Increment the center radius according to dr parameter.
-      rc += rphi_dr
-      # Flip sign of dr parameter.
-      rphi_dr *= -1
-      # Reset the Z placement parameter for module.
-      module_z = -z0
-      m_de.setAttributes(lcdd,lay_vol,layer.get('region',''), layer.get('limits',''), layer.get('vi',''))
-      
-  # Create the PhysicalVolume for the layer.
-  lpv = mother.placeVolume(lay_vol)       # Place layer in mother
-  lpv.addPhysVolID('system', det.id)      # Set the subdetector system ID.
-  lpv.addPhysVolID('barrel', 0)           # Flag this as a barrel subdetector.
-  lpv.addPhysVolID('layer', layer.id)       # Set the layer ID.    
-  return sdet
diff --git a/examples/CLICSiD/drivers/SiTrackerEndcap2.py b/examples/CLICSiD/drivers/SiTrackerEndcap2.py
deleted file mode 100644
index 94ee3a22b06ca80e2cd36daec179e47caa62e978..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/drivers/SiTrackerEndcap2.py
+++ /dev/null
@@ -1,62 +0,0 @@
-def detector_SiTrackerEndcap2(lcdd, det):
-  sdet    = DetElement(lcdd, det.name, det.type, det.id)
-  mother  = lcdd.trackingVolume()
-  modules = {}
-  #---Loop over modules------------------------------------------------------------------
-  for mod in det.findall('module'):
-    trd   = mod.find('trd')
-    comps = mod.findall('module_component')
-    total_thickness = 0
-    for c in comps: total_thickness += c.thickness
-    m_envelope = Trapezoid(lcdd, mod.name+'Trd', trd.x1, trd.x2, 
-                           total_thickness/2, total_thickness/2, trd.z)
-    m_volume   = Volume(lcdd, mod.name+'Volume', m_envelope, lcdd.material('Vacuum'))
-    if mod.vis : m_volume.setVisAttributes(lcdd.visAttributes(mod.vis))
-    #---Loop open components-----------------------------------------------------------
-    n_sensor, c_id, posY = 0, 0, -total_thickness/2 
-    for c in comps:
-      c_name =  mod.name+'_component%d'%c_id
-      shp = Trapezoid(lcdd, c_name+"_trd", trd.x1, trd.x2, c.thickness/2e0, c.thickness/2e0, trd.z)
-      vol = Volume(lcdd, c_name, shp, lcdd.material(c.material))
-      if mod.vis : vol.setVisAttributes(lcdd.visAttributes(mod.vis))
-      phv = m_volume.placeVolume(vol, Position(0e0, posY + c.thickness/2e0, 0e0))
-      phv.addPhysVolID('component', c_id)
-      if c.getB('sensitive'):
-        if n_sensor > 1 : print 'SiTrackerEndcap2::fromCompact: '+c_name+' Max of 2 modules allowed!'
-        phv.addPhysVolID('sensor',c_id)
-        #vol.setSensitiveDetector(sens)
-        ++n_sensor
-      posY += c.thickness
-      c_id += 1
-    modules[mod.name] = m_volume
-  #--Loop over Layers------------------------------------------------------------------
-  for layer in det.findall('layer'):
-    mod_num = 0
-    for ring in layer.findall('ring'):
-      nmodules = ring.getI('nmodules')
-      m_nam = ring.get('module')
-      m_vol = modules[m_nam]
-      iphi, phi = 2*pi/nmodules, ring.getF('phi0',0)
-      for k in range(nmodules):
-        m_base = det.name+'_layer%d'%layer.id+'_module%d'%mod_num
-        x = ring.r * cos(phi)
-        y = ring.r * sin(phi)
-        pv = mother.placeVolume(m_vol, Position(x,y,ring.zstart+ring.dz),
-                                       Rotation(-pi/2,-pi/2+phi,0))
-        pv.addPhysVolID('system',det.id).addPhysVolID('barrel',1)
-        pv.addPhysVolID('layer', layer.id).addPhysVolID('module',mod_num)
-        module = DetElement(lcdd, m_base, det.type+"/Module", det.id)
-        module.addPlacement(pv)
-        sdet.add(module)
-        if det.getB('reflect'):
-          pv = mother.placeVolume(m_vol, Position(x,y,-ring.zstart-ring.dz),
-                                         Rotation(-pi/2,-pi/2-phi,pi))
-          pv.addPhysVolID('system',det.id).addPhysVolID('barrel',2)
-          pv.addPhysVolID('layer', layer.id).addPhysVolID('module',mod_num)
-          r_module = DetElement(lcdd, m_base+'_reflect', det.type+"/Module", det.id)
-          r_module.addPlacement(pv)
-          sdet.add(r_module)
-        phi += iphi
-        mod_num += 1            
-  return sdet
-
diff --git a/examples/CLICSiD/src/CylindricalBarrelCalorimeter_geo.cpp b/examples/CLICSiD/src/CylindricalBarrelCalorimeter_geo.cpp
deleted file mode 100644
index 5e0a2ab7b081b27ac619a213a66c121756200abd..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/CylindricalBarrelCalorimeter_geo.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)   {
-  xml_det_t  x_det     = e;
-  xml_dim_t  dim       = x_det.dimensions();
-  Material   air       = lcdd.air();
-  string     det_name  = x_det.nameStr();
-  DetElement sdet       (det_name,x_det.id());
-  double     z         = dim.outer_z();
-  double     rmin      = dim.inner_r();
-  double     r         = rmin;
-  int        n         = 0;
-  Tube       envelope(rmin,2*rmin,2*z);
-  Volume     envelopeVol(det_name+"_envelope",envelope,air);
-    
-  for(xml_coll_t c(x_det,_U(layer)); c; ++c)  {
-    xml_comp_t x_layer = c;
-    for(int i=0, m=0, repeat=x_layer.repeat(); i<repeat; ++i, m=0)  {
-      string layer_name = det_name + _toString(n,"_layer%d");
-      double rlayer = r;
-      Tube   layer_tub(rmin,rlayer,2*z);
-      Volume layer_vol(layer_name,layer_tub,air);
-        
-      for(xml_coll_t l(x_layer,_U(slice)); l; ++l, ++m)  {
-	xml_comp_t x_slice = l;
-	double     router = r + x_slice.thickness();
-	Material   slice_mat  = lcdd.material(x_slice.materialStr());
-	string     slice_name = layer_name + _toString(m,"slice%d");
-	Tube       slice_tube(r,router,z*2);
-	Volume     slice_vol (slice_name,slice_tube,slice_mat);
-          
-	if ( x_slice.isSensitive() ) {
-	  sens.setType("calorimeter");
-	  slice_vol.setSensitiveDetector(sens);
-	}
-	r = router;
-	slice_vol.setAttributes(lcdd,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
-	// Instantiate physical volume
-	layer_vol.placeVolume(slice_vol);
-      }
-      layer_vol.setVisAttributes(lcdd,x_layer.visStr());
-      layer_tub.setDimensions(rlayer,r,z*2,0,2*M_PI);
-        
-      PlacedVolume layer_physvol = envelopeVol.placeVolume(layer_vol);
-      layer_physvol.addPhysVolID("layer",n);
-      ++n;
-    }
-  }
-  envelope.setDimensions(rmin,r,2*z);
-  // Set region of slice
-  envelopeVol.setAttributes(lcdd,x_det.regionStr(),x_det.limitsStr(),x_det.visStr());
-    
-  PlacedVolume physvol = lcdd.pickMotherVolume(sdet).placeVolume(envelopeVol);
-  physvol.addPhysVolID("system",sdet.id()).addPhysVolID(_U(barrel),0);
-  sdet.setPlacement(physvol);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(CylindricalBarrelCalorimeter,create_detector)
diff --git a/examples/CLICSiD/src/CylindricalEndcapCalorimeter_geo.cpp b/examples/CLICSiD/src/CylindricalEndcapCalorimeter_geo.cpp
deleted file mode 100644
index 2e6c20556a713b86816bfd07c43805f833d13f60..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/CylindricalEndcapCalorimeter_geo.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-#include "XML/Layering.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t  x_det     = e;
-  xml_dim_t  dim       = x_det.dimensions();
-  Material   air       = lcdd.air();
-  string     det_name  = x_det.nameStr();
-  bool       reflect   = x_det.reflect();
-  double     zmin      = dim.inner_z();
-  double     rmin      = dim.inner_r();
-  double     rmax      = dim.outer_r();
-  double     totWidth  = Layering(x_det).totalThickness();
-  double     z         = zmin;
-  Tube       envelope   (rmin,rmax,totWidth/2);
-  Volume     envelopeVol(det_name+"_envelope",envelope,air);
-  int        layer_num = 1;
-  PlacedVolume pv;
-
-  // Set attributes of slice
-  for(xml_coll_t c(x_det,_U(layer)); c; ++c)  {
-    xml_comp_t x_layer = c;
-    double layerWidth = 0;
-    for(xml_coll_t l(x_layer,_U(slice)); l; ++l)
-      layerWidth += xml_comp_t(l).thickness();
-    for(int i=0, m=0, repeat=x_layer.repeat(); i<repeat; ++i)  {
-      double     zlayer = z;
-      string     layer_name = det_name + _toString(layer_num,"_layer%d");
-      Volume     layer_vol(layer_name,Tube(rmin,rmax,layerWidth),air);
-
-      for(xml_coll_t l(x_layer,_U(slice)); l; ++l, ++m)  {
-	xml_comp_t x_slice = l;
-	double     w = x_slice.thickness();
-	string     slice_name = layer_name + _toString(m+1,"slice%d");
-	Material   slice_mat  = lcdd.material(x_slice.materialStr());
-	Volume     slice_vol (slice_name,Tube(rmin,rmax,w),slice_mat);
-
-	if ( x_slice.isSensitive() )  {
-	  sens.setType("calorimeter");
-	  slice_vol.setSensitiveDetector(sens);
-	}
-	slice_vol.setAttributes(lcdd,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
-	pv = layer_vol.placeVolume(slice_vol,Position(0,0,z-zlayer-layerWidth/2+w/2));
-	pv.addPhysVolID("slice",m+1);
-	z += w;
-      }
-      layer_vol.setVisAttributes(lcdd,x_layer.visStr());
-
-      Position layer_pos(0,0,zlayer-zmin-totWidth/2+layerWidth/2);
-      pv = envelopeVol.placeVolume(layer_vol,layer_pos);
-      pv.addPhysVolID("layer",layer_num);
-      ++layer_num;
-    }
-  }
-  envelope.setDimensions(rmin,rmax,totWidth/2);
-  // Set attributes of slice
-  envelopeVol.setAttributes(lcdd,x_det.regionStr(),x_det.limitsStr(),x_det.visStr());
-
-  DetElement   sdet(det_name,x_det.id());
-  Assembly     assembly(det_name+"_assembly");
-  Volume       motherVol = lcdd.pickMotherVolume(sdet);
-  PlacedVolume phv = motherVol.placeVolume(assembly);
-  phv.addPhysVolID("system",sdet.id());
-  sdet.setPlacement(phv);
-
-  DetElement   sdetA(sdet,det_name+(reflect ? "_A" : ""),x_det.id());
-  phv = assembly.placeVolume(envelopeVol,Position(0,0,zmin+totWidth/2));
-  phv.addPhysVolID("barrel",1);
-  sdetA.setPlacement(phv);
-
-  if ( reflect )   {
-    phv=assembly.placeVolume(envelopeVol,Transform3D(RotationZ(M_PI),Position(0,0,-zmin-totWidth/2)));
-    phv.addPhysVolID("barrel",2);
-    /// Create the detector element for the opposite side....
-    DetElement   sdetB(sdet,det_name+"_B",x_det.id());
-    sdetB.setPlacement(phv);
-  }
-  return sdet;
-}
-
-DECLARE_DETELEMENT(CylindricalEndcapCalorimeter,create_detector)
diff --git a/examples/CLICSiD/src/DiskTracker_geo.cpp b/examples/CLICSiD/src/DiskTracker_geo.cpp
deleted file mode 100644
index b597b3d908e94cb10ebe149d752e0abb475607cf..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/DiskTracker_geo.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t  x_det     = e;
-  Material   air       = lcdd.air();
-  string     det_name  = x_det.nameStr();
-  bool       reflect   = x_det.reflect();
-  DetElement sdet(det_name,x_det.id());
-  Assembly   assembly(det_name);
-  PlacedVolume pv;
-  int l_num = 0;
-    
-  for(xml_coll_t i(x_det,_U(layer)); i; ++i, ++l_num)  {
-    xml_comp_t x_layer = i;
-    string l_nam = det_name+_toString(l_num,"_layer%d");
-    double  zmin = x_layer.inner_z();
-    double  rmin = x_layer.inner_r();
-    double  rmax = x_layer.outer_r();
-    double  z    = zmin, layerWidth = 0.;
-    int     s_num = 0;
-      
-    for(xml_coll_t j(x_layer,_U(slice)); j; ++j)  {
-      double thickness = xml_comp_t(j).thickness();
-      layerWidth += thickness;
-    }
-    Tube    l_tub(rmin,rmax,layerWidth,2*M_PI);
-    Volume  l_vol(l_nam,l_tub,air);
-    l_vol.setVisAttributes(lcdd,x_layer.visStr());
-    for(xml_coll_t j(x_layer,_U(slice)); j; ++j, ++s_num)  {
-      xml_comp_t x_slice = j;
-      double thick = x_slice.thickness();
-      Material mat = lcdd.material(x_slice.materialStr());
-      string s_nam = l_nam+_toString(s_num,"_slice%d");
-      Volume s_vol(s_nam, Tube(rmin,rmax,thick), mat);
-        
-      if ( x_slice.isSensitive() ) {
-	sens.setType("tracker");
-	s_vol.setSensitiveDetector(sens);
-      }
-      s_vol.setAttributes(lcdd,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
-      pv = l_vol.placeVolume(s_vol,Position(0,0,z-zmin-layerWidth/2+thick/2));
-      pv.addPhysVolID("slice",s_num);
-    }
-
-    DetElement layer(sdet,l_nam+"_pos",l_num);
-    pv = assembly.placeVolume(l_vol,Position(0,0,zmin+layerWidth/2.));
-    pv.addPhysVolID("layer",l_num);
-    pv.addPhysVolID("barrel",1);
-    layer.setPlacement(pv);
-    if ( reflect )  {
-      pv = assembly.placeVolume(l_vol,Transform3D(RotationY(M_PI),Position(0,0,-zmin-layerWidth/2)));
-      pv.addPhysVolID("layer",l_num);
-      pv.addPhysVolID("barrel",2);
-      DetElement layerR = layer.clone(l_nam+"_neg");
-      sdet.add(layerR.setPlacement(pv));
-    }
-  }
-  if ( x_det.hasAttr(_U(combineHits)) ) {
-    sdet.setCombineHits(x_det.attr<bool>(_U(combineHits)),sens);
-  }
-  pv = lcdd.pickMotherVolume(sdet).placeVolume(assembly);
-  pv.addPhysVolID("system", x_det.id());      // Set the subdetector system ID.
-  sdet.setPlacement(pv);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(DiskTracker,create_detector)
diff --git a/examples/CLICSiD/src/DiskTracker_no_shortcuts_geo.cpp b/examples/CLICSiD/src/DiskTracker_no_shortcuts_geo.cpp
deleted file mode 100644
index fb987c7420d6226fb5dc08bec1ed276e8ee9c222..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/DiskTracker_no_shortcuts_geo.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//
-//  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-//
-//  This is only an example how the code would look like if the
-//  built-in shortcuts in XMLDetector and the predefined tag names
-//  wout NOT be used.
-//
-//  This is a BAD and INEFFICIENT example.
-//
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, XML::Element x_det, SensitiveDetector sens)  {
-  Material   air       = lcdd.air();
-  string     det_name  = x_det.attr<string>(Unicode("name"));
-  int        det_id    = x_det.attr<int>(Unicode("id"));
-  bool       reflect   = x_det.attr<bool>(Unicode("reflect"));
-  DetElement sdet(det_name,det_id);
-  Volume     motherVol = lcdd.pickMotherVolume(sdet);
-  int l_num = 0;
-    
-  for(xml_coll_t i(x_det,"layer"); i; ++i, ++l_num)  {
-    XML::Element  x_layer = i;
-    string l_nam = det_name+_toString(l_num,"_layer%d");
-    double  zmin = x_layer.attr<double>(Unicode("inner_z"));
-    double  rmin = x_layer.attr<double>(Unicode("inner_r"));
-    double  rmax = x_layer.attr<double>(Unicode("outer_r"));
-    double  z    = zmin, layerWidth = 0.;
-    int     s_num = 0;
-
-    for(xml_coll_t j(x_layer,"slice"); j; ++j)  {
-      double thickness = j.attr<double>(Unicode("thickness"));
-      layerWidth += thickness;
-    }
-    Tube    l_tub(rmin,rmax,layerWidth,2*M_PI);
-    Volume  l_vol(l_nam,l_tub,air);
-    string  l_vis = x_layer.attr<string>(Unicode("vis"));
-    l_vol.setVisAttributes(lcdd,l_vis);
-    for(xml_coll_t j(x_layer,"slice"); j; ++j, ++s_num)  {
-      XML::Element x_slice  = j;
-      double thick    = x_slice.attr<double>(Unicode("thickness"));
-      string mat_name = x_slice.attr<string>(Unicode("material"));
-      Material mat = lcdd.material(mat_name);
-      string s_nam = l_nam+_toString(s_num,"_slice%d");
-      Volume s_vol(s_nam, Tube(rmin,rmax,thick), mat);
-
-      if ( x_slice.hasAttr(Unicode("sensitive")) )  {
-	if ( x_slice.attr<bool>(Unicode("sensitive")) )  {
-	  s_vol.setSensitiveDetector(sens);
-	}
-      }
-      string region, limits, vis;
-      if ( x_slice.hasAttr(Unicode("region")) )  {
-	region = x_slice.attr<string>(Unicode("region"));
-      }
-      if ( x_slice.hasAttr(Unicode("limits")) )  {
-	limits = x_slice.attr<string>(Unicode("limits"));
-      }
-      if ( x_slice.hasAttr(Unicode("vis")) )  {
-	vis    = x_slice.attr<string>(Unicode("vis"));
-      }
-      s_vol.setAttributes(lcdd,region,limits,vis);
-
-      PlacedVolume spv = l_vol.placeVolume(s_vol,Position(0,0,z-zmin-layerWidth/2+thick/2));
-      spv.addPhysVolID("layer",l_num);
-      spv.addPhysVolID("slice",s_num);
-    }
-
-    PlacedVolume lpv = motherVol.placeVolume(l_vol,Position(0,0,zmin+layerWidth/2.));
-    lpv.addPhysVolID("system",sdet.id());
-    lpv.addPhysVolID("barrel",1);
-    DetElement layer(sdet,l_nam,l_num);
-    layer.setPlacement(lpv);
-    if ( reflect )  {
-      PlacedVolume lpvR = motherVol.placeVolume(l_vol,Transform3D(Rotation3D(RotationY(M_PI)),Position(0,0,-zmin-layerWidth/2)));
-      lpvR.addPhysVolID("system",sdet.id());
-      lpvR.addPhysVolID("barrel",2);
-      DetElement layerR = layer.clone(l_nam+"_reflect");
-      sdet.add(layerR.setPlacement(lpvR));
-    }
-  }
-  sdet.setCombineHits(x_det.attr<bool>(Unicode("combineHits")),sens);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(DiskTracker_no_shortcuts,create_detector)
diff --git a/examples/CLICSiD/src/EcalBarrel_geo.cpp b/examples/CLICSiD/src/EcalBarrel_geo.cpp
deleted file mode 100644
index e778b970f262a518479739a6e86ed0b178c90684..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/EcalBarrel_geo.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-#include "XML/Layering.h"
-#include "TGeoTrd2.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  static double tolerance = 0e0;
-  Layering      layering (e);
-  xml_det_t     x_det     = e;
-  Material      air       = lcdd.air();
-  int           det_id    = x_det.id();
-  string        det_name  = x_det.nameStr();
-  xml_comp_t    x_staves  = x_det.staves();
-  xml_comp_t    x_dim     = x_det.dimensions();
-  int           nsides    = x_dim.numsides();
-  double        inner_r   = x_dim.rmin();
-  double        dphi      = (2*M_PI/nsides);
-  double        hphi      = dphi/2;
-  double        mod_z     = layering.totalThickness();
-  double        outer_r   = inner_r + mod_z;
-  double        totThick  = mod_z;
-  DetElement    sdet      (det_name,det_id);
-  Volume        motherVol = lcdd.pickMotherVolume(sdet);
-  PolyhedraRegular hedra  (nsides,inner_r,inner_r+totThick+tolerance*2e0,x_dim.z());
-  Volume        envelope  (det_name+"_envelope",hedra,air);
-  PlacedVolume  env_phv   = motherVol.placeVolume(envelope,RotationZYX(0,0,M_PI/nsides));
-
-  env_phv.addPhysVolID("system",det_id);
-  env_phv.addPhysVolID("barrel",0);
-  sdet.setPlacement(env_phv);
-
-  DetElement    stave_det("stave0",det_id);
-  double dx = mod_z / std::sin(dphi); // dx per layer
-  dx = 0;
-    
-  // Compute the top and bottom face measurements.
-  double trd_x2 = (2 * std::tan(hphi) * outer_r - dx)/2 - tolerance;
-  double trd_x1 = (2 * std::tan(hphi) * inner_r + dx)/2 - tolerance;
-  double trd_y1 = x_dim.z()/2 - tolerance;
-  double trd_y2 = trd_y1;
-  double trd_z  = mod_z/2 - tolerance;
-		
-  // Create the trapezoid for the stave.
-  Trapezoid trd(trd_x1, // Outer side, i.e. the "short" X side.
-		trd_x2, // Inner side, i.e. the "long"  X side.
-		trd_y1, // Corresponds to subdetector (or module) Z.
-		trd_y2, //
-		trd_z); // Thickness, in Y for top stave, when rotated.
-
-  Volume mod_vol(det_name+"_module",trd,air);
-
-  sens.setType("calorimeter");
-  { // =====  buildBarrelStave(lcdd, sens, module_volume) =====
-    // Parameters for computing the layer X dimension:
-    double stave_z  = trd_y1/2;
-    double l_dim_x  = trd_x1/2;                            // Starting X dimension for the layer.
-    double adj      = (l_dim_x-trd_x2/2)/2;                // Adjacent angle of triangle.
-    double hyp      = std::sqrt(trd_z*trd_z/4 + adj*adj);  // Hypotenuse of triangle.
-    double beta     = std::acos(adj / hyp);                // Lower-right angle of triangle.
-    double tan_beta = std::tan(beta);                      // Primary coefficient for figuring X.
-    double l_pos_z  = -(layering.totalThickness() / 2);
-
-    // Loop over the sets of layer elements in the detector.
-    int l_num = 1;
-    for(xml_coll_t li(x_det,_U(layer)); li; ++li)  {
-      xml_comp_t x_layer = li;
-      int repeat = x_layer.repeat();
-      // Loop over number of repeats for this layer.
-      for (int j=0; j<repeat; j++)    {
-	string l_name = _toString(l_num,"layer%d");
-	double l_thickness = layering.layer(l_num-1)->thickness();  // Layer's thickness.
-	double xcut = (l_thickness / tan_beta);                     // X dimension for this layer.
-	l_dim_x -= xcut/2;
-
-	Position   l_pos(0,0,l_pos_z+l_thickness/2);      // Position of the layer.
-	Box        l_box(l_dim_x*2-tolerance,stave_z*2-tolerance,l_thickness-tolerance);
-	Volume     l_vol(det_name+"_"+l_name,l_box,air);
-	DetElement layer(stave_det, l_name, det_id);
-
-	// Loop over the sublayers or slices for this layer.
-	int s_num = 1;
-	double s_pos_z = -(l_thickness / 2);
-	for(xml_coll_t si(x_layer,_U(slice)); si; ++si)  {
-	  xml_comp_t x_slice = si;
-	  string     s_name  =  _toString(s_num,"slice%d");
-	  double     s_thick = x_slice.thickness();
-	  Box        s_box(l_dim_x*2-tolerance,stave_z*2-tolerance,s_thick-tolerance);
-	  Volume     s_vol(det_name+"_"+l_name+"_"+s_name,s_box,lcdd.material(x_slice.materialStr()));
-          DetElement slice(layer,s_name,det_id);
-
-          if ( x_slice.isSensitive() ) {
-	    s_vol.setSensitiveDetector(sens);
-	  }
-          slice.setAttributes(lcdd,s_vol,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
-
-          // Slice placement.
-          PlacedVolume slice_phv = l_vol.placeVolume(s_vol,Position(0,0,s_pos_z+s_thick/2));
-          slice_phv.addPhysVolID("slice", s_num);
-          slice.setPlacement(slice_phv);
-          // Increment Z position of slice.
-          s_pos_z += s_thick;
-                                        
-          // Increment slice number.
-          ++s_num;
-        }        
-
-        // Set region, limitset, and vis of layer.
-        layer.setAttributes(lcdd,l_vol,x_layer.regionStr(),x_layer.limitsStr(),x_layer.visStr());
-
-        PlacedVolume layer_phv = mod_vol.placeVolume(l_vol,l_pos);
-        layer_phv.addPhysVolID("layer", l_num);
-        layer.setPlacement(layer_phv);
-        // Increment to next layer Z position.
-        l_pos_z += l_thickness;          
-        ++l_num;
-      }
-    }
-  }
-
-  // Set stave visualization.
-  if (x_staves)   {
-    mod_vol.setVisAttributes(lcdd.visAttributes(x_staves.visStr()));
-  }
-  // Phi start for a stave.
-  double phi = M_PI / nsides;
-  double mod_x_off = dx / 2;             // Stave X offset, derived from the dx.
-  double mod_y_off = inner_r + mod_z/2;  // Stave Y offset
-
-  // Create nsides staves.
-  for (int i = 0; i < nsides; i++, phi -= dphi)      { // i is module number
-    // Compute the stave position
-    double m_pos_x = mod_x_off * std::cos(phi) - mod_y_off * std::sin(phi);
-    double m_pos_y = mod_x_off * std::sin(phi) + mod_y_off * std::cos(phi);
-    Transform3D tr(RotationZYX(0,phi,M_PI*0.5),Translation3D(-m_pos_x,-m_pos_y,0));
-    PlacedVolume pv = envelope.placeVolume(mod_vol,tr);
-    pv.addPhysVolID("system",det_id);
-    pv.addPhysVolID("barrel",0);
-    pv.addPhysVolID("module",i+1);
-    DetElement sd = i==0 ? stave_det : stave_det.clone(_toString(i,"stave%d"));
-    sd.setPlacement(pv);
-    sdet.add(sd);
-  }
-
-  // Set envelope volume attributes.
-  envelope.setAttributes(lcdd,x_det.regionStr(),x_det.limitsStr(),x_det.visStr());
-  return sdet;
-}
-
-DECLARE_DETELEMENT(EcalBarrel,create_detector)
diff --git a/examples/CLICSiD/src/ForwardDetector_geo.cpp b/examples/CLICSiD/src/ForwardDetector_geo.cpp
deleted file mode 100644
index 47dd47882d996f3c13985139a5f3c42ad7982d72..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/ForwardDetector_geo.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "XML/Layering.h"
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t   x_det      = e;
-  xml_dim_t   dim        = x_det.dimensions();
-  bool        reflect    = x_det.reflect();
-  xml_comp_t  beam       = x_det.beampipe();
-  string      det_name   = x_det.nameStr();
-  int         id         = x_det.id();
-  Material    air        = lcdd.air();
-  DetElement  sdet       (det_name,id);
-  Layering    layering   (x_det);
-
-  Volume      motherVol  = lcdd.pickMotherVolume(sdet);
-
-  double      rmax       = dim.outer_r();
-  double      rmin       = dim.inner_r();
-  double      zinner     = dim.inner_z();
-  double      outgoingR  = beam.outgoing_r();
-  double      incomingR  = beam.incoming_r();
-  double      xangle     = beam.crossing_angle();
-  double      xangleHalf = xangle/2;
-  double      thickness  = layering.totalThickness();
-  double      zpos       = zinner + thickness/2;
-  // Beampipe position in envelope.
-  double      beamPosX   = std::tan(xangleHalf) * zpos;
-
-  // Detector envelope solid. 
-  Tube envelopeTube(rmin,rmax,thickness/2);
-
-  // First envelope bool subtracion of outgoing beampipe.
-  // Incoming beampipe solid.
-  Tube beamInTube(0,outgoingR,thickness);
-  // Position of incoming beampipe.
-  Position beamInPos(beamPosX,0,0);
-  /// Rotation of incoming beampipe.
-  Rotation3D  beamInRot(RotationY(1.*xangleHalf));
-  Transform3D beamInTrans(beamInRot,beamInPos);
-
-  // Second envelope bool subtracion of outgoing beampipe.
-  // Outgoing beampipe solid.
-  Tube     beamOutTube(0,incomingR,thickness);
-  // Position of outgoing beampipe.
-  Position beamOutPos(-beamPosX,0,0);
-  // Rotation of outgoing beampipe.
-  Rotation3D  beamOutRot(RotationY(-xangleHalf));
-  Transform3D beamOutTrans(beamOutRot,beamOutPos);
-
-  // First envelope bool subtraction of incoming beampipe.
-  SubtractionSolid envelopeSubtraction1(envelopeTube,beamInTube,beamInTrans);
-  SubtractionSolid envelopeSubtraction2(envelopeSubtraction1,beamOutTube,beamOutTrans);
-
-  // Final envelope bool volume.
-  Volume envelopeVol(det_name+"_envelope", envelopeSubtraction2, air);
-
-  // Process each layer element.
-  double layerPosZ   = -thickness / 2;
-  double layerDisplZ = 0;
-
-  int layerCount = 1;
-  for(xml_coll_t c(x_det,_U(layer)); c; ++c)  {
-    xml_comp_t x_layer = c;
-    double layerThickness = layering.singleLayerThickness(x_layer);
-
-    // Create tube envelope for this layer, which can be reused in bool definition
-    // in the repeat loop below.
-    Tube layerTube(rmin,rmax,layerThickness);
-
-    for(int i=0, repeat=x_layer.repeat(); i<repeat; ++i)  {
-      string layer_nam = _toString(layerCount,"layer%d");
-      // Increment to new layer position.
-      layerDisplZ += layerThickness / 2;
-      layerPosZ   += layerThickness / 2;
-
-      // First layer subtraction solid.
-      DetElement  layer(sdet,layer_nam,sdet.id());
-      double      layerGlobalZ = zinner + layerDisplZ;
-      double      layerPosX    = std::tan(xangleHalf) * layerGlobalZ;
-      Position    layer1SubPos( layerPosX,0,0);
-      Position    layer2SubPos(-layerPosX,0,0);
-
-      SubtractionSolid layerSubtraction1(layerTube,beamInTube,Transform3D(beamInRot,layer1SubPos));
-      // Second layer subtraction solid.
-      SubtractionSolid layerSubtraction2(layerSubtraction1,beamOutTube,Transform3D(beamOutRot,layer2SubPos));
-      // Layer LV.
-      Volume layerVol(det_name+"_"+layer_nam,layerSubtraction2,air);
-      
-      // Slice loop.
-      int sliceCount = 1;
-      double slicePosZ = -layerThickness / 2;
-      double sliceDisplZ = 0;
-      for(xml_coll_t l(x_layer,_U(slice)); l; ++l)  {
-	xml_comp_t x_slice = l;
-	string slice_nam = _toString(sliceCount,"slice%d");
-	/** Get slice parameters. */
-	double sliceThickness = x_slice.thickness();
-	Material slice_mat = lcdd.material(x_slice.materialStr());
-
-	// Go to mid of this slice.
-	sliceDisplZ += sliceThickness / 2;
-	slicePosZ   += sliceThickness / 2;
-
-	// Slice's basic tube.
-	Tube sliceTube(rmin,rmax,sliceThickness);
-	DetElement slice(layer,slice_nam,sdet.id());
-	double sliceGlobalZ = zinner + (layerDisplZ - layerThickness / 2) + sliceDisplZ;
-	double slicePosX    = std::tan(xangleHalf) * sliceGlobalZ;
-
-	// First slice subtraction solid.
-	SubtractionSolid sliceSubtraction1(sliceTube,beamInTube,Transform3D(beamInRot,Position(slicePosX,0,0)));
-	// Second slice subtraction solid.
-	SubtractionSolid sliceSubtraction2(sliceSubtraction1,beamOutTube,Transform3D(beamOutRot,Position(-slicePosX,0,0))); 
-	// Slice LV.
-	Volume sliceVol(det_name+"_"+layer_nam+"_"+slice_nam, sliceSubtraction2, slice_mat);
-
-	if ( x_slice.isSensitive() ) {
-	  sens.setType("tracker");
-	  sliceVol.setSensitiveDetector(sens);
-	}
-	// Set attributes of slice
-	slice.setAttributes(lcdd, sliceVol, x_slice.regionStr(), x_slice.limitsStr(), x_slice.visStr());
-
-	// Place volume in layer
-	PlacedVolume pv = layerVol.placeVolume(sliceVol,Position(0,0,slicePosZ));
-	pv.addPhysVolID("slice",sliceCount);
-	slice.setPlacement(pv);
-
-	// Start of next slice.
-	sliceDisplZ += sliceThickness / 2;
-	slicePosZ   += sliceThickness / 2;
-	++sliceCount;
-      }
-      // Set attributes of slice
-      layer.setAttributes(lcdd, layerVol, x_layer.regionStr(), x_layer.limitsStr(), x_layer.visStr());
-
-      // Layer PV.
-      PlacedVolume layerPV = envelopeVol.placeVolume(layerVol,Position(0,0,layerPosZ));
-      layerPV.addPhysVolID("layer", layerCount);
-      layer.setPlacement(layerPV);
-
-      // Increment to start of next layer.
-      layerDisplZ += layerThickness / 2;
-      layerPosZ   += layerThickness / 2;
-      ++layerCount;
-    }
-  }
-  sdet.setVisAttributes(lcdd, x_det.visStr(), envelopeVol);
-  
-  // Reflect it.
-  if ( reflect )  {
-    Assembly assembly(det_name+"_assembly");
-    PlacedVolume pv = motherVol.placeVolume(assembly);
-    pv.addPhysVolID("system", id);
-    sdet.setPlacement(pv);
-
-    DetElement   sdetA(sdet,det_name+"_A",x_det.id());
-    pv = assembly.placeVolume(envelopeVol,Transform3D(RotationZ(M_PI),Position(0,0,zpos)));
-    pv.addPhysVolID("barrel", 1);
-    sdetA.setPlacement(pv);
-
-    DetElement   sdetB = sdetA.clone(det_name+"_B",x_det.id());
-    sdet.add(sdetB);
-    pv = assembly.placeVolume(envelopeVol,Transform3D(RotationY(M_PI),Position(0,0,-zpos)));
-    pv.addPhysVolID("barrel", 2);
-    sdetB.setPlacement(pv);
-  }
-  else  {
-    PlacedVolume pv = motherVol.placeVolume(envelopeVol,Transform3D(RotationZ(M_PI),Position(0,0,zpos)));
-    pv.addPhysVolID("system", id);
-    pv.addPhysVolID("barrel", 1);
-    sdet.setPlacement(pv);
-  }
-  return sdet;
-}
-
-DECLARE_DETELEMENT(ForwardDetector,create_detector)
diff --git a/examples/CLICSiD/src/MultiLayerTracker_geo.cpp b/examples/CLICSiD/src/MultiLayerTracker_geo.cpp
deleted file mode 100644
index 687d238453a5caa6e3d3033e65edd88b18735725..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/MultiLayerTracker_geo.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t  x_det     = e;
-  string     det_name  = x_det.nameStr();
-  string     det_type  = x_det.typeStr();
-  Material   air       = lcdd.air();
-  DetElement sdet        (det_name,x_det.id());
-  Assembly   assembly    (det_name+"_assembly");
-  PlacedVolume pv;
-  int n = 0;
-
-  for(xml_coll_t i(x_det,_U(layer)); i; ++i, ++n)  {
-    xml_comp_t x_layer = i;
-    string  l_name = det_name+_toString(n,"_layer%d");
-    double  z    = x_layer.outer_z();
-    double  rmin = x_layer.inner_r();
-    double  r    = rmin;
-    DetElement layer(sdet,_toString(n,"layer%d"),x_layer.id());
-    Tube    l_tub (rmin,2*rmin,z);
-    Volume  l_vol(l_name,l_tub,air);
-    int m = 0;
-
-    for(xml_coll_t j(x_layer,_U(slice)); j; ++j, ++m)  {
-      xml_comp_t x_slice = j;
-      Material mat = lcdd.material(x_slice.materialStr());
-      string s_name= l_name+_toString(m,"_slice%d");
-      double thickness = x_slice.thickness();
-      Tube   s_tub(r,r+thickness,z,2*M_PI);
-      Volume s_vol(s_name, s_tub, mat);
-
-      r += thickness;
-      if ( x_slice.isSensitive() ) {
-        sens.setType("tracker");
-        s_vol.setSensitiveDetector(sens);
-      }
-      // Set Attributes
-      s_vol.setAttributes(lcdd,x_slice.regionStr(),x_slice.limitsStr(),x_slice.visStr());
-      pv = l_vol.placeVolume(s_vol);
-      // Slices have no extra id. Take the ID of the layer!
-      pv.addPhysVolID("slice",m);
-    }
-    l_tub.setDimensions(rmin,r,z);
-    //cout << l_name << " " << rmin << " " << r << " " << z << endl;
-    l_vol.setVisAttributes(lcdd,x_layer.visStr());
-      
-    pv = assembly.placeVolume(l_vol);
-    pv.addPhysVolID("layer",n);
-    layer.setPlacement(pv);
-  }
-  if ( x_det.hasAttr(_U(combineHits)) ) {
-    sdet.setCombineHits(x_det.combineHits(),sens);
-  }
-
-  pv = lcdd.pickMotherVolume(sdet).placeVolume(assembly);
-  pv.addPhysVolID("system",sdet.id()).addPhysVolID("barrel",0);
-  sdet.setPlacement(pv);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(MultiLayerTracker,create_detector)
diff --git a/examples/CLICSiD/src/PolyconeSupport_geo.cpp b/examples/CLICSiD/src/PolyconeSupport_geo.cpp
deleted file mode 100644
index b5ca65cffa196d3a4f75b23dd6315bfa284b2649..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/PolyconeSupport_geo.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, Ref_t)  {
-  xml_det_t  x_det = e;
-  string     name  = x_det.nameStr();
-  DetElement sdet (name,x_det.id());
-  Material   mat  (lcdd.material(x_det.materialStr()));
-  vector<double> rmin,rmax,z;
-  int num = 0;
-
-  for(xml_coll_t c(e,_U(zplane)); c; ++c, ++num)  {
-    xml_comp_t dim(c);
-    rmin.push_back(dim.rmin());
-    rmax.push_back(dim.rmax());
-    z.push_back(dim.z()); //Dropped division by 2 in z. Half length not needed
-  }
-  if ( num < 2 )  {
-    throw runtime_error("PolyCone["+name+"]> Not enough Z planes. minimum is 2!");
-  }
-  Polycone   cone  (0,2*M_PI,rmin,rmax,z);
-  Volume     volume(name, cone, mat);
-  volume.setVisAttributes(lcdd, x_det.visStr());
-  PlacedVolume pv = lcdd.pickMotherVolume(sdet).placeVolume(volume);
-  sdet.setPlacement(pv);
-  if ( x_det.hasAttr(_U(id)) )  {
-    int det_id = x_det.id();
-    pv.addPhysVolID("system",det_id);
-  }
-  return sdet;
-}
-
-DECLARE_DETELEMENT(PolyconeSupport,create_detector)
diff --git a/examples/CLICSiD/src/PolyhedraBarrelCalorimeter2_geo.cpp b/examples/CLICSiD/src/PolyhedraBarrelCalorimeter2_geo.cpp
deleted file mode 100644
index 381e39a44e0d352b852b42fb153a12816ea55559..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/PolyhedraBarrelCalorimeter2_geo.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-#include "XML/Layering.h"
-
-#include "DDRec/Extensions/LayeringExtensionImpl.h"
-#include "DDRec/Extensions/SubdetectorExtensionImpl.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-using namespace DD4hep::DDRec;
-
-static void placeStaves(DetElement& parent, DetElement& stave, double rmin, int numsides, double total_thickness,
-		Volume envelopeVolume, double innerAngle, Volume sectVolume) {
-	double innerRotation = innerAngle;
-	double offsetRotation = -innerRotation / 2;
-	double sectCenterRadius = rmin + total_thickness / 2;
-	double rotX = M_PI / 2;
-	double rotY = -offsetRotation;
-	double posX = -sectCenterRadius * std::sin(rotY);
-	double posY = sectCenterRadius * std::cos(rotY);
-
-	for (int module = 1; module <= numsides; ++module) {
-		DetElement det = module > 1 ? stave.clone(_toString(module, "stave%d")) : stave;
-		PlacedVolume pv = envelopeVolume.placeVolume(sectVolume,
-				Transform3D(RotationZYX(0, rotY, rotX), Translation3D(-posX, -posY, 0)));
-		// Not a valid volID: pv.addPhysVolID("stave", 0);
-		pv.addPhysVolID("module", module);
-		det.setPlacement(pv);
-		parent.add(det);
-		rotY -= innerRotation;
-		posX = -sectCenterRadius * std::sin(rotY);
-		posY = sectCenterRadius * std::cos(rotY);
-	}
-}
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens) {
-	xml_det_t x_det = e;
-	Layering layering(x_det);
-	xml_comp_t staves = x_det.staves();
-	xml_dim_t dim = x_det.dimensions();
-	string det_name = x_det.nameStr();
-	string det_type = x_det.typeStr();
-	Material air = lcdd.air();
-	double totalThickness = layering.totalThickness();
-	int totalRepeat = 0;
-	int totalSlices = 0;
-	double gap = xml_dim_t(x_det).gap();
-	int numSides = dim.numsides();
-	double detZ = dim.z();
-	double rmin = dim.rmin();
-	DetElement sdet(det_name, x_det.id());
-	DetElement stave("stave1", x_det.id());
-	Volume motherVol = lcdd.pickMotherVolume(sdet);
-
-	for (xml_coll_t c(x_det, _U(layer)); c; ++c) {
-		xml_comp_t x_layer = c;
-		int repeat = x_layer.repeat();
-		totalRepeat += repeat;
-		totalSlices += x_layer.numChildren(_U(slice));
-	}
-
-	PolyhedraRegular polyhedra(numSides, rmin, rmin + totalThickness, detZ);
-	Volume envelopeVol(det_name + "_envelope", polyhedra, air);
-
-	// Add the subdetector envelope to the structure.
-	double innerAngle = 2 * M_PI / numSides;
-	double halfInnerAngle = innerAngle / 2;
-	double tan_inner = std::tan(halfInnerAngle) * 2;
-	double innerFaceLen = rmin * tan_inner;
-	double outerFaceLen = (rmin + totalThickness) * tan_inner;
-	double staveThickness = totalThickness;
-
-	Trapezoid staveTrdOuter(innerFaceLen / 2, outerFaceLen / 2, detZ / 2, detZ / 2, staveThickness / 2);
-	Volume staveOuterVol(det_name + "_stave", staveTrdOuter, air);
-
-	Trapezoid staveTrdInner(innerFaceLen / 2 - gap, outerFaceLen / 2 - gap, detZ / 2, detZ / 2, staveThickness / 2);
-	Volume staveInnerVol(det_name + "_inner", staveTrdInner, air);
-
-	double layerOuterAngle = (M_PI - innerAngle) / 2;
-	double layerInnerAngle = (M_PI / 2 - layerOuterAngle);
-	double layer_pos_z = -(staveThickness / 2);
-	double layer_dim_x = innerFaceLen / 2 - gap * 2;
-	int layer_num = 1;
-
-	LayeringExtensionImpl* layeringExtension = new LayeringExtensionImpl();
-	Position layerNormal(0,0,1);
-
-	// Set envelope volume attributes.
-	envelopeVol.setAttributes(lcdd, x_det.regionStr(), x_det.limitsStr(), x_det.visStr());
-
-	for (xml_coll_t c(x_det, _U(layer)); c; ++c) {
-		xml_comp_t x_layer = c;
-		int repeat = x_layer.repeat();            // Get number of times to repeat this layer.
-		const Layer* lay = layering.layer(layer_num - 1); // Get the layer from the layering engine.
-		// Loop over repeats for this layer.
-		for (int j = 0; j < repeat; j++) {
-			string layer_name = det_name + _toString(layer_num, "_layer%d");
-			double layer_thickness = lay->thickness();
-			DetElement layer(stave, _toString(layer_num, "layer%d"), x_det.id());
-			layeringExtension->setLayer(layer_num, layer, layerNormal);
-
-			// Layer position in Z within the stave.
-			layer_pos_z += layer_thickness / 2;
-			// Layer box & volume
-			Volume layer_vol(layer_name, Box(layer_dim_x, detZ / 2, layer_thickness / 2), air);
-
-			// Create the slices (sublayers) within the layer.
-			double slice_pos_z = -(layer_thickness / 2);
-			int slice_number = 1;
-			for (xml_coll_t k(x_layer, _U(slice)); k; ++k) {
-				xml_comp_t x_slice = k;
-				string slice_name = layer_name + _toString(slice_number, "_slice%d");
-				double slice_thickness = x_slice.thickness();
-				Material slice_material = lcdd.material(x_slice.materialStr());
-				DetElement slice(layer, _toString(slice_number, "slice%d"), x_det.id());
-
-				slice_pos_z += slice_thickness / 2;
-				// Slice volume & box
-				Volume slice_vol(slice_name, Box(layer_dim_x, detZ / 2, slice_thickness / 2), slice_material);
-
-				if (x_slice.isSensitive()) {
-					sens.setType("calorimeter");
-					slice_vol.setSensitiveDetector(sens);
-				}
-				// Set region, limitset, and vis.
-				slice_vol.setAttributes(lcdd, x_slice.regionStr(), x_slice.limitsStr(), x_slice.visStr());
-				// slice PlacedVolume
-				PlacedVolume slice_phv = layer_vol.placeVolume(slice_vol, Position(0, 0, slice_pos_z));
-				slice_phv.addPhysVolID("slice", slice_number);
-
-				slice.setPlacement(slice_phv);
-				// Increment Z position for next slice.
-				slice_pos_z += slice_thickness / 2;
-				// Increment slice number.
-				++slice_number;
-			}
-			// Set region, limitset, and vis.
-			layer_vol.setAttributes(lcdd, x_layer.regionStr(), x_layer.limitsStr(), x_layer.visStr());
-
-			// Layer physical volume.
-			PlacedVolume layer_phv = staveInnerVol.placeVolume(layer_vol, Position(0, 0, layer_pos_z));
-			layer_phv.addPhysVolID("layer", layer_num);
-			layer.setPlacement(layer_phv);
-
-			// Increment the layer X dimension.
-			layer_dim_x += layer_thickness * std::tan(layerInnerAngle);    // * 2;
-			// Increment the layer Z position.
-			layer_pos_z += layer_thickness / 2;
-			// Increment the layer number.
-			++layer_num;
-		}
-	}
-
-	// Add stave inner physical volume to outer stave volume.
-	staveOuterVol.placeVolume(staveInnerVol);
-	// Set the vis attributes of the outer stave section.
-	stave.setVisAttributes(lcdd, staves.visStr(), staveOuterVol);
-	// Place the staves.
-	placeStaves(sdet, stave, rmin, numSides, totalThickness, envelopeVol, innerAngle, staveOuterVol);
-
-	double z_offset = dim.hasAttr(_U(z_offset)) ? dim.z_offset() : 0.0;
-	Transform3D transform(RotationZ(M_PI / numSides), Translation3D(0, 0, z_offset));
-	PlacedVolume env_phv = motherVol.placeVolume(envelopeVol, transform);
-	env_phv.addPhysVolID("system", sdet.id());
-	env_phv.addPhysVolID("barrel", 0);
-	sdet.setPlacement(env_phv);
-
-	SubdetectorExtensionImpl* subdetExt = new SubdetectorExtensionImpl(sdet);
-	subdetExt->setIsBarrel(true);
-
-	sdet.addExtension<SubdetectorExtension>(subdetExt);
-	sdet.addExtension<LayeringExtension>(layeringExtension);
-	return sdet;
-}
-
-DECLARE_DETELEMENT(PolyhedraBarrelCalorimeter2, create_detector)
diff --git a/examples/CLICSiD/src/PolyhedraEndcapCalorimeter2_geo.cpp b/examples/CLICSiD/src/PolyhedraEndcapCalorimeter2_geo.cpp
deleted file mode 100644
index ca774b1f9f3e99247b69dcfc7c3156d7396808ec..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/PolyhedraEndcapCalorimeter2_geo.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-#include "XML/Layering.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t   x_det     = e;
-  xml_dim_t   dim       = x_det.dimensions();
-  int         det_id    = x_det.id();
-  string      det_name  = x_det.nameStr();
-  bool        reflect   = x_det.reflect(true);
-  Material    air       = lcdd.air();
-  int         numsides  = dim.numsides();
-  double      rmin      = dim.rmin();
-  double      rmax      = dim.rmax()*std::cos(M_PI/numsides);
-  double      zmin      = dim.zmin();
-  Layering    layering(x_det);
-  double      totalThickness = layering.totalThickness();
-  Volume      envelopeVol(det_name+"_envelope",PolyhedraRegular(numsides,rmin,rmax,totalThickness),air);
-    
-  int l_num = 1;
-  int layerType   = 0;
-  double layerZ   = -totalThickness/2;
-
-  envelopeVol.setAttributes(lcdd,x_det.regionStr(),x_det.limitsStr(),x_det.visStr());
-
-  for(xml_coll_t c(x_det,_U(layer)); c; ++c)  {
-    xml_comp_t       x_layer  = c;
-    double           l_thick  = layering.layer(l_num-1)->thickness();
-    string           l_name   = det_name + _toString(layerType,"_layer%d");
-    int              l_repeat = x_layer.repeat();
-    Volume           l_vol(l_name,PolyhedraRegular(numsides,rmin,rmax,l_thick),air);
-      
-    int s_num = 1;
-    double sliceZ = -l_thick/2;
-    for(xml_coll_t s(x_layer,_U(slice)); s; ++s)  {
-      xml_comp_t x_slice = s;
-      string     s_name  = l_name + _toString(s_num,"_slice%d");
-      double     s_thick = x_slice.thickness();
-      Material   s_mat   = lcdd.material(x_slice.materialStr());
-      Volume     s_vol(s_name,PolyhedraRegular(numsides,rmin,rmax,s_thick),s_mat);
-        
-      if ( x_slice.isSensitive() )  {
-	sens.setType("calorimeter");
-	s_vol.setSensitiveDetector(sens);
-      }
-      s_vol.setVisAttributes(lcdd.visAttributes(x_slice.visStr()));
-      sliceZ += s_thick/2;
-      PlacedVolume s_phv = l_vol.placeVolume(s_vol,Position(0,0,sliceZ));
-      s_phv.addPhysVolID("slice",s_num);
-      s_num++;
-    }
-    l_vol.setVisAttributes(lcdd.visAttributes(x_layer.visStr()));
-    if ( l_repeat <= 0 ) throw std::runtime_error(det_name+"> Invalid repeat value");
-    for(int j=0; j<l_repeat; ++j) {
-      string phys_lay = det_name + _toString(l_num,"_layer%d");
-      layerZ += l_thick/2;
-      PlacedVolume  phys_vol = envelopeVol.placeVolume(l_vol,Position(0,0,layerZ));
-      phys_vol.addPhysVolID("layer", l_num);
-      layerZ += l_thick/2;
-      ++l_num;
-    }
-    ++layerType;
-  }
-
-  DetElement sdet(det_name,det_id);
-  Volume motherVol = lcdd.pickMotherVolume(sdet);
-  // Reflect it.
-  if ( reflect )  {
-    Assembly assembly(det_name+"_assembly");
-    PlacedVolume pv = motherVol.placeVolume(assembly);
-    pv.addPhysVolID("system", det_id);
-    sdet.setPlacement(pv);
-
-    DetElement   sdetA(sdet,det_name+"_A",x_det.id());
-    pv = assembly.placeVolume(envelopeVol,Transform3D(RotationZYX(M_PI/numsides,0,0),
-						      Position(0,0,zmin+totalThickness/2)));
-    pv.addPhysVolID("barrel", 1);
-    sdetA.setPlacement(pv);
-
-    DetElement   sdetB = sdetA.clone(det_name+"_B",x_det.id());
-    sdet.add(sdetB);
-    pv = assembly.placeVolume(envelopeVol,Transform3D(RotationZYX(M_PI/numsides,M_PI,0),
-						Position(0,0,-(zmin+totalThickness/2))));
-    pv.addPhysVolID("barrel", 2);
-    sdetB.setPlacement(pv);
-  }
-  else  {
-    PlacedVolume pv = motherVol.placeVolume(envelopeVol,
-					    Transform3D(RotationZYX(M_PI/numsides,0,0),
-							Position(0,0,zmin+totalThickness/2)));
-    pv.addPhysVolID("system", det_id);
-    pv.addPhysVolID("barrel", 1);
-    sdet.setPlacement(pv);
-  }
-
-  return sdet;
-}
-
-DECLARE_DETELEMENT(PolyhedraEndcapCalorimeter2,create_detector)
diff --git a/examples/CLICSiD/src/SiTrackerBarrel_geo.cpp b/examples/CLICSiD/src/SiTrackerBarrel_geo.cpp
deleted file mode 100644
index 9206fd7506666e5082d1e54efa926a048e85c071..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/SiTrackerBarrel_geo.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t   x_det     = e;
-  Material    air       = lcdd.air();
-  int         det_id    = x_det.id();
-  string      det_name  = x_det.nameStr();
-  DetElement  sdet       (det_name,det_id);
-  Assembly    assembly   (det_name+"_assembly");
-  map<string, Volume>    volumes;
-  PlacedVolume pv;
-
-  sens.setType("tracker");
-  for(xml_coll_t mi(x_det,_U(module)); mi; ++mi)  {
-    xml_comp_t x_mod  = mi;
-    xml_comp_t m_env  = x_mod.child(_U(module_envelope));
-    string     m_nam  = x_mod.nameStr();
-    Volume     m_vol(det_name+"_"+m_nam,Box(m_env.width()/2,m_env.length()/2,m_env.thickness()/2),air);
-    int        ncomponents = 0, sensor_number = 1;
-
-    if ( volumes.find(m_nam) != volumes.end() )   {
-      printout(ERROR,"SiTrackerBarrel","Logics error in building modules.");
-      throw runtime_error("Logics error in building modules.");
-    }
-    volumes[m_nam] = m_vol;
-    for(xml_coll_t ci(x_mod,_U(module_component)); ci; ++ci, ++ncomponents)  {
-      xml_comp_t x_comp = ci;
-      xml_comp_t x_pos  = x_comp.position(false);
-      xml_comp_t x_rot  = x_comp.rotation(false);	
-      string     c_nam  = det_name+"_"+m_nam+_toString(ncomponents,"_component%d");
-      Box        c_box(x_comp.width()/2,x_comp.length()/2,x_comp.thickness()/2);
-      Volume     c_vol(c_nam,c_box,lcdd.material(x_comp.materialStr()));
-
-      if ( x_pos && x_rot ) {
-	Position    c_pos(x_pos.x(0),x_pos.y(0),x_pos.z(0));
-	RotationZYX c_rot(x_rot.z(0),x_rot.y(0),x_rot.x(0));
-	pv = m_vol.placeVolume(c_vol, Transform3D(c_rot,c_pos));
-      }
-      else if ( x_rot ) {
-	pv = m_vol.placeVolume(c_vol,RotationZYX(x_rot.z(0),x_rot.y(0),x_rot.x(0)));
-      }
-      else if ( x_pos ) {
-	pv = m_vol.placeVolume(c_vol,Position(x_pos.x(0),x_pos.y(0),x_pos.z(0)));
-      }
-      else {
-	pv = m_vol.placeVolume(c_vol);
-      }
-      c_vol.setRegion(lcdd, x_comp.regionStr());
-      c_vol.setLimitSet(lcdd, x_comp.limitsStr());
-      c_vol.setVisAttributes(lcdd, x_comp.visStr());
-      if ( x_comp.isSensitive() ) {
-	pv.addPhysVolID(_U(sensor),sensor_number++);
-	c_vol.setSensitiveDetector(sens);
-      }
-    }
-    m_vol.setVisAttributes(lcdd.visAttributes(x_mod.visStr()));
-  }
-  for(xml_coll_t li(x_det,_U(layer)); li; ++li)  {
-    xml_comp_t x_layer  = li;
-    xml_comp_t x_barrel = x_layer.child(_U(barrel_envelope));
-    xml_comp_t x_layout = x_layer.child(_U(rphi_layout));
-    xml_comp_t z_layout = x_layer.child(_U(z_layout));      // Get the <z_layout> element.
-    int        lay_id   = x_layer.id();
-    string     m_nam    = x_layer.moduleStr();
-    Volume     m_env    = volumes[m_nam];
-    string     lay_nam  = det_name+"_"+m_nam+_toString(x_layer.id(),"_layer%d");
-    Tube       lay_tub   (x_barrel.inner_r(),x_barrel.outer_r(),x_barrel.z_length()/2);
-    Volume     lay_vol   (lay_nam,lay_tub,air);         // Create the layer envelope volume.
-    double     phi0     = x_layout.phi0();              // Starting phi of first module.
-    double     phi_tilt = x_layout.phi_tilt();          // Phi tilt of a module.
-    double     rc       = x_layout.rc();                // Radius of the module center.
-    int        nphi     = x_layout.nphi();              // Number of modules in phi.
-    double     rphi_dr  = x_layout.dr();                // The delta radius of every other module.
-    double     phi_incr = (M_PI * 2) / nphi;            // Phi increment for one module.
-    double     phic     = phi0;                         // Phi of the module center.
-    double     z0       = z_layout.z0();                // Z position of first module in phi.
-    double     nz       = z_layout.nz();                // Number of modules to place in z.
-    double     z_dr     = z_layout.dr();                // Radial displacement parameter, of every other module.
-
-    // Z increment for module placement along Z axis.
-    // Adjust for z0 at center of module rather than
-    // the end of cylindrical envelope.
-    double z_incr   = nz > 1 ? (2.0 * z0) / (nz - 1) : 0.0;
-    // Starting z for module placement along Z axis.
-    double module_z = -z0;
-    int module = 1;
-      
-    // Loop over the number of modules in phi.
-    for (int ii = 0; ii < nphi; ii++)	{
-      double dx = z_dr * std::cos(phic + phi_tilt);	// Delta x of module position.
-      double dy = z_dr * std::sin(phic + phi_tilt);	// Delta y of module position.
-      double  x = rc * std::cos(phic);                  // Basic x module position.
-      double  y = rc * std::sin(phic);               	// Basic y module position.
-        
-      // Loop over the number of modules in z.
-      for (int j = 0; j < nz; j++)	  {
-	// Module PhysicalVolume.
-// 	Transform3D tr(RotationZYX(0,-((M_PI/2)-phic-phi_tilt),M_PI/2),Position(x,y,module_z));
-    
-    //NOTE (Nikiforos, 26/08 Rotations needed to be fixed so that component1 (silicon) is on the outside      
-    Transform3D tr(RotationZYX(0,((M_PI/2)-phic-phi_tilt),-M_PI/2),Position(x,y,module_z));
-          
-	pv = lay_vol.placeVolume(m_env,tr);
-	pv.addPhysVolID("module", module++);
-	// Adjust the x and y coordinates of the module.
-	x += dx;
-	y += dy;
-	// Flip sign of x and y adjustments.
-	dx *= -1;
-	dy *= -1;
-	// Add z increment to get next z placement pos.
-	module_z += z_incr;
-      }
-      phic     += phi_incr;      // Increment the phi placement of module.
-      rc       += rphi_dr;       // Increment the center radius according to dr parameter.
-      rphi_dr  *= -1;            // Flip sign of dr parameter.
-      module_z  = -z0;           // Reset the Z placement parameter for module.
-    }
-    // Create the PhysicalVolume for the layer.
-    assembly.setVisAttributes(lcdd.invisible());
-    pv = assembly.placeVolume(lay_vol); // Place layer in mother
-    pv.addPhysVolID("layer", lay_id);       // Set the layer ID.
-    DetElement m_elt(sdet,lay_nam,lay_id);
-    m_elt.setAttributes(lcdd,lay_vol,x_layer.regionStr(),x_layer.limitsStr(),x_layer.visStr());
-    m_elt.setPlacement(pv);
-  }
-  pv = lcdd.pickMotherVolume(sdet).placeVolume(assembly);
-  pv.addPhysVolID("system", det_id);      // Set the subdetector system ID.
-  pv.addPhysVolID("barrel", 0);           // Flag this as a barrel subdetector.
-  sdet.setPlacement(pv);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(SiTrackerBarrel,create_detector)
diff --git a/examples/CLICSiD/src/SiTrackerEndcap2_geo.cpp b/examples/CLICSiD/src/SiTrackerEndcap2_geo.cpp
deleted file mode 100644
index 93b301a7398cc5e85a08d568822a6d56b93af247..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/SiTrackerEndcap2_geo.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-
-#include "DD4hep/DetFactoryHelper.h"
-#include <map>
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_detector(LCDD& lcdd, xml_h e, SensitiveDetector sens)  {
-  xml_det_t   x_det     = e;
-  Material    vacuum    = lcdd.vacuum();
-  int         det_id    = x_det.id();
-  string      det_name  = x_det.nameStr();
-  bool        reflect   = x_det.reflect(false);
-  DetElement  sdet        (det_name,det_id);
-  Assembly    assembly    (det_name+"_assembly");
-  //Volume      assembly    (det_name+"_assembly",Box(10000,10000,10000),vacuum);
-  Volume      motherVol = lcdd.pickMotherVolume(sdet);
-  int         m_id=0, c_id=0, n_sensor=0;
-  map<string,Volume> modules;
-  PlacedVolume pv;
-
-  assembly.setVisAttributes(lcdd.invisible());
-  sens.setType("tracker");
-
-  for(xml_coll_t mi(x_det,_U(module)); mi; ++mi, ++m_id)  {
-    xml_comp_t x_mod   = mi;
-    string     m_nam   = x_mod.nameStr();
-    xml_comp_t trd     = x_mod.trd();
-    double     posY;
-    double     x1      = trd.x1();
-    double     x2      = trd.x2();
-    double     z       = trd.z();
-    double     y1, y2, total_thickness=0.;
-    xml_coll_t ci(x_mod,_U(module_component));
-    for(ci.reset(), total_thickness=0.0; ci; ++ci)
-      total_thickness += xml_comp_t(ci).thickness();
-      
-    y1 = y2 = total_thickness / 2;
-    Volume  m_volume(det_name+"_"+m_nam, Trapezoid(x1, x2, y1, y2, z), vacuum);      
-    m_volume.setVisAttributes(lcdd.visAttributes(x_mod.visStr()));
-
-    for(ci.reset(), n_sensor=1, c_id=0, posY=-y1; ci; ++ci, ++c_id)  {
-      xml_comp_t c       = ci;
-      double     c_thick = c.thickness();
-      Material   c_mat   = lcdd.material(c.materialStr());
-      string     c_name  = m_volume.name() + _toString(c_id,"_component%d");
-      Volume     c_vol(c_name, Trapezoid(x1,x2,c_thick/2e0,c_thick/2e0,z), c_mat);
-
-      c_vol.setVisAttributes(lcdd.visAttributes(c.visStr()));
-      pv = m_volume.placeVolume(c_vol,Position(0,posY+c_thick/2,0));
-      //pv.addPhysVolID("component",c_id);
-      if ( c.isSensitive() ) {
-	sdet.check(n_sensor > 2,"SiTrackerEndcap2::fromCompact: "+c_name+" Max of 2 modules allowed!");
-	pv.addPhysVolID("sensor",n_sensor);
-	c_vol.setSensitiveDetector(sens);
-	++n_sensor;
-      }
-      posY += c_thick;
-    }
-    modules[m_nam] = m_volume;
-  }
-  
-  for(xml_coll_t li(x_det,_U(layer)); li; ++li)  {
-    xml_comp_t  x_layer(li);
-    int l_id    = x_layer.id();
-    int mod_num = 1;
-    for(xml_coll_t ri(x_layer,_U(ring)); ri; ++ri)  {
-      xml_comp_t x_ring = ri;
-      double r        = x_ring.r();
-      double phi0     = x_ring.phi0(0);
-      double zstart   = x_ring.zstart();
-      double dz       = x_ring.dz(0);
-      int    nmodules = x_ring.nmodules();
-      string m_nam    = x_ring.moduleStr();
-      Volume m_vol    = modules[m_nam];
-      double iphi     = 2*M_PI/nmodules;
-      double phi      = phi0;
-
-      for(int k=0; k<nmodules; ++k) {
-	string m_base = _toString(l_id,"layer%d") + _toString(mod_num,"_module%d");
-	double x = -r*std::cos(phi);
-	double y = -r*std::sin(phi);
-	DetElement module(sdet,m_base+"_pos",det_id);
-	pv = assembly.placeVolume(m_vol,Transform3D(RotationZYX(0,-M_PI/2-phi,-M_PI/2),Position(x,y,zstart+dz)));
-	pv.addPhysVolID("barrel",1).addPhysVolID("layer", l_id).addPhysVolID("module",mod_num);
-	module.setPlacement(pv);
-	if ( reflect ) {
-	  pv = assembly.placeVolume(m_vol,Transform3D(RotationZYX(M_PI,-M_PI/2-phi,-M_PI/2),Position(x,y,-zstart-dz)));
-	  pv.addPhysVolID("barrel",2).addPhysVolID("layer",l_id).addPhysVolID("module",mod_num);
-	  DetElement r_module(sdet,m_base+"_neg",det_id);
-	  r_module.setPlacement(pv);
-	}
-	dz   = -dz;
-	phi += iphi;
-	++mod_num;
-      }
-    }
-  }
-  pv = motherVol.placeVolume(assembly);
-  pv.addPhysVolID("system",det_id);
-  sdet.setPlacement(pv);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(SiTrackerEndcap2,create_detector)
diff --git a/examples/CLICSiD/src/TubeSegment_geo.cpp b/examples/CLICSiD/src/TubeSegment_geo.cpp
deleted file mode 100644
index 30ccdf52de15e18c8feccc611d850307859d4929..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/TubeSegment_geo.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id$
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-#include "DD4hep/DetFactoryHelper.h"
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-static Ref_t create_element(LCDD& lcdd, xml_h e, Ref_t)  {
-  xml_det_t  x_det  (e);
-  xml_comp_t x_tube = x_det.tubs();
-  xml_dim_t  pos    = x_det.position();
-  xml_dim_t  rot    = x_det.rotation();
-  string     name   = x_det.nameStr();
-  Tube       tub    (x_tube.rmin(),x_tube.rmax(),x_tube.zhalf());
-  Volume     vol    (name,tub,lcdd.material(x_det.materialStr()));
-
-  vol.setVisAttributes(lcdd, x_det.visStr());
-    
-  DetElement   sdet(name,x_det.id());
-  Volume       mother = lcdd.pickMotherVolume(sdet);
-  PlacedVolume phv = 
-    mother.placeVolume(vol,Transform3D(RotationZYX(rot.z(),rot.y(),rot.x()),Position(-pos.x(),-pos.y(),pos.z())));
-  phv.addPhysVolID("id",x_det.id());
-  sdet.setPlacement(phv);
-  return sdet;
-}
-
-DECLARE_DETELEMENT(TubeSegment,create_element)
diff --git a/examples/CLICSiD/src/VolumeMgrTest.cpp b/examples/CLICSiD/src/VolumeMgrTest.cpp
deleted file mode 100644
index 13701ecf0f752f32b068a0320833ad629533a41f..0000000000000000000000000000000000000000
--- a/examples/CLICSiD/src/VolumeMgrTest.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// $Id: TubeSegment_geo.cpp 633 2013-06-21 13:50:50Z markus.frank $
-//====================================================================
-//  AIDA Detector description implementation for LCD
-//--------------------------------------------------------------------
-//
-//  Author     : M.Frank
-//
-//====================================================================
-
-// Framework include files
-#include "DD4hep/LCDD.h"
-#include "DD4hep/Printout.h"
-#include "DD4hep/Factories.h"
-#include "DD4hep/IDDescriptor.h"
-#include "DD4hep/VolumeManager.h"
-
-// C/C++ include files
-#include <stdexcept>
-#include <algorithm>
-
-using namespace std;
-using namespace DD4hep;
-using namespace DD4hep::Geometry;
-
-
-namespace  {
-  /** @class VolIDTest
-   *
-   *  Test the volume manager by scanning the sensitive 
-   *  volumes of one or several subdetectors.
-   *
-   *  @author  M.Frank
-   *  @version 1.0
-   */
-  struct VolIDTest  {
-    typedef vector<PlacedVolume::VolID> VolIDs;
-    /// Helper to scan volume ids
-    struct FND {
-      const string& test;
-      FND(const string& c) : test(c) {}
-      bool operator()(const VolIDs::value_type& c) const { return c.first == test; }
-    };
-    IDDescriptor  m_iddesc;
-    VolumeManager m_mgr;
-    DetElement    m_det;
-
-    /// Initializing constructor
-    VolIDTest(LCDD& lcdd, DetElement sdet, size_t depth);
-    /// Default destructor
-    virtual ~VolIDTest() {}
-    /// Check volume integrity
-    void checkVolume(DetElement e, PlacedVolume pv, const VolIDs& child_ids)  const;
-    /// Walk through tree of detector elements
-    void walk(DetElement de, VolIDs ids, size_t depth, size_t mx_depth)  const;
-    /// Walk through tree of volume placements
-    void walkVolume(DetElement e, PlacedVolume pv, VolIDs ids, size_t depth, size_t mx_depth)  const;
-
-    /// Action routine to execute the test
-    static long run(LCDD& lcdd,int argc,char** argv);
-  };
-}
-
-/// Initializing constructor
-VolIDTest::VolIDTest(LCDD& lcdd, DetElement sdet, size_t depth) : m_det(sdet) {
-  m_mgr    = lcdd.volumeManager();
-  if ( !m_det.isValid() )   {
-    stringstream err;
-    err << "The subdetector " << m_det.name() << " is not known to the geometry.";
-    printout(INFO,"VolIDTest",err.str().c_str());
-    throw runtime_error(err.str());
-  }
-  if ( !lcdd.sensitiveDetector(m_det.name()).isValid() )   {
-    stringstream err;
-    err << "The sensitive detector of subdetector " << m_det.name() 
-	<< " is not known to the geometry.";
-    printout(INFO,"VolIDTest",err.str().c_str());
-    throw runtime_error(err.str());
-  }
-  m_iddesc = lcdd.sensitiveDetector(m_det.name()).readout().idSpec();
-  walk(m_det,VolIDs(),0,depth);
-}
-
-/// Check volume integrity
-void VolIDTest::checkVolume(DetElement e, PlacedVolume pv, const VolIDs& child_ids)  const {
-  stringstream err, log;
-  VolumeID vid = m_iddesc.encode(child_ids);
-  VolumeID mask = 0xFFFFULL;
-  vid |= mask<<(31+16);
-  try {
-    DetElement det         = m_mgr.lookupDetector(vid);
-    DetElement det_elem    = m_mgr.lookupDetElement(vid);
-    PlacedVolume det_place = m_mgr.lookupPlacement(vid);
-    if ( pv.ptr() != det_place.ptr() )   {
-      err << "Wrong placement "
-	  << " got "        << det_place.name() << " (" << (void*)det_place.ptr() << ")"
-	  << " instead of " << pv.name()        << " (" << (void*)pv.ptr()        << ") "
-	  << " vid:" << (void*)vid;
-    }
-    else if ( det_elem.ptr() != e.ptr() )   {
-      err << "Wrong associated detector element vid="  << (void*)vid 
-	  << " got "        << det_elem.path() << " (" << (void*)det_elem.ptr() << ") "
-	  << " instead of " << e.path()        << " (" << (void*)e.ptr()        << ")"
-	  << " vid:" << (void*)vid;
-    }
-    else if ( det.ptr() != m_det.ptr() )   {
-      err << "Wrong associated detector "
-	  << " vid:" << (void*)vid;
-    }
-  }
-  catch(const exception& ex) {
-    err << "Lookup " << pv.name() << " id:" << (void*)vid << " path:" << e.path() << " error:" << ex.what();
-  }
-  const IDDescriptor::FieldMap& m = m_iddesc.fields();
-  log << "IDS(" << pv.name() << "): ";
-  for(size_t fi=0; fi<m.size(); ++fi)  {
-    IDDescriptor::Field fld = m_iddesc.field(fi);
-    if ( find_if(child_ids.begin(),child_ids.end(),FND(fld->name())) == child_ids.end() ) continue;
-    log << fld->name() << "=" << fld->value(vid) << "  ";
-  }
-  log << " vid:" << (void*)vid;
-  if ( !err.str().empty() )   {
-    printout(ERROR,m_det.name(),err.str()+" "+log.str());
-    throw runtime_error(err.str());
-  }
-  printout(INFO,m_det.name(),"OK: "+log.str());
-}
-
-/// Walk through tree of detector elements
-void VolIDTest::walkVolume(DetElement e, PlacedVolume pv, VolIDs ids, size_t depth, size_t mx_depth)  const   {
-  if ( depth <= mx_depth )  {
-    const TGeoNode* current = pv.ptr();
-    TObjArray*  nodes  = current->GetNodes();
-    int   num_children = nodes ? nodes->GetEntriesFast() : 0;
-    for(int i=0; i<num_children; ++i)   {
-      TGeoNode* node = (TGeoNode*)nodes->At(i);
-      PlacedVolume place(node);
-      VolIDs child_ids(ids);
-      stringstream err, log;
-
-      child_ids.insert(child_ids.end(),place.volIDs().begin(),place.volIDs().end());
-      bool is_sensitive = place.volume().isSensitive();
-      if ( is_sensitive )  {
-	checkVolume(e,place,child_ids);
-      }
-      walkVolume(e,place,child_ids,depth+1,mx_depth);
-    }
-  }
-}
-
-/// Walk through tree of volume placements
-void VolIDTest::walk(DetElement e, VolIDs ids, size_t depth, size_t mx_depth)  const   {
-  if ( depth <= mx_depth )  {
-    DetElement::Children::const_iterator i;
-    const DetElement::Children& children = e.children();  
-    PlacedVolume pv = e.placement();
-    VolIDs child_ids(ids);
-    bool is_sensitive = pv.volume().isSensitive();
-    child_ids.insert(child_ids.end(),pv.volIDs().begin(),pv.volIDs().end());
-    for (i=children.begin(); i!=children.end(); ++i)  {
-      walk((*i).second,child_ids,depth+1,mx_depth);
-    }
-    if ( !is_sensitive && children.empty() )  {
-      walkVolume(e,pv,child_ids,depth+1,mx_depth);
-    }
-    else if ( is_sensitive )  {
-      checkVolume(e, pv,child_ids);
-    }
-  }
-}
-
-/// Action routine to execute the test
-long VolIDTest::run(LCDD& lcdd,int argc,char** argv)    {
-  cout << "++ Processing plugin...CLICSid_VolMgrTest..." << endl;
-  for(int i=1; i<argc;++i)  {
-    string name = argv[i]+1;
-    if ( name == "all" || name == "All" || name == "ALL" )  {
-      const DetElement::Children& children = lcdd.world().children();  
-      for (DetElement::Children::const_iterator i=children.begin(); i!=children.end(); ++i)  {
-	DetElement sdet = (*i).second;
-	cout << "++ Processing subdetector: " << sdet.name() << endl;
-	VolIDTest test(lcdd,sdet,99);
-      }
-      return 1;
-    }
-    cout << "++ Processing subdetector: " << name << endl;
-    VolIDTest test(lcdd,lcdd.detector(name),99);
-  }
-  return 1;
-}
-
-namespace DD4hep {
-  using ::VolIDTest;
-}
-DECLARE_APPLY(CLICSiD_VolMgrTest,VolIDTest::run)