diff --git a/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_03.xml b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_03.xml
index c1217f02068835878eaf590685071aaf3b2ad04b..e07f919a3488300d2109b7fb5f122be05745d02e 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_03.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_03.xml
@@ -19,6 +19,8 @@
 	<shape type="Assembly"/>
       </envelope>
 
+      <type_flags type="DetType_BEAMPIPE"/>
+
       <section type ="Center" name="IPInnerTube" zStart="0" zEnd="BeamPipe_CentralBe_zmax" rStart="0">
 	<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
 	<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness" vis="TubeVis"/>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_04.xml b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_04.xml
index 71a1f5ab78c7fda25ddfddc815ef242ae75cd1e4..d96017bf5a2639813da10a77c290a97b71a88d34 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_04.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_04.xml
@@ -57,6 +57,8 @@
 	<shape type="Assembly"/>
       </envelope>
 
+      <type_flags type="DetType_BEAMPIPE"/>
+
       <section type ="Center" name="IPInnerTube" zStart="0" zEnd="BeamPipe_BeAl_zmin" rStart="0">
 	<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
 	<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness" vis="TubeVis"/>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_05.xml b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_05.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b72ecc9f084c2fe291e272e1b1e6e82149f81d50
--- /dev/null
+++ b/Detector/DetCRD/compact/CRD_common_v02/Beampipe_v01_05.xml
@@ -0,0 +1,348 @@
+<lccdd>
+  <info name="CRD" title="CRD Beam pipe" author="Chengdong Fu" url="no" status="development" version="1.0">
+    <comment>A beampipe for CRD</comment>
+  </info>
+
+  <display>
+    <vis name="TubeVis"   alpha="0.1" r="1.0" g="0.7"  b="0.5"   showDaughters="true"  visible="true"/>
+    <vis name="VacVis"   alpha="1.0" r="0.0" g="0.0"  b="0.0"   showDaughters="true"  visible="false"/>
+  </display>
+
+  <define>
+    <constant name="BeamPipe_Iron_thickness"        value="2.5*mm"/>
+    <constant name="BeamPipe_BeAl_zmin"             value="BeamPipe_CentralBe_zmax-2.5*mm"/>
+    <constant name="BeamPipe_BeAl_thickness1"       value="0.3*mm"/>
+    <constant name="BeamPipe_BeAl_thickness2"       value="0.5*mm"/>
+    <constant name="BeamPipe_Al_thickness3"         value="1.3*mm"/>
+    <constant name="BeamPipe_Cooling_zpos1"         value="96.0*mm"/>
+    <constant name="BeamPipe_Cooling_outer_radius1" value="11.2*mm"/>
+    <constant name="BeamPipe_Cooling_zpos2"         value="118.25*mm"/>
+    <constant name="BeamPipe_Cooling_zpos3"         value="162.8*mm"/>
+    <constant name="BeamPipe_Cooling_outer_radius3" value="13.5*mm"/>
+    <constant name="BeamPipe_Cooling_zpos4"         value="168.4*mm"/>
+    <constant name="BeamPipe_Al_thickness4"         value="1.5*mm"/>
+    <constant name="BeamPipe_Cooling_zpos5"         value="177.35*mm"/>
+    <constant name="BeamPipe_Cooling_outer_radius5" value="19.0*mm"/>
+    <constant name="BeamPipe_Cooling_zpos6"         value="BeamPipe_CentralAl_zmax"/>
+    <constant name="BeamPipe_CablePipe_thickness1"  value="1.5*mm"/>
+    <constant name="BeamPipe_CablePipe_thickness2"  value="1.6*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos0"          value="219.8*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos1"          value="222.8*mm"/>
+    <constant name="BeamPipe_CablePipe_inner_radius1"  value="12.8*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius1"  value="17.4*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos2"          value="240.0*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius2"  value="27.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos3"          value="250.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos4"          value="259.8*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius4"  value="27.4*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos5"          value="262.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos6"          value="372.5*mm"/>
+    <constant name="BeamPipe_CablePipe_inner_radius6"  value="27.9*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius6"  value="44.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos7"          value="386.5*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius7"  value="44.4*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos8"          value="388.5*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos9"          value="465.0*mm"/>
+    <constant name="BeamPipe_CablePipe_outer_radius9"  value="65.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos10"         value="470.0*mm"/>
+    <constant name="BeamPipe_CablePipe_inner_radius9"  value="45.5*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos11"         value="495.0*mm"/>
+    <constant name="BeamPipe_CablePipe_zpos12"         value="500.0*mm"/>
+  </define>
+
+  <detectors>        
+    <detector name="BeamPipe" type="CRDBeamPipe_v01" vis="VacVis" printLevel="ERROR">
+      <parameter crossingangle="CrossingAngle" />
+      <envelope>
+	<shape type="Assembly"/>
+      </envelope>
+
+      <type_flags type="DetType_BEAMPIPE"/>
+
+      <section type ="Center" name="IPInnerTube" zStart="0" zEnd="BeamPipe_BeAl_zmin" rStart="0">
+	<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+	<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness" vis="TubeVis"/>
+	<layer material="G4_WATER" thickness="BeamPipe_Cooling_thickness" vis="GrayVis"/>
+	<layer material="G4_Be" thickness="BeamPipe_Be_outer_thickness" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeAlLinker" zStart="BeamPipe_BeAl_zmin" zEnd="BeamPipe_CentralBe_zmax" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness/2" vis="TubeVis"/>
+	<layer material="G4_Al" thickness="BeamPipe_Be_inner_thickness/2" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_thickness" vis="GrayVis"/>
+        <layer material="G4_Be" thickness="BeamPipe_Be_outer_thickness" vis="TubeVis"/>
+	<layer material="G4_Al" thickness="BeamPipe_BeAl_thickness1" thicknessEnd="BeamPipe_BeAl_thickness2" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling1" zStart="BeamPipe_CentralBe_zmax" zEnd="BeamPipe_Cooling_zpos1" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Be_inner_thickness" thicknessEnd="BeamPipe_BeAl_thickness2" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_thickness" thicknessEnd="BeamPipe_Be_inner_thickness+BeamPipe_Cooling_thickness+BeamPipe_Be_outer_thickness-BeamPipe_BeAl_thickness2" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Be_outer_thickness+BeamPipe_BeAl_thickness2" thicknessEnd="BeamPipe_BeAl_thickness2" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling2" zStart="BeamPipe_Cooling_zpos1" zEnd="BeamPipe_Cooling_zpos2" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_BeAl_thickness2" thicknessEnd="BeamPipe_Al_thickness3" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Be_inner_thickness+BeamPipe_Cooling_thickness+BeamPipe_Be_outer_thickness-BeamPipe_BeAl_thickness2"
+	       thicknessEnd="BeamPipe_Cooling_outer_radius3-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness3" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" thicknessEnd="BeamPipe_Al_thickness3" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling3" zStart="BeamPipe_Cooling_zpos2" zEnd="BeamPipe_Cooling_zpos3" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" vis="TubeVis"/>
+	<layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_outer_radius3-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness3" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling4" zStart="BeamPipe_Cooling_zpos3" zEnd="BeamPipe_Cooling_zpos4" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_outer_radius3-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness3"
+	       thicknessEnd="BeamPipe_Cooling_outer_radius5-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness4" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" thicknessEnd="BeamPipe_Al_thickness4" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling5" zStart="BeamPipe_Cooling_zpos4" zEnd="BeamPipe_Cooling_zpos5" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_outer_radius5-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness4" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness4" vis="TubeVis"/>
+      </section>
+      <section type ="Center" name="IPBeCooling6" zStart="BeamPipe_Cooling_zpos5" zEnd="BeamPipe_Cooling_zpos6" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness3" vis="TubeVis"/>
+        <layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_outer_radius5-BeamPipe_Central_inner_radius-BeamPipe_Al_thickness3-BeamPipe_Al_thickness4" thicknessEnd="0" vis="GrayVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness4" thicknessEnd="BeamPipe_Al_thickness-BeamPipe_Al_thickness3" vis="TubeVis"/>
+      </section>
+      <section type="Waist" name="Waist1st" zStart="BeamPipe_CentralAl_zmax" zEnd="BeamPipe_ExpandAl_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
+      </section>
+      <!-- cable pipe-->
+      <section type="CenterSide" name="IPCablePipeFront" zStart="BeamPipe_CablePipe_zpos0" zEnd="BeamPipe_CablePipe_zpos1" rStart="BeamPipe_CablePipe_inner_radius1">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_inner_radius1" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe1" zStart="BeamPipe_CablePipe_zpos1" zEnd="BeamPipe_CablePipe_zpos2" rStart="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness1">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe2" zStart="BeamPipe_CablePipe_zpos2" zEnd="BeamPipe_CablePipe_zpos3" rStart="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness1">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_outer_radius2-BeamPipe_CablePipe_outer_radius1+BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe3" zStart="BeamPipe_CablePipe_zpos3" zEnd="BeamPipe_CablePipe_zpos4" rStart="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness1">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+	<layer material="Air" thickness="BeamPipe_CablePipe_outer_radius2-BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe4" zStart="BeamPipe_CablePipe_zpos4" zEnd="BeamPipe_CablePipe_zpos5" rStart="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness1">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius2-BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness2"
+	       thicknessEnd="BeamPipe_CablePipe_outer_radius4-BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2+BeamPipe_CablePipe_outer_radius4-BeamPipe_CablePipe_outer_radius2"
+	       thicknessEnd="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe5" zStart="BeamPipe_CablePipe_zpos5" zEnd="BeamPipe_CablePipe_zpos6"
+	       rStart="BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness1" rEnd="BeamPipe_CablePipe_inner_radius6">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius4-BeamPipe_CablePipe_outer_radius1-BeamPipe_CablePipe_thickness2"
+	       thicknessEnd="BeamPipe_CablePipe_outer_radius6-BeamPipe_CablePipe_inner_radius6-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe6" zStart="BeamPipe_CablePipe_zpos6" zEnd="BeamPipe_CablePipe_zpos7" rStart="BeamPipe_CablePipe_inner_radius6">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius6-BeamPipe_CablePipe_inner_radius6-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe7" zStart="BeamPipe_CablePipe_zpos7" zEnd="BeamPipe_CablePipe_zpos8" rStart="BeamPipe_CablePipe_inner_radius6">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius6-BeamPipe_CablePipe_inner_radius6-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2"
+	       thicknessEnd="BeamPipe_CablePipe_outer_radius7-BeamPipe_CablePipe_inner_radius6-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2+BeamPipe_CablePipe_outer_radius7-BeamPipe_CablePipe_outer_radius6"
+	       thicknessEnd="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe8" zStart="BeamPipe_CablePipe_zpos8" zEnd="BeamPipe_CablePipe_zpos9"
+	       rStart="BeamPipe_CablePipe_inner_radius6" rEnd="BeamPipe_CablePipe_inner_radius9">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius7-BeamPipe_CablePipe_inner_radius6-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2"
+               thicknessEnd="BeamPipe_CablePipe_outer_radius9-BeamPipe_CablePipe_inner_radius9-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe9" zStart="BeamPipe_CablePipe_zpos9" zEnd="BeamPipe_CablePipe_zpos10" rStart="BeamPipe_CablePipe_inner_radius9">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness1" vis="TubeVis"/>
+        <layer material="Air" thickness="BeamPipe_CablePipe_outer_radius9-BeamPipe_CablePipe_inner_radius9-BeamPipe_CablePipe_thickness1-BeamPipe_CablePipe_thickness2" vis="VacVis"/>
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_thickness2" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe10" zStart="BeamPipe_CablePipe_zpos10" zEnd="BeamPipe_CablePipe_zpos11" rStart="BeamPipe_CablePipe_inner_radius9">
+        <layer material="G4_Al" thickness="BeamPipe_CablePipe_outer_radius9-BeamPipe_CablePipe_inner_radius9" vis="TubeVis"/>
+      </section>
+      <section type="CenterSide" name="IPCablePipe11" zStart="BeamPipe_CablePipe_zpos11" zEnd="BeamPipe_CablePipe_zpos12" rStart="BeamPipe_CablePipe_inner_radius9">
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
+      </section>
+      <!-- end -->
+      <section type="Runway" name="Waist2nd" zStart="BeamPipe_ExpandAl_zmax" zEnd="BeamPipe_Linker_zmin" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
+        <layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Runway" name="Waist3rd" zStart="BeamPipe_Linker_zmin" zEnd="BeamPipe_Linker_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
+        <layer material="G4_Cu" thickness="BeamPipe_ThinCu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Runway" name="Waist4th" zStart="BeamPipe_Linker_zmax" zEnd="BeamPipe_Waist_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width"
+	       shift="BeamPipe_SecondExpand_width-BeamPipe_FirstExpand_width">
+        <layer material="G4_Cu" thickness="BeamPipe_ThinCu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Crotch" name="Fork" zStart="BeamPipe_Waist_zmax" zEnd="BeamPipe_Crotch_zmax"
+	       rStart="BeamPipe_Central_inner_radius" rEnd="BeamPipe_Central_inner_radius" size="BeamPipe_SecondExpand_width">
+        <layer material="G4_Cu" thickness="BeamPipe_ThinCu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="FirstDoublePipe" zStart="BeamPipe_Crotch_zmax" zEnd="BeamPipe_FirstSeparated_zmax" rStart="0">
+	<layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
+	<layer material="G4_Cu" thickness="BeamPipe_ThinCu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="BeforeMask" zStart="BeamPipe_FirstSeparated_zmax" zEnd="BeamPipe_Mask_zmin" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="Mask" zStart="BeamPipe_Mask_zmin" zEnd="BeamPipe_Mask_zmax" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Mask_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness+BeamPipe_Fork_inner_radius-BeamPipe_Mask_inner_radius" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="SecondDoublePipe" zStart="BeamPipe_Mask_zmax" zEnd="BeamPipe_Q1a_zmin" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="Q1a" zStart="BeamPipe_Q1a_zmin" zEnd="BeamPipe_Q1a_zmax" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Q1a_inner_radius" vis="VacVis"/>
+	<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+        <layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
+        <layer material="CrZrCu18150" thickness="6.0*mm" vis="MagentaVis"/>
+        <layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
+      </section>
+      <section type="Legs" name="Q1Linker" zStart="BeamPipe_Q1a_zmax" zEnd="BeamPipe_Q1b_zmin" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Q1a_inner_radius" thicknessEnd="BeamPipe_Q1b_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="Q1b" zStart="BeamPipe_Q1b_zmin" zEnd="BeamPipe_Q1b_zmax" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Q1b_inner_radius" vis="VacVis"/>
+	<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+        <layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
+        <layer material="CrZrCu18150" thickness="6.0*mm" vis="MagentaVis"/>
+        <layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
+      </section>
+      <section type="Legs" name="QF1Linker" zStart="BeamPipe_Q1b_zmax" zEnd="BeamPipe_QF1_zmin" rStart="0">
+        <layer material="beam" thickness="BeamPipe_Q1b_inner_radius" thicknessEnd="BeamPipe_QF1_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+      </section>
+      <section type="Legs" name="QF1" zStart="BeamPipe_QF1_zmin" zEnd="BeamPipe_QF1_zmax" rStart="0">
+        <layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
+	<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+        <layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
+        <layer material="CrZrCu18150" thickness="6.0*mm" vis="MagentaVis"/>
+        <layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
+      </section>
+      <section type="Legs" name="Farest" zStart="BeamPipe_QF1_zmax" zEnd="BeamPipe_end_z" rStart="0">
+        <layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
+        <layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
+      </section>
+
+      <!-- Magnets and their cooling, support -->
+      <section type="CenterSide" name="AntiSolenoid1" zStart="1160*mm" zEnd="1900*mm" rStart="90*mm">
+        <layer material="CrZrCu18150" thickness="20*mm" vis="MagentaVis"/>
+      </section>
+      <section type="CenterSide" name="AntiSolenoid2" zStart="1930*mm" zEnd="3964*mm" rStart="120*mm">
+        <layer material="CrZrCu18150" thickness="10*mm" vis="MagentaVis"/>
+      </section>
+      <section type="CenterSide" name="AntiSolenoid3" zStart="3970*mm" zEnd="7000*mm" rStart="185*mm">
+        <layer material="CrZrCu18150" thickness="10*mm" vis="MagentaVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetShell_Front" zStart="1110*mm" zEnd="1115*mm" rStart="50.0*mm">
+        <layer material="stainless_steel" thickness="91.25*mm" vis="ShellVis"/>
+	<layer material="G4_W" thickness="10*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetShell_FrontSide" zStart="1115*mm" zEnd="1900*mm" rStart="130.75*mm" rEnd="175*mm">
+        <layer material="stainless_steel" thickness="10.5*mm" thicknessEnd="65*mm" vis="ShellVis"/>
+	<layer material="G4_W" thickness="10*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetShell_CenterSide" zStart="1900*mm" zEnd="3800*mm" rStart="175*mm">
+        <layer material="stainless_steel" thickness="65*mm" vis="ShellVis"/>
+	<layer material="G4_W" thickness="10*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetShell_Linker" zStart="3800*mm" zEnd="3910*mm" rStart="175*mm">
+        <layer material="stainless_steel" thickness="135*mm" vis="ShellVis"/>
+	<layer material="G4_W" thickness="10*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetShell_RearSide" zStart="3910*mm" zEnd="7160*mm" rStart="240*mm">
+        <layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
+	<layer material="G4_W" thickness="10*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_1" zStart="1130*mm" zEnd="1135*mm" rStart="75*mm">
+        <layer material="stainless_steel" thickness="50*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_2i" zStart="1135*mm" zEnd="1925*mm" rStart="75*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_2o" zStart="1135*mm" zEnd="1900*mm" rStart="120*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_3l" zStart="1900*mm" zEnd="1905*mm" rStart="120*mm">
+        <layer material="stainless_steel" thickness="25*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_3r" zStart="1925*mm" zEnd="1930*mm" rStart="75*mm">
+        <layer material="stainless_steel" thickness="35*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_4i" zStart="1930*mm" zEnd="4000*mm" rStart="105*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_4o" zStart="1905*mm" zEnd="3940*mm" rStart="140*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_5l" zStart="3940*mm" zEnd="3945*mm" rStart="140*mm">
+        <layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_5r" zStart="4000*mm" zEnd="4005*mm" rStart="105*mm">
+        <layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_6i" zStart="4005*mm" zEnd="7050*mm" rStart="170*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_6o" zStart="3945*mm" zEnd="7050*mm" rStart="205*mm">
+        <layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetSupport_7" zStart="7050*mm" zEnd="7055*mm" rStart="170*mm">
+        <layer material="stainless_steel" thickness="40*mm" vis="ShellVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_1l" zStart="1135*mm" zEnd="1160*mm" rStart="80*mm">
+        <layer material="lHe" thickness="40*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_1i" zStart="1160*mm" zEnd="1900*mm" rStart="80*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_1o" zStart="1160*mm" zEnd="1900*mm" rStart="110*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_1r" zStart="1900*mm" zEnd="1925*mm" rStart="80*mm">
+        <layer material="lHe" thickness="40*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_2l" zStart="1905*mm" zEnd="1930*mm" rStart="120*mm">
+        <layer material="lHe" thickness="20*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_2i" zStart="1925*mm" zEnd="3964*mm" rStart="110*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_2o" zStart="1930*mm" zEnd="3945*mm" rStart="130*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_2r1" zStart="3964*mm" zEnd="4000*mm" rStart="110*mm">
+        <layer material="lHe" thickness="65*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_2r2" zStart="3945*mm" zEnd="3964*mm" rStart="130*mm">
+        <layer material="lHe" thickness="45*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_3l" zStart="3945*mm" zEnd="3970*mm" rStart="175*mm">
+        <layer material="lHe" thickness="30*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_3i" zStart="3970*mm" zEnd="7000*mm" rStart="175*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_3o" zStart="3970*mm" zEnd="7000*mm" rStart="195*mm">
+        <layer material="lHe" thickness="10*mm" vis="BlueVis"/>
+      </section>
+      <section type="CenterSide" name="MagnetCooling_3r" zStart="7000*mm" zEnd="7050*mm" rStart="175*mm">
+        <layer material="lHe" thickness="30*mm" vis="BlueVis"/>
+      </section>
+    </detector>
+  </detectors>        
+</lccdd>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_02.xml b/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_02.xml
index e9b30abbe6a865e20d8c39a049e20ce6f2eaa803..1d1df2d59a5915d20eb6feb04bdf4c605b2187dc 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_02.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_02.xml
@@ -1,71 +1,39 @@
 <lccdd>
   <detectors>
