Skip to content
Snippets Groups Projects
Commit 8dc8c482 authored by John Derek Chapman's avatar John Derek Chapman Committed by Duc Ta
Browse files

Patches to FastCaloSim configurations

Patches to FastCaloSim configurations
parent c0ba03f1
No related branches found
No related tags found
2 merge requests!779122025-02-19: merge of 24.0 into main,!77766Patches to FastCaloSim configurations
......@@ -2,7 +2,7 @@
from G4AtlasServices.G4AtlasServicesConfig import DetectorGeometrySvcCfg, PhysicsListSvcCfg
from ISF_Services.ISF_ServicesConfig import TruthServiceCfg, InputConverterCfg
from ISF_Services.ISF_ServicesCoreConfig import GeoIDSvcCfg
from G4AtlasTools.G4AtlasToolsConfig import SensitiveDetectorMasterToolCfg, FastSimulationMasterToolCfg, SimHitContainerListCfg
from G4AtlasTools.G4AtlasToolsConfig import SensitiveDetectorMasterToolCfg, FastSimulationMasterToolCfg
from G4AtlasServices.G4AtlasUserActionConfig import UserActionSvcCfg
from SimulationConfig.SimulationMetadata import writeSimulationParametersMetadata, readSimulationParameters
from AthenaConfiguration.ComponentFactory import CompFactory
......@@ -31,19 +31,17 @@ def G4AtlasAlgCfg(flags, name="G4AtlasAlg", **kwargs):
## Don't drop the GeoModel
kwargs.setdefault("ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
from G4AtlasTools.G4AtlasToolsConfig import SimHitContainerListCfg, InputContainerListCfg
kwargs.setdefault("ExtraOutputs", SimHitContainerListCfg(flags) )
kwargs.setdefault("ExtraInputs" , InputContainerListCfg(flags))
from SimulationConfig.SimEnums import LArParameterization
# Configure fast simulation
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
kwargs.setdefault("ExtraInputs",
{('CaloDetDescrManager', 'ConditionStore+CaloDetDescrManager'),
('LArfSamplSym', 'ConditionStore+LArfSamplSym'),
('TileSamplingFraction', 'ConditionStore+TileSamplingFraction')})
# Set the path to the simplified calorimeter geometry for particle transport if provided
if flags.Sim.SimplifiedGeoPath:
kwargs.setdefault('SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
kwargs.setdefault("ExtraOutputs", SimHitContainerListCfg(flags))
## Record the particle flux during the simulation
kwargs.setdefault("RecordFlux", flags.Sim.RecordFlux)
......@@ -104,10 +102,6 @@ def G4AtlasAlgCfg(flags, name="G4AtlasAlg", **kwargs):
# Set commands for the G4AtlasAlg
kwargs.setdefault("G4Commands", flags.Sim.G4Commands)
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' )])
result.addEventAlgo(CompFactory.G4AtlasAlg(name, **kwargs))
return result
......@@ -304,20 +304,28 @@ def SimHitContainerListCfg(flags):
from MuonG4SD.MuonG4SDConfig import SimHitContainerListCfg
writtenContainers += SimHitContainerListCfg(flags)
if flags.Detector.GeometryLAr:
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('CALO', True)) or flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
writtenContainers += [("LArHitContainer", "LArHitEMB_G4")]
writtenContainers += [("LArHitContainer", "LArHitEMEC_G4")]
writtenContainers += [("LArHitContainer", "LArHitFCAL_G4")]
writtenContainers += [("LArHitContainer", "LArHitHEC_G4")]
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
writtenContainers += [("LArHitContainer" , "LArHitHEC_FastCaloSim")]
writtenContainers += [("LArHitContainer" , "LArHitFCAL_FastCaloSim")]
writtenContainers += [("LArHitContainer" , "LArHitEMEC_FastCaloSim")]
writtenContainers += [("LArHitContainer" , "LArHitEMB_FastCaloSim")]
else:
writtenContainers += [("LArHitContainer", "LArHitEMB")]
writtenContainers += [("LArHitContainer", "LArHitEMEC")]
writtenContainers += [("LArHitContainer", "LArHitFCAL")]
writtenContainers += [("LArHitContainer", "LArHitHEC")]
if flags.Detector.GeometryTile:
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('CALO', True)) or flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
writtenContainers += [("TileHitVector", "MBTSHits_G4")]
writtenContainers += [("TileHitVector", "TileHitVec_G4")]
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
writtenContainers += [("TileHitVector" , "TileHitVec_FastCaloSim")]
writtenContainers += [("TileHitVector" , "MBTSHits_FastCaloSim")]
else:
writtenContainers += [("TileHitVector", "MBTSHits")]
writtenContainers += [("TileHitVector", "TileHitVec")]
......@@ -331,7 +339,7 @@ def SimHitContainerListCfg(flags):
if flags.Detector.EnableSCT:
writtenContainers += [("SiHitCollection", "SCT_Hits")]
from SimulationConfig.SimEnums import CalibrationRun
if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile]:
if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
# Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly.
writtenContainers += [
( 'CaloCalibrationHitContainer' , 'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
......@@ -341,6 +349,17 @@ def SimHitContainerListCfg(flags):
return writtenContainers
def InputContainerListCfg(flags):
dependencies = []
from SimulationConfig.SimEnums import LArParameterization
if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
dependencies+=[('CaloDetDescrManager', 'ConditionStore+CaloDetDescrManager'),
('LArfSamplSym', 'ConditionStore+LArfSamplSym'),
('TileSamplingFraction', 'ConditionStore+TileSamplingFraction')]
return dependencies
def SensitiveDetectorListCfg(flags):
result = ComponentAccumulator()
tools = []
......@@ -429,4 +448,4 @@ def EmptySensitiveDetectorMasterToolCfg(name="EmptySensitiveDetectorMasterTool",
result = ComponentAccumulator()
tool = result.popToolsAndMerge(CompFactory.SensitiveDetectorMasterTool(name, **kwargs))
result.setPrivateTools(tool)
return result
\ No newline at end of file
return result
......@@ -68,15 +68,8 @@ 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' )
])
from G4AtlasTools.G4AtlasToolsConfig import InputContainerListCfg
kwargs.setdefault("ExtraInputs" , InputContainerListCfg(flags))
if flags.Sim.ISF.Simulator.isQuasiStable():
if "QuasiStablePatcher" not in kwargs:
from BeamEffects.BeamEffectsAlgConfig import ZeroLifetimePositionerCfg
......
......@@ -53,6 +53,10 @@ def Geant4ToolCfg(flags, name="ISF_Geant4Tool", **kwargs):
# PhysicsListSvc
kwargs.setdefault("PhysicsListSvc", acc.getPrimaryAndMerge(PhysicsListSvcCfg(flags)).name)
if flags.Sim.ISF.Simulator.isMT():
from G4AtlasTools.G4AtlasToolsConfig import SimHitContainerListCfg
kwargs.setdefault("ExtraOutputs", SimHitContainerListCfg(flags) )
# 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]:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment