From 85c45920d89fddcc25cc596b89770bc213f74ae9 Mon Sep 17 00:00:00 2001
From: Sylvester Joosten <sylvester.joosten@gmail.com>
Date: Thu, 13 May 2021 03:27:13 +0000
Subject: [PATCH] Add simple DIRC implementation.

---
 compact/B0_tracker.xml               | 12 ++---
 compact/cb_DIRC.xml                  | 43 ++++++++++++++++
 compact/cb_VTX_Barrel.xml            | 44 ++++++++---------
 compact/definitions.xml              |  9 ++--
 compact/display.xml                  | 32 ++++++------
 compact/far_forward_offM_tracker.xml | 12 ++---
 compact/far_forward_romanpots.xml    | 24 ++++-----
 compact/forward_trd.xml              | 10 ++--
 compact/gem_tracker_endcap.xml       | 60 +++++++++++------------
 compact/mm_tracker_barrel.xml        |  2 +-
 compact/rwell_tracker_barrel.xml     |  8 +--
 compact/tof_endcap.xml               | 12 ++---
 compact/vertex_tracker.xml           | 44 ++++++++---------
 reference_detector.xml               |  1 +
 src/cb_DIRC.cpp                      | 73 ++++++++++++++++++++++++++++
 15 files changed, 252 insertions(+), 134 deletions(-)
 create mode 100644 compact/cb_DIRC.xml
 create mode 100644 src/cb_DIRC.cpp

diff --git a/compact/B0_tracker.xml b/compact/B0_tracker.xml
index 165e3ebd..d7f14aa3 100644
--- a/compact/B0_tracker.xml
+++ b/compact/B0_tracker.xml
@@ -17,16 +17,16 @@
       type="ref_RectangularTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Red">
+      vis="AnlRed">
       <position x="0" y="0" z="B0Tracker_zpos"/>
       <layer id="1" 
-        vis="Argonne_Blue"
+        vis="AnlBlue"
         x="20.0*cm" 
         y="10.0*cm" >
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
       </layer>
     </detector>
   </detectors>
diff --git a/compact/cb_DIRC.xml b/compact/cb_DIRC.xml
new file mode 100644
index 00000000..a7f46ac5
--- /dev/null
+++ b/compact/cb_DIRC.xml
@@ -0,0 +1,43 @@
+<lccdd>
+
+  <comment>Initial implementation of the Reference Detector
+           DIRC (ported from g4e). Currently constructed around
+           a fixed radius of 83.65cm (between the uRWEL layers).
+           TODO: this needs to be properly parameterized.
+  </comment>
+
+  <define>
+    <constant name="cb_DIRC_length"            value="TrackerBarrelOuter_length"/>
+    <constant name="cb_DIRC_rmin"              value="82.00*cm"/>
+    <constant name="cb_DIRC_rmax"              value="88.00*cm"/>
+  </define>
+
+  <limits>
+  </limits>
+
+  <regions>
+  </regions>
+
+  <display>
+  </display>
+
+  <detectors>
+    <detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCHits" vis="AnlTeal">
+      <dimensions rmin="cb_DIRC_rmin" rmax="cb_DIRC_rmax" length="cb_DIRC_length"/>
+      <position x="0" y="0" z="0"/>
+    </detector>
+  </detectors>
+
+  <readouts>
+    <readout name="DIRCHits">
+      <segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
+      <id>system:8,barrel:3,module:12,x:32:-16,y:-16</id>
+    </readout>
+  </readouts>
+
+  <plugins>
+  </plugins>
+
+  <fields>
+  </fields>
+</lccdd>
diff --git a/compact/cb_VTX_Barrel.xml b/compact/cb_VTX_Barrel.xml
index 7979a82d..4b39ba89 100644
--- a/compact/cb_VTX_Barrel.xml
+++ b/compact/cb_VTX_Barrel.xml
@@ -60,72 +60,72 @@
     </detector>
 
     <detector id="SiVertexEndcapP_ID" name="SiVertexEndcapP" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="false" vis="Argonne_Red">
+      insideTrackingVolume="true" reflect="false" vis="AnlRed">
       <position x="0" y="0" z="0"/>
-      <layer id="1" vis="Argonne_Orange"
+      <layer id="1" vis="AnlOrange"
         inner_z="SiVertexEndcapP_zmin + 0*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapP_rmin" 
         outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="2" vis="Argonne_Orange"