-    <!--detector name="Coil" type="DD4hep_Solenoid_o1_v01" id="DetID_COIL" insideTrackingVolume="false" readout="COILCollection">
-      <envelope>
-	<shape type="Tube" rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" dz="Solenoid_half_length-15*mm" material="Vacuum"/>
-      </envelope>
-  
-      <type_flags type=" DetType_SUPPORT + DetType_COIL " />
-      
-      <layer id="0" inner_r="Solenoid_inner_radius" outer_z="Solenoid_half_length-15*mm" vis="ShellVis">
-	<slice material="g10" thickness="3*mm" vis="ShellVis"/>
-	<slice material="Vacuum" thickness="6*mm" vis="Invisible"/>
-	<slice material="G4_Al" thickness="6*mm" vis="ShellVis"/>
-      </layer>
-
-      <layer id="1" inner_r="SolenoidCoil_radius" outer_z="SolenoidCoil_half_length" vis="SOLVis">
-	<slice material="G4_Al" thickness="260*mm" vis="SOLVis"/>
-      </layer>
-
-      <layer id="2" inner_r="Solenoid_outer_radius-27*mm" outer_z="Solenoid_half_length-15*mm" vis="OrangeVis">
-        <slice material="G4_Al" thickness="6*mm" vis="OrangeVis"/>
-        <slice material="Vacuum" thickness="6*mm" vis="Invisible"/>
-        <slice material="G4_Al" thickness="15*mm" vis="OrangeVis"/>
-      </layer>
-    </detector-->
-
     <detector name="CoilInnerShell" type="DD4hep_TubeSegment" material="G4_Al" vis="ShellVis">
