From 75dd00b89d01b1ee41f98c340c1a89c3c5636a03 Mon Sep 17 00:00:00 2001 From: Frank Gaede <frank.gaede@desy.de> Date: Tue, 17 Feb 2015 13:32:18 +0000 Subject: [PATCH] - added example SimpleDetector - so far on ZPlanarTracker_geo.cpp - simple example with ILD like VXD and SIT --- examples/CMakeLists.txt | 2 + examples/SimpleDetector/CMakeLists.txt | 90 ++ .../SimpleDetector/compact/Simple_ILD.xml | 127 +++ examples/SimpleDetector/compact/elements.xml | 884 ++++++++++++++++++ examples/SimpleDetector/compact/materials.xml | 452 +++++++++ .../SimpleDetector/src/ZPlanarTracker_geo.cpp | 186 ++++ 6 files changed, 1741 insertions(+) create mode 100644 examples/SimpleDetector/CMakeLists.txt create mode 100644 examples/SimpleDetector/compact/Simple_ILD.xml create mode 100644 examples/SimpleDetector/compact/elements.xml create mode 100644 examples/SimpleDetector/compact/materials.xml create mode 100644 examples/SimpleDetector/src/ZPlanarTracker_geo.cpp diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d3f8240fe..fa20919fe 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -31,4 +31,6 @@ add_subdirectory(CLICSiD) add_subdirectory(ClientTests) +add_subdirectory(SimpleDetector) + diff --git a/examples/SimpleDetector/CMakeLists.txt b/examples/SimpleDetector/CMakeLists.txt new file mode 100644 index 000000000..568bc1f5e --- /dev/null +++ b/examples/SimpleDetector/CMakeLists.txt @@ -0,0 +1,90 @@ +cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR) +#--------------------------- +set( PackageName SimpleDetector ) +#--------------------------- +project(${PackageName}) + +# project version +SET( ${PackageName}_VERSION_MAJOR 0 ) +SET( ${PackageName}_VERSION_MINOR 0 ) +SET( ${PackageName}_VERSION_PATCH 1 ) + +SET( ${PackageName}_VERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" ) +SET( ${PackageName}_SOVERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" ) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) + +#------------- set the default installation directory to be the source directory +IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + SET( CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE PATH + "install prefix path - overwrite with -D CMAKE_INSTALL_PREFIX = ..." + FORCE ) + MESSAGE(STATUS "CMAKE_INSTALL_PREFIX is ${CMAKE_INSTALL_PREFIX} - overwrite with -D CMAKE_INSTALL_PREFIX" ) +ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +find_package( DD4hep REQUIRED) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DD4hep_ROOT}/cmake ) +include( DD4hep ) + +find_package( ROOT REQUIRED ) +set( ROOT_COMPONENT_LIBRARIES Geom Reflex) +#------------------------------------------------------------- +# add additional packages here +#------------------------------------------------------------- + +#---Testing------------------------------------------------------------------------- +if(BUILD_TESTING) + include(CTest) + enable_testing() +endif(BUILD_TESTING) + +configure_file( ${DD4hep_ROOT}/cmake/run_test_package.sh run_test_${PackageName}.sh @ONLY) +INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/run_test_${PackageName}.sh + DESTINATION bin ) + +#------------------------------------------------------------- +include_directories( ${CMAKE_SOURCE_DIR}/include + include + ${DD4hep_INCLUDE_DIRS} + ${ROOT_INCLUDE_DIR} + ) + +file(GLOB sources src/*.cpp ) +include(DD4hep_XML_setup) + +add_library(${PackageName} SHARED ${sources}) + +target_link_libraries(${PackageName} ${DD4hep_LIBRARIES} ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} ) + +#---Rootmap generation-------------------------------------------------------------- +if(APPLE) + dd4hep_generate_rootmap_apple(${PackageName} ) +else() + dd4hep_generate_rootmap(${PackageName} ) +endif() + +#---- configure run environment --------------- +configure_file( ${DD4hep_ROOT}/cmake/thisdd4hep_package.sh.in this${PackageName}.sh @ONLY) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/this${PackageName}.sh + DESTINATION bin + ) +#--- install target------------------------------------- +install(TARGETS ${PackageName} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ) +install(DIRECTORY compact + DESTINATION examples/${PackageName} + PATTERN ".svn" EXCLUDE ) + +#install(DIRECTORY scripts +# DESTINATION examples/${PackageName} +# PATTERN ".svn" EXCLUDE ) + +# to do: add corresponding uninstall... +#------------------------------------------------------- diff --git a/examples/SimpleDetector/compact/Simple_ILD.xml b/examples/SimpleDetector/compact/Simple_ILD.xml new file mode 100644 index 000000000..cbf8fc1cd --- /dev/null +++ b/examples/SimpleDetector/compact/Simple_ILD.xml @@ -0,0 +1,127 @@ +<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="Simple_ILD" + title="ILD Detector like example detector model" + author="F. Gaede" + url="http://ilcsoft.desy.de" + status="development" + version="$Id: $"> + <comment> + A very simple ILD like detector + so far only VXD and (pixel) SIT ... + </comment> + </info> + + <includes> + <gdmlFile ref="elements.xml"/> + <gdmlFile ref="materials.xml"/> + </includes> + + <define> + <constant name="world_side" value="10*m"/> + <constant name="world_x" value="world_side/2"/> + <constant name="world_y" value="world_side/2"/> + <constant name="world_z" value="world_side/2"/> + + <constant name="tracker_region_rmax" value="2.0*m"/> + <constant name="tracker_region_zmax" value="2.0*m"/> + + <constant name="SolenoidField_zMax" value="4.0*m"/> + <constant name="SolenoidField_outer_radius" value="4.0*m"/> + + <constant name="BField_nominal" value="3.5*tesla"/> + + </define> + + <materials> + <material name="Graphite"> + <D value="1.7" unit="g/cm3"/> + <composite n="1" ref="C"/> + </material> + </materials> + + <limits> + <limitset name="Tracker_limits"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> + </limitset> + </limits> + + <display> + <vis name="VXDLayerVis" alpha="1.0" r="0.5" g=".5" b=".5" showDaughters="true" visible="true"/> + <vis name="VXDSupportVis" alpha="1.0" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/> + <vis name="SITSupportVis" alpha="1.0" r="0.0" g="0.3" b="0.7" showDaughters="true" visible="true"/> + <vis name="SITLayerVis" alpha="1.0" r="0.0" g="0.7" b="0.3" showDaughters="true" visible="true"/> + </display> + + <detectors> + <comment>Trackers</comment> + + <detector name="VXD" type="ZPlanarTracker" vis="VXDVis" id="1" limits="Tracker_limits" readout="VXDCollection" insideTrackingVolume="true"> + + <layer nLadders="10" phi0="-1.570796327e+00*rad" id="0"> + <ladder distance="1.600000000e+01*mm" thickness="1.000000000e+00*mm" width="1.150000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="CarbonFiber" /> + <sensitive distance="1.595000000e+01*mm" thickness="5.000000000e-02*mm" width="1.100000000e+01*mm" length="6.250000000e+01*mm" offset="-3.156041308e+00*mm" material="G4_Si"/> + </layer> + <layer nLadders="10" phi0="-1.570796327e+00*rad" id="1"> + <ladder distance="1.700000000e+01*mm" thickness="1.000000000e+00*mm" width="1.150000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="CarbonFiber" /> + <sensitive distance="1.800000000e+01*mm" thickness="5.000000000e-02*mm" width="1.100000000e+01*mm" length="6.250000000e+01*mm" offset="-3.156041308e+00*mm" material="G4_Si"/> + </layer> + <layer nLadders="11" phi0="-1.570796327e+00*rad" id="2"> + <ladder distance="3.700000000e+01*mm" thickness="1.000000000e+00*mm" width="2.250000000e+01*mm" length="1.250000000e+02*mm" offset="-3.502631742e+00*mm" material="CarbonFiber" /> + <sensitive distance="3.695000000e+01*mm" thickness="5.000000000e-02*mm" width="2.200000000e+01*mm" length="1.250000000e+02*mm" offset="-3.252631742e+00*mm" material="G4_Si"/> + </layer> + <layer nLadders="11" phi0="-1.570796327e+00*rad" id="3"> + <ladder distance="3.800000000e+01*mm" thickness="1.000000000e+00*mm" width="2.250000000e+01*mm" length="1.250000000e+02*mm" offset="-3.502631742e+00*mm" material="CarbonFiber" /> + <sensitive distance="3.900000000e+01*mm" thickness="5.000000000e-02*mm" width="2.200000000e+01*mm" length="1.250000000e+02*mm" offset="-3.252631742e+00*mm" material="G4_Si"/> + </layer> + <layer nLadders="17" phi0="-1.570796327e+00*rad" id="4"> + <ladder distance="5.800000000e+01*mm" thickness="1.000000000e+00*mm" width="2.250000000e+01*mm" length="1.250000000e+02*mm" offset="-5.128151357e+00*mm" material="CarbonFiber" /> + <sensitive distance="5.795000000e+01*mm" thickness="5.000000000e-02*mm" width="2.200000000e+01*mm" length="1.250000000e+02*mm" offset="-4.878151357e+00*mm" material="G4_Si"/> + </layer> + <layer nLadders="17" phi0="-1.570796327e+00*rad" id="5"> + <ladder distance="5.900000000e+01*mm" thickness="1.000000000e+00*mm" width="2.250000000e+01*mm" length="1.250000000e+02*mm" offset="-5.128151357e+00*mm" material="CarbonFiber" /> + <sensitive distance="6.000000000e+01*mm" thickness="5.000000000e-02*mm" width="2.200000000e+01*mm" length="1.250000000e+02*mm" offset="-4.878151357e+00*mm" material="G4_Si"/> + </layer> + </detector> + + <detector name="SIT" type="ZPlanarTracker" vis="SITVis" id="1" limits="Tracker_limits" readout="SITCollection" insideTrackingVolume="true"> + <layer nLadders="10" phi0="0.000000000e+00" id="0"> + <ladder distance="1.531000000e+02*mm" thickness="1.000000000e+00*mm" width="9.916044311e+01*mm" length="3.680000000e+02*mm" offset="0.000000000e+00*mm" material="CarbonFiber" /> + <sensitive distance="1.529000000e+02*mm" thickness="2.000000000e-01*mm" width="9.916044311e+01*mm" length="3.680000000e+02*mm" offset="0.000000000e+00*mm" material="G4_Si"/> + </layer> + <!-- <layer nLadders="10" phi0="0.000000000e+00" id="1"> --> + <!-- <ladder distance="1.544000000e+02*mm" thickness="1.000000000e+00*mm" width="1.001352022e+02*mm" length="3.680000000e+02*mm" offset="0.000000000e+00*mm" material="CarbonFiber" /> --> + <!-- <sensitive distance="1.554000000e+02*mm" thickness="2.000000000e-01*mm" width="1.001352022e+02*mm" length="3.680000000e+02*mm" offset="0.000000000e+00*mm" material="G4_Si"/> --> + <!-- </layer> --> + <layer nLadders="19" phi0="0.000000000e+00" id="1"> + <ladder distance="3.001000000e+02*mm" thickness="1.000000000e+00*mm" width="9.988891763e+01*mm" length="6.440000000e+02*mm" offset="0.000000000e+00*mm" material="CarbonFiber" /> + <sensitive distance="2.999000000e+02*mm" thickness="2.000000000e-01*mm" width="9.988891763e+01*mm" length="6.440000000e+02*mm" offset="0.000000000e+00*mm" material="G4_Si"/> + </layer> + <!-- <layer nLadders="19" phi0="0.000000000e+00" id="3"> --> + <!-- <ladder distance="3.014000000e+02*mm" thickness="1.000000000e+00*mm" width="1.003895291e+02*mm" length="6.440000000e+02*mm" offset="0.000000000e+00*mm" material="CarbonFiber" /> --> + <!-- <sensitive distance="3.024000000e+02*mm" thickness="2.000000000e-01*mm" width="1.003895291e+02*mm" length="6.440000000e+02*mm" offset="0.000000000e+00*mm" material="G4_Si"/> --> + <!-- </layer> --> + </detector> + + </detectors> + + <readouts> + <readout name="VXDCollection"> + <id>system:5,side:2,layer:9,module:8,sensor:8</id> + </readout> + <readout name="SITCollection"> + <id>system:5,side:2,layer:9,module:8,sensor:8</id> + </readout> + </readouts> + + + <fields> + <field type="solenoid" name="GlobalSolenoid" inner_field="BField_nominal" + outer_field="-1.5*tesla" zmax="SolenoidField_zMax" + inner_radius="SolenoidField_outer_radius" + outer_radius="world_side" /> + </fields> + +</lccdd> diff --git a/examples/SimpleDetector/compact/elements.xml b/examples/SimpleDetector/compact/elements.xml new file mode 100644 index 000000000..e714c3a5c --- /dev/null +++ b/examples/SimpleDetector/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/SimpleDetector/compact/materials.xml b/examples/SimpleDetector/compact/materials.xml new file mode 100644 index 000000000..58f592277 --- /dev/null +++ b/examples/SimpleDetector/compact/materials.xml @@ -0,0 +1,452 @@ + <materials> + <isotope N="1" Z="1" name="H1"> + <atom unit="g/mole" value="1.00782503081372"/> + </isotope> + <isotope N="2" Z="1" name="H2"> + <atom unit="g/mole" value="2.01410199966617"/> + </isotope> + <element name="H"> + <fraction n="0.999885" ref="H1"/> + <fraction n="0.000115" ref="H2"/> + </element> + <isotope N="12" Z="6" name="C12"> + <atom unit="g/mole" value="12"/> + </isotope> + <isotope N="13" Z="6" name="C13"> + <atom unit="g/mole" value="13.0034"/> + </isotope> + <element name="C"> + <fraction n="0.9893" ref="C12"/> + <fraction n="0.0107" ref="C13"/> + </element> + <isotope N="14" Z="7" name="N14"> + <atom unit="g/mole" value="14.0031"/> + </isotope> + <isotope N="15" Z="7" name="N15"> + <atom unit="g/mole" value="15.0001"/> + </isotope> + <element name="N"> + <fraction n="0.99632" ref="N14"/> + <fraction n="0.00368" ref="N15"/> + </element> + <isotope N="16" Z="8" name="O16"> + <atom unit="g/mole" value="15.9949"/> + </isotope> + <isotope N="17" Z="8" name="O17"> + <atom unit="g/mole" value="16.9991"/> + </isotope> + <isotope N="18" Z="8" name="O18"> + <atom unit="g/mole" value="17.9992"/> + </isotope> + <element name="O"> + <fraction n="0.99757" ref="O16"/> + <fraction n="0.00038" ref="O17"/> + <fraction n="0.00205" ref="O18"/> + </element> + <material name="G4_KAPTON" state="solid"> + <MEE unit="eV" value="79.6"/> + <D unit="g/cm3" value="1.42"/> + <fraction n="0.026362" ref="H"/> + <fraction n="0.691133" ref="C"/> + <fraction n="0.07327" ref="N"/> + <fraction n="0.209235" ref="O"/> + </material> + <isotope N="28" Z="14" name="Si28"> + <atom unit="g/mole" value="27.9769"/> + </isotope> + <isotope N="29" Z="14" name="Si29"> + <atom unit="g/mole" value="28.9765"/> + </isotope> + <isotope N="30" Z="14" name="Si30"> + <atom unit="g/mole" value="29.9738"/> + </isotope> + <element name="Si"> + <fraction n="0.922296077703922" ref="Si28"/> + <fraction n="0.0468319531680468" ref="Si29"/> + <fraction n="0.0308719691280309" ref="Si30"/> + </element> + <material name="SiC_foam" state="solid"> + <MEE unit="eV" value="137.77733431141"/> + <D unit="g/cm3" value="0.19"/> + <fraction n="0.299548759813591" ref="C"/> + <fraction n="0.700451240186409" ref="Si"/> + </material> + <material Z="13" name="G4_Al" state="solid"> + <MEE unit="eV" value="166"/> + <D unit="g/cm3" value="2.699"/> + <atom unit="g/mole" value="26.9815"/> + <fraction n="1" ref="Al"/> + </material> + <material name="G4_Si" state="solid"> + <MEE unit="eV" value="173"/> + <D unit="g/cm3" value="2.33"/> + <fraction n="1" ref="Si"/> + </material> + <isotope N="63" Z="29" name="Cu63"> + <atom unit="g/mole" value="62.9296"/> + </isotope> + <isotope N="65" Z="29" name="Cu65"> + <atom unit="g/mole" value="64.9278"/> + </isotope> + <element name="Cu"> + <fraction n="0.6917" ref="Cu63"/> + <fraction n="0.3083" ref="Cu65"/> + </element> + <material name="G4_Cu" state="solid"> + <MEE unit="eV" value="322"/> + <D unit="g/cm3" value="8.96"/> + <fraction n="1" ref="Cu"/> + </material> + <material Z="4" name="G4_Be" state="solid"> + <MEE unit="eV" value="63.7"/> + <D unit="g/cm3" value="1.848"/> + <atom unit="g/mole" value="9.01218"/> + <fraction n="1" ref="Be"/> + </material> + <isotope N="46" Z="22" name="Ti46"> + <atom unit="g/mole" value="45.9526"/> + </isotope> + <isotope N="47" Z="22" name="Ti47"> + <atom unit="g/mole" value="46.9518"/> + </isotope> + <isotope N="48" Z="22" name="Ti48"> + <atom unit="g/mole" value="47.9479"/> + </isotope> + <isotope N="49" Z="22" name="Ti49"> + <atom unit="g/mole" value="48.9479"/> + </isotope> + <isotope N="50" Z="22" name="Ti50"> + <atom unit="g/mole" value="49.9448"/> + </isotope> + <element name="Ti"> + <fraction n="0.0825" ref="Ti46"/> + <fraction n="0.0744" ref="Ti47"/> + <fraction n="0.7372" ref="Ti48"/> + <fraction n="0.0541" ref="Ti49"/> + <fraction n="0.0518" ref="Ti50"/> + </element> + <material name="G4_Ti" state="solid"> + <MEE unit="eV" value="233"/> + <D unit="g/cm3" value="4.54"/> + <fraction n="1" ref="Ti"/> + </material> + <material name="styropor" state="solid"> + <MEE unit="eV" value="65.9436601819466"/> + <D unit="g/cm3" value="0.025"/> + <fraction n="0.922577329294378" ref="C"/> + <fraction n="0.0774226707056217" ref="H"/> + </material> + <material name="GroundOrHVMix" state="solid"> + <MEE unit="eV" value="259.806022507979"/> + <D unit="g/cm3" value="5.19"/> + <fraction n="0.00360636223506744" ref="H"/> + <fraction n="0.0945480597302505" ref="C"/> + <fraction n="0.0100234489402697" ref="N"/> + <fraction n="0.0286236705202312" ref="O"/> + <fraction n="0.863198458574181" ref="Cu"/> + </material> + <isotope N="35" Z="17" name="Cl35"> + <atom unit="g/mole" value="34.9689"/> + </isotope> + <isotope N="37" Z="17" name="Cl37"> + <atom unit="g/mole" value="36.9659"/> + </isotope> + <element name="Cl"> + <fraction n="0.7578" ref="Cl35"/> + <fraction n="0.2422" ref="Cl37"/> + </element> + <material name="siPCBMix" state="solid"> + <MEE unit="eV" value="262.475002085268"/> + <D unit="g/cm3" value="5.05076923076923"/> + <fraction n="0.014498933901919" ref="Cl"/> + <fraction n="0.083477099995865" ref="O"/> + <fraction n="0.0654857498400853" ref="Si"/> + <fraction n="0.00351122019083304" ref="H"/> + <fraction n="0.0142636698452849" ref="C"/> + <fraction n="0.818763326226013" ref="Cu"/> + </material> + <isotope N="36" Z="18" name="Ar36"> + <atom unit="g/mole" value="35.9675"/> + </isotope> + <isotope N="38" Z="18" name="Ar38"> + <atom unit="g/mole" value="37.9627"/> + </isotope> + <isotope N="40" Z="18" name="Ar40"> + <atom unit="g/mole" value="39.9624"/> + </isotope> + <element name="Ar"> + <fraction n="0.003365" ref="Ar36"/> + <fraction n="0.000632" ref="Ar38"/> + <fraction n="0.996003" ref="Ar40"/> + </element> + <material name="G4_AIR" state="gas"> + <MEE unit="eV" value="85.7"/> + <D unit="g/cm3" value="0.00120479"/> + <fraction n="0.000124000124000124" ref="C"/> + <fraction n="0.755267755267755" ref="N"/> + <fraction n="0.231781231781232" ref="O"/> + <fraction n="0.0128270128270128" ref="Ar"/> + </material> + <material name="Vacuum" state="gas"> + <D unit="g/cm3" value="0.00000000001"/> + <fraction n="1" ref="G4_AIR"/> + </material> + <material name="Air" state="gas"> + <D unit="g/cm3" value="0.00120479"/> + <fraction n="1" ref="G4_AIR"/> + </material> + <isotope N="180" Z="74" name="W180"> + <atom unit="g/mole" value="179.947"/> + </isotope> + <isotope N="182" Z="74" name="W182"> + <atom unit="g/mole" value="181.948"/> + </isotope> + <isotope N="183" Z="74" name="W183"> + <atom unit="g/mole" value="182.95"/> + </isotope> + <isotope N="184" Z="74" name="W184"> + <atom unit="g/mole" value="183.951"/> + </isotope> + <isotope N="186" Z="74" name="W186"> + <atom unit="g/mole" value="185.954"/> + </isotope> + <element name="W"> + <fraction n="0.0012" ref="W180"/> + <fraction n="0.265" ref="W182"/> + <fraction n="0.1431" ref="W183"/> + <fraction n="0.3064" ref="W184"/> + <fraction n="0.2843" ref="W186"/> + </element> + <material name="G4_W" state="solid"> + <MEE unit="eV" value="727"/> + <D unit="g/cm3" value="19.3"/> + <fraction n="1" ref="W"/> + </material> + <material name="g10" state="solid"> + <MEE unit="eV" value="114.378463512112"/> + <D unit="g/cm3" value="1.7"/> + <fraction n="0.08" ref="Cl"/> + <fraction n="0.460597175271302" ref="O"/> + <fraction n="0.361327255" ref="Si"/> + <fraction n="0.0193736737588317" ref="H"/> + <fraction n="0.078701895969866" ref="C"/> + </material> + <isotope N="54" Z="26" name="Fe54"> + <atom unit="g/mole" value="53.9396"/> + </isotope> + <isotope N="56" Z="26" name="Fe56"> + <atom unit="g/mole" value="55.9349"/> + </isotope> + <isotope N="57" Z="26" name="Fe57"> + <atom unit="g/mole" value="56.9354"/> + </isotope> + <isotope N="58" Z="26" name="Fe58"> + <atom unit="g/mole" value="57.9333"/> + </isotope> + <element name="Fe"> + <fraction n="0.05845" ref="Fe54"/> + <fraction n="0.91754" ref="Fe56"/> + <fraction n="0.02119" ref="Fe57"/> + <fraction n="0.00282" ref="Fe58"/> + </element> + <isotope N="50" Z="24" name="Cr50"> + <atom unit="g/mole" value="49.946"/> + </isotope> + <isotope N="52" Z="24" name="Cr52"> + <atom unit="g/mole" value="51.9405"/> + </isotope> + <isotope N="53" Z="24" name="Cr53"> + <atom unit="g/mole" value="52.9407"/> + </isotope> + <isotope N="54" Z="24" name="Cr54"> + <atom unit="g/mole" value="53.9389"/> + </isotope> + <element name="Cr"> + <fraction n="0.04345" ref="Cr50"/> + <fraction n="0.83789" ref="Cr52"/> + <fraction n="0.09501" ref="Cr53"/> + <fraction n="0.02365" ref="Cr54"/> + </element> + <isotope N="58" Z="28" name="Ni58"> + <atom unit="g/mole" value="57.9353"/> + </isotope> + <isotope N="60" Z="28" name="Ni60"> + <atom unit="g/mole" value="59.9308"/> + </isotope> + <isotope N="61" Z="28" name="Ni61"> + <atom unit="g/mole" value="60.9311"/> + </isotope> + <isotope N="62" Z="28" name="Ni62"> + <atom unit="g/mole" value="61.9283"/> + </isotope> + <isotope N="64" Z="28" name="Ni64"> + <atom unit="g/mole" value="63.928"/> + </isotope> + <element name="Ni"> + <fraction n="0.680769" ref="Ni58"/> + <fraction n="0.262231" ref="Ni60"/> + <fraction n="0.011399" ref="Ni61"/> + <fraction n="0.036345" ref="Ni62"/> + <fraction n="0.009256" ref="Ni64"/> + </element> + <material name="stainless_steel" state="solid"> + <MEE unit="eV" value="282.929693036223"/> + <D unit="g/cm3" value="7.87"/> + <fraction n="0.70611" ref="Fe"/> + <fraction n="0.18784" ref="Cr"/> + <fraction n="0.10605" ref="Ni"/> + </material> + <material name="fanele2" state="solid"> + <MEE unit="eV" value="75.3984269235952"/> + <D unit="g/cm3" value="2.04"/> + <fraction n="0.0814736540216391" ref="H"/> + <fraction n="0.543350389498575" ref="C"/> + <fraction n="0.257623229207059" ref="O"/> + <fraction n="0.0266436363636364" ref="N"/> + <fraction n="0.0909090909090909" ref="Cu"/> + </material> + <material name="fanele1" state="solid"> + <MEE unit="eV" value="83.6887639821308"/> + <D unit="g/cm3" value="2.61666666666667"/> + <fraction n="0.0746841828531692" ref="H"/> + <fraction n="0.498071190373694" ref="C"/> + <fraction n="0.236154626773137" ref="O"/> + <fraction n="0.0244233333333333" ref="N"/> + <fraction n="0.166666666666667" ref="Cu"/> + </material> + <material name="G4_POLYSTYRENE" state="solid"> + <MEE unit="eV" value="68.7"/> + <D unit="g/cm3" value="1.06"/> + <fraction n="0.077418" ref="H"/> + <fraction n="0.922582" ref="C"/> + </material> + <isotope N="79" Z="35" name="Br79"> + <atom unit="g/mole" value="78.9183"/> + </isotope> + <isotope N="81" Z="35" name="Br81"> + <atom unit="g/mole" value="80.9163"/> + </isotope> + <element name="Br"> + <fraction n="0.5069" ref="Br79"/> + <fraction n="0.4931" ref="Br81"/> + </element> + <material name="PCB" state="solid"> + <MEE unit="eV" value="88.255598548367"/> + <D unit="g/cm3" value="1.7"/> + <fraction n="0.180774" ref="Si"/> + <fraction n="0.405633" ref="O"/> + <fraction n="0.278042" ref="C"/> + <fraction n="0.0684428" ref="H"/> + <fraction n="0.0671091" ref="Br"/> + </material> + <material name="G4_Fe" state="solid"> + <MEE unit="eV" value="286"/> + <D unit="g/cm3" value="7.874"/> + <fraction n="1" ref="Fe"/> + </material> + <material name="beam" state="gas"> + <P unit="pascal" value="6.25e-06"/> + <MEE unit="eV" value="38.5760755714278"/> + <D unit="g/cm3" value="1.7e-14"/> + <fraction n="0.36264" ref="H"/> + <fraction n="0.36276" ref="N"/> + <fraction n="0.117748421296248" ref="C"/> + <fraction n="0.156851578703752" ref="O"/> + </material> + <material name="TDR_gas" state="gas"> + <MEE unit="eV" value="177.374841770826"/> + <D unit="g/cm3" value="0.001731"/> + <fraction n="0.95667" ref="Ar"/> + <fraction n="0.00519198196" ref="H"/> + <fraction n="0.02165502376" ref="C"/> + <fraction n="0.01648299428" ref="O"/> + </material> + <material name="epoxy" state="solid"> + <MEE unit="eV" value="60.8292941662115"/> + <D unit="g/cm3" value="1.3"/> + <fraction n="0.131793699039672" ref="H"/> + <fraction n="0.535387047414054" ref="C"/> + <fraction n="0.332819253546274" ref="O"/> + </material> + <material name="G4_C" state="solid"> + <MEE unit="eV" value="81"/> + <D unit="g/cm3" value="2"/> + <fraction n="1" ref="C"/> + </material> + <isotope N="27" Z="13" name="Al27"> + <atom unit="g/mole" value="26.9815"/> + </isotope> + <element name="Al"> + <fraction n="1" ref="Al27"/> + </element> + <material name="TPC_endplate_mix" state="solid"> + <MEE unit="eV" value="97.0754229107761"/> + <D unit="g/cm3" value="0.5827515446"/> + <fraction n="0.00953598760814401" ref="C"/> + <fraction n="0.558898138898139" ref="N"/> + <fraction n="0.226789772550668" ref="O"/> + <fraction n="0.00949198949198949" ref="Ar"/> + <fraction n="0.14" ref="Al"/> + <fraction n="0.0096" ref="Cl"/> + <fraction n="0.0433592706" ref="Si"/> + <fraction n="0.00232484085105981" ref="H"/> + </material> + <material name="CarbonFiber" state="solid"> + <MEE unit="eV" value="70.7270877537631"/> + <D unit="g/cm3" value="1.46666666666667"/> + <fraction n="0.794091986922138" ref="C"/> + <fraction n="0.058408571165309" ref="H"/> + <fraction n="0.147499441912553" ref="O"/> + </material> + <material name="G4_GRAPHITE" state="solid"> + <MEE unit="eV" value="78"/> + <D unit="g/cm3" value="2.21"/> + <fraction n="1" ref="C"/> + </material> + <material name="diamond" state="solid"> + <MEE unit="eV" value="81"/> + <D unit="g/cm3" value="3.51"/> + <fraction n="1" ref="C"/> + </material> + <material Z="79" name="G4_Au" state="solid"> + <MEE unit="eV" value="790"/> + <D unit="g/cm3" value="19.32"/> + <atom unit="g/mole" value="196.967"/> + </material> + <material name="G4_POLYETHYLENE" state="solid"> + <MEE unit="eV" value="57.4"/> + <D unit="g/cm3" value="0.94"/> + <fraction n="0.143711" ref="H"/> + <fraction n="0.856289" ref="C"/> + </material> + <isotope N="55" Z="25" name="Mn55"> + <atom unit="g/mole" value="54.938"/> + </isotope> + <element name="Mn"> + <fraction n="1" ref="Mn55"/> + </element> + <material name="Steel235" state="solid"> + <MEE unit="eV" value="285.146562707739"/> + <D unit="g/cm3" value="7.87"/> + <fraction n="0.9843" ref="Fe"/> + <fraction n="0.0017" ref="C"/> + <fraction n="0.014" ref="Mn"/> + </material> + + <comment> materials introduced for the BeamCal</comment> + <material name="TungstenDens24"> + <D value="17.8" unit="g/cm3"/> + <fraction n="0.93" ref="W"/> + <fraction n="0.061" ref="Ni"/> + <fraction n="0.009" ref="Fe"/> + </material> + + <material name="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> + + </materials> diff --git a/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp b/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp new file mode 100644 index 000000000..35bb49b6f --- /dev/null +++ b/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp @@ -0,0 +1,186 @@ +// $Id: $ +//==================================================================== +// Simple tracking detector made from planar sensors that are parallel +// to the z-axis. There are two materials per ladder: one sensitive +// and one support. +//-------------------------------------------------------------------- +// +// Author : F.Gaede +// +//==================================================================== +#include "DD4hep/DetFactoryHelper.h" + +#include "DDRec/Surface.h" + +using namespace DD4hep; +using namespace DD4hep::Geometry; +using namespace DD4hep::DDRec ; +using namespace DDSurfaces ; + +static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { + + xml_det_t x_det = e; + std::string name = x_det.nameStr(); + + // put the whole detector into an assembly + // - should be replaced by an envelope volume ... + + Assembly assembly( name+"_assembly" ); + + DetElement tracker( name, x_det.id() ) ; + + PlacedVolume pv; + + //========= loop over layer elements in xml ====================================== + + for(xml_coll_t c(e, _U(layer) ); c; ++c) { + + xml_comp_t x_layer( c ); + + // child elements: ladder and sensitive + xml_comp_t x_sensitive( x_layer.child( _U(sensitive) )); + xml_comp_t x_ladder( x_layer.child( _U(ladder) )); + + int layer_id = x_layer.id(); + int nLadders = x_layer.attr<double>( "nLadders" ) ; + + double dphi = 2.*M_PI / double(nLadders); + + std::string layername = name+_toString(layer_id,"_layer%d"); + + + // --- create an assembly and DetElement for the layer + + Assembly layer_assembly( "layer_assembly" +_toString(layer_id,"_%d") ); + + DetElement layerDE( tracker , _toString(layer_id,"layer_%d"), x_det.id() ); + + pv = assembly.placeVolume( layer_assembly ); + + pv.addPhysVolID("layer", layer_id ); + + layerDE.setPlacement( pv ) ; + + //-------------------------------- + + double supp_zhalf = x_ladder.length(); + double supp_offset = x_ladder.offset(); + double supp_distance = x_ladder.distance(); + double supp_thickness = x_ladder.thickness(); + double supp_width = x_ladder.width(); + + std::string supp_vis = x_ladder.visStr() ; + std::string supp_matS = x_ladder.materialStr() ; + + double sens_zhalf = x_sensitive.length(); + double sens_offset = x_sensitive.offset(); + double sens_distance = x_sensitive.distance(); + double sens_thickness = x_sensitive.thickness(); + double sens_width = x_sensitive.width(); + + std::string sens_vis = x_sensitive.visStr() ; + std::string sens_matS = x_sensitive.materialStr() ; + + double phi0 = x_layer.phi0() ; + + + //----------------------------------- + + Material supp_mat = lcdd.material( supp_matS ) ; + Material sens_mat = lcdd.material( sens_matS ) ; + + + //------- + Box sens_box( sens_thickness/2., sens_width/2., sens_zhalf ); + Box supp_box( supp_thickness/2., supp_width/2., supp_zhalf ); + + Volume supp_vol( layername+"_supp", supp_box, supp_mat ); + Volume sens_vol( layername+"_sens", sens_box, sens_mat ); + + + // -------- create a measurement plane for the tracking surface attched to the sensitive volume ----- + Vector3D u( 0. , 1. , 0. ) ; + Vector3D v( 0. , 0. , 1. ) ; + Vector3D n( 1. , 0. , 0. ) ; + // Vector3D o( 0. , 0. , 0. ) ; + + // compute the inner and outer thicknesses that need to be assigned to the tracking surface + // depending on wether the support is above or below the sensor + double inner_thickness = ( sens_distance > supp_distance ? ( sens_distance - supp_distance ) + sens_thickness/2 : sens_thickness/2 ) ; + double outer_thickness = ( sens_distance > supp_distance ? sens_thickness/2 : ( supp_distance - sens_distance ) + supp_thickness - sens_thickness/2 ) ; + + VolPlane surf( sens_vol , SurfaceType(SurfaceType::Sensitive) , inner_thickness , outer_thickness , u,v,n ) ; //,o ) ; + + //-------------------------------------------- + + sens.setType("tracker"); + sens_vol.setSensitiveDetector(sens); + + sens_vol.setAttributes( lcdd, x_det.regionStr(), x_det.limitsStr(), sens_vis ); + supp_vol.setAttributes( lcdd, x_det.regionStr(), x_det.limitsStr(), supp_vis ); + + + //--------- loop over ladders --------------------------- + + for(int j=0; j<nLadders; ++j) { + + double phi = phi0 + j * dphi ; + + std::string laddername = layername + _toString(j,"_ladder%d"); + + RotationZYX rot( phi , 0, 0 ) ; + + + // --- place support ----- + double lthick = supp_thickness ; + double radius = supp_distance ; + double offset = supp_offset ; + + pv = layer_assembly.placeVolume( supp_vol,Transform3D( rot, Position( ( radius + lthick/2. ) * cos(phi) - offset * sin( phi ) , + ( radius + lthick/2. ) * sin(phi) + offset * cos( phi ) , + 0. ) )); + + // --- place sensitive ----- + lthick = sens_thickness ; + radius = sens_distance ; + offset = sens_offset ; + + pv = layer_assembly.placeVolume( sens_vol,Transform3D( rot, Position( ( radius + lthick/2. ) * cos(phi) - offset * sin( phi ) , + ( radius + lthick/2. ) * sin(phi) + offset * cos( phi ) , + 0. ) )); + + + + // pv.addPhysVolID("layer", layer_id ).addPhysVolID( "module" , j ).addPhysVolID("sensor", 0 ) ; + pv.addPhysVolID( "module" , j ).addPhysVolID("sensor", 0 ) ; + + + DetElement ladderDE( layerDE , laddername , x_det.id() ); + ladderDE.setPlacement( pv ) ; + + volSurfaceList( ladderDE )->push_back( surf ) ; + + } + + // tracker.setVisAttributes(lcdd, x_det.visStr(),laddervol); + + + // is this needed ?? + layer_assembly->GetShape()->ComputeBBox() ; + + } + + Volume mother = lcdd.pickMotherVolume( tracker ) ; + + pv = mother.placeVolume(assembly); + + pv.addPhysVolID( "system", x_det.id() ).addPhysVolID("side",0 ) ; + + tracker.setPlacement(pv); + + assembly->GetShape()->ComputeBBox() ; + + return tracker; +} + +DECLARE_DETELEMENT(ZPlanarTracker,create_element); -- GitLab