From 711a8882ac2e2903e3d8ddcc2243d1a27e4f519e Mon Sep 17 00:00:00 2001
From: Sylvester Joosten <sjoosten@anl.gov>
Date: Tue, 5 Oct 2021 04:20:56 +0000
Subject: [PATCH] Switched forward ECAL to a homogenous approximation

(cherry picked from commit 6cc1bfabb3025f3ed42cd9a8b3d7e24026c23246)
---
 .gitlab-ci.yml                                |   7 +-
 compact/ce_ecal.xml                           | 109 ------------------
 compact/ci_ecal.xml                           |  94 ---------------
 compact/ecal.xml                              |   9 +-
 ...ss.xml => ecal_backward_crystal_glass.xml} |   0
 ...brid_ecal.xml => ecal_backward_hybrid.xml} |   0
 compact/ecal_forward_homogenous.xml           |  58 ++++++++++
 ...ci_ecal_scfi.xml => ecal_forward_scfi.xml} |   0
 ...shashlik.xml => ecal_forward_shashlik.xml} |   0
 compact/materials.xml                         |   6 +
 compact/subsystem_views/calorimeters.xml      |  61 ----------
 src/ScFiCalorimeter_geo.cpp                   |   4 +
 12 files changed, 77 insertions(+), 271 deletions(-)
 delete mode 100644 compact/ce_ecal.xml
 delete mode 100644 compact/ci_ecal.xml
 rename compact/{ce_ecal_crystal_glass.xml => ecal_backward_crystal_glass.xml} (100%)
 rename compact/{hybrid_ecal.xml => ecal_backward_hybrid.xml} (100%)
 create mode 100644 compact/ecal_forward_homogenous.xml
 rename compact/{ci_ecal_scfi.xml => ecal_forward_scfi.xml} (100%)
 rename compact/{ci_ecal_shashlik.xml => ecal_forward_shashlik.xml} (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bba6f931..5b9ffb10 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -114,7 +114,8 @@ dump_geometry:
     ## DEBUG
     - mkdir -p geo
     ## disable fibers in SciFi endcap ECAL for better performance
-    - sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml
+    ## not needed, as we have no fibers in the current setup
+    #- sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml
     ## subsystem views
     - |
       mv ${DETECTOR_PATH}/compact/display_geoviewer.xml ${DETECTOR_PATH}/compact/display.xml
@@ -132,6 +133,7 @@ dump_geometry:
     - sed -i '/B0_/d' ${DETECTOR_PATH}/athena.xml
     - sed -i '/far_forward/d' ${DETECTOR_PATH}/athena.xml
     - sed -i '/roman_pots/d' ${DETECTOR_PATH}/athena.xml
+    - sed -i '/inner_vacuum_FF_magnets/d' ${DETECTOR_PATH}/athena.xml
     - dd_web_display --output geo/detector_geo.root ${DETECTOR_PATH}/athena.xml
     ## print some useful output
     - |
@@ -203,7 +205,8 @@ overlap_check_geant4:full_fast:
     ## disable fibers in ECAL for normal overlap check
     - sed -i '/<fiber/,+6d' ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml
     ## reduce the number of fibers in Hadron EMCal for overlap check
-    - sed -i 's/radius="EcalEndcapP_FiberRadius"/radius="EcalEndcapP_FiberRadius*10"/' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml
+    ## not needed, as we are running with a different setup now
+    #- sed -i 's/radius="EcalEndcapP_FiberRadius"/radius="EcalEndcapP_FiberRadius*10"/' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml
     - python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_geant4.out
     - echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..."
     - if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi
diff --git a/compact/ce_ecal.xml b/compact/ce_ecal.xml
deleted file mode 100644
index ec38d03b..00000000
--- a/compact/ce_ecal.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<lccdd>
-
-  <define>
-    <constant name="CrystalEndcap_rmin"  value="VertexTrackerBarrel_rmin"/>
-    <constant name="CrystalEndcap_rmax"  value="EcalEndcapN_rmin"/>
-    <constant name="CrystalBox_x_length" value="20.0*mm"/>
-    <constant name="CrystalBox_y_length" value="20.0*mm"/>
-    <constant name="CrystalBox_z_length" value="200.0*mm"/>
-    <constant name="CrystalBox_offset"   value="0.000001*mm"/>
-    <constant name="CrystalEndcap_x_pos" value="0.0*m"/>
-    <constant name="CrystalEndcap_y_pos" value="0.0*m"/>
-    <constant name="CrystalEndcap_z_pos" value="-EcalEndcapN_zmin"/>
-  </define>
-
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <!-- Common Generic visualization attributes -->
-  <comment>Common Generic visualization attributes</comment>
-  <display>
-  </display>
-
-  <detectors>
-    <comment>
-      -------------------------------
-      Backwards Endcap EM Calorimeter
-      -------------------------------
-      A layered EM calorimeter with tungsten and silicon (or scintillator) strips
-    </comment>
-    <detector id="ECalEndcapN_ID" 
-      name="EcalEndcapN" 
-      type="athena_PolyhedraEndcapCalorimeter2" 
-      reflect="true" 
-      readout="EcalEndcapHits" 
-      vis="EcalEndcapVis" 
-      calorimeterType="EM_ENDCAP">
-      <position x="0" y="0" z="0"/>
-      <dimensions 
-        numsides="CaloSides" 
-        zmin="EcalEndcapN_zmin" 
-        rmin="EcalEndcapN_rmin" 
-        rmax="TrackerBarrel_rmax" />
-      <layer repeat="EcalEndcapNLayer1_NRepeat">
-        <slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalCopperThickness"/>
-        <slice material="Kapton" thickness="EcalKaptonThickness"/>
-        <slice material="Air" thickness="EcalAir1Thickness"/>
-      </layer>
-      <layer repeat="EcalEndcapNLayer2_NRepeat">
-        <slice material="TungstenDens24" thickness="EcalThinTungstenThickness"/>
-        <slice material="Air" thickness="EcalAir2Thickness"/>
-        <slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalCopperThickness"/>
-        <slice material="Kapton" thickness="EcalKaptonThickness"/>
-        <slice material="Air" thickness="EcalAir1Thickness"/>
-      </layer>
-      <layer repeat="EcalEndcapNLayer3_NRepeat">
-        <slice material="TungstenDens24" thickness="EcalThickTungstenThickness"/>
-        <slice material="Air" thickness="EcalAir2Thickness"/>
-        <slice material="Silicon" thickness="EcalSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalCopperThickness"/>
-        <slice material="Kapton" thickness="EcalKaptonThickness"/>
-        <slice material="Air" thickness="EcalAir1Thickness"/>
-      </layer>
-    </detector>
-
-    <comment>
-      -------------------
-      Crystal Calorimeter
-      -------------------
-      Backward (negative pseudorapidity) angle electron detector
-    </comment>
-    <detector 
-      id="CrystalEndcap_ID" 
-      name="ElectronECAL" 
-      type="CrystalCalorimeterEndcap" 
-      readout="CrystalEcalHits" 
-      vis="GreenVis">
-      <position x="CrystalEndcap_x_pos" y="CrystalEndcap_y_pos" z="CrystalEndcap_z_pos" />
-      <dimensions rmin="CrystalEndcap_rmin" rmax="CrystalEndcap_rmax" x="CrystalBox_x_length" y="CrystalBox_y_length" z="CrystalBox_z_length" delta="CrystalBox_offset"/>
-    </detector>
-  </detectors>
-
-  <!--  Definition of the readout segmentation/definition  -->
-  <readouts>
-    <!--  
-    <readout name="PlaneTrackerHits">
-      <segmentation type="CartesianGridXY" grid_size_x="20.0*mm" grid_size_y="20.0*mm" />
-      <id>system:5,module:4,x:32:-16,y:-16</id>
-    </readout>
-    -->
-    <readout name="CrystalEcalHits">
-      <segmentation type="CartesianGridXY" grid_size_x="CrystalBox_x_length" grid_size_y="CrystalBox_y_length" />
-      <id>system:8,sector:4,module:20,x:48:-8,y:-8</id>
-    </readout>
-    <readout name="EcalEndcapNHits">
-      <segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
-      <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-    </readout>
-  </readouts>
-
-  <plugins>
-  </plugins>
-
-</lccdd>
diff --git a/compact/ci_ecal.xml b/compact/ci_ecal.xml
deleted file mode 100644
index dae29485..00000000
--- a/compact/ci_ecal.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<lccdd>
-  <define>
-
-    <constant name="EcalEndcapPSiliconThickness"       value="9.00 * mm" />
-    <constant name="EcalEndcapPCopperThickness"        value="0.05 * mm" />
-    <constant name="EcalEndcapPKaptonThickness"        value="0.30 * mm" />
-    <constant name="EcalEndcapPAir1Thickness"          value="0.33 * mm" />
-    <constant name="EcalEndcapPAir2Thickness"          value="0.25 * mm" />
-    <constant name="EcalEndcapPThinTungstenThickness"  value="2.50 * mm" />
-    <constant name="EcalEndcapPThickTungstenThickness" value="5.00 * mm" />
-    <constant name="EcalEndcapPLayer1_thickness"
-        value="EcalEndcapPSiliconThickness + EcalEndcapPCopperThickness + EcalEndcapPKaptonThickness + EcalEndcapPAir1Thickness"/>
-    <constant name="EcalEndcapPLayer2_thickness"   
-        value="EcalEndcapPThinTungstenThickness + EcalEndcapPAir2Thickness + EcalEndcapPSiliconThickness + EcalEndcapPCopperThickness + EcalEndcapPKaptonThickness + EcalEndcapPAir1Thickness"/>
-    <constant name="EcalEndcapPLayer3_thickness"   
-        value="EcalEndcapPThickTungstenThickness + EcalEndcapPAir2Thickness + EcalEndcapPSiliconThickness + EcalEndcapPCopperThickness + EcalEndcapPKaptonThickness + EcalEndcapPAir1Thickness"/>
-    <constant name="EcalEndcapPLayers" 
-        value="floor((EcalEndcapP_length - EcalEndcapPLayer1_thickness) / (EcalEndcapPLayer2_thickness + EcalEndcapPLayer3_thickness))"/>
-    <constant name="EcalEndcapPLayer1_NRepeat"      value="1"/>
-    <constant name="EcalEndcapPLayer2_NRepeat"      value="EcalEndcapPLayers"/>
-    <constant name="EcalEndcapPLayer3_NRepeat"      value="EcalEndcapPLayers"/>
-
-
-
-  </define>
-
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <display>
-  </display>
-
-  <detectors>
-
-    <documentation level="10">
-      #### Forward (Positive Z) Endcap EM Calorimeter
-
-      A layered EM calorimeter with tungsten and silicon (or scintillator) strips
-    </documentation>
-    <detector id="ECalEndcapP_ID" 
-      name="EcalEndcapP" 
-      reflect="false" 
-      type="athena_PolyhedraEndcapCalorimeter2" 
-      readout="EcalEndcapPHits" 
-      vis="EcalEndcapVis" 
-      calorimeterType="EM_ENDCAP" >
-      <position x="0" y="0" z="-0"/>
-      <dimensions 
-        numsides="CaloSides" 
-        zmin="EcalEndcapP_zmin" 
-        rmin="EcalEndcapP_rmin" 
-        rmax="EcalEndcapP_rmax " />
-      <layer repeat="EcalEndcapPLayer1_NRepeat" vis="EcalEndcapLayerVis">
-        <slice material="Silicon" thickness="EcalEndcapPSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalEndcapPCopperThickness"/>
-        <slice material="Kapton" thickness="EcalEndcapPKaptonThickness"/>
-        <slice material="Air" thickness="EcalEndcapPAir1Thickness"/>
-      </layer>
-      <layer repeat="EcalEndcapPLayer2_NRepeat" vis="EcalEndcapLayerVis">
-        <slice material="TungstenDens24" thickness="EcalEndcapPThinTungstenThickness"/>
-        <slice material="Air" thickness="EcalEndcapPAir2Thickness"/>
-        <slice material="Silicon" thickness="EcalEndcapPSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalEndcapPCopperThickness"/>
-        <slice material="Kapton" thickness="EcalEndcapPKaptonThickness"/>
-        <slice material="Air" thickness="EcalEndcapPAir1Thickness"/>
-      </layer>
-      <layer repeat="EcalEndcapPLayer3_NRepeat" vis="EcalEndcapLayerVis">
-        <slice material="TungstenDens24" thickness="EcalEndcapPThickTungstenThickness"/>
-        <slice material="Air" thickness="EcalEndcapPAir2Thickness"/>
-        <slice material="Silicon" thickness="EcalEndcapPSiliconThickness" sensitive="yes" limits="cal_limits"/>
-        <slice material="Copper" thickness="EcalEndcapPCopperThickness"/>
-        <slice material="Kapton" thickness="EcalEndcapPKaptonThickness"/>
-        <slice material="Air" thickness="EcalEndcapPAir1Thickness"/>
-      </layer>
-    </detector>
-  </detectors>
-
-  <!--  Definition of the readout segmentation/definition  -->
-  <readouts>
-    <readout name="EcalEndcapPHits">
-      <segmentation type="CartesianGridXY" grid_size_x="3.5 * mm" grid_size_y="3.5 * mm"/>
-      <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id>
-    </readout>
-  </readouts>
-
-  <plugins>
-  </plugins>
-
-
-</lccdd>
diff --git a/compact/ecal.xml b/compact/ecal.xml
index 0b743c88..f6ce08ec 100644
--- a/compact/ecal.xml
+++ b/compact/ecal.xml
@@ -8,12 +8,11 @@
   <documentation level="10">
     ### Ecal configuration
   </documentation>
-  <include ref="ci_ecal_scfi.xml"/>
-  <!--<include ref="ci_ecal.xml"/>-->
+  <!--include ref="ecal_forward_scfi.xml"/-->
+  <include ref="ecal_forward_homogenous.xml"/>
 
-  <!--<include ref="ce_ecal.xml"/>-->
-  <!--<include ref="ce_ecal_crystal_glass.xml"/>-->
-  <include ref="hybrid_ecal.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"/> -->
diff --git a/compact/ce_ecal_crystal_glass.xml b/compact/ecal_backward_crystal_glass.xml
similarity index 100%
rename from compact/ce_ecal_crystal_glass.xml
rename to compact/ecal_backward_crystal_glass.xml
diff --git a/compact/hybrid_ecal.xml b/compact/ecal_backward_hybrid.xml
similarity index 100%
rename from compact/hybrid_ecal.xml
rename to compact/ecal_backward_hybrid.xml
diff --git a/compact/ecal_forward_homogenous.xml b/compact/ecal_forward_homogenous.xml
new file mode 100644
index 00000000..783fb26e
--- /dev/null
+++ b/compact/ecal_forward_homogenous.xml
@@ -0,0 +1,58 @@
+<lccdd>
+  <comment>
+    Simplified homogenous implementation of the forward ScFi calorimeter
+  </comment>
+
+  <define>
+    <constant name="EcalEndcapP_rmax" value="Solenoid_rmax"/>
+    <constant name="EcalEndcapP_FiberRadius" value="0.235*cm"/>
+    <constant name="EcalEndcapP_FiberOffset" value="0.5*mm"/>
+    <constant name="EcalEndcapP_FiberSpaceX" value="0.265*mm"/>
+    <constant name="EcalEndcapP_FiberSpaceY" value="0.425*mm"/>
+  </define>
+
+
+  <limits>
+  </limits>
+
+  <regions>
+  </regions>
+
+  <!-- Common Generic visualization attributes -->
+  <comment>Common Generic visualization attributes</comment>
+  <display>
+  </display>
+
+  <detectors>
+
+    <comment>
+      ------------------------------------------
+      Forward (Positive Z) Endcap EM Calorimeter
+      ------------------------------------------
+      An EM calorimeter with ScFi modules
+    </comment>
+    <detector id="ECalEndcapP_ID"
+      name="EcalEndcapP"
+      type="ScFiCalorimeter"
+      vis="EcalEndcapVis"
+      readout="EcalEndcapPHits">
+      <position x="0" y="0" z="EcalEndcapP_zmin + EcalEndcapP_length/2."/>
+      <dimensions rmin="EcalEndcapP_rmin" rmax="EcalEndcapP_rmax" length="EcalEndcapP_length"/>
+      <module sizex="25*mm" sizey="25*mm" sizez="170*mm" material="AvgTungstenScFi" vis="EcalEndcapBlockVis">
+      </module>
+    </detector>
+  </detectors>
+
+  <!--  Definition of the readout segmentation/definition  -->
+  <readouts>
+    <readout name="EcalEndcapPHits">
+      <segmentation type="NoSegmentation"/>
+      <id>system:8,ring:8,module:20,fiber_x:8,fiber_y:8</id>
+    </readout>
+  </readouts>
+
+  <plugins>
+  </plugins>
+
+</lccdd>
+
diff --git a/compact/ci_ecal_scfi.xml b/compact/ecal_forward_scfi.xml
similarity index 100%
rename from compact/ci_ecal_scfi.xml
rename to compact/ecal_forward_scfi.xml
diff --git a/compact/ci_ecal_shashlik.xml b/compact/ecal_forward_shashlik.xml
similarity index 100%
rename from compact/ci_ecal_shashlik.xml
rename to compact/ecal_forward_shashlik.xml
diff --git a/compact/materials.xml b/compact/materials.xml
index d6c3e520..4829091d 100644
--- a/compact/materials.xml
+++ b/compact/materials.xml
@@ -194,6 +194,12 @@
     <fraction n="0.044" ref="Ni"/>
     <fraction n="0.006" ref="Fe"/>
   </material>
+  <material name="AvgTungstenScFi">
+    <D value="10.15" unit="g / cm3"/>
+    <fraction n="0.948" ref="W"/>
+    <fraction n="0.052*19./40" ref="C"/>
+    <fraction n="0.052*21./40" ref="H"/>
+  </material>
   <material name="CarbonFiber_25percent">
     <D type="density" value="0.375" unit="g / cm3"/>
     <fraction n="1.0" ref="CarbonFiber"/>
diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml
index 49799815..7e52ee1c 100644
--- a/compact/subsystem_views/calorimeters.xml
+++ b/compact/subsystem_views/calorimeters.xml
@@ -146,67 +146,6 @@
   <include ref="compact/ecal.xml"/>
   <include ref="compact/hcal.xml"/>
 
-
-
-  <fields>
-    <field name="B0PF_Magnet" type="MultipoleMagnet">
-      <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/>
-      <rotation x="0" y="B0PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/>
-      <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/>
-      <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
-    </field>
-    <field name="B0APF_Magnet" type="MultipoleMagnet">
-      <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/>
-      <rotation x="0" y="B0APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/>
-      <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/>
-      <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
-    </field>
-    <field name="Q1APF_Magnet" type="MultipoleMagnet">
-      <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/>
-      <rotation x="0" y="Q1APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/>
-      <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="Q1BPF_Magnet" type="MultipoleMagnet">
-      <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/>
-      <rotation x="0" y="Q1BPF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/>
-      <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="Q2PF_Magnet" type="MultipoleMagnet">
-      <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/>
-      <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/>
-      <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/>
-      <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B1PF_Magnet" type="MultipoleMagnet">
-      <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/>
-      <rotation x="0" y="B1PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/>
-      <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B1APF_Magnet" type="MultipoleMagnet">
-      <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/>
-      <rotation x="0" y="B1APF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/>
-      <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-    <field name="B2PF_Magnet" type="MultipoleMagnet">
-      <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/>
-      <rotation x="0" y="B2PF_RotationAngle" z="0"/>
-      <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/>
-      <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/>
-      <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/>
-    </field>
-  </fields>
-
   <comment>
       FB elements
       -----------
diff --git a/src/ScFiCalorimeter_geo.cpp b/src/ScFiCalorimeter_geo.cpp
index d16e87cb..904a6ae2 100644
--- a/src/ScFiCalorimeter_geo.cpp
+++ b/src/ScFiCalorimeter_geo.cpp
@@ -169,8 +169,12 @@ std::tuple<Volume, Position> build_module(const Detector &desc, const xml::Compo
               fiberPV.addPhysVolID("fiber_x", ix + 1).addPhysVolID("fiber_y", iy + 1);
           }
       }
+    // if no fibers we make the module itself sensitive
+    } else {
+      modVol.setSensitiveDetector(sens);
     }
 
+
     return std::make_tuple(modVol, Position{sx, sy, sz});
 }
 
-- 
GitLab