-      <material name="Iron" />
+      <material name="G4_Al" />
       <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_inner_radius+15*mm" zhalf="Solenoid_half_length-15*mm"/>
       <position x="0" y="0" z="0"/>
       <rotation x="0" y="0" z="0"/>
     </detector>
 
     <detector name="CoilOuterShell" type="DD4hep_TubeSegment" material="G4_Al" vis="ShellVis">
-      <material name="Iron" />
+      <material name="G4_Al" />
       <tubs rmin="Solenoid_outer_radius-27*mm" rmax="Solenoid_outer_radius" zhalf="Solenoid_half_length-15*mm"/>
       <position x="0" y="0" z="0"/>
       <rotation x="0" y="0" z="0"/>
     </detector>
 
     <detector name="Coil" type="DD4hep_TubeSegment" material="G4_Al" vis="SOLVis">
-      <material name="Iron" />
+      <material name="G4_Al" />
       <tubs rmin="SolenoidCoil_radius" rmax="SolenoidCoil_radius+260*mm" zhalf="SolenoidCoil_half_length"/>
       <position x="0" y="0" z="0"/>
       <rotation x="0" y="0" z="0"/>
     </detector>
 
     <detector name="CoilLeftShell" type="DD4hep_TubeSegment" material="G4_Al" vis="ShellVis">