+      <layer id="2" vis="AnlOrange"
         inner_z="SiVertexEndcapP_zmin + 1*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapP_rmin" 
         outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="3" vis="Argonne_Orange"
+      <layer id="3" vis="AnlOrange"
         inner_z="SiVertexEndcapP_zmin + 2*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapP_rmin" 
         outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="4" vis="Argonne_Orange"
+      <layer id="4" vis="AnlOrange"
         inner_z="SiVertexEndcapP_zmin + 3*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapP_rmin" 
         outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="5" vis="Argonne_Orange"
+      <layer id="5" vis="AnlOrange"
         inner_z="SiVertexEndcapP_zmin + 4*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapP_rmin" 
         outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
     </detector>
 
     <detector id="SiVertexEndcapN_ID" name="SiVertexEndcapN" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="true" vis="Argonne_Red">
+      insideTrackingVolume="true" reflect="true" vis="AnlRed">
       <position x="0" y="0" z="0"/>
-      <layer id="1" vis="Argonne_Orange"
+      <layer id="1" vis="AnlOrange"
         inner_z="SiVertexEndcapN_zmin + 0*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapN_rmin" 
         outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="2" vis="Argonne_Orange"
+      <layer id="2" vis="AnlOrange"
         inner_z="SiVertexEndcapN_zmin + 1*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapN_rmin" 
         outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="3" vis="Argonne_Orange"
+      <layer id="3" vis="AnlOrange"
         inner_z="SiVertexEndcapN_zmin + 2*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapN_rmin" 
         outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="4" vis="Argonne_Orange"
+      <layer id="4" vis="AnlOrange"
         inner_z="SiVertexEndcapN_zmin + 3*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapN_rmin" 
         outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="5" vis="Argonne_Orange"
+      <layer id="5" vis="AnlOrange"
         inner_z="SiVertexEndcapN_zmin + 4*SiVertexEndcap_delta" 
         inner_r="SiVertexEndcapN_rmin" 
         outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
     </detector>
   </detectors>
diff --git a/compact/definitions.xml b/compact/definitions.xml
index 1a8f2eae..f9e21323 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -341,7 +341,8 @@
     <constant name="ForwardPID_rmin1"  value="Beampipe_rmax + 80*mm"/>
 
     <comment> Barrel PID thicknesses</comment>
-    <constant name="BarrelExtraPIDThickness"  value="25.0 * cm"/>
+    <comment> Note: ExtraPID set to zero, as we have potentially trackers past PID</comment>
+    <constant name="BarrelExtraPIDThickness"  value="0.0 * cm"/>
     <constant name="BarrelTRDThickness"  value="1.0 * cm"/>
     <constant name="BarrelTOFThickness"  value="1.0 * cm"/>
 
@@ -399,7 +400,7 @@
     </comment>
 
     <constant name="TrackerBarrel_rmin"        value="VertexTrackerBarrel_rmax"/>
-    <constant name="TrackerBarrel_rmax"        value="Solenoid_rmax/3.0"/>
+    <constant name="TrackerBarrel_rmax"        value="92*cm"/>
     <constant name="TrackerBarrelOuter_length" value="1600.0*mm"/>
     <constant name="TrackerBarrelInner_length" value="VertexTrackingRegion_length"/>
     <constant name="TrackerBarrelInner_zmax"   value="TrackerBarrelInner_length/2.0"/>
@@ -464,8 +465,8 @@
     <constant name="SolenoidYokeEndcapP_zmin"  value="Solenoid_length/2.0 + Solenoid_offset + HcalEndcapPExtra_length"/>
     <constant name="SolenoidYokeEndcapN_zmin"  value="Solenoid_length/2.0 - Solenoid_offset + HcalEndcapNExtra_length"/>
 
-    <constant name="EcalBarrel_rmin"            value="SiliconTrackerOuterRadius + BarrelExtraPIDThickness + 5.0 * mm"/>
-    <constant name="Barrel_rmax"                value="Solenoid_rmin - 10.0 *cm "/>
+    <constant name="EcalBarrel_rmin"            value="TrackerBarrel_rmax + 35.0 * mm"/>
+    <constant name="Barrel_rmax"                value="Solenoid_rmin - 1.0 *cm "/>
     <constant name="Barrel_TotalCalThickness"   value="Barrel_rmax - EcalBarrel_rmin"/>
 
     <constant name="CalBarrelDivider"           value="0.8"/>
