From 289dab643898a2eb96b22ec0522fe692b67e3067 Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Wed, 14 Apr 2021 00:55:44 -0500
Subject: [PATCH] Added parameterized forward ion TRD

 - Currently just a volume  containing air.
---
 compact/definitions.xml  | 47 ++++++++++++++++++++++++++++------------
 compact/forward_rich.xml | 40 +++++++++++++++++-----------------
 compact/forward_trd.xml  | 33 ++++++++++++++++++++++++++++
 reference_detector.xml   |  1 +
 4 files changed, 87 insertions(+), 34 deletions(-)
 create mode 100644 compact/forward_trd.xml

diff --git a/compact/definitions.xml b/compact/definitions.xml
index 1c972714..542083ea 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -130,9 +130,24 @@
     (75-99) Reserved IDs
     ===================
 
-    Unused IDs: 75-99 
+    Unused IDs: 75-89 
     TBD
     </comment>
+    <comment> 
+    ======================
+    (90-99) Barrel PID IDs
+    ======================
+
+    DIRC subsystem       ID: 90
+    Barrel TRD subsystem ID: 91
+    Barrel TOF subsystem ID: 92
+
+    Unused IDs: 93-99 
+    </comment>
+    <constant name="BarrelDIRC_ID" value="90"/>
+    <constant name="BarrelTRD_ID"  value="91"/>
+    <constant name="BarrelTOF_ID"  value="92"/>
+
 
     <comment> 
       =====================================
@@ -179,11 +194,12 @@
       Forwardtracking ID: 120
       Forward RICH    ID: 121
 
-      Unused IDs: 123-129
+      Unused IDs: 124-129
     </comment>
     <constant name="ForwardTracking_ID" value="120"/>
     <constant name="ForwardRICH_ID"     value="121"/>
     <constant name="ci_GEM_id"          value="122"/>
+    <constant name="ForwardTRD_ID"      value="123"/>
 
     <comment> 
       =====================================
@@ -281,18 +297,21 @@
       These are needed here to compute the dependent parameters.
     </comment>
 
-    <constant name="RICHLength"       value="1.1*m"/>
-    <constant name="TRDLength"        value="20.0*cm"/>
-    <constant name="ForwardTOFLength" value="10.0*cm"/>
+    <constant name="ForwardRICH_length"       value="1.1*m"/>
+    <constant name="ForwardTRD_length"        value="20.0*cm"/>
+    <constant name="ForwardTOF_length" value="10.0*cm"/>
     
     <constant name="BackwardCherenkovLength"   value="15.0*cm"/>
     <constant name="BackwardTOFLength"         value="10.0*cm"/>
 
     <comment> Total length of PID detectors above</comment>
-    <constant name="ForwardPIDLength"    value="RICHLength + TRDLength + ForwardTOFLength"/>
+    <constant name="ForwardPIDLength"    value="ForwardRICH_length + ForwardTRD_length + ForwardTOF_length"/>
     <constant name="BackwardPIDLength"   value="BackwardCherenkovLength + BackwardTOFLength"/>
 
-    <constant name="BarrelPIDThickness"  value="25.0 * cm"/>
+    <comment> Barrel PID thicknesses</comment>
+    <constant name="BarrelExtraPIDThickness"  value="25.0 * cm"/>
+    <constant name="BarrelTRDThickness"  value="25.0 * cm"/>
+    <constant name="BarrelTOFThickness"  value="1.0 * cm"/>
 
     <comment>
       ============================
@@ -372,7 +391,7 @@
     <constant name="SolenoidYokeEndcapP_zmin"  value="Solenoid_length/2.0 + Solenoid_offset+ExtraHcalEndcapP_length"/>
     <constant name="SolenoidYokeEndcapN_zmin"  value="Solenoid_length/2.0 - Solenoid_offset+ExtraHcalEndcapN_length"/>
 
-    <constant name="EcalBarrel_rmin"            value="SiliconTrackerOuterRadius + BarrelPIDThickness + 5.0 * mm"/>
+    <constant name="EcalBarrel_rmin"            value="SiliconTrackerOuterRadius + BarrelExtraPIDThickness + 5.0 * mm"/>
     <constant name="HcalBarrel_rmax"            value="Solenoid_rmin - 10.0 *cm "/>
     <constant name="Barrel_TotalCalThickness"   value="HcalBarrel_rmax - EcalBarrel_rmin"/>
     <constant name="CalBarrelDivider"           value="0.5"/> <comment> Ecal and Hcal have the same thickness </comment>
@@ -550,12 +569,12 @@
       Gaseous RICH Parameters
       -----------------------
     </comment>
-    <constant name="RICHZMin"  value="SiliconTrackerOuterBarrel_zmax + 1 * cm"/>
-    <constant name="RICHRMin"  value="15 * cm"/>
-    <constant name="RICH_rmax0"  value="SiliconTrackerOuterRadius"/>
-    <constant name="RICH_rmax1"  value="EcalBarrel_rmin"/>
-    <constant name="RICH_rmax2"  value="SolenoidBarrel_rmin-2*cm"/>
-    <constant name="RICHDepth" value="0.9*m"/>
+    <constant name="ForwardRICH_zmin"  value="SiliconTrackerOuterBarrel_zmax + 1 * cm"/>
+    <constant name="ForwardRICH_rmin"  value="15 * cm"/>
+    <constant name="ForwardRICH_rmax0"  value="SiliconTrackerOuterRadius"/>
+    <constant name="ForwardRICH_rmax1"  value="EcalBarrel_rmin"/>
+    <constant name="ForwardRICH_rmax2"  value="SolenoidBarrel_rmin-2*cm"/>
+    <constant name="ForwardRICHDepth" value="0.9*m"/>
 
 
     <comment>