-      <material name="Iron" />
+      <material name="G4_Al" />
       <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" zhalf="15*mm"/>
       <position x="0" y="0" z="Solenoid_half_length"/>
       <rotation x="0" y="0" z="0"/>
     </detector>
 
     <detector name="CoilRightShell" type="DD4hep_TubeSegment" material="G4_Al" vis="ShellVis">
-      <material name="Iron" />
+      <material name="G4_Al" />
       <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" zhalf="15*mm"/>
       <position x="0" y="0" z="-Solenoid_half_length"/>
       <rotation x="0" y="0" z="0"/>
     </detector>
-    <!--detector name="CoilShell" type="DD4hep_CylinderShell" id="DetID_COIL" material="G4_Al" vis="ShellVis">
-      <type_flags type=" DetType_SUPPORT + DetType_COIL " />
-
-      <module>
-	<zplane rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" z="Solenoid_half_length*2-30*mm"/>
-	<zplane rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" z="Solenoid_half_length*2"/>
-      </module>
-    </detector-->
   </detectors>
 
   <!--readouts>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_03.xml b/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_03.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3bef4f6938739c90a9339d1046f8b87f4fd63ebb
--- /dev/null
+++ b/Detector/DetCRD/compact/CRD_common_v02/Coil_Simple_v01_03.xml
@@ -0,0 +1,96 @@
+<lccdd>
+  <define>
+    <constant name="CoilShellInnerThickness" value="15*mm"/>
+    <constant name="CoilShellOuterThickness" value="25*mm"/>
+    <constant name="CoilShellSideThickness"  value="60*mm"/>
+    <constant name="CoilTSBarrelThickness"   value="10*mm"/>
+    <constant name="CoilTSSideThickness"     value="15*mm"/>
+    <constant name="CoilShellTSInnerGap"     value="50*mm"/>
+    <constant name="CoilShellTSOuterGap"     value="100*mm"/>
+    <constant name="CoilShellTSSideGap"      value="165*mm"/>
+    <constant name="CoilTSInnerRadius"       value="Solenoid_inner_radius+CoilShellInnerThickness+CoilShellTSInnerGap"/>
+    <constant name="CoilTSOuterRadius"       value="Solenoid_outer_radius-CoilShellInnerThickness-CoilShellTSOuterGap"/>
+    <constant name="CoilTSHalfLength"        value="Solenoid_half_length-CoilShellSideThickness-CoilShellTSSideGap"/>
+    <constant name="CoilTSCoilInnerGap"      value="40*mm"/>
+    <constant name="CoilThickness"           value="230*mm"/>
+    <constant name="CoilCoolingThickness"    value="30*mm"/>
+  </define>
+
+  <detectors>
+    <detector name="CoilInnerShell" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_inner_radius+CoilShellInnerThickness" zhalf="Solenoid_half_length-CoilShellSideThickness"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilOuterShell" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="Solenoid_outer_radius-CoilShellOuterThickness" rmax="Solenoid_outer_radius" zhalf="Solenoid_half_length-CoilShellSideThickness"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilInnerThermalShield" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="CoilTSInnerRadius" rmax="CoilTSInnerRadius+CoilTSBarrelThickness" zhalf="CoilTSHalfLength-CoilTSSideThickness"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilOuterThermalShield" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="CoilTSOuterRadius-CoilTSBarrelThickness" rmax="CoilTSOuterRadius" zhalf="CoilTSHalfLength-CoilTSSideThickness"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="Coil" type="DD4hep_TubeSegment" vis="SOLVis">
+      <material name="NbTi-Cu-Al" />
+      <tubs rmin="SolenoidCoil_radius" rmax="SolenoidCoil_radius+CoilThickness" zhalf="SolenoidCoil_half_length"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilCooliing" type="DD4hep_TubeSegment" vis="SOLVis">
+      <material name="TiNMixture" />
+      <tubs rmin="SolenoidCoil_radius+CoilThickness" rmax="SolenoidCoil_radius+CoilThickness+CoilCoolingThickness" zhalf="SolenoidCoil_half_length"/>
+      <position x="0" y="0" z="0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilLeftShell" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" zhalf="CoilShellSideThickness/2.0"/>
+      <position x="0" y="0" z="Solenoid_half_length-CoilShellSideThickness/2.0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilRightShell" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" zhalf="CoilShellSideThickness/2.0"/>
+      <position x="0" y="0" z="-Solenoid_half_length+CoilShellSideThickness/2.0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilLeftThermalShield" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="CoilTSInnerRadius" rmax="CoilTSOuterRadius" zhalf="CoilTSSideThickness/2.0"/>
+      <position x="0" y="0" z="CoilTSHalfLength-CoilTSSideThickness/2.0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+
+    <detector name="CoilRightThermalShield" type="DD4hep_TubeSegment" vis="ShellVis">
+      <material name="G4_Al" />
+      <tubs rmin="CoilTSInnerRadius" rmax="CoilTSOuterRadius" zhalf="CoilTSSideThickness/2.0"/>
+      <position x="0" y="0" z="-CoilTSHalfLength+CoilTSSideThickness/2.0"/>
+      <rotation x="0" y="0" z="0"/>
+    </detector>
+  </detectors>
+  
+  <!--readouts>
+    <readout name="COILCollection">
+      <id>system:5,side:-2,layer:9,slice:8,sensor:8,barrelside:-2</id>
+    </readout>
+  </readouts-->
+</lccdd>
diff --git a/Detector/DetCRD/compact/CRD_common_v02/materials.xml b/Detector/DetCRD/compact/CRD_common_v02/materials.xml
index 26a99dd0c1732d88c90b3d55452218a4af6203fb..a3aa26ae84a0bba980463fb0f013fb4176e1dd94 100644
--- a/Detector/DetCRD/compact/CRD_common_v02/materials.xml
+++ b/Detector/DetCRD/compact/CRD_common_v02/materials.xml
@@ -811,6 +811,22 @@
       <constant name="WLSTIMECONSTANT" value="0.5*ns"/>
     </material>
 