diff --git a/compact/display.xml b/compact/display.xml
index c945d2b7..62752578 100644
--- a/compact/display.xml
+++ b/compact/display.xml
@@ -1,23 +1,23 @@
   <display>
 
-    <vis name="Argonne_Green"        alpha="1" r="119/255" g="179/255" b="0"/>
-    <vis name="Argonne_Violet"       alpha="1" r="91/256" g="0" b="145/256"/>
-    <vis name="Argonne_Process_Blue" alpha="1" r="0/256" g="130/256" b="202/256"/>
-    <vis name="Argonne_Orange"       alpha="1" r="255/256" g="121/256" b="0"/>
-    <vis name="Argonne_Red"          alpha="1" r="205/256" g="32/256" b="44/256"/>
-    <vis name="Argonne_Gold"         alpha="1" r="248/256" g="178/256" b="0/256"/>
-    <vis name="Argonne_Blue"         alpha="1" r="0/256" g="96/256" b="156/256"/>
-    <vis name="Argonne_Teal"         alpha="1" r="0/256" g="161/256" b="156/256"/>
-    <vis name="Argonne_Gray"         alpha="1" r="102/256" g="102/256" b="102/256"/>
-    <vis name="Argonne_Light_Gray"   alpha="1" r="209/256" g="209/256" b="209/256"/>
-    <vis name="Argonne_Off_White"    alpha="1" r="242/256" g="242/256" b="242/256"/>
-    <vis name="Argonne_Delta_Red"    alpha="1" r="161/256" g="43/256" b="47/256"/>
-    <vis name="Argonne_Delta_Green"  alpha="1" r="0" g="120/256" b="54/256"/>
-    <vis name="Argonne_Delta_Blue"   alpha="1" r="11/256" g="31/256" b="143/256"/>
+    <vis name="AnlGreen"        alpha="1" r="119/255" g="179/255" b="0"/>
+    <vis name="AnlViolet"       alpha="1" r="91/256" g="0" b="145/256"/>
+    <vis name="AnlProcess_Blue" alpha="1" r="0/256" g="130/256" b="202/256"/>
+    <vis name="AnlOrange"       alpha="1" r="255/256" g="121/256" b="0"/>
+    <vis name="AnlRed"          alpha="1" r="205/256" g="32/256" b="44/256"/>
+    <vis name="AnlGold"         alpha="1" r="248/256" g="178/256" b="0/256"/>
+    <vis name="AnlBlue"         alpha="1" r="0/256" g="96/256" b="156/256"/>
+    <vis name="AnlTeal"         alpha="1" r="0/256" g="161/256" b="156/256"/>
+    <vis name="AnlGray"         alpha="1" r="102/256" g="102/256" b="102/256"/>
+    <vis name="AnlLight_Gray"   alpha="1" r="209/256" g="209/256" b="209/256"/>
+    <vis name="AnlOff_White"    alpha="1" r="242/256" g="242/256" b="242/256"/>
+    <vis name="AnlDelta_Red"    alpha="1" r="161/256" g="43/256" b="47/256"/>
+    <vis name="AnlDelta_Green"  alpha="1" r="0" g="120/256" b="54/256"/>
+    <vis name="AnlDelta_Blue"   alpha="1" r="11/256" g="31/256" b="143/256"/>
 
-    <vis name="Argonne_Red_1"        alpha="0.5" r="205/256" g="32/256" b="44/256"/>
+    <vis name="AnlRed_1"        alpha="0.5" r="205/256" g="32/256" b="44/256"/>
 
-    <comment>Tracker_Layer_Vis is Argonne_Gold</comment>
+    <comment>Tracker_Layer_Vis is AnlGold</comment>
     <vis name="Tracker_Layer_Vis"  alpha="0.5" r="248/256" g="178/256" b="0/256" showDaughters="true" />
 
     <vis name="InvisibleNoDaughters"      showDaughters="false" visible="false"/>
diff --git a/compact/far_forward_offM_tracker.xml b/compact/far_forward_offM_tracker.xml
index 325b07d4..ae7f4752 100644
--- a/compact/far_forward_offM_tracker.xml
+++ b/compact/far_forward_offM_tracker.xml
@@ -18,16 +18,16 @@
       type="ref_RectangularTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Red">
+      vis="AnlRed">
       <position x="ForwardOffMTracker_xpos" y="0" z="ForwardOffMTracker_zpos"/>
       <layer id="1" 
