From 32413eb6f75ca84a5228966825bd8154daa2ac76 Mon Sep 17 00:00:00 2001 From: Zhenyu Ye <yezhenyu@uic.edu> Date: Tue, 30 Nov 2021 00:42:40 +0000 Subject: [PATCH] Resolve "update TOF for DeathValley" --- .gitlab-ci.yml | 3 + README.md | 2 +- athena.xml | 6 +- compact/central_tracker_hybrid_v2.xml | 31 ++-- compact/definitions.xml | 32 +++- compact/display.xml | 16 +- compact/display_detailed.xml | 179 ++++++++++++------ compact/display_geoviewer.xml | 19 +- compact/drich.xml | 8 +- compact/ecal.xml | 3 - compact/erich.xml | 20 +- compact/materials.xml | 29 +++ compact/pid_config_deathvalley.xml | 11 ++ compact/subsystem_views/calorimeters.xml | 4 +- compact/subsystem_views/dirc_only.xml | 2 +- compact/subsystem_views/drich_only.xml | 2 +- compact/subsystem_views/inner_detector.xml | 7 +- compact/subsystem_views/pfrich_only.xml | 2 +- compact/subsystem_views/pid_only.xml | 4 +- compact/subsystem_views/tracking_only.xml | 8 +- compact/subsystem_views/vertex_only.xml | 2 +- compact/tof.xml | 4 +- compact/tof_barrel.xml | 127 +++++++++---- compact/tof_endcap.xml | 201 +++++++++++---------- compact/tracking_config_deathvalley.xml | 112 ++++++++++++ src/BarrelTrackerWithFrame_geo.cpp | 32 ++-- 26 files changed, 603 insertions(+), 263 deletions(-) create mode 100644 compact/pid_config_deathvalley.xml create mode 100644 compact/tracking_config_deathvalley.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d684144..d92a00ba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -119,10 +119,13 @@ dump_geometry: sed -i -e '/<detectors>/,/<\/detectors>/d' ${DETECTOR_PATH}/compact/tracking_config*.xml mv ${DETECTOR_PATH}/compact/display_geoviewer.xml ${DETECTOR_PATH}/compact/display.xml for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do + echo $xml geo_name=`basename $xml .xml`_geo.root cp $xml ${DETECTOR_PATH}/geo.xml dd_web_display --output geo/${geo_name} ${DETECTOR_PATH}/geo.xml done + ## Lower-resolution display of the pfRICH sensors for global views + - sed -i 's/_default"\/>/_lores"\/>/' ${DETECTOR_PATH}/compact/erich.xml ## full geo with downstream beamline - dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml ## only central detector geo diff --git a/README.md b/README.md index bbf2b842..709c5c25 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ The Athena Detector at IP6 for Electron-Ion Collider experiment. - [DIRC](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/dirc_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) - [Tracking](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/tracking_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all) - [Vertex detector](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/vertex_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) - - [Far-forward](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/ip6_only_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all) + - [Far-forward](https://eic.phy.anl.gov/geoviewer/index.htm?nobrowser&file=https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/geo/ip6_geo.root?job=dump_geometry&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all) <a href="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.pdf?job=report"> <img src="https://eicweb.phy.anl.gov/api/v4/projects/473/jobs/artifacts/master/raw/images/view01.png?job=report" width="400px" /> diff --git a/athena.xml b/athena.xml index 3c59a1e8..3539b477 100644 --- a/athena.xml +++ b/athena.xml @@ -107,13 +107,15 @@ </documentation> <!--include ref="compact/tracking_config_acadia.xml"/--> - <include ref="compact/tracking_config_canyonlands.xml"/> + <!--include ref="compact/tracking_config_canyonlands.xml"/--> + <include ref="compact/tracking_config_deathvalley.xml"/> <documentation level="10"> ### PID detectors </documentation> <!--include ref="compact/pid_config_acadia.xml" /--> - <include ref="compact/pid_config_canyonlands.xml" /> + <!--include ref="compact/pid_config_canyonlands.xml" /--> + <include ref="compact/pid_config_deathvalley.xml" /> <documentation level="10"> ## Central calorimetry diff --git a/compact/central_tracker_hybrid_v2.xml b/compact/central_tracker_hybrid_v2.xml index f9b5899e..1d82c4d9 100644 --- a/compact/central_tracker_hybrid_v2.xml +++ b/compact/central_tracker_hybrid_v2.xml @@ -19,9 +19,6 @@ </comment> <define> - <comment> Main diagonal direction for barrel/endcap transitions </comment> - <constant name="TrackerMainDiagonal_tan" value="Eta1_1_tan"/> - <comment> Inner tracker setup </comment> <constant name="InnerTrackerBarrel_rmin" value="13.38*cm"/> <constant name="InnerTrackerBarrel_offset" value="4.62*cm"/> @@ -147,11 +144,11 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> - <constant name="InnerTrackerBarrelMod2_length" value="2 * InnerTrackerBarrelMod2_rmin / TrackerMainDiagonal_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> - <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * TrackerMainDiagonal_tan" /> + <constant name="InnerTrackerBarrelMod1_length" value="2 * InnerTrackerBarrelMod1_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> + <constant name="InnerTrackerBarrelMod2_length" value="2 * InnerTrackerBarrelMod2_rmin / CentralTrackingBarrel_tan - 0.5*cm - 2. * InnerTrackerBarrelCone_thickness" /> + <constant name="InnerTrackerBarrelServiceCone_rmin1" value="InnerTrackerBarrelCone_zmin * CentralTrackingBarrel_tan" /> <constant name="InnerTrackerBarrelServiceCone_rmax1" value="InnerTrackerBarrelServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" /> - <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * TrackerMainDiagonal_tan" /> + <constant name="InnerTrackerBarrelServiceCone_rmin2" value="InnerTrackerBarrelCone_zmax * CentralTrackingBarrel_tan" /> <constant name="InnerTrackerBarrelServiceCone_rmax2" value="InnerTrackerBarrelServiceCone_rmin2 + SiTrackerServiceConeAl_thickness" /> <constant name="InnerTrackerBarrelSupportCone_rmin1" value="InnerTrackerBarrelServiceCone_rmax1" /> <constant name="InnerTrackerBarrelSupportCone_rmax1" value="InnerTrackerBarrelSupportCone_rmin1 + SiTrackerSupportConeCF_thickness" /> @@ -284,14 +281,14 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan * 0.995, SiTrackerCyl_rmin)" /> + <constant name="InnerTrackerEndcapMod1_rmax" value="min(InnerTrackerEndcapMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" /> <constant name="InnerTrackerEndcapMod1_x1" value="2 * InnerTrackerEndcapMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" /> <constant name="InnerTrackerEndcapMod1_x2" value="2 * InnerTrackerEndcapMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" /> <constant name="InnerTrackerEndcapMod1_y" value="InnerTrackerEndcapMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod1_rmin" /> <constant name="InnerTrackerEndcapMod2_zmin" value="InnerTrackerEndcapMod1_zmin + 1 * InnerTrackerEndcap_offset" /> <constant name="InnerTrackerEndcapMod2_rmin" value="InnerTrackerEndcap_rmin" /> - <constant name="InnerTrackerEndcapMod2_rmax" value="min(InnerTrackerEndcapMod2_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" /> + <constant name="InnerTrackerEndcapMod2_rmax" value="min(InnerTrackerEndcapMod2_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" /> <constant name="InnerTrackerEndcapMod2_x1" value="2 * InnerTrackerEndcapMod2_rmin * tan(SiTrackerEndcapMod_angle/2)" /> <constant name="InnerTrackerEndcapMod2_x2" value="2 * InnerTrackerEndcapMod2_rmax * sin(SiTrackerEndcapMod_angle/2)" /> <constant name="InnerTrackerEndcapMod2_y" value="InnerTrackerEndcapMod2_rmax * cos(SiTrackerEndcapMod_angle/2) - InnerTrackerEndcapMod2_rmin" /> @@ -304,11 +301,11 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan" /> + <constant name="InnerTrackerEndcapServiceCone_rmin1" value="InnerTrackerEndcapCone_zmin * CentralTrackingBarrel_tan" /> <constant name="InnerTrackerEndcapServiceCone_rmax1" value="InnerTrackerEndcapServiceCone_rmin1 + SiTrackerServiceConeAl_thickness" /> <constant name="InnerTrackerEndcapServiceCone_rmin2" value="SiTrackerServiceCyl_rmin" /> <constant name="InnerTrackerEndcapServiceCone_rmax2" value="SiTrackerServiceCyl_rmax" /> - <constant name="InnerTrackerEndcapCone_zmax" value="InnerTrackerEndcapServiceCone_rmin2 / TrackerMainDiagonal_tan" /> + <constant name="InnerTrackerEndcapCone_zmax" value="InnerTrackerEndcapServiceCone_rmin2 / CentralTrackingBarrel_tan" /> <constant name="InnerTrackerEndcapCone_z" value="(InnerTrackerEndcapCone_zmax + InnerTrackerEndcapCone_zmin)/2" /> <constant name="InnerTrackerEndcapCone_length" value="InnerTrackerEndcapCone_zmax - InnerTrackerEndcapCone_zmin" /> <constant name="InnerTrackerEndcapSupportCone_rmin1" value="InnerTrackerEndcapServiceCone_rmax1" /> @@ -317,7 +314,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan" /> + <constant name="InnerTrackerEndcap_zmax" value="MedialTrackerBarrel_rmin / CentralTrackingBarrel_tan" /> <constant name="InnerTrackerEndcapCyl_zmin" value="InnerTrackerEndcapCone_zmax" /> <constant name="InnerTrackerEndcapCyl_zmax" value="InnerTrackerEndcap_zmax" /> <constant name="InnerTrackerEndcapCyl_z" value="(InnerTrackerEndcapCyl_zmin + InnerTrackerEndcapCyl_zmax)/2" /> @@ -579,7 +576,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan * 0.995, SiTrackerCyl_rmin)" /> + <constant name="MedialTrackerEndcapPMod1_rmax" value="min(MedialTrackerEndcapPMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" /> <constant name="MedialTrackerEndcapPMod1_x1" value="2 * MedialTrackerEndcapPMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" /> <constant name="MedialTrackerEndcapPMod1_x2" value="2 * MedialTrackerEndcapPMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" /> <constant name="MedialTrackerEndcapPMod1_y" value="MedialTrackerEndcapPMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapPMod1_rmin" /> @@ -590,7 +587,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <constant name="MedialTrackerEndcapNMod1_zmin" value="MedialTrackerEndcap_zmin" /> <constant name="MedialTrackerEndcapNMod1_rmin" value="MedialTrackerEndcapN_rmin" /> - <constant name="MedialTrackerEndcapNMod1_rmax" value="min(MedialTrackerEndcapNMod1_zmin * TrackerMainDiagonal_tan * 0.995, SiTrackerCyl_rmin)" /> + <constant name="MedialTrackerEndcapNMod1_rmax" value="min(MedialTrackerEndcapNMod1_zmin * CentralTrackingBarrel_tan * 0.995, SiTrackerCyl_rmin)" /> <constant name="MedialTrackerEndcapNMod1_x1" value="2 * MedialTrackerEndcapNMod1_rmin * tan(SiTrackerEndcapMod_angle/2)" /> <constant name="MedialTrackerEndcapNMod1_x2" value="2 * MedialTrackerEndcapNMod1_rmax * sin(SiTrackerEndcapMod_angle/2)" /> <constant name="MedialTrackerEndcapNMod1_y" value="MedialTrackerEndcapNMod1_rmax * cos(SiTrackerEndcapMod_angle/2) - MedialTrackerEndcapNMod1_rmin" /> @@ -600,7 +597,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <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_tan" /> + <constant name="MedialTrackerEndcap_zmax" value="OuterTrackerBarrel_rmin / CentralTrackingBarrel_tan" /> <constant name="MedialTrackerEndcapCyl_zmin" value="InnerTrackerEndcap_zmax" /> <constant name="MedialTrackerEndcapCyl_zmax" value="MedialTrackerEndcap_zmax" /> <constant name="MedialTrackerEndcapCyl_z" value="(MedialTrackerEndcapCyl_zmin + MedialTrackerEndcapCyl_zmax)/2" /> @@ -996,7 +993,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <comment> Parameters for the "ring" GEMS around the silicon tracker, which are all identical </comment> <constant name="GEMEndcapRingMod_rmin" value="SiTrackerSupportCyl_rmax + GEMFrameBotEdge_width" /> - <constant name="GEMEndcapRingMod_rmax" value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * TrackerMainDiagonal_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" /> + <constant name="GEMEndcapRingMod_rmax" value="min(min(GEMEndcapPDisk1_zmin, GEMEndcapN_zmin) * CentralTrackingBarrel_tan * 0.995, CentralTrackingRegion_rmax) - GEMFrameTopEdge_width" /> <constant name="GEMEndcapRingMod_x1" value="2 * GEMEndcapRingMod_rmin * tan(GEMEndcapMod_angle/2)" /> <constant name="GEMEndcapRingMod_x2" value="2 * GEMEndcapRingMod_rmax * sin(GEMEndcapMod_angle/2)" /> <constant name="GEMEndcapRingMod_y" value="GEMEndcapRingMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapRingMod_rmin" /> @@ -1039,7 +1036,7 @@ total X0 0.24% per disk layer (4 sectors per disk): <constant name="GEMEndcapLargeModBotFrame_x2" value="2 * GEMEndcapLargeModBotFrame_rmax * sin(GEMEndcapMod_angle/2)" /> <constant name="GEMEndcapLargeMod_rmin" value="GEMEndcapPMod3_zmin * ForwardTrackingRegion_tan + GEMFrameBotEdge_width" /> <comment> Ensure there's always the length of the service gap in space available above the large GEM (top frame can extend into this at the corners). </comment> - <constant name="GEMEndcapLargeMod_rmax" value="min(GEMEndcapPMod3_zmin * TrackerMainDiagonal_tan, Solenoid_rmax-ForwardServiceGap_length)" /> + <constant name="GEMEndcapLargeMod_rmax" value="min(GEMEndcapPMod3_zmin * CentralTrackingBarrel_tan, Solenoid_rmax-ForwardServiceGap_length)" /> <constant name="GEMEndcapLargeMod_x1" value="2 * GEMEndcapLargeMod_rmin * sin(GEMEndcapMod_angle/2)" /> <constant name="GEMEndcapLargeMod_x2" value="2 * GEMEndcapLargeMod_rmax * sin(GEMEndcapMod_angle/2)" /> <constant name="GEMEndcapLargeMod_y" value="GEMEndcapLargeMod_rmax * cos(GEMEndcapMod_angle/2) - GEMEndcapLargeMod_rmin" /> diff --git a/compact/definitions.xml b/compact/definitions.xml index 7ce5757e..449fcab5 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -372,12 +372,13 @@ Examples: </documentation> <constant name="CentralTrackingRegion_rmax" value="950.0*mm" /> - <constant name="CentralTrackingRegionP_zmax" value="1900.0*mm" /> + <constant name="CentralTrackingRegionP_zmax" value="1700.0*mm" /> <constant name="CentralTrackingRegionN_zmax" value="1500.0*mm" /> <constant name="CentralTrackingRegion_length" value="CentralTrackingRegionP_zmax + CentralTrackingRegionN_zmax" /> <comment> tan(theta) to determine rmin in the outer tracking region (due to tapered beampipe) </comment> + <constant name="CentralTrackingBarrel_tan" value="Eta1_1_tan" /> <constant name="CentralTrackingRegionP_tan" value="Eta3_7_tan * 1.00" /> <constant name="CentralTrackingRegionN_tan" value="Eta4_0_tan * 0.99" /> @@ -385,16 +386,35 @@ Examples: ### PID Detector Region Parameters </documentation> + <comment> Global PID regions with suballocations for TOF and RICH detectors </comment> <constant name="ForwardPIDRegion_zmin" value="CentralTrackingRegionP_zmax" /> - <constant name="ForwardPIDRegion_length" value="140.0*cm" /> + <constant name="ForwardPIDRegion_length" value="160.0*cm" /> + + <comment> Forward TOF region currenlty empty for future upgrades </comment> + <constant name="ForwardTOFRegion_zmin" value="ForwardPIDRegion_zmin" /> + <constant name="ForwardTOFRegion_length" value="20.0*cm" /> + <constant name="ForwardTOFRegion_rmax" value="CentralTrackingRegion_rmax" /> + <constant name="ForwardTOFRegion_tan" value="CentralTrackingRegionP_tan" /> + + <comment> Forward RICH region </comment> + <constant name="ForwardRICHRegion_zmin" value="ForwardTOFRegion_zmin + ForwardTOFRegion_length" /> + <constant name="ForwardRICHRegion_length" value="ForwardPIDRegion_length - ForwardTOFRegion_length" /> <comment> tangent of the opening angle at the front and back of the RICH </comment> - <constant name="ForwardPIDRegion_tan1" value="CentralTrackingRegionP_tan * 0.88" /> - <constant name="ForwardPIDRegion_tan2" value="Eta3_6_tan * 0.89" /> + <constant name="ForwardRICHRegion_tan1" value="CentralTrackingRegionP_tan * 0.88" /> + <constant name="ForwardRICHRegion_tan2" value="Eta3_6_tan * 0.89" /> <constant name="BackwardPIDRegion_zmin" value="CentralTrackingRegionN_zmax" /> - <constant name="BackwardPIDRegion_tan" value="CentralTrackingRegionN_tan * 0.92" /> <constant name="BackwardPIDRegion_length" value="60.0*cm" /> <constant name="BackwardPIDRegion_rmax" value="CentralTrackingRegion_rmax" /> + <constant name="BackwardPIDRegion_tan" value="CentralTrackingRegionN_tan * 0.92" /> + + <comment> Backward RICH region </comment> + <constant name="BackwardRICHRegion_zmin" value="BackwardPIDRegion_zmin" /> + <constant name="BackwardRICHRegion_length" value="58.0*cm" /> + + <comment> Backward TOF region, currently empty for upgrades </comment> + <constant name="BackwardTOFRegion_zmin" value="BackwardRICHRegion_zmin + BackwardRICHRegion_length" /> + <constant name="BackwardTOFRegion_length" value="BackwardPIDRegion_length - BackwardRICHRegion_length" /> <comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment> <constant name="BarrelPIDRegion_thickness" value="8.0 * cm" /> @@ -406,7 +426,7 @@ Examples: <constant name="BackwardTrackingRegion_tan" value="CentralTrackingRegionN_tan" /> <constant name="BackwardTrackingRegion_zmin" value="BackwardPIDRegion_zmin + BackwardPIDRegion_length" /> - <constant name="ForwardTrackingRegion_tan" value="ForwardPIDRegion_tan2" /> + <constant name="ForwardTrackingRegion_tan" value="ForwardRICHRegion_tan2" /> <constant name="ForwardTrackingRegion_zmin" value="ForwardPIDRegion_zmin + ForwardPIDRegion_length" /> <constant name="ForwardTrackingRegion_length" value="10.0*cm" /> <constant name="BackwardTrackingRegion_length" value="0.0*cm" /> diff --git a/compact/display.xml b/compact/display.xml index 9744a0c8..ff97364d 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -25,7 +25,21 @@ <vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="true" /> <vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" /> - <vis name="TOFVis" ref="AnlGreen" showDaughters="true" /> + <vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/> + <vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/> + <comment> By default don't display the barrel module details </comment> + <vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <comment> extra detailed vizualizations for the barrel </comment> + <vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/> + <vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/> + <vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/> + <vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/> + <vis name="FFTrackerVis" ref="AnlRed" /> <vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" /> diff --git a/compact/display_detailed.xml b/compact/display_detailed.xml index e138c40e..2bebee61 100644 --- a/compact/display_detailed.xml +++ b/compact/display_detailed.xml @@ -11,42 +11,83 @@ <comment> Tracking Visualizations </comment> - <vis name="TrackerSupportVis" ref="AnlBlue" showDaughters="false" /> - <vis name="TrackerLayerVis" ref="AnlTeal" visible="true" showDaughters="true" /> - <vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" /> - - <vis name="VertexSupportVis" ref="AnlBlue" showDaughters="false" /> - <vis name="VertexLayerVis" ref="AnlTeal" visible="true" showDaughters="true" /> - <vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" /> - - <vis name="TOFVis" ref="AnlGreen" showDaughters="true" /> + <vis name="TrackerVis" ref="AnlRed" /> + <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="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" /> + <vis name="TrackerMPGDVis" ref="AnlRed" visible="true" showDaughters="true" /> + <comment> Layer-based visualization for MPGD detectors as it looks better </comment> + <vis name="TrackerGEMModuleVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> + <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis" visible="true" showDaughters="false" /> + + <vis name="VertexLayerVis" ref="AnlGray" visible="true" showDaughters="false" /> + <vis name="VertexSupportLayerVis" ref="AnlBlue" visible="true" showDaughters="false" /> + <vis name="VertexSupportVis" ref="VertexSupportLayerVis" visible="true" showDaughters="true" /> + <vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" /> + + <vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/> + <vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/> + <vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/> + <vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/> + <vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/> + <vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/> + + <vis name="FFTrackerVis" ref="AnlRed" /> + <vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" /> + <vis name="FFTrackerShieldingVis" ref="AnlGray" visible="true" showDaughters="false" /> + <vis name="FFTrackerServiceVis" ref="AnlGold" visible="true" showDaughters="false" /> + <vis name="FFTrackerLayerVis" ref="TrackerVis" visible="true" showDaughters="true" /> + <vis name="FFTrackerModuleVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" /> + <vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis" visible="true" showDaughters="true" /> + <comment> Display shielded modules in all their glory </comment> + <vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis" visible="true" showDaughters="true" /> <comment> ECal Vis </comment> - <vis name="EcalVis" ref="AnlGold" showDaughters="true" visible="true"/> - <vis name="EcalEndcapVis" ref="AnlGold" showDaughters="false" visible="true"/> - <vis name="EcalBarrelVis" ref="AnlGold" showDaughters="false" visible="true"/> - <vis name="EcalBarrelStaveVis" ref="AnlViolet" showDaughters="false" visible="true" /> - <vis name="EcalBarrelEnvelopeVis" ref="AnlViolet" showDaughters="false" visible="true" /> - <vis name="EcalBarrelSupportVis" ref="AnlOrange" showDaughters="false" visible="true"/> - <vis name="EcalBarrelLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/> - <vis name="EcalBarrelSliceVis" ref="AnlBlue" showDaughters="false" visible="true"/> + <vis name="EcalBarrelLayerVis" ref="AnlGold" showDaughters="false" visible="true"/> + <vis name="EcalBarrelEnvelopeVis" ref="AnlGold" showDaughters="true" visible="false" /> + <vis name="EcalBarrelStaveVis" ref="AnlGold" showDaughters="true" visible="true" /> <vis name="EcalBarrelFiberLayerVis" ref="AnlGold" showDaughters="false" visible="true" /> + <vis name="EcalBarrelSliceVis" ref="AnlGray"/> + <vis name="EcalBarrelSupportVis" ref="AnlOrange"/> + + <vis name="EcalVis" ref="AnlGold" showDaughters="true" visible="false"/> + <vis name="EcalEndcapVis" ref="AnlGold" showDaughters="false" visible="true"/> + <vis name="EcalEndcapLayerVis" ref="AnlGold" showDaughters="false" visible="true"/> + <vis name="EcalEndcapBlockVis" ref="AnlGold" showDaughters="false" visible="true"/> - <vis name="EcalEndcapNModuleVis" ref="AnlTeal" showDaughters="false" visible="true"/> + <vis name="EcalEndcapNModuleVis" ref="AnlGold" showDaughters="false" visible="true"/> + + <vis name="FFPreVis" ref="AnlGold" showDaughters="true" visible="true"/> + <vis name="FFPreLayerVis" ref="FFPreVis" showDaughters="true" visible="true"/> + <vis name="FFPreModuleVis" ref="FFPreLayerVis" showDaughters="true" visible="true"/> + <vis name="FFPreRadiatorVis" ref="FFPreModuleVis" showDaughters="true" visible="true"/> + <vis name="FFPreReadoutVis" ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/> <comment> HCal Vis </comment> - <vis name="HcalVis" ref="AnlViolet" showDaughters="true" visible="true"/> - <vis name="HcalBarrelVis" ref="AnlViolet" showDaughters="true" visible="true"/> - <vis name="HcalBarrelStaveVis" ref="AnlViolet" showDaughters="true" visible="true"/> - <vis name="HcalBarrelLayerVis" ref="AnlViolet" showDaughters="false" visible="true"/> - <vis name="HcalEndcapVis" ref="AnlViolet" showDaughters="true" visible="true"/> - <vis name="HcalEndcapLayerVis" ref="AnlViolet" showDaughters="false" visible="true"/> - <vis name="HcalSensorVis" ref="AnlBlue" showDaughters="false" visible="false"/> - <vis name="HcalAbsorberVis" ref="AnlViolet" showDaughters="false" visible="false"/> + <vis name="HcalVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalBarrelVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalBarrelStaveVis" ref="AnlBlue" showDaughters="false" visible="true"/> + <vis name="HcalBarrelLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalEndcapVis" ref="AnlBlue" showDaughters="false" visible="true"/> + <vis name="HcalEndcapLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalSensorVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="true" visible="true"/> + + <comment> + Passive steel for flux return + </comment> + <vis name="PassiveSteelVis" ref="AnlViolet" showDaughters="false" visible="true"/> <comment> Solenoid @@ -59,43 +100,65 @@ <comment> PID Detectors </comment> - <vis name="RICHVis" ref="AnlViolet" showDaughters="true"/> + <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="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"/> + <vis name="DIRCBarVis" ref="AnlTeal" showDaughters="true" visible="true"/> + + <comment> + Beam line with magnets + </comment> + <vis name="BeamPipeVis" ref="AnlLightGray" showDaughters="true" visible="true"/> + <vis name="FFMagnetVis" ref="AnlGreen" showDaughters="true" visible="true"/> + <vis name="FFMagnetCoilVis" ref="AnlRed" showDaughters="true" visible="true"/> + + <comment> + ZDC visualization + </comment> + + <vis name="ffi_ZDC_ECAL_Vis" ref="AnlGreen" showDaughters="true" visible="true"/> + <vis name="ffi_ZDC_ECAL_module_Vis" ref="AnlRed" showDaughters="false" visible="true"/> + <vis name="ffi_ZDC_HCAL_Vis" ref="AnlBlue" showDaughters="true" visible="true"/> <comment> - Beam line + PID visualization </comment> - <vis name="BeamPipeVis" ref="AnlLight_Gray" showDaughters="true" visible="true"/> - - <vis name="cb_SolenoidVis" alpha="0.4" r= "0.1" g="0.0" b="0.1" showDaughters="true" visible="true"/> - <vis name="ffi_ZDC_ECAL_Vis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="ffi_ZDC_ECAL_module_Vis" alpha="1.0" r= "0.1" g="1.0" b="0.9" showDaughters="true" visible="true"/> - <vis name="ffi_ZDC_HCAL_Vis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="cb_CTDVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="cb_CTD_Si_layerVis" alpha="1.0" r= "0.9" g="1.0" b="0.1" showDaughters="true" visible="true"/> - <vis name="ce_GEMVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="cb_GEM_layerVis" alpha="0.8" r= "0.8" g="0.4" b="0.3" showDaughters="true" visible="true"/> - <vis name="cb_VTX_BarrelVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="cb_VTX_Barrel_layerVis" alpha="2.0" r= "0.0" g="0.2" b="0.8" showDaughters="true" visible="true"/> - - <vis name="ci_GEMVis" r= "0.8" g="0.4" b="0.3" alpha="0.8" showDaughters="true" visible="true"/> - <vis name="ci_HCALVis" r= "0.6" g="0" b="0.6" alpha="1.0" showDaughters="true" visible="true"/> + + <vis name="DRICH_vessel_vis" ref="AnlGray" showDaughters="true" visible="true" /> + <vis name="DRICH_gas_vis" ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" /> + <vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" /> + <vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" /> + <vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" /> + <vis name="DRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" /> + <vis name="ERICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" /> + + <vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" /> + <vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" /> + <vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" /> + <vis name="MRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" /> + + <vis name="RICHServiceVis" ref="AnlGray" showDaughters="true" visible="true" /> <comment> - Deprecated colors. - vis name="GreenVis" alpha="1.0" r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/ - vis name="RedVis" alpha="0.2" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/ - vis name="RPVis" alpha="0.99" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/ - vis name="RPLayerVis" alpha="0.99" r= "0.0" g="0.7" b="0.3" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" / - vis name="BlueVis" alpha="1.0" r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/ - vis name="OrangeVis" alpha="1.0" r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/ - vis name="RedGreenVis" alpha="0.5" r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/ - vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/ - vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/ - vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/ - vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/ - vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/ - vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/ - vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/ + Deprecated values used for IP6 vis </comment> + <vis name="GreenVis" ref="AnlGreen" showDaughters="true" visible="true"/> + <vis name="RedVis" ref="AnlRed" showDaughters="true" visible="true"/> + <vis name="RPVis" ref="AnlDelta_Red" showDaughters="true" visible="true"/> + <vis name="RPLayerVis" ref="AnlTeal" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" /> + <vis name="BlueVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="OrangeVis" ref="AnlOrange" showDaughters="true" visible="true"/> + <vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/> + <vis name="PurpleVis" alpha="1.0" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/> + <vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/> + <vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/> + <vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/> + <vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/> + <vis name="GrayVis" alpha="1.0" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/> + <vis name="AnlRed_1" alpha="0.5" r="205/256" g="32/256" b="44/256"/> </display> diff --git a/compact/display_geoviewer.xml b/compact/display_geoviewer.xml index ca303cbb..3998698d 100644 --- a/compact/display_geoviewer.xml +++ b/compact/display_geoviewer.xml @@ -25,7 +25,18 @@ <vis name="VertexSupportVis" ref="VertexSupportLayerVis" visible="true" showDaughters="true" /> <vis name="VertexModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="true" /> - <vis name="TOFVis" ref="AnlTeal" showDaughters="true" visible="true"/> + <vis name="TOFVis" ref="AnlTeal" visible="true" showDaughters="true"/> + <vis name="TOFLayerVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFSupportVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFSensorVis" ref="TOFVis" visible="true" showDaughters="true"/> + <vis name="TOFBarrelModuleVis" ref="TOFVis" visible="true" showdaughters="true"/> + <vis name="TOFHybridVis" ref="AnlGold" visible="true" showDaughters="true"/> + <vis name="TOFCoolingTube" ref="AnlRed" visible="true" showDaughters="true"/> + <vis name="TOFCoolant" ref="TrackerServiceVis" visible="true" showDaughters="true"/> + <vis name="TOFCSkinVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCFoamVis" ref="TrackerSupportVis" visible="true" showDaughters="true"/> + <vis name="TOFCHoneycombVis" ref="TrackerServiceVis" visible="true" showDaughters="true"/> <vis name="FFTrackerVis" ref="AnlRed" /> <vis name="FFTrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="false" /> @@ -69,7 +80,7 @@ <vis name="HcalBarrelLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/> <vis name="HcalEndcapVis" ref="AnlBlue" showDaughters="false" visible="true"/> <vis name="HcalEndcapLayerVis" ref="AnlBlue" showDaughters="true" visible="true"/> - <vis name="HcalSensorVis" ref="AnlBlue" showDaughters="true" visible="true"/> + <vis name="HcalSensorVis" ref="AnlBlue" showDaughters="true" visible="true"/> <vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="true" visible="true"/> <comment> @@ -117,12 +128,12 @@ </comment> <vis name="DRICH_vessel_vis" ref="AnlGray" showDaughters="true" visible="true" /> - <vis name="DRICH_gas_vis" ref="AnlGreen" alpha="0.5" showDaughters="true" visible="true" /> + <vis name="DRICH_gas_vis" ref="AnlLightGray" alpha="0.2" showDaughters="true" visible="true" /> <vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" /> <vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" /> <vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" /> <vis name="DRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" /> - <vis name="ERICH_sensor_vis" ref="AnlBlue" showDaughters="true" visible="false" /> <!-- invisible, to speedup graphics --> + <vis name="ERICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" /> <!-- invisible, to speedup graphics --> <vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" /> <vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" /> diff --git a/compact/drich.xml b/compact/drich.xml index 9c27e4db..9a4980f2 100644 --- a/compact/drich.xml +++ b/compact/drich.xml @@ -3,10 +3,10 @@ <define> <!-- vessel (=snout+tank) geometry --> -<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_zmin * ForwardPIDRegion_tan1"/> <!-- bore radius at dRICh vessel frontplane --> -<constant name="DRICH_rmin1" value="(ForwardPIDRegion_zmin + ForwardPIDRegion_length) * ForwardPIDRegion_tan2"/> <!-- bore radius at dRICh vessel backplane --> +<constant name="DRICH_zmin" value="ForwardRICHRegion_zmin"/> <!-- vessel front --> +<constant name="DRICH_Length" value="ForwardRICHRegion_length"/> <!-- overall vessel length (including snout) --> +<constant name="DRICH_rmin0" value="ForwardRICHRegion_zmin * ForwardRICHRegion_tan1"/> <!-- bore radius at dRICh vessel frontplane --> +<constant name="DRICH_rmin1" value="(ForwardRICHRegion_zmin + ForwardRICHRegion_length) * ForwardRICHRegion_tan2"/> <!-- 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.xml b/compact/ecal.xml index f6ce08ec..0758023f 100644 --- a/compact/ecal.xml +++ b/compact/ecal.xml @@ -11,11 +11,8 @@ <!--include ref="ecal_forward_scfi.xml"/--> <include ref="ecal_forward_homogenous.xml"/> - <!--<include ref="ecal_backward_crystal_glass.xml"/>--> <include ref="ecal_backward_hybrid.xml"/> - <!-- <include ref="ecal_barrel.xml"/> --> - <!-- <include ref="ecal_barrel_hybrid.xml"/> --> <include ref="ecal_barrel_interlayers.xml"/> </lccdd> diff --git a/compact/erich.xml b/compact/erich.xml index f678748c..6c57d1b4 100644 --- a/compact/erich.xml +++ b/compact/erich.xml @@ -3,18 +3,26 @@ <define> <!-- vessel geometry --> -<constant name="ERICH_Length" value="BackwardPIDRegion_length"/> <!-- vessel z-length --> -<constant name="ERICH_zmin" value="-BackwardPIDRegion_zmin"/> <!-- vessel front --> +<constant name="ERICH_Length" value="BackwardRICHRegion_length"/> <!-- vessel z-length --> +<constant name="ERICH_zmin" value="-BackwardRICHRegion_zmin"/> <!-- vessel front --> <constant name="ERICH_zmax" value="ERICH_zmin - ERICH_Length"/> <!-- vessel back --> -<constant name="ERICH_rmin0" value="BackwardPIDRegion_tan * BackwardPIDRegion_zmin"/> <!-- bore radius at vessel frontplane --> -<constant name="ERICH_rmin1" value="BackwardPIDRegion_tan * (BackwardPIDRegion_zmin + BackwardPIDRegion_length)"/> <!-- bore radius at vessel backplane --> +<constant name="ERICH_rmin0" value="BackwardPIDRegion_tan * BackwardRICHRegion_zmin"/> <!-- bore radius at vessel frontplane --> +<constant name="ERICH_rmin1" value="BackwardPIDRegion_tan * (BackwardRICHRegion_zmin + BackwardRICHRegion_length)"/> <!-- bore radius at vessel backplane --> <constant name="ERICH_rmax" value="BackwardPIDRegion_rmax - 2*cm"/> <!-- vessel backplane radius --> <constant name="ERICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls --> <constant name="ERICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls --> <!-- additional parameters --> <constant name="ERICH_aerogel_thickness" value="3.0*cm"/> <!-- aerogel thickness --> -<constant name="ERICH_sensor_active_size" value="24.0*mm"/> <!-- sensor side length (effective area) --> -<constant name="ERICH_sensor_full_size" value="25.8*mm"/> <!-- sensor side length (full size, with enclosure) --> +<constant name="ERICH_sensor_active_size_default" value="24.0*mm"/> <!-- sensor side length (effective area) --> +<constant name="ERICH_sensor_full_size_default" value="25.8*mm"/> <!-- sensor side length (full size, with enclosure) --> +<!-- lores values are used for global vizualizations _only_ --> +<constant name="ERICH_sensor_active_size_lores" value="ERICH_sensor_active_size_default * 4"/> +<constant name="ERICH_sensor_full_size_lores" value="ERICH_sensor_full_size_default * 4"/> +<!-- actual values used by the parametrization --> +<constant name="ERICH_sensor_active_size" value="ERICH_sensor_active_size_default"/> +<constant name="ERICH_sensor_full_size" value="ERICH_sensor_full_size_default"/> + + <constant name="ERICH_sensor_thickness" value="1.5*mm"/> <!-- sensor thickness --> <constant name="ERICH_sensor_dist" value="40*cm"/> <!-- distance between aerogel exit plane and sensor entrance plane --> <constant name="ERICH_num_px" value="8"/> <!-- number of pixels along one side of the sensor --> diff --git a/compact/materials.xml b/compact/materials.xml index bdc108fc..e7bdd185 100644 --- a/compact/materials.xml +++ b/compact/materials.xml @@ -119,6 +119,35 @@ <fraction n="0.1369" ref="Si"/> <fraction n="0.2610" ref="O"/> </material> + <documentation level="3"> + #### Material for TOF + a level 3 doc + </documentation> + <material name="CarbonFoam"> + <D type="density" value="0.09" unit="g/cm3"/> + <fraction n="1.00" ref="C"/> + </material> + <material name="CFRPMix"> + <D type="density" value="0.03" unit="g/cm3"/> + <fraction n="0.074" ref="O"/> + <fraction n="0.870" ref="C"/> + <fraction n="0.023" ref="H"/> + <fraction n="0.033" ref="Cl"/> + </material> + <material name="CFRPMix2"> + <D type="density" value="1.60" unit="g/cm3"/> + <fraction n="0.074" ref="O"/> + <fraction n="0.870" ref="C"/> + <fraction n="0.023" ref="H"/> + <fraction n="0.033" ref="Cl"/> + </material> + <material name="NOVEC7200"> + <D type="density" value="1.44" unit="g/cm3"/> + <fraction n="0.061" ref="O"/> + <fraction n="0.019" ref="H"/> + <fraction n="0.272" ref="C"/> + <fraction n="0.648" ref="F"/> + </material> <documentation level="3"> #### Carbon fiber a level 3 doc diff --git a/compact/pid_config_deathvalley.xml b/compact/pid_config_deathvalley.xml new file mode 100644 index 00000000..c0427fdd --- /dev/null +++ b/compact/pid_config_deathvalley.xml @@ -0,0 +1,11 @@ +<lccdd> + +<include ref="fake_dirc.xml"/> +<!--include ref="dirc.xml"/--> +<include ref="drich.xml"/> +<include ref="erich.xml"/> + +<!--include ref="tof_endcap.xml"/--> +<include ref="tof_barrel.xml"/> + +</lccdd> diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml index 90233393..824bc12d 100644 --- a/compact/subsystem_views/calorimeters.xml +++ b/compact/subsystem_views/calorimeters.xml @@ -59,9 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <!--include ref="compact/colors2.xml"/--> - <include ref="compact/display.xml" /> - <!--include ref="compact/display_detailed.xml"/--> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="0"> diff --git a/compact/subsystem_views/dirc_only.xml b/compact/subsystem_views/dirc_only.xml index a60d413b..89ecc4d2 100644 --- a/compact/subsystem_views/dirc_only.xml +++ b/compact/subsystem_views/dirc_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="0"> diff --git a/compact/subsystem_views/drich_only.xml b/compact/subsystem_views/drich_only.xml index d1dff27e..7193fa50 100644 --- a/compact/subsystem_views/drich_only.xml +++ b/compact/subsystem_views/drich_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml index 0dfbc064..c1d21177 100644 --- a/compact/subsystem_views/inner_detector.xml +++ b/compact/subsystem_views/inner_detector.xml @@ -60,8 +60,7 @@ <display> <include ref="compact/colors.xml" /> <!--include ref="compact/colors2.xml"/--> - <include ref="compact/display.xml" /> - <!--include ref="compact/display_detailed.xml"/--> + <include ref="compact/display.xml"/> </display> <documentation level="0"> @@ -100,12 +99,12 @@ ## Central tracking detectors </documentation> - <include ref="compact/tracking_config_canyonlands.xml"/> + <include ref="compact/tracking_config_deathvalley.xml"/> <documentation level="10"> ### PID detectors </documentation> - <include ref="compact/pid_config_canyonlands.xml"/> + <include ref="compact/pid_config_deathvalley.xml"/> <documentation level="10"> ## Central calorimetry diff --git a/compact/subsystem_views/pfrich_only.xml b/compact/subsystem_views/pfrich_only.xml index b9778762..11971d74 100644 --- a/compact/subsystem_views/pfrich_only.xml +++ b/compact/subsystem_views/pfrich_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="10"> diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml index 0ee9acd1..44207a0c 100644 --- a/compact/subsystem_views/pid_only.xml +++ b/compact/subsystem_views/pid_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="0"> @@ -101,7 +101,7 @@ PID detectors ------------- </comment> - <include ref="compact/pid_config_canyonlands.xml"/> + <include ref="compact/pid_config_deathvalley.xml"/> <comment> diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml index de12be8e..f3195231 100644 --- a/compact/subsystem_views/tracking_only.xml +++ b/compact/subsystem_views/tracking_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="0"> @@ -99,12 +99,12 @@ Central tracking detectors -------------------------- </comment> - <include ref="compact/tracking_config_canyonlands.xml"/> + <!--include ref="compact/tracking_config_canyonlands.xml"/--> + <include ref="compact/tracking_config_deathvalley.xml"/> - <comment> PID detectors ------------- - </comment> + <include ref="compact/tof_barrel.xml"/> <fields> <field name="B0PF_Magnet" type="MultipoleMagnet"> diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml index 18cbd2cd..8c818e8f 100644 --- a/compact/subsystem_views/vertex_only.xml +++ b/compact/subsystem_views/vertex_only.xml @@ -59,7 +59,7 @@ <display> <include ref="compact/colors.xml" /> - <include ref="compact/display.xml" /> + <include ref="compact/display_detailed.xml" /> </display> <documentation level="0"> diff --git a/compact/tof.xml b/compact/tof.xml index c190d55a..d84c36c9 100644 --- a/compact/tof.xml +++ b/compact/tof.xml @@ -12,8 +12,10 @@ </documentation> + <!--include ref="tof_endcap.xml"/--> <include ref="tof_barrel.xml"/> - <include ref="tof_endcap.xml"/> + <include ref="tof_forward.xml"/> + <include ref="tof_backward.xml"/> </lccdd> diff --git a/compact/tof_barrel.xml b/compact/tof_barrel.xml index 51065482..3d621602 100644 --- a/compact/tof_barrel.xml +++ b/compact/tof_barrel.xml @@ -2,28 +2,60 @@ <lccdd> <define> - - <constant name="BarrelTOFSpaceFrame_width" value="40.0*mm"/> - <constant name="BarrelTOFSpaceFrame_height" value="sqrt(3.0)*32.0*mm/2.0"/> - <constant name="BarrelTOFSensor_thickness" value="0.3*mm"/> - <constant name="BarrelTOFModule_thickness" value="2.00/100*9.37*cm"/> - <constant name="BarrelTOFService_thickness" value="BarrelTOFModule_thickness-BarrelTOFSensor_thickness"/> - <comment> - Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius. + -------------------------- + Barrel TOF Parameters + -------------------------- </comment> - <constant name="BarrelTOFLayer_rOffset" value="0.5*cm"/> + <constant name="BarrelTOF_Sensor_thickness" value="0.3*mm"/> + <constant name="BarrelTOF_Hybrid_thickness" value="2*0.008125*cm"/> + <constant name="BarrelTOF_CFSkin_thickness" value="2*0.0075*cm"/> + <constant name="BarrelTOF_CFoam_thickness" value="2*0.29*cm"/> + <constant name="BarrelTOF_CHoneycomb_thickness" value="2*0.29*cm"/> + <constant name="BarrelTOF_CoolingTube_thickness" value="0.08*cm"/> + <constant name="BarrelTOF_Coolant_thickness" value="0.08*cm"/> + <constant name="BarrelTOF_Module_thickness" value="BarrelTOF_Sensor_thickness+2*BarrelTOF_Hybrid_thickness+2*BarrelTOF_CFSkin_thickness+BarrelTOF_CFoam_thickness+BarrelTOF_CoolingTube_thickness+BarrelTOF_Coolant_thickness"/> - <constant name="BarrelTOF_rmin1" value="50.0*cm"/> - <constant name="BarrelTOF_rmin2" value="BarrelTOF_rmin1 + BarrelTOFSpaceFrame_width"/> - <constant name="BarrelTOF_length1" value="192.0*cm"/> - <constant name="BarrelTOF_length2" value="200.0*cm"/> + <constant name="BarrelTOF_radius_design" value="50.0*cm"/> + <constant name="BarrelTOF_Module_width_design" value="56.0*mm"/> + <constant name="BarrelTOF_Sensor_width_design" value="32.0*mm"/> + <constant name="BarrelTOF_CFoam_width_design" value="BarrelTOF_Sensor_width_design-5.0*mm"/> + <constant name="BarrelTOF_CHoneycomb_width_design" value="BarrelTOF_Module_width_design-BarrelTOF_CFoam_width_design"/> + <constant name="BarrelTOF_CoolingTube_width_design" value="0.75*cm"/> + <constant name="BarrelTOF_Coolant_width_design" value="0.75*cm"/> - <constant name="BarrelTOF_thickness" value="BarrelTOF_rmin2 - BarrelTOF_rmin1"/> - <constant name="BarrelTOF_length" value="BarrelTOF_length2"/> + <constant name="BarrelTOF_Sensor_position_design" value="0.5*(BarrelTOF_Sensor_width_design-BarrelTOF_Module_width_design)"/> + <constant name="BarrelTOF_CFoam_position_design" value="0.5*(BarrelTOF_CFoam_width_design-BarrelTOF_Module_width_design)"/> + <constant name="BarrelTOF_CHoneycomb_position_design" value="0.5*(BarrelTOF_Module_width_design-BarrelTOF_CHoneycomb_width_design)"/> + <constant name="BarrelTOF_CoolingTube_position_design" value="BarrelTOF_CHoneycomb_position_design"/> + <constant name="BarrelTOF_Coolant_position_design" value="BarrelTOF_CHoneycomb_position_design"/> + <constant name="BarrelTOF_Service_position_design" value="0.0*mm"/> - <comment> TODO: These should be computed </comment> - <constant name="BarrelTOF_NModules" value="80"/> + <constant name="BarrelTOF_scale" value="1.05"/> + <constant name="BarrelTOF_radius" value="BarrelTOF_scale * BarrelTOF_radius_design"/> + <constant name="BarrelTOF_Sensor_width" value="BarrelTOF_scale * BarrelTOF_Sensor_width_design"/> + <constant name="BarrelTOF_CFoam_width" value="BarrelTOF_scale * BarrelTOF_CFoam_width_design"/> + <constant name="BarrelTOF_CHoneycomb_width" value="BarrelTOF_scale * BarrelTOF_CHoneycomb_width_design"/> + <constant name="BarrelTOF_CoolingTube_width" value="BarrelTOF_scale * BarrelTOF_CoolingTube_width_design"/> + <constant name="BarrelTOF_Coolant_width" value="BarrelTOF_scale * BarrelTOF_Coolant_width_design"/> + <constant name="BarrelTOF_Sensor_position" value="BarrelTOF_scale * BarrelTOF_Sensor_position_design"/> + <constant name="BarrelTOF_CFoam_position" value="BarrelTOF_scale * BarrelTOF_CFoam_position_design"/> + <constant name="BarrelTOF_CHoneycomb_position" value="BarrelTOF_scale * BarrelTOF_CHoneycomb_position_design"/> + <constant name="BarrelTOF_CoolingTube_position" value="BarrelTOF_scale * BarrelTOF_CoolingTube_position_design"/> + <constant name="BarrelTOF_Coolant_position" value="BarrelTOF_scale * BarrelTOF_Coolant_position_design"/> + <constant name="BarrelTOF_Service_position" value="BarrelTOF_scale * BarrelTOF_Service_position_design"/> + <constant name="BarrelTOF_Module_width" value="BarrelTOF_scale*BarrelTOF_Module_width_design"/> + <constant name="BarrelTOF_Module_tiltangle" value="18.0*degree"/> + <constant name="BarrelTOF_Module_nphi" value="108"/> + <constant name="BarrelTOF_Module_nz" value="1"/> + + <constant name="BarrelTOF_rmin" value="BarrelTOF_radius"/> + <constant name="BarrelTOF_rmax" value="BarrelTOF_rmin+BarrelTOF_Module_width*tan(BarrelTOF_Module_tiltangle)"/> + <constant name="BarrelTOF_thickness" value="BarrelTOF_rmax-BarrelTOF_rmin"/> + <constant name="BarrelTOF_rOffset" value="16.0*mm"/> + <constant name="BarrelTOF_length1" value="2 * BarrelTOF_rmin / CentralTrackingBarrel_tan * 0.995"/> + <constant name="BarrelTOF_length2" value="2 * BarrelTOF_rmax / CentralTrackingBarrel_tan * 0.995"/> + <constant name="BarrelTOF_length" value="BarrelTOF_length2"/> </define> @@ -34,46 +66,61 @@ <detector id="BarrelTOF_ID" name="BarrelTOF" - type="athena_TrackerBarrel" - readout="BarrelTOFHits" + type="athena_TOFBarrel" + readout="TOFBarrelHits" insideTrackingVolume="true"> <dimensions - rmin="BarrelTOF_rmin1-BarrelTOFLayer_rOffset" - rmax="BarrelTOF_rmin2-BarrelTOFLayer_rOffset + BarrelTOF_thickness" + rmin="BarrelTOF_rmin-BarrelTOF_rOffset" + rmax="BarrelTOF_rmax+BarrelTOF_rOffset" length="BarrelTOF_length"/> <comment> Tracker Barrel Modules </comment> - <module name="BarrelTOF_Module1" vis="TOFVis"> - <frame material="CarbonFiber_25percent" vis="TOFVis" - width="BarrelTOFSpaceFrame_width" - height="BarrelTOFSpaceFrame_height" - length="BarrelTOF_length1" - thickness="0.1*mm" /> - <module_component name="silicon" material="Silicon" sensitive="true" - width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFSensor_thickness" > + <module name="BarrelTOF_Module1" vis="TOFBarrelModuleVis"> + <module_component name="sensor" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_length1" thickness="BarrelTOF_Sensor_thickness" vis="TOFSensorVis" > + <position x="BarrelTOF_Sensor_position" y="0" z="0" /> + </module_component> + <module_component name="hybridtop" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" > + <position x="BarrelTOF_Service_position" y="0" z="0" /> + </module_component> + <module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" > + <position x="BarrelTOF_Service_position" y="0" z="0" /> + </module_component> + <module_component name="coolingtube" material="Aluminum" sensitive="false" width="BarrelTOF_CoolingTube_width" length="BarrelTOF_length1" thickness="BarrelTOF_CoolingTube_thickness" vis="TOFCoolingTubeVis" > + <position x="BarrelTOF_CoolingTube_position" y="0" z="0" /> + </module_component> + <module_component name="coolant" material="NOVEC7200" sensitive="false" width="BarrelTOF_Coolant_width" length="BarrelTOF_length1" thickness="BarrelTOF_Coolant_thickness" vis="TOFCoolantVis" > + <position x="BarrelTOF_Coolant_position" y="0" z="0" /> + </module_component> + <module_component name="cfoam" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" > + <position x="BarrelTOF_CFoam_position" y="0" z="0" /> + </module_component> + <module_component name="choneycomb" material="CFRPMix" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF_length1" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCHoneycombVis" > + <position x="BarrelTOF_CHoneycomb_position" y="0" z="-1*BarrelTOF_CFoam_thickness" /> + </module_component> + <module_component name="cfskinbottom" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" > + <position x="BarrelTOF_Service_position" y="0" z="0" /> + </module_component> + <module_component name="hybridbottom" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" > + <position x="BarrelTOF_Service_position" y="0" z="0" /> </module_component> - <module_component name="service" material="Silicon" sensitive="false" - width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFService_thickness" /> </module> - <layer module="BarrelTOF_Module1" id="1" vis="TOFVis"> + <layer module="BarrelTOF_Module1" id="1" vis="TOFLayerVis"> <barrel_envelope - inner_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset" - outer_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset + BarrelTOF_thickness-1.0*mm" + inner_r="BarrelTOF_rmin-BarrelTOF_rOffset" + outer_r="BarrelTOF_rmax+BarrelTOF_rOffset" z_length="BarrelTOF_length"/> - <rphi_layout phi_tilt="10.0*degree" nphi="BarrelTOF_NModules" phi0="0.0" rc="BarrelTOF_rmin1" dr="0.0 * mm"/> - <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + <rphi_layout phi_tilt="BarrelTOF_Module_tiltangle" nphi="BarrelTOF_Module_nphi" phi0="0.0" rc="BarrelTOF_rmin" dr="0.0*mm"/> + <z_layout dr="0.0*mm" z0="0.0*mm" nz="BarrelTOF_Module_nz"/> </layer> </detector> - </detectors> <readouts> - <readout name="BarrelTOFHits"> - <segmentation type="CartesianGridXY" grid_size_x="0.150*mm" grid_size_y="0.150*mm" /> + <readout name="TOFBarrelHits"> + <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="BarrelTOF_length1/48" /> <id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id> </readout> </readouts> - </lccdd> diff --git a/compact/tof_endcap.xml b/compact/tof_endcap.xml index a9b22dc0..b065eaad 100644 --- a/compact/tof_endcap.xml +++ b/compact/tof_endcap.xml @@ -3,45 +3,65 @@ <define> <comment> -------------------------- - Forward and backward TOF Parameters + Forward TOF Parameters -------------------------- </comment> + <comment> Forward/backward TOF position </comment> + <constant name="ForwardTOF_length" value="min(ForwardTOFRegion_length, 2.*cm)"/> + <constant name="ForwardTOF_zmin" value="ForwardTOFRegion_zmin + ForwardTOFRegion_length - ForwardTOF_length - 1*cm"/> + <constant name="ForwardTOF_nlayers" value="2"/> + <constant name="ForwardTOFMod_offset" value="1.2*cm"/> + <constant name="BackwardTOF_length" value="min(BackwardTOFRegion_length, 2.*cm)"/> + <constant name="BackwardTOF_zmin" value="BackwardTOFRegion_zmin + 0.5*cm"/> + <constant name="BackwardTOF_nlayers" value="2"/> + <constant name="BackwardTOFMod_offset" value="1.2*cm"/> - <constant name="TOFEndcapSensor_thickness" value="0.3*mm"/> - <constant name="TOFEndcap_thickness" value="2.00/100*9.37*cm"/> - <constant name="TOFEndcapService_thickness" value="TOFEndcap_thickness-TOFEndcapSensor_thickness"/> - <constant name="TOFEndcap_nLayers" value="2"/> + <comment> LGAD parameters for the endcap TOFs </comment> + <constant name="TOFEndcapSensor_thickness" value="300*um" /> + <constant name="TOFEndcapService_thickness" value="5.00/100*9.37*cm-TOFEndcapSensor_thickness" /> + <constant name="TOFEndcapMod_count" value="36" /> + <constant name="TOFEndcapMod_dz" value="0" /> + <constant name="TOFEndcapMod_overlap" value="0" /> + </define> + + <documentation> + ## Forward and backward TOF double-disks, + ## a potential ATHENA upgrade + </documentation> + + <comment> + Actual detector implementation. + </comment> + <define> + + <constant name="TOFEndcapMod_thickness" value="TOFEndcapSensor_thickness + TOFEndcapService_thickness" /> + <constant name="TOFEndcapMod_angle" value="360.0*degree / TOFEndcapMod_count * (1 + TOFEndcapMod_overlap)" /> + <comment> 1 um padding to not have layer and module touch (ACTS requirement) </comment> + <constant name="TOFEndcapLayer_thickness" value="TOFEndcapMod_thickness + 2 * TOFEndcapMod_dz + 1 * um" /> - <constant name="ForwardTOF_zmin" value="BarrelTracking_length/2.0 + ForwardTracking_length + ForwardRICH_length + ForwardTRD_length"/> - <constant name="ForwardTOF_dz" value="(ForwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/> - <constant name="ForwardTOF_rmin1" value="ForwardPID_rmin1"/> - <constant name="ForwardTOF_rmin2" value="ForwardPID_rmin1"/> - <constant name="ForwardTOF_rmax1" value="Solenoid_rmin"/> - <constant name="ForwardTOF_rmax2" value="Solenoid_rmin"/> - <constant name="ForwardTOFModOpeningAngle" value="30.0*degree"/> - <constant name="ForwardTOFMod1_x1" value="2.0*ForwardTOF_rmin1*sin(ForwardTOFModOpeningAngle/2.0)"/> - <constant name="ForwardTOFMod1_x2" value="2.0*ForwardTOF_rmax1*sin(ForwardTOFModOpeningAngle/2.0)"/> - <constant name="ForwardTOFMod1_y" value="ForwardTOF_rmax1*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin1"/> - <constant name="ForwardTOFMod2_x1" value="2.0*ForwardTOF_rmin2*sin(ForwardTOFModOpeningAngle/2.0)"/> - <constant name="ForwardTOFMod2_x2" value="2.0*ForwardTOF_rmax2*sin(ForwardTOFModOpeningAngle/2.0)"/> - <constant name="ForwardTOFMod2_y" value="ForwardTOF_rmax2*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin2"/> + <constant name="ForwardTOFMod_rmin" value="ForwardTOFRegion_tan * ForwardTOF_zmin" /> + <constant name="ForwardTOFMod_rmax" value="ForwardTOFRegion_rmax" /> + <constant name="ForwardTOFMod_x1" value="2 * ForwardTOFMod_rmin * tan(TOFEndcapMod_angle/2)" /> + <constant name="ForwardTOFMod_x2" value="2 * ForwardTOFMod_rmax * sin(TOFEndcapMod_angle/2)" /> + <constant name="ForwardTOFMod_y" value="ForwardTOFMod_rmax * cos(TOFEndcapMod_angle/2) - ForwardTOFMod_rmin" /> + <constant name="ForwardTOFMod1_zmin" value="ForwardTOF_zmin" /> + <constant name="ForwardTOFMod2_zmin" value="ForwardTOF_zmin + ForwardTOFMod_offset" /> + <constant name="ForwardTOFLayer_rmin" value="ForwardTOFMod_rmin - 1*um" /> + <constant name="ForwardTOFLayer_rmax" value="ForwardTOFMod_rmax + 1*um" /> + <constant name="ForwardTOFLayer1_zmin" value="ForwardTOFMod1_zmin - TOFEndcapLayer_thickness / 2" /> + <constant name="ForwardTOFLayer2_zmin" value="ForwardTOFMod2_zmin - TOFEndcapLayer_thickness / 2" /> - <constant name="BackwardTOF_zmin" value="BarrelTracking_length/2.0 + BackwardTracking_length + BackwardCherenkov_length "/> - <constant name="BackwardTOF_dz" value="(BackwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/> - <constant name="BackwardTOF_thickness" value="BackwardTOF_dz - 1.0*mm"/> - <comment> Note, the -1.0*mm is so the layers do not touch surfaces. - This is a limitation of ACTS geometry which will likely go away in the future.</comment> - <constant name="BackwardTOF_rmin1" value="ForwardPID_rmin1"/> - <constant name="BackwardTOF_rmin2" value="ForwardPID_rmin1"/> - <constant name="BackwardTOF_rmax1" value="BarrelTracking_rmax"/> - <constant name="BackwardTOF_rmax2" value="BarrelTracking_rmax"/> - <constant name="BackwardTOFModOpeningAngle" value="30.0*degree"/> - <constant name="BackwardTOFMod1_x1" value="2.0*BackwardTOF_rmin1*sin(BackwardTOFModOpeningAngle/2.0)"/> - <constant name="BackwardTOFMod1_x2" value="2.0*BackwardTOF_rmax1*sin(BackwardTOFModOpeningAngle/2.0)"/> - <constant name="BackwardTOFMod1_y" value="BackwardTOF_rmax1*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin1"/> - <constant name="BackwardTOFMod2_x1" value="2.0*BackwardTOF_rmin2*sin(BackwardTOFModOpeningAngle/2.0)"/> - <constant name="BackwardTOFMod2_x2" value="2.0*BackwardTOF_rmax2*sin(BackwardTOFModOpeningAngle/2.0)"/> - <constant name="BackwardTOFMod2_y" value="BackwardTOF_rmax2*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin2"/> + <constant name="BackwardTOFMod_rmin" value="BackwardPIDRegion_tan * BackwardTOF_zmin" /> + <constant name="BackwardTOFMod_rmax" value="BackwardPIDRegion_rmax" /> + <constant name="BackwardTOFMod_x1" value="2 * BackwardTOFMod_rmin * tan(TOFEndcapMod_angle/2)" /> + <constant name="BackwardTOFMod_x2" value="2 * BackwardTOFMod_rmax * sin(TOFEndcapMod_angle/2)" /> + <constant name="BackwardTOFMod_y" value="BackwardTOFMod_rmax * cos(TOFEndcapMod_angle/2) - BackwardTOFMod_rmin" /> + <constant name="BackwardTOFMod1_zmin" value="BackwardTOF_zmin" /> + <constant name="BackwardTOFMod2_zmin" value="BackwardTOF_zmin + BackwardTOFMod_offset" /> + <constant name="BackwardTOFLayer_rmin" value="BackwardTOFMod_rmin - 1*um" /> + <constant name="BackwardTOFLayer_rmax" value="BackwardTOFMod_rmax + 1*um" /> + <constant name="BackwardTOFLayer1_zmin" value="BackwardTOFMod1_zmin - TOFEndcapLayer_thickness / 2" /> + <constant name="BackwardTOFLayer2_zmin" value="BackwardTOFMod2_zmin - TOFEndcapLayer_thickness / 2" /> </define> <detectors> @@ -52,40 +72,39 @@ readout="TOFEndcapHits" vis="TOFVis" reflect="false"> - <module name="Module1" vis="TOFVis"> - <trd x1="ForwardTOFMod1_x1/2.0" x2="ForwardTOFMod1_x2/2.0" z="ForwardTOFMod1_y/2"/> - <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> - </module> - <module name="Module2" vis="TOFVis"> - <trd x1="ForwardTOFMod2_x1/2.0" x2="ForwardTOFMod2_x2/2.0" z="ForwardTOFMod2_y/2"/> - <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + <module name="ForwardModule" vis="TOFModuleVis"> + <trd x1="ForwardTOFMod_x1/2.0" x2="ForwardTOFMod_x2/2.0" z="ForwardTOFMod_y/2"/> + <comment> TRDs are built back-to-front </comment> + <module_component thickness="TOFEndcapService_thickness" material="Silicon" vis="TOFVis"/> + <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true" vis="TOFSensorVis"/> </module> <layer id="1"> - <envelope vis="TOFVis" - rmin="ForwardTOF_rmin1" - rmax="ForwardTOF_rmax1" - length="BackwardTOF_thickness" - zstart="ForwardTOF_zmin" /> - <ring vis="TOFVis" - r="ForwardTOF_rmin1+ForwardTOFMod1_y/2.0" - zstart="0.0*mm" - nmodules="12" dz="2.5 * mm" module="Module1" /> + <envelope vis="TOFLayerVis" + rmin="ForwardTOFLayer_rmin" + rmax="ForwardTOFLayer_rmax" + length="TOFEndcapLayer_thickness" + zstart="ForwardTOFLayer1_zmin" /> + <ring + r="ForwardTOFMod_rmin + ForwardTOFMod_y/2.0" + zstart="0" + nmodules="TOFEndcapMod_count" + dz="TOFEndcapMod_dz" + module="ForwardModule" /> </layer> <layer id="2"> - <envelope vis="TOFVis" - rmin="ForwardTOF_rmin2" - rmax="ForwardTOF_rmax2" - length="BackwardTOF_thickness" - zstart="ForwardTOF_zmin + ForwardTOF_dz" /> - <ring vis="TOFVis" - r="ForwardTOF_rmin2+ForwardTOFMod2_y/2.0" - zstart="0.0*mm" - nmodules="12" dz="2.5 * mm" module="Module2" /> + <envelope vis="TOFLayerVis" + rmin="ForwardTOFLayer_rmin" + rmax="ForwardTOFLayer_rmax" + length="TOFEndcapLayer_thickness" + zstart="ForwardTOFLayer2_zmin" /> + <ring + r="ForwardTOFMod_rmin + ForwardTOFMod_y/2.0" + zstart="0" + nmodules="TOFEndcapMod_count" + dz="TOFEndcapMod_dz" + module="ForwardModule" /> </layer> </detector> - <detector id="BackwardTOF_ID" name="BackwardTOF" @@ -93,44 +112,44 @@ readout="TOFEndcapHits" vis="TOFVis" reflect="true"> - <module name="Module1" vis="TOFVis"> - <trd x1="BackwardTOFMod1_x1/2.0" x2="BackwardTOFMod1_x2/2.0" z="BackwardTOFMod1_y/2"/> - <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> - </module> - <module name="Module2" vis="TOFVis"> - <trd x1="BackwardTOFMod2_x1/2.0" x2="BackwardTOFMod2_x2/2.0" z="BackwardTOFMod2_y/2"/> - <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> - <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + <module name="BackwardModule" vis="TOFModuleVis"> + <trd x1="BackwardTOFMod_x1/2.0" x2="BackwardTOFMod_x2/2.0" z="BackwardTOFMod_y/2"/> + <comment> TRDs are built back-to-front </comment> + <module_component thickness="TOFEndcapService_thickness" material="Silicon" vis="TOFVis"/> + <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true" vis="TOFSensorVis"/> </module> <layer id="1"> - <envelope vis="TOFVis" - rmin="BackwardTOF_rmin1 + 0 * 1.2*cm" - rmax="BackwardTOF_rmax1" - length="BackwardTOF_thickness" - zstart="BackwardTOF_zmin" /> - <ring vis="TOFVis" - r="BackwardTOF_rmin1+BackwardTOFMod1_y/2.0" - zstart="0.0*mm" - nmodules="12" dz="2.5 * mm" module="Module1" /> + <envelope vis="TOFLayerVis" + rmin="BackwardTOFLayer_rmin" + rmax="BackwardTOFLayer_rmax" + length="TOFEndcapLayer_thickness" + zstart="BackwardTOFLayer1_zmin" /> + <ring + r="BackwardTOFMod_rmin + BackwardTOFMod_y/2.0" + zstart="0" + nmodules="TOFEndcapMod_count" + dz="TOFEndcapMod_dz" + module="BackwardModule" /> </layer> <layer id="2"> - <envelope vis="TOFVis" - rmin="BackwardTOF_rmin2" - rmax="BackwardTOF_rmax2" - length="BackwardTOF_thickness" - zstart="BackwardTOF_zmin + BackwardTOF_dz" /> - <ring vis="TOFVis" - r="BackwardTOF_rmin2+BackwardTOFMod2_y/2.0" - zstart="0.0*mm" - nmodules="12" dz="2.5 * mm" module="Module2" /> + <envelope vis="TOFLayerVis" + rmin="BackwardTOFLayer_rmin" + rmax="BackwardTOFLayer_rmax" + length="TOFEndcapLayer_thickness" + zstart="BackwardTOFLayer2_zmin" /> + <ring + r="BackwardTOFMod_rmin + BackwardTOFMod_y/2.0" + zstart="0" + nmodules="TOFEndcapMod_count" + dz="TOFEndcapMod_dz" + module="BackwardModule" /> </layer> </detector> </detectors> - + <readouts> <readout name="TOFEndcapHits"> - <segmentation type="CartesianGridXZ" grid_size_x="0.20*mm" grid_size_z="0.20*mm" /> + <segmentation type="CartesianGridXZ" grid_size_x="50*um" grid_size_z="50*um" /> <id>system:8,layer:4,module:12,sensor:2,x:32:-16,z:-16</id> </readout> </readouts> diff --git a/compact/tracking_config_deathvalley.xml b/compact/tracking_config_deathvalley.xml new file mode 100644 index 00000000..bd6d93ed --- /dev/null +++ b/compact/tracking_config_deathvalley.xml @@ -0,0 +1,112 @@ +<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="MedialTrackerCompositeBarrel"/> + <composite name="MedialTrackerEndcapP"/> + </detector> + <detector id="TrackerSubAssembly_2_ID" + name="OuterTrackerSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="OuterTrackerCompositeEndcapN"/> + <composite name="OuterTrackerBarrel"/> + <composite name="OuterTrackerCompositeEndcapP"/> + </detector> + <!-- + <detector id="TrackerSubAssembly_3_ID" + name="EcalBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + </detector> + --> + <detector id="TrackerSubAssembly_4_ID" + name="ForwardBackwardTrackerSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="ForwardGEM"/> + <composite name="BackwardNullTracker"/> + </detector> + <detector id="TrackerCompositeBarrel_0_ID" + name="MedialTrackerCompositeBarrel" + type="athena_CompositeTracker" + actsType="barrel" + vis="TrackerSubAssemblyVis"> + <position x="0*cm" y="0*cm" z="0*um" /> + <composite name="MedialTrackerBarrel"/> + <composite name="BarrelTOF"/> + </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> + <detector id="TrackerCompositeEndcapN_1_ID" + name="BackwardNullTracker" + type="athena_CompositeTracker" + actsType="endcap" + vis="TrackerSubAssemblyVis"> + <position x="0*cm" y="0*cm" z="-1*um" /> + </detector> + + </detectors> + + <documentation> + ### Material map for ACTS + https://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/127 + </documentation> + <plugins> + <plugin name="FileLoader"> + <arg value="file:calibrations/materials-map.cbor"/> + <arg value="url:https://eicweb.phy.anl.gov/EIC/detectors/athena/uploads/4a4e7c8eb6089b634d762d112c89bd5d/material-maps.cbor"/> + </plugin> + </plugins> + + <include ref="vertex_tracker_3layers.xml"/> + <include ref="central_tracker_hybrid_v2.xml"/> + +</lccdd> + diff --git a/src/BarrelTrackerWithFrame_geo.cpp b/src/BarrelTrackerWithFrame_geo.cpp index 0642d443..64210bc5 100644 --- a/src/BarrelTrackerWithFrame_geo.cpp +++ b/src/BarrelTrackerWithFrame_geo.cpp @@ -166,24 +166,26 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi double thickness_so_far = 0.0; double thickness_sum = -total_thickness/2.0; for (xml_coll_t ci(x_mod, _U(module_component)); ci; ++ci, ++ncomponents) { - xml_comp_t x_comp = ci; - xml_comp_t x_pos = x_comp.position(false); - xml_comp_t x_rot = x_comp.rotation(false); - string c_nam = _toString(ncomponents, "component%d"); - Box c_box(x_comp.width() / 2, x_comp.length() / 2, x_comp.thickness() / 2); - Volume c_vol(c_nam, c_box, description.material(x_comp.materialStr())); - + xml_comp_t x_comp = ci; + xml_comp_t x_pos = x_comp.position(false); + xml_comp_t x_rot = x_comp.rotation(false); + const string c_nam = _toString(ncomponents, "component%d"); + Box c_box(x_comp.width() / 2, x_comp.length() / 2, x_comp.thickness() / 2); + Volume c_vol(c_nam, c_box, description.material(x_comp.materialStr())); + + // Utility variable for the relative z-offset based off the previous components + const double zoff = thickness_sum+x_comp.thickness() / 2.0; if (x_pos && x_rot) { - Position c_pos(x_pos.x(0), x_pos.y(0), x_pos.z(0)); + Position c_pos(x_pos.x(0), x_pos.y(0), x_pos.z(0) + zoff); RotationZYX c_rot(x_rot.z(0), x_rot.y(0), x_rot.x(0)); pv = m_vol.placeVolume(c_vol, Transform3D(c_rot, c_pos)); } else if (x_rot) { - Position c_pos(0, 0, thickness_sum + x_comp.thickness() / 2.0); - pv = m_vol.placeVolume(c_vol, Transform3D(RotationZYX(x_rot.z(0), x_rot.y(0), x_rot.x(0)),c_pos)); + Position c_pos(0, 0, zoff); + pv = m_vol.placeVolume(c_vol, Transform3D(RotationZYX(x_rot.z(0), x_rot.y(0), x_rot.x(0)), c_pos)); } else if (x_pos) { - pv = m_vol.placeVolume(c_vol, Position(x_pos.x(0), x_pos.y(0), x_pos.z(0))); + pv = m_vol.placeVolume(c_vol, Position(x_pos.x(0), x_pos.y(0), x_pos.z(0) + zoff)); } else { - pv = m_vol.placeVolume(c_vol, Position(0,0,thickness_sum+x_comp.thickness()/2.0)); + pv = m_vol.placeVolume(c_vol, Position(0, 0, zoff)); } c_vol.setRegion(description, x_comp.regionStr()); c_vol.setLimitSet(description, x_comp.limitsStr()); @@ -217,6 +219,11 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi } thickness_sum += x_comp.thickness(); thickness_so_far += x_comp.thickness(); + // apply relative offsets in z-position used to stack components side-by-side + if (x_pos) { + thickness_sum += x_pos.z(0); + thickness_so_far += x_pos.z(0); + } } } @@ -341,3 +348,4 @@ static Ref_t create_BarrelTrackerWithFrame(Detector& description, xml_h e, Sensi DECLARE_DETELEMENT(BarrelTrackerWithFrame, create_BarrelTrackerWithFrame) DECLARE_DETELEMENT(athena_TrackerBarrel, create_BarrelTrackerWithFrame) DECLARE_DETELEMENT(athena_VertexBarrel, create_BarrelTrackerWithFrame) +DECLARE_DETELEMENT(athena_TOFBarrel, create_BarrelTrackerWithFrame) -- GitLab