+    <!-- approximation of coil cooling pipe to average plane, pipe area about 5.2%, to update-->
+    <material name="TiNMixture">
+      <D type="density" value="0.067" unit="g/cm3"/>
+      <fraction n="0.45" ref="Ti"/>
+      <fraction n="0.55" ref="N" />
+    </material>
+
+    <!-- coil moxture, determined by NbTi ratio-->
+    <material name="NbTi-Cu-Al">
+      <D type="density" value="2.876" unit="g/cm3"/>
+      <fraction n="0.033" ref="Nb"/>
+      <fraction n="0.041" ref="Ti"/>
+      <fraction n="0.031" ref="Cu"/>
+      <fraction n="0.895" ref="Al"/>
+    </material>
+
   </materials>
 
   <surfaces>
diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
index 82ea958e652ab2dc1e00ed12cca47e1f52cc7c4b..9fbab6c756c72bf2c7eaf9f9a94464f667895656 100644
--- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
+++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml
@@ -60,8 +60,8 @@
 
     <!-- FIXME:need to check/-->
     <constant name="BeamPipe_Be_inner_thickness"   value="0.2*mm"/>
-    <constant name="BeamPipe_Cooling_thickness"    value="0.3*mm"/>
-    <constant name="BeamPipe_Be_outer_thickness"   value="0.2*mm"/>
+    <constant name="BeamPipe_Cooling_thickness"    value="0.2*mm"/>
+    <constant name="BeamPipe_Be_outer_thickness"   value="0.15*mm"/>
     <constant name="BeamPipe_Be_total_thickness"   value="BeamPipe_Be_inner_thickness+BeamPipe_Cooling_thickness+BeamPipe_Be_outer_thickness"/>
     <constant name="BeamPipe_Al_thickness"         value="2.0*mm"/>
     <constant name="BeamPipe_ThinCu_thickness"     value="2.0*mm"/>
@@ -182,7 +182,7 @@
 
     <constant name="Solenoid_inner_radius" value="3535*mm"/>
     <constant name="Solenoid_outer_radius" value="4235*mm"/>
-    <constant name="Solenoid_half_length" value="4575*mm"/>
+    <constant name="Solenoid_half_length" value="4525*mm"/>
     <constant name="SolenoidCoil_half_length" value="4075*mm"/>
     <constant name="SolenoidCoil_radius" value="3650*mm"/>
     <constant name="SolenoidCoil_center_radius" value="(Solenoid_inner_radius+Solenoid_outer_radius)/2"/>
@@ -192,7 +192,7 @@
     <constant name="Yoke_barrel_half_length" value="4525*mm"/>
     <constant name="Yoke_barrel_symmetry" value="12"/>
     
