Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • EIC/detectors/athena
  • zwzhao/athena
  • FernandoTA/athena
  • palspeic/athena
4 results
Show changes
Commits on Source (109)
Showing
with 58002 additions and 409 deletions
...@@ -23,3 +23,9 @@ ip6 ...@@ -23,3 +23,9 @@ ip6
*.swp *.swp
fieldmaps fieldmaps
manifest.txt
acts.txt
acts2.txt
materials-map.cbor
...@@ -47,7 +47,7 @@ common:setup: ...@@ -47,7 +47,7 @@ common:setup:
script: script:
- export JUGGLER_DETECTOR="athena" - export JUGGLER_DETECTOR="athena"
- | - |
if [[ "x${CI_PIPELINE_SOURCE}" == "xmerge_request_event" || "$CI_COMMIT_BRANCH" == "master" ]]; then # if [[ "x${CI_PIPELINE_SOURCE}" == "xmerge_request_event" || "$CI_COMMIT_BRANCH" == "master" ]]; then
export JUGGLER_DETECTOR_VERSION="${CI_COMMIT_REF_NAME}" export JUGGLER_DETECTOR_VERSION="${CI_COMMIT_REF_NAME}"
echo "BEAMLINE_CONFIG = ${BEAMLINE_CONFIG}" echo "BEAMLINE_CONFIG = ${BEAMLINE_CONFIG}"
echo "BEAMLINE_CONFIG_VERSION = ${BEAMLINE_CONFIG_VERSION}" echo "BEAMLINE_CONFIG_VERSION = ${BEAMLINE_CONFIG_VERSION}"
...@@ -55,7 +55,7 @@ common:setup: ...@@ -55,7 +55,7 @@ common:setup:
echo "JUGGLER_DETECTOR_VERSION = ${CI_COMMIT_REF_NAME}" echo "JUGGLER_DETECTOR_VERSION = ${CI_COMMIT_REF_NAME}"
echo "JUGGLER_DETECTOR_VERSION=$CI_COMMIT_REF_NAME" >> juggler.env echo "JUGGLER_DETECTOR_VERSION=$CI_COMMIT_REF_NAME" >> juggler.env
echo "JUGGLER_DETECTOR=$JUGGLER_DETECTOR" >> juggler.env echo "JUGGLER_DETECTOR=$JUGGLER_DETECTOR" >> juggler.env
fi #fi
- source setup/bin/env.sh && ./setup/bin/install_common.sh - source setup/bin/env.sh && ./setup/bin/install_common.sh
common:detector: common:detector:
...@@ -63,8 +63,8 @@ common:detector: ...@@ -63,8 +63,8 @@ common:detector:
needs: needs:
- common:setup - common:setup
script: script:
- source .local/bin/env.sh && build_detector.sh #- source .local/bin/env.sh && build_detector.sh
- mkdir_local_data_link sim_output - build_detector.sh
- mkdir -p results - mkdir -p results
- mkdir -p config - mkdir -p config
- mkdir -p doc - mkdir -p doc
...@@ -80,6 +80,8 @@ build:simple: ...@@ -80,6 +80,8 @@ build:simple:
.views: .views:
stage: docs stage: docs
tags:
- phy-scratch
before_script: before_script:
- source .local/bin/env.sh - source .local/bin/env.sh
- env - env
...@@ -107,30 +109,44 @@ dump_geometry: ...@@ -107,30 +109,44 @@ dump_geometry:
- common:detector - common:detector
script: script:
- echo "dumping geometry" - echo "dumping geometry"
## DEBUG
- echo "LD_LIBRARY_PATH - $LD_LIBRARY_PATH"
- echo "PATH - $PATH"
- print_env.sh
## DEBUG
- mkdir -p geo - mkdir -p geo
## subsystem views
- | - |
sed -i -e '/<detectors>/,/<\/detectors>/d' ${DETECTOR_PATH}/compact/tracking_config*.xml
mv ${DETECTOR_PATH}/compact/display_geoviewer.xml ${DETECTOR_PATH}/compact/display.xml mv ${DETECTOR_PATH}/compact/display_geoviewer.xml ${DETECTOR_PATH}/compact/display.xml
mv ${DETECTOR_PATH}/compact/colors_geoviewer.xml ${DETECTOR_PATH}/compact/colors.xml
for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do
echo $xml
geo_name=`basename $xml .xml`_geo.root geo_name=`basename $xml .xml`_geo.root
cp $xml ${DETECTOR_PATH}/geo.xml cp $xml ${DETECTOR_PATH}/geo.xml
dd_web_display --output geo/${geo_name} ${DETECTOR_PATH}/geo.xml dd_web_display --output geo/${geo_name} ${DETECTOR_PATH}/geo.xml
done done
## Lower-resolution display of the pfRICH sensors for global views
- sed -i 's/_default"\/>/_lores"\/>/' ${DETECTOR_PATH}/compact/pfrich.xml
## full geo with downstream beamline ## full geo with downstream beamline
- dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml - dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml
## only central detector geo ## only central detector geo
- sed -i '/forward_ion_beamline/d' ${DETECTOR_PATH}/athena.xml - sed -i '/forward_ion_beamline/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/far_forward/d' ${DETECTOR_PATH}/athena.xml - sed -i '/beampipe_hadron_B0/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/B0_/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/far_forward_offM/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/far_forward_detectors/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/roman_pots/d' ${DETECTOR_PATH}/athena.xml
- sed -i '/inner_vacuum_FF_magnets/d' ${DETECTOR_PATH}/athena.xml
- dd_web_display --output geo/detector_geo.root ${DETECTOR_PATH}/athena.xml - dd_web_display --output geo/detector_geo.root ${DETECTOR_PATH}/athena.xml
## print some useful output ## print some useful output
- | - |
echo "Geometry viewer at:" echo "Geometry viewer at:"
echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all"
echo " - Central detector view at: "
echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all"
for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do
geo_name=`basename $xml .xml`_geo.root geo_name=`basename $xml .xml`_geo.root
echo " - Subsystem view for `basename $xml .xml` at:" echo " - Subsystem view for `basename $xml .xml` at:"
echo " https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/${geo_name}?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" echo " https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/${geo_name}?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all"
done done
detector_documentation: detector_documentation:
...@@ -142,7 +158,7 @@ detector_documentation: ...@@ -142,7 +158,7 @@ detector_documentation:
- bash bin/build_documentation | tee doc/detector.md - bash bin/build_documentation | tee doc/detector.md
#- | #- |
# xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/athena.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee doc/detector.md # xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/athena.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee doc/detector.md
# xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/ip6/ip6_defs.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true # xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/ip6/definitions.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true
# for afile in ${DETECTOR_PATH}/compact/*.xml ; do # for afile in ${DETECTOR_PATH}/compact/*.xml ; do
# xmllint --format --xpath '//comment/text()' ${afile} | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true # xmllint --format --xpath '//comment/text()' ${afile} | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true
# done # done
...@@ -163,7 +179,7 @@ report: ...@@ -163,7 +179,7 @@ report:
- view_20 - view_20
- dump_constants - dump_constants
- dump_geometry - dump_geometry
- convert_to_gdml - dump_gdml
script: script:
- pip3 install jinja2 && ls -lrth - pip3 install jinja2 && ls -lrth
- ./bin/make_images > doc/dawn_views.md - ./bin/make_images > doc/dawn_views.md
...@@ -181,19 +197,30 @@ overlap_check_tgeo: ...@@ -181,19 +197,30 @@ overlap_check_tgeo:
needs: needs:
- ["common:detector"] - ["common:detector"]
script: script:
## disable fibers in ECAL for normal overlap check
- sed -i '/<fiber/,+6d' ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml
- sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward/ZDC_Ecal_WSciFi.xml
- checkOverlaps -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_tgeo.out - checkOverlaps -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_tgeo.out
- echo "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l) overlaps..." - echo "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l) overlaps..."
- if [[ "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi - if [[ "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi
overlap_check_geant4:full: overlap_check_geant4:full_fast:
stage: test stage: test
needs: needs:
- ["common:detector"] - ["common:detector"]
script: script:
## disable fibers in ECAL for normal overlap check
- sed -i '/<fiber/,+6d' ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml
- sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward/ZDC_Ecal_WSciFi.xml
## reduce the number of fibers in Hadron EMCal for overlap check
## not needed, as we are running with a different setup now
#- sed -i 's/radius="EcalEndcapP_FiberRadius"/radius="EcalEndcapP_FiberRadius*10"/' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml
- python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_geant4.out - python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_geant4.out
- echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..." - echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..."
- if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi - if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi
## TODO: add real full overlap check as child pipeline to run on branches only
overlap_check_geant4:inner_detector: overlap_check_geant4:inner_detector:
stage: test stage: test
needs: needs:
...@@ -204,13 +231,19 @@ overlap_check_geant4:inner_detector: ...@@ -204,13 +231,19 @@ overlap_check_geant4:inner_detector:
- echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..." - echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..."
- if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi - if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi
convert_to_gdml: dump_gdml:
stage: test stage: test
needs: needs:
- ["common:detector"] - ["common:detector"]
script: script:
- mkdir -p geo - mkdir -p geo
- python scripts/convert_to_gdml.py --compact ${DETECTOR_PATH}/athena.xml --output geo/athena.gdml - |
python scripts/convert_to_gdml.py --compact ${DETECTOR_PATH}/athena.xml --output geo/athena.gdml
for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do
cp $xml ${DETECTOR_PATH}/geo.xml
gdml_name=`basename $xml .xml`.gdml
python scripts/convert_to_gdml.py --compact ${DETECTOR_PATH}/geo.xml --output geo/${gdml_name}
done
tracking_geometry_debug: tracking_geometry_debug:
stage: test stage: test
...@@ -237,5 +270,5 @@ benchmarks:detector: ...@@ -237,5 +270,5 @@ benchmarks:detector:
project: EIC/benchmarks/detector_benchmarks project: EIC/benchmarks/detector_benchmarks
strategy: depend strategy: depend
needs: needs:
- overlap_check_tgeo - overlap_check_geant4:full_fast
- common:detector - common:detector
cmake_minimum_required(VERSION 3.3 FATAL_ERROR) cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
# CMP0074: find_package() uses <PackageName>_ROOT variables
cmake_policy(SET CMP0074 NEW)
PROJECT(athena PROJECT(athena
VERSION 0.0.1 VERSION 0.0.1
LANGUAGES CXX LANGUAGES CXX
...@@ -6,13 +10,18 @@ PROJECT(athena ...@@ -6,13 +10,18 @@ PROJECT(athena
) )
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
find_package( DD4hep REQUIRED COMPONENTS DDCore DDG4) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
find_package(Acts REQUIRED COMPONENTS Core PluginIdentification PluginTGeo PluginDD4hep )
find_package(fmt)
#find_library(FMT_LIBRARY fmt)
find_package(DD4hep REQUIRED COMPONENTS DDCore DDG4)
find_package(ActsDD4hep)
if(ActsDD4hep_FOUND)
add_compile_definitions(USE_ACTSDD4HEP)
set(ActsDD4hep ActsDD4hep::ActsDD4hep)
else()
find_package(Acts REQUIRED COMPONENTS Core PluginIdentification PluginTGeo PluginDD4hep)
set(ActsDD4hep ActsCore ActsPluginDD4hep)
endif()
find_package(fmt REQUIRED)
#----------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------
set(a_lib_name athena) set(a_lib_name athena)
...@@ -20,15 +29,16 @@ set(a_lib_name athena) ...@@ -20,15 +29,16 @@ set(a_lib_name athena)
dd4hep_configure_output() dd4hep_configure_output()
dd4hep_add_plugin(${a_lib_name} SOURCES dd4hep_add_plugin(${a_lib_name} SOURCES
src/BackwardGEMTracker_geo.cpp
src/BarrelBarDetectorWithSideFrame_geo.cpp src/BarrelBarDetectorWithSideFrame_geo.cpp
src/BarrelCalorimeter_geo.cpp src/BarrelCalorimeter_geo.cpp
src/BarrelCalorimeterHybrid_geo.cpp
src/BarrelCalorimeterInterlayers_geo.cpp src/BarrelCalorimeterInterlayers_geo.cpp
src/BarrelTrackerWithFrame_geo.cpp src/BarrelTrackerWithFrame_geo.cpp
src/CompositeTracker_geo.cpp
src/CylinderTrackerBarrel_geo.cpp src/CylinderTrackerBarrel_geo.cpp
src/DIRC_geo.cpp src/DIRC_geo.cpp
src/DRich_geo.cpp src/DRICH_geo.cpp
src/PFRICH_geo.cpp
src/FileLoader.cpp
src/FieldMapBrBz.cpp src/FieldMapBrBz.cpp
src/GaseousRICH_geo.cpp src/GaseousRICH_geo.cpp
src/GeometryHelpers.cpp src/GeometryHelpers.cpp
...@@ -36,15 +46,15 @@ dd4hep_add_plugin(${a_lib_name} SOURCES ...@@ -36,15 +46,15 @@ dd4hep_add_plugin(${a_lib_name} SOURCES
src/HybridCalorimeter_geo.cpp src/HybridCalorimeter_geo.cpp
src/MRich_geo.cpp src/MRich_geo.cpp
src/PolyhedraEndcapCalorimeter2_geo.cpp src/PolyhedraEndcapCalorimeter2_geo.cpp
src/ScFiCalorimeter_geo.cpp
src/ShashlikCalorimeter_geo.cpp src/ShashlikCalorimeter_geo.cpp
src/SimpleDiskTracker_geo.cpp src/SimpleDiskDetector_geo.cpp
src/SimpleRectangularTracker_geo.cpp
src/SolenoidCoil_geo.cpp src/SolenoidCoil_geo.cpp
src/TrapEndcapTracker_geo.cpp src/TrapEndcapTracker_geo.cpp
USES ActsCore ActsPluginDD4hep USES ${ActsDD4hep}
) )
target_link_libraries(${a_lib_name} target_link_libraries(${a_lib_name}
PUBLIC DD4hep::DDCore DD4hep::DDRec fmt::fmt PUBLIC DD4hep::DDCore DD4hep::DDRec fmt::fmt
) )
#----------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------
...@@ -60,3 +70,8 @@ install(DIRECTORY compact/ ...@@ -60,3 +70,8 @@ install(DIRECTORY compact/
install(FILES athena.xml install(FILES athena.xml
DESTINATION share/${PROJECT_NAME}/ DESTINATION share/${PROJECT_NAME}/
) )
#-----------------------------------------------------------------------------------
# Install the detector calibration files.
install(DIRECTORY calibrations/
DESTINATION share/${PROJECT_NAME}/calibrations
)
...@@ -3,22 +3,34 @@ Overview ...@@ -3,22 +3,34 @@ Overview
The Athena Detector at IP6 for Electron-Ion Collider experiment. The Athena Detector at IP6 for Electron-Ion Collider experiment.
**Detector geometry viewer:** **Detector geometry viewer:**
- [Central detector geometry](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/detector_geo.root?job=report&item=default;1&opt=clipxyz;transp30;zoom100;ROTY0;ROTZ0;trz100;trr0;ctrl;all&) - [Central detector](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/detector_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [Full Detector geometry (including beamline)](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/detector_geo_full.root?job=report&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&) - [Full Detector (including beamline)](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all)
- [Inner detector (without calorimetry)](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/inner_detector_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
<a href="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.pdf?job=report"> - Subsystem views:
<img src="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.png?job=report" width="400px" /> - [Calorimetry](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/calorimeters_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [PID](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/pid_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [dRICH](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/drich_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all)
- [pfRICH](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/pfrich_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom55;ROTY49;ROTZ350;trz0;trr0;ctrl;all&)
- [DIRC](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/dirc_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [ToF](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/tof_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom55;ROTY49;ROTZ350;trz0;trr0;ctrl;all&)
- [Tracking](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/tracking_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [Vertex detector](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/vertex_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all)
- [Far-forward](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/geo/ip6_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all)
<a href="https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/images/view01.pdf?job=report">
<img src="https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/images/view01.png?job=report" width="400px" />
</a> </a>
<br /> <br />
<a href="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01_top.pdf?job=report"> <a href="https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/images/view01_top.pdf?job=report">
<img src="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01_top.png?job=report" width="400px" /> <img src="https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/images/view01_top.png?job=report" width="400px" />
</a> </a>
[Browse latest](https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/browse/images?job=report) [Browse latest](https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/browse/images?job=report)
[Detector views](views/detector_views.md) [Detector views](https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/doc/dawn_views.md?job=report)
[Constants listing](https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/artifacts/master/raw/doc/constants.out?job=report)
Getting Started Getting Started
--------------- ---------------
......
...@@ -33,7 +33,8 @@ ...@@ -33,7 +33,8 @@
The ip6 (or other ip) defines should be included first. The ip6 (or other ip) defines should be included first.
These files have only a define tags. These files have only a define tags.
</documentation> </documentation>
<include ref="ip6/ip6_defs.xml" /> <include ref="ip6/definitions.xml" />
<include ref="ip6/far_forward/fields_275.xml" />
<include ref="compact/definitions.xml" /> <include ref="compact/definitions.xml" />
</define> </define>
...@@ -83,14 +84,6 @@ ...@@ -83,14 +84,6 @@
- and more... - and more...
</documentation> </documentation>
<comment>
Beamline elements
-----------------
</comment>
<include ref="ip6/forward_ion_beamline.xml"/>
<include ref="ip6/beampipe_hadron_B0.xml" />
<include ref="ip6/beampipe.xml" />
<documentation level="5"> <documentation level="5">
## Main magnet ## Main magnet
...@@ -98,81 +91,20 @@ ...@@ -98,81 +91,20 @@
</documentation> </documentation>
<include ref="compact/solenoid.xml"/> <include ref="compact/solenoid.xml"/>
<documentation level="5">
### Tracker subassemblies for ACTS
</documentation>
<detectors>
<detector id="VertexBarrelSubAssembly_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexBarrel" />
</detector>
<detector id="VertexEndcapSubAssembly_ID"
name="VertexEndcapSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexEndcapN" />
<composite name="VertexEndcapP" />
</detector>
<detector id="TrackerBarrelSubAssembly_Inner_ID"
name="TrackerBarrelSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Inner"/>
</detector>
<detector id="TrackerEndcapSubAssembly_Inner_ID"
name="TrackerEndcapSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerEndcapN_Inner"/>
<composite name="TrackerEndcapP_Inner"/>
</detector>
<detector id="TrackerBarrelSubAssembly_Outer_ID"
name="TrackerSubAssembly_Outer"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Outer"/>
<composite name="TrackerEndcapP_Outer"/>
<composite name="TrackerEndcapN_Outer"/>
</detector>
<comment>
TOF disabled for baseline
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TOFSubAssemblyVis">
<composite name="BarrelTOF"/>
<composite name="ForwardTOF"/>
<composite name="BackwardTOF"/>
</detector>
</comment>
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SubAssemblyVis">
<composite name="GEMTrackerEndcapP"/>
<composite name="GEMTrackerEndcapN"/>
</detector>
</detectors>
<documentation level="10"> <documentation level="10">
## Central tracking detectors ## Central tracking detectors
</documentation> </documentation>
<include ref="compact/tracking_config_acadia.xml"/> <!--include ref="compact/tracking_config_acadia.xml"/-->
<!--include ref="compact/tracking_config_canyonlands.xml"/-->
<!--include ref="compact/tracking_config_mgpds.xml"/--> <include ref="compact/tracking_config_deathvalley.xml"/>
<documentation level="10"> <documentation level="10">
### PID detectors ### PID detectors
</documentation> </documentation>
<include ref="compact/pid_config_acadia.xml" /> <!--include ref="compact/pid_config_acadia.xml" /-->
<!--include ref="compact/pid_config_canyonlands.xml" /-->
<include ref="compact/pid_config_deathvalley.xml" />
<documentation level="10"> <documentation level="10">
## Central calorimetry ## Central calorimetry
...@@ -180,74 +112,20 @@ ...@@ -180,74 +112,20 @@
<include ref="compact/ecal.xml"/> <include ref="compact/ecal.xml"/>
<include ref="compact/hcal.xml"/> <include ref="compact/hcal.xml"/>
<documentation level="11">
## Far foward detectors
</documentation>
<include ref="ip6/central_beampipe.xml"/>
<documentation level="11"> <documentation level="11">
## Far foward detectors ## Far foward detectors
</documentation> </documentation>
<include ref="ip6/B0_tracker.xml"/> <include ref="ip6/far_forward.xml"/>
<include ref="ip6/B0_preshower.xml"/>
<include ref="ip6/far_forward_offM_tracker.xml"/>
<include ref="ip6/far_forward_detectors.xml"/>
<include ref="ip6/roman_pots_eRD24_design.xml"/>
<fields> <documentation level="11">
<field name="B0PF_Magnet" type="MultipoleMagnet"> ## Far backward detectors
<position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> </documentation>
<rotation x="0" y="B0PF_RotationAngle" z="0"/> <include ref="ip6/far_backward.xml"/>
<shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/>
<coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/>
<!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
</field>
<field name="B0APF_Magnet" type="MultipoleMagnet">
<position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/>
<rotation x="0" y="B0APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/>
<coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/>
<!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
</field>
<field name="Q1APF_Magnet" type="MultipoleMagnet">
<position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/>
<rotation x="0" y="Q1APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/>
<coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="Q1BPF_Magnet" type="MultipoleMagnet">
<position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/>
<rotation x="0" y="Q1BPF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/>
<coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="Q2PF_Magnet" type="MultipoleMagnet">
<position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/>
<rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/>
<shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/>
<coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B1PF_Magnet" type="MultipoleMagnet">
<position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/>
<rotation x="0" y="B1PF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/>
<coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B1APF_Magnet" type="MultipoleMagnet">
<position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/>
<rotation x="0" y="B1APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/>
<coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B2PF_Magnet" type="MultipoleMagnet">
<position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/>
<rotation x="0" y="B2PF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/>
<coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
</fields>
<comment> <comment>
FB elements FB elements
......
...@@ -52,9 +52,9 @@ parser.add_argument('-t', '--tag', type=str,dest='file_tag', ...@@ -52,9 +52,9 @@ parser.add_argument('-t', '--tag', type=str,dest='file_tag',
help='Output file tag') help='Output file tag')
parser.add_argument('--timeout', type=int, parser.add_argument('--timeout', type=int,
default=60, default=3600,
help='Timeout in seconds') help='Timeout in seconds')
parser.add_argument('passthrough', nargs='*') parser.add_argument('passthrough', nargs='*')
args = parser.parse_args() args = parser.parse_args()
...@@ -71,6 +71,11 @@ args.out_dir = os.path.abspath(args.out_dir) ...@@ -71,6 +71,11 @@ args.out_dir = os.path.abspath(args.out_dir)
args.compact = os.path.abspath(args.compact) args.compact = os.path.abspath(args.compact)
macro = os.path.abspath(macro) macro = os.path.abspath(macro)
# adjust fiber radius to reduce the number of fibers
compact_dir = os.path.dirname(os.path.realpath(args.compact))
ci_ecal = os.path.join(compact_dir, 'compact', 'ci_ecal_scfi.xml')
os.system('sed -i \'s/radius=\"EcalEndcapP_FiberRadius\"/radius=\"EcalEndcapP_FiberRadius*10\"/\' {}'.format(ci_ecal))
prim_file = 'g4_0000.prim' prim_file = 'g4_0000.prim'
dawn_env = os.environ.copy() dawn_env = os.environ.copy()
dawn_env['DAWN_BATCH'] = 'a' dawn_env['DAWN_BATCH'] = 'a'
...@@ -138,6 +143,9 @@ for proc in psutil.process_iter(): ...@@ -138,6 +143,9 @@ for proc in psutil.process_iter():
print('kill {}, generated from {}'.format(pinfo, p.pid)) print('kill {}, generated from {}'.format(pinfo, p.pid))
os.kill(pinfo['pid'], signal.SIGTERM) os.kill(pinfo['pid'], signal.SIGTERM)
# revert the change
os.system('sed -i \'s/radius=\"EcalEndcapP_FiberRadius*10\"/radius=\"EcalEndcapP_FiberRadius\"/\' {}'.format(ci_ecal))
line = b'stderr outputs:\n' line = b'stderr outputs:\n'
while line: while line:
print(line.decode('utf-8'), end='') print(line.decode('utf-8'), end='')
......
...@@ -7,9 +7,15 @@ env = Environment( ...@@ -7,9 +7,15 @@ env = Environment(
autoescape=select_autoescape(['html', 'xml']) autoescape=select_autoescape(['html', 'xml'])
) )
import os
import glob import glob
base_url = "https://eicweb.phy.anl.gov/api/v4/projects/390/jobs/artifacts/master/raw" if "CI_PROJECT_ID" in os.environ:
CI_PROJECT_ID = str(os.environ["CI_PROJECT_ID"])
else:
CI_PROJECT_ID = "473"
base_url = f"https://eicweb.phy.anl.gov/api/v4/projects/{CI_PROJECT_ID}/jobs/artifacts/master/raw"
#images = ["images/view2a.png","images/view2b.png", "images/view1.png"] #images = ["images/view2a.png","images/view2b.png", "images/view1.png"]
images = glob.glob("images/*.png") images = glob.glob("images/*.png")
......
#!/bin/bash
function print_the_help {
echo "USAGE: --ebeam E --pbeam E -c compact.xml"
echo "REQUIRED ARGUMENTS:"
echo " -h|--help Print this message"
echo " --ebeam Electron beam energy (5, 10 or 18)"
echo " --pbeam Ion beam energy (41, 100 or 275)"
echo " -c|--compact Compact file to set beam energy for"
exit
}
EBEAM=
PBEAM=
COMPACT=
while [ $# -gt 0 ]
do
key="$1"
case $key in
-h|--help)
print_the_help
;;
--ebeam)
EBEAM=$2
shift
shift
;;
--pbeam)
PBEAM=$2
shift
shift
;;
-c|--compact)
COMPACT=$2
shift
shift
;;
*) # unknown option
echo "unknown option"
exit 1
;;
esac
done
echo "Setting beam energies to $EBEAM on $PBEAM for $COMPACT"
if [ -z $COMPACT ]; then
echo "Error: no compact file given, use -h for help"
exit 1
fi
if [ -z $EBEAM ]; then
echo "Error: --ebeam argument missing, use -h for help"
exit 1
fi
if [ -z $PBEAM ]; then
echo "Error: --pbeam argument missing, use -h for help"
exit 1
fi
if [[ $PBEAM != "41" && $PBEAM != "100" && $PBEAM != "275" ]]; then
echo "Error: Ion beam energy should be 41, 100, or 275 GeV"
exit 1
fi
if [[ $EBEAM != 5 && $EBEAM != 10 && $EBEAM != 18 ]]; then
echo "Error: Electron beam energy should be 5, 10, or 18 GeV"
exit 1
fi
if [ ! -f ${COMPACT} ]; then
echo "Error: Compact file ${COMPACT} does not exist"
exit 1
fi
sed -i "s?far_forward_fields_.\{2,3\}.xml?far_forward_fields_${PBEAM}.xml?" athena.xml
sed -i "s?far_backward_fields_.\{1,2\}.xml?far_backward_fields_${EBEAM}.xml?" athena.xml
## Calibrations for the ATHENA detector
Calibrations and constants for this ATHENA detector setup. These values are used in the
reconstruction. Each relevant subsystem that requires calibration data should have
its own subdirectory with relevant calibration files, preferably in JSON format.
Note that these calibrations are strongly versioned and tied directy to this specific
detector configuration. Therefore, please do not add an extra layer of versioning in the
file names, but rather only add those calibrations relevant for this particular setup.
{
"ecal_neg_endcap": {
"readout": "module",
"dynamicRange": "20*GeV",
"capacityBitsADC": 14,
"pedestalMean": 100,
"pedestalSigma": 1,
"thresholdValue": 3
},
"hcal_neg_endcap": {
"readout": "tile",
"dynamicRange": "20*MeV",
"capacityBitsADC": 8,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
},
"ecal_pos_endcap": {
"readout": "module",
"dynamicRange": "3*GeV",
"capacityBitsADC": 14,
"pedestalMean": 100,
"pedestalSigma": 0.7,
"thresholdValue": 2
},
"hcal_pos_endcap": {
"readout": "tile",
"dynamicRange": "3.6*GeV",
"capacityBitsADC": 10,
"pedestalMean": 20,
"pedestalSigma": 0.8,
"thresholdValue": 3
},
"ecal_barrel_imaging": {
"readout": "pixel",
"dynamicRange": "3*MeV",
"capacityBitsADC": 13,
"pedestalMean": 100,
"pedestalSigma": 14,
"thresholdValue": 50
},
"ecal_barrel_scfi": {
"readout": "light_guide",
"dynamicRange": "750*MeV",
"capacityBitsADC": 14,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
},
"hcal_barrel": {
"readout": "tile",
"dynamicRange": "20*MeV",
"capacityBitsADC": 8,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
}
}
{
"ecal_neg_endcap": {
"readout": "module",
"dynamicRange": "20*GeV",
"capacityBitsADC": 14,
"pedestalMean": 100,
"pedestalSigma": 1,
"thresholdValue": 3
},
"hcal_neg_endcap": {
"readout": "tile",
"dynamicRange": "20*MeV",
"capacityBitsADC": 8,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
},
"ecal_pos_endcap": {
"readout": "module",
"dynamicRange": "3*GeV",
"capacityBitsADC": 14,
"pedestalMean": 100,
"pedestalSigma": 0.7,
"thresholdValue": 2
},
"hcal_pos_endcap": {
"readout": "tile",
"dynamicRange": "3.6*GeV",
"capacityBitsADC": 10,
"pedestalMean": 20,
"pedestalSigma": 0.8,
"thresholdValue": 3
},
"ecal_barrel_imaging": {
"readout": "pixel",
"dynamicRange": "3*MeV",
"capacityBitsADC": 13,
"pedestalMean": 100,
"pedestalSigma": 14,
"thresholdValue": 50
},
"ecal_barrel_scfi": {
"readout": "light_guide",
"dynamicRange": "750*MeV",
"capacityBitsADC": 14,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
},
"hcal_barrel": {
"readout": "tile",
"dynamicRange": "20*MeV",
"capacityBitsADC": 8,
"pedestalMean": 20,
"pedestalSigma": 0.3,
"thresholdValue": 1
}
}
calo_digi_canyonlands.json
\ No newline at end of file
File added
{
"electron": {
"particle_name": "electron",
"sampling_fraction": 0.1053739677993623,
"sampling_fraction_error": 0.00014385360879111712,
"sampling_fraction_error_img": 7.262477989358573e-05,
"sampling_fraction_error_scfi": 0.0001238835428684493,
"sampling_fraction_img": 0.006008855583640059,
"sampling_fraction_scfi": 0.09940809338992981,
"thrown_energy": 5.000000028019361
}
}
{
"ffi_zdc_ecal": {
"sampling_fraction": 1.0,
"minClusterCenterEdep": "3.*MeV",
"minClusterHitEdep": "0.1*MeV",
"localDistXY": ["50*mm", "50*mm"],
"splitCluster": true
},
"ffi_zdc_hcal": {
"sampling_fraction": 1.0,
"minClusterCenterEdep": "1.*MeV",
"minClusterHitEdep": "0.1*MeV",
"localDistXY": ["200*mm", "200*mm"],
"splitCluster": false
}
}
Source diff could not be displayed: it is too large. Options to address this: view the blob.
<lccdd>
<define>
<constant name="CrystalEndcap_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="CrystalEndcap_rmax" value="EcalEndcapN_rmin"/>
<constant name="CrystalBox_x_length" value="20.0*mm"/>
<constant name="CrystalBox_y_length" value="20.0*mm"/>
<constant name="CrystalBox_z_length" value="200.0*mm"/>
<constant name="CrystalBox_offset" value="0.000001*mm"/>
<constant name="CrystalEndcap_x_pos" value="0.0*m"/>
<constant name="CrystalEndcap_y_pos" value="0.0*m"/>
<constant name="CrystalEndcap_z_pos" value="-EcalEndcapN_zmin"/>
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<comment>Common Generic visualization attributes</comment>
<display>
</display>
<detectors>
<comment>
-------------------------------
Backwards Endcap EM Calorimeter
-------------------------------
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</comment>
<detector id="ECalEndcapN_ID"
name="EcalEndcapN"
type="athena_PolyhedraEndcapCalorimeter2"
reflect="true"
readout="EcalEndcapHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP">
<position x="0" y="0" z="0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapN_zmin"
rmin="EcalEndcapN_rmin"
rmax="TrackerBarrel_rmax" />
<layer repeat="EcalEndcapNLayer1_NRepeat">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapNLayer2_NRepeat">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapNLayer3_NRepeat">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
<comment>
-------------------
Crystal Calorimeter
-------------------
Backward (negative pseudorapidity) angle electron detector
</comment>
<detector
id="CrystalEndcap_ID"
name="ElectronECAL"
type="CrystalCalorimeterEndcap"
readout="CrystalEcalHits"
vis="GreenVis">
<position x="CrystalEndcap_x_pos" y="CrystalEndcap_y_pos" z="CrystalEndcap_z_pos" />
<dimensions rmin="CrystalEndcap_rmin" rmax="CrystalEndcap_rmax" x="CrystalBox_x_length" y="CrystalBox_y_length" z="CrystalBox_z_length" delta="CrystalBox_offset"/>
</detector>
</detectors>
<!-- Definition of the readout segmentation/definition -->
<readouts>
<!--
<readout name="PlaneTrackerHits">
<segmentation type="CartesianGridXY" grid_size_x="20.0*mm" grid_size_y="20.0*mm" />
<id>system:5,module:4,x:32:-16,y:-16</id>
</readout>
-->
<readout name="CrystalEcalHits">
<segmentation type="CartesianGridXY" grid_size_x="CrystalBox_x_length" grid_size_y="CrystalBox_y_length" />
<id>system:8,sector:4,module:20,x:48:-8,y:-8</id>
</readout>
<readout name="EcalEndcapNHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>
...@@ -27,6 +27,10 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -27,6 +27,10 @@ total X0 0.24% per disk layer (4 sectors per disk):
</documentation> </documentation>
<define> <define>
<constant name="CentralTrackerSensor_thickness" value="40*um"/>
<constant name="TrackerCarbon_thickness" value="0.12*mm"/>
<constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/>
<comment> <comment>
Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius. Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
TrackerBarrelSpaceFrame_height must be smaller than {_rmin2 - _rmin1 - Layer_rOffset - 1mm - stave_thickness} TrackerBarrelSpaceFrame_height must be smaller than {_rmin2 - _rmin1 - Layer_rOffset - 1mm - stave_thickness}
...@@ -35,7 +39,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -35,7 +39,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
<constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/> <constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
<constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/> <constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="1.0*cm"/> <constant name="TrackerBarrelSpaceFrame_height" value="1.0*cm"/>
<constant name="TrackerSensor_thickness" value="ITS3Thickness"/> <constant name="TrackerSensor_thickness" value="CentralTrackerSensor_thickness"/>
<constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/> <constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/>
<constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/> <constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/>
...@@ -44,15 +48,13 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -44,15 +48,13 @@ total X0 0.24% per disk layer (4 sectors per disk):
<constant name="TrackerBarrelOuter_rmin1" value="39.3*cm"/> <constant name="TrackerBarrelOuter_rmin1" value="39.3*cm"/>
<constant name="TrackerBarrelOuter_rmin2" value="43.23*cm"/> <constant name="TrackerBarrelOuter_rmin2" value="43.23*cm"/>
<constant name="TrackerBarrelOuter_length1" value="105.0*cm"/> <constant name="TrackerBarrelOuter_length1" value="105.0*cm"/>
<constant name="TrackerBarrelOuter_length2" value="114.0*cm"/> <constant name="TrackerBarrelOuter_length2" value="114.0*cm"/>
<constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_rmin1"/> <constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_rmin1"/>
<constant name="TrackerBarrelOuter_thickness" value="TrackerBarrelOuter_rmin2 - TrackerBarrelOuter_rmin1"/> <constant name="TrackerBarrelOuter_thickness" value="TrackerBarrelOuter_rmin2 - TrackerBarrelOuter_rmin1"/>
<constant name="TrackerBarrelInner_length" value="TrackerBarrelInner_length2+0.5*cm"/>
<constant name="TrackerBarrelInner_length" value="TrackerBarrelInner_length2+1.0*cm"/> <constant name="TrackerBarrelOuter_length" value="TrackerBarrelOuter_length2+0.5*cm"/>
<constant name="TrackerBarrelOuter_length" value="TrackerBarrelOuter_length2+1.0*cm"/>
<comment> <comment>
Here we are assuming the two endcaps (P and N) are symmetric. Here we are assuming the two endcaps (P and N) are symmetric.
...@@ -60,7 +62,6 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -60,7 +62,6 @@ total X0 0.24% per disk layer (4 sectors per disk):
<constant name="TrackerEndcapInner_nLayers" value="1"/> <constant name="TrackerEndcapInner_nLayers" value="1"/>
<constant name="TrackerEndcapOuter_nLayers" value="3"/> <constant name="TrackerEndcapOuter_nLayers" value="3"/>
<constant name="TrackerEndcapLayer_dz" value="2*cm"/> <constant name="TrackerEndcapLayer_dz" value="2*cm"/>
<constant name="TrackerEndcapModule_dz" value="2.5*mm"/>
<constant name="TrackerEndcapInner_zmin" value="49*cm"/> <constant name="TrackerEndcapInner_zmin" value="49*cm"/>
<constant name="TrackerEndcapInner_zmax" value="TrackerEndcapInner_zmin+TrackerEndcapLayer_dz"/> <constant name="TrackerEndcapInner_zmax" value="TrackerEndcapInner_zmin+TrackerEndcapLayer_dz"/>
...@@ -85,32 +86,56 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -85,32 +86,56 @@ total X0 0.24% per disk layer (4 sectors per disk):
<constant name="TrackerEndcapOuter_rmin2" value="4.7*cm"/> <constant name="TrackerEndcapOuter_rmin2" value="4.7*cm"/>
<constant name="TrackerEndcapOuter_rmin3" value="5.91*cm"/> <constant name="TrackerEndcapOuter_rmin3" value="5.91*cm"/>
<constant name="TrackerEndcapInner_rmax1" value="36.26*cm-5.0*mm"/> <constant name="TrackerEndcapInner_rmax1" value="36.26*cm-5.0*mm"/>
<constant name="TrackerEndcapOuter_rmax1" value="43.23*cm"/> <constant name="TrackerEndcapOuter_rmax1" value="43.23*cm"/>
<constant name="TrackerEndcapOuter_rmax2" value="43.23*cm"/> <constant name="TrackerEndcapOuter_rmax2" value="43.23*cm"/>
<constant name="TrackerEndcapOuter_rmax3" value="43.23*cm"/> <constant name="TrackerEndcapOuter_rmax3" value="43.23*cm"/>
<comment> The carbonfiber shell covers the outer 3 disks and intercepts with the diagonal cone at <comment> build the cone from vertex endcap to inner barrel endcap </comment>
TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1 ~ 60cm </comment> <constant name="TrackerSupportCarbon_thickness" value="2*mm"/>
<constant name="TrackerEndcapInnerCone_zmax" value="TrackerEndcapInner_zmin-0.5*cm"/>
<constant name="TrackerEndcapInnerCone_zmin" value="TrackerBarrelInner_length2/2+0.5*cm"/>
<constant name="TrackerEndcapInnerCone_rmin1" value="TrackerBarrelInner_rmin1"/>
<constant name="TrackerEndcapInnerCone_rmin2" value="TrackerEndcapInner_rmax1"/>
<constant name="TrackerEndcapInnerCone_length" value="TrackerEndcapInnerCone_zmax - TrackerEndcapInnerCone_zmin"/>
<constant name="TrackerEndcapInnerConeService_rmin1" value="TrackerEndcapInnerCone_rmin1+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapInnerConeService_rmin2" value="TrackerEndcapInnerCone_rmin2+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapInnerConeService_thickness" value="2.5*mm"/>
<comment> The carbonfiber shell covers the outer 3 disks and intercepts with the diagonal cone at TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1 ~ 60cm </comment>
<constant name="TrackerEndcapOuterShell_rmin" value="TrackerEndcapOuter_rmax3 + 0.5*cm"/>
<constant name="TrackerEndcapOuterShell_zmin" value="TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1+1*cm"/> <constant name="TrackerEndcapOuterShell_zmin" value="TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1+1*cm"/>
<constant name="TrackerEndcapOuterShell_length" value="TrackerEndcapOuter_zmax- TrackerEndcapOuterShell_zmin"/> <constant name="TrackerEndcapOuterShell_length" value="TrackerEndcapOuter_zmax - TrackerEndcapOuterShell_zmin"/>
<constant name="TrackerEndcap_NModules" value="12"/> <comment> build the cone from inner barrel endcap to outer barrel endcap1. For now can not make zmin start at the inner endcap location, will overlap with outer barrel volume </comment>
<!-- <constant name="TrackerEndcapOuterCone_zmax" value="TrackerEndcapOuterShell_zmin-0.2*cm"/> -->
<comment> nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment> <constant name="TrackerEndcapOuterCone_zmin" value="TrackerBarrelOuter_length/2.0+0.1*cm"/>
<constant name="TrackerEndcapOuterCone_zmax" value="TrackerEndcapOuterShell_zmin -0.1*cm"/>
<constant name="TrackerEndcapOuterCone_rmin1" value="TrackerEndcapOuterCone_zmin * TrackerEndcapInner_rmax1 / TrackerEndcapInner_zmin"/>
<!-- <constant name="TrackerEndcapOuterCone_rmin1" value="TrackerEndcapInner_rmax1"/> -->
<constant name="TrackerEndcapOuterCone_rmin2" value="TrackerEndcapOuterShell_rmin"/>
<constant name="TrackerEndcapOuterConeService_rmin1" value="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapOuterConeService_rmin2" value="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness+0.1*mm"/>
<constant name="TrackerEndcapOuterConeService_thickness" value="2*mm"/>
<constant name="TrackerEndcapOuterCone_length" value="TrackerEndcapOuterCone_zmax - TrackerEndcapOuterCone_zmin"/>
<comment> Barrel staves, nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment>
<constant name="TrackerBarrel_StaveTiltAngle" value="5.0*degree"/> <constant name="TrackerBarrel_StaveTiltAngle" value="5.0*degree"/>
<constant name="TrackerBarrelInner_NModules1" value="33"/> <constant name="TrackerBarrelInner_NModules1" value="33"/>
<constant name="TrackerBarrelInner_NModules2" value="36"/> <constant name="TrackerBarrelInner_NModules2" value="36"/>
<constant name="TrackerBarrelOuter_NModules1" value="62"/> <constant name="TrackerBarrelOuter_NModules1" value="62"/>
<constant name="TrackerBarrelOuter_NModules2" value="68"/> <constant name="TrackerBarrelOuter_NModules2" value="68"/>
<comment> endcap panels, with z offset of 2.5mm each panel, and 0.5 degree overlap </comment>
<constant name="TrackerEndcapInnerModOpeningAngle" value="360.0/TrackerEndcap_NModules*degree"/> <constant name="TrackerEndcap_NModules" value="12"/>
<constant name="TrackerEndcapModule_dz" value="2.5*mm"/>
<constant name="TrackerEndcapInnerModOpeningAngle" value="360.0/TrackerEndcap_NModules*degree + 0.5*degree"/>
<constant name="TrackerEndcapInnerMod1_x1" value="2.0*TrackerEndcapInner_rmin1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/> <constant name="TrackerEndcapInnerMod1_x1" value="2.0*TrackerEndcapInner_rmin1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapInnerMod1_x2" value="2.0*TrackerEndcapInner_rmax1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/> <constant name="TrackerEndcapInnerMod1_x2" value="2.0*TrackerEndcapInner_rmax1*sin(TrackerEndcapInnerModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapInnerMod1_y" value="TrackerEndcapInner_rmax1*cos(TrackerEndcapInnerModOpeningAngle/2.0) - TrackerEndcapInner_rmin1"/> <constant name="TrackerEndcapInnerMod1_y" value="TrackerEndcapInner_rmax1*cos(TrackerEndcapInnerModOpeningAngle/2.0) - TrackerEndcapInner_rmin1"/>
<constant name="TrackerEndcapOuterModOpeningAngle" value="30.0*degree"/> <constant name="TrackerEndcapOuterModOpeningAngle" value="360.0/TrackerEndcap_NModules*degree + 0.5*degree"/>
<constant name="TrackerEndcapOuterMod1_x1" value="2.0*TrackerEndcapOuter_rmin1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/> <constant name="TrackerEndcapOuterMod1_x1" value="2.0*TrackerEndcapOuter_rmin1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod1_x2" value="2.0*TrackerEndcapOuter_rmax1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/> <constant name="TrackerEndcapOuterMod1_x2" value="2.0*TrackerEndcapOuter_rmax1*sin(TrackerEndcapOuterModOpeningAngle/2.0)"/>
<constant name="TrackerEndcapOuterMod1_y" value="TrackerEndcapOuter_rmax1*cos(TrackerEndcapOuterModOpeningAngle/2.0) - TrackerEndcapOuter_rmin1"/> <constant name="TrackerEndcapOuterMod1_y" value="TrackerEndcapOuter_rmax1*cos(TrackerEndcapOuterModOpeningAngle/2.0) - TrackerEndcapOuter_rmin1"/>
...@@ -134,7 +159,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -134,7 +159,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
</comment> </comment>
<detector <detector
id="TrackerBarrel_Inner_ID" id="TrackerBarrel_0_ID"
name="TrackerBarrel_Inner" name="TrackerBarrel_Inner"
type="athena_TrackerBarrel" type="athena_TrackerBarrel"
readout="TrackerBarrelHits" readout="TrackerBarrelHits"
...@@ -182,6 +207,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -182,6 +207,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
inner_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset" inner_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness-1.0*mm" outer_r="TrackerBarrelInner_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness-1.0*mm"
z_length="TrackerBarrelInner_length1"/> z_length="TrackerBarrelInner_length1"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelInner_NModules1" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules1" phi0="0.0" rc="TrackerBarrelInner_rmin1" dr="0.0 * mm"/> <rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules1" phi0="0.0" rc="TrackerBarrelInner_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer> </layer>
...@@ -190,27 +216,36 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -190,27 +216,36 @@ total X0 0.24% per disk layer (4 sectors per disk):
inner_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset" inner_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness" outer_r="TrackerBarrelInner_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelInner_thickness"
z_length="TrackerBarrelInner_length2"/> z_length="TrackerBarrelInner_length2"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelInner_NModules2" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules2" phi0="0.0" rc="TrackerBarrelInner_rmin2" dr="0.0 * mm"/> <rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelInner_NModules2" phi0="0.0" rc="TrackerBarrelInner_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer> </layer>
</detector> </detector>
<detector <detector
id="TrackerEndcapP_Inner_ID" id="TrackerEndcapP_0_ID"
name="TrackerEndcapP_Inner" name="TrackerEndcapP_Inner"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="TrackerVis" vis="TrackerVis"
reflect="false"> reflect="false">
<support material="CarbonFiber" name="sup_cylinder" vis="TrackerSupportVis">
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone" <shape type="Cone"
rmin1="TrackerEndcapInner_rmax1-14.0*cm" rmax1="TrackerEndcapInner_rmax1-14.0*cm+0.2*mm" rmin1="TrackerEndcapInnerCone_rmin1" rmax1="TrackerEndcapInnerCone_rmin1 + TrackerSupportCarbon_thickness"
rmin2="TrackerEndcapInner_rmax1" rmax2="TrackerEndcapInner_rmax1+0.2*mm" z="8*cm"/> rmin2="TrackerEndcapInnerCone_rmin2" rmax2="TrackerEndcapInnerCone_rmin2 + TrackerSupportCarbon_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="TrackerEndcapInner_zmin-10.0*cm"/> <position x="0*cm" y="0*cm" z="(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support> </support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapInnerConeService_rmin1" rmax1="TrackerEndcapInnerConeService_rmin1 + TrackerEndcapInnerConeService_thickness"
rmin2="TrackerEndcapInnerConeService_rmin2" rmax2="TrackerEndcapInnerConeService_rmin2 + TrackerEndcapInnerConeService_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/> <trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
...@@ -220,6 +255,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -220,6 +255,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapInner_rmax1" rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_thickness" length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" /> zstart="TrackerEndcapInner_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0" r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="0.0" zstart="0.0"
...@@ -228,21 +264,29 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -228,21 +264,29 @@ total X0 0.24% per disk layer (4 sectors per disk):
</detector> </detector>
<detector <detector
id="TrackerEndcapN_Inner_ID" id="TrackerEndcapN_0_ID"
name="TrackerEndcapN_Inner" name="TrackerEndcapN_Inner"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="TrackerVis" vis="TrackerVis"
reflect="true"> reflect="true">
<support material="CarbonFiber" name="sup_cylinder" vis="TrackerSupportVis"> <support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone" <shape type="Cone"
rmin2="TrackerEndcapInner_rmax1-14.0*cm" rmax2="TrackerEndcapInner_rmax1-14.0*cm+0.2*mm" rmin2="TrackerEndcapInnerCone_rmin1" rmax2="TrackerEndcapInnerCone_rmin1 + TrackerSupportCarbon_thickness"
rmin1="TrackerEndcapInner_rmax1-1.0*cm" rmax1="TrackerEndcapInner_rmax1-1.0*cm+0.2*mm" z="8*cm"/> rmin1="TrackerEndcapInnerCone_rmin2" rmax1="TrackerEndcapInnerCone_rmin2 + TrackerSupportCarbon_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapInner_zmin-10.0*cm)"/> <position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support> </support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapInnerConeService_rmin1" rmax2="TrackerEndcapInnerConeService_rmin1 + TrackerEndcapInnerConeService_thickness"
rmin1="TrackerEndcapInnerConeService_rmin2" rmax1="TrackerEndcapInnerConeService_rmin2 + TrackerEndcapInnerConeService_thickness" z="TrackerEndcapInnerCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapInnerCone_zmax+TrackerEndcapInnerCone_zmin)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/> <trd x1="TrackerEndcapInnerMod1_x1/2.0" x2="TrackerEndcapInnerMod1_x2/2.0" z="TrackerEndcapInnerMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
...@@ -252,6 +296,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -252,6 +296,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapInner_rmax1" rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_thickness" length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" /> zstart="TrackerEndcapInner_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0" r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="0" zstart="0"
...@@ -265,7 +310,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -265,7 +310,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
----------------------------------- -----------------------------------
</comment> </comment>
<detector <detector
id="TrackerBarrel_Outer_ID" id="TrackerBarrel_1_ID"
name="TrackerBarrel_Outer" name="TrackerBarrel_Outer"
type="athena_TrackerBarrel" type="athena_TrackerBarrel"
readout="TrackerBarrelHits" readout="TrackerBarrelHits"
...@@ -313,6 +358,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -313,6 +358,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
inner_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset" inner_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness-1.0*mm" outer_r="TrackerBarrelOuter_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness-1.0*mm"
z_length="TrackerBarrelOuter_length1"/> z_length="TrackerBarrelOuter_length1"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelOuter_NModules1" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules1" phi0="0.0" rc="TrackerBarrelOuter_rmin1" dr="0.0 * mm"/> <rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules1" phi0="0.0" rc="TrackerBarrelOuter_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer> </layer>
...@@ -321,36 +367,55 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -321,36 +367,55 @@ total X0 0.24% per disk layer (4 sectors per disk):
inner_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset" inner_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness" outer_r="TrackerBarrelOuter_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelOuter_thickness"
z_length="TrackerBarrelOuter_length2"/> z_length="TrackerBarrelOuter_length2"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*TrackerBarrelOuter_NModules2" bins1="100" />
<rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules2" phi0="0.0" rc="TrackerBarrelOuter_rmin2" dr="0.0 * mm"/> <rphi_layout phi_tilt="TrackerBarrel_StaveTiltAngle" nphi="TrackerBarrelOuter_NModules2" phi0="0.0" rc="TrackerBarrelOuter_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer> </layer>
</detector> </detector>
<detector <detector
id="TrackerEndcapP_Outer_ID" id="TrackerEndcapP_1_ID"
name="TrackerEndcapP_Outer" name="TrackerEndcapP_Outer"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="TrackerVis" vis="TrackerVis"
reflect="false"> reflect="false">
<support vis="TrackerSupportVis" material="CarbonFiber"
rmin="TrackerEndcapOuter_rmax3+1.0*mm" <support vis="TrackerSupportVis" material="CarbonFiber" name="sup_cylinder"
rmin="TrackerEndcapOuterShell_rmin"
thickness="TrackerSupportCarbon_thickness" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<support vis="TrackerSupportVis" material="Aluminum" name="sup_cylinder_service"
rmin="TrackerEndcapOuterShell_rmin+1.0*mm+TrackerSupportCarbon_thickness"
thickness="2.0*mm" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" /> thickness="2.0*mm" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapOuterCone_rmin1" rmax1="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness"
rmin2="TrackerEndcapOuterCone_rmin2" rmax2="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="TrackerEndcapOuterConeService_rmin1" rmax1="TrackerEndcapOuterConeService_rmin1+TrackerEndcapOuterConeService_thickness"
rmin2="TrackerEndcapOuterConeService_rmin2" rmax2="TrackerEndcapOuterConeService_rmin2+TrackerEndcapOuterConeService_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/> <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<module name="Module2" vis="AnlProcess_Blue"> <module name="Module2" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/> <trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<module name="Module3" vis="AnlProcess_Blue"> <module name="Module3" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/> <trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
...@@ -360,6 +425,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -360,6 +425,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax1" rmax="TrackerEndcapOuter_rmax1"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin1" /> zstart="TrackerEndcapOuter_zmin1" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0" r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -371,6 +437,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -371,6 +437,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax2" rmax="TrackerEndcapOuter_rmax2"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin2" /> zstart="TrackerEndcapOuter_zmin2" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0" r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -382,6 +449,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -382,6 +449,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax3" rmax="TrackerEndcapOuter_rmax3"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin3" /> zstart="TrackerEndcapOuter_zmin3" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0" r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -390,34 +458,50 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -390,34 +458,50 @@ total X0 0.24% per disk layer (4 sectors per disk):
</detector> </detector>
<detector <detector
id="TrackerEndcapN_Outer_ID" id="TrackerEndcapN_1_ID"
name="TrackerEndcapN_Outer" name="TrackerEndcapN_Outer"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="TrackerVis" vis="TrackerVis"
reflect="true"> reflect="true">
<support material="CarbonFiber" name="sup_cylinder" vis="TrackerSupportVis"
rmin="TrackerEndcapOuter_rmax3+1.0*mm" <support vis="TrackerSupportVis" material="CarbonFiber" name="sup_cylinder"
thickness="2.0*mm" rmin="TrackerEndcapOuterShell_rmin"
length="TrackerEndcapOuterShell_length" thickness="TrackerSupportCarbon_thickness" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
zstart="TrackerEndcapOuterShell_zmin"/> <support vis="TrackerSupportVis" material="Aluminum" name="sup_cylinder_service"
rmin="TrackerEndcapOuterShell_rmin+1.0*mm+TrackerSupportCarbon_thickness"
thickness="2.0*mm" length="TrackerEndcapOuterShell_length" zstart="TrackerEndcapOuterShell_zmin" />
<comment>the cone can not be reflected. need to flip z explicitly</comment>
<support material="CarbonFiber" name="sup_cone" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapOuterCone_rmin1" rmax2="TrackerEndcapOuterCone_rmin1+TrackerSupportCarbon_thickness"
rmin1="TrackerEndcapOuterCone_rmin2" rmax1="TrackerEndcapOuterCone_rmin2+TrackerSupportCarbon_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<support material="Aluminum" name="sup_cone_service" vis="TrackerSupportVis">
<shape type="Cone"
rmin2="TrackerEndcapOuterConeService_rmin1" rmax2="TrackerEndcapOuterConeService_rmin1+TrackerEndcapOuterConeService_thickness"
rmin1="TrackerEndcapOuterConeService_rmin2" rmax1="TrackerEndcapOuterConeService_rmin2+TrackerEndcapOuterConeService_thickness" z="TrackerEndcapOuterCone_length/2.0"/>
<position x="0*cm" y="0*cm" z="-1.0*(TrackerEndcapOuterCone_zmin+TrackerEndcapOuterCone_zmax)/2.0"/>
</support>
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/> <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<module name="Module2" vis="AnlProcess_Blue"> <module name="Module2" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/> <trd x1="TrackerEndcapOuterMod2_x1/2.0" x2="TrackerEndcapOuterMod2_x2/2.0" z="TrackerEndcapOuterMod2_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<module name="Module3" vis="AnlProcess_Blue"> <module name="Module3" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/> <trd x1="TrackerEndcapOuterMod3_x1/2.0" x2="TrackerEndcapOuterMod3_x2/2.0" z="TrackerEndcapOuterMod3_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="CentralTrackerSensor_thickness" material="Silicon" sensitive="true"/>
<module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
...@@ -427,6 +511,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -427,6 +511,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax1" rmax="TrackerEndcapOuter_rmax1"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin1" /> zstart="TrackerEndcapOuter_zmin1" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0" r="TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -438,6 +523,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -438,6 +523,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax2" rmax="TrackerEndcapOuter_rmax2"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin2" /> zstart="TrackerEndcapOuter_zmin2" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0" r="TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -449,6 +535,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -449,6 +535,7 @@ total X0 0.24% per disk layer (4 sectors per disk):
rmax="TrackerEndcapOuter_rmax3" rmax="TrackerEndcapOuter_rmax3"
length="TrackerEndcapOuterLayer_thickness" length="TrackerEndcapOuterLayer_thickness"
zstart="TrackerEndcapOuter_zmin3" /> zstart="TrackerEndcapOuter_zmin3" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*TrackerEndcap_NModules" bins1="256"/>
<ring vis="TrackerVis" <ring vis="TrackerVis"
r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0" r="TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart="0.0*mm" zstart="0.0*mm"
...@@ -461,11 +548,11 @@ total X0 0.24% per disk layer (4 sectors per disk): ...@@ -461,11 +548,11 @@ total X0 0.24% per disk layer (4 sectors per disk):
<readouts> <readouts>
<readout name="TrackerBarrelHits"> <readout name="TrackerBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" /> <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-14,y:-18</id> <id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout> </readout>
<readout name="TrackerEndcapHits"> <readout name="TrackerEndcapHits">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" /> <segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,z:-16</id> <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout> </readout>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<comment>
Master tracker parameters
Central Tracking region consists of:
|----------------------------------------------------------------------------|
| | OuterBarrel | |
| |--------------------------------------------------------| |
| | | MedialBarrel | | |
| | |------------------------------------| | |
| | | | InnerBarrel | | | |
| | | |----------------| | | |
| Outer | Medial | Inner | Vertex Tracker | Inner | Medial | Outer |
| EndcapN | EndcapN | EndcapN | Vertex Tracker | EndcapP | EndcapP | EndcapP |
|----------------------------------------------------------------------------|
^ ^
CentralTrackingRegionN_zmax CentralTrackingRegionP_zmax
</comment>
<define>
<comment> Inner tracker setup </comment>
<constant name="InnerTrackerBarrel_rmin" value="13.38*cm"/>
<constant name="InnerTrackerBarrel_offset" value="4.62*cm"/>
<constant name="InnerTrackerBarrel_count" value="2"/>
<constant name="InnerTrackerBarrelMod_width" value="4.*cm"/>
<constant name="InnerTrackerBarrelCone_zmin" value="16.8*cm"/>
<constant name="InnerTrackerBarrelCone_zmax" value="24.54*cm"/>
<constant name="InnerTrackerEndcap_zmin" value="25*cm"/>
<constant name="InnerTrackerEndcap_rmin" value="Beampipe_rmax + 50*um"/>
<constant name="InnerTrackerEndcap_offset" value="24*cm"/>
<constant name="InnerTrackerEndcap_count" value="2"/>
<comment> Medial tracker setup </comment>
<constant name="MedialTrackerBarrel_rmin" value="47.72*cm"/>
<constant name="MedialTrackerBarrel_offset" value="1.85*cm"/>
<constant name="MedialTrackerBarrel_count" value="2"/>
<constant name="MedialTrackerEndcap_zmin" value="73*cm"/>
<constant name="MedialTrackerEndcap_offset" value="0*cm"/>
<constant name="MedialTrackerEndcap_count" value="1"/>
<constant name="MedialTrackerEndcapP_rmin" value="Beampipe_rmax + 3*mm"/>
<constant name="MedialTrackerEndcapN_rmin" value="InnerTrackerEndcap_rmin"/>
<comment> Outer tracker setup </comment>
<constant name="OuterTrackerBarrel_rmin" value="75.61*cm"/>
<constant name="OuterTrackerBarrel_offset" value="1.85*cm"/>
<constant name="OuterTrackerBarrel_count" value="2"/>
<constant name="OuterTrackerEndcapP_zmin" value="103.67*cm"/>
<constant name="OuterTrackerEndcapP_offset" value="30.66*cm"/>
<constant name="OuterTrackerEndcapP_count" value="3"/>
<constant name="OuterTrackerEndcapN_zmin" value="109*cm"/>
<constant name="OuterTrackerEndcapN_offset" value="36.00*cm"/>
<constant name="OuterTrackerEndcapN_count" value="2"/>
<comment> Gem disk setup.
Note: some GEM disk z-positions are moved slightly (below in the parametrization)
to avoid vertical overlaps with the silicon disks (which is not allowed by ACTS).
@FIXME
</comment>
<constant name="GEMEndcapPDisk1_zmin" value="103*cm"/>
<constant name="GEMEndcapPDisk2_zmin" value="164.5"/>
<constant name="GEMEndcapPDisk3_zmin" value="ForwardTrackingRegion_zmin + 2*cm"/>
<constant name="GEMEndcapP_count" value="3"/>
<constant name="GEMEndcapN_zmin" value="103*cm"/>
<constant name="GEMEndcapN_offset" value="41.5*cm"/>
<constant name="GEMEndcapN_count" value="2"/>
<comment> Silicon tracker parameters </comment>
<constant name="SiTrackerBarrelSpaceFrameCF_thickness" value="0.12*mm"/>
<constant name="SiTrackerBarrelSpaceFrame_height" value="1.0*cm"/>
<constant name="SiTrackerEndcapAl_thickness" value="0.15*mm"/>
<constant name="SiTrackerEndcapCF_thickness" value="0.12*mm"/>
<constant name="SiTrackerEndcapMod_count" value="36"/>
<constant name="SiTrackerEndcapMod_dz" value="0" />
<constant name="SiTrackerEndcapMod_overlap" value="0"/>
<constant name="SiTrackerSensor_thickness" value="40*um"/>
<constant name="SiTrackerCyl_rmin" value="43.23" />
<constant name="SiTrackerServiceConeAl_thickness" value="2.5*mm" />
<constant name="SiTrackerServiceCylAl_thickness" value="2.5*mm" />
<constant name="SiTrackerSupportConeCF_thickness" value="2*mm" />
<constant name="SiTrackerSupportCylCF_thickness" value="2*mm" />
<comment> MMGAS tracker parameters </comment>
<constant name="MMKaptonOverlay_thickness" value="50*um"/>
<constant name="MMCuGround_thickness" value="1.58*um"/>
<constant name="MMPCB_thickness" value="100*um"/>
<constant name="MMCuStrip_thickness" value="12*um"/>
<constant name="MMKaptonStrip_thickness" value="75*um"/>
<constant name="MMResistiveStrip_thickness" value="128*um"/>
<constant name="MMGas_thickness" value="20*um"/>
<constant name="MMMesh_thickness" value="18*um"/>
<constant name="MMGasGap_thickness" value="3000*um"/>
<constant name="MMDriftCuElectrode_thickness" value="5*um"/>
<constant name="MMDriftKapton_thickness" value="250*um"/>
<constant name="MMDriftCuGround_thickness" value="0.41*um"/>
<comment> GEM tracker parameters </comment>
<constant name="GEMEndcapMod_count" value="12"/>
<constant name="GEMFrame_thickness" value="13.0*mm"/>
<constant name="GEMFrameBotEdge_width" value="10.0*mm"/>
<constant name="GEMFrameTopEdge_width" value="50.0*mm"/>
<constant name="GEMFrameSideEdge_width" value="10.0*mm"/>
<constant name="GEMSpoke_thickness" value="1.0*mm"/>
<constant name="GEMSpoke_width" value="GEMFrameSideEdge_width"/>
<comment> Account for the fact that GEMs have holes, so they are not solid volumes </comment>
<constant name="GEMAreaFactor" value="0.80" />
<comment> GEM layers </comment>
<constant name="GEMMylar_thickness" value="25.0*um"/>
<constant name="GEMGas_thickness" value="2.0*mm"/>
<constant name="GEMDriftRegion_thickness" value="3.0*mm"/>
<constant name="GEMKapton_thickness" value="50*um"/>
<constant name="GEMCuFoil_thickness" value="10*um"/>
<constant name="GEMCuElectrode_thickness" value="5.0*um"/>
</define>
<documentation>
## Inner silicon tracker barrel
### Silicon Tracker
#### Some references:
- With some added info on ITS3 chip from https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
To be used as standin until we get more detailed specs from the working group on the tracker.
- https://wiki.bnl.gov/athena/index.php/Tracking
#### ITS3 sensors
ITS3 sensor thickness:
- 40um, pixel size: 10um (segmentation)
- total X0 0.55% per barrel layer:
- 0.35 mm aluminum ~ 0.4% X0.
- 2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
total X0 0.24% per disk layer (4 sectors per disk):
- 0.15 mm aluminum ~ 0.16% X0.
- 1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
</documentation>
<define>
<constant name="InnerTrackerBarrelMod1_rmin" value="InnerTrackerBarrel_rmin" />
<constant name="InnerTrackerBarrelMod2_rmin" value="InnerTrackerBarrelMod1_rmin + 1 * InnerTrackerBarrel_offset" />
<constant name="InnerTrackerBarrelCone_length" value="InnerTrackerBarrelCone_zmax - InnerTrackerBarrelCone_zmin" />
<constant name="InnerTrackerBarrelCone_z" value="(InnerTrackerBarrelCone_zmax + InnerTrackerBarrelCone_zmin)/2" />
<constant name="InnerTrackerBarrelCone_thickness" value="SiTrackerSupportConeCF_thickness + SiTrackerServiceConeAl_thickness" />
<comment> Shorten Module (with non-zero thickness!) to avoid overlaps with support cone</comment>
<constant name="InnerTrackerBarrelMod1_length" value="2 * InnerTrackerBarrelMod1_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" />
<constant name="InnerTrackerBarrelMod2_length" value="2 * InnerTrackerBarrelMod2_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" />
<constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerBarrelServiceCone_rmax2" value="InnerTrackerBarrelServiceCone_rmin2 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerBarrelSupportCone_rmin1" value="InnerTrackerBarrelServiceCone_rmax1" />
<constant name="InnerTrackerBarrelSupportCone_rmax1" value="InnerTrackerBarrelSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerBarrelSupportCone_rmin2" value="InnerTrackerBarrelServiceCone_rmax2" />
<constant name="InnerTrackerBarrelSupportCone_rmax2" value="InnerTrackerBarrelSupportCone_rmin2 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerBarrelLayer1_length" value="InnerTrackerBarrelMod1_length + 1*um" />
<constant name="InnerTrackerBarrelLayer2_length" value="InnerTrackerBarrelMod2_length + 1*um" />
<constant name="InnerTrackerBarrelLayer_thickness" value="1.1*cm" />
<comment> Place asymmetrically in the layer (module sits near the bottom). </comment>
<constant name="InnerTrackerBarrelLayer1_rmin" value="InnerTrackerBarrelMod1_rmin - InnerTrackerBarrelLayer_thickness / 25" />
<constant name="InnerTrackerBarrelLayer2_rmin" value="InnerTrackerBarrelMod2_rmin - InnerTrackerBarrelLayer_thickness / 25" />
<constant name="InnerTrackerBarrelLayer1_rmax" value="InnerTrackerBarrelLayer1_rmin + InnerTrackerBarrelLayer_thickness" />
<constant name="InnerTrackerBarrelLayer2_rmax" value="InnerTrackerBarrelLayer2_rmin + InnerTrackerBarrelLayer_thickness" />
<constant name="InnerTrackerBarrelEnvelope_length" value="2 * InnerTrackerBarrelCone_zmax" />
<constant name="InnerTrackerBarrelEnvelope_rmin" value="VertexTrackingRegion_rmax" />
<constant name="InnerTrackerBarrelEnvelope_rmax" value="InnerTrackerBarrelLayer2_rmax" />
<comment> Barrel staves, nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R) </comment>
<comment> (rounded up by 2 to avoid holes)</comment>
<constant name="InnerTrackerBarrelModTilt_angle" value="3.0*degree"/>
<constant name="InnerTrackerBarrelMod1_count" value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod1_rmin))+2"/>
<constant name="InnerTrackerBarrelMod2_count" value="floor(180.*degree/asin(InnerTrackerBarrelMod_width*cos(InnerTrackerBarrelModTilt_angle)/2/InnerTrackerBarrelMod2_rmin))+2"/>
</define>
<detectors>
<detector
id="TrackerBarrel_0_ID"
name="InnerTrackerBarrel"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="InnerTrackerBarrelEnvelope_rmin"
rmax="InnerTrackerBarrelEnvelope_rmax"
length="InnerTrackerBarrelEnvelope_length"/>
<support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelServiceCone_rmin1"
rmax1="InnerTrackerBarrelServiceCone_rmax1"
rmin2="InnerTrackerBarrelServiceCone_rmin2"
rmax2="InnerTrackerBarrelServiceCone_rmax2"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelSupportCone_rmin1"
rmax1="InnerTrackerBarrelSupportCone_rmax1"
rmin2="InnerTrackerBarrelSupportCone_rmin2"
rmax2="InnerTrackerBarrelSupportCone_rmax2"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerBarrelCone_z" />
</support>
<support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelServiceCone_rmin2"
rmax1="InnerTrackerBarrelServiceCone_rmax2"
rmin2="InnerTrackerBarrelServiceCone_rmin1"
rmax2="InnerTrackerBarrelServiceCone_rmax1"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerBarrelSupportCone_rmin2"
rmax1="InnerTrackerBarrelSupportCone_rmax2"
rmin2="InnerTrackerBarrelSupportCone_rmin1"
rmax2="InnerTrackerBarrelSupportCone_rmax1"
z="InnerTrackerBarrelCone_length/2"/>
<position x="0*cm" y="0*cm" z="-InnerTrackerBarrelCone_z" />
</support>
<comment>
Tracker Barrel Modules
</comment>
<module name="InnerTrackerBarrel_Mod1" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="InnerTrackerBarrelMod_width"
height="SiTrackerBarrelSpaceFrame_height"
length="InnerTrackerBarrelMod1_length"
thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
<module_component name="silicon"
width="InnerTrackerBarrelMod_width"
length="InnerTrackerBarrelMod1_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod1_length" thickness="0.4*mm" vis="TrackerServiceVis"/>
</module>
<module name="InnerTrackerBarrel_Mod2" vis="TrackerModuleVis">
<frame material="CarbonFiber" vis="TrackerSupportVis"
width="InnerTrackerBarrelMod_width"
height="SiTrackerBarrelSpaceFrame_height"
length="InnerTrackerBarrelMod2_length"
thickness="SiTrackerBarrelSpaceFrameCF_thickness" />
<module_component name="silicon"
width="InnerTrackerBarrelMod_width"
length="InnerTrackerBarrelMod2_length" thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
<module_component name="aluminum1" material="Aluminum" sensitive="false"
width="InnerTrackerBarrelMod_width" length="InnerTrackerBarrelMod2_length" thickness="0.4*mm" vis="TrackerServiceVis" />
</module>
<layer module="InnerTrackerBarrel_Mod1" id="1" vis="TrackerLayerVis">
<barrel_envelope
inner_r="InnerTrackerBarrelLayer1_rmin"
outer_r="InnerTrackerBarrelLayer1_rmax"
z_length="InnerTrackerBarrelLayer1_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod1_count" bins1="100" />
<rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod1_count" phi0="0.0" rc="InnerTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="InnerTrackerBarrel_Mod2" id="2" vis="TrackerLayerVis">
<barrel_envelope
inner_r="InnerTrackerBarrelLayer2_rmin"
outer_r="InnerTrackerBarrelLayer2_rmax"
z_length="InnerTrackerBarrelLayer2_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="100*InnerTrackerBarrelMod2_count" bins1="100" />
<rphi_layout phi_tilt="InnerTrackerBarrelModTilt_angle" nphi="InnerTrackerBarrelMod2_count" phi0="0.0" rc="InnerTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Inner silicon tracker disks, symmetric between N and P
</documentation>
<define>
<comment> Global Si endcap variables </comment>
<constant name="SiTrackerEndcapMod_thickness" value="SiTrackerEndcapCF_thickness + SiTrackerEndcapAl_thickness + SiTrackerSensor_thickness" />
<constant name="SiTrackerEndcapMod_angle" value="360.0*degree / SiTrackerEndcapMod_count * (1 + SiTrackerEndcapMod_overlap)" />
<constant name="SiTrackerEndcapLayer_thickness" value="SiTrackerEndcapMod_thickness + 2 * SiTrackerEndcapMod_dz + 1*um" />
<constant name="SiTrackerServiceCyl_rmin" value="SiTrackerCyl_rmin"/>
<constant name="SiTrackerServiceCyl_rmax" value="SiTrackerServiceCyl_rmin + SiTrackerServiceCylAl_thickness"/>
<constant name="SiTrackerSupportCyl_rmin" value="SiTrackerServiceCyl_rmax"/>
<constant name="SiTrackerSupportCyl_rmax" value="SiTrackerSupportCyl_rmin + SiTrackerSupportCylCF_thickness"/>
<comment> Inner Si endcap setup </comment>
<constant name="InnerTrackerEndcapMod1_zmin" value="InnerTrackerEndcap_zmin" />
<constant name="InnerTrackerEndcapMod1_rmin" value="InnerTrackerEndcap_rmin" />
<constant name="InnerTrackerEndcapMod1_rmax" value="min(InnerTrackerEndcapMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="InnerTrackerEndcapMod1_x1" value="2 * InnerTrackerEndcapMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod1_x2" value="2 * InnerTrackerEndcapMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod1_y" value="InnerTrackerEndcapMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod1_rmin" />
<constant name="InnerTrackerEndcapMod2_zmin" value="InnerTrackerEndcapMod1_zmin + 1 * InnerTrackerEndcap_offset" />
<constant name="InnerTrackerEndcapMod2_rmin" value="InnerTrackerEndcap_rmin" />
<constant name="InnerTrackerEndcapMod2_rmax" value="min(InnerTrackerEndcapMod2_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="InnerTrackerEndcapMod2_x1" value="2 * InnerTrackerEndcapMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod2_x2" value="2 * InnerTrackerEndcapMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="InnerTrackerEndcapMod2_y" value="InnerTrackerEndcapMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod2_rmin" />
<constant name="InnerTrackerEndcapLayer1_rmin" value="InnerTrackerEndcapMod1_rmin - 1*um" />
<constant name="InnerTrackerEndcapLayer1_rmax" value="InnerTrackerEndcapMod1_rmax + 1*um" />
<constant name="InnerTrackerEndcapLayer1_zmin" value="InnerTrackerEndcapMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="InnerTrackerEndcapLayer2_rmin" value="InnerTrackerEndcapMod2_rmin - 1*um" />
<constant name="InnerTrackerEndcapLayer2_rmax" value="InnerTrackerEndcapMod2_rmax + 1*um" />
<constant name="InnerTrackerEndcapLayer2_zmin" value="InnerTrackerEndcapMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="InnerTrackerEndcapCone_zmin" value="InnerTrackerBarrelCone_zmax" />
<constant name="InnerTrackerEndcapServiceCone_rmin1" value="InnerTrackerEndcapCone_zmin * CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapServiceCone_rmax1" value="InnerTrackerEndcapServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" />
<constant name="InnerTrackerEndcapServiceCone_rmin2" value="SiTrackerServiceCyl_rmin" />
<constant name="InnerTrackerEndcapServiceCone_rmax2" value="SiTrackerServiceCyl_rmax" />
<constant name="InnerTrackerEndcapCone_zmax" value="InnerTrackerEndcapServiceCone_rmin2 / CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapCone_z" value="(InnerTrackerEndcapCone_zmax + InnerTrackerEndcapCone_zmin)/2" />
<constant name="InnerTrackerEndcapCone_length" value="InnerTrackerEndcapCone_zmax - InnerTrackerEndcapCone_zmin" />
<constant name="InnerTrackerEndcapSupportCone_rmin1" value="InnerTrackerEndcapServiceCone_rmax1" />
<constant name="InnerTrackerEndcapSupportCone_rmax1" value="InnerTrackerEndcapSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" />
<constant name="InnerTrackerEndcapSupportCone_rmin2" value="SiTrackerSupportCyl_rmin" />
<constant name="InnerTrackerEndcapSupportCone_rmax2" value="SiTrackerSupportCyl_rmax" />
<comment> The tracker endcap ends at the same place as the medial tracker barrel that sits around it </comment>
<constant name="InnerTrackerEndcap_zmax" value="MedialTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
<constant name="InnerTrackerEndcapCyl_zmin" value="InnerTrackerEndcapCone_zmax" />
<constant name="InnerTrackerEndcapCyl_zmax" value="InnerTrackerEndcap_zmax" />
<constant name="InnerTrackerEndcapCyl_z" value="(InnerTrackerEndcapCyl_zmin + InnerTrackerEndcapCyl_zmax)/2" />
<constant name="InnerTrackerEndcapCyl_length" value="InnerTrackerEndcapCyl_zmax - InnerTrackerEndcapCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_0_ID"
name="InnerTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits1"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cone_pos" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapServiceCone_rmin1"
rmax1="InnerTrackerEndcapServiceCone_rmax1"
rmin2="InnerTrackerEndcapServiceCone_rmin2"
rmax2="InnerTrackerEndcapServiceCone_rmax2"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_pos" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapSupportCone_rmin1"
rmax1="InnerTrackerEndcapSupportCone_rmax1"
rmin2="InnerTrackerEndcapSupportCone_rmin2"
rmax2="InnerTrackerEndcapSupportCone_rmax2"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="InnerTrackerEndcapCone_z" />
</support>
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer1_rmin"
rmax="InnerTrackerEndcapLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer2_rmin"
rmax="InnerTrackerEndcapLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
<detector
id="TrackerEndcapN_0_ID"
name="InnerTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits2"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cone_neg" vis="TrackerServiceVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapServiceCone_rmin2"
rmax1="InnerTrackerEndcapServiceCone_rmax2"
rmin2="InnerTrackerEndcapServiceCone_rmin1"
rmax2="InnerTrackerEndcapServiceCone_rmax1"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
</support>
<support material="CarbonFiber" name="sup_cone_neg" vis="TrackerSupportVis">
<shape type="Cone"
rmin1="InnerTrackerEndcapSupportCone_rmin2"
rmax1="InnerTrackerEndcapSupportCone_rmax2"
rmin2="InnerTrackerEndcapSupportCone_rmin1"
rmax2="InnerTrackerEndcapSupportCone_rmax1"
z="InnerTrackerEndcapCone_length/2"/>
<position x="0*cm" y="0*cm" z="-1*InnerTrackerEndcapCone_z" />
</support>
<support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="InnerTrackerEndcapCyl_length"
zstart="InnerTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod1_x1/2" x2="InnerTrackerEndcapMod1_x2/2" z="InnerTrackerEndcapMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="InnerTrackerEndcapMod2_x1/2" x2="InnerTrackerEndcapMod2_x2/2" z="InnerTrackerEndcapMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer1_rmin"
rmax="InnerTrackerEndcapLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod1_rmin + InnerTrackerEndcapMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="InnerTrackerEndcapLayer2_rmin"
rmax="InnerTrackerEndcapLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="InnerTrackerEndcapLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="InnerTrackerEndcapMod2_rmin + InnerTrackerEndcapMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
</detectors>
<documentation>
## Medial barrel tracker (MMGAS)
</documentation>
<define>
<comment> Global MMGAS variables </comment>
<constant
name="MMTrackerBarrelMod_thickness"
value="MMKaptonOverlay_thickness + MMCuGround_thickness + MMPCB_thickness
+ MMCuStrip_thickness + MMKaptonStrip_thickness + MMResistiveStrip_thickness
+ MMGas_thickness + MMMesh_thickness + MMGasGap_thickness
+ MMDriftCuElectrode_thickness + MMDriftKapton_thickness
+ MMDriftCuGround_thickness" />
<comment> Medial barrel implementation </comment>
<comment> The value of InnerTrackerEndcap_zmax is calculated above based on the rmin of the MedialTrackerBarrel </comment>
<constant name="MedialTrackerBarrel_length" value="2 * InnerTrackerEndcap_zmax"/>
<constant name="MedialTrackerBarrelMod1_rmin" value="MedialTrackerBarrel_rmin"/>
<constant name="MedialTrackerBarrelMod_length" value="MedialTrackerBarrel_length - 2*um" />
<constant name="MedialTrackerBarrelMod2_rmin" value="MedialTrackerBarrel_rmin + 1 * MedialTrackerBarrel_offset"/>
<constant name="MedialTrackerBarrelMod_count" value="128" />
<constant name="MedialTrackerBarrelMod1_width" value="2*MedialTrackerBarrelMod1_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
<constant name="MedialTrackerBarrelMod2_width" value="2*MedialTrackerBarrelMod2_rmin * tan(180*degree/MedialTrackerBarrelMod_count)" />
<constant name="MedialTrackerBarrelLayer_length" value="MedialTrackerBarrel_length"/>
<constant name="MedialTrackerBarrelLayer_thickness" value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
<constant name="MedialTrackerBarrelLayer1_rmin" value="MedialTrackerBarrelMod1_rmin - MedialTrackerBarrelLayer_thickness / 5" />
<constant name="MedialTrackerBarrelLayer1_rmax" value="MedialTrackerBarrelLayer1_rmin + MedialTrackerBarrelLayer_thickness" />
<constant name="MedialTrackerBarrelLayer2_rmin" value="MedialTrackerBarrelMod2_rmin - MedialTrackerBarrelLayer_thickness / 5" />
<constant name="MedialTrackerBarrelLayer2_rmax" value="MedialTrackerBarrelLayer2_rmin + MedialTrackerBarrelLayer_thickness" />
<constant name="MedialTrackerBarrelEnvelope_rmin" value="MedialTrackerBarrelLayer1_rmin" />
<constant name="MedialTrackerBarrelEnvelope_rmax" value="MedialTrackerBarrelLayer2_rmax" />
<constant name="MedialTrackerBarrelEnvelope_length" value="MedialTrackerBarrelLayer_length" />
</define>
<detectors>
<detector
id="TrackerBarrel_1_ID"
name="MedialTrackerBarrel"
type="athena_TrackerBarrel"
readout="MPGDTrackerBarrelHits1"
insideTrackingVolume="true">
<dimensions
rmin="MedialTrackerBarrelEnvelope_rmin"
rmax="MedialTrackerBarrelEnvelope_rmax"
length="MedialTrackerBarrelEnvelope_length"/>
<module name="MedialTrackerBarrel_Mod1" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod1_width" length="MedialTrackerBarrelMod_length"/>
</module>
<module name="MedialTrackerBarrel_Mod2" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="MedialTrackerBarrelMod2_width" length="MedialTrackerBarrelMod_length"/>
</module>
<layer module="MedialTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="MedialTrackerBarrelLayer1_rmin"
outer_r="MedialTrackerBarrelLayer1_rmax"
z_length="MedialTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="MedialTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="MedialTrackerBarrelLayer2_rmin"
outer_r="MedialTrackerBarrelLayer2_rmax"
z_length="MedialTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*MedialTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="MedialTrackerBarrelMod_count" phi0="0.0" rc="MedialTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Medial silicon tracker disks (1 each), symmetric between N and P except for disk rmin
</documentation>
<define>
<comment> Medial Si endcap setup </comment>
<constant name="MedialTrackerEndcapPMod1_zmin" value="MedialTrackerEndcap_zmin" />
<constant name="MedialTrackerEndcapPMod1_rmin" value="MedialTrackerEndcapP_rmin" />
<constant name="MedialTrackerEndcapPMod1_rmax" value="min(MedialTrackerEndcapPMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="MedialTrackerEndcapPMod1_x1" value="2 * MedialTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapPMod1_x2" value="2 * MedialTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapPMod1_y" value="MedialTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapPMod1_rmin" />
<constant name="MedialTrackerEndcapPLayer1_rmin" value="MedialTrackerEndcapPMod1_rmin - 1*um" />
<constant name="MedialTrackerEndcapPLayer1_rmax" value="MedialTrackerEndcapPMod1_rmax + 1*um" />
<constant name="MedialTrackerEndcapPLayer1_zmin" value="MedialTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="MedialTrackerEndcapNMod1_zmin" value="MedialTrackerEndcap_zmin" />
<constant name="MedialTrackerEndcapNMod1_rmin" value="MedialTrackerEndcapN_rmin" />
<constant name="MedialTrackerEndcapNMod1_rmax" value="min(MedialTrackerEndcapNMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" />
<constant name="MedialTrackerEndcapNMod1_x1" value="2 * MedialTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapNMod1_x2" value="2 * MedialTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="MedialTrackerEndcapNMod1_y" value="MedialTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapNMod1_rmin" />
<constant name="MedialTrackerEndcapNLayer1_rmin" value="MedialTrackerEndcapNMod1_rmin - 1*um" />
<constant name="MedialTrackerEndcapNLayer1_rmax" value="MedialTrackerEndcapNMod1_rmax + 1*um" />
<constant name="MedialTrackerEndcapNLayer1_zmin" value="MedialTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The tracker endcap ends at the same place as the outer tracker barrel that sits around it </comment>
<constant name="MedialTrackerEndcap_zmax" value="OuterTrackerBarrel_rmin / CentralTrackingBarrel_tan" />
<constant name="MedialTrackerEndcapCyl_zmin" value="InnerTrackerEndcap_zmax" />
<constant name="MedialTrackerEndcapCyl_zmax" value="MedialTrackerEndcap_zmax" />
<constant name="MedialTrackerEndcapCyl_z" value="(MedialTrackerEndcapCyl_zmin + MedialTrackerEndcapCyl_zmax)/2" />
<constant name="MedialTrackerEndcapCyl_length" value="MedialTrackerEndcapCyl_zmax - MedialTrackerEndcapCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_1_ID"
name="MedialTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits3"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="MedialTrackerEndcapPMod1_x1/2" x2="MedialTrackerEndcapPMod1_x2/2" z="MedialTrackerEndcapPMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="MedialTrackerEndcapPLayer1_rmin"
rmax="MedialTrackerEndcapPLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="MedialTrackerEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="MedialTrackerEndcapPMod1_rmin + MedialTrackerEndcapPMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
</detector>
<detector
id="TrackerEndcapN_1_ID"
name="MedialTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits4"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cyl_neg" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_neg" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="MedialTrackerEndcapCyl_length"
zstart="MedialTrackerEndcapCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="MedialTrackerEndcapNMod1_x1/2" x2="MedialTrackerEndcapNMod1_x2/2" z="MedialTrackerEndcapNMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="MedialTrackerEndcapNLayer1_rmin"
rmax="MedialTrackerEndcapNLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="MedialTrackerEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="MedialTrackerEndcapNMod1_rmin + MedialTrackerEndcapNMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
</detector>
</detectors>
<documentation>
## Outer barrel tracker (MMGAS)
</documentation>
<define>
<comment> The value of MedialTrackerEndcap_zmax is calculated above based on the rmin of the OuterTrackerBarrel </comment>
<constant name="OuterTrackerBarrel_length" value="2 * MedialTrackerEndcap_zmax"/>
<constant name="OuterTrackerBarrelMod1_rmin" value="OuterTrackerBarrel_rmin"/>
<constant name="OuterTrackerBarrelMod_length" value="OuterTrackerBarrel_length - 2*um" />
<constant name="OuterTrackerBarrelMod2_rmin" value="OuterTrackerBarrel_rmin + 1 * OuterTrackerBarrel_offset"/>
<constant name="OuterTrackerBarrelMod_count" value="128" />
<constant name="OuterTrackerBarrelMod1_width" value="2*OuterTrackerBarrelMod1_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
<constant name="OuterTrackerBarrelMod2_width" value="2*OuterTrackerBarrelMod2_rmin * tan(180*degree/OuterTrackerBarrelMod_count)" />
<constant name="OuterTrackerBarrelLayer_length" value="OuterTrackerBarrel_length"/>
<constant name="OuterTrackerBarrelLayer_thickness" value="MMTrackerBarrelMod_thickness + 1.0*cm"/>
<constant name="OuterTrackerBarrelLayer1_rmin" value="OuterTrackerBarrelMod1_rmin - OuterTrackerBarrelLayer_thickness / 5" />
<constant name="OuterTrackerBarrelLayer1_rmax" value="OuterTrackerBarrelLayer1_rmin + OuterTrackerBarrelLayer_thickness" />
<constant name="OuterTrackerBarrelLayer2_rmin" value="OuterTrackerBarrelMod2_rmin - OuterTrackerBarrelLayer_thickness / 5" />
<constant name="OuterTrackerBarrelLayer2_rmax" value="OuterTrackerBarrelLayer2_rmin + OuterTrackerBarrelLayer_thickness" />
<constant name="OuterTrackerBarrelEnvelope_rmin" value="OuterTrackerBarrelLayer1_rmin" />
<constant name="OuterTrackerBarrelEnvelope_rmax" value="OuterTrackerBarrelLayer2_rmax" />
<constant name="OuterTrackerBarrelEnvelope_length" value="OuterTrackerBarrelLayer_length" />
</define>
<detectors>
<detector
id="TrackerBarrel_2_ID"
name="OuterTrackerBarrel"
type="athena_TrackerBarrel"
readout="MPGDTrackerBarrelHits2"
insideTrackingVolume="true">
<dimensions
rmin="OuterTrackerBarrelEnvelope_rmin"
rmax="OuterTrackerBarrelEnvelope_rmax"
length="OuterTrackerBarrelEnvelope_length"/>
<module name="OuterTrackerBarrel_Mod1" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod1_width" length="OuterTrackerBarrelMod_length"/>
</module>
<module name="OuterTrackerBarrel_Mod2" vis="TrackerMPGDVis">
<comment> Going from the inside (sensitive) side to the readout side </comment>
<module_component name="DriftCuGround" thickness="MMDriftCuGround_thickness" material="Copper" vis="TrackerMPGDVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftKapton" thickness="MMDriftKapton_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="DriftCuElectrode" thickness="MMDriftCuElectrode_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="GasGap" thickness="MMGasGap_thickness" material="Ar90IsoButane" sensitive="True" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Mesh" thickness="MMMesh_thickness" material="MMGAS_InoxForMesh" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="Gas" thickness="MMGas_thickness" material="Ar90IsoButane" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="ResistiveStrips" thickness="MMResistiveStrip_thickness" material="MMGAS_ResistivePaste" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonStrips" thickness="MMKaptonStrip_thickness" material="Kapton" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuStrips" thickness="MMCuStrip_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="PCB" thickness="MMPCB_thickness" material="Fr4" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="CuGround" thickness="MMCuGround_thickness" material="Copper" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
<module_component name="KaptonOverlay" thickness="MMKaptonOverlay_thickness" material="Kapton" vis="TrackerSupportVis" width="OuterTrackerBarrelMod2_width" length="OuterTrackerBarrelMod_length"/>
</module>
<layer module="OuterTrackerBarrel_Mod1" id="1" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="OuterTrackerBarrelLayer1_rmin"
outer_r="OuterTrackerBarrelLayer1_rmax"
z_length="OuterTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="OuterTrackerBarrel_Mod2" id="2" vis="TrackerMMGASLayerVis">
<barrel_envelope
inner_r="OuterTrackerBarrelLayer2_rmin"
outer_r="OuterTrackerBarrelLayer2_rmax"
z_length="OuterTrackerBarrelLayer_length"/>
<layer_material surface="outer" binning="binPhi,binZ" bins0="10*OuterTrackerBarrelMod_count" bins1="100" />
<rphi_layout phi_tilt="0" nphi="OuterTrackerBarrelMod_count" phi0="0.0" rc="OuterTrackerBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<documentation>
## Outer silicon tracker disks (3P, 2N)
</documentation>
<define>
<comment> Positive disks </comment>
<constant name="OuterTrackerEndcapPMod1_zmin" value="OuterTrackerEndcapP_zmin" />
<constant name="OuterTrackerEndcapPMod1_rmin" value="OuterTrackerEndcapPMod1_zmin * CentralTrackingRegionP_tan * 0.99" />
<constant name="OuterTrackerEndcapPMod1_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod1_x1" value="2 * OuterTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod1_x2" value="2 * OuterTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod1_y" value="OuterTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod1_rmin" />
<constant name="OuterTrackerEndcapPLayer1_rmin" value="OuterTrackerEndcapPMod1_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer1_rmax" value="OuterTrackerEndcapPMod1_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer1_zmin" value="OuterTrackerEndcapPMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapPMod2_zmin" value="OuterTrackerEndcapP_zmin + 1 * OuterTrackerEndcapP_offset" />
<constant name="OuterTrackerEndcapPMod2_rmin" value="OuterTrackerEndcapPMod2_zmin * CentralTrackingRegionP_tan * 0.99" />
<constant name="OuterTrackerEndcapPMod2_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod2_x1" value="2 * OuterTrackerEndcapPMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod2_x2" value="2 * OuterTrackerEndcapPMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod2_y" value="OuterTrackerEndcapPMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod2_rmin" />
<constant name="OuterTrackerEndcapPLayer2_rmin" value="OuterTrackerEndcapPMod2_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer2_rmax" value="OuterTrackerEndcapPMod2_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer2_zmin" value="OuterTrackerEndcapPMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapPMod3_zmin" value="OuterTrackerEndcapP_zmin + 2 * OuterTrackerEndcapP_offset" />
<constant name="OuterTrackerEndcapPMod3_rmin" value="OuterTrackerEndcapPMod3_zmin * CentralTrackingRegionP_tan * 1.00" />
<constant name="OuterTrackerEndcapPMod3_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapPMod3_x1" value="2 * OuterTrackerEndcapPMod3_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod3_x2" value="2 * OuterTrackerEndcapPMod3_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapPMod3_y" value="OuterTrackerEndcapPMod3_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapPMod3_rmin" />
<constant name="OuterTrackerEndcapPLayer3_rmin" value="OuterTrackerEndcapPMod3_rmin - 1*um" />
<constant name="OuterTrackerEndcapPLayer3_rmax" value="OuterTrackerEndcapPMod3_rmax + 1*um" />
<constant name="OuterTrackerEndcapPLayer3_zmin" value="OuterTrackerEndcapPMod3_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The Si tracker endcap ends at position of the last disk </comment>
<constant name="OuterTrackerEndcapP_zmax" value="OuterTrackerEndcapPLayer3_zmin + SiTrackerEndcapLayer_thickness" />
<constant name="OuterTrackerEndcapPCyl_zmin" value="MedialTrackerEndcap_zmax" />
<constant name="OuterTrackerEndcapPCyl_zmax" value="OuterTrackerEndcapP_zmax" />
<constant name="OuterTrackerEndcapPCyl_z" value="(OuterTrackerEndcapPCyl_zmin + OuterTrackerEndcapPCyl_zmax)/2" />
<constant name="OuterTrackerEndcapPCyl_length" value="OuterTrackerEndcapPCyl_zmax - OuterTrackerEndcapPCyl_zmin" />
<comment> Negative disks </comment>
<constant name="OuterTrackerEndcapNMod1_zmin" value="OuterTrackerEndcapN_zmin" />
<constant name="OuterTrackerEndcapNMod1_rmin" value="OuterTrackerEndcapNMod1_zmin * CentralTrackingRegionN_tan * 1.00" />
<constant name="OuterTrackerEndcapNMod1_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapNMod1_x1" value="2 * OuterTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod1_x2" value="2 * OuterTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod1_y" value="OuterTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod1_rmin" />
<constant name="OuterTrackerEndcapNLayer1_rmin" value="OuterTrackerEndcapNMod1_rmin - 1*um" />
<constant name="OuterTrackerEndcapNLayer1_rmax" value="OuterTrackerEndcapNMod1_rmax + 1*um" />
<constant name="OuterTrackerEndcapNLayer1_zmin" value="OuterTrackerEndcapNMod1_zmin - SiTrackerEndcapLayer_thickness/2" />
<constant name="OuterTrackerEndcapNMod2_zmin" value="OuterTrackerEndcapN_zmin + 1 * OuterTrackerEndcapN_offset" />
<constant name="OuterTrackerEndcapNMod2_rmin" value="OuterTrackerEndcapNMod2_zmin * CentralTrackingRegionN_tan * 1.00" />
<constant name="OuterTrackerEndcapNMod2_rmax" value="SiTrackerCyl_rmin" />
<constant name="OuterTrackerEndcapNMod2_x1" value="2 * OuterTrackerEndcapNMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod2_x2" value="2 * OuterTrackerEndcapNMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" />
<constant name="OuterTrackerEndcapNMod2_y" value="OuterTrackerEndcapNMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - OuterTrackerEndcapNMod2_rmin" />
<constant name="OuterTrackerEndcapNLayer2_rmin" value="OuterTrackerEndcapNMod2_rmin - 1*um" />
<constant name="OuterTrackerEndcapNLayer2_rmax" value="OuterTrackerEndcapNMod2_rmax + 1*um" />
<constant name="OuterTrackerEndcapNLayer2_zmin" value="OuterTrackerEndcapNMod2_zmin - SiTrackerEndcapLayer_thickness/2" />
<comment> The Si tracker endcap ends at position of the last disk </comment>
<constant name="OuterTrackerEndcapN_zmax" value="OuterTrackerEndcapNLayer2_zmin + SiTrackerEndcapLayer_thickness" />
<constant name="OuterTrackerEndcapNCyl_zmin" value="MedialTrackerEndcap_zmax" />
<constant name="OuterTrackerEndcapNCyl_zmax" value="OuterTrackerEndcapN_zmax" />
<constant name="OuterTrackerEndcapNCyl_z" value="(OuterTrackerEndcapNCyl_zmin + OuterTrackerEndcapNCyl_zmax)/2" />
<constant name="OuterTrackerEndcapNCyl_length" value="OuterTrackerEndcapNCyl_zmax - OuterTrackerEndcapNCyl_zmin" />
</define>
<detectors>
<detector
id="TrackerEndcapP_2_ID"
name="OuterTrackerEndcapP"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits5"
vis="TrackerVis"
reflect="false">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="OuterTrackerEndcapPCyl_length"
zstart="OuterTrackerEndcapPCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="OuterTrackerEndcapPCyl_length"
zstart="OuterTrackerEndcapPCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod1_x1/2" x2="OuterTrackerEndcapPMod1_x2/2" z="OuterTrackerEndcapPMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod2_x1/2" x2="OuterTrackerEndcapPMod2_x2/2" z="OuterTrackerEndcapPMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module3" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapPMod3_x1/2" x2="OuterTrackerEndcapPMod3_x2/2" z="OuterTrackerEndcapPMod3_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer1_rmin"
rmax="OuterTrackerEndcapPLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod1_rmin + OuterTrackerEndcapPMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer2_rmin"
rmax="OuterTrackerEndcapPLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod2_rmin + OuterTrackerEndcapPMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
<layer id="3">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapPLayer3_rmin"
rmax="OuterTrackerEndcapPLayer3_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapPLayer3_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapPMod3_rmin + OuterTrackerEndcapPMod3_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module3" />
</layer>
</detector>
<detector
id="TrackerEndcapN_2_ID"
name="OuterTrackerEndcapN"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits6"
vis="TrackerVis"
reflect="true">
<support material="Aluminum" name="serv_cyl_pos" vis="TrackerServiceVis"
rmin="SiTrackerServiceCyl_rmin"
thickness="SiTrackerServiceCylAl_thickness"
length="OuterTrackerEndcapNCyl_length"
zstart="OuterTrackerEndcapNCyl_zmin" />
<support material="CarbonFiber" name="sup_cyl_pos" vis="TrackerSupportVis"
rmin="SiTrackerSupportCyl_rmin"
thickness="SiTrackerSupportCylCF_thickness"
length="OuterTrackerEndcapNCyl_length"
zstart="OuterTrackerEndcapNCyl_zmin" />
<module name="Module1" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapNMod1_x1/2" x2="OuterTrackerEndcapNMod1_x2/2" z="OuterTrackerEndcapNMod1_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<module name="Module2" vis="TrackerModuleVis">
<trd x1="OuterTrackerEndcapNMod2_x1/2" x2="OuterTrackerEndcapNMod2_x2/2" z="OuterTrackerEndcapNMod2_y/2" />
<module_component thickness="SiTrackerEndcapCF_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
<module_component thickness="SiTrackerEndcapAl_thickness" material="Aluminum" vis="TrackerServiceVis" />
<module_component thickness="SiTrackerSensor_thickness" material="Silicon" sensitive="true" vis="TrackerLayerVis" />
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapNLayer1_rmin"
rmax="OuterTrackerEndcapNLayer1_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapNMod1_rmin + OuterTrackerEndcapNMod1_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module1" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="OuterTrackerEndcapNLayer2_rmin"
rmax="OuterTrackerEndcapNLayer2_rmax"
length="SiTrackerEndcapLayer_thickness"
zstart="OuterTrackerEndcapNLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*SiTrackerEndcapMod_count" bins1="256"/>
<ring
r="OuterTrackerEndcapNMod2_rmin + OuterTrackerEndcapNMod2_y/2"
zstart="0"
nmodules="SiTrackerEndcapMod_count"
dz="SiTrackerEndcapMod_dz"
module="Module2" />
</layer>
</detector>
</detectors>
<documentation>
## GEM trackers (3P, 2N)
</documentation>
<define>
<constant
name="GEMEndcapMod_thickness"
value="GEMMylar_thickness * 2 + GEMGas_thickness * 5 + GEMDriftRegion_thickness * 1
+ GEMKapton_thickness * (2 + 3 * GEMAreaFactor)
+ GEMCuFoil_thickness * (3 * GEMAreaFactor)
+ GEMCuElectrode_thickness * 2" />
<constant name="GEMEndcapMod_dz" value="GEMEndcapMod_thickness/2 + GEMSpoke_thickness/2" />
<constant name="GEMEndcapMod_overlap" value="0" />
<constant name="GEMEndcapMod_angle" value="360.0*degree / GEMEndcapMod_count * (1 + GEMEndcapMod_overlap)" />
<constant name="GEMEndcapLayer_thickness" value="GEMEndcapMod_thickness + 2 * GEMEndcapMod_dz + 1*um" />
<comment> Parameters for the "ring" GEMS around the silicon tracker, which are all identical </comment>
<constant name="GEMEndcapRingMod_rmin" value="SiTrackerSupportCyl_rmax + GEMFrameBotEdge_width" />
<constant name="GEMEndcapRingMod_rmax" value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * CentralTrackingBarrel_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" />
<constant name="GEMEndcapRingMod_x1" value="2 * GEMEndcapRingMod_rmin * tan(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingMod_x2" value="2 * GEMEndcapRingMod_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingMod_y" value="GEMEndcapRingMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapRingMod_rmin" />
<constant name="GEMEndcapRingModBotFrame_rmin" value="SiTrackerSupportCyl_rmax" />
<constant name="GEMEndcapRingModBotFrame_y" value="GEMFrameBotEdge_width" />
<constant name="GEMEndcapRingModBotFrame_rmax" value="(GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModBotFrame_x1" value="2 * GEMEndcapRingModBotFrame_rmin * tan(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModBotFrame_x2" value="2 * GEMEndcapRingModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModTopFrame_rmin" value="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y" />
<constant name="GEMEndcapRingModTopFrame_y" value="GEMFrameTopEdge_width" />
<constant name="GEMEndcapRingModTopFrame_rmax" value="(GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModTopFrame_x1" value="GEMEndcapRingMod_x2" />
<constant name="GEMEndcapRingModTopFrame_x2" value="2 * GEMEndcapRingModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapRingModSpoke_length" value="GEMEndcapRingMod_rmax - GEMEndcapRingModBotFrame_rmax" />
<constant name="GEMEndcapRingModSpoke_r" value="(GEMEndcapRingMod_rmax + GEMEndcapRingModBotFrame_rmax)/2" />
<constant name="GEMEndcapRingLayer_rmin" value="GEMEndcapRingModBotFrame_rmin - 1*um" />
<constant name="GEMEndcapRingLayer_rmax" value="GEMEndcapRingModTopFrame_rmax + 1*um" />
<comment>
z position of the "ring" GEMS, note that some are offset slightly
to not overlap in z with the silicon disks (an ACTS limitation).
</comment>
<constant name="GEMEndcapPMod1_zmin" value="GEMEndcapPDisk1_zmin + GEMEndcapLayer_thickness" />
<constant name="GEMEndcapPMod2_zmin" value="GEMEndcapPDisk2_zmin - GEMEndcapLayer_thickness" />
<constant name="GEMEndcapNMod1_zmin" value="GEMEndcapN_zmin" />
<constant name="GEMEndcapNMod2_zmin" value="GEMEndcapN_zmin + 1 * GEMEndcapN_offset - GEMEndcapLayer_thickness" />
<constant name="GEMEndcapPLayer1_zmin" value="GEMEndcapPMod1_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapPLayer2_zmin" value="GEMEndcapPMod2_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapNLayer1_zmin" value="GEMEndcapNMod1_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapNLayer2_zmin" value="GEMEndcapNMod2_zmin - GEMEndcapLayer_thickness/2" />
<comment> Large forward disk (behind the RICH) </comment>
<constant name="GEMEndcapPMod3_zmin" value="GEMEndcapPDisk3_zmin" />
<constant name="GEMEndcapPLayer3_zmin" value="GEMEndcapPMod3_zmin - GEMEndcapLayer_thickness/2" />
<constant name="GEMEndcapLargeModBotFrame_rmin" value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan" />
<constant name="GEMEndcapLargeModBotFrame_y" value="GEMFrameBotEdge_width" />
<constant name="GEMEndcapLargeModBotFrame_rmax" value="(GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModBotFrame_x1" value="2 * GEMEndcapLargeModBotFrame_rmin * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModBotFrame_x2" value="2 * GEMEndcapLargeModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_rmin" value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan + GEMFrameBotEdge_width" />
<comment> Ensure there's always the length of the service gap in space available above the large GEM (top frame can extend into this at the corners). </comment>
<constant name="GEMEndcapLargeMod_rmax" value="min(GEMEndcapPMod3_zmin * CentralTrackingBarrel_tan, Solenoid_rmax-ForwardServiceGap_length)" />
<constant name="GEMEndcapLargeMod_x1" value="2 * GEMEndcapLargeMod_rmin * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_x2" value="2 * GEMEndcapLargeMod_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeMod_y" value="GEMEndcapLargeMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapLargeMod_rmin" />
<constant name="GEMEndcapLargeModTopFrame_rmin" value="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y" />
<constant name="GEMEndcapLargeModTopFrame_y" value="GEMFrameTopEdge_width" />
<constant name="GEMEndcapLargeModTopFrame_rmax" value="(GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y)/cos(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModTopFrame_x1" value="GEMEndcapLargeMod_x2" />
<constant name="GEMEndcapLargeModTopFrame_x2" value="2 * GEMEndcapLargeModTopFrame_rmax * sin(GEMEndcapMod_angle/2)" />
<constant name="GEMEndcapLargeModSpoke_length" value="GEMEndcapLargeMod_rmax - GEMEndcapLargeModBotFrame_rmax" />
<constant name="GEMEndcapLargeModSpoke_r" value="(GEMEndcapLargeMod_rmax + GEMEndcapLargeModBotFrame_rmax)/2" />
<constant name="GEMEndcapLargeLayer_rmin" value="GEMEndcapLargeModBotFrame_rmin - 1*um" />
<constant name="GEMEndcapLargeLayer_rmax" value="GEMEndcapLargeModTopFrame_rmax + 1*um" />
</define>
<detectors>
<detector
id="TrackerEndcapP_3_ID"
name="GEMEndcapP"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits1"
vis="TrackerVis"
reflect="false">
<module name="RingModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="RingBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
</detector>
<detector
id="TrackerEndcapN_3_ID"
name="GEMEndcapN"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits2"
vis="TrackerVis"
reflect="true">
<module name="RingModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapRingMod_x1/2" x2="GEMEndcapRingMod_x2/2" z="GEMEndcapRingMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="RingBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModBotFrame_x1/2" x2="GEMEndcapRingModBotFrame_x2/2" z="GEMEndcapRingModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapRingModTopFrame_x1/2" x2="GEMEndcapRingModTopFrame_x2/2" z="GEMEndcapRingModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="RingSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapRingModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<module name="LargeModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="LargeBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapNLayer1_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
<layer id="2">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapRingLayer_rmin"
rmax="GEMEndcapRingLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapNLayer2_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingModule" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingBotFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="GEMEndcapMod_angle" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" zstart="0" dz="GEMEndcapMod_dz"
phi0="0*degree" dphi="GEMEndcapMod_angle" nmodules="GEMEndcapMod_count/2"
module="RingTopFrame" />
<ring
r="GEMEndcapRingModSpoke_r" zstart="0" dz="0"
nmodules="GEMEndcapMod_count/2" phi0="3*GEMEndcapMod_angle/2"
module="RingSpoke" />
</layer>
</detector>
<detector
id="TrackerEndcapP_4_ID"
name="ForwardGEM"
type="athena_TrapEndcapTracker"
readout="GEMTrackerEndcapHits3"
vis="TrackerVis"
reflect="false">
<module name="LargeModule" vis="TrackerGEMModuleVis">
<trd x1="GEMEndcapLargeMod_x1/2" x2="GEMEndcapLargeMod_x2/2" z="GEMEndcapLargeMod_y/2" />
<comment> going from back to front </comment>
<module_component name="exit_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerServiceVis" />
<module_component name="exit_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="readout_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="readout_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="induction_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_3_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_3" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region2" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_2_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_2" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="transfer_region1" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="gem_foil_1_cu" thickness="GEMCuElectrode_thickness * GEMAreaFactor" material="Copper"/>
<module_component name="gem_foil_1" thickness="GEMKapton_thickness * GEMAreaFactor" material="Kapton"/>
<module_component name="drift_region" thickness="GEMDriftRegion_thickness" material="Ar10CO2" sensitive="true"/>
<module_component name="cathode_cu" thickness="GEMCuElectrode_thickness" material="Copper"/>
<module_component name="cathode_foil" thickness="GEMKapton_thickness" material="Kapton"/>
<module_component name="entrance_region" thickness="GEMGas_thickness" material="Ar10CO2"/>
<module_component name="entrance_window" thickness="GEMMylar_thickness" material="Mylar" vis="TrackerMPGDVis" />
</module>
<module name="LargeBotFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModBotFrame_x1/2" x2="GEMEndcapLargeModBotFrame_x2/2" z="GEMEndcapLargeModBotFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeTopFrame" vis="TrackerSupportVis">
<trd x1="GEMEndcapLargeModTopFrame_x1/2" x2="GEMEndcapLargeModTopFrame_x2/2" z="GEMEndcapLargeModTopFrame_y/2" />
<module_component name="frame" thickness="GEMFrame_thickness" material="CarbonFiber" vis="TrackerSupportVis" />
</module>
<module name="LargeSpoke" vis="TrackerSupportVis">
<trd x1="GEMSpoke_width/2" x2="GEMSpoke_width/2" z="GEMEndcapLargeModSpoke_length/2"/>
<module_component thickness="GEMSpoke_thickness" material="Mylar" vis="TrackerSupportVis"/>
</module>
<layer id="1">
<envelope vis="TrackerLayerVis"
rmin="GEMEndcapLargeLayer_rmin"
rmax="GEMEndcapLargeLayer_rmax"
length="GEMEndcapLayer_thickness"
zstart="GEMEndcapPLayer3_zmin" />
<layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/>
<ring
r="GEMEndcapLargeMod_rmin + GEMEndcapLargeMod_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeModule" />
<ring
r="GEMEndcapLargeModBotFrame_rmin + GEMEndcapLargeModBotFrame_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeBotFrame" />
<ring
r="GEMEndcapLargeModTopFrame_rmin + GEMEndcapLargeModTopFrame_y/2"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="GEMEndcapMod_dz"
module="LargeTopFrame" />
<ring
r="GEMEndcapLargeModSpoke_r"
zstart="0"
nmodules="GEMEndcapMod_count"
dz="0"
phi0="GEMEndcapMod_angle/2"
module="LargeSpoke" />
</layer>
</detector>
</detectors>
<readouts>
<readout name="TrackerBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="TrackerEndcapHits1">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits2">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits3">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits4">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits5">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="TrackerEndcapHits6">
<segmentation type="CartesianGridXZ" grid_size_x="0.010*mm" grid_size_z="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="MPGDTrackerBarrelHits1">
<segmentation type="CartesianGridXY" grid_size_x="0.150*mm*sqrt(12)" grid_size_y="0.150*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="MPGDTrackerBarrelHits2">
<segmentation type="CartesianGridXY" grid_size_x="0.150*mm*sqrt(12)" grid_size_y="0.150*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-14,y:-18</id>
</readout>
<readout name="GEMTrackerEndcapHits1">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="GEMTrackerEndcapHits2">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
<readout name="GEMTrackerEndcapHits3">
<segmentation type="CartesianGridXZ" grid_size_x="0.050*mm*sqrt(12)" grid_size_z="0.250*mm*sqrt(12)" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id>
</readout>
</readouts>
</lccdd>
<lccdd>
<define>
<constant name="EcalEndcapP_rmax" value="Solenoid_rmax "/>
</define>
<limits>
</limits>
<regions>
</regions>
<display>
</display>
<detectors>
<documentation level="10">
#### Forward (Positive Z) Endcap EM Calorimeter
A layered EM calorimeter with tungsten and silicon (or scintillator) strips
</documentation>
<detector id="ECalEndcapP_ID"
name="EcalEndcapP"
reflect="false"
type="athena_PolyhedraEndcapCalorimeter2"
readout="EcalEndcapPHits"
vis="EcalEndcapVis"
calorimeterType="EM_ENDCAP" >
<position x="0" y="0" z="-0"/>
<dimensions
numsides="CaloSides"
zmin="EcalEndcapP_zmin"
rmin="EcalEndcapP_rmin"
rmax="EcalEndcapP_rmax " />
<layer repeat="EcalEndcapPLayer1_NRepeat" vis="EcalEndcapLayerVis">
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer2_NRepeat" vis="EcalEndcapLayerVis">
<slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
<layer repeat="EcalEndcapPLayer3_NRepeat" vis="EcalEndcapLayerVis">
<slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
<slice material="Air" thickness="EcalAir2Thickness"/>
<slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
<slice material="Copper" thickness="EcalCopperThickness"/>
<slice material="Kapton" thickness="EcalKaptonThickness"/>
<slice material="Air" thickness="EcalAir1Thickness"/>
</layer>
</detector>
</detectors>
<!-- Definition of the readout segmentation/definition -->
<readouts>
<readout name="EcalEndcapPHits">
<segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
<id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
</lccdd>