diff --git a/examples/AlignDet/CMakeLists.txt b/examples/AlignDet/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..59ba50119f79604368761adbb8ef11f04740f3f9
--- /dev/null
+++ b/examples/AlignDet/CMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
+#---------------------------
+set( PackageName AlignDet )
+#---------------------------
+
+project(${PackageName})
+
+find_package( DD4hep ) 
+
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include 
+                     ${CMAKE_SOURCE_DIR}/DDCore/include 
+                     ${CMAKE_SOURCE_DIR}/DDSegmentation/include
+		     ${ROOT_INCLUDE_DIR})
+
+include(DD4hep_XML_setup)
+file(GLOB sources src/*.cpp)
+
+add_library(AlignDet SHARED ${sources})
+target_link_libraries(AlignDet DD4hepCore ${ROOT_LIBRARIES} Rint Reflex)
+dd4hep_generate_rootmap(AlignDet)
+
+#--- install target-------------------------------------
+
+install(TARGETS ${PackageName}
+  RUNTIME DESTINATION bin
+  LIBRARY DESTINATION lib
+  )
+install(DIRECTORY compact
+  DESTINATION examples/${PackageName}
+  PATTERN ".svn" EXCLUDE )
+
+# to do: add corresponding uninstall...
+#-------------------------------------------------------
diff --git a/examples/AlignDet/compact/AlephTPC.xml b/examples/AlignDet/compact/AlephTPC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eafd9fccbdd71fe089a1af3a104567c387737ecc
--- /dev/null
+++ b/examples/AlignDet/compact/AlephTPC.xml
@@ -0,0 +1,116 @@
+<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="Alignment_aleph_tpc"
+	title="Alignment test detector with ALPEH TPC like sectors"
+	author="Markus Frank"
+	url="http://www.cern.ch/lhcb"
+	status="development"
+	version="$Id: compact.xml 513 2013-04-05 14:31:53Z gaede $">
+    <comment>Alignment test detector with ALPEH TPC like sectors</comment>        
+  </info>
+  
+  <includes>
+    <gdmlFile  ref="elements.xml"/>
+    <gdmlFile  ref="materials.xml"/>
+    <pyBuilder ref="../drivers"/>
+
+    <!--
+    <xml       ref="file:../DD4hep.trunk/DDExamples/AlignDet/compact/AlephTPC_alignment.xml"/>
+    -->
+  </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="tracking_region_radius" value="10000"/>
+    <constant name="tracking_region_zmax"   value="10000"/>
+
+    <!-- Parameters for the ALEPH TPC 90 model  -->
+    <constant name="TPC_outer_radius"         value="1800*mm"/>
+    <constant name="TPC_inner_radius"         value="310*mm"/>
+    <constant name="TPC_length"               value="4700*mm"/>
+    <constant name="TPC_inner_wall_thickness" value="2*mm"/>
+    <constant name="TPC_outer_wall_thickness" value="5*mm"/>
+  </define>
+
+  <materials>
+    <material name="CH4">
+      <D type="density" value="0.000656" unit="g/cm3"/>
+      <composite n="1" ref="C"/>
+      <composite n="4" ref="H"/>
+    </material>
+     <material name="ArCH4_90">
+      <D value="1.0015614" unit="g/cm3"/>
+      <fraction n="0.9" ref="Ar"/>
+      <fraction n="0.1" ref="CH4"/>
+    </material>
+
+    <!-- This is wrong!!!! -->
+    <material name="Mylar">
+      <D value="1.43" unit="g/cm3" />
+      <composite n="22" ref="C"/>
+      <composite n="10" ref="H" />
+      <composite n="2" ref="N" />
+      <composite n="5" ref="O" />
+    </material>
+
+  </materials>
+
+  <limits>
+    <limitset name="cal_limits">
+      <limit name="step_length_max" particles="*" value="5.0" unit="mm" />
+    </limitset>
+  </limits>
+  
+  <display>
+    <!--    Aleph TPC visualization parameters    -->
+    <vis name="TPCVis"           alpha="1.0" r="1"   g="1"    b="0.6"  drawingStyle="solid"     showDaughters="true"  visible="false" top="true"/>
+    <vis name="TPCInnerWallVis"       alpha="1.0" r="0"   g="0"  b="0.5"  drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCOuterWallVis"       alpha="1.0" r="0"   g="0.5"  b="0"  drawingStyle="solid"     lineStyle="broken" showDaughters="true"  visible="true"/>
+    <vis name="TPCEndcapVis"     alpha="1.0" r="1"   g="1"    b="0"    drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCSectorKVis"    alpha="1.0" r="1"   g="0"    b="0"    drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCSectorMVis"    alpha="1.0" r="0"   g="1"    b="0"    drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCSectorWVis"    alpha="1.0" r="0"   g="0"    b="1"    drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCGasVis"        alpha="1.0" r="1"   g="1"    b="1"    drawingStyle="solid"     showDaughters="false" visible="true"/>
+    <vis name="TPCCathodeVis"    alpha="1.0" r="1"   g="0.1"  b="0.1"  drawingStyle="solid"     showDaughters="false" visible="true"/>
+    <vis name="TPCCopperVis"     alpha="1.0" r="1"   g="0.3"  b="0.1"  drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCAluminumVis"   alpha="1.0" r="0.9" g="0.9"  b="0.9"  drawingStyle="solid"     showDaughters="true"  visible="true"/>
+    <vis name="TPCGreenVis"      alpha="1.0" r="0"   g="1"    b="0"    drawingStyle="solid"     showDaughters="true"  visible="true"/>
+  </display>
+  
+  <detectors>
+    <comment>ALEPH TPC example</comment>
+    <detector id="7" name="TPC" type="AlephTPC" limits="TPCLimits" readout="TPCHits" vis="TPCVis">
+      <envelope   inner_r="TPC_inner_radius" outer_r="TPC_outer_radius" zhalf="TPC_length/2" vis="invisible"/>
+      <inner_wall inner_r="TPC_inner_radius" thickness="5*mm" material="Mylar" vis="TPCInnerWallVis"/>
+      <outer_wall outer_r="TPC_outer_radius" thickness="5*mm" material="Mylar" vis="TPCOuterWallVis"/>
+      <gas zhalf="2.2*m" material="ArCH4_90" vis="invisible"/>
+      <pads  height="30*mm" width="6.2*mm" pitch="0.5*mm"/>
+      <trigger_pads  height="6.8*mm" width="15*degree" pitch="0.5*mm"/>
+      <sectors>
+	<layers>
+	  <layer material="Copper" thickness="0.1*cm" vis="TPCCopperVis" sensitive="true"/>
+	  <layer material="Kapton" thickness="0.03*cm"  vis="TPCGreenVis"/>
+	  <layer material="Copper" thickness="0.1*cm" vis="TPCAluminumVis"/>
+	  <layer material="Aluminum" thickness="3*cm"/>
+	</layers>
+	<sector type="K" rmin="38*cm"  rmax="91*cm"  padrows="9"  trgrows="8"  numwires="148" vis="TPCSectorKVis"/>
+	<sector type="M" rmin="100*cm" rmax="170*cm" padrows="12" trgrows="11" numwires="196" vis="TPCSectorMVis"/>
+	<sector type="W" rmin="100*cm" rmax="170*cm" padrows="12" trgrows="11" numwires="196" vis="TPCSectorWVis"/>
+      </sectors>
+      <cathode material="Mylar" thickness="0.05*mm" vis="TPCCathodeVis"/>
+    </detector>
+  </detectors>
+
+  <readouts>
+    <readout name="TPCHits">
+      <!-- |+++ Detector identifier ++++| |+++loc.coord++++|  -->
+      <id>system:8,side:1,type:2,sector:5,padrow:4,padnum:12</id>
+    </readout>
+  </readouts>
+</lccdd>
diff --git a/examples/AlignDet/compact/AlephTPC_alignment.xml b/examples/AlignDet/compact/AlephTPC_alignment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c7181f69d141adcfa21e2a5752d89c380da3f72f
--- /dev/null
+++ b/examples/AlignDet/compact/AlephTPC_alignment.xml
@@ -0,0 +1,79 @@
+<alignment>
+
+  <open_transaction/>
+  <subdetectors>
+    <!--
+	Note: The subdetector name MUST be in the list of top level
+	detector elements attached to the LCDD structure.
+
+A generic alignment transformation is defined by
+- a translation in 3D space identified in XML as a
+<position/> element
+- a rotation in 3D space around a pivot point specified in XML by
+2 elements: the <rotation/> and the <pivot/> element.
+The specification of any of the elements is optional:
+- The absence of a translation implies the origin (0,0,0)
+- The absence of a pivot point implies the origin (0,0,0)
+- The absence of a rotation implies the identity rotation.
+Any supplied pivot point in this case is ignored.
+
+<position x="30"   y="30"  z="80"/>
+
+    -->
+
+    <detelement path="TPC" reset="true" reset_children="true">
+      <comment ref="Move the entire TPC in the world volume."/>
+      <position x="0"   y="0"  z="0*mm"/>
+      <rotation x="0" y="0" z="0"/>     
+
+      <comment ref="Twist a bit the entire endcap A"/>
+      <detelement path="/world/TPC/TPC_SideA" check_overlaps="false">
+	<position x="0"   y="0"  z="-500*mm"/>
+	<rotation x="-0.2" y="-0.2"  z="0"/>
+
+	<comment ref="A detector element relative to the parent"/>
+	<detelement path="TPC_SideA_sector02" check_overlaps="true">
+	  <position x="0"   y="0"   z="0"/>
+	  <rotation x="0.5" y="0.1" z="0.2"/>     
+	</detelement>
+      </detelement>
+
+      <detelement path="TPC_SideA/TPC_SideA_sector03" check_overlaps="true">
+	<position x="0" y="0"    z="290.0*mm"/>
+	<rotation x="0" y="pi/2" z="0"/>     
+	<pivot    x="0" y="0"    z="100"/>     
+	<volume path="TPC_sector_K_layer2_2">
+	  <position x="0" y="0"  z="0.0001*mm"/>
+	  <rotation x="0" y="0.5"  z="0"/>     
+	</volume>
+      </detelement>
+
+      <detelement path="TPC_SideA/TPC_SideA_sector05" check_overlaps="false">
+	<position x="0"    y="0" z="150.0*mm"/>
+	<rotation x="0" y="0" z="0"/>     
+      </detelement>
+
+      <detelement path="TPC_SideA/TPC_SideA_sector10" check_overlaps="false">
+	<position x="0"  y="0" z="450.0*mm"/>
+	<rotation x="0"  y="0" z="pi/4"/>     
+      </detelement>
+
+      <comment ref="Twist a bit the entire endcap B"/>
+      <detelement path="TPC_SideB" check_overlaps="false">
+	<position x="0"   y="0"  z="0"/>
+	<rotation x="0" y="0"  z="0"/>
+
+	<comment ref="A detector element relative to the parent"/>
+	<detelement path="TPC_SideB_sector02" check_overlaps="true">
+	  <position x="0"   y="0"   z="0"/>
+	  <rotation x="0.5" y="0.1" z="0.2"/>     
+	</detelement>
+      </detelement>  <comment ref="end: TPC side B"/>
+<!--
+-->
+    </detelement>  <!-- end: TPC -->
+
+  </subdetectors>
+
+  <close_transaction/>
+</alignment>
diff --git a/examples/AlignDet/compact/AlephTPC_reset.xml b/examples/AlignDet/compact/AlephTPC_reset.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ed5d594c07d8f9e124348a7d3cf864423f60a05b
--- /dev/null
+++ b/examples/AlignDet/compact/AlephTPC_reset.xml
@@ -0,0 +1,26 @@
+<alignment print="true">
+  <open_transaction/>
+  <subdetectors>
+    <!--
+	Note: The subdetector name MUST be in the list of top level
+	detector elements attached to the LCDD structure.
+
+    -->
+    <detelement path="TPC" reset="false">
+      <detelement path="/world/TPC/TPC_SideA" reset="true" reset_children="false">
+	<position x="0"   y="0"  z="0"/>
+	<rotation x="-0.25" y="0"  z="0"/>
+      </detelement>
+<!--
+      <detelement path="/world/TPC/TPC_SideA/TPC_SideA_sector05" reset="true"/>
+      <detelement path="/world/TPC/TPC_SideA/TPC_SideA_sector02" reset="true"/>
+      <detelement path="TPC_SideA/TPC_SideA_sector03" reset="true">
+	<volume path="layer4_0"	reset="true"/>
+      </detelement>
+      <detelement path="TPC_SideA/TPC_SideA_sector10" reset="true"/>
+-->
+      <detelement path="/world/TPC/TPC_SideB" reset="true" reset_children="false"/>
+    </detelement>
+  </subdetectors>
+  <close_transaction/>
+</alignment>
diff --git a/examples/AlignDet/compact/compact.xml b/examples/AlignDet/compact/compact.xml
new file mode 100644
index 0000000000000000000000000000000000000000..44ff59cbeaf5980bbca6d450e811bc5698a69e3a
--- /dev/null
+++ b/examples/AlignDet/compact/compact.xml
@@ -0,0 +1,72 @@
+<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="alignment_boxes"
+	title="Alignment test with 2 simple boxes"
+	author="Markus Frank"
+	url="http://www.cern.ch/lhcb"
+	status="development"
+	version="$Id: compact.xml 513 2013-04-05 14:31:53Z gaede $">
+    <comment>Alignment test with 2 simple boxes</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="tracking_region_radius" value="10000"/>
+    <constant name="tracking_region_zmax"   value="10000"/>
+
+  </define>
+
+  <display>
+    <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
+    <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
+    <vis name="B1_vis" alpha="1.0" r="1" g="0" b="0" showDaughters="true" visible="true"/>
+    <vis name="B2_vis" alpha="1.0" r="0" g="1" b="0" showDaughters="true" visible="true"/>
+  </display>
+  
+  <!-- detectors>
+       <comment>Library</comment>
+       <detector id="1" name="S1" type="Shelf" >
+       <material name="Steel235"/>
+       <planes number="2"  x="11*cm" y="2*cm" dy="50*cm" z="40*cm" vis="B1_vis" />
+       <books number="10"  x="10*cm" y="15*cm" z="3*cm" dz="0.2*cm" vis="B2_vis"/>
+       </detector>
+       </detectors -->
+
+  <detectors>
+    <comment>Boxes</comment>
+    <detector id="1" name="B1" type="BoxSegment" vis="B1_vis">
+      <comment>Horizontal box</comment>
+      <material name="Steel235"/>
+      <box      x="20"   y="0.1" z="5"/>
+      <position x="20"   y="10"  z="10"/>
+      <rotation x="1"    y="0"   z="0"/>
+    </detector>
+    <detector id="2" name="B2" type="BoxSegment" vis="B2_vis">
+      <comment>Vertical box</comment>
+      <material name="Steel235"/>
+      <box      x="0.1" y="20"   z="5"/>
+      <position x="0"   y="30"   z="10"/>
+      <rotation x="0"   y="0"    z="0"/>
+    </detector>
+  </detectors>
+
+  <alignments>
+    <alignment name="/world_volume_1/B1_vol_0" shortcut="Box1">
+      <position x="0"   y="0"    z="0"/>
+      <rotation x="0.5"   y="0"  z="0"/>
+    </alignment>
+  </alignments>
+
+</lccdd>
diff --git a/examples/AlignDet/compact/elements.xml b/examples/AlignDet/compact/elements.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e714c3a5cd544e748dd2941967cff515c0b77efc
--- /dev/null
+++ b/examples/AlignDet/compact/elements.xml
@@ -0,0 +1,884 @@
+<materials>
+ <element Z="89" formula="Ac" name="Ac" >
+  <atom type="A" unit="g/mol" value="227.028" />
+ </element>
+ <material formula="Ac" name="Actinium" state="solid" >
+  <RL type="X0" unit="cm" value="0.601558" />
+  <NIL type="lambda" unit="cm" value="21.2048" />
+  <D type="density" unit="g/cm3" value="10.07" />
+  <composite n="1" ref="Ac" />
+ </material>
+ <element Z="47" formula="Ag" name="Ag" >
+  <atom type="A" unit="g/mol" value="107.868" />
+ </element>
+ <material formula="Ag" name="Silver" state="solid" >
+  <RL type="X0" unit="cm" value="0.854292" />
+  <NIL type="lambda" unit="cm" value="15.8546" />
+  <D type="density" unit="g/cm3" value="10.5" />
+  <composite n="1" ref="Ag" />
+ </material>
+ <element Z="13" formula="Al" name="Al" >
+  <atom type="A" unit="g/mol" value="26.9815" />
+ </element>
+ <material formula="Al" name="Aluminum" state="solid" >
+  <RL type="X0" unit="cm" value="8.89632" />
+  <NIL type="lambda" unit="cm" value="38.8766" />
+  <D type="density" unit="g/cm3" value="2.699" />
+  <composite n="1" ref="Al" />
+ </material>
+ <element Z="95" formula="Am" name="Am" >
+  <atom type="A" unit="g/mol" value="243.061" />
+ </element>
+ <material formula="Am" name="Americium" state="solid" >
+  <RL type="X0" unit="cm" value="0.42431" />
+  <NIL type="lambda" unit="cm" value="15.9812" />
+  <D type="density" unit="g/cm3" value="13.67" />
+  <composite n="1" ref="Am" />
+ </material>
+ <element Z="18" formula="Ar" name="Ar" >
+  <atom type="A" unit="g/mol" value="39.9477" />
+ </element>
+ <material formula="Ar" name="Argon" state="gas" >
+  <RL type="X0" unit="cm" value="11762.1" />
+  <NIL type="lambda" unit="cm" value="71926" />
+  <D type="density" unit="g/cm3" value="0.00166201" />
+  <composite n="1" ref="Ar" />
+ </material>
+ <element Z="33" formula="As" name="As" >
+  <atom type="A" unit="g/mol" value="74.9216" />
+ </element>
+ <material formula="As" name="Arsenic" state="solid" >
+  <RL type="X0" unit="cm" value="2.0838" />
+  <NIL type="lambda" unit="cm" value="25.7324" />
+  <D type="density" unit="g/cm3" value="5.73" />
+  <composite n="1" ref="As" />
+ </material>
+ <element Z="85" formula="At" name="At" >
+  <atom type="A" unit="g/mol" value="209.987" />
+ </element>
+ <material formula="At" name="Astatine" state="solid" >
+  <RL type="X0" unit="cm" value="0.650799" />
+  <NIL type="lambda" unit="cm" value="22.3202" />
+  <D type="density" unit="g/cm3" value="9.32" />
+  <composite n="1" ref="At" />
+ </material>
+ <element Z="79" formula="Au" name="Au" >
+  <atom type="A" unit="g/mol" value="196.967" />
+ </element>
+ <material formula="Au" name="Gold" state="solid" >
+  <RL type="X0" unit="cm" value="0.334436" />
+  <NIL type="lambda" unit="cm" value="10.5393" />
+  <D type="density" unit="g/cm3" value="19.32" />
+  <composite n="1" ref="Au" />
+ </material>
+ <element Z="5" formula="B" name="B" >
+  <atom type="A" unit="g/mol" value="10.811" />
+ </element>
+ <material formula="B" name="Boron" state="solid" >
+  <RL type="X0" unit="cm" value="22.2307" />
+  <NIL type="lambda" unit="cm" value="32.2793" />
+  <D type="density" unit="g/cm3" value="2.37" />
+  <composite n="1" ref="B" />
+ </material>
+ <element Z="56" formula="Ba" name="Ba" >
+  <atom type="A" unit="g/mol" value="137.327" />
+ </element>
+ <material formula="Ba" name="Barium" state="solid" >
+  <RL type="X0" unit="cm" value="2.37332" />
+  <NIL type="lambda" unit="cm" value="51.6743" />
+  <D type="density" unit="g/cm3" value="3.5" />
+  <composite n="1" ref="Ba" />
+ </material>
+ <element Z="4" formula="Be" name="Be" >
+  <atom type="A" unit="g/mol" value="9.01218" />
+ </element>
+ <material formula="Be" name="Beryllium" state="solid" >
+  <RL type="X0" unit="cm" value="35.276" />
+  <NIL type="lambda" unit="cm" value="39.4488" />
+  <D type="density" unit="g/cm3" value="1.848" />
+  <composite n="1" ref="Be" />
+ </material>
+ <element Z="83" formula="Bi" name="Bi" >
+  <atom type="A" unit="g/mol" value="208.98" />
+ </element>
+ <material formula="Bi" name="Bismuth" state="solid" >
+  <RL type="X0" unit="cm" value="0.645388" />
+  <NIL type="lambda" unit="cm" value="21.3078" />
+  <D type="density" unit="g/cm3" value="9.747" />
+  <composite n="1" ref="Bi" />
+ </material>
+ <element Z="97" formula="Bk" name="Bk" >
+  <atom type="A" unit="g/mol" value="247.07" />
+ </element>
+ <material formula="Bk" name="Berkelium" state="solid" >
+  <RL type="X0" unit="cm" value="0.406479" />
+  <NIL type="lambda" unit="cm" value="15.6902" />
+  <D type="density" unit="g/cm3" value="14" />
+  <composite n="1" ref="Bk" />
+ </material>
+ <element Z="35" formula="Br" name="Br" >
+  <atom type="A" unit="g/mol" value="79.9035" />
+ </element>
+ <material formula="Br" name="Bromine" state="gas" >
+  <RL type="X0" unit="cm" value="1615.12" />
+  <NIL type="lambda" unit="cm" value="21299" />
+  <D type="density" unit="g/cm3" value="0.0070721" />
+  <composite n="1" ref="Br" />
+ </material>
+ <element Z="6" formula="C" name="C" >
+  <atom type="A" unit="g/mol" value="12.0107" />
+ </element>
+ <material formula="C" name="Carbon" state="solid" >
+  <RL type="X0" unit="cm" value="21.3485" />
+  <NIL type="lambda" unit="cm" value="40.1008" />
+  <D type="density" unit="g/cm3" value="2" />
+  <composite n="1" ref="C" />
+ </material>
+ <element Z="20" formula="Ca" name="Ca" >
+  <atom type="A" unit="g/mol" value="40.078" />
+ </element>
+ <material formula="Ca" name="Calcium" state="solid" >
+  <RL type="X0" unit="cm" value="10.4151" />
+  <NIL type="lambda" unit="cm" value="77.3754" />
+  <D type="density" unit="g/cm3" value="1.55" />
+  <composite n="1" ref="Ca" />
+ </material>
+ <element Z="48" formula="Cd" name="Cd" >
+  <atom type="A" unit="g/mol" value="112.411" />
+ </element>
+ <material formula="Cd" name="Cadmium" state="solid" >
+  <RL type="X0" unit="cm" value="1.03994" />
+  <NIL type="lambda" unit="cm" value="19.46" />
+  <D type="density" unit="g/cm3" value="8.65" />
+  <composite n="1" ref="Cd" />
+ </material>
+ <element Z="58" formula="Ce" name="Ce" >
+  <atom type="A" unit="g/mol" value="140.115" />
+ </element>
+ <material formula="Ce" name="Cerium" state="solid" >
+  <RL type="X0" unit="cm" value="1.19506" />
+  <NIL type="lambda" unit="cm" value="27.3227" />
+  <D type="density" unit="g/cm3" value="6.657" />
+  <composite n="1" ref="Ce" />
+ </material>
+ <element Z="98" formula="Cf" name="Cf" >
+  <atom type="A" unit="g/mol" value="251.08" />
+ </element>
+ <material formula="Cf" name="Californium" state="solid" >
+  <RL type="X0" unit="cm" value="0.568328" />
+  <NIL type="lambda" unit="cm" value="22.085" />
+  <D type="density" unit="g/cm3" value="10" />
+  <composite n="1" ref="Cf" />
+ </material>
+ <element Z="17" formula="Cl" name="Cl" >
+  <atom type="A" unit="g/mol" value="35.4526" />
+ </element>
+ <material formula="Cl" name="Chlorine" state="gas" >
+  <RL type="X0" unit="cm" value="6437.34" />
+  <NIL type="lambda" unit="cm" value="38723.9" />
+  <D type="density" unit="g/cm3" value="0.00299473" />
+  <composite n="1" ref="Cl" />
+ </material>
+ <element Z="96" formula="Cm" name="Cm" >
+  <atom type="A" unit="g/mol" value="247.07" />
+ </element>
+ <material formula="Cm" name="Curium" state="solid" >
+  <RL type="X0" unit="cm" value="0.428706" />
+  <NIL type="lambda" unit="cm" value="16.2593" />
+  <D type="density" unit="g/cm3" value="13.51" />
+  <composite n="1" ref="Cm" />
+ </material>
+ <element Z="27" formula="Co" name="Co" >
+  <atom type="A" unit="g/mol" value="58.9332" />
+ </element>
+ <material formula="Co" name="Cobalt" state="solid" >
+  <RL type="X0" unit="cm" value="1.53005" />
+  <NIL type="lambda" unit="cm" value="15.2922" />
+  <D type="density" unit="g/cm3" value="8.9" />
+  <composite n="1" ref="Co" />
+ </material>
+ <element Z="24" formula="Cr" name="Cr" >
+  <atom type="A" unit="g/mol" value="51.9961" />
+ </element>
+ <material formula="Cr" name="Chromium" state="solid" >
+  <RL type="X0" unit="cm" value="2.0814" />
+  <NIL type="lambda" unit="cm" value="18.1933" />
+  <D type="density" unit="g/cm3" value="7.18" />
+  <composite n="1" ref="Cr" />
+ </material>
+ <element Z="55" formula="Cs" name="Cs" >
+  <atom type="A" unit="g/mol" value="132.905" />
+ </element>
+ <material formula="Cs" name="Cesium" state="solid" >
+  <RL type="X0" unit="cm" value="4.4342" />
+  <NIL type="lambda" unit="cm" value="95.317" />
+  <D type="density" unit="g/cm3" value="1.873" />
+  <composite n="1" ref="Cs" />
+ </material>
+ <element Z="29" formula="Cu" name="Cu" >
+  <atom type="A" unit="g/mol" value="63.5456" />
+ </element>
+ <material formula="Cu" name="Copper" state="solid" >
+  <RL type="X0" unit="cm" value="1.43558" />
+  <NIL type="lambda" unit="cm" value="15.5141" />
+  <D type="density" unit="g/cm3" value="8.96" />
+  <composite n="1" ref="Cu" />
+ </material>
+ <element Z="66" formula="Dy" name="Dy" >
+  <atom type="A" unit="g/mol" value="162.497" />
+ </element>
+ <material formula="Dy" name="Dysprosium" state="solid" >
+  <RL type="X0" unit="cm" value="0.85614" />
+  <NIL type="lambda" unit="cm" value="22.2923" />
+  <D type="density" unit="g/cm3" value="8.55" />
+  <composite n="1" ref="Dy" />
+ </material>
+ <element Z="68" formula="Er" name="Er" >
+  <atom type="A" unit="g/mol" value="167.256" />
+ </element>
+ <material formula="Er" name="Erbium" state="solid" >
+  <RL type="X0" unit="cm" value="0.788094" />
+  <NIL type="lambda" unit="cm" value="21.2923" />
+  <D type="density" unit="g/cm3" value="9.066" />
+  <composite n="1" ref="Er" />
+ </material>
+ <element Z="63" formula="Eu" name="Eu" >
+  <atom type="A" unit="g/mol" value="151.964" />
+ </element>
+ <material formula="Eu" name="Europium" state="solid" >
+  <RL type="X0" unit="cm" value="1.41868" />
+  <NIL type="lambda" unit="cm" value="35.6178" />
+  <D type="density" unit="g/cm3" value="5.243" />
+  <composite n="1" ref="Eu" />
+ </material>
+ <element Z="9" formula="F" name="F" >
+  <atom type="A" unit="g/mol" value="18.9984" />
+ </element>
+ <material formula="F" name="Fluorine" state="gas" >
+  <RL type="X0" unit="cm" value="20838.2" />
+  <NIL type="lambda" unit="cm" value="59094.3" />
+  <D type="density" unit="g/cm3" value="0.00158029" />
+  <composite n="1" ref="F" />
+ </material>
+ <element Z="26" formula="Fe" name="Fe" >
+  <atom type="A" unit="g/mol" value="55.8451" />
+ </element>
+ <material formula="Fe" name="Iron" state="solid" >
+  <RL type="X0" unit="cm" value="1.75749" />
+  <NIL type="lambda" unit="cm" value="16.959" />
+  <D type="density" unit="g/cm3" value="7.874" />
+  <composite n="1" ref="Fe" />
+ </material>
+ <element Z="87" formula="Fr" name="Fr" >
+  <atom type="A" unit="g/mol" value="223.02" />
+ </element>
+ <material formula="Fr" name="Francium" state="solid" >
+  <RL type="X0" unit="cm" value="6.18826" />
+  <NIL type="lambda" unit="cm" value="212.263" />
+  <D type="density" unit="g/cm3" value="1" />
+  <composite n="1" ref="Fr" />
+ </material>
+ <element Z="31" formula="Ga" name="Ga" >
+  <atom type="A" unit="g/mol" value="69.7231" />
+ </element>
+ <material formula="Ga" name="Gallium" state="solid" >
+  <RL type="X0" unit="cm" value="2.1128" />
+  <NIL type="lambda" unit="cm" value="24.3351" />
+  <D type="density" unit="g/cm3" value="5.904" />
+  <composite n="1" ref="Ga" />
+ </material>
+ <element Z="64" formula="Gd" name="Gd" >
+  <atom type="A" unit="g/mol" value="157.252" />
+ </element>
+ <material formula="Gd" name="Gadolinium" state="solid" >
+  <RL type="X0" unit="cm" value="0.947208" />
+  <NIL type="lambda" unit="cm" value="23.9377" />
+  <D type="density" unit="g/cm3" value="7.9004" />
+  <composite n="1" ref="Gd" />
+ </material>
+ <element Z="32" formula="Ge" name="Ge" >
+  <atom type="A" unit="g/mol" value="72.6128" />
+ </element>
+ <material formula="Ge" name="Germanium" state="solid" >
+  <RL type="X0" unit="cm" value="2.3013" />
+  <NIL type="lambda" unit="cm" value="27.3344" />
+  <D type="density" unit="g/cm3" value="5.323" />
+  <composite n="1" ref="Ge" />
+ </material>
+ <element Z="1" formula="H" name="H" >
+  <atom type="A" unit="g/mol" value="1.00794" />
+ </element>
+ <material formula="H" name="Hydrogen" state="gas" >
+  <RL type="X0" unit="cm" value="752776" />
+  <NIL type="lambda" unit="cm" value="421239" />
+  <D type="density" unit="g/cm3" value="8.3748e-05" />
+  <composite n="1" ref="H" />
+ </material>
+ <element Z="2" formula="He" name="He" >
+  <atom type="A" unit="g/mol" value="4.00264" />
+ </element>
+ <material formula="He" name="Helium" state="gas" >
+  <RL type="X0" unit="cm" value="567113" />
+  <NIL type="lambda" unit="cm" value="334266" />
+  <D type="density" unit="g/cm3" value="0.000166322" />
+  <composite n="1" ref="He" />
+ </material>
+ <element Z="72" formula="Hf" name="Hf" >
+  <atom type="A" unit="g/mol" value="178.485" />
+ </element>
+ <material formula="Hf" name="Hafnium" state="solid" >
+  <RL type="X0" unit="cm" value="0.517717" />
+  <NIL type="lambda" unit="cm" value="14.7771" />
+  <D type="density" unit="g/cm3" value="13.31" />
+  <composite n="1" ref="Hf" />
+ </material>
+ <element Z="80" formula="Hg" name="Hg" >
+  <atom type="A" unit="g/mol" value="200.599" />
+ </element>
+ <material formula="Hg" name="Mercury" state="solid" >
+  <RL type="X0" unit="cm" value="0.475241" />
+  <NIL type="lambda" unit="cm" value="15.105" />
+  <D type="density" unit="g/cm3" value="13.546" />
+  <composite n="1" ref="Hg" />
+ </material>
+ <element Z="67" formula="Ho" name="Ho" >
+  <atom type="A" unit="g/mol" value="164.93" />
+ </element>
+ <material formula="Ho" name="Holmium" state="solid" >
+  <RL type="X0" unit="cm" value="0.822447" />
+  <NIL type="lambda" unit="cm" value="21.8177" />
+  <D type="density" unit="g/cm3" value="8.795" />
+  <composite n="1" ref="Ho" />
+ </material>
+ <element Z="53" formula="I" name="I" >
+  <atom type="A" unit="g/mol" value="126.904" />
+ </element>
+ <material formula="I" name="Iodine" state="solid" >
+  <RL type="X0" unit="cm" value="1.72016" />
+  <NIL type="lambda" unit="cm" value="35.6583" />
+  <D type="density" unit="g/cm3" value="4.93" />
+  <composite n="1" ref="I" />
+ </material>
+ <element Z="49" formula="In" name="In" >
+  <atom type="A" unit="g/mol" value="114.818" />
+ </element>
+ <material formula="In" name="Indium" state="solid" >
+  <RL type="X0" unit="cm" value="1.21055" />
+  <NIL type="lambda" unit="cm" value="23.2468" />
+  <D type="density" unit="g/cm3" value="7.31" />
+  <composite n="1" ref="In" />
+ </material>
+ <element Z="77" formula="Ir" name="Ir" >
+  <atom type="A" unit="g/mol" value="192.216" />
+ </element>
+ <material formula="Ir" name="Iridium" state="solid" >
+  <RL type="X0" unit="cm" value="0.294142" />
+  <NIL type="lambda" unit="cm" value="9.01616" />
+  <D type="density" unit="g/cm3" value="22.42" />
+  <composite n="1" ref="Ir" />
+ </material>
+ <element Z="19" formula="K" name="K" >
+  <atom type="A" unit="g/mol" value="39.0983" />
+ </element>
+ <material formula="K" name="Potassium" state="solid" >
+  <RL type="X0" unit="cm" value="20.0871" />
+  <NIL type="lambda" unit="cm" value="138.041" />
+  <D type="density" unit="g/cm3" value="0.862" />
+  <composite n="1" ref="K" />
+ </material>
+ <element Z="36" formula="Kr" name="Kr" >
+  <atom type="A" unit="g/mol" value="83.7993" />
+ </element>
+ <material formula="Kr" name="Krypton" state="gas" >
+  <RL type="X0" unit="cm" value="3269.44" />
+  <NIL type="lambda" unit="cm" value="43962.9" />
+  <D type="density" unit="g/cm3" value="0.00347832" />
+  <composite n="1" ref="Kr" />
+ </material>
+ <element Z="57" formula="La" name="La" >
+  <atom type="A" unit="g/mol" value="138.905" />
+ </element>
+ <material formula="La" name="Lanthanum" state="solid" >
+  <RL type="X0" unit="cm" value="1.32238" />
+  <NIL type="lambda" unit="cm" value="29.441" />
+  <D type="density" unit="g/cm3" value="6.154" />
+  <composite n="1" ref="La" />
+ </material>
+ <element Z="3" formula="Li" name="Li" >
+  <atom type="A" unit="g/mol" value="6.94003" />
+ </element>
+ <material formula="Li" name="Lithium" state="solid" >
+  <RL type="X0" unit="cm" value="154.997" />
+  <NIL type="lambda" unit="cm" value="124.305" />
+  <D type="density" unit="g/cm3" value="0.534" />
+  <composite n="1" ref="Li" />
+ </material>
+ <element Z="71" formula="Lu" name="Lu" >
+  <atom type="A" unit="g/mol" value="174.967" />
+ </element>
+ <material formula="Lu" name="Lutetium" state="solid" >
+  <RL type="X0" unit="cm" value="0.703651" />
+  <NIL type="lambda" unit="cm" value="19.8916" />
+  <D type="density" unit="g/cm3" value="9.84" />
+  <composite n="1" ref="Lu" />
+ </material>
+ <element Z="12" formula="Mg" name="Mg" >
+  <atom type="A" unit="g/mol" value="24.305" />
+ </element>
+ <material formula="Mg" name="Magnesium" state="solid" >
+  <RL type="X0" unit="cm" value="14.3859" />
+  <NIL type="lambda" unit="cm" value="58.7589" />
+  <D type="density" unit="g/cm3" value="1.74" />
+  <composite n="1" ref="Mg" />
+ </material>
+ <element Z="25" formula="Mn" name="Mn" >
+  <atom type="A" unit="g/mol" value="54.938" />
+ </element>
+ <material formula="Mn" name="Manganese" state="solid" >
+  <RL type="X0" unit="cm" value="1.96772" />
+  <NIL type="lambda" unit="cm" value="17.8701" />
+  <D type="density" unit="g/cm3" value="7.44" />
+  <composite n="1" ref="Mn" />
+ </material>
+ <element Z="42" formula="Mo" name="Mo" >
+  <atom type="A" unit="g/mol" value="95.9313" />
+ </element>
+ <material formula="Mo" name="Molybdenum" state="solid" >
+  <RL type="X0" unit="cm" value="0.959107" />
+  <NIL type="lambda" unit="cm" value="15.6698" />
+  <D type="density" unit="g/cm3" value="10.22" />
+  <composite n="1" ref="Mo" />
+ </material>
+ <element Z="7" formula="N" name="N" >
+  <atom type="A" unit="g/mol" value="14.0068" />
+ </element>
+ <material formula="N" name="Nitrogen" state="gas" >
+  <RL type="X0" unit="cm" value="32602.2" />
+  <NIL type="lambda" unit="cm" value="72430.3" />
+  <D type="density" unit="g/cm3" value="0.0011652" />
+  <composite n="1" ref="N" />
+ </material>
+ <element Z="11" formula="Na" name="Na" >
+  <atom type="A" unit="g/mol" value="22.9898" />
+ </element>
+ <material formula="Na" name="Sodium" state="solid" >
+  <RL type="X0" unit="cm" value="28.5646" />
+  <NIL type="lambda" unit="cm" value="102.463" />
+  <D type="density" unit="g/cm3" value="0.971" />
+  <composite n="1" ref="Na" />
+ </material>
+ <element Z="41" formula="Nb" name="Nb" >
+  <atom type="A" unit="g/mol" value="92.9064" />
+ </element>
+ <material formula="Nb" name="Niobium" state="solid" >
+  <RL type="X0" unit="cm" value="1.15783" />
+  <NIL type="lambda" unit="cm" value="18.4846" />
+  <D type="density" unit="g/cm3" value="8.57" />
+  <composite n="1" ref="Nb" />
+ </material>
+ <element Z="60" formula="Nd" name="Nd" >
+  <atom type="A" unit="g/mol" value="144.236" />
+ </element>
+ <material formula="Nd" name="Neodymium" state="solid" >
+  <RL type="X0" unit="cm" value="1.11667" />
+  <NIL type="lambda" unit="cm" value="26.6308" />
+  <D type="density" unit="g/cm3" value="6.9" />
+  <composite n="1" ref="Nd" />
+ </material>
+ <element Z="10" formula="Ne" name="Ne" >
+  <atom type="A" unit="g/mol" value="20.18" />
+ </element>
+ <material formula="Ne" name="Neon" state="gas" >
+  <RL type="X0" unit="cm" value="34504.8" />
+  <NIL type="lambda" unit="cm" value="114322" />
+  <D type="density" unit="g/cm3" value="0.000838505" />
+  <composite n="1" ref="Ne" />
+ </material>
+ <element Z="28" formula="Ni" name="Ni" >
+  <atom type="A" unit="g/mol" value="58.6933" />
+ </element>
+ <material formula="Ni" name="Nickel" state="solid" >
+  <RL type="X0" unit="cm" value="1.42422" />
+  <NIL type="lambda" unit="cm" value="15.2265" />
+  <D type="density" unit="g/cm3" value="8.902" />
+  <composite n="1" ref="Ni" />
+ </material>
+ <element Z="93" formula="Np" name="Np" >
+  <atom type="A" unit="g/mol" value="237.048" />
+ </element>
+ <material formula="Np" name="Neptunium" state="solid" >
+  <RL type="X0" unit="cm" value="0.289676" />
+  <NIL type="lambda" unit="cm" value="10.6983" />
+  <D type="density" unit="g/cm3" value="20.25" />
+  <composite n="1" ref="Np" />
+ </material>
+ <element Z="8" formula="O" name="O" >
+  <atom type="A" unit="g/mol" value="15.9994" />
+ </element>
+ <material formula="O" name="Oxygen" state="gas" >
+  <RL type="X0" unit="cm" value="25713.8" />
+  <NIL type="lambda" unit="cm" value="66233.9" />
+  <D type="density" unit="g/cm3" value="0.00133151" />
+  <composite n="1" ref="O" />
+ </material>
+ <element Z="76" formula="Os" name="Os" >
+  <atom type="A" unit="g/mol" value="190.225" />
+ </element>
+ <material formula="Os" name="Osmium" state="solid" >
+  <RL type="X0" unit="cm" value="0.295861" />
+  <NIL type="lambda" unit="cm" value="8.92553" />
+  <D type="density" unit="g/cm3" value="22.57" />
+  <composite n="1" ref="Os" />
+ </material>
+ <element Z="15" formula="P" name="P" >
+  <atom type="A" unit="g/mol" value="30.9738" />
+ </element>
+ <material formula="P" name="Phosphorus" state="solid" >
+  <RL type="X0" unit="cm" value="9.63879" />
+  <NIL type="lambda" unit="cm" value="49.9343" />
+  <D type="density" unit="g/cm3" value="2.2" />
+  <composite n="1" ref="P" />
+ </material>
+ <element Z="91" formula="Pa" name="Pa" >
+  <atom type="A" unit="g/mol" value="231.036" />
+ </element>
+ <material formula="Pa" name="Protactinium" state="solid" >
+  <RL type="X0" unit="cm" value="0.38607" />
+  <NIL type="lambda" unit="cm" value="13.9744" />
+  <D type="density" unit="g/cm3" value="15.37" />
+  <composite n="1" ref="Pa" />
+ </material>
+ <element Z="82" formula="Pb" name="Pb" >
+  <atom type="A" unit="g/mol" value="207.217" />
+ </element>
+ <material formula="Pb" name="Lead" state="solid" >
+  <RL type="X0" unit="cm" value="0.561253" />
+  <NIL type="lambda" unit="cm" value="18.2607" />
+  <D type="density" unit="g/cm3" value="11.35" />
+  <composite n="1" ref="Pb" />
+ </material>
+ <element Z="46" formula="Pd" name="Pd" >
+  <atom type="A" unit="g/mol" value="106.415" />
+ </element>
+ <material formula="Pd" name="Palladium" state="solid" >
+  <RL type="X0" unit="cm" value="0.765717" />
+  <NIL type="lambda" unit="cm" value="13.7482" />
+  <D type="density" unit="g/cm3" value="12.02" />
+  <composite n="1" ref="Pd" />
+ </material>
+ <element Z="61" formula="Pm" name="Pm" >
+  <atom type="A" unit="g/mol" value="144.913" />
+ </element>
+ <material formula="Pm" name="Promethium" state="solid" >
+  <RL type="X0" unit="cm" value="1.04085" />
+  <NIL type="lambda" unit="cm" value="25.4523" />
+  <D type="density" unit="g/cm3" value="7.22" />
+  <composite n="1" ref="Pm" />
+ </material>
+ <element Z="84" formula="Po" name="Po" >
+  <atom type="A" unit="g/mol" value="208.982" />
+ </element>
+ <material formula="Po" name="Polonium" state="solid" >
+  <RL type="X0" unit="cm" value="0.661092" />
+  <NIL type="lambda" unit="cm" value="22.2842" />
+  <D type="density" unit="g/cm3" value="9.32" />
+  <composite n="1" ref="Po" />
+ </material>
+ <element Z="59" formula="Pr" name="Pr" >
+  <atom type="A" unit="g/mol" value="140.908" />
+ </element>
+ <material formula="Pr" name="Praseodymium" state="solid" >
+  <RL type="X0" unit="cm" value="1.1562" />
+  <NIL type="lambda" unit="cm" value="27.1312" />
+  <D type="density" unit="g/cm3" value="6.71" />
+  <composite n="1" ref="Pr" />
+ </material>
+ <element Z="78" formula="Pt" name="Pt" >
+  <atom type="A" unit="g/mol" value="195.078" />
+ </element>
+ <material formula="Pt" name="Platinum" state="solid" >
+  <RL type="X0" unit="cm" value="0.305053" />
+  <NIL type="lambda" unit="cm" value="9.46584" />
+  <D type="density" unit="g/cm3" value="21.45" />
+  <composite n="1" ref="Pt" />
+ </material>
+ <element Z="94" formula="Pu" name="Pu" >
+  <atom type="A" unit="g/mol" value="244.064" />
+ </element>
+ <material formula="Pu" name="Plutonium" state="solid" >
+  <RL type="X0" unit="cm" value="0.298905" />
+  <NIL type="lambda" unit="cm" value="11.0265" />
+  <D type="density" unit="g/cm3" value="19.84" />
+  <composite n="1" ref="Pu" />
+ </material>
+ <element Z="88" formula="Ra" name="Ra" >
+  <atom type="A" unit="g/mol" value="226.025" />
+ </element>
+ <material formula="Ra" name="Radium" state="solid" >
+  <RL type="X0" unit="cm" value="1.22987" />
+  <NIL type="lambda" unit="cm" value="42.6431" />
+  <D type="density" unit="g/cm3" value="5" />
+  <composite n="1" ref="Ra" />
+ </material>
+ <element Z="37" formula="Rb" name="Rb" >
+  <atom type="A" unit="g/mol" value="85.4677" />
+ </element>
+ <material formula="Rb" name="Rubidium" state="solid" >
+  <RL type="X0" unit="cm" value="7.19774" />
+  <NIL type="lambda" unit="cm" value="100.218" />
+  <D type="density" unit="g/cm3" value="1.532" />
+  <composite n="1" ref="Rb" />
+ </material>
+ <element Z="75" formula="Re" name="Re" >
+  <atom type="A" unit="g/mol" value="186.207" />
+ </element>
+ <material formula="Re" name="Rhenium" state="solid" >
+  <RL type="X0" unit="cm" value="0.318283" />
+  <NIL type="lambda" unit="cm" value="9.5153" />
+  <D type="density" unit="g/cm3" value="21.02" />
+  <composite n="1" ref="Re" />
+ </material>
+ <element Z="45" formula="Rh" name="Rh" >
+  <atom type="A" unit="g/mol" value="102.906" />
+ </element>
+ <material formula="Rh" name="Rhodium" state="solid" >
+  <RL type="X0" unit="cm" value="0.746619" />
+  <NIL type="lambda" unit="cm" value="13.2083" />
+  <D type="density" unit="g/cm3" value="12.41" />
+  <composite n="1" ref="Rh" />
+ </material>
+ <element Z="86" formula="Rn" name="Rn" >
+  <atom type="A" unit="g/mol" value="222.018" />
+ </element>
+ <material formula="Rn" name="Radon" state="gas" >
+  <RL type="X0" unit="cm" value="697.777" />
+  <NIL type="lambda" unit="cm" value="23532" />
+  <D type="density" unit="g/cm3" value="0.00900662" />
+  <composite n="1" ref="Rn" />
+ </material>
+ <element Z="44" formula="Ru" name="Ru" >
+  <atom type="A" unit="g/mol" value="101.065" />
+ </element>
+ <material formula="Ru" name="Ruthenium" state="solid" >
+  <RL type="X0" unit="cm" value="0.764067" />
+  <NIL type="lambda" unit="cm" value="13.1426" />
+  <D type="density" unit="g/cm3" value="12.41" />
+  <composite n="1" ref="Ru" />
+ </material>
+ <element Z="16" formula="S" name="S" >
+  <atom type="A" unit="g/mol" value="32.0661" />
+ </element>
+ <material formula="S" name="Sulfur" state="solid" >
+  <RL type="X0" unit="cm" value="9.74829" />
+  <NIL type="lambda" unit="cm" value="55.6738" />
+  <D type="density" unit="g/cm3" value="2" />
+  <composite n="1" ref="S" />
+ </material>
+ <element Z="51" formula="Sb" name="Sb" >
+  <atom type="A" unit="g/mol" value="121.76" />
+ </element>
+ <material formula="Sb" name="Antimony" state="solid" >
+  <RL type="X0" unit="cm" value="1.30401" />
+  <NIL type="lambda" unit="cm" value="25.8925" />
+  <D type="density" unit="g/cm3" value="6.691" />
+  <composite n="1" ref="Sb" />
+ </material>
+ <element Z="21" formula="Sc" name="Sc" >
+  <atom type="A" unit="g/mol" value="44.9559" />
+ </element>
+ <material formula="Sc" name="Scandium" state="solid" >
+  <RL type="X0" unit="cm" value="5.53545" />
+  <NIL type="lambda" unit="cm" value="41.609" />
+  <D type="density" unit="g/cm3" value="2.989" />
+  <composite n="1" ref="Sc" />
+ </material>
+ <element Z="34" formula="Se" name="Se" >
+  <atom type="A" unit="g/mol" value="78.9594" />
+ </element>
+ <material formula="Se" name="Selenium" state="solid" >
+  <RL type="X0" unit="cm" value="2.64625" />
+  <NIL type="lambda" unit="cm" value="33.356" />
+  <D type="density" unit="g/cm3" value="4.5" />
+  <composite n="1" ref="Se" />
+ </material>
+ <element Z="14" formula="Si" name="Si" >
+  <atom type="A" unit="g/mol" value="28.0854" />
+ </element>
+ <material formula="Si" name="Silicon" state="solid" >
+  <RL type="X0" unit="cm" value="9.36607" />
+  <NIL type="lambda" unit="cm" value="45.7531" />
+  <D type="density" unit="g/cm3" value="2.33" />
+  <composite n="1" ref="Si" />
+ </material>
+ <element Z="62" formula="Sm" name="Sm" >
+  <atom type="A" unit="g/mol" value="150.366" />
+ </element>
+ <material formula="Sm" name="Samarium" state="solid" >
+  <RL type="X0" unit="cm" value="1.01524" />
+  <NIL type="lambda" unit="cm" value="24.9892" />
+  <D type="density" unit="g/cm3" value="7.46" />
+  <composite n="1" ref="Sm" />
+ </material>
+ <element Z="50" formula="Sn" name="Sn" >
+  <atom type="A" unit="g/mol" value="118.71" />
+ </element>
+ <material formula="Sn" name="Tin" state="solid" >
+  <RL type="X0" unit="cm" value="1.20637" />
+  <NIL type="lambda" unit="cm" value="23.4931" />
+  <D type="density" unit="g/cm3" value="7.31" />
+  <composite n="1" ref="Sn" />
+ </material>
+ <element Z="38" formula="Sr" name="Sr" >
+  <atom type="A" unit="g/mol" value="87.6166" />
+ </element>
+ <material formula="Sr" name="Strontium" state="solid" >
+  <RL type="X0" unit="cm" value="4.237" />
+  <NIL type="lambda" unit="cm" value="61.0238" />
+  <D type="density" unit="g/cm3" value="2.54" />
+  <composite n="1" ref="Sr" />
+ </material>
+ <element Z="73" formula="Ta" name="Ta" >
+  <atom type="A" unit="g/mol" value="180.948" />
+ </element>
+ <material formula="Ta" name="Tantalum" state="solid" >
+  <RL type="X0" unit="cm" value="0.409392" />
+  <NIL type="lambda" unit="cm" value="11.8846" />
+  <D type="density" unit="g/cm3" value="16.654" />
+  <composite n="1" ref="Ta" />
+ </material>
+ <element Z="65" formula="Tb" name="Tb" >
+  <atom type="A" unit="g/mol" value="158.925" />
+ </element>
+ <material formula="Tb" name="Terbium" state="solid" >
+  <RL type="X0" unit="cm" value="0.893977" />
+  <NIL type="lambda" unit="cm" value="23.0311" />
+  <D type="density" unit="g/cm3" value="8.229" />
+  <composite n="1" ref="Tb" />
+ </material>
+ <element Z="43" formula="Tc" name="Tc" >
+  <atom type="A" unit="g/mol" value="97.9072" />
+ </element>
+ <material formula="Tc" name="Technetium" state="solid" >
+  <RL type="X0" unit="cm" value="0.833149" />
+  <NIL type="lambda" unit="cm" value="14.0185" />
+  <D type="density" unit="g/cm3" value="11.5" />
+  <composite n="1" ref="Tc" />
+ </material>
+ <element Z="52" formula="Te" name="Te" >
+  <atom type="A" unit="g/mol" value="127.603" />
+ </element>
+ <material formula="Te" name="Tellurium" state="solid" >
+  <RL type="X0" unit="cm" value="1.41457" />
+  <NIL type="lambda" unit="cm" value="28.1797" />
+  <D type="density" unit="g/cm3" value="6.24" />
+  <composite n="1" ref="Te" />
+ </material>
+ <element Z="90" formula="Th" name="Th" >
+  <atom type="A" unit="g/mol" value="232.038" />
+ </element>
+ <material formula="Th" name="Thorium" state="solid" >
+  <RL type="X0" unit="cm" value="0.51823" />
+  <NIL type="lambda" unit="cm" value="18.353" />
+  <D type="density" unit="g/cm3" value="11.72" />
+  <composite n="1" ref="Th" />
+ </material>
+ <element Z="22" formula="Ti" name="Ti" >
+  <atom type="A" unit="g/mol" value="47.8667" />
+ </element>
+ <material formula="Ti" name="Titanium" state="solid" >
+  <RL type="X0" unit="cm" value="3.5602" />
+  <NIL type="lambda" unit="cm" value="27.9395" />
+  <D type="density" unit="g/cm3" value="4.54" />
+  <composite n="1" ref="Ti" />
+ </material>
+ <element Z="81" formula="Tl" name="Tl" >
+  <atom type="A" unit="g/mol" value="204.383" />
+ </element>
+ <material formula="Tl" name="Thallium" state="solid" >
+  <RL type="X0" unit="cm" value="0.547665" />
+  <NIL type="lambda" unit="cm" value="17.6129" />
+  <D type="density" unit="g/cm3" value="11.72" />
+  <composite n="1" ref="Tl" />
+ </material>
+ <element Z="69" formula="Tm" name="Tm" >
+  <atom type="A" unit="g/mol" value="168.934" />
+ </element>
+ <material formula="Tm" name="Thulium" state="solid" >
+  <RL type="X0" unit="cm" value="0.754428" />
+  <NIL type="lambda" unit="cm" value="20.7522" />
+  <D type="density" unit="g/cm3" value="9.321" />
+  <composite n="1" ref="Tm" />
+ </material>
+ <element Z="92" formula="U" name="U" >
+  <atom type="A" unit="g/mol" value="238.029" />
+ </element>
+ <material formula="U" name="Uranium" state="solid" >
+  <RL type="X0" unit="cm" value="0.31663" />
+  <NIL type="lambda" unit="cm" value="11.4473" />
+  <D type="density" unit="g/cm3" value="18.95" />
+  <composite n="1" ref="U" />
+ </material>
+ <element Z="23" formula="V" name="V" >
+  <atom type="A" unit="g/mol" value="50.9415" />
+ </element>
+ <material formula="V" name="Vanadium" state="solid" >
+  <RL type="X0" unit="cm" value="2.59285" />
+  <NIL type="lambda" unit="cm" value="21.2187" />
+  <D type="density" unit="g/cm3" value="6.11" />
+  <composite n="1" ref="V" />
+ </material>
+ <element Z="74" formula="W" name="W" >
+  <atom type="A" unit="g/mol" value="183.842" />
+ </element>
+ <material formula="W" name="Tungsten" state="solid" >
+  <RL type="X0" unit="cm" value="0.350418" />
+  <NIL type="lambda" unit="cm" value="10.3057" />
+  <D type="density" unit="g/cm3" value="19.3" />
+  <composite n="1" ref="W" />
+ </material>
+ <element Z="54" formula="Xe" name="Xe" >
+  <atom type="A" unit="g/mol" value="131.292" />
+ </element>
+ <material formula="Xe" name="Xenon" state="gas" >
+  <RL type="X0" unit="cm" value="1546.2" />
+  <NIL type="lambda" unit="cm" value="32477.9" />
+  <D type="density" unit="g/cm3" value="0.00548536" />
+  <composite n="1" ref="Xe" />
+ </material>
+ <element Z="39" formula="Y" name="Y" >
+  <atom type="A" unit="g/mol" value="88.9058" />
+ </element>
+ <material formula="Y" name="Yttrium" state="solid" >
+  <RL type="X0" unit="cm" value="2.32943" />
+  <NIL type="lambda" unit="cm" value="34.9297" />
+  <D type="density" unit="g/cm3" value="4.469" />
+  <composite n="1" ref="Y" />
+ </material>
+ <element Z="70" formula="Yb" name="Yb" >
+  <atom type="A" unit="g/mol" value="173.038" />
+ </element>
+ <material formula="Yb" name="Ytterbium" state="solid" >
+  <RL type="X0" unit="cm" value="1.04332" />
+  <NIL type="lambda" unit="cm" value="28.9843" />
+  <D type="density" unit="g/cm3" value="6.73" />
+  <composite n="1" ref="Yb" />
+ </material>
+ <element Z="30" formula="Zn" name="Zn" >
+  <atom type="A" unit="g/mol" value="65.3955" />
+ </element>
+ <material formula="Zn" name="Zinc" state="solid" >
+  <RL type="X0" unit="cm" value="1.74286" />
+  <NIL type="lambda" unit="cm" value="19.8488" />
+  <D type="density" unit="g/cm3" value="7.133" />
+  <composite n="1" ref="Zn" />
+ </material>
+ <element Z="40" formula="Zr" name="Zr" >
+  <atom type="A" unit="g/mol" value="91.2236" />
+ </element>
+ <material formula="Zr" name="Zirconium" state="solid" >
+  <RL type="X0" unit="cm" value="1.56707" />
+  <NIL type="lambda" unit="cm" value="24.2568" />
+  <D type="density" unit="g/cm3" value="6.506" />
+  <composite n="1" ref="Zr" />
+ </material>
+</materials>
\ No newline at end of file
diff --git a/examples/AlignDet/compact/materials.xml b/examples/AlignDet/compact/materials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..12107bafc23a2b39c32e457b34ec7568e5139993
--- /dev/null
+++ b/examples/AlignDet/compact/materials.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<materials>
+
+  <!--
+       Air by weight from
+
+       http://www.engineeringtoolbox.com/air-composition-24_212.html
+  -->
+  <material name="Air">
+    <D type="density" unit="g/cm3" value="0.0012"/>
+    <fraction n="0.754" ref="N"/>
+    <fraction n="0.234" ref="O"/>
+    <fraction n="0.012" ref="Ar"/>
+  </material>
+  
+  <material name="Vacuum">
+    <D type="density" unit="g/cm3" value="0.00000001" />
+    <fraction n="1" ref="H" />
+  </material>
+
+  <material name="Epoxy">
+    <D type="density" value="1.3" unit="g/cm3"/>
+    <composite n="44" ref="H"/>
+    <composite n="15" ref="C"/>
+    <composite n="7" ref="O"/>
+  </material>
+
+  <material name="Quartz">
+    <D type="density" value="2.2" unit="g/cm3"/>
+    <composite n="1" ref="Si"/>
+    <composite n="2" ref="O"/>
+  </material>
+
+  <material name="G10">
+    <D type="density" value="1.7" unit="g/cm3"/>
+    <fraction n="0.08" ref="Cl"/>
+    <fraction n="0.773" ref="Quartz"/>
+    <fraction n="0.147" ref="Epoxy"/>
+  </material>
+
+  <material name="Polystyrene">
+    <D value="1.032" unit="g/cm3"/>
+    <composite n="19" ref="C"/>
+    <composite n="21" ref="H"/>
+  </material>
+
+  <material name="Steel235">
+    <D value="7.85" unit="g/cm3"/>
+    <fraction n="0.998" ref="Fe"/>
+    <fraction n=".002" ref="C"/>
+  </material>
+
+  <material name="SiliconOxide">
+    <D type="density" value="2.65" unit="g/cm3"/>
+    <composite n="1" ref="Si"/>
+    <composite n="2" ref="O"/>
+  </material>
+
+  <material name="BoronOxide">
+    <D type="density" value="2.46" unit="g/cm3"/>
+    <composite n="2" ref="B"/>
+    <composite n="3" ref="O"/>
+  </material>
+
+  <material name="SodiumOxide">
+    <D type="density" value="2.65" unit="g/cm3"/>
+    <composite n="2" ref="Na"/>
+    <composite n="1" ref="O"/>
+  </material>
+
+  <material name="AluminumOxide">
+    <D type="density" value="3.89" unit="g/cm3"/>
+    <composite n="2" ref="Al"/>
+    <composite n="3" ref="O"/>
+  </material>
+
+  <material name="PyrexGlass">
+    <D type="density" value="2.23" unit="g/cm3"/>
+    <fraction n="0.806" ref="SiliconOxide"/>
+    <fraction n="0.130" ref="BoronOxide"/>
+    <fraction n="0.040" ref="SodiumOxide"/>
+    <fraction n="0.023" ref="AluminumOxide"/>
+  </material>
+
+  <material name="CarbonFiber">
+    <D type="density" value="1.5" unit="g/cm3"/>
+    <fraction n="0.65" ref="C"/>
+    <fraction n="0.35" ref="Epoxy"/>
+  </material>
+  
+  <material name="CarbonFiber_50D">
+    <D type="density" value="0.75" unit="g/cm3"/>
+    <fraction n="0.65" ref="C"/>
+    <fraction n="0.35" ref="Epoxy"/>
+  </material>  
+
+  <material name="Rohacell31">
+    <D type="density" value="0.032" unit="g/cm3"/>
+    <composite n="9" ref="C"/>
+    <composite n="13" ref="H"/>
+    <composite n="2" ref="O"/>
+    <composite n="1" ref="N"/>
+  </material>
+  
+  <material name="Rohacell31_50D">
+    <D type="density" value="0.016" unit="g/cm3"/>
+    <composite n="9" ref="C"/>
+    <composite n="13" ref="H"/>
+    <composite n="2" ref="O"/>
+    <composite n="1" ref="N"/>
+  </material>  
+
+  <material name="RPCGasDefault" state="gas">
+    <D type="density" value="0.0037" unit="g/cm3"/>
+    <composite n="209" ref="C"/>
+    <composite n="239" ref="H"/>
+    <composite n="381" ref="F"/>
+  </material>
+
+  <material name="PolystyreneFoam">
+    <D type="density" value="0.0056" unit="g/cm3"/>
+    <fraction n="1.0" ref="Polystyrene"/>
+  </material>
+
+  <material name="Kapton">
+    <D value="1.43" unit="g/cm3" />
+    <composite n="22" ref="C"/>
+    <composite n="10" ref="H" />
+    <composite n="2" ref="N" />
+    <composite n="5" ref="O" />
+  </material>
+
+  <material name="PEEK">
+    <D value="1.37" unit="g/cm3" />
+    <composite n="19" ref="C"/>
+    <composite n="12" ref="H" />
+    <composite n="3" ref="O" />
+  </material>
+
+</materials>
diff --git a/examples/AlignDet/drivers/BoxSegment.py b/examples/AlignDet/drivers/BoxSegment.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e4e6e6eb1b8153ad87892e5968378fc25df6275
--- /dev/null
+++ b/examples/AlignDet/drivers/BoxSegment.py
@@ -0,0 +1,15 @@
+def detector_BoxSegment(lcdd, det):
+  box    = det.find('box')
+  mat    = det.find('material')
+  pos    = det.find('position')
+  rot    = det.find('rotation')
+  mother = lcdd.worldVolume()
+  de     = DetElement(lcdd, det.name, det.type, det.id)
+  sha    = Box(lcdd, det.name+'_envelope', box.x, box.y, box.z)
+  vol    = Volume(lcdd, det.name+'_envelope_volume', sha, lcdd.material(mat.name))
+  phv    = mother.placeVolume(vol, Position(pos.x, pos.y, pos.z), 
+                                   Rotation(rot.x, rot.y, rot.z))
+  vol.setVisAttributes(lcdd, det.vis)
+  phv.addPhysVolID('id',det.id)
+  de.addPlacement(phv)
+  return de
diff --git a/examples/AlignDet/drivers/Shelf.py b/examples/AlignDet/drivers/Shelf.py
new file mode 100644
index 0000000000000000000000000000000000000000..d221cc1aa1e24db5f96e3c48aa68d8f4874b2dda
--- /dev/null
+++ b/examples/AlignDet/drivers/Shelf.py
@@ -0,0 +1,39 @@
+def detector_Shelf(lcdd, det):
+
+  plane  = det.find('planes')
+  mat    = det.find('material')
+  #pos   = det.find('position')
+  #rot   = det.find('rotation')
+  book   = det.find('books')
+  
+  #---Construct the ensamble plane+books volume-------------------------------------------------------------
+  e_vol  = Volume(lcdd, 'ensemble', Box(lcdd,'box', plane.x, plane.y+book.y, plane.z), lcdd.material('Air'))
+  e_vol.setVisAttributes(lcdd,'InvisibleWithDaughters')
+  
+  #---Construct the plane and place it----------------------------------------------------------------------
+  p_vol   = Volume(lcdd, 'plane', Box(lcdd, 'plane', plane.x, plane.y, plane.z), lcdd.material(mat.name))
+  p_vol.setVisAttributes(lcdd, plane.vis)
+  e_vol.placeVolume(p_vol, Position(0,-book.y,0))
+  
+  #---Construct a book and place it number of times---------------------------------------------------------
+  b_vol = Volume(lcdd, 'book',Box(lcdd, 'book', book.x, book.y, book.z), lcdd.material('Carbon'))
+  b_vol.setVisAttributes(lcdd, book.vis)
+  x,y,z = plane.x-book.x, plane.y, -plane.z+book.z
+  for n in range(book.number):
+    e_vol.placeVolume(b_vol, Position(x,y,z))
+    z += 2*book.z + book.getF('dz')
+  
+  #--Construct the overal envelope and Detector element-----------------------------------------------------
+  g_x, g_y, g_z = plane.x, plane.number*plane.getF('dy'), plane.z
+  g_vol  = Volume(lcdd, det.name, Box(lcdd,'box', g_x, g_y, g_z), lcdd.material('Air'))
+  g_vol.setVisAttributes(lcdd,'InvisibleWithDaughters')
+  de     = DetElement(lcdd, det.name, det.type, det.id)
+  phv = lcdd.worldVolume().placeVolume(g_vol, Position(g_x,g_y,g_z))
+  phv.addPhysVolID('id',det.id)
+  de.addPlacement(phv)
+  x,y,z = 0,book.y+plane.y-2*plane.getF('dy'),0
+  for n in range(plane.number):
+    g_vol.placeVolume(e_vol, Position(x,y,z))
+    y += plane.getF('dy')
+  #---Return detector element---------------------------------------------------------------------------------
+  return de
diff --git a/examples/AlignDet/src/AlephTPC_geo.cpp b/examples/AlignDet/src/AlephTPC_geo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b77552aaa591198639d9d3c74cb05a5534f9170b
--- /dev/null
+++ b/examples/AlignDet/src/AlephTPC_geo.cpp
@@ -0,0 +1,322 @@
+// $Id: Tesla_tpc02_geo.cpp 581 2013-05-30 21:05:58Z markus.frank $
+//====================================================================
+//  AIDA Detector description implementation for LCD
+//--------------------------------------------------------------------
+//
+//  Author     : M.Frank
+//
+//====================================================================
+#include "DD4hep/DetFactoryHelper.h"
+#include "TGeoArb8.h"
+#include <iomanip>
+
+using namespace std;
+using namespace DD4hep;
+using namespace DD4hep::Geometry;
+
+static void printCoordinates(char sector_type, const char* volume, double v[8][2])  {
+#if 0
+  cout << "Sector type " << sector_type << " Volume " << volume << endl;
+  cout << "Coordinate 1:  x:" << setw(10) << v[0][0] << " y:" << setw(10) << v[0][1] << endl;
+  cout << "Coordinate 2:  x:" << setw(10) << v[1][0] << " y:" << setw(10) << v[1][1] << endl;
+  cout << "Coordinate 3:  x:" << setw(10) << v[2][0] << " y:" << setw(10) << v[2][1] << endl;
+  cout << "Coordinate 4:  x:" << setw(10) << v[3][0] << " y:" << setw(10) << v[3][1] << endl;
+#endif
+}
+
+static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens_det)  {
+  xml_det_t   x_det  = e;
+  string      name   = x_det.nameStr();
+  DetElement  sdet(name,x_det.id());
+  Volume      motherVol   = lcdd.pickMotherVolume(sdet);
+  xml_comp_t  x_envelope  = x_det.child(_Unicode(envelope));
+  xml_comp_t  x_sectors   = x_det.child(_Unicode(sectors));
+  xml_comp_t  x_inner     = x_det.child(_Unicode(inner_wall));
+  xml_comp_t  x_outer     = x_det.child(_Unicode(outer_wall));
+  xml_comp_t  x_gas       = x_det.child(_Unicode(gas));
+  xml_comp_t  x_cathode   = x_det.child(_Unicode(cathode));
+  
+  Material    gasMat      = lcdd.material(x_gas.materialStr());
+  PlacedVolume pv;
+
+  struct cylinder_t { double inner, outer, zhalf; };
+  cylinder_t env        = { x_envelope.inner_r(), x_envelope.outer_r(), x_envelope.zhalf() };
+  cylinder_t inner_wall = { x_inner.inner_r(), x_inner.inner_r()+x_inner.thickness(), env.zhalf };
+  cylinder_t outer_wall = { x_outer.outer_r()-x_outer.thickness(), x_outer.outer_r(), env.zhalf };
+  cylinder_t gas        = { inner_wall.outer, outer_wall.inner, x_gas.zhalf() };
+
+  // TPC sensitive detector
+  sens_det.setType("tracker");
+
+  // the TPC mother volume
+  //Tube    envTub(env.inner,env.outer,env.zhalf);
+  //Volume  envVol(name+"_envelope",envTub,lcdd.air());
+  Assembly  envVol(name+"_envelope");
+  //envVol.setVisAttributes(lcdd.visAttributes(x_envelope.visStr()));
+  //envVol.setVisAttributes(lcdd.invisible());
+  //envVol->SetVisibility(kFALSE);
+  //envVol->SetVisDaughters(kTRUE);
+
+  pv = motherVol.placeVolume(envVol);
+  pv.addPhysVolID("system",x_det.id());
+  sdet.setPlacement(pv);
+
+  // TPC Al inner shield 
+  Tube    innerTub(inner_wall.inner, inner_wall.outer, inner_wall.zhalf);
+  Volume  innerVol(name+"_inner",innerTub,lcdd.material(x_inner.materialStr()));
+  innerVol.setVisAttributes(lcdd.visAttributes(x_inner.visStr()));
+  envVol.placeVolume(innerVol);
+
+  // TPC outer shield 
+  Tube    outerTub(outer_wall.inner, outer_wall.outer, outer_wall.zhalf);
+  Volume  outerVol(name+"_outer",outerTub,lcdd.material(x_outer.materialStr()));
+  outerVol.setVisAttributes(lcdd.visAttributes(x_outer.visStr()));
+  envVol.placeVolume(outerVol);
+
+#if 0
+  // TPC gas chamber envelope
+  Tube    gasTub(gas.inner,gas.outer,gas.zhalf);
+  Volume  gasVol(name+"_chamber",gasTub,gasMat);
+  gasVol.setVisAttributes(lcdd.visAttributes(x_gas.visStr()));
+  //gasVol.setVisAttributes(lcdd.invisible());
+  envVol.placeVolume(gasVol);
+#endif
+  
+  // TPC HV plane
+  Tube    hvTub(gas.inner,gas.outer,x_cathode.thickness()/2);
+  Volume  hvVol(name+"_cathode",hvTub,lcdd.material(x_cathode.materialStr()));
+  hvVol.setVisAttributes(lcdd.visAttributes(x_cathode.visStr()));
+  envVol.placeVolume(hvVol);
+
+  // TPC Endcap plane to see sectors and misalignments betters
+  Tube    endCapPlane(env.inner,env.outer,0.0001);
+  Volume  endCapPlaneVol(name+"_plane",endCapPlane,lcdd.material("Copper"));
+  endCapPlaneVol.setVisAttributes(lcdd.visAttributes("TPCEndcapVis"));
+
+  double endcap_thickness = 0;
+  for(xml_coll_t c(x_sectors,_Unicode(sector)); c; ++c)  {
+    xml_comp_t x_sector = c;
+    double thickness = endCapPlane->GetDz();
+    for(xml_coll_t l(x_sectors.child(_Unicode(layers)),_Unicode(layer)); l; ++l)  {
+      xml_comp_t x_layer = l;
+      thickness += 2*x_layer.thickness();
+    }
+    if ( thickness > endcap_thickness ) endcap_thickness = thickness;
+  }
+
+  Tube    endCapTub(env.inner,env.outer,endcap_thickness/2);
+  Volume  endCapAVol(name+"_end_A",endCapTub,lcdd.material("Copper"));
+  endCapAVol.setVisAttributes(lcdd.invisible());
+  //endCapAVol.setVisAttributes(lcdd.visAttributes(x_outer.visStr()));
+  endCapAVol.placeVolume(endCapPlaneVol,Position(0,0,-endcap_thickness/2));
+  pv = envVol.placeVolume(endCapAVol,Position(0,0,env.zhalf+endcap_thickness/2));
+  pv.addPhysVolID("side",1);
+  DetElement detA(sdet,name+"_SideA",1);
+  detA.setPlacement(pv);
+
+  Volume  endCapBVol(name+"_end_B",endCapTub,lcdd.material("Copper"));
+  endCapBVol.setVisAttributes(lcdd.invisible());
+  //endCapBVol.setVisAttributes(lcdd.visAttributes(x_outer.visStr()));
+  endCapBVol.placeVolume(endCapPlaneVol,Position(0,0,-endcap_thickness/2));
+
+  Transform3D trEndB(RotationY(M_PI),Position(0,0,-env.zhalf-endcap_thickness/2));
+  pv = envVol.placeVolume(endCapBVol, trEndB);
+  pv.addPhysVolID("side",2);
+  DetElement detB(sdet,name+"_SideB",2);
+  detB.setPlacement(pv);
+
+  //envVol.setVisAttributes(lcdd.invisible());
+
+  int sector_count = 0;
+  for(xml_coll_t c(x_sectors,_Unicode(sector)); c; ++c)  {
+    xml_comp_t x_sector = c;
+    const char sector_type = x_sector.typeStr()[0];
+    const double rmin0 = x_sector.rmin();
+    const double rmax0 = x_sector.rmax();
+    const int  padrows = x_sector.attr<int>(_Unicode(padrows));
+    const int  trgrows = x_sector.attr<int>(_Unicode(trgrows));
+    const int  nwires  = x_sector.attr<int>(_Unicode(numwires));
+    const int  num_sectors = sector_type == 'K' ? 6 : 12;
+    const double shift     = sector_type == 'K' ? 0 : M_PI/num_sectors;
+    const double dphi      = 2*M_PI/double(num_sectors);
+    string sector_vis      = x_sector.visStr();
+    Solid tm;
+    double z_start = 0.0;
+    Assembly sector(name+"_sector_"+sector_type);
+    int i_layer = 0;
+    for(xml_coll_t l(x_sectors.child(_Unicode(layers)),_Unicode(layer)); l; ++l, ++i_layer)  {
+      xml_comp_t x_layer = l;
+      double layer_thickness = x_layer.thickness();
+      string layer_vis = x_layer.visStr();
+      string layer_mat = x_layer.materialStr();
+      double gap_half = 1;
+      double rmin = rmin0;
+      double rmax = rmax0;
+
+      if ( layer_vis.empty() ) layer_vis = sector_vis;
+
+      if ( sector_type == 'K' )  {
+	double angle = M_PI/12.0;
+	double angle1 = std::tan(angle);
+	double v[8][2];
+	v[0][0] = rmin;
+	v[0][1] = 0;
+	v[1][0] = rmin;
+	v[1][1] = rmin*angle1;
+	v[2][0] = rmax;
+	v[2][1] = rmax*angle1;
+	v[3][0] = rmax;
+	v[3][1] = 0;
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	EightPointSolid upper(layer_thickness/2,&v[0][0]);
+
+	v[0][0] = rmin;
+	v[0][1] = 0;
+	v[1][0] = rmax;
+	v[1][1] = 0;
+	v[2][0] = rmax;
+	v[2][1] = -rmax*angle1;
+	v[3][0] = rmin;
+	v[3][1] = -rmin*angle1;
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	EightPointSolid lower(layer_thickness/2,&v[0][0]);
+
+	v[0][0] = rmin;
+	v[0][1] = gap_half;
+	v[1][0] = rmin;
+	v[1][1] = rmin*angle1;
+	v[2][0] = rmax;
+	v[2][1] = rmax*angle1;
+	v[3][0] = rmax;
+	v[3][1] = gap_half;
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	EightPointSolid top(layer_thickness/2,&v[0][0]);
+
+	v[0][0] = rmin;
+	v[0][1] = -gap_half;
+	v[1][0] = rmax;
+	v[1][1] = -gap_half;
+	v[2][0] = rmax;
+	v[2][1] = -rmax*angle1;
+	v[3][0] = rmin;
+	v[3][1] = -rmin*angle1;
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	EightPointSolid bottom(layer_thickness/2,&v[0][0]);
+
+	UnionSolid u(UnionSolid(upper,lower),top,Rotation3D(RotationZ(2*(angle))));
+	tm = UnionSolid(u,bottom,Rotation3D(RotationZ(-2*(angle))));
+      }
+      else   {
+	double overlap = sector_type=='W' ? 20 : -20;
+	double dist = -gap_half;
+	double angle  = M_PI/12.0;
+	double angle1 = std::tan(angle);
+	double v[8][2], dr = 0, droff=0;
+
+	if ( sector_type == 'W' )  {
+	  rmax += overlap*std::tan(angle/2);
+	  dr    = overlap*std::tan(angle/2);
+	}
+
+	v[0][0] = rmin;
+	v[0][1] = -rmin*angle1+gap_half;
+	v[1][0] = rmin;
+	v[1][1] = rmin*angle1-gap_half;
+	v[2][0] = rmax;
+	v[2][1] = rmax*angle1-gap_half;
+	v[3][0] = rmax;
+	v[3][1] = -rmax*angle1+gap_half;
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	printCoordinates(sector_type,"t2:",v);
+	EightPointSolid sectorSolid(layer_thickness/2,&v[0][0]);
+
+	if ( sector_type=='W' )  {
+	  v[0][0] = (rmax+rmin)/2-dr;
+	  v[0][1] = (rmax+rmin)/2*angle1-gap_half;
+	  v[1][0] = rmax+0.0001;
+	  v[1][1] = rmax*angle1-gap_half;
+	  v[2][0] = rmax+0.0001;
+	  v[2][1] = (rmax-overlap)*angle1-gap_half;
+	  v[3][0] = (rmax+rmin)/2-dr;
+	  v[3][1] = (rmax+rmin-overlap)/2*angle1-gap_half;
+	}
+	else  {
+	  v[0][0] = (rmax+rmin)/2-dr;
+	  v[0][1] = (rmax+rmin)/2*angle1-gap_half;
+	  v[3][0] = rmax+0.0001;
+	  v[3][1] = rmax*angle1-gap_half;
+	  v[2][0] = rmax+0.0001;
+	  v[2][1] = (rmax-overlap)*angle1-gap_half;
+	  v[1][0] = (rmax+rmin)/2-dr;
+	  v[1][1] = (rmax+rmin-overlap)/2*angle1-gap_half;
+	}
+	printCoordinates(sector_type,"upper_boolean:",v);
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+	EightPointSolid upper_boolean((sector_type == 'W' ? 1.1 : 1.0) * layer_thickness/2,&v[0][0]);
+
+	if ( sector_type=='W' )  {
+	  v[0][0] = (rmax+rmin)/2-dr;
+	  v[0][1] = -((rmax+rmin)/2*angle1-gap_half);
+	  v[1][0] = (rmax+rmin)/2-dr;
+	  v[1][1] = -((rmax+rmin-overlap)/2*angle1-gap_half);
+	  v[2][0] = rmax+0.0001;
+	  v[2][1] = -((rmax-overlap)*angle1-gap_half);
+	  v[3][0] = rmax+0.0001;
+	  v[3][1] = -(rmax*angle1-gap_half);
+	}
+	else  {
+	  v[0][0] = (rmax+rmin)/2-dr;
+	  v[0][1] = -((rmax+rmin)/2*angle1-gap_half);
+	  v[3][0] = (rmax+rmin)/2-dr;
+	  v[3][1] = -((rmax+rmin-overlap)/2*angle1-gap_half);
+	  v[2][0] = rmax+0.0001;
+	  v[2][1] = -((rmax-overlap)*angle1-gap_half);
+	  v[1][0] = rmax+0.0001;
+	  v[1][1] = -(rmax*angle1-gap_half);
+	}
+	printCoordinates(sector_type,"lower_boolean:",v);
+	::memcpy(&v[4][0],&v[0][0],8*sizeof(double));
+
+	// For W sectors make the subtraction solid slightly thicker to ensure everything is cut off
+	// and no left-overs from numerical precision are left.
+	EightPointSolid lower_boolean((sector_type == 'W' ? 1.1 : 1.0) * layer_thickness/2,&v[0][0]);
+	if ( sector_type == 'W' )
+	  tm = SubtractionSolid(SubtractionSolid(sectorSolid,upper_boolean),lower_boolean);
+	else
+	  tm = UnionSolid(UnionSolid(sectorSolid,upper_boolean),lower_boolean);
+      }
+
+      Volume secVol(name+"_sector_"+sector_type+_toString(i_layer,"_layer%d"),tm,lcdd.material(layer_mat));
+      secVol.setVisAttributes(lcdd.visAttributes(layer_vis));
+      if ( x_layer.isSensitive() ) secVol.setSensitiveDetector(sens_det);
+
+      sector.placeVolume(secVol,Position(0,0,z_start+layer_thickness/2));
+      z_start += layer_thickness;
+    }
+    for(int i=0; i<num_sectors;++i) {
+      int j = i + (sector_type=='W' ? 1 : 0);
+      double phi = dphi*j+shift + (sector_type=='K' ? 0 : M_PI/12.0);
+      if ( sector_type == 'K' || (i%2)==0 ) {
+	Transform3D trA(RotationZYX(phi,0,0),Position(0,0,0.00001));
+	Transform3D trB(RotationZYX(phi,0,0),Position(0,0,0.00001));
+
+	pv = endCapAVol.placeVolume(sector,trA);
+	pv.addPhysVolID("type", sector_type=='K' ? 1 : sector_type=='M' ? 2 : 3);
+	pv.addPhysVolID("sector",j);
+	DetElement sectorA(detA,detA.name()+_toString(sector_count,"_sector%02d"),1);
+	sectorA.setPlacement(pv);
+
+	pv = endCapBVol.placeVolume(sector,trB);
+	pv.addPhysVolID("type", sector_type=='K' ? 1 : sector_type=='M' ? 2 : 3);
+	pv.addPhysVolID("sector",j);
+	DetElement sectorB(detB,detB.name()+_toString(sector_count,"_sector%02d"),1);
+	sectorB.setPlacement(pv);
+	cout << "Placed " << sector_type << " sector at phi=" << phi << endl;
+	++sector_count;
+      }
+    }
+  }
+  return sdet;
+}
+
+DECLARE_SUBDETECTOR(AlephTPC,create_element);
diff --git a/examples/AlignDet/src/BoxDetector_geo.cpp b/examples/AlignDet/src/BoxDetector_geo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0afc8cbb470b8557fb9fc8cebc4524cf877c93ff
--- /dev/null
+++ b/examples/AlignDet/src/BoxDetector_geo.cpp
@@ -0,0 +1,34 @@
+// $Id: BoxDetector_geo.cpp 633 2013-06-21 13:50:50Z markus.frank $
+//====================================================================
+//  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;
+  string      name  = x_det.nameStr();
+  xml_comp_t  box    (x_det.child(_U(box)));
+  xml_dim_t   pos    (x_det.child(_U(position)));
+  xml_dim_t   rot    (x_det.child(_U(rotation)));
+  Material    mat    (lcdd.material(x_det.materialStr()));
+  DetElement  det    (name,x_det.id());
+  Volume      det_vol(name+"_vol",Box(box.x(),box.y(),box.z()), mat);
+  Volume      mother = lcdd.pickMotherVolume(det);
+  Transform3D transform(Rotation3D(RotationZYX(rot.z(),rot.y(),rot.x())),Position(pos.x(),pos.y(),pos.z()));
+  det_vol.setVisAttributes(lcdd, x_det.visStr());
+  PlacedVolume phv = mother.placeVolume(det_vol,transform);
+  phv.addPhysVolID("id",x_det.id());
+  det.setPlacement(phv);
+  return det;
+}
+
+// first argument is the type from the xml file
+DECLARE_DETELEMENT(BoxSegment,create_element)