-    <constant name="Yoke_endcap_inner_radius" value="650*mm"/>
+    <constant name="Yoke_endcap_inner_radius" value="600*mm"/>
     <constant name="Yoke_endcap_outer_radius" value="Yoke_barrel_outer_radius"/>
     <constant name="Yoke_endcap_zmin" value="4635*mm"/>
     <constant name="Yoke_endcap_zmax" value="5875*mm"/>
diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml
index ad1083dbddc185a70a9845d4a3473e7ea3817af7..9dbc26d96c5b77ea8f034dba7d3279fbd171c1c1 100644
--- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml
+++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml
@@ -26,7 +26,7 @@
 
   <include ref="./TDR_Dimensions_v01_01.xml"/>
 
-  <include ref="../CRD_common_v02/Beampipe_v01_04.xml"/>
+  <include ref="../CRD_common_v02/Beampipe_v01_05.xml"/>
   <!--preliminary vertex and tracker, to update/-->
   <!--include ref="../CRD_common_v02/VXD_StaggeredLadder_v02_01.xml"/-->
   <include ref="../CRD_common_v02/VXD_Composite_v01_01.xml"/>
diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
index ed188dd09e7fa9953af42c4c6006c64884de7a5f..b6eba47e6b386060a9dbcb74cda5e8154af6ba8a 100644
--- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
+++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml
@@ -27,7 +27,7 @@
 
   <include ref="./TDR_Dimensions_v01_01.xml"/>
 
-  <include ref="../CRD_common_v02/Beampipe_v01_04.xml"/>
+  <include ref="../CRD_common_v02/Beampipe_v01_05.xml"/>
   <!--preliminary vertex and tracker, to update/-->
   <!--include ref="../CRD_common_v02/VXD_StaggeredLadder_v02_01.xml"/-->
   <include ref="../CRD_common_v02/VXD_Composite_v01_01.xml"/>
@@ -49,7 +49,7 @@
   <!--Lumical to update-->
   <include ref="../CRD_common_v01/Lumical_o1_v01.xml"/>
   <!--preliminary Magnet, to update/-->
-  <include ref="../CRD_common_v02/Coil_Simple_v01_02.xml"/>
+  <include ref="../CRD_common_v02/Coil_Simple_v01_03.xml"/>
   <!--preliminary Muon, obselete/-->
   <!--include ref="../CRD_common_v02/Yoke_Polyhedra_Barrel_v01_01.xml"/>
   <include ref="../CRD_common_v02/Yoke_Polyhedra_Endcaps_v01_01.xml"/-->
diff --git a/Detector/DetCRD/src/Other/CRDBeamPipe_v01_geo.cpp b/Detector/DetCRD/src/Other/CRDBeamPipe_v01_geo.cpp
index d3e09afff32fe074fea7af05240d0d4f3315bab7..5415e7a3a1648ad38dc29311e2561cec2a57e6fb 100644
--- a/Detector/DetCRD/src/Other/CRDBeamPipe_v01_geo.cpp
+++ b/Detector/DetCRD/src/Other/CRDBeamPipe_v01_geo.cpp
@@ -6,6 +6,7 @@
 #include "DD4hep/DetFactoryHelper.h"
 #include "DD4hep/DD4hepUnits.h"
 #include "DD4hep/DetType.h"
+#include "DD4hep/Printout.h"
 #include "DDRec/DetectorData.h"
 #include "DDRec/Surface.h"
 #include "XML/Utilities.h"
