From e26881be4318295569dcca2064a647e823233b0c Mon Sep 17 00:00:00 2001
From: John Chapman <John.Chapman@cern.ch>
Date: Tue, 11 Feb 2025 10:31:28 +0100
Subject: [PATCH] Set ExtraOutputs from Geant4 in Geant4ToolCfg rather than
 Kernel_GenericSimulatorMTCfg

---
 .../ISF/ISF_Config/python/ISF_MainConfig.py   |  8 --------
 .../python/ISF_Geant4ToolsConfig.py           | 20 +++++++++++++++++++
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py
index 0cc21270d8e..5c75c395b3f 100644
--- a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py
+++ b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py
@@ -68,14 +68,6 @@ def Kernel_GenericSimulatorMTCfg(flags, name="ISF_Kernel_GenericSimulatorMT", **
     kwargs.setdefault("Cardinality", flags.Concurrency.NumThreads)
     kwargs.setdefault("InputEvgenCollection", "BeamTruthEvent")
     kwargs.setdefault("OutputTruthCollection", "TruthEvent")
-    from SimulationConfig.SimEnums import CalibrationRun
-    if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
-        # Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly.
-        kwargs.setdefault("ExtraOutputs", [
-            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
-            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ),
-            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitInactive_DEAD' )
-        ])
 
     if flags.Sim.ISF.Simulator.isQuasiStable():
         if "QuasiStablePatcher" not in kwargs:
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfig.py b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfig.py
index 53beb13df48..78e7765483b 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfig.py
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfig.py
@@ -53,6 +53,26 @@ def Geant4ToolCfg(flags, name="ISF_Geant4Tool", **kwargs):
     # PhysicsListSvc
     kwargs.setdefault("PhysicsListSvc", acc.getPrimaryAndMerge(PhysicsListSvcCfg(flags)).name)
 
+    extraOutputs  = []
+    from SimulationConfig.SimEnums import CalibrationRun
+    if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
+        # Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly.
+        extraOutputs += [
+            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
+            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ),
+            ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitInactive_DEAD' )
+        ]
+    from SimulationConfig.SimEnums import LArParameterization
+    if (flags.Sim.ISFRun or flags.Sim.LArParameterization is LArParameterization.FastCaloSim) and flags.Sim.ISF.HITSMergingRequired.get('CALO', True):
+        extraOutputs += [
+            ( 'TileHitVector' , 'StoreGateSvc+TileHitVec_G4' ),
+            ( 'TileHitVector' , 'StoreGateSvc+MBTSHits_G4' ),
+            ( 'LArHitContainer' , 'StoreGateSvc+LArHitHEC_G4' ),
+            ( 'LArHitContainer' , 'StoreGateSvc+LArHitFCAL_G4' ),
+            ( 'LArHitContainer' , 'StoreGateSvc+LArHitEMEC_G4' ),
+            ( 'LArHitContainer' , 'StoreGateSvc+LArHitEMB_G4' )
+        ]
+    kwargs.setdefault("ExtraOutputs", extraOutputs)
     # Workaround to keep other simulation flavours working while we migrate everything to be AthenaMT-compatible.
     from SimulationConfig.SimEnums import SimulationFlavour
     if flags.Sim.ISF.Simulator in [SimulationFlavour.ATLFAST3F_ACTSMT, SimulationFlavour.FullG4MT, SimulationFlavour.FullG4MT_QS, SimulationFlavour.PassBackG4MT, SimulationFlavour.ATLFAST3MT, SimulationFlavour.ATLFAST3MT_QS]:
-- 
GitLab