From 1a88906490c2813ff449e4423613b601e0f6e16d Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Fri, 26 Mar 2021 23:00:07 -0500
Subject: [PATCH] 	modified:   compact/definitions.xml

---
 compact/definitions.xml | 82 +++++++++++++++++++++++------------------
 1 file changed, 47 insertions(+), 35 deletions(-)

diff --git a/compact/definitions.xml b/compact/definitions.xml
index d8535e9..6fc4c15 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -231,18 +231,16 @@
     </comment>
 
     <comment>
-      --------------------------
-      Solenoid Magnet Parameters
-      --------------------------
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Detector Definition Parameters 
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     </comment>
 
     <comment>
-      These cb_ parameters don't make sense
+      ==========================
+      Solenoid Magnet Parameters
+      ==========================
     </comment>
-    <constant name="cb_Solenoid_rmin"  value="0.0 * cm"/>   <comment> Central Barrel Solenoid Inner diameter </comment>
-    <constant name="cb_Solenoid_rmax"  value="137.0 * cm"/> <comment> Central Barrel Solenoid Outer diameter </comment>
-    <constant name="cb_Solenoid_z"     value="400.0 * cm"/> 
-    <constant name="cb_Solenoid_shift" value="0.0 * cm"/><comment> Central Barrel Solenoid Size in Z direction </comment>
 
     <constant name="Solenoid_thickness"      value="400*mm"/>
     <constant name="Solenoid_rmin"           value="2000.0*mm"/>
@@ -298,6 +296,14 @@
     <constant name="RICHLength"       value="1.5*m"/>
     <constant name="TRDLength"        value="40.0*cm"/>
     <constant name="ForwardTOFLength" value="10.0*cm"/>
+    <constant name="ForwardPIDLength" value="RICHLength + TRDLength + ForwardTOFLength"/>
+    
+    <constant name="BackwardCherenkovLength"   value="50.0*cm"/>
+    <constant name="BackwardTOFLength"         value="10.0*cm"/>
+    <constant name="BackwardPIDLength"         value="BackwardCherenkovLength + BackwardTOFLength"/>
+
+    <constant name="BarrelPIDThickness"        value="25.0 * cm"/>
+
 
     <comment>
       ============================
@@ -327,27 +333,34 @@
     <constant name="SiliconTrackerOuterRadius"       value="Solenoid_rmax/2.0"/>
     <constant name="SiliconTrackerOuterBarrelLength" value="SolenoidLength/3.0"/>
 
-
-
     <comment>
-      ------------
-      Calorimeters
-      ------------
+      ======================
+      Calorimeter Parameters
+      ======================
+
     </comment>
-    <constant name="EcalBarrel_rmin"                       value="SiliconTrackerOuterRadius + 3.0 * cm"/>
+    <constant name="EcalBarrel_rmin"                       value="SiliconTrackerOuterRadius + BarrelPIDThickness + 3.0 * cm"/>
     <constant name="HcalBarrel_rmax"                       value="Solenoid_rmin - 5.0 *cm "/>
-    <constant name="AvailTotalBarrelCalorimetryThickness"  value="HcalBarrel_rmax - EcalBarrel_rmin"/>
+    <constant name="Barrel_TotalCalThickness"  value="HcalBarrel_rmax - EcalBarrel_rmin"/>
     <constant name="CalBarrelDivider"                      value="0.5"/> <comment> Ecal and Hcal have the same thickness </comment>
-    <constant name="EcalBarrelAvailTotalThickness"         value="AvailTotalBarrelCalorimetryThickness * CalBarrelDivider"/>
-    <constant name="HcalBarrelAvailTotalThickness"         value="AvailTotalBarrelCalorimetryThickness * (1.0 - CalBarrelDivider)"/>
+    <constant name="EcalBarrel_TotalThickness"         value="Barrel_TotalCalThickness * CalBarrelDivider"/>
+    <constant name="HcalBarrel_TotalThickness"         value="Barrel_TotalCalThickness * (1.0 - CalBarrelDivider)"/>
+
+    <constant name="EcalBarrelLength"                      value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength"/>
+    <constant name="EcalEndcapP_zmin"                      value="SiliconTrackerOuterBarrelLength/2.0 + ForwardPIDLength"/>
+    <constant name="EcalEndcapN_zmin"                      value="SiliconTrackerOuterBarrelLength/2.0 + BackwardPIDLength"/>
 