-        vis="Argonne_Violet"
+        vis="AnlViolet"
         x="60.0*cm" 
         y="20.0*cm" >
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Violet" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlViolet" sensitive="true" />
       </layer>
     </detector>
   </detectors>
diff --git a/compact/far_forward_romanpots.xml b/compact/far_forward_romanpots.xml
index 141b326d..ba81c1f3 100644
--- a/compact/far_forward_romanpots.xml
+++ b/compact/far_forward_romanpots.xml
@@ -20,16 +20,16 @@
       type="ref_RectangularTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Red">
+      vis="AnlRed">
       <position x="ForwardRomanPotA_xpos" y="0" z="ForwardRomanPotA_zpos"/>
       <layer id="1" 
-        vis="Argonne_Blue"
+        vis="AnlBlue"
         x="20.0*cm" 
         y="10.0*cm" >
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
       </layer>
     </detector>
     <detector 
@@ -39,16 +39,16 @@
       type="ref_RectangularTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Red">
+      vis="AnlRed">
       <position x="ForwardRomanPotB_xpos" y="0" z="ForwardRomanPotB_zpos"/>
       <layer id="1" 
-        vis="Argonne_Blue"
+        vis="AnlBlue"
         x="20.0*cm" 
         y="10.0*cm" >
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
-        <slice material="Air" thickness="1.0*cm" vis="Argonne_Blue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
+        <slice material="Air" thickness="1.0*cm" vis="AnlBlue" sensitive="true" />
       </layer>
     </detector>
   </detectors>
diff --git a/compact/forward_trd.xml b/compact/forward_trd.xml
index ef2195ca..093bb067 100644
--- a/compact/forward_trd.xml
+++ b/compact/forward_trd.xml
@@ -18,22 +18,22 @@
       type="ref_DiskTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Red">
+      vis="AnlRed">
       <position x="0" y="0" z="0.0"/>
       <layer id="1" 
-        vis="Argonne_Red"
+        vis="AnlRed"
         inner_z="ForwardTRD_zmin" 
         inner_r="ForwardTRD_rmin" 
         outer_r="ForwardTRD_rmax">
-        <slice material="Air" thickness="ForwardTRD_length/2.5" vis="Argonne_Red" />
+        <slice material="Air" thickness="ForwardTRD_length/2.5" vis="AnlRed" />
       </layer>
 
       <layer id="1" 
-        vis="Argonne_Red"
+        vis="AnlRed"
         inner_z="ForwardTRD_zmin+ForwardTRD_length/2.0" 
         inner_r="ForwardTRD_rmin" 
         outer_r="ForwardTRD_rmax">
-        <slice material="Air" thickness="ForwardTRD_length/2.5" vis="Argonne_Red" />
+        <slice material="Air" thickness="ForwardTRD_length/2.5" vis="AnlRed" />
       </layer>
     </detector>
   </detectors>
diff --git a/compact/gem_tracker_endcap.xml b/compact/gem_tracker_endcap.xml
index d545a86a..12477412 100644
--- a/compact/gem_tracker_endcap.xml
+++ b/compact/gem_tracker_endcap.xml
@@ -70,9 +70,9 @@
       name="GEMTrackerEndcap"
       type="refdet_GEMTrackerEndcap"
       readout="GEMTrackerEndcapHits"
-      vis="Argonne_Red"
+      vis="AnlRed"
       reflect="false">
-      <module name="GEMModule1" vis="Argonne_Process_Blue">
+      <module name="GEMModule1" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/>
         <comment> Going from HV side to readout side</comment>
         <module_component thickness="0.127 * mm" material="Mylar"/>
@@ -93,62 +93,62 @@
         <module_component thickness="30.0*um" material="Kapton"  name="readout"     sensitive="true"/>
         <module_component thickness=" 3.0*um" material="Copper"  name="readout_Cu"/>
         <module_component thickness="127.0*um" material="Mylar"/>
-        <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/>
+        <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="AnlProcess_Blue"/>
       </module>
-      <module name="GEMSupportModule1" vis="Argonne_Process_Blue">
+      <module name="GEMSupportModule1" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/>
         <module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/>
       </module>
-      <module name="GEMSupportModule2" vis="Argonne_Process_Blue">
+      <module name="GEMSupportModule2" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/>
         <module_component thickness="4.0*mm" material="Mylar"/>
       </module>
       <layer id="1" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="2" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="3" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="4" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="5" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