diff --git a/compact/forward_rich.xml b/compact/forward_rich.xml
index ca0b4ed5..8350f593 100644
--- a/compact/forward_rich.xml
+++ b/compact/forward_rich.xml
@@ -6,26 +6,26 @@
   <detectors>
     <detector id="ForwardRICH_ID" name="ForwardRICH" type="refdet_ForwardRICH" readout="ForwardRICHHits" vis="BlueVis">
       <dimensions 
-        z0="RICHZMin" 
-        snout_length="RICHLength - RICHDepth"
-        length="RICHLength" 
-        rmin="RICHRMin" 
-        rmax0="RICH_rmax0" 
-        rmax1="RICH_rmax1" 
-        rmax2="RICH_rmax2"/>
+        z0="ForwardRICH_zmin" 
+        snout_length="ForwardRICH_length - ForwardRICHDepth"
+        length="ForwardRICH_length" 
+        rmin="ForwardRICH_rmin" 
+        rmax0="ForwardRICH_rmax0" 
+        rmax1="ForwardRICH_rmax1" 
+        rmax2="ForwardRICH_rmax2"/>
       <radiator material="N2cherenkov" />
       <tank 
-        length="RICHDepth" 
+        length="ForwardRICHDepth" 
         gas="N2cherenkov"
         vis="GreenVis"
-        rmin="RICHRMin"
-        rmax1="RICH_rmax1"
-        rmax2="RICH_rmax2" />
+        rmin="ForwardRICH_rmin"
+        rmax1="ForwardRICH_rmax1"
+        rmax2="ForwardRICH_rmax2" />
       <comment> What are the following MCP-PMT parameters?</comment>
       <mcppmt 
         z0="-20.0*cm" 
-        rmin="RICH_rmax1" 
-        rmax="RICH_rmax2" 
+        rmin="ForwardRICH_rmax1" 
+        rmax="ForwardRICH_rmax2" 
         rtol="1.0*cm" 
         vis="BlueVis"
         module_size="10*cm" 
@@ -33,16 +33,16 @@
         thickness="1.0*cm" 
         material="Quartz" />
       <mirror 
-        z0="RICHLength - 40*cm" 
+        z0="ForwardRICH_length - 40*cm" 
         thickness="1*mm" 
         material="PyrexGlass" 
         vis="GrayVis">
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="0*degree" />
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="60*degree" />
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="120*degree" />
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="180*degree" />
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="240*degree" />
-        <slice focus="10*cm" curve="300*cm" rmin="RICHRMin" rmax="RICH_rmax1" phiw="59*degree" rotz="300*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="0*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="60*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="120*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="180*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="240*degree" />
+        <slice focus="10*cm" curve="300*cm" rmin="ForwardRICH_rmin" rmax="ForwardRICH_rmax1" phiw="59*degree" rotz="300*degree" />
       </mirror>
     </detector>
   </detectors>
diff --git a/compact/forward_trd.xml b/compact/forward_trd.xml
new file mode 100644
index 00000000..693f5333
--- /dev/null
+++ b/compact/forward_trd.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lccdd>
+  <define>
+    <comment>
+      --------------------------
+      Forward TRD Parameters
+      --------------------------
+    </comment>
+    <constant name="ForwardTRD_zmin" value="ForwardRICH_zmin + ForwardRICH_length+ 1*cm"/>
+    <constant name="ForwardTRD_rmin" value="ForwardRICH_rmin"/>
+    <constant name="ForwardTRD_rmax" value="EcalBarrel_rmax - 5*cm"/>
+  </define>
+
+  <detectors>
+    <detector 
+      id="ForwardTRD_ID"
+      name="ForwardTRD"
+      type="ref_DiskTracker"
+      insideTrackingVolume="true"
+      reflect="false"
+      vis="Argonne_Red">
+      <position x="0" y="0" z="0"/>
+      <layer id="1" 
+        vis="Argonne_Blue"
+        inner_z="ForwardTRD_zmin" 
+        inner_r="ForwardTRD_rmin" 
+        outer_r="ForwardTRD_rmax">
+        <slice material="Air" thickness="ForwardTRD_length/2.0" vis="Argonne_Blue" />
+      </layer>
+    </detector>
+  </detectors>
+
+</lccdd>
diff --git a/reference_detector.xml b/reference_detector.xml
index aa89d843..a1493dc1 100644
--- a/reference_detector.xml
+++ b/reference_detector.xml
@@ -123,6 +123,7 @@
   <include ref="compact/ffi_ZDC.xml"/>
   <include ref="compact/ci_GEM.xml"/>
   <include ref="compact/hcal.xml"/>
+  <include ref="compact/forward_trd.xml"/>
   <!--
   <include ref="compact/ci_HCAL.xml"/>
   <include ref="compact/forward_rich.xml"/>
-- 
GitLab