-    <constant name="EcalBarrelLength"                      value="SiliconTrackerOuterBarrelLength+RICHLength+ForwardTOFLength+TRDLength"/>
-    <constant name="EcalEndcap_zmin"                       value="EcalBarrelLength/2.0"/>
+    <constant name="EndcapP_TotalCalThickness"       value="(SolenoidYokeEndcap_zmin - 10.0 * mm) - (EcalEndcapP_zmin + 10.0 * mm)"/>
+    <constant name="EndcapN_TotalCalThickness"       value="(SolenoidYokeEndcap_zmin - 10.0 * mm) - (EcalEndcapN_zmin + 10.0 * mm)"/>
 
-    <constant name="AvailTotalEndcapCalorimetryThickness"  value="(SolenoidYokeEndcap_zmin - 10.0 * mm) - (EcalEndcap_zmin + 10.0 * mm)"/>
-    <constant name="CalEndcapDivider"                      value="0.5"/> <comment> Ecal and Hcal have the same thickness </comment>
-    <constant name="EcalEndcapAvailTotalThickness"         value="AvailTotalEndcapCalorimetryThickness * CalEndcapDivider"/>
-    <constant name="HcalEndcapAvailTotalThickness"         value="AvailTotalEndcapCalorimetryThickness * (1.0 - CalEndcapDivider)"/>
+    <constant name="EndcapP_CalDivide"                      value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
+    <constant name="EndcapN_CalDivide"                      value="0.5"/> <comment> 0.5 means Ecal and Hcal have the same thickness </comment>
+
+    <constant name="EcalEndcapP_TotalThickness"         value="EndcapP_TotalCalThickness * EndcapP_CalDivide"/>
+    <constant name="EcalEndcapN_TotalThickness"         value="EndcapN_TotalCalThickness * EndcapN_CalDivide"/>
+
+    <constant name="HcalEndcapP_TotalThickness"         value="EndcapP_TotalCalThickness * (1.0 - EndcapP_CalDivide)"/>
+    <constant name="HcalEndcapN_TotalThickness"         value="EndcapN_TotalCalThickness * (1.0 - EndcapN_CalDivide)"/>
 
     <comment> These need to be set in sync with the forward and backward  detectors </comment>
     <constant name="EcalEndcapP_rmin"                      value="250.0*mm"/>
@@ -360,6 +373,14 @@
       -------------------------
       EM Calorimeter Parameters
       -------------------------
+
+       ## Note about Calormieter parameterization.
+      
+       The logic goes like this: 
+       1. The space for the calorimeter is fixed via parameterization above.
+       2. The layer thicknesses are fixed (first parameters below)
+       3. From the space/thickness the number of layers is computed.
+
     </comment>
     <constant name="CaloSides"                  value="12"/>
 	    
@@ -434,9 +455,9 @@
       Gaseous RICH Parameters
       -----------------------
     </comment>
-    <constant name="RICHZMin" value="SiliconTrackerOuterBarrelLength/2.0 + 1 * cm"/>
-    <constant name="RICHRMin" value="15 * cm"/>
-    <constant name="RICHRMax" value="60 * cm"/>
+    <constant name="RICHZMin"  value="SiliconTrackerOuterBarrelLength/2.0 + 1 * cm"/>
+    <constant name="RICHRMin"  value="15 * cm"/>
+    <constant name="RICHRMax"  value="60 * cm"/>
     <constant name="RICHDepth" value="1.0*m"/>
 
 
@@ -445,15 +466,6 @@
       Forward Tracker Parameters
       --------------------------
     </comment>
-    <constant name="TempForwardTrackerSpace" value="1.5 * m"/>
-    <constant name="ForwardEcalZMin" value="RICHZMin + RICHDepth + TempForwardTrackerSpace"/>
-    <constant name="ForwardCaloAngle" value="2 * SolenoidYokeChamferAngle"/>
-    <constant name="ForwardEcalRInner" value="10 * cm"/>
-    <constant name="ForwardEcalROuter" value="EcalBarrel_rmin + tan(SolenoidYokeChamferAngle) * (RICHDepth) + tan(ForwardCaloAngle) * (ForwardEcalZMin - RICHZMin - RICHDepth)"/>
-    <constant name="ForwardHcalZMin" value="RICHZMin + RICHDepth + TempForwardTrackerSpace + EcalEndcapThickness + 1 * mm"/>
-    <constant name="ForwardHcalAngle" value="ForwardCaloAngle"/>
-    <constant name="ForwardHcalRInner" value="10 * cm"/>
-    <constant name="ForwardHcalROuter" value="ForwardEcalROuter + tan(ForwardCaloAngle) * (ForwardHcalZMin - ForwardEcalZMin)"/>
 
     <comment>
       --------------------------
-- 
GitLab