diff --git a/.gitignore b/.gitignore index b00218754ba48c9d0aa8ac9851d15e65e9da9129..96a61480e4e3cbb4d1cda1cc90743187155d5772 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ ip6 fieldmaps manifest.txt +acts.txt +acts2.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78f7d6009d5951e3830f0e0840a8cb134551b6ae..c650eaaf0cdda579bcf4bd1c1a719eb016f1d9f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -141,11 +141,11 @@ dump_geometry: ## print some useful output - | 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&" for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do geo_name=`basename $xml .xml`_geo.root 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;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" done detector_documentation: diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f58365aa273b8423e09e0fec4ab38b948db57f0..6f12b924f5e359549ad5ac730aa25f40ee8c0880 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,7 @@ dd4hep_add_plugin(${a_lib_name} SOURCES src/BarrelCalorimeterHybrid_geo.cpp src/BarrelCalorimeterInterlayers_geo.cpp src/BarrelTrackerWithFrame_geo.cpp + src/CompositeTracker_geo.cpp src/CylinderTrackerBarrel_geo.cpp src/DIRC_geo.cpp src/DRich_geo.cpp diff --git a/athena.xml b/athena.xml index 8ef1ae0c3f4fa1065b55f169d27ed1ccdccc57fd..3c59a1e865118732a60bbb911aaf68d3cc4bb31d 100644 --- a/athena.xml +++ b/athena.xml @@ -102,81 +102,18 @@ </documentation> <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"> ## Central tracking detectors </documentation> - <include ref="compact/tracking_config_acadia.xml"/> - - <!--include ref="compact/tracking_config_mgpds.xml"/--> + <!--include ref="compact/tracking_config_acadia.xml"/--> + <include ref="compact/tracking_config_canyonlands.xml"/> <documentation level="10"> ### PID detectors </documentation> - <include ref="compact/pid_config_acadia.xml" /> + <!--include ref="compact/pid_config_acadia.xml" /--> + <include ref="compact/pid_config_canyonlands.xml" /> <documentation level="10"> ## Central calorimetry @@ -184,7 +121,6 @@ <include ref="compact/ecal.xml"/> <include ref="compact/hcal.xml"/> - <documentation level="11"> ## Far foward detectors </documentation> diff --git a/compact/central_tracker.xml b/compact/central_tracker.xml index 4170a378454e626152be570ba38424c944c3a31a..d2ec6ce400505656ae92af69a8a811b66d0220eb 100644 --- a/compact/central_tracker.xml +++ b/compact/central_tracker.xml @@ -27,6 +27,10 @@ total X0 0.24% per disk layer (4 sectors per disk): </documentation> <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> 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} @@ -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="TrackerBarrelSpaceFrame_width" value="4.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_rmin2" value="22.68*cm"/> @@ -155,7 +159,7 @@ total X0 0.24% per disk layer (4 sectors per disk): </comment> <detector - id="TrackerBarrel_Inner_ID" + id="TrackerBarrel_0_ID" name="TrackerBarrel_Inner" type="athena_TrackerBarrel" readout="TrackerBarrelHits" @@ -219,7 +223,7 @@ total X0 0.24% per disk layer (4 sectors per disk): </detector> <detector - id="TrackerEndcapP_Inner_ID" + id="TrackerEndcapP_0_ID" name="TrackerEndcapP_Inner" type="athena_TrapEndcapTracker" readout="TrackerEndcapHits" @@ -241,7 +245,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <module name="Module1" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> @@ -260,7 +264,7 @@ total X0 0.24% per disk layer (4 sectors per disk): </detector> <detector - id="TrackerEndcapN_Inner_ID" + id="TrackerEndcapN_0_ID" name="TrackerEndcapN_Inner" type="athena_TrapEndcapTracker" readout="TrackerEndcapHits" @@ -282,7 +286,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <module name="Module1" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> @@ -306,7 +310,7 @@ total X0 0.24% per disk layer (4 sectors per disk): ----------------------------------- </comment> <detector - id="TrackerBarrel_Outer_ID" + id="TrackerBarrel_1_ID" name="TrackerBarrel_Outer" type="athena_TrackerBarrel" readout="TrackerBarrelHits" @@ -370,7 +374,7 @@ total X0 0.24% per disk layer (4 sectors per disk): </detector> <detector - id="TrackerEndcapP_Outer_ID" + id="TrackerEndcapP_1_ID" name="TrackerEndcapP_Outer" type="athena_TrapEndcapTracker" readout="TrackerEndcapHits" @@ -399,19 +403,19 @@ total X0 0.24% per disk layer (4 sectors per disk): <module name="Module1" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> <module name="Module2" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> <module name="Module3" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> @@ -454,7 +458,7 @@ total X0 0.24% per disk layer (4 sectors per disk): </detector> <detector - id="TrackerEndcapN_Outer_ID" + id="TrackerEndcapN_1_ID" name="TrackerEndcapN_Outer" type="athena_TrapEndcapTracker" readout="TrackerEndcapHits" @@ -485,19 +489,19 @@ total X0 0.24% per disk layer (4 sectors per disk): <module name="Module1" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> <module name="Module2" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> <module name="Module3" vis="AnlProcess_Blue"> <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="TrackerCarbon_thickness" material="CarbonFiber"/> </module> diff --git a/compact/central_tracker_hybrid_v2.xml b/compact/central_tracker_hybrid_v2.xml new file mode 100644 index 0000000000000000000000000000000000000000..76e2f935b0926171ac1f9c5c18c39c20eccdc9ae --- /dev/null +++ b/compact/central_tracker_hybrid_v2.xml @@ -0,0 +1,1387 @@ +<?xml version="1.0" encoding="UTF-8"?> +<lccdd> + <comment> + Master tracker parameters + </comment> + <define> + <comment> Main diagonal direction for barrel/endcap transitions </comment> + <constant name="TrackerMainDiagonal_tantheta" value="Eta1_1_tantheta"/> + + <comment> Outer tracker endcap radial limits (somewhat adjusted in the parametrization).</comment> + <constant name="TrackerEndcapP_tanthetamax" value="Eta3_8_tantheta"/> + <constant name="TrackerEndcapN_tanthetamax" value="Eta4_0_tantheta"/> + <constant name="TrackerForward_tanthetamax" value="Eta3_5_tantheta"/> + + <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 / TrackerMainDiagonal_tantheta - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> + <constant name="InnerTrackerBarrelMod2_length" value="2 * InnerTrackerBarrelMod2_rmin / TrackerMainDiagonal_tantheta - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> + <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * TrackerMainDiagonal_tantheta" /> + <constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" /> + <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * TrackerMainDiagonal_tantheta" /> + <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 * TrackerMainDiagonal_tantheta * 0.995, SiTrackerCyl_rmin)" /> + <constant name="InnerTrackerEndcapMod1_x1" value="2 * InnerTrackerEndcapMod1_rmin * sin(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 * TrackerMainDiagonal_tantheta * 0.995, SiTrackerCyl_rmin)" /> + <constant name="InnerTrackerEndcapMod2_x1" value="2 * InnerTrackerEndcapMod2_rmin * sin(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 * TrackerMainDiagonal_tantheta" /> + <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 / TrackerMainDiagonal_tantheta" /> + <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 / TrackerMainDiagonal_tantheta" /> + <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="TrackerEndcapHits" + 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="TrackerEndcapHits" + 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="MPGDTrackerBarrelHits" + 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 * TrackerMainDiagonal_tantheta * 0.995, SiTrackerCyl_rmin)" /> + <constant name="MedialTrackerEndcapPMod1_x1" value="2 * MedialTrackerEndcapPMod1_rmin * sin(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 * TrackerMainDiagonal_tantheta * 0.995, SiTrackerCyl_rmin)" /> + <constant name="MedialTrackerEndcapNMod1_x1" value="2 * MedialTrackerEndcapNMod1_rmin * sin(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 / TrackerMainDiagonal_tantheta" /> + <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="TrackerEndcapHits" + 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="TrackerEndcapHits" + 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="MPGDTrackerBarrelHits" + 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 * TrackerEndcapP_tanthetamax * 1.07" /> + <constant name="OuterTrackerEndcapPMod1_rmax" value="SiTrackerCyl_rmin" /> + <constant name="OuterTrackerEndcapPMod1_x1" value="2 * OuterTrackerEndcapPMod1_rmin * sin(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 * TrackerEndcapP_tanthetamax * 1.08" /> + <constant name="OuterTrackerEndcapPMod2_rmax" value="SiTrackerCyl_rmin" /> + <constant name="OuterTrackerEndcapPMod2_x1" value="2 * OuterTrackerEndcapPMod2_rmin * sin(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 * TrackerEndcapP_tanthetamax * 1.09" /> + <constant name="OuterTrackerEndcapPMod3_rmax" value="SiTrackerCyl_rmin" /> + <constant name="OuterTrackerEndcapPMod3_x1" value="2 * OuterTrackerEndcapPMod3_rmin * sin(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 * TrackerEndcapN_tanthetamax * 0.99" /> + <constant name="OuterTrackerEndcapNMod1_rmax" value="SiTrackerCyl_rmin" /> + <constant name="OuterTrackerEndcapNMod1_x1" value="2 * OuterTrackerEndcapNMod1_rmin * sin(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 * TrackerEndcapN_tanthetamax * 0.98" /> + <constant name="OuterTrackerEndcapNMod2_rmax" value="SiTrackerCyl_rmin" /> + <constant name="OuterTrackerEndcapNMod2_x1" value="2 * OuterTrackerEndcapNMod2_rmin * sin(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="TrackerEndcapHits" + 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="TrackerEndcapHits" + 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="CentralTrackingRegion_rmax - GEMFrameTopEdge_width * 1.3" /> + <constant name="GEMEndcapRingMod_x1" value="2 * GEMEndcapRingMod_rmin * sin(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 * sin(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 * TrackerForward_tanthetamax" /> + <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 * TrackerForward_tanthetamax + 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 * TrackerMainDiagonal_tantheta, 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="GEMTrackerEndcapHits" + 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> + <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="GEMEndcapPLayer1_zmin" /> + <layer_material surface="representing" binning="binPhi,binR" bins0="20*GEMEndcapMod_count" bins1="256"/> + <ring + r="GEMEndcapRingMod_rmin + GEMEndcapRingMod_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingModule" /> + <ring + r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingBotFrame" /> + <ring + r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingTopFrame" /> + <ring + r="GEMEndcapRingModSpoke_r" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="0" + phi0="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" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingModule" /> + <ring + r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingBotFrame" /> + <ring + r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingTopFrame" /> + <ring + r="GEMEndcapRingModSpoke_r" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="0" + phi0="GEMEndcapMod_angle/2" + module="RingSpoke" /> + </layer> + <layer id="3"> + <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> + <detector + id="TrackerEndcapN_3_ID" + name="GEMEndcapN" + type="athena_TrapEndcapTracker" + readout="GEMTrackerEndcapHits" + 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" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingModule" /> + <ring + r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingBotFrame" /> + <ring + r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingTopFrame" /> + <ring + r="GEMEndcapRingModSpoke_r" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="0" + phi0="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" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingModule" /> + <ring + r="GEMEndcapRingModBotFrame_rmin + GEMEndcapRingModBotFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingBotFrame" /> + <ring + r="GEMEndcapRingModTopFrame_rmin + GEMEndcapRingModTopFrame_y/2" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="GEMEndcapMod_dz" + module="RingTopFrame" /> + <ring + r="GEMEndcapRingModSpoke_r" + zstart="0" + nmodules="GEMEndcapMod_count" + dz="0" + phi0="GEMEndcapMod_angle/2" + module="RingSpoke" /> + </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="TrackerEndcapHits"> + <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="MPGDTrackerBarrelHits"> + <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="GEMTrackerEndcapHits"> + <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> diff --git a/compact/definitions.xml b/compact/definitions.xml index 791ad094c15f4b3790d6d470ee74afc1572aa8e5..63d43c68b3b40c0ad2953be927f1f94ff87cdc03 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -50,79 +50,92 @@ The unused IDs below are saved for future use. <documentation> - #### (25-49) Silicon Vertex Tracker - - - SiVertex subsystem ID: 25 - - Layer 1 subassembly ID: 26 - - Layer 2 subassembly ID: 27 - - Layer 3 subassembly ID: 28 - - Layer 4 subassembly ID: 29 - - Layer 5 subassembly ID: 30 + #### (25-39) Silicon Vertex Tracker + + - Vertex subassemblies: 25-27 + - Vertex barrel and endcaps: 28-30 + - Unused: 28-30 </documentation> - <constant name="VertexBarrel_ID" value="25"/> - <constant name="VertexBarrelSubAssembly_ID" value="26"/> - <constant name="VertexEndcapSubAssembly_ID" value="27"/> - <constant name="VertexEndcapP_ID" value="30"/> - <constant name="VertexEndcapN_ID" value="40"/> + <constant name="VertexSubAssembly_0_ID" value="25"/> + <constant name="VertexSubAssembly_1_ID" value="26"/> + <constant name="VertexSubAssembly_2_ID" value="27"/> + + <constant name="VertexBarrel_0_ID" value="31"/> + <constant name="VertexBarrel_1_ID" value="32"/> + <constant name="VertexBarrel_2_ID" value="33"/> + <constant name="VertexEndcapN_0_ID" value="34"/> + <constant name="VertexEndcapN_1_ID" value="35"/> + <constant name="VertexEndcapN_2_ID" value="36"/> + <constant name="VertexEndcapP_0_ID" value="37"/> + <constant name="VertexEndcapP_1_ID" value="38"/> + <constant name="VertexEndcapP_2_ID" value="39"/> <documentation> - - Unused IDs: 31-49 + - Unused IDs: 31-39 </documentation> <documentation> - #### (50-74) Silicon Tracker System + #### (40-84) Tracker System - SiTracker subsystem ID: 50 - Layer 1 subassembly ID: 51 - Layer 2 subassembly ID: 52 - Layer 3 subassembly ID: 53 - Layer 4 subassembly ID: 54 - Layer 5 subassembly ID: 55 - (56-70) etc... - Unused IDs: 71-74 + - Tracker subassemblies: 40-45 + - Composite tracker systems: 46-57 + - Tracker detectors: 56-84 + Unused IDs: (77-79) </documentation> - <constant name="TrackerBarrelSubAssembly_Inner_ID" value="50"/> - <constant name="TrackerEndcapSubAssembly_Inner_ID" value="51"/> - - <constant name="TrackerBarrelSubAssembly_Outer_ID" value="52"/> - <constant name="TrackerEndcapSubAssembly_Outer_ID" value="53"/> - <constant name="OuterTrackingSubAssembly_ID" value="54"/> - - <!--constant name="TrackerSubAssemblyLayer4_ID" value="54"/--> - <!--constant name="TrackerSubAssemblyLayer5_ID" value="55"/--> - - <constant name="TrackerBarrel_Inner_ID" value="56"/> - <constant name="TrackerEndcapP_Inner_ID" value="57"/> - <constant name="TrackerEndcapN_Inner_ID" value="58"/> - - <constant name="TrackerBarrel_Outer_ID" value="59"/> - <constant name="TrackerEndcapP_Outer_ID" value="60"/> - <constant name="TrackerEndcapN_Outer_ID" value="61"/> - - <constant name="TrackerBarrel_Layer3_ID" value="62"/> - <constant name="TrackerEndcapP_Layer3_ID" value="63"/> - <constant name="TrackerEndcapN_Layer3_ID" value="64"/> - - <constant name="TrackerBarrel_Layer4_ID" value="65"/> - <constant name="TrackerEndcapP_Layer4_ID" value="66"/> - <constant name="TrackerEndcapN_Layer4_ID" value="67"/> - - <constant name="TrackerBarrel_Layer5_ID" value="68"/> - <constant name="TrackerEndcapP_Layer5_ID" value="69"/> - <constant name="TrackerEndcapN_Layer5_ID" value="70"/> - - <documentation> - #### (75-84) Barrel Tracker IDs - - - MMTrackerBarrel ID: 75 - - RWellTrackerBarrel ID: 76 - - Unused IDs: 77-89 - - </documentation> - <constant name="MMTrackerBarrel_ID" value="75"/> - <constant name="RWellTrackerBarrel_ID" value="76"/> + <comment> + SubAssembly IDs should increment from inner to outer + (it's not the definition order but rather the ID order that's used + for construction order in the ACTS geometry conversion) + </comment> + <constant name="TrackerSubAssembly_0_ID" value="40"/> + <constant name="TrackerSubAssembly_1_ID" value="41"/> + <constant name="TrackerSubAssembly_2_ID" value="42"/> + <constant name="TrackerSubAssembly_3_ID" value="43"/> + <constant name="TrackerSubAssembly_4_ID" value="44"/> + <constant name="TrackerSubAssembly_5_ID" value="45"/> + + <constant name="TrackerCompositeBarrel_0_ID" value="46"/> + <constant name="TrackerCompositeBarrel_1_ID" value="47"/> + <constant name="TrackerCompositeBarrel_2_ID" value="48"/> + <constant name="TrackerCompositeBarrel_3_ID" value="49"/> + <constant name="TrackerCompositeEndcapN_0_ID" value="50"/> + <constant name="TrackerCompositeEndcapN_1_ID" value="51"/> + <constant name="TrackerCompositeEndcapN_2_ID" value="52"/> + <constant name="TrackerCompositeEndcapN_3_ID" value="53"/> + <constant name="TrackerCompositeEndcapP_0_ID" value="54"/> + <constant name="TrackerCompositeEndcapP_1_ID" value="55"/> + <constant name="TrackerCompositeEndcapP_2_ID" value="56"/> + <constant name="TrackerCompositeEndcapP_3_ID" value="57"/> + + <constant name="TrackerBarrel_0_ID" value="58"/> + <constant name="TrackerBarrel_1_ID" value="59"/> + <constant name="TrackerBarrel_2_ID" value="60"/> + <constant name="TrackerBarrel_3_ID" value="61"/> + <constant name="TrackerBarrel_4_ID" value="62"/> + <constant name="TrackerBarrel_5_ID" value="63"/> + <constant name="TrackerBarrel_6_ID" value="64"/> + <constant name="TrackerBarrel_7_ID" value="65"/> + <constant name="TrackerBarrel_8_ID" value="66"/> + <constant name="TrackerEndcapN_0_ID" value="67"/> + <constant name="TrackerEndcapN_1_ID" value="68"/> + <constant name="TrackerEndcapN_2_ID" value="69"/> + <constant name="TrackerEndcapN_3_ID" value="70"/> + <constant name="TrackerEndcapN_4_ID" value="71"/> + <constant name="TrackerEndcapN_5_ID" value="72"/> + <constant name="TrackerEndcapN_6_ID" value="73"/> + <constant name="TrackerEndcapN_7_ID" value="74"/> + <constant name="TrackerEndcapN_8_ID" value="75"/> + <constant name="TrackerEndcapP_0_ID" value="76"/> + <constant name="TrackerEndcapP_1_ID" value="77"/> + <constant name="TrackerEndcapP_2_ID" value="78"/> + <constant name="TrackerEndcapP_3_ID" value="79"/> + <constant name="TrackerEndcapP_4_ID" value="80"/> + <constant name="TrackerEndcapP_5_ID" value="81"/> + <constant name="TrackerEndcapP_6_ID" value="82"/> + <constant name="TrackerEndcapP_7_ID" value="83"/> + <constant name="TrackerEndcapP_8_ID" value="84"/> <documentation> #### (85-99) Reserved IDs @@ -180,30 +193,27 @@ The unused IDs below are saved for future use. <documentation> #### (120-129) (near) Forward reserved - - Forwardtracking ID: 120 - - Forward RICH ID: 121 - + - Forward RICH ID: 120 + - Forward TRD ID: 121 + - Forward TOF ID: 122 - Unused IDs: 124-129 </documentation> - <constant name="ForwardTracking_ID" value="120"/> - <constant name="ForwardRICH_ID" value="121"/> - <!--constant name="UNUSED" value="122"/--> - <constant name="ForwardTRD_ID" value="123"/> - <constant name="GEMTrackerEndcapP_ID" value="124"/> - <constant name="GEMTrackerEndcapN_ID" value="125"/> - <constant name="ForwardTOF_ID" value="126"/> - <constant name="BackwardTOF_ID" value="127"/> + <constant name="ForwardRICH_ID" value="120"/> + <constant name="ForwardTRD_ID" value="121"/> + <constant name="ForwardTOF_ID" value="122"/> <documentation> #### (130-139) Backward reserved - Modular RICH ID: 130 - - Electron Endcap GEM tracking ID: 131 - - Unused IDs: 132-139 + - Backward RICH ID: 131 + - Backward TOD ID: 132 + - Unused IDs: 133-139 </documentation> - <constant name="MRICH_ID" value="130"/> - <!--constant name="UNUSED" value="131"/--> + <constant name="MRICH_ID" value="130"/> + <constant name="BackwardRICH_ID" value="131"/> + <constant name="BackwardTOF_ID" value="132"/> <documentation> #### (140-149) Central Magnet @@ -288,6 +298,17 @@ Examples: </documentation> + <documentation> + ## Rapidity constants + </documentation> + <constant name="Eta1_1_tantheta" value="tan(2*atan(exp(-1.1)))" /> + <constant name="Eta1_4_tantheta" value="tan(2*atan(exp(-1.4)))" /> + <constant name="Eta3_5_tantheta" value="tan(2*atan(exp(-3.5)))" /> + <constant name="Eta3_8_tantheta" value="tan(2*atan(exp(-3.8)))" /> + <constant name="Eta4_0_tantheta" value="tan(2*atan(exp(-4.0)))" /> + + <comment>Solenoid option</comment> + <documentation> ## Solenoid Magnet Parameters @@ -320,68 +341,56 @@ Examples: </documentation> - <documentation> - ### Vertex Tracker Parameters - </documentation> - <constant name="VertexTrackerBarrel_rmin" value="Beampipe_rmax + 1.0*mm"/> - <constant name="VertexTrackerBarrel_rmax" value="200.0*mm"/> - <constant name="VertexTrackerBarrel_length" value="300.0*mm"/> - <constant name="VertexTrackerBarrel_zmax" value="VertexTrackerBarrel_length/2.0"/> - - <constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerBarrel_rmax"/> - <constant name="VertexTrackerEndcapN_rmax" value="VertexTrackerBarrel_rmax"/> - - <constant name="VertexTrackerEndcapP_rmin" value="Beampipe_rmax + 1.0*mm"/> - <constant name="VertexTrackerEndcapN_rmin" value="Beampipe_rmax + 1.0*mm"/> - - <constant name="VertexTrackerEndcapP_zmax" value="300.0*mm"/> - <constant name="VertexTrackerEndcapN_zmax" value="300.0*mm"/> - <documentation> ### Vertex Tracking Region </documentation> - <constant name="VertexTrackingRegion_length" value="VertexTrackerEndcapP_zmax + VertexTrackerEndcapN_zmax "/> - <constant name="VertexTrackingRegion_zmax" value="VertexTrackerEndcapP_zmax"/> - <constant name="VertexTrackingRegion_rmax" value="VertexTrackerBarrel_rmax"/> + <constant name="VertexTrackingRegion_rmin" value="Beampipe_rmax + 1.0*mm" /> + <constant name="VertexTrackingRegion_rmax" value="100.0*mm" /> + <constant name="VertexTrackingRegionP_zmax" value="240.0*mm" /> + <constant name="VertexTrackingRegionN_zmax" value="240.0*mm" /> + <constant name="VertexTrackingRegion_length" value="VertexTrackingRegionP_zmax + VertexTrackingRegionN_zmax" /> <documentation> - ### Tracker Detector Parameters + ### Central Tracker Region TrackerBarrel_rmax: also the rmin for the barrel PID system (DIRC) Note: The barrel rmax and endcap lengths are the maximum extent allowed for the barrel and endcap layers, not the position of the final layer. </documentation> - <constant name="TrackerBarrel_rmin" value="VertexTrackingRegion_rmax"/> - <constant name="TrackerBarrel_rmax" value="95.*cm"/> - <constant name="TrackerBarrel_thickness" value="TrackerBarrel_rmax-TrackerBarrel_rmin"/> - - <constant name="TrackerBarrel_length" value="VertexTrackingRegion_length + 1150.0*mm"/> - <constant name="TrackerBarrel_zmax" value="TrackerBarrel_length/2.0"/> - <constant name="TrackerBarrelInside_length" value="VertexTrackingRegion_length"/> - <constant name="TrackerBarrelInside_zmax" value="TrackerBarrelInside_length/2.0"/> - <constant name="TrackerEndcapP_length" value="1025.0*mm"/> - <constant name="TrackerEndcapN_length" value="495.0*mm"/> + <constant name="CentralTrackingRegion_rmax" value="950.0*mm" /> + <constant name="CentralTrackingRegionP_zmax" value="1900.0*mm" /> + <constant name="CentralTrackingRegionN_zmax" value="1370.0*mm" /> + <constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" /> <documentation level="0"> ### PID Detector Region Parameters </documentation> - <constant name="ForwardPID_length" value="140.0*cm"/> - <constant name="ForwardPID_rmin1" value="Beampipe_rmax + 90*mm"/> - <constant name="ForwardPID_rmin2" value="18.0*cm"/> + <constant name="ForwardPIDRegion_zmin" value="CentralTrackingRegionP_zmax" /> + <constant name="ForwardPIDRegion_length" value="140.0*cm" /> + <constant name="ForwardPIDRegion_rmin1" value="Beampipe_rmax + 90*mm" /> + <constant name="ForwardPIDRegion_rmin2" value="18.0*cm" /> - <constant name="BackwardPID_length" value="40.0*cm"/> - <constant name="BackwardPID_rmax" value="TrackerBarrel_rmax"/> + <constant name="BackwardPIDRegion_zmin" value="CentralTrackingRegionN_zmax" /> + <constant name="BackwardPIDRegion_length" value="40.0*cm" /> + <constant name="BackwardPIDRegion_rmax" value="CentralTrackingRegion_rmax" /> - <comment> Note: PID has space for DIRC, ExtraSpace has room for other detectors past the PID</comment> - <constant name="BarrelPIDThickness" value="8.0 * cm"/> - <constant name="BarrelExtraSpaceThickness" value="0.0 * cm"/> + <comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment> + <constant name="BarrelPIDRegion_thickness" value="8.0 * cm" /> + <constant name="BarrelExtraSpace_thickness" value="0.0 * cm" /> - <documentation level="0"> -### Extra tracking region behind the endcap PID system + <documentation> + ## Forward/backward tracking region behind the PID detectors </documentation> - <constant name="ForwardTracking_length" value="5.0*cm"/> - <constant name="BackwardTracking_length" value="8.0*cm"/> + + <constant name="BackwardTrackingRegion_zmin" value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" /> + <constant name="ForwardTrackingRegion_zmin" value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" /> + <constant name="ForwardTrackingRegion_length" value="10.0*cm" /> + <constant name="BackwardTrackingRegion_length" value="8.0*cm" /> + + <comment> Total length of the endcap detectors in front of the calorimeter</comment> + <constant name="BackwardInnerEndcapRegion_length" value="BackwardPIDRegion_length + BackwardTrackingRegion_length"/> + <constant name="ForwardInnerEndcapRegion_length" value="ForwardPIDRegion_length + ForwardTrackingRegion_length"/> <documentation> ## Service gaps @@ -391,41 +400,26 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc <constant name="ForwardServiceGap_length" value="10.0*cm"/> <constant name="BackwardServiceGap_length" value="10.0*cm"/> - <documentation> -## Central tracking and PID detector boundaries - </documentation> - <constant name="CentralTracking_rmax" value="TrackerBarrel_rmax"/> - <constant name="CentralTracking_length" value="TrackerBarrel_length + TrackerEndcapP_length + TrackerEndcapN_length"/> - - <constant name="BackwardPID_zmin" value="TrackerBarrel_length/2. + TrackerEndcapN_length"/> - <constant name="ForwardPID_zmin" value="TrackerBarrel_length/2. + TrackerEndcapP_length"/> - <constant name="BackwardTracking_zmin" value="BackwardPID_zmin + BackwardPID_length"/> - <constant name="ForwardTracking_zmin" value="ForwardPID_zmin + ForwardPID_length"/> - - <comment> Total length of the endcap detectors in front of the calorimeter</comment> - <constant name="BackwardInnerEndcap_length" value="BackwardPID_length + BackwardTracking_length"/> - <constant name="ForwardInnerEndcap_length" value="ForwardPID_length + ForwardTracking_length"/> - <documentation level="3"> ## Calorimeter Parameters </documentation> <constant name="CaloSides" value="12"/> - <constant name="EcalEndcapP_zmin" value="ForwardPID_zmin + ForwardInnerEndcap_length + ForwardServiceGap_length"/> - <constant name="EcalEndcapP_length" value="40*cm"/> - <constant name="EcalEndcapP_rmin" value="200.0*mm"/> + <constant name="EcalEndcapP_zmin" value="ForwardPIDRegion_zmin + ForwardInnerEndcapRegion_length + ForwardServiceGap_length" /> + <constant name="EcalEndcapP_length" value="30*cm" /> + <constant name="EcalEndcapP_rmin" value="200.0*mm" /> <constant name="EcalEndcapP_rmax" value="Solenoid_rmax "/> - <constant name="EcalEndcapN_zmin" value="max(BackwardPID_zmin + BackwardInnerEndcap_length, SolenoidBackward_zmax)"/> - <constant name="EcalEndcapN_length" value="60*cm"/> - <constant name="EcalEndcapN_rmin" value="max((EcalEndcapN_zmin + EcalEndcapN_length) * tan(abs(CrossingAngle)) + 12.5 * mm, 5*cm)"/> - <constant name="EcalEndcapN_rmax" value="TrackerBarrel_rmax"/> + <constant name="EcalEndcapN_zmin" value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length" /> + <constant name="EcalEndcapN_length" value="60*cm" /> + <constant name="EcalEndcapN_rmin" value="max((EcalEndcapN_zmin + EcalEndcapN_length) * tan(abs(CrossingAngle)) + 12.5 * mm, 5*cm)" /> + <constant name="EcalEndcapN_rmax" value="CentralTrackingRegion_rmax" /> - <constant name="EcalBarrelEnvelope_thickness" value="45.0*cm"/> - <constant name="EcalBarrel_rmin" value="CentralTracking_rmax + BarrelPIDThickness + BarrelExtraSpaceThickness"/> + <constant name="EcalBarrelRegion_thickness" value="45.0*cm"/> + <constant name="EcalBarrel_rmin" value="CentralTrackingRegion_rmax + BarrelPIDRegion_thickness + BarrelExtraSpace_thickness"/> <constant name="EcalBarrelForward_length" value="-20*cm"/> - <constant name="EcalBarrelForward_zmax" value="ForwardPID_zmin + EcalBarrelForward_length"/> - <constant name="EcalBarrelBackward_zmax" value="BackwardPID_zmin + BackwardInnerEndcap_length + EcalEndcapN_length"/> + <constant name="EcalBarrelForward_zmax" value="ForwardPIDRegion_zmin + EcalBarrelForward_length"/> + <constant name="EcalBarrelBackward_zmax" value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length + EcalEndcapN_length"/> <constant name="EcalBarrel_length" value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/> <constant name="EcalBarrel_offset" value="(EcalBarrelForward_zmax - EcalBarrelBackward_zmax)/2.0"/> @@ -435,18 +429,18 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc </documentation> <constant name="DIRCReadout_length" value="30*cm"/> <constant name="DIRCForward_length" value="0*cm"/> - <constant name="DIRCForward_zmax" value="ForwardPID_zmin + DIRCForward_length"/> - <constant name="DIRCBackward_zmax" value="BackwardPID_zmin + BackwardInnerEndcap_length + EcalEndcapN_length + DIRCReadout_length"/> + <constant name="DIRCForward_zmax" value="ForwardPIDRegion_zmin + DIRCForward_length"/> + <constant name="DIRCBackward_zmax" value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length + EcalEndcapN_length + DIRCReadout_length"/> <constant name="DIRC_length" value="DIRCForward_zmax + DIRCBackward_zmax"/> <constant name="DIRC_offset" value="(DIRCForward_zmax - DIRCBackward_zmax)/2"/> - <constant name="DIRC_rmin" value="TrackerBarrel_rmax"/> - <constant name="DIRC_rmax" value="DIRC_rmin + BarrelPIDThickness"/> + <constant name="DIRC_rmin" value="CentralTrackingRegion_rmax"/> + <constant name="DIRC_rmax" value="DIRC_rmin + BarrelPIDRegion_thickness"/> <documentation> ## Hadronic Calorimeter Parameters </documentation> - <constant name="HcalEndcapP_zmin" value="max(EcalEndcapP_zmin + EcalEndcapP_length, Solenoid_length / 2.0 + Solenoid_offset) "/> + <constant name="HcalEndcapP_zmin" value="EcalEndcapP_zmin + EcalEndcapP_length"/> <constant name="HcalEndcapP_length" value="120.0*cm"/> <comment> HcalEndcapP needs to clear the expanding beampipe with 2 * crossing angle + its radius of BeampipeOD / 2</comment> <constant name="HcalEndcapP_rmin" value="max((HcalEndcapP_zmin + HcalEndcapP_length) * tan(2.0 * abs(CrossingAngle)) + BeampipeOD / 2.0, 15 * cm)"/> diff --git a/compact/display.xml b/compact/display.xml index a335591c4b9eb337c3a5b8eacf210b7f14852298..01a2d888813324a12b3a71aa1060c685f3c76de1 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -10,10 +10,15 @@ <comment> Tracking Visualizations </comment> - <vis name="TrackerVis" ref="AnlRed" /> + <vis name="TrackerVis" ref="AnlRed" /> <vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="true" /> + <vis name="TrackerServiceVis" ref="AnlGold" showDaughters="false" /> <vis name="TrackerLayerVis" ref="AnlGray" visible="true" showDaughters="true" /> <vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" /> + <vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="false" /> + <comment> Visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) </comment> + <vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> + <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> <vis name="VertexSupportVis" ref="AnlBlue" showDaughters="false" /> <vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="true" /> diff --git a/compact/display_geoviewer.xml b/compact/display_geoviewer.xml index e5db890e4be47694e936e25c48782ec7b4d87367..217351bda9360f16d4f69112d2148bbb94803ee9 100644 --- a/compact/display_geoviewer.xml +++ b/compact/display_geoviewer.xml @@ -11,10 +11,14 @@ Tracking Visualizations </comment> <vis name="TrackerVis" ref="AnlRed" /> - <vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="true" /> + <vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" /> + <vis name="TrackerServiceVis" ref="AnlGold" showDaughters="false" /> <vis name="TrackerLayerVis" ref="AnlGray" visible="true" showDaughters="true" /> - <vis name="TrackerSubassemblyVis" ref="TrackerLayerVis"/> <vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" /> + <vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="true" /> + <comment> Simple visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) for better performance </comment> + <vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> + <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> <vis name="VertexSupportVis" ref="AnlBlue" visible="true" showDaughters="true" /> <vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="true" /> @@ -65,7 +69,7 @@ <vis name="RICHVis" ref="AnlTeal" showDaughters="true"/> <vis name="DIRCVis" ref="AnlTeal" showDaughters="true" visible="true"/> - <vis name="DIRCLayerVis" ref="AnlTeal" showDaughters="false" visible="true"/> + <vis name="DIRCLayerVis" ref="AnlTeal" showDaughters="true" visible="true"/> <vis name="DIRCModuleVis" ref="AnlTeal" showDaughters="true" visible="true"/> <vis name="DIRCSupportVis" ref="AnlTeal" showDaughters="true" visible="true"/> <vis name="DIRCFrameVis" ref="AnlOrange" showDaughters="true" visible="true"/> diff --git a/compact/drich.xml b/compact/drich.xml index 59a14b35648b0c01b3a38dbbcb02711312e1be76..f3950cba183ee9908fbad1507527e2085e81d184 100644 --- a/compact/drich.xml +++ b/compact/drich.xml @@ -3,10 +3,10 @@ <define> <!-- vessel (=snout+tank) geometry --> -<constant name="DRICH_zmin" value="ForwardPID_zmin"/> <!-- vessel front --> -<constant name="DRICH_Length" value="ForwardPID_length"/> <!-- overall vessel length (including snout) --> -<constant name="DRICH_rmin0" value="ForwardPID_rmin1"/> <!-- bore radius at dRICh vessel frontplane --> -<constant name="DRICH_rmin1" value="ForwardPID_rmin2"/> <!-- bore radius at dRICh vessel backplane --> +<constant name="DRICH_zmin" value="ForwardPIDRegion_zmin"/> <!-- vessel front --> +<constant name="DRICH_Length" value="ForwardPIDRegion_length"/> <!-- overall vessel length (including snout) --> +<constant name="DRICH_rmin0" value="ForwardPIDRegion_rmin1"/> <!-- bore radius at dRICh vessel frontplane --> +<constant name="DRICH_rmin1" value="ForwardPIDRegion_rmin2"/> <!-- bore radius at dRICh vessel backplane --> <constant name="DRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls --> <constant name="DRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls --> <!-- tank geometry: cylinder, holding the majority of detector components --> diff --git a/compact/ecal_barrel.xml b/compact/ecal_barrel.xml index e56d75e73e3fed6efe1a85cc748161a690230e54..74b0d0c03298a75935838c7a7fb5f98c0cf31cb5 100644 --- a/compact/ecal_barrel.xml +++ b/compact/ecal_barrel.xml @@ -21,7 +21,7 @@ <constant name="EcalBarrel_ModRepeat" value="CaloSides"/> <constant name="EcalBarrel_ModLength" value="0.5*m"/> <constant name="EcalBarrel_ModWidth" value="0.5*m"/> - <constant name="EcalBarrel_AvailThickness" value="EcalBarrelEnvelope_thickness-EcalBarrel_Support_thickness"/> + <constant name="EcalBarrel_AvailThickness" value="EcalBarrelRegion_thickness-EcalBarrel_Support_thickness"/> <constant name="EcalBarrel_ReadoutLayerThickness" value="EcalBarrel_SiliconThickness + EcalBarrel_ElectronicsThickness diff --git a/compact/ecal_barrel_interlayers.xml b/compact/ecal_barrel_interlayers.xml index 096b48e6b314be3ce4f1173922119fc7ec3db434..c037147ad5cb46a827ebc016f738c223a4d96183 100644 --- a/compact/ecal_barrel_interlayers.xml +++ b/compact/ecal_barrel_interlayers.xml @@ -35,7 +35,7 @@ <constant name="EcalBarrel_ModRepeat" value="CaloSides"/> <constant name="EcalBarrel_ModLength" value="0.5*m"/> <constant name="EcalBarrel_ModWidth" value="0.5*m"/> - <constant name="EcalBarrel_AvailThickness" value="EcalBarrelEnvelope_thickness-EcalBarrel_Support_thickness"/> + <constant name="EcalBarrel_AvailThickness" value="EcalBarrelRegion_thickness-EcalBarrel_Support_thickness"/> <constant name="EcalBarrel_ImagingLayerThickness" value="EcalBarrel_SiliconThickness diff --git a/compact/gem_tracker_endcap.xml b/compact/gem_tracker_endcap.xml index ede46043fbeec86ac81793b8f47562ae7345c5e3..912af3720f10a5b13134d565746ae476ef446e36 100644 --- a/compact/gem_tracker_endcap.xml +++ b/compact/gem_tracker_endcap.xml @@ -3,14 +3,14 @@ <comment> Endcap Tracker </comment> <define> - <constant name="GEMTrackerEndcapP_thickness" value="min(10.0*cm,ForwardTracking_length)" /> - <constant name="GEMTrackerEndcapN_thickness" value="min(10.0*cm,BackwardTracking_length)" /> - <constant name="GEMTrackerEndcapP_zmin" value="ForwardTracking_zmin"/> - <constant name="GEMTrackerEndcapN_zmin" value="BackwardTracking_zmin"/> + <constant name="GEMTrackerEndcapP_thickness" value="min(10.0*cm,ForwardTrackingRegion_length)" /> + <constant name="GEMTrackerEndcapN_thickness" value="min(10.0*cm,BackwardTrackingRegion_length)" /> + <constant name="GEMTrackerEndcapP_zmin" value="ForwardTrackingRegion_zmin"/> + <constant name="GEMTrackerEndcapN_zmin" value="BackwardTrackingRegion_zmin"/> <constant name="GEMTrackerEndcapP_rmin" value="19*cm" /> <constant name="GEMTrackerEndcapN_rmin" value="10*cm" /> <constant name="GEMTrackerEndcapP_rmax" value="200*cm" /> - <constant name="GEMTrackerEndcapN_rmax" value="BackwardPID_rmax" /> + <constant name="GEMTrackerEndcapN_rmax" value="BackwardPIDRegion_rmax" /> <constant name="GEMTrackerEndcapOpeningAngle" value="30.4*degree"/> <constant name="GEMTrackerEndcap_dz" value="15*mm" /> <comment> @@ -87,7 +87,7 @@ <detectors> <detector - id="GEMTrackerEndcapP_ID" + id="TrackerEndcapP_3_ID" name="GEMTrackerEndcapP" type="athena_GEMTrackerEndcap" readout="GEMTrackerEndcapHits" @@ -151,7 +151,7 @@ </detector> <detector - id="GEMTrackerEndcapN_ID" + id="TrackerEndcapN_3_ID" name="GEMTrackerEndcapN" type="athena_GEMTrackerEndcap" readout="GEMTrackerEndcapHits" diff --git a/compact/materials.xml b/compact/materials.xml index 4829091dba36c1632c098cf201fb2a74fc5928cd..4b844019d6df07f46419665c429324bafb6fdf1f 100644 --- a/compact/materials.xml +++ b/compact/materials.xml @@ -318,4 +318,23 @@ <composite n="8" ref="C"/> <composite n="8" ref="H"/> </material> + <material name="MMGAS_ResistivePaste"> + <D type="density" unit="g/cm3" value="0.77906"/> + <composite n="1" ref="C"/> + </material> + <material name="MMGAS_InoxForMesh" state="solid"> + <D type="density" unit="g/cm3" value="2.8548"/> + <fraction n="0.19" ref="Cr"/> + <fraction n="0.68" ref="Fe"/> + <fraction n="0.02" ref="Mn"/> + <fraction n="0.10" ref="Ni"/> + <fraction n="0.01" ref="Si"/> + </material> + <material name="Ar90IsoButane" state="gas"> + <D type="density" unit="g/cm3" value="0.00170335"/> + <fraction n="0.90" ref="Ar"/> + <fraction n="0.0826586" ref="C"/> + <fraction n="0.0173414" ref="H"/> + </material> + </materials> diff --git a/compact/mrich.xml b/compact/mrich.xml index 703e620df7f5ba2047719b60309c06f6a1ba2956..3f816e429c64f5218de3cbb524862061ad5ee8cf 100644 --- a/compact/mrich.xml +++ b/compact/mrich.xml @@ -2,9 +2,9 @@ <comment> MRICH </comment> <define> <constant name="MRICH_rmin" value="10*cm"/> - <constant name="MRICH_rmax" value="BackwardPID_rmax"/> - <constant name="MRICH_length" value="BackwardPID_length"/> - <constant name="MRICH_zmin" value="BackwardPID_zmin"/> + <constant name="MRICH_rmax" value="BackwardPIDRegion_rmax"/> + <constant name="MRICH_length" value="BackwardPIDRegion_length"/> + <constant name="MRICH_zmin" value="BackwardPIDRegion_zmin"/> <constant name="MRICHAerogel_thickness" value="30.0*mm"/> <constant name="MRICHAerogel_width" value="126.5*mm"/> diff --git a/compact/mrich_alt.xml b/compact/mrich_alt.xml index b12897eb58e8f018762e4006aaba05a8940e89d5..72a7f9a29e369a027bdd3d319e9e1e6cba4c3a8c 100644 --- a/compact/mrich_alt.xml +++ b/compact/mrich_alt.xml @@ -2,9 +2,9 @@ <comment> MRICH (alternative design) </comment> <define> <constant name="MRICH_rmin" value="10*cm"/> - <constant name="MRICH_rmax" value="BackwardPID_rmax"/> - <constant name="MRICH_length" value="BackwardPID_length"/> - <constant name="MRICH_zmin" value="BackwardPID_zmin"/> + <constant name="MRICH_rmax" value="BackwardPIDRegion_rmax"/> + <constant name="MRICH_length" value="BackwardPIDRegion_length"/> + <constant name="MRICH_zmin" value="BackwardPIDRegion_zmin"/> <constant name="MRICHAerogel_thickness" value="30.0*mm"/> <constant name="MRICHAerogel_width" value="126.5*mm"/> diff --git a/compact/pid_config_canyonlands.xml b/compact/pid_config_canyonlands.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb98490f6f4a1c4eb8522552be572793c48a08a5 --- /dev/null +++ b/compact/pid_config_canyonlands.xml @@ -0,0 +1,8 @@ +<lccdd> + +<include ref="fake_dirc.xml"/> +<!--include ref="dirc.xml"/--> +<!--include ref="mrich.xml"/--> +<include ref="drich.xml"/> + +</lccdd> diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml index 81386563f184eebe48dc53474ce999b1fda1f43d..90233393031feb5516e402c397fec2cb40958f4e 100644 --- a/compact/subsystem_views/calorimeters.xml +++ b/compact/subsystem_views/calorimeters.xml @@ -97,50 +97,6 @@ </documentation> <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> - - </detectors> - - <documentation level="10"> ## Central calorimetry </documentation> diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml index 9031454a023ec85223c883691273e7cc6041cb7c..0dfbc0640c17d7cf07d76b0fa36e3f3053912597 100644 --- a/compact/subsystem_views/inner_detector.xml +++ b/compact/subsystem_views/inner_detector.xml @@ -96,81 +96,16 @@ Note: When changing magnet, also select dimensions in definitions.xml. </documentation> - <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"> ## Central tracking detectors </documentation> - <include ref="compact/tracking_config_acadia.xml"/> - - <!--include ref="compact/tracking_config_mgpds.xml"/--> + <include ref="compact/tracking_config_canyonlands.xml"/> <documentation level="10"> ### PID detectors </documentation> - <include ref="compact/pid_config_acadia.xml"/> + <include ref="compact/pid_config_canyonlands.xml"/> <documentation level="10"> ## Central calorimetry diff --git a/compact/subsystem_views/inner_tracking_only.xml b/compact/subsystem_views/inner_tracking_only.xml deleted file mode 100644 index 9b0bb13e5f542d94842b87ff987358f9267deb3e..0000000000000000000000000000000000000000 --- a/compact/subsystem_views/inner_tracking_only.xml +++ /dev/null @@ -1,242 +0,0 @@ -<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> - - <debug> - <type name="surface" value="0"/> - <type name="material" value="0"/> - <type name="readout" value="0"/> - <type name="segmentation" value="0"/> - <type name="limits" value="0"/> - <type name="region" value="0"/> - <type name="includes" value="0"/> - </debug> - - <documentation level="-1"> - # Athena Detector - - https://eicweb.phy.anl.gov/EIC/detectors/athena.git - - https://eicweb.phy.anl.gov/EIC/detectors/ip6.git - </documentation> - - <!-- Some information about detector --> - <info name="Athena Detector" title="Athena Detector" - author="Athena Collaboration" - url="https://eicweb.phy.anl.gov/EIC/detectors/athena.git" - status="development" - version="v1 2021-03-16"> - <comment> Athena </comment> - </info> - <define> - <documentation level="2"> - ## Main Constant Definitions - - The ip6 (or other ip) defines should be included first. - These files have only a define tags. - </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> - <include ref="compact/definitions.xml" /> - </define> - - <includes> - <gdmlFile ref="compact/elements.xml"/> - <gdmlFile ref="compact/materials.xml"/> - <file ref="compact/optical_materials.xml"/> - </includes> - - <limits> - <limitset name="EICBeamlineLimits"> - <limit name="step_length_max" particles="*" value="1.0" unit="mm" /> - <limit name="track_length_max" particles="*" value="1.0" unit="mm" /> - <limit name="time_max" particles="*" value="0.1" unit="ns" /> - <limit name="ekin_min" particles="*" value="0.001" unit="MeV" /> - <limit name="range_min" particles="*" value="0.1" unit="mm" /> - </limitset> - <limitset name="cal_limits"> - <limit name="step_length_max" particles="*" value="5.0" unit="mm"/> - </limitset> - </limits> - - <display> - <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> - </display> - - <documentation level="0"> - ## Detector Subsystems - - ### IP Subsystems - - The interaction point subsystems are included before the central detector subsystems. - This is becuase the IP subsystems, for exmaple the beampipe, will define paramters - which are subsquently used in the central detector construction -- e.g. the vertex tracker - uses the beampipe OD to help define its placement. - - The IP subsystems include the Far forward and backward regions. The list of subsystem includes: - - Interaction region beampipe - - B0 tracker - - Off-momentum tracker - - Far forward roman pots - - Zero Degree Calorimeter - - Beam line magnets. - - and more... - </documentation> - - <comment> - Beamline elements - ----------------- - </comment> - - <comment> - Main magnet - ----------- - Note: When changing magnet, also select dimensions in definitions.xml. - </comment> - <!--include ref="compact/solenoid.xml"/--> - - <comment> - Tracker subassemblies for ACTS - ------------------------------ - </comment> - <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> - - <comment> - Central tracking detectors - -------------------------- - </comment> - <include ref="compact/vertex_tracker.xml"/> - <include ref="compact/central_tracker.xml"/> - - <comment> - PID detectors - ------------- - </comment> - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <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> - FB elements - ----------- - None (TODO) - </comment> - - <readouts> - </readouts> - -</lccdd> diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml index c5103a4a46a61d6ce46d47edcf9e2b143c79f529..0ee9acd1d78923da3c447fbb38454c6749bc87e5 100644 --- a/compact/subsystem_views/pid_only.xml +++ b/compact/subsystem_views/pid_only.xml @@ -86,76 +86,13 @@ Beamline elements ----------------- </comment> + <include ref="ip6/beampipe.xml" /> <comment> Main magnet ----------- Note: When changing magnet, also select dimensions in definitions.xml. </comment> - <comment> - Tracker subassemblies for ACTS - ------------------------------ - </comment> - <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"> ## Central tracking detectors </documentation> @@ -164,7 +101,7 @@ PID detectors ------------- </comment> - <include ref="compact/pid_config_acadia.xml"/> + <include ref="compact/pid_config_canyonlands.xml"/> <comment> diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml index 1f23d873de60e8b13fe4bf6683ee768b3edfc52d..de12be8e303c67673c89aac97f74ecffe93706bf 100644 --- a/compact/subsystem_views/tracking_only.xml +++ b/compact/subsystem_views/tracking_only.xml @@ -86,6 +86,7 @@ Beamline elements ----------------- </comment> + <include ref="ip6/beampipe.xml" /> <comment> Main magnet @@ -94,76 +95,11 @@ </comment> <!--include ref="compact/solenoid.xml"/--> - <comment> - Tracker subassemblies for ACTS - ------------------------------ - </comment> - <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> - <comment> Central tracking detectors -------------------------- </comment> - <include ref="compact/tracking_config_acadia.xml"/> + <include ref="compact/tracking_config_canyonlands.xml"/> <comment> PID detectors diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml index 20852f15a9168a44220ff34fbbf3a4aa6677a5a7..18cbd2cd29c6891e9ae4d849a8146bb913731497 100644 --- a/compact/subsystem_views/vertex_only.xml +++ b/compact/subsystem_views/vertex_only.xml @@ -94,75 +94,11 @@ </comment> <!--include ref="compact/solenoid.xml"/--> - <comment> - Tracker subassemblies for ACTS - ------------------------------ - </comment> - <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> - <comment> Central tracking detectors -------------------------- </comment> - <include ref="compact/vertex_tracker.xml"/> + <include ref="compact/vertex_tracker_3layers.xml"/> <comment> PID detectors diff --git a/compact/tracking_config_acadia.xml b/compact/tracking_config_acadia.xml index 03b4fdaf9bada6cbe7103b3a34322b660809f788..be7e595d9502291e2df43c963d640236df4bf873 100644 --- a/compact/tracking_config_acadia.xml +++ b/compact/tracking_config_acadia.xml @@ -9,6 +9,45 @@ ### Silicon tracking configuration </documentation> + <documentation level="5"> + ### Tracker subassemblies for ACTS + </documentation> + <detectors> + <detector id="VertexSubAssembly_0_ID" + name="VertexBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexEndcapN" /> + <composite name="VertexBarrel" /> + <composite name="VertexEndcapP" /> + </detector> + <detector id="TrackerSubAssembly_0_ID" + name="TrackerBarrelSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerEndcapN_Inner"/> + <composite name="TrackerBarrel_Inner"/> + <composite name="TrackerEndcapP_Inner"/> + </detector> + <detector id="TrackerSubAssembly_1_ID" + name="TrackerSubAssembly_Outer" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Outer"/> + <composite name="TrackerEndcapP_Outer"/> + <composite name="TrackerEndcapN_Outer"/> + </detector> + + <detector id="TrackerSubAssembly_1_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> + + </detectors> + <include ref="vertex_tracker.xml"/> <include ref="central_tracker.xml"/> <include ref="gem_tracker_endcap.xml"/> diff --git a/compact/tracking_config_canyonlands.xml b/compact/tracking_config_canyonlands.xml new file mode 100644 index 0000000000000000000000000000000000000000..34518ba6a14bd0578737535ae5f62a608d4b96a4 --- /dev/null +++ b/compact/tracking_config_canyonlands.xml @@ -0,0 +1,71 @@ +<lccdd> + + <display> + </display> + <define> + </define> + + <documentation level="10"> + ### Silicon tracking configuration + </documentation> + + <documentation level="5"> + ### Tracker subassemblies for ACTS + </documentation> + <detectors> + <detector id="VertexSubAssembly_0_ID" + name="VertexBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexBarrel" /> + </detector> + <detector id="TrackerSubAssembly_0_ID" + name="InnerTrackerSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="InnerTrackerEndcapN"/> + <composite name="InnerTrackerBarrel"/> + <composite name="InnerTrackerEndcapP"/> + </detector> + <detector id="TrackerSubAssembly_1_ID" + name="MedialTrackerSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="MedialTrackerEndcapN"/> + <composite name="MedialTrackerBarrel"/> + <composite name="MedialTrackerEndcapP"/> + </detector> + <detector id="TrackerSubAssembly_2_ID" + name="OuterTrackerSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="OuterTrackerEndcapNAssembly"/> + <composite name="OuterTrackerBarrel"/> + <composite name="OuterTrackerEndcapPAssembly"/> + </detector> + <detector id="TrackerCompositeEndcapN_0_ID" + name="OuterTrackerCompositeEndcapN" + type="athena_CompositeTracker" + actsType="endcap" + vis="TrackerSubAssemblyVis"> + <position x="0*cm" y="0*cm" z="-1*um" /> + <composite name="OuterTrackerEndcapN"/> + <composite name="GEMEndcapN"/> + </detector> + <detector id="TrackerCompositeEndcapP_0_ID" + name="OuterTrackerCompositeEndcapP" + type="athena_CompositeTracker" + actsType="endcap" + vis="TrackerSubAssemblyVis"> + <position x="0*cm" y="0*cm" z="0*cm" /> + <composite name="OuterTrackerEndcapP"/> + <composite name="GEMEndcapP"/> + </detector> + + </detectors> + + <include ref="vertex_tracker_3layers.xml"/> + <include ref="central_tracker_hybrid_v2.xml"/> + +</lccdd> + diff --git a/compact/vertex_tracker.xml b/compact/vertex_tracker.xml index accefce6b35170460dcd85f4314cdc96805127a4..b21915495bff1828b4caa9a1f48079a334bc0145 100644 --- a/compact/vertex_tracker.xml +++ b/compact/vertex_tracker.xml @@ -5,8 +5,8 @@ THis value probably can live in the file that includes this one. </comment> <constant name="ITS3Thickness" value="40*um"/> - <constant name="TrackerCarbon_thickness" value="0.12*mm"/> - <constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/> + <constant name="VertexCarbon_thickness" value="0.12*mm"/> + <constant name="VertexEndcapAluminumThickness" value="0.15*mm"/> <documentation> #### Vertex Tracker Barrel Parameters @@ -27,7 +27,14 @@ Simple carbon fiber support shell. </documentation> - <constant name="VertexBarrel_length" value="VertexTrackerBarrel_length"/> + <constant name="VertexBarrel_length" value="300.0*mm"/> + <constant name="VertexTrackerEndcapP_rmin" value="VertexTrackingRegion_rmin"/> + <constant name="VertexTrackerEndcapN_rmin" value="VertexTrackingRegion_rmin"/> + <constant name="VertexTrackerEndcapP_rmax" value="VertexTrackingRegion_rmax"/> + <constant name="VertexTrackerEndcapN_rmax" value="VertexTrackingRegion_rmax"/> + <constant name="VertexTrackerEndcapP_zmax" value="VertexTrackingRegionP_zmax"/> + <constant name="VertexTrackerEndcapN_zmax" value="VertexTrackingRegionN_zmax"/> + <constant name="VertexBarrelLayer_length" value="VertexBarrel_length - 1*mm"/> <constant name="VertexBarrelMod_length" value="VertexBarrel_length - 2*mm"/> @@ -98,8 +105,11 @@ Simple carbon fiber support shell. </display> <detectors> + <documentation level="5"> + ### Actual detectors + </documentation> <detector - id="VertexBarrel_ID" + id="VertexBarrel_0_ID" name="VertexBarrel" type="athena_VertexBarrel" readout="VertexBarrelHits" @@ -177,7 +187,7 @@ Simple carbon fiber support shell. </detector> <detector - id="VertexEndcapP_ID" + id="VertexEndcapP_0_ID" name="VertexEndcapP" type="athena_TrapEndcapTracker" readout="VertexEndcapHits" @@ -201,8 +211,8 @@ Simple carbon fiber support shell. <module name="Module1" vis="AnlProcess_Blue"> <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> - <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> + <module_component thickness="VertexEndcapAluminumThickness" material="Aluminum"/> + <module_component thickness="VertexCarbon_thickness" material="CarbonFiber"/> </module> <layer id="1"> <envelope vis="TrackerVis" @@ -220,7 +230,7 @@ Simple carbon fiber support shell. <detector - id="VertexEndcapN_ID" + id="VertexEndcapN_0_ID" name="VertexEndcapN" type="athena_TrapEndcapTracker" readout="VertexEndcapHits" @@ -243,8 +253,8 @@ Simple carbon fiber support shell. <module name="Module1" vis="AnlProcess_Blue"> <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/> - <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/> + <module_component thickness="VertexEndcapAluminumThickness" material="Aluminum"/> + <module_component thickness="VertexCarbon_thickness" material="CarbonFiber"/> </module> <layer id="1"> <envelope vis="TrackerVis" @@ -260,58 +270,6 @@ Simple carbon fiber support shell. </layer> </detector> - - <!-- - <detector id="VertexEndcapP_ID" - name="VertexEndcapP" - type="athena_SimpleDiskTracker" - readout="VertexEndcapHits" - insideTrackingVolume="true" - reflect="false" vis="TrackerVis"> - <position x="0" y="0" z="0.0*mm"/> - <layer id="1" vis="AnlOrange" - inner_z="VertexTrackerEndcapP_zmin + 0.5*VertexTrackerEndcap_delta" - inner_r="VertexTrackerEndcapP_rmin-3*mm" - outer_r="VertexTrackerEndcapP_rmax"> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - </layer> - <layer id="2" vis="AnlOrange" - inner_z="VertexTrackerEndcapP_zmin + 1.5*VertexTrackerEndcap_delta" - inner_r="VertexTrackerEndcapP_rmin" - outer_r="VertexTrackerEndcapP_rmax"> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - </layer> - </detector> - - <detector id="VertexEndcapN_ID" - name="VertexEndcapN" - type="athena_SimpleDiskTracker" - readout="VertexEndcapHits" - insideTrackingVolume="true" - reflect="true" vis="TrackerVis"> - <position x="0" y="0" z="-0.0*mm-1.0e-9*mm"/> - <layer id="1" vis="AnlOrange" - inner_z="VertexTrackerEndcapN_zmin + 0.5*VertexTrackerEndcap_delta" - inner_r="VertexTrackerEndcapN_rmin" - outer_r="VertexTrackerEndcapN_rmax"> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - </layer> - <layer id="2" vis="AnlOrange" - inner_z="VertexTrackerEndcapN_zmin + 1.5*VertexTrackerEndcap_delta" - inner_r="VertexTrackerEndcapN_rmin" - outer_r="VertexTrackerEndcapN_rmax"> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - <slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/> - <slice material="Air" thickness="1.0*mm" vis="AnlOrange" /> - </layer> - </detector> - --> </detectors> <readouts> diff --git a/compact/vertex_tracker_3layers.xml b/compact/vertex_tracker_3layers.xml new file mode 100644 index 0000000000000000000000000000000000000000..20327d9ad979d9325bb6f3c56bce8875fd1ca7f6 --- /dev/null +++ b/compact/vertex_tracker_3layers.xml @@ -0,0 +1,185 @@ +<?xml version="1.0" encoding="UTF-8"?> +<lccdd> + <define> + <comment> + Main parameters + </comment> + + <constant name="SiVertexSensor_thickness" value="40*um"/> + <constant name="VertexBarrelMod_length" value="280.0*mm"/> + <constant name="VertexBarrelMod_rmin" value="3.3*cm"/> + <constant name="VertexBarrelMod_offset" value="1.05*cm"/> + <constant name="VertexBarrelMod_count" value="3"/> + <constant name="VertexBarrelShell_thickness" value="300.0*um"/> + + <documentation> + #### Vertex Tracker Barrel Parameters + +- The sensor modules are 2 half-cylinders. +- There are 2 sensitive layers +- Each sensor has a thickness is 40um +- There is an outer shell for structural support 300um thick. +- The ID of this shell is set (arbitrarily) to 10 cm. + + ##### Sensor layers + +Currently there are 2 sensor layers. Each is composed of 2 half-cylinders modules with only 40um of silicon thickness. + + ##### Support shell + +Simple carbon fiber support shell. + + </documentation> + + <constant name="VertexBarrelEnvelope_length" value="VertexTrackingRegion_length"/> + <constant name="VertexBarrelLayer_length" value="VertexBarrelEnvelope_length - 1*mm"/> + + <constant name="VertexBarrelLayer_thickness" value="0.2*cm"/> + <constant name="VertexBarrelMod_thickness" value="0.1*cm"/> + + <constant name="VertexBarrelMod1_rmin" value="VertexBarrelMod_rmin"/> + <constant name="VertexBarrelMod2_rmin" value="VertexBarrelMod_rmin + 1 * VertexBarrelMod_offset"/> + <constant name="VertexBarrelMod3_rmin" value="VertexBarrelMod_rmin + 2 * VertexBarrelMod_offset"/> + + <constant name="VertexBarrelLayer1_rmin" value="VertexBarrelMod_rmin - VertexBarrelLayer_thickness/2.0"/> + <constant name="VertexBarrelLayer1_rmax" value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness"/> + <constant name="VertexBarrelLayer2_rmin" value="VertexBarrelLayer1_rmin + 1 * VertexBarrelMod_offset"/> + <constant name="VertexBarrelLayer2_rmax" value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness"/> + <constant name="VertexBarrelLayer3_rmin" value="VertexBarrelLayer1_rmin + 2 * VertexBarrelMod_offset"/> + <constant name="VertexBarrelLayer3_rmax" value="VertexBarrelLayer3_rmin + VertexBarrelLayer_thickness"/> + + <comment> + "Support" is to "shell" like "layer" is to "module", and is need for the flat stave barrel implementation. + </comment> + <constant name="VertexBarrelShell_rmin" value="VertexBarrelMod_rmin + VertexBarrelMod_count * VertexBarrelMod_offset"/> + <constant name="VertexBarrelShell_rmax" value="VertexBarrelShell_rmin + VertexBarrelShell_thickness"/> + <constant name="VertexBarrelShell_length" value="VertexBarrelMod_length"/> + + <constant name="VertexBarrelSupport_thickness" value="0.1*cm"/> + <constant name="VertexBarrelSupport_rmin" value="VertexBarrelShell_rmin-VertexBarrelSupport_thickness/2.0"/> + <constant name="VertexBarrelSupport_rmax" value="VertexBarrelSupport_rmin + VertexBarrelSupport_thickness"/> + <constant name="VertexBarrelSupport_length" value="VertexBarrelLayer_length"/> + + <comment> + Extra parameters to approximate a cylinder as a set of skinny staves + due to ACTS limitations. + </comment> + <constant name="VertexBarrelStave_count" value="128"/> + <constant name="VertexBarrelStave1_width" value="2*VertexBarrelMod1_rmin * tan(180*degree/VertexBarrelStave_count)"/> + <constant name="VertexBarrelStave2_width" value="2*VertexBarrelMod2_rmin * tan(180*degree/VertexBarrelStave_count)"/> + <constant name="VertexBarrelStave3_width" value="2*VertexBarrelMod3_rmin * tan(180*degree/VertexBarrelStave_count)"/> + <constant name="VertexBarrelShellStave_width" value="2*VertexBarrelShell_rmin * tan(180*degree/VertexBarrelStave_count)"/> + </define> + + <display> + </display> + + <detectors> + <documentation level="5"> + ### Actual detectors + </documentation> + <detector + id="VertexBarrel_0_ID" + name="VertexBarrel" + type="athena_VertexBarrel" + readout="VertexBarrelHits" + insideTrackingVolume="true"> + <dimensions + rmin="VertexBarrelLayer1_rmin" + rmax="VertexBarrelSupport_rmax" + length="VertexBarrelEnvelope_length" /> + <comment>Vertex Barrel Modules</comment> + <module name="Module1" vis="VertexLayerVis"> + <module_component name="ITS3" + material="Silicon" + sensitive="true" + width="VertexBarrelStave1_width" + length="VertexBarrelMod_length" + thickness="SiVertexSensor_thickness" + vis="VertexLayerVis" /> + </module> + <module name="Module2" vis="VertexLayerVis"> + <module_component name="ITS3" + material="Silicon" + sensitive="true" + width="VertexBarrelStave2_width" + length="VertexBarrelMod_length" + thickness="SiVertexSensor_thickness" + vis="VertexLayerVis" /> + </module> + <module name="Module3" vis="VertexLayerVis"> + <module_component name="ITS3" + material="Silicon" + sensitive="true" + width="VertexBarrelStave3_width" + length="VertexBarrelMod_length" + thickness="SiVertexSensor_thickness" + vis="VertexLayerVis" /> + </module> + <module name="SupportShell" vis="VertexSupportVis"> + <module_component name="CF Shell" + material="CarbonFiber" + sensitive="false" + width="VertexBarrelShellStave_width" + length="VertexBarrelShell_length" + thickness="VertexBarrelShell_thickness" + vis="VertexSupportVis" /> + </module> + <comment> Layers composed of many arrayed modules </comment> + <layer module="Module1" id="1" vis="VertexLayerVis"> + <barrel_envelope + inner_r="VertexBarrelLayer1_rmin" + outer_r="VertexBarrelLayer1_rmax" + z_length="VertexBarrelLayer_length" /> + <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" /> + <comment> + phi0 : Starting phi of first module. + phi_tilt : Phi tilt of a module. + rc : Radius of the module center. + nphi : Number of modules in phi. + rphi_dr : The delta radius of every other module. + z0 : Z position of first module in phi. + nz : Number of modules to place in z. + dr : Radial displacement parameter, of every other module. + </comment> + <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod1_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + </layer> + <layer module="Module2" id="2" vis="VertexLayerVis"> + <barrel_envelope + inner_r="VertexBarrelLayer2_rmin" + outer_r="VertexBarrelLayer2_rmax" + z_length="VertexBarrelLayer_length" /> + <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" /> + <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod2_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + </layer> + <layer module="Module3" id="3" vis="VertexLayerVis"> + <barrel_envelope + inner_r="VertexBarrelLayer3_rmin" + outer_r="VertexBarrelLayer3_rmax" + z_length="VertexBarrelLayer_length" /> + <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" /> + <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod3_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + </layer> + <layer module="SupportShell" id="VertexBarrelMod_count + 1" vis="VertexSupportVis"> + <barrel_envelope + inner_r="VertexBarrelSupport_rmin" + outer_r="VertexBarrelSupport_rmax" + z_length="VertexBarrelSupport_length" /> + <layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" /> + <rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelShell_rmin" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + </layer> + </detector> + </detectors> + + <readouts> + <readout name="VertexBarrelHits"> + <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:-16,y:-16</id> + </readout> + </readouts> + +</lccdd> diff --git a/src/CompositeTracker_geo.cpp b/src/CompositeTracker_geo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..33ee7407e77c8a866f16dcd75d30b63e2ec57c17 --- /dev/null +++ b/src/CompositeTracker_geo.cpp @@ -0,0 +1,65 @@ +//========================================================================== +// Based off DD4hep_SubDetectorAssembly +// +// This is a simple plugin to allow compositing different detectors +// into a single barrel or endcap for ACTS +// Note: positive/negative position strings differentiate between +// positive/negative endcaps +//-------------------------------------------------------------------------- + +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "XML/Utilities.h" + +#include "Acts/Plugins/DD4hep/ActsExtension.hpp" + +using namespace dd4hep; +using namespace dd4hep::detail; + +static Ref_t create_element(Detector& description, xml_h e, Ref_t) +{ + xml_det_t x_det(e); + const std::string det_name = x_det.nameStr(); + DetElement sdet(det_name, x_det.id()); + Volume vol; + Position pos; + + const bool usePos = x_det.hasChild(_U(position)); + + sdet.setType("compound"); + xml::setDetectorTypeFlag(e, sdet); + + const std::string actsType = getAttrOrDefault(x_det, _Unicode(actsType), "endcap"); + printout(DEBUG, det_name, "+++ Creating composite tracking detector (type: " + actsType + ")"); + assert(actsType == "barrel" || actsType == "endcap"); + + // ACTS extension + { + Acts::ActsExtension* detWorldExt = new Acts::ActsExtension(); + detWorldExt->addType(actsType, "detector"); + sdet.addExtension<Acts::ActsExtension>(detWorldExt); + } + + if (usePos) { + pos = Position(x_det.position().x(), x_det.position().y(), x_det.position().z()); + } + vol = Assembly(det_name); + vol.setAttributes(description, x_det.regionStr(), x_det.limitsStr(), x_det.visStr()); + + Volume mother = description.pickMotherVolume(sdet); + PlacedVolume pv; + if (usePos) { + pv = mother.placeVolume(vol, pos); + } else { + pv = mother.placeVolume(vol); + } + sdet.setPlacement(pv); + for (xml_coll_t c(x_det, _U(composite)); c; ++c) { + xml_dim_t component = c; + const std::string nam = component.nameStr(); + description.declareParent(nam, sdet); + } + return sdet; +} + +DECLARE_DETELEMENT(athena_CompositeTracker, create_element)