@@ -160,9 +160,9 @@
       name="GEMTrackerEndcapN"
       type="refdet_GEMTrackerEndcap"
       readout="GEMTrackerEndcapHits"
-      vis="Argonne_Red"
+      vis="AnlRed"
       reflect="true">
-      <module name="GEMModule1" vis="Argonne_Process_Blue">
+      <module name="GEMModule1" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/>
         <comment> Going from HV side to readout side</comment>
         <module_component thickness="0.127 * mm" material="Mylar"/>
@@ -183,62 +183,62 @@
         <module_component thickness="30.0*um" material="Kapton"  name="readout"     sensitive="true"/>
         <module_component thickness=" 3.0*um" material="Copper"  name="readout_Cu"/>
         <module_component thickness="127.0*um" material="Mylar"/>
-        <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/>
+        <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="AnlProcess_Blue"/>
       </module>
-      <module name="GEMSupportModule1" vis="Argonne_Process_Blue">
+      <module name="GEMSupportModule1" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/>
         <module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/>
       </module>
-      <module name="GEMSupportModule2" vis="Argonne_Process_Blue">
+      <module name="GEMSupportModule2" vis="AnlProcess_Blue">
         <trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/>
         <module_component thickness="4.0*mm" material="Mylar"/>
       </module>
       <layer id="1" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin + 0.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="2" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+1.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="3" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+2.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="4" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+3.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
       </layer>
       <layer id="5" >
-        <ring vis="Argonne_Red"
+        <ring vis="AnlRed"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="10 * mm" module="GEMModule1" />
-        <ring vis="Argonne_Blue" phi0="15.0*degree"
+        <ring vis="AnlBlue" phi0="15.0*degree"
           r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0"
           zstart="GEMTrackerEndcap_zmin+4.5*GEMTrackerEndcapLayer_thickness"
           nmodules="12" dz="0 * mm" module="GEMSupportModule2" />
diff --git a/compact/mm_tracker_barrel.xml b/compact/mm_tracker_barrel.xml
index aef3c89d..6d562902 100644
--- a/compact/mm_tracker_barrel.xml
+++ b/compact/mm_tracker_barrel.xml
@@ -27,7 +27,7 @@
 
   <detectors>
     <detector id="MMTrackerBarrel_ID" name="MMTrackerBarrel" type="refdet_MMTrackerBarrel" readout="MMTrackerBarrelHits">
-      <module name="Module1" vis="Argonne_Gold">
+      <module name="Module1" vis="AnlGold">
         <module_envelope
           rmin="TrackerBarrel_rmax"
           length="MMTrackerBarrelLayer1_length"
diff --git a/compact/rwell_tracker_barrel.xml b/compact/rwell_tracker_barrel.xml
index f03dd28e..9826d103 100644
--- a/compact/rwell_tracker_barrel.xml
+++ b/compact/rwell_tracker_barrel.xml
@@ -17,9 +17,9 @@
                //outer ring
                support_03_thickness = 0.50;
                support_03_length = 1.2;
-
-      modified R=(73.67, 85.0) cm  // to avoid conflict with EM Cal
+            
                Length=TrackerBarrelOuter_length=(160, 160) cm // to avoid conflict with GEM tracker
+               TODO: fix GEM geometry and restore length
   </comment>
 
   <define>
@@ -34,12 +34,12 @@
     <constant name="RWellTrackerBarrel_Pcb_thickness"       value="0.1*mm"/>
 
     <constant name="RWellTrackerBarrelLayer1_length"        value="RWellTrackerBarrel_length"/>
-    <constant name="RWellTrackerBarrelLayer1_gas_rmin"      value="736.7 * mm"/>
+    <constant name="RWellTrackerBarrelLayer1_gas_rmin"      value="786.7 * mm"/>
     <constant name="RWellTrackerBarrelLayer1_rmin"          value="RWellTrackerBarrelLayer1_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/>
     <constant name="RWellTrackerBarrelLayer1_thickness"     value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/>
     
     <constant name="RWellTrackerBarrelLayer2_length"        value="RWellTrackerBarrel_length"/>
