diff --git a/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py b/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py index eaed2788e7079bb07f793b984cff61bcec3f0d0e..fd20e142225e81bd7f1fa026dcacf4fa004021f6 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py @@ -31,8 +31,9 @@ def MuonGeoModelCfg(flags): if flags.Muon.usePhaseIIGeoSetup: from MuonGeoModelR4.MuonGeoModelConfig import MuonGeoModelCfg as MuonGeoModelCfgR4 result.merge(MuonGeoModelCfgR4(flags)) - from MuonGeometryCnv.MuonReadoutGeomCnvCfg import MuonReadoutGeometryCnvAlgCfg - result.merge(MuonReadoutGeometryCnvAlgCfg(flags)) + if flags.Common.ProductionStep != ProductionStep.Simulation: + from MuonGeometryCnv.MuonReadoutGeomCnvCfg import MuonReadoutGeometryCnvAlgCfg + result.merge(MuonReadoutGeometryCnvAlgCfg(flags)) return result result.merge(MuonGeoModelToolCfg(flags)) diff --git a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py index 50f5139bf27bc6d1b33aa0dbd7c5fb32139450c7..6de291629757488a608a2c11128276401024c4b8 100644 --- a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py +++ b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py @@ -61,3 +61,5 @@ def SimHitContainerListCfg(flags): simHitContainers+=[("CSCSimHitCollection", "CSC_Hits")] return simHitContainers +def OutputSimContainersCfg(flags): + return [f"{contType}#{contName}" for contType, contName in SimHitContainerListCfg(flags) ] diff --git a/MuonSpectrometer/MuonPhaseII/MuonConditions/MuonCondAlgR4/python/ConditionsConfig.py b/MuonSpectrometer/MuonPhaseII/MuonConditions/MuonCondAlgR4/python/ConditionsConfig.py index c79819328146a20a138550bb3fab69cb64ef3e51..c7a6d3ae470f63d0792018d090ed96d5f276563d 100644 --- a/MuonSpectrometer/MuonPhaseII/MuonConditions/MuonCondAlgR4/python/ConditionsConfig.py +++ b/MuonSpectrometer/MuonPhaseII/MuonConditions/MuonCondAlgR4/python/ConditionsConfig.py @@ -37,9 +37,10 @@ def ActsGeomContextAlgCfg(flags, name="ActsGeomContextAlg", **kwargs): result.merge(ActsMuonAlignCondAlgCfg(flags)) inAlignContainers = [] - if flags.Detector.GeometryMDT: inAlignContainers += ["MdtActsAlignContainer"] - if flags.Detector.GeometryRPC: inAlignContainers += ["RpcActsAlignContainer"] - if flags.Detector.GeometryTGC: inAlignContainers += ["TgcActsAlignContainer"] + if (flags.Muon.enableAlignment or flags.Muon.applyMMPassivation): + if flags.Detector.GeometryMDT: inAlignContainers += ["MdtActsAlignContainer"] + if flags.Detector.GeometryRPC: inAlignContainers += ["RpcActsAlignContainer"] + if flags.Detector.GeometryTGC: inAlignContainers += ["TgcActsAlignContainer"] kwargs.setdefault("AlignKeys", inAlignContainers) the_alg = CompFactory.ActsMuonGeomContextAlg(name, **kwargs) diff --git a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testSensitiveDetectors.py b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testSensitiveDetectors.py index 299d2a820e4f4ac7a2c7f4b11a0ad5a18cc4e66f..ed24bd5707e658154b86ce75156a0f1596f912c7 100644 --- a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testSensitiveDetectors.py +++ b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testSensitiveDetectors.py @@ -11,13 +11,11 @@ def setupTestOutputCfg(flags,**kwargs): # ============================= # Define contents of the format # ============================= - sim_containers = ["xMdtSimHits", "xRpcSimHits", "xTgcSimHits","xMmSimHits","xStgcSimHits"] + from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg import OutputSimContainersCfg container_items = ["xAOD::TruthParticleContainer#", "xAOD::TruthParticleAuxContainer#", - "McEventCollection#"] - for cont in sim_containers: - container_items +=[ "xAOD::MuonSimHitContainer#{cont}".format(cont = cont), - "xAOD::MuonSimHitAuxContainer#{cont}Aux.".format(cont = cont)] + "McEventCollection#"] + OutputSimContainersCfg(flags) + from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg kwargs.setdefault("ItemList", container_items) diff --git a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py index aa3973a9050da705bec9256f356c0b37eb4fb6eb..7fa316542fb6d5f4f12660afe83e3eca5cd8bc64 100644 --- a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py +++ b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py @@ -90,6 +90,7 @@ def SetupSensitiveDetectorsCfg(flags): result.setPrivateTools(tools) return result +### Name of the container names written by the R4 sensitive detectors def SimHitContainerListCfg(flags): simHitContainers = [] if flags.Detector.EnableMDT: @@ -101,6 +102,25 @@ def SimHitContainerListCfg(flags): if flags.Detector.EnableTGC: simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits")] if flags.Detector.EnablesTGC: - simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")] + simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")] + return simHitContainers + +### Returns the list of Container names written to the HITS file +def OutputSimContainersCfg(flags): + outContainers = [] + containerNames = [] + if flags.Detector.EnableMDT: + containerNames+=["xMdtSimHits"] + if flags.Detector.EnableMM: + containerNames+=["xMmSimHits"] + if flags.Detector.EnableRPC: + containerNames+=["xRpcSimHits"] + if flags.Detector.EnableTGC: + containerNames+=["xTgcSimHits"] + if flags.Detector.EnablesTGC: + containerNames+=["xStgcSimHits"] - return simHitContainers \ No newline at end of file + outContainers +=[ f"xAOD::MuonSimHitContainer#{cont}" for cont in containerNames] + outContainers +=[ f"xAOD::MuonSimHitAuxContainer#{cont}Aux." for cont in containerNames] + + return outContainers diff --git a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py index 0cc21270d8e96eeffafa743831e5d41377c596fe..7851a80a4b52b15540435989954b69d880004c92 100644 --- a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py +++ b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py @@ -69,13 +69,16 @@ def Kernel_GenericSimulatorMTCfg(flags, name="ISF_Kernel_GenericSimulatorMT", ** kwargs.setdefault("InputEvgenCollection", "BeamTruthEvent") kwargs.setdefault("OutputTruthCollection", "TruthEvent") from SimulationConfig.SimEnums import CalibrationRun + from G4AtlasTools.G4AtlasToolsConfig import SimHitContainerListCfg + ExtraOutputs = SimHitContainerListCfg(flags) if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]: # Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly. - kwargs.setdefault("ExtraOutputs", [ + ExtraOutputs+=[ ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitActive_DEAD' ), ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ), ( 'CaloCalibrationHitContainer', 'StoreGateSvc+LArCalibrationHitInactive_DEAD' ) - ]) + ] + kwargs.setdefault("ExtraOutputs", ExtraOutputs ) if flags.Sim.ISF.Simulator.isQuasiStable(): if "QuasiStablePatcher" not in kwargs: diff --git a/Simulation/SimuJobTransforms/python/FilterHit_Skeleton.py b/Simulation/SimuJobTransforms/python/FilterHit_Skeleton.py index d8bfeef5d1be63fb1da1b378f3dc0dfb7f4b254d..091ce33ac7c32b1c8846fccba5aefc0a38177404 100644 --- a/Simulation/SimuJobTransforms/python/FilterHit_Skeleton.py +++ b/Simulation/SimuJobTransforms/python/FilterHit_Skeleton.py @@ -70,24 +70,14 @@ def getStreamHITS_ItemList(flags): # HGTD if flags.Detector.EnableHGTD: ItemList += ["SiHitCollection#HGTD_Hits"] - #CSC - if flags.Detector.EnableCSC: - ItemList+=["CSCSimHitCollection#CSC_Hits"] - #MDT - if flags.Detector.EnableMDT: - ItemList+=["MDTSimHitCollection#MDT_Hits"] - #RPC - if flags.Detector.EnableRPC: - ItemList+=["RPCSimHitCollection#RPC_Hits"] - #TGC - if flags.Detector.EnableTGC: - ItemList+=["TGCSimHitCollection#TGC_Hits"] - #STGC - if flags.Detector.EnablesTGC: - ItemList+=["sTGCSimHitCollection#sTGC_Hits"] - #MM - if flags.Detector.EnableMM: - ItemList+=["MMSimHitCollection#MM_Hits"] + + if flags.Detector.GeometryMuon: + if flags.Muon.usePhaseIIGeoSetup: + from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg import OutputSimContainersCfg + ItemList += OutputSimContainersCfg(flags) + else: + from MuonG4SD.MuonG4SDConfig import OutputSimContainersCfg + ItemList += OutputSimContainersCfg(flags) return ItemList diff --git a/Simulation/SimuJobTransforms/python/SimOutputConfig.py b/Simulation/SimuJobTransforms/python/SimOutputConfig.py index d62db03e55f103b611f70ed0b5fc39ce2fbaa014..65832576e8746ef01fd8ce8305027e2ab8c47511 100644 --- a/Simulation/SimuJobTransforms/python/SimOutputConfig.py +++ b/Simulation/SimuJobTransforms/python/SimOutputConfig.py @@ -92,25 +92,15 @@ def getStreamHITS_ItemList(flags): "TileHitVector#TileHitVec_G4", "TileHitVector#TileHitVec_FastCaloSim"] - if flags.Detector.EnableRPC: - ItemList += ["RPCSimHitCollection#*"] - - if flags.Detector.EnableTGC: - ItemList += ["TGCSimHitCollection#*"] - - if flags.Detector.EnableMDT: - ItemList += ["MDTSimHitCollection#*"] - - if flags.Detector.EnableCSC: - ItemList += ["CSCSimHitCollection#*"] - - if flags.Detector.EnablesTGC: - ItemList += ["sTGCSimHitCollection#*"] - - if flags.Detector.EnableMM: - ItemList += ["MMSimHitCollection#*"] - if flags.Detector.EnableMuon: + if flags.Muon.usePhaseIIGeoSetup: + from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg import OutputSimContainersCfg + ItemList += OutputSimContainersCfg(flags) + else: + from MuonG4SD.MuonG4SDConfig import OutputSimContainersCfg + ItemList += OutputSimContainersCfg(flags) + + ItemList += ["TrackRecordCollection#MuonExitLayer"] if flags.Detector.EnableLucid: