4from SimulationConfig.SimEnums
import BeamPipeSimMode, CalibrationRun, CavernBackground, InDetParameterization, LArParameterization
12 result = ComponentAccumulator()
14 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
15 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
16 tools += [ result.popToolsAndMerge(FastCaloSimCfg(flags)) ]
18 if flags.Sim.InDetParameterization
is InDetParameterization.FatrasG4:
19 from G4FastSimulation.G4FastSimulationConfig
import FatrasG4Cfg
20 tools += [ result.popToolsAndMerge(FatrasG4Cfg(flags)) ]
22 if flags.Sim.InDetParameterization
is InDetParameterization.AFatrasG4:
23 from G4FastSimulation.G4FastSimulationConfig
import AFatrasG4Cfg
24 tools += [ result.popToolsAndMerge(AFatrasG4Cfg(flags)) ]
26 if flags.Detector.GeometryBpipe:
27 if not flags.Detector.GeometryFwdRegion
and (flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC):
29 from ForwardTransport.ForwardTransportConfig
import ForwardTransportModelCfg
30 tools += [ result.popToolsAndMerge(ForwardTransportModelCfg(flags)) ]
31 if flags.Sim.BeamPipeSimMode
is not BeamPipeSimMode.Normal:
32 from G4FastSimulation.G4FastSimulationConfig
import SimpleFastKillerCfg
33 tools += [ result.popToolsAndMerge(SimpleFastKillerCfg(flags)) ]
34 if flags.Detector.GeometryLAr:
35 if flags.Sim.LArParameterization
is LArParameterization.NoFrozenShowers:
36 from AthenaCommon.Logging
import logging
37 msg = logging.getLogger(
"FastSimulationToolListCfg")
38 msg.info(
"Not using Frozen Showers" )
40 from LArG4FastSimulation.LArG4FastSimulationConfig
import EMBFastShowerCfg, EMECFastShowerCfg, FCALFastShowerCfg, FCAL2FastShowerCfg
42 if flags.Sim.LArParameterization
is LArParameterization.FrozenShowers:
43 tools += [ result.popToolsAndMerge(EMBFastShowerCfg(flags)) ]
44 tools += [ result.popToolsAndMerge(EMECFastShowerCfg(flags)) ]
45 tools += [ result.popToolsAndMerge(FCALFastShowerCfg(flags)) ]
46 tools += [ result.popToolsAndMerge(FCAL2FastShowerCfg(flags)) ]
47 if flags.Sim.LArParameterization
in [LArParameterization.DeadMaterialFrozenShowers, LArParameterization.FrozenShowersFCalOnly, LArParameterization.FastCaloSim]:
48 from G4FastSimulation.G4FastSimulationConfig
import DeadMaterialShowerCfg
49 tools += [ result.popToolsAndMerge(DeadMaterialShowerCfg(flags)) ]
51 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
52 from G4FastSimulation.G4FastSimulationConfig
import FastCaloSimCfg
53 tools += [ result.popToolsAndMerge(FastCaloSimCfg(flags)) ]
54 if flags.Detector.GeometryMuon:
55 if flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Read]
and not flags.Sim.RecordFlux:
56 from TrackWriteFastSim.TrackWriteFastSimConfig
import NeutronFastSimCfg
57 tools += [ result.popToolsAndMerge(NeutronFastSimCfg(flags)) ]
59 from G4AtlasServices.G4AtlasServicesConfig
import PhysicsListSvcCfg
60 result.merge(PhysicsListSvcCfg(flags))
61 result.getService(
"PhysicsListSvc").FastSimConstructor.InitializeFastSimulation = len(tools) > 0
63 result.setPrivateTools(tools)
125 result = ComponentAccumulator()
126 from AthenaCommon.Logging
import logging
127 mlog = logging.getLogger(name)
128 mlog.info(
'Start configuration of ActsFatrasG4Tool')
133 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
134 result.merge(AtlasFieldCacheCondAlgCfg(flags))
137 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometrySvcCfg
138 result.merge(ActsTrackingGeometrySvcCfg(flags))
140 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
141 result.merge(ActsGeometryContextAlgCfg(flags))
143 kwargs.setdefault(
"MaxSteps", 2000)
145 kwargs.setdefault(
"DebugInjectParticle", flags.Sim.ActsFatrasG4.DebugInjectParticle)
148 from RngComps.RngCompsConfig
import AthRNGSvcCfg
151 result.getPrimaryAndMerge(AthRNGSvcCfg(flags))
155 tool = CompFactory.ActsFatrasG4Tool(name, **kwargs)
157 result.setPrivateTools(tool)
174 from SubDetectorEnvelopes.SubDetectorEnvelopesConfig
import EnvelopeDefSvcCfg
176 result = ComponentAccumulator()
178 kwargs.setdefault(
"FilenameLookupTable" ,
"FastCaloSim/MC23/TFCSparam_mpt_v07.root")
179 kwargs.setdefault(
"FilenameInverseCdf" ,
"FastCaloSim/MC23/TFCSparam_mpt_inverseCdf_v07.xml")
180 kwargs.setdefault(
"FilenameInversePca" ,
"FastCaloSim/MC23/TFCSparam_mpt_inversePca_v07.xml")
181 kwargs.setdefault(
"EnergyFactor" , [ 0.98, 0.831, 0.896, 0.652, 0.717, 1., 0.877, 0.858, 0.919 ] )
182 kwargs.setdefault(
"DoAntiParticles" , [ 0, 1, 0, 1, 1, 0, 0, 0, 0 ] )
183 kwargs.setdefault(
"PunchThroughInitiators" , [ 211, 321, 311, 310, 130, 2212, 2112] )
184 kwargs.setdefault(
"InitiatorsMinEnergy" , [ 65536, 65536, 65536, 65536, 65536, 65536, 65536] )
185 kwargs.setdefault(
"InitiatorsEtaRange" , [ -3.2, 3.2 ] )
186 kwargs.setdefault(
"PunchThroughParticles" , [ 2212, 211, 22, 11, 13, 2112, 321, 310, 130 ] )
187 kwargs.setdefault(
"CorrelatedParticle" , [] )
188 kwargs.setdefault(
"FullCorrelationEnergy" , [ 100000., 100000., 100000., 100000., 0., 100000., 100000., 100000., 100000.] )
189 kwargs.setdefault(
"MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7, 939.6, 493.7, 497.6, 497.6 ] )
190 kwargs.setdefault(
"MaxNumParticles" , [ -1, -1, -1, -1, -1, -1, -1, -1, -1 ] )
191 kwargs.setdefault(
"EnvelopeDefSvc", result.getPrimaryAndMerge(EnvelopeDefSvcCfg(flags)))
192 kwargs.setdefault(
"BeamPipeRadius", 500.)
194 result.setPrivateTools(CompFactory.PunchThroughG4Tool(name, **kwargs))
213 result = ComponentAccumulator()
215 if flags.Detector.EnableLucid:
216 from LUCID_G4_SD.LUCID_G4_SDConfig
import LUCID_SensitiveDetectorCfg
217 tools += [ result.popToolsAndMerge(LUCID_SensitiveDetectorCfg(flags)) ]
218 if flags.Detector.EnableForward:
219 if flags.Detector.EnableZDC:
220 from ZDC_SD.ZDC_SDConfig
import ZDC_FiberSDCfg
221 tools += [ result.popToolsAndMerge(ZDC_FiberSDCfg(flags)) ]
222 if flags.Sim.CalibrationRun
in [CalibrationRun.ZDC, CalibrationRun.LArTileZDC]:
223 from ZDC_SD.ZDC_SDConfig
import ZDC_G4CalibSDCfg
224 tools += [ result.popToolsAndMerge(ZDC_G4CalibSDCfg(flags)) ]
225 if flags.Detector.EnableALFA:
226 from ALFA_G4_SD.ALFA_G4_SDConfig
import ALFA_SensitiveDetectorCfg
227 tools += [ result.popToolsAndMerge(ALFA_SensitiveDetectorCfg(flags)) ]
228 if flags.Detector.EnableAFP:
229 from AFP_G4_SD.AFP_G4_SDConfig
import AFP_SensitiveDetectorCfg
230 tools += [ result.popToolsAndMerge(AFP_SensitiveDetectorCfg(flags)) ]
235 result.setPrivateTools(tools)
258 result = ComponentAccumulator()
261 if flags.Detector.EnableITkPixel:
262 from PixelG4_SD.PixelG4_SDToolConfig
import ITkPixelSensorSDCfg
263 tools += [ result.popToolsAndMerge(ITkPixelSensorSDCfg(flags)) ]
265 if flags.Detector.EnableITkStrip:
266 from SCT_G4_SD.SCT_G4_SDToolConfig
import ITkStripSensorSDCfg
267 tools += [ result.popToolsAndMerge(ITkStripSensorSDCfg(flags)) ]
268 if flags.Detector.EnablePLR:
269 from PixelG4_SD.PixelG4_SDToolConfig
import PLRSensorSDCfg
270 tools += [ result.popToolsAndMerge(PLRSensorSDCfg(flags)) ]
272 result.setPrivateTools(tools)
290 result = ComponentAccumulator()
293 if flags.Detector.EnablePixel:
294 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensorSDCfg
295 tools += [ result.popToolsAndMerge(PixelSensorSDCfg(flags)) ]
296 if flags.Detector.EnableSCT:
297 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensorSDCfg
298 tools += [ result.popToolsAndMerge(SctSensorSDCfg(flags)) ]
299 if flags.Detector.EnableTRT:
300 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetectorCfg
301 tools += [ result.popToolsAndMerge(TRTSensitiveDetectorCfg(flags)) ]
302 if flags.Detector.EnableBCM:
303 from BCM_G4_SD.BCM_G4_SDToolConfig
import BCMSensorSDCfg
304 tools += [ result.popToolsAndMerge(BCMSensorSDCfg(flags)) ]
305 from BLM_G4_SD.BLM_G4_SDToolConfig
import BLMSensorSDCfg
306 tools += [ result.popToolsAndMerge(BLMSensorSDCfg(flags)) ]
308 result.setPrivateTools(tools)
313 result = ComponentAccumulator()
316 if flags.Detector.EnableLAr:
317 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg, LArEMECSensitiveDetectorCfg, LArFCALSensitiveDetectorCfg, LArHECSensitiveDetectorCfg
318 tools += [ result.popToolsAndMerge(LArEMBSensitiveDetectorCfg(flags)) ]
319 tools += [ result.popToolsAndMerge(LArEMECSensitiveDetectorCfg(flags)) ]
320 tools += [ result.popToolsAndMerge(LArFCALSensitiveDetectorCfg(flags)) ]
321 tools += [ result.popToolsAndMerge(LArHECSensitiveDetectorCfg(flags)) ]
323 if flags.Detector.EnableMBTS:
324 from MinBiasScintillator.MinBiasScintillatorToolConfig
import MinBiasScintillatorSDCfg
325 tools += [ result.popToolsAndMerge(MinBiasScintillatorSDCfg(flags)) ]
327 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
328 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg, LArActiveSensitiveDetectorToolCfg, LArInactiveSensitiveDetectorToolCfg
329 tools += [ result.popToolsAndMerge(LArDeadSensitiveDetectorToolCfg(flags)) ]
330 tools += [ result.popToolsAndMerge(LArInactiveSensitiveDetectorToolCfg(flags)) ]
331 tools += [ result.popToolsAndMerge(LArActiveSensitiveDetectorToolCfg(flags)) ]
332 elif flags.Sim.CalibrationRun
is CalibrationRun.DeadLAr:
333 from LArG4SD.LArG4SDToolConfig
import LArDeadSensitiveDetectorToolCfg
334 tools += [ result.popToolsAndMerge(LArDeadSensitiveDetectorToolCfg(flags)) ]
336 if flags.Detector.EnableTile:
337 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
338 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileGeoG4CalibSDCfg
339 tools += [ result.popToolsAndMerge(TileGeoG4CalibSDCfg(flags)) ]
341 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileGeoG4SDCfg
342 tools += [ result.popToolsAndMerge(TileGeoG4SDCfg(flags)) ]
343 if flags.Sim.RecordStepInfo:
344 from ISF_FastCaloSimSD.ISF_FastCaloSimSDToolConfig
import FCS_StepInfoSDToolCfg
345 tools += [ result.popToolsAndMerge(FCS_StepInfoSDToolCfg(flags)) ]
347 result.setPrivateTools(tools)
369 from SimulationConfig.SimEnums
import LArParameterization
370 writtenContainers =[]
371 if flags.Detector.GeometryMuon:
372 if flags.Muon.usePhaseIIGeoSetup:
373 from MuonSensitiveDetectorsR4.SensitiveDetectorsCfg
import SimHitContainerListCfg
376 from MuonG4SD.MuonG4SDConfig
import SimHitContainerListCfg
378 if flags.Detector.GeometryLAr:
379 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
380 writtenContainers += [(
"LArHitContainer",
"LArHitEMB_G4")]
381 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC_G4")]
382 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL_G4")]
383 writtenContainers += [(
"LArHitContainer",
"LArHitHEC_G4")]
384 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
385 writtenContainers += [(
"LArHitContainer" ,
"LArHitHEC_FastCaloSim")]
386 writtenContainers += [(
"LArHitContainer" ,
"LArHitFCAL_FastCaloSim")]
387 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMEC_FastCaloSim")]
388 writtenContainers += [(
"LArHitContainer" ,
"LArHitEMB_FastCaloSim")]
390 writtenContainers += [(
"LArHitContainer",
"LArHitEMB")]
391 writtenContainers += [(
"LArHitContainer",
"LArHitEMEC")]
392 writtenContainers += [(
"LArHitContainer",
"LArHitFCAL")]
393 writtenContainers += [(
"LArHitContainer",
"LArHitHEC")]
394 if flags.Detector.GeometryTile:
395 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'CALO',
True))
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
396 writtenContainers += [(
"TileHitVector",
"MBTSHits_G4")]
397 writtenContainers += [(
"TileHitVector",
"TileHitVec_G4")]
398 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
399 writtenContainers += [(
"TileHitVector" ,
"TileHitVec_FastCaloSim")]
400 writtenContainers += [(
"TileHitVector" ,
"MBTSHits_FastCaloSim")]
402 writtenContainers += [(
"TileHitVector",
"MBTSHits")]
403 writtenContainers += [(
"TileHitVector",
"TileHitVec")]
404 if flags.Detector.GeometryTRT:
405 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
406 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits_G4")]
408 writtenContainers += [(
"TRTUncompressedHitCollection",
"TRTUncompressedHits")]
409 if flags.Detector.EnableBCM:
410 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
411 writtenContainers += [(
"SiHitCollection",
"BCMHits_G4")]
412 writtenContainers += [(
"SiHitCollection",
"BLMHits_G4")]
414 writtenContainers += [(
"SiHitCollection",
"BCMHits")]
415 writtenContainers += [(
"SiHitCollection",
"BLMHits")]
416 if flags.Detector.EnablePixel:
417 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
418 writtenContainers += [(
"SiHitCollection",
"PixelHits_G4")]
419 if flags.Sim.InDetParameterization
in (
420 InDetParameterization.FatrasG4,
421 InDetParameterization.AFatrasG4,
423 writtenContainers += [(
"SiHitCollection",
"PixelHits_ActsFatrasG4")]
425 writtenContainers += [(
"SiHitCollection",
"PixelHits")]
426 if flags.Detector.EnableSCT:
427 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ID',
True)):
428 writtenContainers += [(
"SiHitCollection",
"SCT_Hits_G4")]
429 if flags.Sim.InDetParameterization
in (
430 InDetParameterization.FatrasG4,
431 InDetParameterization.AFatrasG4,
433 writtenContainers += [(
"SiHitCollection" ,
"SCT_Hits_ActsFatrasG4")]
435 writtenContainers += [(
"SiHitCollection",
"SCT_Hits")]
436 if flags.Detector.EnableITkPixel:
437 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
438 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits_G4")]
440 writtenContainers += [(
"SiHitCollection",
"ITkPixelHits")]
441 if flags.Detector.EnableITkStrip:
442 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
443 writtenContainers += [(
"SiHitCollection",
"ITkStripHits_G4")]
445 writtenContainers += [(
"SiHitCollection",
"ITkStripHits")]
446 if flags.Detector.EnablePLR:
447 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
448 writtenContainers += [(
"SiHitCollection",
"PLR_Hits_G4")]
450 writtenContainers += [(
"SiHitCollection",
"PLR_Hits")]
451 if flags.Detector.EnableHGTD:
452 if (flags.Sim.ISFRun
and flags.Sim.ISF.HITSMergingRequired.get(
'ITk',
True)):
453 writtenContainers += [(
"SiHitCollection",
"HGTDHits_G4")]
455 writtenContainers += [(
"SiHitCollection",
"HGTDHits")]
456 from SimulationConfig.SimEnums
import CalibrationRun
457 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
459 writtenContainers += [
460 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitActive_DEAD' ),
461 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitDeadMaterial_DEAD' ),
462 (
'CaloCalibrationHitContainer' ,
'StoreGateSvc+LArCalibrationHitInactive_DEAD' )
465 return writtenContainers
497 result = ComponentAccumulator()
500 if flags.Detector.EnableTile:
501 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
502 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
503 tools += [ result.popToolsAndMerge(TileCTBGeoG4CalibSDCfg(flags)) ]
505 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
506 tools += [ result.popToolsAndMerge(TileCTBGeoG4SDCfg(flags)) ]
507 from MuonWall.MuonWallConfig
import MuonWallSDCfg
508 tools += [ result.popToolsAndMerge(MuonWallSDCfg(flags)) ]
509 result.setPrivateTools(tools)
514 result = ComponentAccumulator()
516 if flags.Detector.EnablePixel:
517 from PixelG4_SD.PixelG4_SDToolConfig
import PixelSensor_CTBCfg
518 tools += [ result.popToolsAndMerge(PixelSensor_CTBCfg(flags)) ]
519 if flags.Detector.EnableSCT:
520 from SCT_G4_SD.SCT_G4_SDToolConfig
import SctSensor_CTBCfg
521 tools += [ result.popToolsAndMerge(SctSensor_CTBCfg(flags)) ]
522 if flags.Detector.EnableTRT:
523 from TRT_G4_SD.TRT_G4_SDToolConfig
import TRTSensitiveDetector_CTBCfg
524 tools += [ result.popToolsAndMerge(TRTSensitiveDetector_CTBCfg(flags)) ]
525 if flags.Detector.EnableLAr:
526 from LArG4SD.LArG4SDToolConfig
import LArEMBSensitiveDetectorCfg
527 tools += [ result.popToolsAndMerge(LArEMBSensitiveDetectorCfg(flags)) ]
528 if flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC, CalibrationRun.DeadLAr]:
529 tools += [
'LArH8CalibSensitiveDetector' ]
530 if flags.Detector.EnableTile:
531 if flags.Sim.CalibrationRun
in [CalibrationRun.Tile, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
532 from TileGeoG4Calib.TileGeoG4CalibConfig
import TileCTBGeoG4CalibSDCfg
533 tools += [ result.popToolsAndMerge(TileCTBGeoG4CalibSDCfg(flags)) ]
535 from TileGeoG4SD.TileGeoG4SDToolConfig
import TileCTBGeoG4SDCfg
536 tools += [ result.popToolsAndMerge(TileCTBGeoG4SDCfg(flags)) ]
537 tools += [
'MuonWallSD' ]
538 if flags.Detector.EnableMuon:
539 tools += [
'MuonEntryRecord' ]
542 result.setPrivateTools(tools)
547 result = ComponentAccumulator()
549 if flags.Beam.Type
is BeamType.TestBeam:
551 elif "tb_LArH6" in flags.GeoModel.AtlasVersion:
553 elif "ctbh8" in flags.GeoModel.AtlasVersion:
558 result.setPrivateTools(CompFactory.SensitiveDetectorMasterTool(name, **kwargs))