@@ -33,9 +34,6 @@ using dd4hep::rec::volSurfaceList;
 static Ref_t create_detector(Detector& theDetector,
 			     xml_h element,
 			     SensitiveDetector /*sens*/) {
-
-  std::cout << "This is the Beampipe:"  << std::endl;
-
   //Access to the XML File
   xml_det_t x_beampipe = element;
   const std::string name = x_beampipe.nameStr();
@@ -48,6 +46,14 @@ static Ref_t create_detector(Detector& theDetector,
   dd4hep::xml::setDetectorTypeFlag( element, tube ) ;
 
   if( theDetector.buildType() == BUILD_ENVELOPE ) return tube ;
+
+  dd4hep::PrintLevel printLevel = dd4hep::ERROR;
+  if (x_beampipe.hasAttr(_Unicode(printLevel))) {
+    printLevel = dd4hep::printLevel(x_beampipe.attr<std::string>(_Unicode(printLevel)));
+  }
+  dd4hep::PrintLevel oldLevel = dd4hep::setPrintLevel(printLevel);
+
+  dd4hep::printout(dd4hep::INFO, "Construct", "** building CRDBeamPipe_v01 ...");
   
   //-----------------------------------------------------------------------------------
   ConicalSupportData* beampipeData = new ConicalSupportData ;
@@ -58,8 +64,8 @@ static Ref_t create_detector(Detector& theDetector,
   //Parameters we have to know about
   dd4hep::xml::Component xmlParameter = x_beampipe.child(_Unicode(parameter));
   const double crossingAngle  = xmlParameter.attr< double >(_Unicode(crossingangle));
-  std::cout << "Crossing angle = " << crossingAngle << std::endl;
-  std::cout << "Section:                           Zstart  Zend    RiStart RiEnd   size    shift   type" << std::endl;
+  dd4hep::printout(dd4hep::INFO, "Construct", "Crossing angle = %f", crossingAngle);
+  dd4hep::printout(dd4hep::INFO, "Construct", "Section:                           Zstart  Zend    RiStart RiEnd   size    shift   type");
   for(xml_coll_t si( x_beampipe ,Unicode("section")); si; ++si) {
     xml_comp_t x_section(si);
     
@@ -80,7 +86,7 @@ static Ref_t create_detector(Detector& theDetector,
 	size = x_section.attr< double > (_Unicode(size));
       }
       catch(std::runtime_error& e){
-	std::cout << "The maximum distance of runway is not set, will be calculated automatically by crossing angle" <<std::endl;
+	dd4hep::printout(dd4hep::WARNING, "Construct", "The maximum distance of runway is not set, will be calculated automatically by crossing angle");
       }
       try{
         shift = x_section.attr< double > (_Unicode(shift));
@@ -91,16 +97,8 @@ static Ref_t create_detector(Detector& theDetector,
     }
     
     const std::string volName      = "BeamPipe_" + x_section.nameStr();
-    std::cout << std::setiosflags(std::ios::left)
-	      << std::setw(35) << volName
-	      << std::setw(8) << zstart      /dd4hep::mm
-	      << std::setw(8) << zend	     /dd4hep::mm
-	      << std::setw(8) << rInnerStart /dd4hep::mm
-	      << std::setw(8) << rInnerEnd   /dd4hep::mm
-	      << std::setw(8) << size        /dd4hep::mm
-	      << std::setw(8) << shift       /dd4hep::mm
-	      << std::setw(8) << type
-	      << std::endl;    
+    dd4hep::printout(dd4hep::INFO, "Construct", "%s %f %f %f %f %f %f %d", volName, zstart/dd4hep::mm, zend/dd4hep::mm, rInnerStart/dd4hep::mm,
+		     rInnerEnd/dd4hep::mm, size/dd4hep::mm, shift/dd4hep::mm, type);
 
     const double angle   = crossingAngle;
     const double zHalf   = fabs(zend - zstart) * 0.5;
@@ -146,7 +144,7 @@ static Ref_t create_detector(Detector& theDetector,
       catch(std::runtime_error& e){
 	thicknessEnd = thickness;
       }
-      std::cout << "->layer: " << std::setw(6) << thickness/dd4hep::mm << std::setw(6) << thicknessEnd/dd4hep::mm << std::setw(15) << material.name() << std::endl;
+      dd4hep::printout(dd4hep::INFO, "Construct", " ->layer: r0 = %f r1 = %f mat = %s", thickness/dd4hep::mm, thicknessEnd/dd4hep::mm, material.name());
       
       char suffix[20];
       sprintf(suffix,"_%d",ilayer);
@@ -227,7 +225,8 @@ static Ref_t create_detector(Detector& theDetector,
         double y2 = y1;
         double axisAngle = atan((x2-x1)/zHalf/2);
         if(fabs(beamAngle-axisAngle)>1e-12){
-	  std::cout << "Warning! axis angle not equal to beam angle. beam=" << beamAngle << " VS axis=" << axisAngle << ", user defined design and workable" << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "axis angle not equal to beam angle. beam=%f VS axis=%f, user defined design and workable",
+			   beamAngle, axisAngle);
         }
         double zSide = 2*zHalf/cos(axisAngle)+y1*tan(axisAngle)+y2*tan(axisAngle);
         double xshift = 0.5*(x1+x2);
@@ -285,7 +284,7 @@ static Ref_t create_detector(Detector& theDetector,
         double edge1ToCAngle = asin(sin(90*dd4hep::degree+edge1ToZAngle)/(xC2/sin(expandAngle))*(rOuter-rOuterEnd));
         double CToEConeAxisAngle = edge1ToCAngle-0.5*(edge2ToZAngle-edge1ToZAngle);
         if(fabs(rotateAngle-(expandAngle-CToEConeAxisAngle))>1e-12){
-	  std::cout << "Warning! rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case.");
         }
 	double a1 = rOuter/sin(bottomAngle)*sin(90*dd4hep::degree-edge1ToZAngle);
         double a2 = rOuterEnd/sin(180*dd4hep::degree-bottomAngle)*sin(90*dd4hep::degree-edge2ToZAngle);
@@ -300,7 +299,7 @@ static Ref_t create_detector(Detector& theDetector,
         double bC2 = sqrt(rOuterEnd*rOuterEnd/(1-xC2InECone*xC2InECone/aC2/aC2));
         double b1 = bC1/zC1*zBottom;
         if(fabs(bC1/zC1-bC2/zC2)>1e-12){
-	  std::cout << "Warning! bC1/zC1 not equal to bC2/zC2. Please tell Chengdong(fucd@ihep.ac.cn)." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "bC1/zC1 not equal to bC2/zC2. Please tell Chengdong(fucd@ihep.ac.cn).");
         }
         double pzTopCut = 0.5*(a1-a2)*tan(bottomAngle);
         double thetaCut1 = atan((0.5*(xC2+rOuterEnd)-0.5*rOuter)/(2*zHalf));
@@ -334,7 +333,7 @@ static Ref_t create_detector(Detector& theDetector,
         double edge1ToC = asin(sin(90*dd4hep::degree+edge1ToZ)/(xC2/sin(expandAngle))*(radius-radiusEnd));
         double CToEConeAxis = edge1ToC-0.5*(edge2ToZ-edge1ToZ);
         if(fabs(rotate-(expandAngle-CToEConeAxis))>1e-12){
-	  std::cout << "Warning! rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case.");
         }
 	double a1Hole = radius/sin(bottom)*sin(90*dd4hep::degree-edge1ToZ);
         double a2Hole = radiusEnd/sin(180*dd4hep::degree-bottom)*sin(90*dd4hep::degree-edge2ToZ);
@@ -349,7 +348,7 @@ static Ref_t create_detector(Detector& theDetector,
         double bC2Hole = sqrt(radiusEnd*radiusEnd/(1-xC2InEConeHole*xC2InEConeHole/aC2Hole/aC2Hole));
         double b1Hole = bC1Hole/zC1Hole*zBottomHole;
         if(fabs(bC1Hole/zC1Hole-bC2Hole/zC2Hole)>1e-12){
-	  std::cout << "Warning! bC1/zC1 not equal to bC2/zC2 for Hole. Please tell Chengdong(fucd@ihep.ac.cn)." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "bC1/zC1 not equal to bC2/zC2 for Hole. Please tell Chengdong(fucd@ihep.ac.cn).");
         }
 	double pzTopCutHole = 0.5*(a1Hole-a2Hole)*tan(bottom);
 	dd4hep::Trd2 body2(0, xC2, yMax-thickness, radiusEnd, zHalf);
@@ -387,9 +386,10 @@ static Ref_t create_detector(Detector& theDetector,
 	double rotateAngle = 0.5*(edge1ToZAngle+edge2ToZAngle);
 	double edge1ToCAngle = asin(sin(90*dd4hep::degree+edge1ToZAngle)/(xC2/sin(expandAngle))*(rOuter-rOuterEnd));
 	double CToEConeAxisAngle = edge1ToCAngle-0.5*(edge2ToZAngle-edge1ToZAngle);
-	std::cout << expandAngle/dd4hep::degree << " " << edge1ToZAngle/dd4hep::degree << " " << edge2ToZAngle/dd4hep::degree << " " << bottomAngle/dd4hep::degree << " " << rotateAngle/dd4hep::degree << " " << edge1ToCAngle/dd4hep::degree << " " << CToEConeAxisAngle/dd4hep::degree << std::endl;
+	dd4hep::printout(dd4hep::INFO, "Construct", "edge angle: %f %f %f %f %f %f %f", expandAngle/dd4hep::degree, edge1ToZAngle/dd4hep::degree, edge2ToZAngle/dd4hep::degree,
+			 bottomAngle/dd4hep::degree, rotateAngle/dd4hep::degree, edge1ToCAngle/dd4hep::degree, CToEConeAxisAngle/dd4hep::degree);
 	if(fabs(rotateAngle-(expandAngle-CToEConeAxisAngle))>1e-12){
-	  std::cout << "Warning! rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case.");
 	}
 	double a1 = rOuter/sin(bottomAngle)*sin(90*dd4hep::degree-edge1ToZAngle);
 	double a2 = rOuterEnd/sin(180*dd4hep::degree-bottomAngle)*sin(90*dd4hep::degree-edge2ToZAngle);
@@ -405,11 +405,11 @@ static Ref_t create_detector(Detector& theDetector,
 	  double bC1 = sqrt(rOuter*rOuter/(1-xC1InECone*xC1InECone/aC1/aC1));
 	  double bC2 = sqrt(rOuterEnd*rOuterEnd/(1-xC2InECone*xC2InECone/aC2/aC2));
 	  b1 = bC1/zC1*zBottom;
-	  std::cout << a1 << " " << a2 << " " << zC1 << " " << zC2 << std::endl;
+	  dd4hep::printout(dd4hep::DEBUG, "Construct", "a1 = %f a2 = %f zC1 = %f zC2 = %f", a1, a2, zC1, zC2);
 	  if(fabs(bC1/zC1-bC2/zC2)>1e-12){
-	    std::cout << "Warning! bC1/zC1 not equal to bC2/zC2." << std::endl;
+	    dd4hep::printout(dd4hep::WARNING, "Construct", "bC1/zC1 not equal to bC2/zC2.");
 	  }
-	  std::cout << "b1/a1=" << b1/a1 << std::endl;
+	  dd4hep::printout(dd4hep::DEBUG, "Construct", "b1/a1 = %f", b1/a1);
 	  pzTopCut = 0.5*(a1-a2)*tan(bottomAngle);
 	}
 	dd4hep::Cone cone1(pzTopCut, 0, a1, 0, a2);
@@ -437,7 +437,7 @@ static Ref_t create_detector(Detector& theDetector,
         double edge1ToC = asin(sin(90*dd4hep::degree+edge1ToZ)/(xC2/sin(expandAngle))*(radius-radiusEnd));
         double CToEConeAxis = edge1ToC-0.5*(edge2ToZ-edge1ToZ);
         if(fabs(rotate-(expandAngle-CToEConeAxis))>1e-12){
-	  std::cout << "Warning! rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case." << std::endl;
+	  dd4hep::printout(dd4hep::WARNING, "Construct", "rotate angle was not calculated rightly. Please check input parameters whether satisfy the Waist case.");
         }
 	double a1Hole = radius/sin(bottom)*sin(90*dd4hep::degree-edge1ToZ);
         double a2Hole = radiusEnd/sin(180*dd4hep::degree-bottom)*sin(90*dd4hep::degree-edge2ToZ);
@@ -454,7 +454,7 @@ static Ref_t create_detector(Detector& theDetector,
 	  double bC2Hole = sqrt(radiusEnd*radiusEnd/(1-xC2InEConeHole*xC2InEConeHole/aC2Hole/aC2Hole));
 	  b1Hole = bC1Hole/zC1Hole*zBottomHole;
 	  if(fabs(bC1Hole/zC1Hole-bC2Hole/zC2Hole)>1e-12){
-	    std::cout << "Warning! bC1/zC1 not equal to bC2/zC2 for Hole." << std::endl;
+	    dd4hep::printout(dd4hep::WARNING, "Construct", "bC1/zC1 not equal to bC2/zC2 for Hole.");
 	  }
 	  pzTopCutHole = 0.5*(a1Hole-a2Hole)*tan(bottom);
 	}
@@ -578,13 +578,9 @@ static Ref_t create_detector(Detector& theDetector,
   tube.setVisAttributes( theDetector, "SeeThrough", envelope );
   
   //debug
-  std::cout << "============ConicalSupportData============" << std::endl;
-  for(unsigned int i=0;i<beampipeData->sections.size();i++){
-    std::cout << std::setw(8) << beampipeData->sections[i].zPos    /dd4hep::mm
-              << std::setw(8) << beampipeData->sections[i].rInner  /dd4hep::mm
-	      << std::setw(8) << beampipeData->sections[i].rOuter  /dd4hep::mm
-	      << std::endl;
-  }
+  if (dd4hep::printLevel()<=dd4hep::WARNING) std::cout << (*beampipeData) << std::endl;
+
+  dd4hep::setPrintLevel(oldLevel);
 
   return tube;
 }
diff --git a/Detector/DetCRD/src/Tracker/SiTrackerComposite_v01_geo.cpp b/Detector/DetCRD/src/Tracker/SiTrackerComposite_v01_geo.cpp
index 971df5d333ad22eaafbead3eb875e3b738a81479..70b66ee9413ea26ea84af7e4b3680b4c3bf71883 100644
--- a/Detector/DetCRD/src/Tracker/SiTrackerComposite_v01_geo.cpp
+++ b/Detector/DetCRD/src/Tracker/SiTrackerComposite_v01_geo.cpp
@@ -56,12 +56,11 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
   if(theDetector.buildType()==dd4hep::BUILD_ENVELOPE) return det;
   envelope.setVisAttributes(theDetector.visAttributes("SeeThrough"));
 
-  dd4hep::PrintLevel oldLevel = dd4hep::printLevel();
+  dd4hep::PrintLevel printLevel = dd4hep::ERROR;
   if (x_det.hasAttr(_Unicode(printLevel))) {
-    dd4hep::PrintLevel printLevel = dd4hep::printLevel(x_det.attr<string>(_Unicode(printLevel)));
-    // global level alway larger than local
-    if (printLevel<oldLevel) dd4hep::setPrintLevel(printLevel);
+    printLevel = dd4hep::printLevel(x_det.attr<string>(_Unicode(printLevel)));
   }
+  dd4hep::PrintLevel oldLevel = dd4hep::setPrintLevel(printLevel);
 
   if (x_det.hasChild(_U(sensitive))) {
     xml_dim_t sd_typ = x_det.child(_U(sensitive));
@@ -541,7 +540,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
       compositeData->layersPlanar.push_back(topLayer);
     }
   }
-  if (dd4hep::printLevel()<=dd4hep::INFO) std::cout << (*compositeData) << endl;
+  if (dd4hep::printLevel()<=dd4hep::WARNING) std::cout << (*compositeData) << endl;
   det.addExtension<dd4hep::rec::CompositeData>(compositeData);
 
   if (x_det.hasAttr(_U(combineHits))) det.setCombineHits(x_det.attr<bool>(_U(combineHits)),sens);