2from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
3from AthenaConfiguration.ComponentFactory
import CompFactory
4from AthenaConfiguration.Enums
import BeamType, LHCPeriod
5from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
7from AthenaCommon
import Logging
9from SimulationConfig.SimEnums
import BeamPipeSimMode, CalibrationRun, CavernBackground, InDetParameterization, LArParameterization
12from G4AtlasTools.G4PhysicsRegionConfig
import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,HGTDPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, InDetPhysicsRegionToolCfg, CALOPhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg
13from G4AtlasTools.G4PhysicsRegionConfig
import DriftWallPhysicsRegionToolCfg, DriftWall1PhysicsRegionToolCfg, DriftWall2PhysicsRegionToolCfg, MuonSystemFastPhysicsRegionToolCfg
16from G4AtlasTools.G4FieldConfig
import ATLASFieldManagerToolCfg, TightMuonsATLASFieldManagerToolCfg, BeamPipeFieldManagerToolCfg, InDetFieldManagerToolCfg, ITkFieldManagerToolCfg, MuonsOnlyInCaloFieldManagerToolCfg, MuonFieldManagerToolCfg, Q1FwdFieldManagerToolCfg, Q2FwdFieldManagerToolCfg, Q3FwdFieldManagerToolCfg, D1FwdFieldManagerToolCfg, D2FwdFieldManagerToolCfg, Q4FwdFieldManagerToolCfg, Q5FwdFieldManagerToolCfg, Q6FwdFieldManagerToolCfg, Q7FwdFieldManagerToolCfg, Q1HKickFwdFieldManagerToolCfg, Q1VKickFwdFieldManagerToolCfg, Q2HKickFwdFieldManagerToolCfg, Q2VKickFwdFieldManagerToolCfg, Q3HKickFwdFieldManagerToolCfg, Q3VKickFwdFieldManagerToolCfg, Q4VKickAFwdFieldManagerToolCfg, Q4HKickFwdFieldManagerToolCfg, Q4VKickBFwdFieldManagerToolCfg, Q5HKickFwdFieldManagerToolCfg, Q6VKickFwdFieldManagerToolCfg, FwdRegionFieldManagerToolCfg
18from G4AtlasTools.G4AtlasToolsConfig
import SensitiveDetectorMasterToolCfg, G4CaloTransportToolCfg, FastSimulationMasterToolCfg
20CylindricalEnvelope, PolyconicalEnvelope, MaterialDescriptionTool,VoxelDensityTool,G4AtlasDetectorConstructionTool,BoxEnvelope=CompFactory.getComps(
"CylindricalEnvelope",
"PolyconicalEnvelope",
"MaterialDescriptionTool",
"VoxelDensityTool",
"G4AtlasDetectorConstructionTool",
"BoxEnvelope")
22from AthenaCommon.SystemOfUnits
import mm, cm, m
29 result = ComponentAccumulator()
30 kwargs.setdefault(
"ActivateLVNotifier",
True)
31 kwargs.setdefault(
"ActivatePVNotifier",
False)
32 result.addService(CompFactory.G4GeometryNotifierSvc(name, **kwargs), primary =
True)
37 result = ComponentAccumulator()
38 from Geo2G4.Geo2G4Config
import Geo2G4SvcCfg
39 kwargs.setdefault(
"Geo2G4Svc", result.getPrimaryAndMerge(Geo2G4SvcCfg(flags)))
42 result.setPrivateTools(CompFactory.GeoDetectorTool(name, **kwargs))
48 from BeamPipeGeoModel.BeamPipeGMConfig
import BeamPipeGeometryCfg
49 result = BeamPipeGeometryCfg(flags)
50 kwargs.setdefault(
"DetectorName",
"BeamPipe")
51 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
57 from PixelGeoModel.PixelGeoModelConfig
import PixelSimulationGeometryCfg
58 result = PixelSimulationGeometryCfg(flags)
59 kwargs.setdefault(
"DetectorName",
"Pixel")
60 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
66 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_SimulationGeometryCfg
67 result = SCT_SimulationGeometryCfg(flags)
68 kwargs.setdefault(
"DetectorName",
"SCT")
69 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
75 from PLRGeoModelXml.PLR_GeoModelConfig
import PLR_GeometryCfg
76 result = PLR_GeometryCfg(flags)
77 kwargs.setdefault(
"DetectorName",
"PLR")
78 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
84 from BCMPrimeGeoModelXml.BCMPrimeGeoModelConfig
import BCMPrimeGeometryCfg
85 result = BCMPrimeGeometryCfg(flags)
86 kwargs.setdefault(
"DetectorName",
"BCMPrime")
87 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
93 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelSimulationGeometryCfg
94 result = ITkPixelSimulationGeometryCfg(flags)
95 kwargs.setdefault(
"DetectorName",
"ITkPixel")
96 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
102 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripSimulationGeometryCfg
103 result = ITkStripSimulationGeometryCfg(flags)
104 kwargs.setdefault(
"DetectorName",
"ITkStrip")
105 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
111 if flags.HGTD.Geometry.useGeoModelXml:
112 from HGTD_GeoModelXml.HGTD_GeoModelConfig
import HGTD_SimulationGeometryCfg
114 from HGTD_GeoModel.HGTD_GeoModelConfig
import HGTD_SimulationGeometryCfg
116 result = HGTD_SimulationGeometryCfg(flags)
117 kwargs.setdefault(
"DetectorName",
"HGTD")
118 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
124 from HGTD_GeoModelXml.HGTDServiceGeoModelConfig
import HGTDServiceGeoModelCfg
125 result = HGTDServiceGeoModelCfg(flags)
126 kwargs.setdefault(
"DetectorName",
"HGTDServices")
127 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
133 from TRT_GeoModel.TRT_GeoModelConfig
import TRT_SimulationGeometryCfg
134 result = TRT_SimulationGeometryCfg(flags)
135 kwargs.setdefault(
"DetectorName",
"TRT")
136 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
142 from InDetServMatGeoModel.InDetServMatGeoModelConfig
import InDetServiceMaterialCfg
143 result = InDetServiceMaterialCfg(flags)
144 kwargs.setdefault(
"DetectorName",
"InDetServMat")
145 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
151 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
152 result = LArGMCfg(flags)
153 kwargs.setdefault(
"DetectorName",
"LArMgr")
154 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
160 from TileGeoModel.TileGMConfig
import TileGMCfg
161 result = TileGMCfg(flags)
162 kwargs.setdefault(
"DetectorName",
"Tile")
163 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
169 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
170 result=ForDetGeometryCfg(flags)
171 kwargs.setdefault(
"DetectorName",
"LUCID")
172 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
178 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
179 result = ForDetGeometryCfg(flags)
180 kwargs.setdefault(
"DetectorName",
"ALFA")
181 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
187 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
188 result = ForDetGeometryCfg(flags)
189 kwargs.setdefault(
"DetectorName",
"ZDC")
190 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
196 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
197 result = ForDetGeometryCfg(flags)
198 kwargs.setdefault(
"DetectorName",
"AFP")
199 kwargs.setdefault(
"GeoDetectorName",
"AFP_GeoModel")
200 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
206 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
207 result = ForDetGeometryCfg(flags)
208 kwargs.setdefault(
"DetectorName",
"FwdRegion")
209 kwargs.setdefault(
"GeoDetectorName",
"ForwardRegionGeoModel")
210 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
216 result = ComponentAccumulator()
217 if not flags.Muon.usePhaseIIGeoSetup:
218 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
219 result.merge(MuonGeoModelCfg(flags))
220 kwargs.setdefault(
"DetectorName",
"Muon")
222 kwargs.setdefault(
"DetectorName",
"MuonR4")
223 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
227 kwargs.setdefault(
"DetectorName",
"Toroid")
228 result = ComponentAccumulator()
229 if not flags.Detector.SpecialGeometryToroid:
231 from MuonGeoModelR4.MuonGeoModelConfig
import ToroidGeoModelToolCfg
232 result.merge(ToroidGeoModelToolCfg(flags))
233 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
238 result = ComponentAccumulator()
240 kwargs.setdefault(
"DetectorName",
"ITK")
241 kwargs.setdefault(
"InnerRadius", 28.8*mm)
242 kwargs.setdefault(
"OuterRadius", 1.148*m)
243 if flags.GeoModel.Run >= LHCPeriod.Run4:
245 kwargs.setdefault(
"dZ", 354.5*cm)
247 kwargs.setdefault(
"dZ", 347.5*cm)
250 if flags.Detector.GeometryITkPixel:
252 SubDetectorList += [toolITkPixel]
253 if flags.Detector.GeometryITkStrip:
255 SubDetectorList += [toolITkStrip]
256 if flags.Detector.GeometryPLR:
258 SubDetectorList += [toolPLR]
259 if flags.Detector.GeometryBCMPrime:
261 SubDetectorList += [toolBCMPrime]
263 if flags.Detector.GeometryHGTD:
265 SubDetectorList += [toolHGTD]
267 kwargs.setdefault(
"SubDetectors", SubDetectorList)
273 result = ComponentAccumulator()
274 kwargs.setdefault(
"DetectorName",
"IDET")
276 if flags.GeoModel.Run
in [LHCPeriod.Run2, LHCPeriod.Run3]:
277 innerRadius = 28.9*mm
278 kwargs.setdefault(
"InnerRadius", innerRadius)
279 kwargs.setdefault(
"OuterRadius", 1.148*m)
280 kwargs.setdefault(
"dZ", 347.5*cm)
283 if flags.Detector.GeometryPixel:
285 SubDetectorList += [toolPixel]
286 if flags.Detector.GeometrySCT:
288 SubDetectorList += [toolSCT]
289 if flags.Detector.GeometryTRT:
291 SubDetectorList += [toolTRT]
294 SubDetectorList += [toolIDetServices]
295 kwargs.setdefault(
"SubDetectors", SubDetectorList)
301 result = ComponentAccumulator()
303 kwargs.setdefault(
"DetectorName",
"CALO")
304 if flags.GeoModel.Run >= LHCPeriod.Run4:
306 kwargs.setdefault(
"NSurfaces", 22)
307 kwargs.setdefault(
"InnerRadii", [41.,41.,41.,41.,41.,41.,64.,64.,120.,120.,1148.,1148.,120.,120.,64.,64.,41.,41.,41.,41.,41.,41.])
308 kwargs.setdefault(
"OuterRadii", [415.,415.,3795.,3795.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,3795.,3795.,415.,415.])
309 kwargs.setdefault(
"ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-4472.,-4472.,-3545.,-3545.,3545.,3545.,4472.,4472.,4587.,4587.,6530.,6530.,6747.,6747.,6781.])
311 kwargs.setdefault(
"NSurfaces", 18)
312 kwargs.setdefault(
"InnerRadii", [41.,41.,41.,41.,41.,41.,120.,120.,1148.,1148.,120.,120.,41.,41.,41.,41.,41.,41.])
313 kwargs.setdefault(
"OuterRadii", [415.,415.,3795.,3795.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,3795.,3795.,415.,415.])
314 kwargs.setdefault(
"ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3475.,-3475.,3475.,3475.,4587.,4587.,6530.,6530.,6747.,6747.,6781.])
316 if flags.Detector.GeometryLAr:
318 SubDetectorList += [ toolLArMgr ]
319 if flags.Detector.GeometryTile:
321 SubDetectorList += [ toolTile ]
322 kwargs.setdefault(
"SubDetectors", SubDetectorList)
328 result = ComponentAccumulator()
330 kwargs.setdefault(
"DetectorName",
"ForDetEnvelope")
333 if flags.Detector.GeometryFwdRegion:
335 SubDetectorList += [ toolFwdRegion ]
340 if flags.Detector.GeometryZDC:
342 SubDetectorList += [ toolZDC ]
343 if flags.Detector.GeometryALFA:
345 SubDetectorList += [ toolALFA ]
346 if flags.Detector.GeometryAFP:
348 SubDetectorList += [ toolAFP ]
349 kwargs.setdefault(
"SubDetectors", SubDetectorList)
351 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
356 result = ComponentAccumulator()
357 if not flags.Detector.GeometryMuon:
359 kwargs.setdefault(
"DetectorName",
"MUONQ02")
360 kwargs.setdefault(
"NSurfaces", 34)
361 kwargs.setdefault(
"InnerRadii", [1050.,1050.,1050.,1050.,436.7,436.7,279.,279.,70.,70.,420.,420.,3800.,3800.,4255.,4255.,4255.,4255.,4255.,4255.,3800.,3800.,420.,420.,70.,70.,279.,279.,436.7,436.7,1050.,1050.,1050.,1050.])
362 kwargs.setdefault(
"OuterRadii", [1500.,1500.,2750.,2750.,12650.,12650.,13400.,13400.,14200.,14200.,14200.,14200.,14200.,14200.,14200.,14200.,13000.,13000.,14200.,14200.,14200.,14200.,14200.,14200.,14200.,14200.,13400.,13400.,12650.,12650.,2750.,2750.,1500.,1500.])
363 kwargs.setdefault(
"ZSurfaces", [-26046.,-23001.,-23001.,-22030.,-22030.,-18650.,-18650.,-12900.,-12900.,-6783.,-6783.,-6748.,-6748.,-6550.,-6550.,-4000.,-4000.,4000.,4000.,6550.,6550.,6748.,6748.,6783.,6783.,12900.,12900.,18650.,18650.,22030.,22030.,23001.,23001.,26046.])
370 kwargs.setdefault(
"DetectorName",
"TTR_BARREL")
371 kwargs.setdefault(
"NSurfaces", 14)
372 kwargs.setdefault(
"InnerRadii", [70.,70.,12500.,12500.,12500.,12500.,13000.,13000.,12500.,12500.,12500.,12500.,70.,70.])
373 kwargs.setdefault(
"OuterRadii", [12501.,12501.,12501.,12501.,13001.,13001.,13001.,13001.,13001.,13001.,12501.,12501.,12501.,12501.])
374 kwargs.setdefault(
"ZSurfaces", [-22031.,-22030.,-22030.,-12901.,-12901.,-12900.,-12900., 12900.,12900.,12901.,12901.,22030.,22030.,22031.])
376 kwargs.setdefault(
"SubDetectors", SubDetectorList)
381 result = ComponentAccumulator()
384 if flags.Beam.Type
is BeamType.Cosmics
or flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Signal]:
385 if flags.Beam.Type
is BeamType.Cosmics
and flags.hasFlag(
"Sim.ReadTR"):
388 if flags.Detector.GeometryMuon:
390 if flags.Detector.SpecialGeometryToroid:
392 if flags.Detector.GeometryID:
394 SubDetectorList += [ toolIDET ]
395 if flags.Detector.GeometryITk
or flags.Detector.GeometryHGTD:
397 SubDetectorList += [ toolITK ]
398 if flags.Detector.GeometryCalo:
400 SubDetectorList += [ toolCALO ]
401 if flags.Detector.GeometryBpipe:
403 SubDetectorList += [ toolBpipe ]
404 if flags.Detector.GeometryLucid:
406 SubDetectorList += [ toolLucid ]
407 if flags.Detector.GeometryFwdRegion
or flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC:
409 SubDetectorList += [ toolFwdRegion ]
411 result.setPrivateTools(SubDetectorList)
416 result = ComponentAccumulator()
418 kwargs.setdefault(
"DetectorName",
"Atlas")
419 kwargs.setdefault(
"NSurfaces", 18)
421 innerRadii = [0.0] * 18
422 kwargs.setdefault(
"InnerRadii", innerRadii)
428 AtlasForwardOuterR = 2751.
429 AtlasOuterR1 = 14201.
430 AtlasOuterR2 = 14201.
433 if not (flags.Detector.GeometryMuon
or flags.Detector.GeometryCavern):
436 if not flags.Detector.GeometryCalo:
440 outerRadii = [0.0] * 18
441 for i
in (0, 1, 16, 17):
442 outerRadii[i] = 1501.
443 for i
in (2, 3, 14, 15):
444 outerRadii[i] = AtlasForwardOuterR
445 for i
in (4, 5, 12, 13):
446 outerRadii[i] = AtlasOuterR2
447 for i
in range(6, 12):
448 outerRadii[i] = AtlasOuterR1
451 if flags.Sim.WorldRRange:
452 routValue = flags.Sim.WorldRRange
453 if flags.Sim.WorldRRange >
max(AtlasOuterR1, AtlasOuterR2):
454 for i
in range(4, 14):
455 outerRadii[i] = routValue
457 raise RuntimeError(
'getATLASEnvelope: ERROR flags.Sim.WorldRRange must be > %f. Current value %f' % (
max(AtlasOuterR1, AtlasOuterR2), routValue) )
458 kwargs.setdefault(
"OuterRadii", outerRadii)
461 zSurfaces = [-26046., -23001., -23001., -22031., -22031., -12899., -12899., -6741., -6741., 6741., 6741., 12899., 12899., 22031., 22031., 23001., 23001., 26046.]
463 if flags.Detector.GeometryFwdRegion
or flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC:
464 zSurfaces[0] = -400000.
465 zSurfaces[17] = 400000.
468 if flags.Sim.WorldZRange:
469 if flags.Sim.WorldZRange < 26046.:
470 raise RuntimeError(
'getATLASEnvelope: ERROR flags.Sim.WorldZRange must be > 26046. Current value: %f' % flags.Sim.WorldZRange)
471 zSurfaces[17] = flags.Sim.WorldZRange + 100.
472 zSurfaces[16] = flags.Sim.WorldZRange + 50.
473 zSurfaces[15] = flags.Sim.WorldZRange + 50.
474 zSurfaces[14] = flags.Sim.WorldZRange
475 zSurfaces[13] = flags.Sim.WorldZRange
476 zSurfaces[0] = -flags.Sim.WorldZRange - 100.
477 zSurfaces[1] = -flags.Sim.WorldZRange - 50.
478 zSurfaces[2] = -flags.Sim.WorldZRange - 50.
479 zSurfaces[3] = -flags.Sim.WorldZRange
480 zSurfaces[4] = -flags.Sim.WorldZRange
482 kwargs.setdefault(
"ZSurfaces", zSurfaces)
484 kwargs.setdefault(
"SubDetectors", SubDetectorList)
491 result = ComponentAccumulator()
492 kwargs.setdefault(
"TestBeam", flags.Beam.Type
is BeamType.TestBeam)
499 voxelDensitySettings = {}
500 if flags.Detector.GeometryITkPixel:
501 voxelDensitySettings[
"ITkPixelDetector"] = 0.05
502 if flags.Detector.GeometryITkStrip:
503 voxelDensitySettings[
"ITkStrip::Barrel"] = 0.05
504 voxelDensitySettings[
"ITkStrip::ITkStrip_Forward"] = 0.05
507 voxelDensitySettings[
"ITkStrip::SCT_Forward"] = 0.05
508 kwargs.setdefault(
"VolumeVoxellDensityLevel",voxelDensitySettings)
509 result = ComponentAccumulator()
515 result = ComponentAccumulator()
516 regionCreatorList = []
518 if flags.Detector.GeometryCavern
or flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Signal]:
519 regionCreatorList += [
520 result.popToolsAndMerge(SX1PhysicsRegionToolCfg(flags)),
521 result.popToolsAndMerge(BedrockPhysicsRegionToolCfg(flags)),
522 result.popToolsAndMerge(CavernShaftsConcretePhysicsRegionToolCfg(flags))]
524 if flags.Detector.GeometryID:
525 if flags.Detector.GeometryPixel:
526 regionCreatorList += [result.popToolsAndMerge(PixelPhysicsRegionToolCfg(flags))]
527 if flags.Detector.GeometrySCT:
528 regionCreatorList += [result.popToolsAndMerge(SCTPhysicsRegionToolCfg(flags))]
529 if flags.Detector.GeometryTRT:
530 regionCreatorList += [result.popToolsAndMerge(TRTPhysicsRegionToolCfg(flags))]
531 if flags.GeoModel.Run
in [LHCPeriod.Run2, LHCPeriod.Run3]:
533 regionCreatorList += [result.popToolsAndMerge(TRT_ArPhysicsRegionToolCfg(flags))]
535 if flags.Sim.InDetParameterization
is InDetParameterization.FatrasG4:
536 regionCreatorList += [result.popToolsAndMerge(InDetPhysicsRegionToolCfg(flags))]
537 if flags.Sim.InDetParameterization
is InDetParameterization.AFatrasG4:
538 regionCreatorList += [result.popToolsAndMerge(InDetPhysicsRegionToolCfg(flags))]
539 if flags.Detector.GeometryBpipe:
540 if flags.Sim.BeamPipeSimMode
is not BeamPipeSimMode.Normal:
541 regionCreatorList += [result.popToolsAndMerge(BeampipeFwdCutPhysicsRegionToolCfg(flags))]
542 if not flags.Detector.GeometryFwdRegion
and (flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC):
543 regionCreatorList += [result.popToolsAndMerge(FWDBeamLinePhysicsRegionToolCfg(flags))]
544 if flags.Detector.GeometryITk:
545 if flags.Detector.GeometryITkPixel:
546 regionCreatorList += [result.popToolsAndMerge(ITkPixelPhysicsRegionToolCfg(flags))]
547 if flags.Detector.GeometryITkStrip:
548 regionCreatorList += [result.popToolsAndMerge(ITkStripPhysicsRegionToolCfg(flags))]
549 if flags.Detector.GeometryHGTD:
550 regionCreatorList += [result.popToolsAndMerge(HGTDPhysicsRegionToolCfg(flags))]
551 if flags.Detector.GeometryITk
or flags.Detector.GeometryHGTD:
553 if flags.Detector.GeometryBpipe:
554 if flags.Sim.BeamPipeSimMode
is not BeamPipeSimMode.Normal:
555 regionCreatorList += [result.popToolsAndMerge(BeampipeFwdCutPhysicsRegionToolCfg(flags))]
556 if not flags.Detector.GeometryFwdRegion
and (flags.Detector.GeometryAFP
or flags.Detector.GeometryALFA
or flags.Detector.GeometryZDC):
557 regionCreatorList += [result.popToolsAndMerge(FWDBeamLinePhysicsRegionToolCfg(flags))]
558 if flags.Detector.GeometryCalo:
559 if flags.Detector.GeometryLAr:
561 if flags.Sim.LArParameterization
is not LArParameterization.NoFrozenShowers \
562 and flags.Sim.CalibrationRun
in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC, CalibrationRun.DeadLAr]:
563 Logging.log.info(
'You requested both calibration hits and frozen showers / parameterization in the LAr.')
564 Logging.log.info(
' Such a configuration is not allowed, and would give junk calibration hits where the showers are modified.')
565 Logging.log.info(
' Please try again with a different value of either flags.Sim.LArParameterization (' + str(flags.Sim.LArParameterization.value) +
') or flags.Sim.CalibrationRun ('+str(flags.Sim.CalibrationRun.value)+
')')
566 raise RuntimeError(
'Configuration not allowed')
567 regionCreatorList += [
568 result.popToolsAndMerge(EMBPhysicsRegionToolCfg(flags)),
569 result.popToolsAndMerge(EMECPhysicsRegionToolCfg(flags)),
570 result.popToolsAndMerge(HECPhysicsRegionToolCfg(flags)),
571 result.popToolsAndMerge(FCALPhysicsRegionToolCfg(flags))]
572 fullCommandList =
'\t'.join(flags.Sim.G4Commands)
573 if flags.Sim.LArParameterization
is LArParameterization.FrozenShowers
or 'EMECPara' in fullCommandList:
581 regionCreatorList += [
582 result.popToolsAndMerge(EMECParaPhysicsRegionToolCfg(flags))]
583 if flags.Sim.LArParameterization
is not LArParameterization.NoFrozenShowers:
584 regionCreatorList += [result.popToolsAndMerge(FCALParaPhysicsRegionToolCfg(flags)),
585 result.popToolsAndMerge(FCAL2ParaPhysicsRegionToolCfg(flags))]
586 if flags.Sim.LArParameterization
in [LArParameterization.DeadMaterialFrozenShowers, LArParameterization.FrozenShowersFCalOnly, LArParameterization.FastCaloSim]:
588 regionCreatorList += [
589 result.popToolsAndMerge(PreSampLArPhysicsRegionToolCfg(flags)),
590 result.popToolsAndMerge(DeadMaterialPhysicsRegionToolCfg(flags))]
591 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
592 regionCreatorList += [result.popToolsAndMerge(CALOPhysicsRegionToolCfg(flags))]
596 if flags.Detector.GeometryMuon:
598 regionCreatorList += [
599 result.popToolsAndMerge(DriftWallPhysicsRegionToolCfg(flags)),
600 result.popToolsAndMerge(DriftWall1PhysicsRegionToolCfg(flags)),
601 result.popToolsAndMerge(DriftWall2PhysicsRegionToolCfg(flags))]
602 if flags.Sim.CavernBackground
not in [CavernBackground.Off, CavernBackground.Read]
and not flags.Sim.RecordFlux:
603 regionCreatorList += [result.popToolsAndMerge(MuonSystemFastPhysicsRegionToolCfg(flags))]
604 result.setPrivateTools(regionCreatorList)
609 regionCreatorList = []
610 result = ComponentAccumulator()
630 result.setPrivateTools(regionCreatorList)
636 result = ComponentAccumulator()
639 if flags.Sim.TightMuonStepping:
640 tool = result.popToolsAndMerge(TightMuonsATLASFieldManagerToolCfg(flags))
641 fieldMgrList += [tool]
643 tool = result.popToolsAndMerge(ATLASFieldManagerToolCfg(flags))
644 fieldMgrList += [tool]
645 if flags.Detector.GeometryBpipe:
646 tool = result.popToolsAndMerge(BeamPipeFieldManagerToolCfg(flags))
647 fieldMgrList += [tool]
648 if flags.Detector.GeometryID:
649 tool = result.popToolsAndMerge(InDetFieldManagerToolCfg(flags))
650 fieldMgrList += [tool]
651 if flags.Detector.GeometryITk
or flags.Detector.GeometryHGTD:
652 tool = result.popToolsAndMerge(ITkFieldManagerToolCfg(flags))
653 fieldMgrList += [tool]
654 if flags.Detector.GeometryCalo
and flags.Sim.MuonFieldOnlyInCalo:
655 tool = result.popToolsAndMerge(MuonsOnlyInCaloFieldManagerToolCfg(flags))
656 fieldMgrList += [tool]
657 if flags.Detector.GeometryMuon:
658 tool = result.popToolsAndMerge(MuonFieldManagerToolCfg(flags))
659 fieldMgrList += [tool]
662 if flags.Detector.GeometryFwdRegion:
664 result.popToolsAndMerge(Q1FwdFieldManagerToolCfg(flags)),
665 result.popToolsAndMerge(Q2FwdFieldManagerToolCfg(flags)),
666 result.popToolsAndMerge(Q3FwdFieldManagerToolCfg(flags)),
667 result.popToolsAndMerge(D1FwdFieldManagerToolCfg(flags)),
668 result.popToolsAndMerge(D2FwdFieldManagerToolCfg(flags)),
669 result.popToolsAndMerge(Q4FwdFieldManagerToolCfg(flags)),
670 result.popToolsAndMerge(Q5FwdFieldManagerToolCfg(flags)),
671 result.popToolsAndMerge(Q6FwdFieldManagerToolCfg(flags)),
672 result.popToolsAndMerge(Q7FwdFieldManagerToolCfg(flags)),
673 result.popToolsAndMerge(Q1HKickFwdFieldManagerToolCfg(flags)),
674 result.popToolsAndMerge(Q1VKickFwdFieldManagerToolCfg(flags)),
675 result.popToolsAndMerge(Q2HKickFwdFieldManagerToolCfg(flags)),
676 result.popToolsAndMerge(Q2VKickFwdFieldManagerToolCfg(flags)),
677 result.popToolsAndMerge(Q3HKickFwdFieldManagerToolCfg(flags)),
678 result.popToolsAndMerge(Q3VKickFwdFieldManagerToolCfg(flags)),
679 result.popToolsAndMerge(Q4VKickAFwdFieldManagerToolCfg(flags)),
680 result.popToolsAndMerge(Q4HKickFwdFieldManagerToolCfg(flags)),
681 result.popToolsAndMerge(Q4VKickBFwdFieldManagerToolCfg(flags)),
682 result.popToolsAndMerge(Q5HKickFwdFieldManagerToolCfg(flags)),
683 result.popToolsAndMerge(Q6VKickFwdFieldManagerToolCfg(flags)),
684 result.popToolsAndMerge(Q1HKickFwdFieldManagerToolCfg(flags)),
685 result.popToolsAndMerge(FwdRegionFieldManagerToolCfg(flags))]
687 result.setPrivateTools(fieldMgrList)
693 result = ComponentAccumulator()
694 result.setPrivateTools(fieldMgrList)
699 geoConfigToolList = []
702 result =ComponentAccumulator()
705 result.setPrivateTools(geoConfigToolList)
711 result = ComponentAccumulator()
716 kwargs.setdefault(
"FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
718 if "SenDetMasterTool" not in kwargs:
719 kwargs.setdefault(
"SenDetMasterTool",
720 result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
722 if flags.Beam.Type
is BeamType.TestBeam:
724 from G4AtlasTools.G4TestBeamGeometryConfig
import TileTB_WorldEnvelopeCfg
725 kwargs.setdefault(
"World", result.popToolsAndMerge(TileTB_WorldEnvelopeCfg(flags)))
726 kwargs.setdefault(
"RegionCreators", [])
727 kwargs.setdefault(
"FieldManagers", [])
729 kwargs.setdefault(
"World",
'LArTB_World')
731 kwargs.setdefault(
"FieldManagers", result.popToolsAndMerge(
TB_FieldMgrListCfg(flags)))
733 if flags.Detector.GeometryCavern:
734 kwargs.setdefault(
"World", result.popToolsAndMerge(
CavernWorldCfg(flags)))
736 kwargs.setdefault(
"World", result.popToolsAndMerge(
ATLASEnvelopeCfg(flags)))
738 if flags.BField.solenoidOn
or flags.BField.barrelToroidOn
or flags.BField.endcapToroidOn:
741 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
742 kwargs.setdefault(
"G4CaloTransportTool", result.addPublicTool(result.popToolsAndMerge(G4CaloTransportToolCfg(flags))))
749 from AtlasGeoModel.CavernGMConfig
import CavernGeometryCfg
750 result = CavernGeometryCfg(flags)
751 kwargs.setdefault(
"DetectorName",
"CavernInfra")
752 result.setPrivateTools(result.popToolsAndMerge(
GeoDetectorToolCfg(flags, name, **kwargs)))
757 result = ComponentAccumulator()
758 kwargs.setdefault(
"DetectorName",
"World")
761 if flags.Sim.CavernBackground
is CavernBackground.Off:
765 bedrockDX = 1000.*3000
766 bedrockDZ = 1000.*3000
768 from CosmicGenerator.CosmicGeneratorConfig
import CavernPropertyCalculator
769 theCavernProperties = CavernPropertyCalculator()
770 if theCavernProperties.BedrockDX(flags) > bedrockDX:
771 bedrockDX = theCavernProperties.BedrockDX(flags)
772 if theCavernProperties.BedrockDZ(flags) > bedrockDZ:
773 bedrockDZ = theCavernProperties.BedrockDZ(flags)
775 kwargs.setdefault(
"dX", bedrockDX)
776 kwargs.setdefault(
"dY", 57300 + 41000 + 1000)
777 kwargs.setdefault(
"dZ", bedrockDZ)
779 kwargs.setdefault(
"NumberOfHoles", 1)
780 kwargs.setdefault(
"HoleNames", [
'BelowCavern'])
781 kwargs.setdefault(
"Hole_dX", [bedrockDX])
782 kwargs.setdefault(
"Hole_dY", [41000])
783 kwargs.setdefault(
"Hole_dZ", [bedrockDZ])
785 kwargs.setdefault(
"HolePosX", [0])
786 kwargs.setdefault(
"HolePosY", [-58300])
787 kwargs.setdefault(
"HolePosZ", [0])
793 kwargs.setdefault(
"SubDetectors", subDetectorList)
794 result.setPrivateTools(
BoxEnvelope(name, **kwargs))