-    <constant name="RWellTrackerBarrelLayer2_gas_rmin"      value="850.0 * mm"/>
+    <constant name="RWellTrackerBarrelLayer2_gas_rmin"      value="900.0 * mm"/>
     <constant name="RWellTrackerBarrelLayer2_rmin"          value="RWellTrackerBarrelLayer2_gas_rmin - RWellTrackerBarrel_Kapton_thickness"/>
     <constant name="RWellTrackerBarrelLayer2_thickness"     value="RWellTrackerBarrel_Kapton_thickness + RWellTrackerBarrel_Gas_thickness + RWellTrackerBarrel_Cu_thickness + RWellTrackerBarrel_Prepreg_thickness + RWellTrackerBarrel_Pcb_thickness"/>
     
diff --git a/compact/tof_endcap.xml b/compact/tof_endcap.xml
index 50d9cff9..b3f3e88e 100644
--- a/compact/tof_endcap.xml
+++ b/compact/tof_endcap.xml
@@ -21,14 +21,14 @@
       type="ref_DiskTracker"
       insideTrackingVolume="true"
       reflect="false"
-      vis="Argonne_Orange">
+      vis="AnlOrange">
       <position x="0" y="0" z="0.0"/>
       <layer id="1" 
-        vis="Argonne_Orange"
+        vis="AnlOrange"
         inner_z="ForwardTOF_zmin" 
         inner_r="ForwardTOF_rmin" 
         outer_r="ForwardTOF_rmax">
-        <slice material="Air" thickness="ForwardTOF_length/2.0" vis="Argonne_Orange" />
+        <slice material="Air" thickness="ForwardTOF_length/2.0" vis="AnlOrange" />
       </layer>
     </detector>
 
@@ -38,14 +38,14 @@
       type="ref_DiskTracker"
       insideTrackingVolume="true"
       reflect="true"
-      vis="Argonne_Orange">
+      vis="AnlOrange">
       <position x="0" y="0" z="0.0"/>
       <layer id="1" 
-        vis="Argonne_Orange"
+        vis="AnlOrange"
         inner_z="BackwardTOF_zmin" 
         inner_r="BackwardTOF_rmin" 
         outer_r="BackwardTOF_rmax">
-        <slice material="Air" thickness="BackwardTOF_length/2.0" vis="Argonne_Orange" />
+        <slice material="Air" thickness="BackwardTOF_length/2.0" vis="AnlOrange" />
       </layer>
     </detector>
 
diff --git a/compact/vertex_tracker.xml b/compact/vertex_tracker.xml
index dd27d981..be68f343 100644
--- a/compact/vertex_tracker.xml
+++ b/compact/vertex_tracker.xml
@@ -122,72 +122,72 @@
     </detector>
 
     <detector id="SiVertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="false" vis="Argonne_Red">
+      insideTrackingVolume="true" reflect="false" vis="AnlRed">
       <position x="0" y="0" z="0"/>
-      <layer id="1" vis="Argonne_Orange"
+      <layer id="1" vis="AnlOrange"
         inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapP_rmin" 
         outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="2" vis="Argonne_Orange"
+      <layer id="2" vis="AnlOrange"
         inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapP_rmin" 
         outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="3" vis="Argonne_Orange"
+      <layer id="3" vis="AnlOrange"
         inner_z="VertexTrackerEndcapP_zmin + 2*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapP_rmin" 
         outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="4" vis="Argonne_Orange"
+      <layer id="4" vis="AnlOrange"
         inner_z="VertexTrackerEndcapP_zmin + 3*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapP_rmin" 
         outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="5" vis="Argonne_Orange"
+      <layer id="5" vis="AnlOrange"
         inner_z="VertexTrackerEndcapP_zmin + 4*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapP_rmin" 
         outer_r="VertexTrackerEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
     </detector>
 
     <detector id="SiVertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="true" vis="Argonne_Red">
+      insideTrackingVolume="true" reflect="true" vis="AnlRed">
       <position x="0" y="0" z="0"/>
-      <layer id="1" vis="Argonne_Orange"
+      <layer id="1" vis="AnlOrange"
         inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapN_rmin" 
         outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="2" vis="Argonne_Orange"
+      <layer id="2" vis="AnlOrange"
         inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapN_rmin" 
         outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="3" vis="Argonne_Orange"
+      <layer id="3" vis="AnlOrange"
         inner_z="VertexTrackerEndcapN_zmin + 2*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapN_rmin" 
         outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="4" vis="Argonne_Orange"
+      <layer id="4" vis="AnlOrange"
         inner_z="VertexTrackerEndcapN_zmin + 3*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapN_rmin" 
         outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
