diff --git a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py index f1e6ed95e7d1cb7d37128bfd07b0ede6aba1fac6..d7463494370cf46c2513558807dda3557e6c7765 100644 --- a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py +++ b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory @@ -9,7 +9,7 @@ def HgtdSensorSDCfg(flags, name="HgtdSensorSD", **kwargs): bare_collection_name = "HGTD_Hits" mergeable_collection_suffix = "_G4" merger_input_property = "HGTDHits" - region = "ID" + region = "ITk" acc, hits_collection_name = CollectionMergerCfg(flags, bare_collection_name, diff --git a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py index 50f5139bf27bc6d1b33aa0dbd7c5fb32139450c7..e5c71cfb6f896dd8ad325e14dbc6e33770faaa7c 100644 --- a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py +++ b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator @@ -48,16 +48,34 @@ def SetupSensitiveDetectorsCfg(flags): def SimHitContainerListCfg(flags): simHitContainers = [] if flags.Detector.EnableMDT: - simHitContainers+=[("MDTSimHitCollection", "MDT_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("MDTSimHitCollection", "MDT_Hits_G4")] + else: + simHitContainers+=[("MDTSimHitCollection", "MDT_Hits")] if flags.Detector.EnableRPC: - simHitContainers+=[("RPCSimHitCollection", "RPC_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("RPCSimHitCollection", "RPC_Hits_G4")] + else: + simHitContainers+=[("RPCSimHitCollection", "RPC_Hits")] if flags.Detector.EnableTGC: - simHitContainers+=[("TGCSimHitCollection", "TGC_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("TGCSimHitCollection", "TGC_Hits_G4")] + else: + simHitContainers+=[("TGCSimHitCollection", "TGC_Hits")] if flags.Detector.EnableMM: - simHitContainers+=[("MMSimHitCollection", "MM_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("MMSimHitCollection", "MM_Hits_G4")] + else: + simHitContainers+=[("MMSimHitCollection", "MM_Hits")] if flags.Detector.EnablesTGC: - simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits_G4")] + else: + simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits")] if flags.Detector.EnableCSC: - simHitContainers+=[("CSCSimHitCollection", "CSC_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("CSCSimHitCollection", "CSC_Hits_G4")] + else: + simHitContainers+=[("CSCSimHitCollection", "CSC_Hits")] return simHitContainers diff --git a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py index df9aafa6fe34d8bef8a0de0661bc98c14600e9eb..04706dc173bebf7ec951d391b124439faaead1b6 100644 --- a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py +++ b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory @@ -74,7 +74,7 @@ def SetupSensitiveDetectorsCfg(flags): if flags.Detector.EnableMDT: tools += [result.popToolsAndMerge(MdtSensitiveDetectorToolCfg(flags))] - + if flags.Detector.EnableRPC: tools += [result.popToolsAndMerge(RpcSensitiveDetectorToolCfg(flags))] @@ -91,14 +91,29 @@ def SetupSensitiveDetectorsCfg(flags): def SimHitContainerListCfg(flags): simHitContainers = [] if flags.Detector.EnableMDT: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits_G4")] + else: + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits")] if flags.Detector.EnableMM: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits_G4")] + else: + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits")] if flags.Detector.EnableRPC: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits_G4")] + else: + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits")] if flags.Detector.EnableTGC: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits_G4")] + else: + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits")] if flags.Detector.EnablesTGC: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")] - - return simHitContainers \ No newline at end of file + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)): + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits_G4")] + else: + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")] + + return simHitContainers diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py index b61f98271c4034d012026af23f9008e1c91ec90c..acd2861ca38394d8582fcf931207052eca798593 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.Enums import BeamType @@ -330,14 +330,47 @@ def SimHitContainerListCfg(flags): writtenContainers += [("TileHitVector", "MBTSHits")] writtenContainers += [("TileHitVector", "TileHitVec")] if flags.Detector.GeometryTRT: - writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)): + writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits_G4")] + else: + writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits")] if flags.Detector.EnableBCM: - writtenContainers += [("SiHitCollection", "BCMHits")] - writtenContainers += [("SiHitCollection", "BLMHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)): + writtenContainers += [("SiHitCollection", "BCMHits_G4")] + writtenContainers += [("SiHitCollection", "BLMHits_G4")] + else: + writtenContainers += [("SiHitCollection", "BCMHits")] + writtenContainers += [("SiHitCollection", "BLMHits")] if flags.Detector.EnablePixel: - writtenContainers += [("SiHitCollection", "PixelHits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)): + writtenContainers += [("SiHitCollection", "PixelHits_G4")] + else: + writtenContainers += [("SiHitCollection", "PixelHits")] if flags.Detector.EnableSCT: - writtenContainers += [("SiHitCollection", "SCT_Hits")] + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)): + writtenContainers += [("SiHitCollection", "SCT_Hits_G4")] + else: + writtenContainers += [("SiHitCollection", "SCT_Hits")] + if flags.Detector.EnableITkPixel: + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)): + writtenContainers += [("SiHitCollection", "ITkPixelHits_G4")] + else: + writtenContainers += [("SiHitCollection", "ITkPixelHits")] + if flags.Detector.EnableITkStrip: + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)): + writtenContainers += [("SiHitCollection", "ITkStripHits_G4")] + else: + writtenContainers += [("SiHitCollection", "ITkStripHits")] + if flags.Detector.EnablePLR: + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)): + writtenContainers += [("SiHitCollection", "PLR_Hits_G4")] + else: + writtenContainers += [("SiHitCollection", "PLR_Hits")] + if flags.Detector.EnableHGTD: + if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)): + writtenContainers += [("SiHitCollection", "HGTDHits_G4")] + else: + writtenContainers += [("SiHitCollection", "HGTDHits")] from SimulationConfig.SimEnums import CalibrationRun if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]: # Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly.