2 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from AthenaConfiguration.Enums
import BeamType
5 from SimulationConfig.SimEnums
import BeamPipeSimMode, CalibrationRun, CavernBackground, LArParameterization
6 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
13 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
14 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
17 if flags.Detector.GeometryBpipe:
18 if not flags.Detector.GeometryFwdRegion
and (flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC):
20 from ForwardTransport.ForwardTransportConfig
import ForwardTransportModelCfg
22 if flags.Sim.BeamPipeSimMode
is not BeamPipeSimMode.Normal:
23 from G4FastSimulation.G4FastSimulationConfig
import SimpleFastKillerCfg
25 if flags.Detector.GeometryLAr:
26 if flags.Sim.LArParameterization
is LArParameterization.NoFrozenShowers:
27 from AthenaCommon.Logging
import logging
28 msg = logging.getLogger(
"FastSimulationToolListCfg")
29 msg.info(
"Not using Frozen Showers" )
31 from LArG4FastSimulation.LArG4FastSimulationConfig
import EMBFastShowerCfg, EMECFastShowerCfg, FCALFastShowerCfg, FCAL2FastShowerCfg
33 if flags.Sim.LArParameterization
is LArParameterization.FrozenShowers:
38 if flags.Sim.LArParameterization
in [LArParameterization.DeadMaterialFrozenShowers, LArParameterization.FrozenShowersFCalOnly, LArParameterization.FastCaloSim]:
39 from G4FastSimulation.G4FastSimulationConfig
import DeadMaterialShowerCfg
42 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
43 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
45 if flags.Detector.GeometryMuon:
46 if flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Read]
and not flags.Sim.RecordFlux:
47 from TrackWriteFastSim.TrackWriteFastSimConfig
import NeutronFastSimCfg
49 result.setPrivateTools(tools)
55 svc = CompFactory.ThreadPoolSvc(name=
"ThreadPoolSvc")
56 svc.ThreadInitTools += [CompFactory.G4ThreadInitTool()]
64 FastSimulationMasterTool = CompFactory.FastSimulationMasterTool
71 FastSimulationMasterTool = CompFactory.FastSimulationMasterTool
73 result.setPrivateTools(tool)
80 kwargs.setdefault(
"UseSimplifiedGeo",
bool(flags.Sim.SimplifiedGeoPath))
81 if flags.Sim.SimplifiedGeoPath:
83 kwargs.setdefault(
'SimplifiedWorldLogName',
"WorldLog")
85 kwargs.setdefault(
'TransportLimitVolume',
"Envelope")
87 kwargs.setdefault(
'MaxSteps', 100)
90 kwargs.setdefault(
'TransportLimitVolume',
"MuonSys")
92 kwargs.setdefault(
'MaxSteps', 5000)
94 result.setPrivateTools(CompFactory.G4CaloTransportTool(name, **kwargs))
101 kwargs.setdefault(
"ScalerConfigFileName" ,
"FastCaloSim/MC23/TFCSparam_mpt_classScaler_v04.xml" )
102 kwargs.setdefault(
"NetworkConfigFileName" ,
"FastCaloSim/MC23/TFCSparam_mpt_classNet_v04.json" )
103 kwargs.setdefault(
"CalibratorConfigFileName" ,
"FastCaloSim/MC23/TFCSparam_mpt_classCalib_v04.xml")
105 result.setPrivateTools(CompFactory.PunchThroughG4Classifier(name, **kwargs))
110 from SubDetectorEnvelopes.SubDetectorEnvelopesConfig
import EnvelopeDefSvcCfg
114 kwargs.setdefault(
"FilenameLookupTable" ,
"FastCaloSim/MC23/TFCSparam_mpt_v07.root")
115 kwargs.setdefault(
"FilenameInverseCdf" ,
"FastCaloSim/MC23/TFCSparam_mpt_inverseCdf_v07.xml")
116 kwargs.setdefault(
"FilenameInversePca" ,
"FastCaloSim/MC23/TFCSparam_mpt_inversePca_v07.xml")
117 kwargs.setdefault(
"EnergyFactor" , [ 0.98, 0.831, 0.896, 0.652, 0.717, 1., 0.877, 0.858, 0.919 ] )
118 kwargs.setdefault(
"DoAntiParticles" , [ 0, 1, 0, 1, 1, 0, 0, 0, 0 ] )
119 kwargs.setdefault(
"PunchThroughInitiators" , [ 211, 321, 311, 310, 130, 2212, 2112] )
120 kwargs.setdefault(
"InitiatorsMinEnergy" , [ 65536, 65536, 65536, 65536, 65536, 65536, 65536] )
121 kwargs.setdefault(
"InitiatorsEtaRange" , [ -3.2, 3.2 ] )
122 kwargs.setdefault(
"PunchThroughParticles" , [ 2212, 211, 22, 11, 13, 2112, 321, 310, 130 ] )
123 kwargs.setdefault(
"CorrelatedParticle" , [] )
124 kwargs.setdefault(
"FullCorrelationEnergy" , [ 100000., 100000., 100000., 100000., 0., 100000., 100000., 100000., 100000.] )
125 kwargs.setdefault(
"MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7, 939.6, 493.7, 497.6, 497.6 ] )
126 kwargs.setdefault(
"MaxNumParticles" , [ -1, -1, -1, -1, -1, -1, -1, -1, -1 ] )
127 kwargs.setdefault(
"EnvelopeDefSvc", result.getPrimaryAndMerge(
EnvelopeDefSvcCfg(flags)))
128 kwargs.setdefault(
"BeamPipeRadius", 500.)
130 result.setPrivateTools(CompFactory.PunchThroughG4Tool(name, **kwargs))
137 if "PunchThroughG4Classifier" not in kwargs:
141 if "PunchThroughG4Tool" not in kwargs:
142 kwargs.setdefault(
"PunchThroughG4Tool", result.addPublicTool(result.popToolsAndMerge(
PunchThroughG4ToolCfg(flags))))
144 result.setPrivateTools(CompFactory.PunchThroughSimWrapper(name, **kwargs))
151 if flags.Detector.EnableLucid:
152 from LUCID_G4_SD.LUCID_G4_SDConfig
import LUCID_SensitiveDetectorCfg
154 if flags.Detector.EnableForward:
155 if flags.Detector.EnableZDC:
156 from ZDC_SD.ZDC_SDConfig
import ZDC_FiberSDCfg
158 if flags.Sim.CalibrationRun
in [CalibrationRun.ZDC, CalibrationRun.LArTileZDC]:
159 from ZDC_SD.ZDC_SDConfig
import ZDC_G4CalibSDCfg
161 if flags.Detector.EnableALFA:
162 from ALFA_G4_SD.ALFA_G4_SDConfig
import ALFA_SensitiveDetectorCfg
164 if flags.Detector.EnableAFP:
165 from AFP_G4_SD.AFP_G4_SDConfig
import AFP_SensitiveDetectorCfg
171 result.setPrivateTools(tools)
178 if (flags.Detector.EnableMuon
and flags.Sim.CavernBackground
in [CavernBackground.Write, CavernBackground.WriteWorld])
or flags.Sim.StoppedParticleFile:
179 from TrackWriteFastSim.TrackWriteFastSimConfig
import TrackFastSimSDCfg
181 result.setPrivateTools(tools)
187 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
188 from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConfig
import CaloCellContainerSDCfg
190 result.setPrivateTools(tools)
197 if flags.Detector.EnableITkPixel:
198 from PixelG4_SD.PixelG4_SDToolConfig
import ITkPixelSensorSDCfg
201 if flags.Detector.EnableITkStrip:
202 from SCT_G4_SD.SCT_G4_SDToolConfig
import ITkStripSensorSDCfg
204 if flags.Detector.EnablePLR:
205 from PixelG4_SD.PixelG4_SDToolConfig
import PLRSensorSDCfg
208 result.setPrivateTools(tools)
216 if flags.Detector.EnableHGTD:
217 from HGTD_G4_SD.HGTD_G4_SDToolConfig
import HgtdSensorSDCfg
221 result.setPrivateTools(tools)
229 if flags.Detector.EnablePixel:
230 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensorSDCfg
232 if flags.Detector.EnableSCT:
233 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensorSDCfg
235 if flags.Detector.EnableTRT:
236 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetectorCfg
238 if flags.Detector.EnableBCM:
239 from BCM_G4_SD.BCM_G4_SDToolConfig
import BCMSensorSDCfg
241 from BLM_G4_SD.BLM_G4_SDToolConfig
import BLMSensorSDCfg
244 result.setPrivateTools(tools)
252 if flags.Detector.EnableLAr:
253 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg, LArEMECSensitiveDetectorCfg, LArFCALSensitiveDetectorCfg, LArHECSensitiveDetectorCfg
259 if flags.Detector.EnableMBTS:
260 from MinBiasScintillator.MinBiasScintillatorToolConfig
import MinBiasScintillatorSDCfg
263 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
264 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg, LArActiveSensitiveDetectorToolCfg, LArInactiveSensitiveDetectorToolCfg
268 elif flags.Sim.CalibrationRun
is CalibrationRun.DeadLAr:
269 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg
272 if flags.Detector.EnableTile:
273 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
274 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileGeoG4CalibSDCfg
277 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileGeoG4SDCfg
279 if flags.Sim.RecordStepInfo:
280 from ISF_FastCaloSimSD.ISF_FastCaloSimSDToolConfig
import FCS_StepInfoSDToolCfg
283 result.setPrivateTools(tools)
288 if flags.Muon.usePhaseIIGeoSetup:
289 from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg
import SetupSensitiveDetectorsCfg
291 from MuonG4SD.MuonG4SDConfig
import SetupSensitiveDetectorsCfg
297 if flags.Beam.Type
is BeamType.Cosmics
and not flags.Sim.ReadTR:
298 from TrackWriteFastSim.TrackWriteFastSimConfig
import CosmicTRSDCfg
300 result.setPrivateTools(tools)
305 from SimulationConfig.SimEnums
import LArParameterization
306 writtenContainers =[]
307 if flags.Detector.GeometryMuon:
308 if flags.Muon.usePhaseIIGeoSetup:
309 from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg
import SimHitContainerListCfg
312 from MuonG4SD.MuonG4SDConfig
import SimHitContainerListCfg
314 if flags.Detector.GeometryLAr:
315 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
316 writtenContainers += [(
"LArHitContainer",
"LArHitEMB_G4")]
317 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC_G4")]
318 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL_G4")]
319 writtenContainers += [(
"LArHitContainer",
"LArHitHEC_G4")]
320 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
321 writtenContainers += [(
"LArHitContainer" ,
"LArHitHEC_FastCaloSim")]
322 writtenContainers += [(
"LArHitContainer" ,
"LArHitFCAL_FastCaloSim")]
323 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMEC_FastCaloSim")]
324 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMB_FastCaloSim")]
326 writtenContainers += [(
"LArHitContainer",
"LArHitEMB")]
327 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC")]
328 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL")]
329 writtenContainers += [(
"LArHitContainer",
"LArHitHEC")]
330 if flags.Detector.GeometryTile:
331 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
332 writtenContainers += [(
"TileHitVector",
"MBTSHits_G4")]
333 writtenContainers += [(
"TileHitVector",
"TileHitVec_G4")]
334 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
335 writtenContainers += [(
"TileHitVector" ,
"TileHitVec_FastCaloSim")]
336 writtenContainers += [(
"TileHitVector" ,
"MBTSHits_FastCaloSim")]
338 writtenContainers += [(
"TileHitVector",
"MBTSHits")]
339 writtenContainers += [(
"TileHitVector",
"TileHitVec")]
340 if flags.Detector.GeometryTRT:
341 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
342 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits_G4")]
344 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits")]
345 if flags.Detector.EnableBCM:
346 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
347 writtenContainers += [(
"SiHitCollection",
"BCMHits_G4")]
348 writtenContainers += [(
"SiHitCollection",
"BLMHits_G4")]
350 writtenContainers += [(
"SiHitCollection",
"BCMHits")]
351 writtenContainers += [(
"SiHitCollection",
"BLMHits")]
352 if flags.Detector.EnablePixel:
353 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
354 writtenContainers += [(
"SiHitCollection",
"PixelHits_G4")]
356 writtenContainers += [(
"SiHitCollection",
"PixelHits")]
357 if flags.Detector.EnableSCT:
358 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
359 writtenContainers += [(
"SiHitCollection",
"SCT_Hits_G4")]
361 writtenContainers += [(
"SiHitCollection",
"SCT_Hits")]
362 if flags.Detector.EnableITkPixel:
363 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
364 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits_G4")]
366 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits")]
367 if flags.Detector.EnableITkStrip:
368 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
369 writtenContainers += [(
"SiHitCollection",
"ITkStripHits_G4")]
371 writtenContainers += [(
"SiHitCollection",
"ITkStripHits")]
372 if flags.Detector.EnablePLR:
373 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
374 writtenContainers += [(
"SiHitCollection",
"PLR_Hits_G4")]
376 writtenContainers += [(
"SiHitCollection",
"PLR_Hits")]
377 if flags.Detector.EnableHGTD:
378 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
379 writtenContainers += [(
"SiHitCollection",
"HGTDHits_G4")]
381 writtenContainers += [(
"SiHitCollection",
"HGTDHits")]
382 from SimulationConfig.SimEnums
import CalibrationRun
383 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
385 writtenContainers += [
386 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
387 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ),
388 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitInactive_DEAD' )
391 return writtenContainers
396 from SimulationConfig.SimEnums
import LArParameterization
397 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
398 dependencies+=[(
'CaloDetDescrManager',
'ConditionStore+CaloDetDescrManager'),
399 (
'LArfSamplSym',
'ConditionStore+LArfSamplSym'),
400 (
'TileSamplingFraction',
'ConditionStore+TileSamplingFraction')]
401 from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg
import MuonDependenciesCfg
418 result.setPrivateTools(tools)
426 if flags.Detector.EnableTile:
427 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
428 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
431 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
433 from MuonWall.MuonWallConfig
import MuonWallSDCfg
435 result.setPrivateTools(tools)
442 if flags.Detector.EnablePixel:
443 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensor_CTBCfg
445 if flags.Detector.EnableSCT:
446 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensor_CTBCfg
448 if flags.Detector.EnableTRT:
449 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetector_CTBCfg
451 if flags.Detector.EnableLAr:
452 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg
454 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC, CalibrationRun.DeadLAr]:
455 tools += [
'LArH8CalibSensitiveDetector' ]
456 if flags.Detector.EnableTile:
457 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
458 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
461 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
463 tools += [
'MuonWallSD' ]
464 if flags.Detector.EnableMuon:
465 tools += [
'MuonEntryRecord' ]
468 result.setPrivateTools(tools)
475 if flags.Beam.Type
is BeamType.TestBeam:
477 elif "tb_LArH6" in flags.GeoModel.AtlasVersion:
479 elif "ctbh8" in flags.GeoModel.AtlasVersion:
484 result.setPrivateTools(CompFactory.SensitiveDetectorMasterTool(name, **kwargs))
490 tool = result.popToolsAndMerge(CompFactory.SensitiveDetectorMasterTool(name, **kwargs))
491 result.setPrivateTools(tool)