-      <layer id="5" vis="Argonne_Orange"
+      <layer id="5" vis="AnlOrange"
         inner_z="VertexTrackerEndcapN_zmin + 4*VertexTrackerEndcap_delta" 
         inner_r="VertexTrackerEndcapN_rmin" 
         outer_r="VertexTrackerEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="Argonne_Orange" />
+        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
       </layer>
     </detector>
 
diff --git a/reference_detector.xml b/reference_detector.xml
index 7a512442..60c1c2aa 100644
--- a/reference_detector.xml
+++ b/reference_detector.xml
@@ -136,6 +136,7 @@
   -->
    
   <include ref="compact/rwell_tracker_barrel.xml"/>
+  <include ref="compact/cb_DIRC.xml"/>
 
   <detectors>
   </detectors>
diff --git a/src/cb_DIRC.cpp b/src/cb_DIRC.cpp
new file mode 100644
index 00000000..41932ef8
--- /dev/null
+++ b/src/cb_DIRC.cpp
@@ -0,0 +1,73 @@
+#include "DD4hep/DetFactoryHelper.h"
+#include "DD4hep/OpticalSurfaces.h"
+#include "DD4hep/Printout.h"
+#include "DDRec/DetectorData.h"
+#include "DDRec/Surface.h"
+#include <XML/Helper.h>
+//////////////////////////////////
+// Central Barrel DIRC
+//////////////////////////////////
+
+using namespace std;
+using namespace dd4hep;
+
+static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
+{
+  xml_det_t x_det   = e;
+  string    detName = x_det.nameStr();
+  int       detID   = x_det.id();
+
+  xml_dim_t dim   = x_det.dimensions();
+  xml_dim_t pos   = x_det.position();
+  double    RIn   = dim.rmin();
+  double    ROut  = dim.rmax();
+  double    SizeZ = dim.length();
+
+  Material Vacuum = desc.material("Vacuum");
+  Tube     cb_DIRC_Barrel_GVol_Solid(RIn, ROut, SizeZ / 2.0, 0., 360.0 * deg);
+  Volume   detVol("cb_DIRC_GVol_Solid_Logic", cb_DIRC_Barrel_GVol_Solid, Vacuum);
+  detVol.setVisAttributes(desc.invisible());
+
+  DetElement   det(detName, detID);
+  Volume       motherVol = desc.pickMotherVolume(det);
+  Transform3D  tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, pos.z()));
+  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  detPV.addPhysVolID("system", detID);
+  detPV.addPhysVolID("barrel", 1);
+  det.setPlacement(detPV);
+
+  //////////////////
+  // DIRC Bars
+  //////////////////
+
+  double dR = 83.65 * cm;
+
+  double cb_DIRC_bars_DZ = SizeZ;
+  double cb_DIRC_bars_DY = 42. * cm;
+  double cb_DIRC_bars_DX = 1.7 * cm;
+  double myL             = 2 * M_PI * dR;
+  int    NUM             = myL / cb_DIRC_bars_DY;
+
+  double cb_DIRC_bars_deltaphi = 2 * 3.1415926 / NUM;
+
+  Material cb_DIRC_bars_Material = desc.material("Quartz");
+
+  Box    cb_DIRC_bars_Solid(cb_DIRC_bars_DX / 2., cb_DIRC_bars_DY / 2., cb_DIRC_bars_DZ / 2.);
+  Volume cb_DIRC_bars_Logic("cb_DIRC_bars_Logix", cb_DIRC_bars_Solid, cb_DIRC_bars_Material);
+  cb_DIRC_bars_Logic.setVisAttributes(desc.visAttributes(x_det.visStr()));
+  sens.setType("photoncounter");
+  cb_DIRC_bars_Logic.setSensitiveDetector(sens);
+
+  for (int ia = 0; ia < NUM; ia++) {
+    double phi = (ia * (cb_DIRC_bars_deltaphi));
+    double x   = -dR * cos(phi);
+    double y   = -dR * sin(phi);
+
+    Transform3D  tr(RotationZ(cb_DIRC_bars_deltaphi * ia), Position(x, y, 0));
+    PlacedVolume barPV = detVol.placeVolume(cb_DIRC_bars_Logic, tr);
+    barPV.addPhysVolID("module", ia);
+  }
+  return det;
+}
+
+DECLARE_DETELEMENT(cb_DIRC, createDetector)
-- 
GitLab