From f2821b0b02f19222e19cb9f8a33faea46ff2bd48 Mon Sep 17 00:00:00 2001 From: Sylvester Joosten <sjoosten@anl.gov> Date: Wed, 20 Oct 2021 20:03:36 +0000 Subject: [PATCH] Resolve "Negative endcap (HCAL) geometry" --- compact/definitions.xml | 16 ++++++++++------ compact/display.xml | 5 +++++ compact/display_geoviewer.xml | 5 +++++ compact/hcal.xml | 23 +++++++++++++++++++++-- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/compact/definitions.xml b/compact/definitions.xml index 3b6af4bf..683a1497 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -190,6 +190,7 @@ The unused IDs below are saved for future use. <constant name="HCalBarrel_ID" value="111"/> <constant name="HCalEndcapP_ID" value="112"/> <constant name="HCalEndcapN_ID" value="113"/> + <constant name="PassiveSteelRingEndcapP_ID" value="114"/> <documentation> #### (120-129) (near) Forward reserved @@ -423,9 +424,10 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc <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 "/> + <comment> extra 50cm rmax that "protrudes" into the HCAL</comment> + <constant name="EcalEndcapP_rmax" value="Solenoid_rmax + 50*cm"/> - <constant name="EcalEndcapN_zmin" value="max(BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length, SolenoidBackward_zmax)"/> + <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)) + 15.5 * mm, 5*cm)" /> <constant name="EcalEndcapN_rmax" value="CentralTrackingRegion_rmax" /> @@ -436,6 +438,7 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc <constant name="EcalBarrelBackward_zmax" value="EcalEndcapN_zmin + 30*cm"/> <constant name="EcalBarrel_length" value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/> <constant name="EcalBarrel_offset" value="(EcalBarrelForward_zmax - EcalBarrelBackward_zmax)/2.0"/> + <constant name="EcalBarrelReadout_length" value="20*cm"/> <documentation level="3"> @@ -443,8 +446,8 @@ 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="ForwardPIDRegion_zmin + DIRCForward_length"/> - <constant name="DIRCBackward_zmax" value="BackwardPIDRegion_zmin + BackwardInnerEndcapRegion_length + EcalEndcapN_length + DIRCReadout_length"/> + <constant name="DIRCForward_zmax" value="EcalBarrelForward_zmax "/> + <constant name="DIRCBackward_zmax" value="EcalBarrelBackward_zmax + EcalBarrelReadout_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="CentralTrackingRegion_rmax"/> @@ -459,7 +462,7 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc <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)"/> - <constant name="HcalEndcapN_zmin" value="DIRCBackward_zmax + BackwardServiceGap_length"/> + <constant name="HcalEndcapN_zmin" value="max(DIRCBackward_zmax + BackwardServiceGap_length, 335*cm)"/> <constant name="HcalEndcapN_length" value="105.0*cm"/> <comment> HcalEndcapN needs to clear the straight beampipe with 1 * crossing angle + its radius of 22.25 mm </comment> <constant name="HcalEndcapN_rmin" value="max((HcalEndcapN_zmin + HcalEndcapN_length) * tan(abs(CrossingAngle)) + 22.25 * mm, 11 * cm)"/> @@ -467,7 +470,8 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc <constant name="HcalBarrel_thickness" value="100.0*cm "/> <constant name="HcalBarrel_rmin" value="Solenoid_rmax"/> <constant name="HcalBarrel_rmax" value="HcalBarrel_rmin + HcalBarrel_thickness"/> - <constant name="HcalBarrel_length" value="HcalEndcapP_zmin + HcalEndcapN_zmin "/> + <constant name="HcalBarrelForward_zmax" value="HcalEndcapP_zmin - ForwardServiceGap_length - EcalEndcapP_length"/> + <constant name="HcalBarrelBackward_zmax" value="HcalEndcapN_zmin - BackwardServiceGap_length"/> <comment> These are used by ddsim, the region where we store all secondaries diff --git a/compact/display.xml b/compact/display.xml index 3175dd74..8740861f 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -57,6 +57,11 @@ <vis name="HcalSensorVis" ref="AnlBlue" showDaughters="false" visible="false"/> <vis name="HcalAbsorberVis" ref="AnlGray" showDaughters="false" visible="false"/> + <comment> + Passive steel for flux return + </comment> + <vis name="PassiveSteelVis" ref="AnlViolet" showDaughters="false" visible="true"/> + <comment> Solenoid </comment> diff --git a/compact/display_geoviewer.xml b/compact/display_geoviewer.xml index 83f8b19b..ba8d7128 100644 --- a/compact/display_geoviewer.xml +++ b/compact/display_geoviewer.xml @@ -56,6 +56,11 @@ <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 </comment> diff --git a/compact/hcal.xml b/compact/hcal.xml index 19adfa57..27bf87f9 100644 --- a/compact/hcal.xml +++ b/compact/hcal.xml @@ -1,9 +1,10 @@ <lccdd> <define> - <constant name="HcalBarrel_offset" value="(HcalEndcapP_zmin-HcalEndcapN_zmin)/2.0" /> - + <constant name="HcalBarrel_length" value="HcalBarrelForward_zmax + HcalBarrelBackward_zmax"/> + <constant name="HcalBarrel_offset" value="(HcalBarrelForward_zmax - HcalBarrelBackward_zmax)/2"/> <constant name="HcalBarrelAvailThickness" value="HcalBarrel_thickness"/> + <documentation> #### Material Thickness </documentation> @@ -93,6 +94,24 @@ </layer> </detector> + <detector + id="PassiveSteelRingEndcapP_ID" + name="PassiveSteelRingEndcapP" + type="athena_PolyhedraEndcapCalorimeter2" + vis="PassiveSteelVis" + calorimeterType="HAD_ENDCAP" + reflect="false"> + <position x="0" y="0" z="0"/> + <dimensions + numsides="CaloSides" + zmin="EcalEndcapP_zmin" + rmin="EcalEndcapP_rmax" + rmax="HcalBarrel_rmax"/> + <layer repeat="1"> + <slice material="Steel235" thickness="EcalEndcapP_length" vis="HcalAbsorberVis"/> + </layer> + </detector> + <detector id="HCalEndcapN_ID" name="HcalEndcapN" -- GitLab