5from SimulationConfig.SimEnums
import BeamPipeSimMode, CalibrationRun, CavernBackground, InDetParameterization, LArParameterization
11 result = ComponentAccumulator()
13 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
14 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
15 tools += [ result.popToolsAndMerge(FastCaloSimCfg(flags)) ]
17 if flags.Sim.InDetParameterization
is InDetParameterization.FatrasG4:
18 from G4FastSimulation.G4FastSimulationConfig
import FatrasG4Cfg
19 tools += [ result.popToolsAndMerge(FatrasG4Cfg(flags)) ]
21 if flags.Detector.GeometryBpipe:
22 if not flags.Detector.GeometryFwdRegion
and (flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC):
24 from ForwardTransport.ForwardTransportConfig
import ForwardTransportModelCfg
25 tools += [ result.popToolsAndMerge(ForwardTransportModelCfg(flags)) ]
26 if flags.Sim.BeamPipeSimMode
is not BeamPipeSimMode.Normal:
27 from G4FastSimulation.G4FastSimulationConfig
import SimpleFastKillerCfg
28 tools += [ result.popToolsAndMerge(SimpleFastKillerCfg(flags)) ]
29 if flags.Detector.GeometryLAr:
30 if flags.Sim.LArParameterization
is LArParameterization.NoFrozenShowers:
31 from AthenaCommon.Logging
import logging
32 msg = logging.getLogger(
"FastSimulationToolListCfg")
33 msg.info(
"Not using Frozen Showers" )
35 from LArG4FastSimulation.LArG4FastSimulationConfig
import EMBFastShowerCfg, EMECFastShowerCfg, FCALFastShowerCfg, FCAL2FastShowerCfg
37 if flags.Sim.LArParameterization
is LArParameterization.FrozenShowers:
38 tools += [ result.popToolsAndMerge(EMBFastShowerCfg(flags)) ]
39 tools += [ result.popToolsAndMerge(EMECFastShowerCfg(flags)) ]
40 tools += [ result.popToolsAndMerge(FCALFastShowerCfg(flags)) ]
41 tools += [ result.popToolsAndMerge(FCAL2FastShowerCfg(flags)) ]
42 if flags.Sim.LArParameterization
in [LArParameterization.DeadMaterialFrozenShowers, LArParameterization.FrozenShowersFCalOnly, LArParameterization.FastCaloSim]:
43 from G4FastSimulation.G4FastSimulationConfig
import DeadMaterialShowerCfg
44 tools += [ result.popToolsAndMerge(DeadMaterialShowerCfg(flags)) ]
46 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
47 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
48 tools += [ result.popToolsAndMerge(FastCaloSimCfg(flags)) ]
49 if flags.Detector.GeometryMuon:
50 if flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Read]
and not flags.Sim.RecordFlux:
51 from TrackWriteFastSim.TrackWriteFastSimConfig
import NeutronFastSimCfg
52 tools += [ result.popToolsAndMerge(NeutronFastSimCfg(flags)) ]
54 from G4AtlasServices.G4AtlasServicesConfig
import PhysicsListSvcCfg
55 result.merge(PhysicsListSvcCfg(flags))
56 result.getService(
"PhysicsListSvc").FastSimConstructor.InitializeFastSimulation = len(tools) > 0
58 result.setPrivateTools(tools)
126 from SubDetectorEnvelopes.SubDetectorEnvelopesConfig
import EnvelopeDefSvcCfg
128 result = ComponentAccumulator()
130 kwargs.setdefault(
"FilenameLookupTable" ,
"FastCaloSim/MC23/TFCSparam_mpt_v07.root")
131 kwargs.setdefault(
"FilenameInverseCdf" ,
"FastCaloSim/MC23/TFCSparam_mpt_inverseCdf_v07.xml")
132 kwargs.setdefault(
"FilenameInversePca" ,
"FastCaloSim/MC23/TFCSparam_mpt_inversePca_v07.xml")
133 kwargs.setdefault(
"EnergyFactor" , [ 0.98, 0.831, 0.896, 0.652, 0.717, 1., 0.877, 0.858, 0.919 ] )
134 kwargs.setdefault(
"DoAntiParticles" , [ 0, 1, 0, 1, 1, 0, 0, 0, 0 ] )
135 kwargs.setdefault(
"PunchThroughInitiators" , [ 211, 321, 311, 310, 130, 2212, 2112] )
136 kwargs.setdefault(
"InitiatorsMinEnergy" , [ 65536, 65536, 65536, 65536, 65536, 65536, 65536] )
137 kwargs.setdefault(
"InitiatorsEtaRange" , [ -3.2, 3.2 ] )
138 kwargs.setdefault(
"PunchThroughParticles" , [ 2212, 211, 22, 11, 13, 2112, 321, 310, 130 ] )
139 kwargs.setdefault(
"CorrelatedParticle" , [] )
140 kwargs.setdefault(
"FullCorrelationEnergy" , [ 100000., 100000., 100000., 100000., 0., 100000., 100000., 100000., 100000.] )
141 kwargs.setdefault(
"MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7, 939.6, 493.7, 497.6, 497.6 ] )
142 kwargs.setdefault(
"MaxNumParticles" , [ -1, -1, -1, -1, -1, -1, -1, -1, -1 ] )
143 kwargs.setdefault(
"EnvelopeDefSvc", result.getPrimaryAndMerge(EnvelopeDefSvcCfg(flags)))
144 kwargs.setdefault(
"BeamPipeRadius", 500.)
146 result.setPrivateTools(CompFactory.PunchThroughG4Tool(name, **kwargs))
165 result = ComponentAccumulator()
167 if flags.Detector.EnableLucid:
168 from LUCID_G4_SD.LUCID_G4_SDConfig
import LUCID_SensitiveDetectorCfg
169 tools += [ result.popToolsAndMerge(LUCID_SensitiveDetectorCfg(flags)) ]
170 if flags.Detector.EnableForward:
171 if flags.Detector.EnableZDC:
172 from ZDC_SD.ZDC_SDConfig
import ZDC_FiberSDCfg
173 tools += [ result.popToolsAndMerge(ZDC_FiberSDCfg(flags)) ]
174 if flags.Sim.CalibrationRun
in [CalibrationRun.ZDC, CalibrationRun.LArTileZDC]:
175 from ZDC_SD.ZDC_SDConfig
import ZDC_G4CalibSDCfg
176 tools += [ result.popToolsAndMerge(ZDC_G4CalibSDCfg(flags)) ]
177 if flags.Detector.EnableALFA:
178 from ALFA_G4_SD.ALFA_G4_SDConfig
import ALFA_SensitiveDetectorCfg
179 tools += [ result.popToolsAndMerge(ALFA_SensitiveDetectorCfg(flags)) ]
180 if flags.Detector.EnableAFP:
181 from AFP_G4_SD.AFP_G4_SDConfig
import AFP_SensitiveDetectorCfg
182 tools += [ result.popToolsAndMerge(AFP_SensitiveDetectorCfg(flags)) ]
187 result.setPrivateTools(tools)
192 result = ComponentAccumulator()
194 if (flags.Detector.EnableMuon
and flags.Sim.CavernBackground
in [CavernBackground.Write, CavernBackground.WriteWorld])
or flags.Sim.StoppedParticleFile:
195 from TrackWriteFastSim.TrackWriteFastSimConfig
import TrackFastSimSDCfg
196 tools += [ result.popToolsAndMerge(TrackFastSimSDCfg(flags)) ]
197 result.setPrivateTools(tools)
210 result = ComponentAccumulator()
213 if flags.Detector.EnableITkPixel:
214 from PixelG4_SD.PixelG4_SDToolConfig
import ITkPixelSensorSDCfg
215 tools += [ result.popToolsAndMerge(ITkPixelSensorSDCfg(flags)) ]
217 if flags.Detector.EnableITkStrip:
218 from SCT_G4_SD.SCT_G4_SDToolConfig
import ITkStripSensorSDCfg
219 tools += [ result.popToolsAndMerge(ITkStripSensorSDCfg(flags)) ]
220 if flags.Detector.EnablePLR:
221 from PixelG4_SD.PixelG4_SDToolConfig
import PLRSensorSDCfg
222 tools += [ result.popToolsAndMerge(PLRSensorSDCfg(flags)) ]
224 result.setPrivateTools(tools)
242 result = ComponentAccumulator()
245 if flags.Detector.EnablePixel:
246 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensorSDCfg
247 tools += [ result.popToolsAndMerge(PixelSensorSDCfg(flags)) ]
248 if flags.Detector.EnableSCT:
249 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensorSDCfg
250 tools += [ result.popToolsAndMerge(SctSensorSDCfg(flags)) ]
251 if flags.Detector.EnableTRT:
252 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetectorCfg
253 tools += [ result.popToolsAndMerge(TRTSensitiveDetectorCfg(flags)) ]
254 if flags.Detector.EnableBCM:
255 from BCM_G4_SD.BCM_G4_SDToolConfig
import BCMSensorSDCfg
256 tools += [ result.popToolsAndMerge(BCMSensorSDCfg(flags)) ]
257 from BLM_G4_SD.BLM_G4_SDToolConfig
import BLMSensorSDCfg
258 tools += [ result.popToolsAndMerge(BLMSensorSDCfg(flags)) ]
260 result.setPrivateTools(tools)
265 result = ComponentAccumulator()
268 if flags.Detector.EnableLAr:
269 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg, LArEMECSensitiveDetectorCfg, LArFCALSensitiveDetectorCfg, LArHECSensitiveDetectorCfg
270 tools += [ result.popToolsAndMerge(LArEMBSensitiveDetectorCfg(flags)) ]
271 tools += [ result.popToolsAndMerge(LArEMECSensitiveDetectorCfg(flags)) ]
272 tools += [ result.popToolsAndMerge(LArFCALSensitiveDetectorCfg(flags)) ]
273 tools += [ result.popToolsAndMerge(LArHECSensitiveDetectorCfg(flags)) ]
275 if flags.Detector.EnableMBTS:
276 from MinBiasScintillator.MinBiasScintillatorToolConfig
import MinBiasScintillatorSDCfg
277 tools += [ result.popToolsAndMerge(MinBiasScintillatorSDCfg(flags)) ]
279 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
280 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg, LArActiveSensitiveDetectorToolCfg, LArInactiveSensitiveDetectorToolCfg
281 tools += [ result.popToolsAndMerge(LArDeadSensitiveDetectorToolCfg(flags)) ]
282 tools += [ result.popToolsAndMerge(LArInactiveSensitiveDetectorToolCfg(flags)) ]
283 tools += [ result.popToolsAndMerge(LArActiveSensitiveDetectorToolCfg(flags)) ]
284 elif flags.Sim.CalibrationRun
is CalibrationRun.DeadLAr:
285 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg
286 tools += [ result.popToolsAndMerge(LArDeadSensitiveDetectorToolCfg(flags)) ]
288 if flags.Detector.EnableTile:
289 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
290 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileGeoG4CalibSDCfg
291 tools += [ result.popToolsAndMerge(TileGeoG4CalibSDCfg(flags)) ]
293 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileGeoG4SDCfg
294 tools += [ result.popToolsAndMerge(TileGeoG4SDCfg(flags)) ]
295 if flags.Sim.RecordStepInfo:
296 from ISF_FastCaloSimSD.ISF_FastCaloSimSDToolConfig
import FCS_StepInfoSDToolCfg
297 tools += [ result.popToolsAndMerge(FCS_StepInfoSDToolCfg(flags)) ]
299 result.setPrivateTools(tools)
321 from SimulationConfig.SimEnums
import LArParameterization
322 writtenContainers =[]
323 if flags.Detector.GeometryMuon:
324 if flags.Muon.usePhaseIIGeoSetup:
325 from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg
import SimHitContainerListCfg
328 from MuonG4SD.MuonG4SDConfig
import SimHitContainerListCfg
330 if flags.Detector.GeometryLAr:
331 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
332 writtenContainers += [(
"LArHitContainer",
"LArHitEMB_G4")]
333 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC_G4")]
334 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL_G4")]
335 writtenContainers += [(
"LArHitContainer",
"LArHitHEC_G4")]
336 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
337 writtenContainers += [(
"LArHitContainer" ,
"LArHitHEC_FastCaloSim")]
338 writtenContainers += [(
"LArHitContainer" ,
"LArHitFCAL_FastCaloSim")]
339 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMEC_FastCaloSim")]
340 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMB_FastCaloSim")]
342 writtenContainers += [(
"LArHitContainer",
"LArHitEMB")]
343 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC")]
344 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL")]
345 writtenContainers += [(
"LArHitContainer",
"LArHitHEC")]
346 if flags.Detector.GeometryTile:
347 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
348 writtenContainers += [(
"TileHitVector",
"MBTSHits_G4")]
349 writtenContainers += [(
"TileHitVector",
"TileHitVec_G4")]
350 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
351 writtenContainers += [(
"TileHitVector" ,
"TileHitVec_FastCaloSim")]
352 writtenContainers += [(
"TileHitVector" ,
"MBTSHits_FastCaloSim")]
354 writtenContainers += [(
"TileHitVector",
"MBTSHits")]
355 writtenContainers += [(
"TileHitVector",
"TileHitVec")]
356 if flags.Detector.GeometryTRT:
357 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
358 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits_G4")]
360 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits")]
361 if flags.Detector.EnableBCM:
362 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
363 writtenContainers += [(
"SiHitCollection",
"BCMHits_G4")]
364 writtenContainers += [(
"SiHitCollection",
"BLMHits_G4")]
366 writtenContainers += [(
"SiHitCollection",
"BCMHits")]
367 writtenContainers += [(
"SiHitCollection",
"BLMHits")]
368 if flags.Detector.EnablePixel:
369 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
370 writtenContainers += [(
"SiHitCollection",
"PixelHits_G4")]
372 writtenContainers += [(
"SiHitCollection",
"PixelHits")]
373 if flags.Detector.EnableSCT:
374 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
375 writtenContainers += [(
"SiHitCollection",
"SCT_Hits_G4")]
377 writtenContainers += [(
"SiHitCollection",
"SCT_Hits")]
378 if flags.Detector.EnableITkPixel:
379 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
380 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits_G4")]
382 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits")]
383 if flags.Detector.EnableITkStrip:
384 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
385 writtenContainers += [(
"SiHitCollection",
"ITkStripHits_G4")]
387 writtenContainers += [(
"SiHitCollection",
"ITkStripHits")]
388 if flags.Detector.EnablePLR:
389 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
390 writtenContainers += [(
"SiHitCollection",
"PLR_Hits_G4")]
392 writtenContainers += [(
"SiHitCollection",
"PLR_Hits")]
393 if flags.Detector.EnableHGTD:
394 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
395 writtenContainers += [(
"SiHitCollection",
"HGTDHits_G4")]
397 writtenContainers += [(
"SiHitCollection",
"HGTDHits")]
398 from SimulationConfig.SimEnums
import CalibrationRun
399 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
401 writtenContainers += [
402 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
403 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ),
404 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitInactive_DEAD' )
407 return writtenContainers
439 result = ComponentAccumulator()
442 if flags.Detector.EnableTile:
443 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
444 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
445 tools += [ result.popToolsAndMerge(TileCTBGeoG4CalibSDCfg(flags)) ]
447 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
448 tools += [ result.popToolsAndMerge(TileCTBGeoG4SDCfg(flags)) ]
449 from MuonWall.MuonWallConfig
import MuonWallSDCfg
450 tools += [ result.popToolsAndMerge(MuonWallSDCfg(flags)) ]
451 result.setPrivateTools(tools)
456 result = ComponentAccumulator()
458 if flags.Detector.EnablePixel:
459 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensor_CTBCfg
460 tools += [ result.popToolsAndMerge(PixelSensor_CTBCfg(flags)) ]
461 if flags.Detector.EnableSCT:
462 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensor_CTBCfg
463 tools += [ result.popToolsAndMerge(SctSensor_CTBCfg(flags)) ]
464 if flags.Detector.EnableTRT:
465 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetector_CTBCfg
466 tools += [ result.popToolsAndMerge(TRTSensitiveDetector_CTBCfg(flags)) ]
467 if flags.Detector.EnableLAr:
468 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg
469 tools += [ result.popToolsAndMerge(LArEMBSensitiveDetectorCfg(flags)) ]
470 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC, CalibrationRun.DeadLAr]:
471 tools += [
'LArH8CalibSensitiveDetector' ]
472 if flags.Detector.EnableTile:
473 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
474 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
475 tools += [ result.popToolsAndMerge(TileCTBGeoG4CalibSDCfg(flags)) ]
477 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
478 tools += [ result.popToolsAndMerge(TileCTBGeoG4SDCfg(flags)) ]
479 tools += [
'MuonWallSD' ]
480 if flags.Detector.EnableMuon:
481 tools += [
'MuonEntryRecord' ]
484 result.setPrivateTools(tools)
489 result = ComponentAccumulator()
491 if flags.Beam.Type
is BeamType.TestBeam:
493 elif "tb_LArH6" in flags.GeoModel.AtlasVersion:
495 elif "ctbh8" in flags.GeoModel.AtlasVersion:
500 result.setPrivateTools(CompFactory.SensitiveDetectorMasterTool(name, **kwargs))