ATLAS Offline Software
G4GeometryToolConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaConfiguration.Enums import BeamType, LHCPeriod
5 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
6 
7 from AthenaCommon import Logging
8 
9 from SimulationConfig.SimEnums import BeamPipeSimMode, CalibrationRun, CavernBackground, LArParameterization
10 
11 #the physics region tools
12 from G4AtlasTools.G4PhysicsRegionConfig import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,HGTDPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, CALOPhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg #, FwdRegionPhysicsRegionToolCfg
13 from G4AtlasTools.G4PhysicsRegionConfig import DriftWallPhysicsRegionToolCfg, DriftWall1PhysicsRegionToolCfg, DriftWall2PhysicsRegionToolCfg, MuonSystemFastPhysicsRegionToolCfg
14 
15 #the field config tools
16 from 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
17 
18 from G4AtlasTools.G4AtlasToolsConfig import SensitiveDetectorMasterToolCfg, G4CaloTransportToolCfg
19 
20 CylindricalEnvelope, PolyconicalEnvelope, MaterialDescriptionTool,VoxelDensityTool,G4AtlasDetectorConstructionTool,BoxEnvelope=CompFactory.getComps("CylindricalEnvelope","PolyconicalEnvelope","MaterialDescriptionTool","VoxelDensityTool","G4AtlasDetectorConstructionTool","BoxEnvelope")
21 
22 from AthenaCommon.SystemOfUnits import mm, cm, m
23 
24 #ToDo - finish migrating this
25 #from ForwardRegionProperties.ForwardRegionPropertiesToolConfig import ForwardRegionPropertiesCfg
26 
27 #put it here to avoid circular import?
28 def G4GeometryNotifierSvcCfg(flags, name="G4GeometryNotifierSvc", **kwargs):
29  result = ComponentAccumulator()
30  kwargs.setdefault("ActivateLVNotifier", True)
31  kwargs.setdefault("ActivatePVNotifier", False)
32  result.addService(CompFactory.G4GeometryNotifierSvc(name, **kwargs), primary = True)
33  return result
34 
35 
36 def GeoDetectorToolCfg(flags, name='GeoDetectorTool', **kwargs):
37  result = ComponentAccumulator()
38  from Geo2G4.Geo2G4Config import Geo2G4SvcCfg
39  kwargs.setdefault("Geo2G4Svc", result.getPrimaryAndMerge(Geo2G4SvcCfg(flags)).name)
40  #add the GeometryNotifierSvc
41  kwargs.setdefault("GeometryNotifierSvc", result.getPrimaryAndMerge(G4GeometryNotifierSvcCfg(flags)).name)
42  result.setPrivateTools(CompFactory.GeoDetectorTool(name, **kwargs))
43  return result
44 
45 
46 def BeamPipeGeoDetectorToolCfg(flags, name='BeamPipe', **kwargs):
47  #set up geometry
48  from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
49  result = BeamPipeGeometryCfg(flags)
50  kwargs.setdefault("DetectorName", "BeamPipe")
51  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
52  return result
53 
54 
55 def PixelGeoDetectorToolCfg(flags, name='Pixel', **kwargs):
56  #set up geometry
57  from PixelGeoModel.PixelGeoModelConfig import PixelSimulationGeometryCfg
58  result = PixelSimulationGeometryCfg(flags)
59  kwargs.setdefault("DetectorName", "Pixel")
60  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
61  return result
62 
63 
64 def SCTGeoDetectorToolCfg(flags, name='SCT', **kwargs):
65  #set up geometry
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)))
70  return result
71 
72 
73 def PLRGeoDetectorToolCfg(flags, name='PLR', **kwargs):
74  #set up geometry
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)))
79  return result
80 
81 
82 def BCMPrimeGeoDetectorToolCfg(flags, name='BCMPrime', **kwargs):
83  #set up geometry
84  from BCMPrimeGeoModelXml.BCMPrimeGeoModelConfig import BCMPrimeGeometryCfg
85  result = BCMPrimeGeometryCfg(flags)
86  kwargs.setdefault("DetectorName", "BCMPrime")
87  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
88  return result
89 
90 
91 def ITkPixelGeoDetectorToolCfg(flags, name='ITkPixel', **kwargs):
92  #set up geometry
93  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelSimulationGeometryCfg
94  result = ITkPixelSimulationGeometryCfg(flags)
95  kwargs.setdefault("DetectorName", "ITkPixel")
96  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
97  return result
98 
99 
100 def ITkStripGeoDetectorToolCfg(flags, name='ITkStrip', **kwargs):
101  #set up geometry
102  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripSimulationGeometryCfg
103  result = ITkStripSimulationGeometryCfg(flags)
104  kwargs.setdefault("DetectorName", "ITkStrip")
105  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
106  return result
107 
108 
109 def HGTDGeoDetectorToolCfg(flags, name='HGTD', **kwargs):
110  #set up geometry
111  if flags.HGTD.Geometry.useGeoModelXml:
112  from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
113  else:
114  from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
115 
116  result = HGTD_SimulationGeometryCfg(flags)
117  kwargs.setdefault("DetectorName", "HGTD")
118  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
119  return result
120 
121 
122 def HGTDServiceToolCfg(flags, name='HGTDServices', **kwargs):
123  #set up geometry
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)))
128  return result
129 
130 
131 def TRTGeoDetectorToolCfg(flags, name='TRT', **kwargs):
132  #set up geometry
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)))
137  return result
138 
139 
140 def IDetServicesMatGeoDetectorToolCfg(flags, name='IDetServicesMat', **kwargs):
141  #set up geometry
142  from InDetServMatGeoModel.InDetServMatGeoModelConfig import InDetServiceMaterialCfg
143  result = InDetServiceMaterialCfg(flags)
144  kwargs.setdefault("DetectorName", "InDetServMat")
145  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
146  return result
147 
148 
149 def LArMgrGeoDetectorToolCfg(flags, name='LArMgr', **kwargs):
150  #set up geometry
151  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
152  result = LArGMCfg(flags)
153  kwargs.setdefault("DetectorName", "LArMgr")
154  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
155  return result
156 
157 
158 def TileGeoDetectorToolCfg(flags, name='Tile', **kwargs):
159  #set up geometry
160  from TileGeoModel.TileGMConfig import TileGMCfg
161  result = TileGMCfg(flags)
162  kwargs.setdefault("DetectorName", "Tile")
163  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
164  return result
165 
166 
167 def LucidGeoDetectorToolCfg(flags, name='Lucid', **kwargs):
168  #set up geometry
169  from AtlasGeoModel.ForDetGeoModelConfig import ForDetGeometryCfg
170  result=ForDetGeometryCfg(flags)
171  kwargs.setdefault("DetectorName", "LUCID")
172  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
173  return result
174 
175 
176 def ALFAGeoDetectorToolCfg(flags, name='ALFA', **kwargs):
177  #set up geometry
178  from AtlasGeoModel.ForDetGeoModelConfig import ForDetGeometryCfg
179  result = ForDetGeometryCfg(flags)
180  kwargs.setdefault("DetectorName", "ALFA")
181  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
182  return result
183 
184 
185 def ZDCGeoDetectorToolCfg(flags, name='ZDC', **kwargs):
186  #set up geometry
187  from AtlasGeoModel.ForDetGeoModelConfig import ForDetGeometryCfg
188  result = ForDetGeometryCfg(flags)
189  kwargs.setdefault("DetectorName", "ZDC")
190  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
191  return result
192 
193 
194 def AFPGeoDetectorToolCfg(flags, name='AFP', **kwargs):
195  #set up geometry
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)))
201  return result
202 
203 
204 def FwdRegionGeoDetectorToolCfg(flags, name='FwdRegion', **kwargs):
205  #set up geometry
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)))
211  return result
212 
213 
214 def MuonGeoDetectorToolCfg(flags, name='Muon', **kwargs):
215  #set up geometry
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")
221  else:
222  kwargs.setdefault("DetectorName", "MuonR4")
223  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
224  return result
225 
226 
227 def ITKEnvelopeCfg(flags, name="ITK", **kwargs):
228  result = ComponentAccumulator()
229 
230  kwargs.setdefault("DetectorName", "ITK")
231  kwargs.setdefault("InnerRadius", 28.8*mm)
232  kwargs.setdefault("OuterRadius", 1.148*m)
233  if flags.GeoModel.Run >= LHCPeriod.Run4:
234  # ITk should include the HGTD (3420 mm < |z| < 3545 mm) for now
235  kwargs.setdefault("dZ", 354.5*cm)
236  else:
237  kwargs.setdefault("dZ", 347.5*cm)
238 
239  SubDetectorList=[]
240  if flags.Detector.GeometryITkPixel:
241  toolITkPixel = result.popToolsAndMerge(ITkPixelGeoDetectorToolCfg(flags))
242  SubDetectorList += [toolITkPixel]
243  if flags.Detector.GeometryITkStrip:
244  toolITkStrip = result.popToolsAndMerge(ITkStripGeoDetectorToolCfg(flags))
245  SubDetectorList += [toolITkStrip]
246  if flags.Detector.GeometryPLR:
247  toolPLR = result.popToolsAndMerge(PLRGeoDetectorToolCfg(flags))
248  SubDetectorList += [toolPLR]
249  if flags.Detector.GeometryBCMPrime:
250  toolBCMPrime = result.popToolsAndMerge(BCMPrimeGeoDetectorToolCfg(flags))
251  SubDetectorList += [toolBCMPrime]
252  # TODO: for now HGTD is also here
253  if flags.Detector.GeometryHGTD:
254  toolHGTD = result.popToolsAndMerge(HGTDGeoDetectorToolCfg(flags))
255  SubDetectorList += [toolHGTD]
256 
257  kwargs.setdefault("SubDetectors", SubDetectorList)
258  result.setPrivateTools(CylindricalEnvelope(name, **kwargs))
259  return result
260 
261 
262 def IDETEnvelopeCfg(flags, name="IDET", **kwargs):
263  result = ComponentAccumulator()
264  kwargs.setdefault("DetectorName", "IDET")
265  innerRadius = 37.*mm # RUN1 default
266  if flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]:
267  innerRadius = 28.9*mm #29.15*mm
268  kwargs.setdefault("InnerRadius", innerRadius)
269  kwargs.setdefault("OuterRadius", 1.148*m)
270  kwargs.setdefault("dZ", 347.5*cm)
271 
272  SubDetectorList=[]
273  if flags.Detector.GeometryPixel:
274  toolPixel = result.popToolsAndMerge(PixelGeoDetectorToolCfg(flags))
275  SubDetectorList += [toolPixel]
276  if flags.Detector.GeometrySCT:
277  toolSCT = result.popToolsAndMerge(SCTGeoDetectorToolCfg(flags))
278  SubDetectorList += [toolSCT]
279  if flags.Detector.GeometryTRT:
280  toolTRT = result.popToolsAndMerge(TRTGeoDetectorToolCfg(flags))
281  SubDetectorList += [toolTRT]
282 
283  toolIDetServices = result.popToolsAndMerge(IDetServicesMatGeoDetectorToolCfg(flags))
284  SubDetectorList += [toolIDetServices]
285  kwargs.setdefault("SubDetectors", SubDetectorList)
286  result.setPrivateTools(CylindricalEnvelope(name, **kwargs))
287  return result
288 
289 
290 def CALOEnvelopeCfg(flags, name="CALO", **kwargs):
291  result = ComponentAccumulator()
292 
293  kwargs.setdefault("DetectorName", "CALO")
294  if flags.GeoModel.Run >= LHCPeriod.Run4:
295  # Make room for HGTD (3420 mm < |z| < 3545 mm) but include JMTube and JMPlug
296  kwargs.setdefault("NSurfaces", 22)
297  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.]) #FIXME Units?
298  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.]) #FIXME Units?
299  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.]) #FIXME Units?
300  else:
301  kwargs.setdefault("NSurfaces", 18)
302  kwargs.setdefault("InnerRadii", [41.,41.,41.,41.,41.,41.,120.,120.,1148.,1148.,120.,120.,41.,41.,41.,41.,41.,41.]) #FIXME Units?
303  kwargs.setdefault("OuterRadii", [415.,415.,3795.,3795.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,3795.,3795.,415.,415.]) #FIXME Units?
304  kwargs.setdefault("ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3475.,-3475.,3475.,3475.,4587.,4587.,6530.,6530.,6747.,6747.,6781.]) #FIXME Units?
305  SubDetectorList=[]
306  if flags.Detector.GeometryLAr:
307  toolLArMgr = result.popToolsAndMerge(LArMgrGeoDetectorToolCfg(flags))
308  SubDetectorList += [ toolLArMgr ]
309  if flags.Detector.GeometryTile:
310  toolTile = result.popToolsAndMerge(TileGeoDetectorToolCfg(flags))
311  SubDetectorList += [ toolTile ]
312  kwargs.setdefault("SubDetectors", SubDetectorList)
313  result.setPrivateTools(PolyconicalEnvelope(name, **kwargs))
314  return result
315 
316 
317 def ForwardRegionEnvelopeCfg(flags, name='ForwardRegion', **kwargs):
318  result = ComponentAccumulator()
319 
320  kwargs.setdefault("DetectorName", "ForDetEnvelope")
321  SubDetectorList=[]
322 
323  if flags.Detector.GeometryFwdRegion: # I.e. fully simulate the FwdRegion rather than using BeamTransport to get to Forward Detectors
324  toolFwdRegion = result.popToolsAndMerge(FwdRegionGeoDetectorToolCfg(flags))
325  SubDetectorList += [ toolFwdRegion ]
326 
327  #TODO - migrate this over (WIP at the moment) (dnoel)
328  #toolFwdRegionProperties = ForwardRegionPropertiesCfg(flags)
329  #result.addPublicTool(toolFwdRegionProperties) #add this as a service later?
330  if flags.Detector.GeometryZDC:
331  toolZDC = result.popToolsAndMerge(ZDCGeoDetectorToolCfg(flags))
332  SubDetectorList += [ toolZDC ]
333  if flags.Detector.GeometryALFA:
334  toolALFA = result.popToolsAndMerge(ALFAGeoDetectorToolCfg(flags))
335  SubDetectorList += [ toolALFA ]
336  if flags.Detector.GeometryAFP:
337  toolAFP = result.popToolsAndMerge(AFPGeoDetectorToolCfg(flags))
338  SubDetectorList += [ toolAFP ]
339  kwargs.setdefault("SubDetectors", SubDetectorList)
340 
341  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
342  return result
343 
344 
345 def MUONEnvelopeCfg(flags, name="MUONQ02", **kwargs): #FIXME rename to MUON when safe (IS IT SAFE?))
346  result = ComponentAccumulator()
347 
348  kwargs.setdefault("DetectorName", "MUONQ02") #FIXME rename to MUON when safe
349  kwargs.setdefault("NSurfaces", 34)
350  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.]) #FIXME Units?
351  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.]) #FIXME Units?
352  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.]) #FIXME Units?
353  SubDetectorList=[]
354  if flags.Detector.GeometryMuon:
355  toolMuon = result.popToolsAndMerge(MuonGeoDetectorToolCfg(flags))
356  SubDetectorList += [ toolMuon ]
357 
358  kwargs.setdefault("SubDetectors", SubDetectorList)
359  result.setPrivateTools(PolyconicalEnvelope(name, **kwargs))
360  return result
361 
362 
363 def CosmicShortCutCfg(flags, name="CosmicShortCut", **kwargs):
364  kwargs.setdefault("DetectorName", "TTR_BARREL")
365  kwargs.setdefault("NSurfaces", 14)
366  kwargs.setdefault("InnerRadii", [70.,70.,12500.,12500.,12500.,12500.,13000.,13000.,12500.,12500.,12500.,12500.,70.,70.]) #FIXME Units?
367  kwargs.setdefault("OuterRadii", [12501.,12501.,12501.,12501.,13001.,13001.,13001.,13001.,13001.,13001.,12501.,12501.,12501.,12501.]) #FIXME Units?
368  kwargs.setdefault("ZSurfaces", [-22031.,-22030.,-22030.,-12901.,-12901.,-12900.,-12900., 12900.,12900.,12901.,12901.,22030.,22030.,22031.]) #FIXME Units?
369  SubDetectorList=[]
370  kwargs.setdefault("SubDetectors", SubDetectorList)
371  return PolyconicalEnvelope(name, **kwargs)
372 
373 
375  result = ComponentAccumulator()
376  SubDetectorList=[]
377 
378  if flags.Beam.Type is BeamType.Cosmics or flags.Sim.CavernBackground not in [CavernBackground.Off, CavernBackground.Signal]:
379  if flags.Beam.Type is BeamType.Cosmics and hasattr(flags, "Sim.ReadTR"):
380  SubDetectorList += [ CosmicShortCutCfg(flags) ]
381 
382  if flags.Detector.GeometryMuon:
383  accMuon = MUONEnvelopeCfg(flags)
384  toolMuon = accMuon.popPrivateTools()
385  SubDetectorList += [ toolMuon ] #FIXME rename to MUON when safe
386  if flags.Detector.GeometryID:
387  toolIDET = result.popToolsAndMerge(IDETEnvelopeCfg(flags))
388  SubDetectorList += [ toolIDET ]
389  if flags.Detector.GeometryITk or flags.Detector.GeometryHGTD: # TODO: HGTD is also here for now
390  toolITK = result.popToolsAndMerge(ITKEnvelopeCfg(flags))
391  SubDetectorList += [ toolITK ]
392  if flags.Detector.GeometryCalo:
393  toolCALO = result.popToolsAndMerge(CALOEnvelopeCfg(flags))
394  SubDetectorList += [ toolCALO ]
395  if flags.Detector.GeometryMuon:
396  result.merge(accMuon) #add the acc later to match the old style config
397  if flags.Detector.GeometryBpipe:
398  toolBpipe = result.popToolsAndMerge(BeamPipeGeoDetectorToolCfg(flags))
399  SubDetectorList += [ toolBpipe ]
400  if flags.Detector.GeometryLucid:
401  toolLucid = result.popToolsAndMerge(LucidGeoDetectorToolCfg(flags))
402  SubDetectorList += [ toolLucid ]
403  if flags.Detector.GeometryFwdRegion or flags.Detector.GeometryAFP or flags.Detector.GeometryALFA or flags.Detector.GeometryZDC:
404  toolFwdRegion = result.popToolsAndMerge(ForwardRegionEnvelopeCfg(flags))
405  SubDetectorList += [ toolFwdRegion ]
406 
407  result.setPrivateTools(SubDetectorList)
408  return result
409 
410 
411 def ATLASEnvelopeCfg(flags, name="Atlas", **kwargs):
412  result = ComponentAccumulator()
413 
414  kwargs.setdefault("DetectorName", "Atlas")
415  kwargs.setdefault("NSurfaces", 18)
416 
417  innerRadii = [0.0] * 18
418  kwargs.setdefault("InnerRadii", innerRadii)
419 
420 
422 
423 
424  AtlasForwardOuterR = 2751.
425  AtlasOuterR1 = 14201.
426  AtlasOuterR2 = 14201.
427  # if flags.Beam.Type is not BeamType.Cosmics and not flags.Detector.GeometryMuon and not \
428  # (flags.Sim.CavernBackground is not CavernBackground.Signal):
429  if not (flags.Detector.GeometryMuon or flags.Detector.GeometryCavern):
430  AtlasOuterR1 = 4251.
431  AtlasOuterR2 = 4251.
432  if not flags.Detector.GeometryCalo:
433  AtlasOuterR1 = 1150.
434  AtlasOuterR2 = 1150.
435 
436  outerRadii = [0.0] * 18
437  for i in (0, 1, 16, 17):
438  outerRadii[i] = 1501.
439  for i in (2, 3, 14, 15):
440  outerRadii[i] = AtlasForwardOuterR
441  for i in (4, 5, 12, 13):
442  outerRadii[i] = AtlasOuterR2
443  for i in range(6, 12):
444  outerRadii[i] = AtlasOuterR1
445 
446 
447  if flags.Sim.WorldRRange:
448  routValue = flags.Sim.WorldRRange
449  if flags.Sim.WorldRRange > max(AtlasOuterR1, AtlasOuterR2):
450  for i in range(4, 14):
451  outerRadii[i] = routValue
452  else:
453  raise RuntimeError('getATLASEnvelope: ERROR flags.Sim.WorldRRange must be > %f. Current value %f' % (max(AtlasOuterR1, AtlasOuterR2), routValue) )
454  kwargs.setdefault("OuterRadii", outerRadii)
455 
456 
457  zSurfaces = [-26046., -23001., -23001., -22031., -22031., -12899., -12899., -6741., -6741., 6741., 6741., 12899., 12899., 22031., 22031., 23001., 23001., 26046.] # FIXME units mm??
458 
459  if flags.Detector.GeometryFwdRegion or flags.Detector.GeometryAFP or flags.Detector.GeometryALFA or flags.Detector.GeometryZDC:
460  zSurfaces[0] = -400000.
461  zSurfaces[17] = 400000.
462 
463  #leave a check in for WorldRrange and WorldZrange?
464  if flags.Sim.WorldZRange:
465  if flags.Sim.WorldZRange < 26046.:
466  raise RuntimeError('getATLASEnvelope: ERROR flags.Sim.WorldZRange must be > 26046. Current value: %f' % flags.Sim.WorldZRange)
467  zSurfaces[17] = flags.Sim.WorldZRange + 100.
468  zSurfaces[16] = flags.Sim.WorldZRange + 50.
469  zSurfaces[15] = flags.Sim.WorldZRange + 50.
470  zSurfaces[14] = flags.Sim.WorldZRange
471  zSurfaces[13] = flags.Sim.WorldZRange
472  zSurfaces[0] = -flags.Sim.WorldZRange - 100.
473  zSurfaces[1] = -flags.Sim.WorldZRange - 50.
474  zSurfaces[2] = -flags.Sim.WorldZRange - 50.
475  zSurfaces[3] = -flags.Sim.WorldZRange
476  zSurfaces[4] = -flags.Sim.WorldZRange
477 
478  kwargs.setdefault("ZSurfaces", zSurfaces)
479  SubDetectorList = result.popToolsAndMerge(generateSubDetectorList(flags))
480  kwargs.setdefault("SubDetectors", SubDetectorList)
481  result.setPrivateTools(PolyconicalEnvelope(name, **kwargs))
482  return result
483 
484 
485 def MaterialDescriptionToolCfg(flags, name="MaterialDescriptionTool", **kwargs):
486 
487  result = ComponentAccumulator()
488  kwargs.setdefault("TestBeam", flags.Beam.Type is BeamType.TestBeam)
489  result.setPrivateTools(MaterialDescriptionTool(name, **kwargs))
490  return result
491 
492 
493 def VoxelDensityToolCfg(flags, name="VoxelDensityTool", **kwargs):
494 
495  voxelDensitySettings = {}
496  if flags.Detector.GeometryITkPixel:
497  voxelDensitySettings["ITkPixelDetector"] = 0.05
498  if flags.Detector.GeometryITkStrip:
499  voxelDensitySettings["ITkStrip::Barrel"] = 0.05
500  voxelDensitySettings["ITkStrip::ITkStrip_Forward"] = 0.05
501 
503  voxelDensitySettings["ITkStrip::SCT_Forward"] = 0.05
504  kwargs.setdefault("VolumeVoxellDensityLevel",voxelDensitySettings)
505  result = ComponentAccumulator()
506  result.setPrivateTools(VoxelDensityTool(name, **kwargs))
507  return result
508 
509 
511  result = ComponentAccumulator()
512  regionCreatorList = []
513 
514  if flags.Detector.GeometryCavern or flags.Sim.CavernBackground not in [CavernBackground.Off, CavernBackground.Signal]:
515  regionCreatorList += [
516  result.popToolsAndMerge(SX1PhysicsRegionToolCfg(flags)),
517  result.popToolsAndMerge(BedrockPhysicsRegionToolCfg(flags)),
518  result.popToolsAndMerge(CavernShaftsConcretePhysicsRegionToolCfg(flags))]
519  #regionCreatorList += ['CavernShaftsAirPhysicsRegionTool'] # Not used currently
520  if flags.Detector.GeometryID:
521  if flags.Detector.GeometryPixel:
522  regionCreatorList += [result.popToolsAndMerge(PixelPhysicsRegionToolCfg(flags))]
523  if flags.Detector.GeometrySCT:
524  regionCreatorList += [result.popToolsAndMerge(SCTPhysicsRegionToolCfg(flags))]
525  if flags.Detector.GeometryTRT:
526  regionCreatorList += [result.popToolsAndMerge(TRTPhysicsRegionToolCfg(flags))]
527  if flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]:
528  # TODO: should we support old geometry tags with Run == "UNDEFINED" and flags.GeoModel.IBLLayout not in ["noIBL", "UNDEFINED"]?
529  regionCreatorList += [result.popToolsAndMerge(TRT_ArPhysicsRegionToolCfg(flags))] #'TRT_KrPhysicsRegionTool'
530  # FIXME dislike the ordering here, but try to maintain the same ordering as in the old configuration.
531  if flags.Detector.GeometryBpipe:
532  if flags.Sim.BeamPipeSimMode is not BeamPipeSimMode.Normal:
533  regionCreatorList += [result.popToolsAndMerge(BeampipeFwdCutPhysicsRegionToolCfg(flags))]
534  if not flags.Detector.GeometryFwdRegion and (flags.Detector.GeometryAFP or flags.Detector.GeometryALFA or flags.Detector.GeometryZDC):
535  regionCreatorList += [result.popToolsAndMerge(FWDBeamLinePhysicsRegionToolCfg(flags))]
536  if flags.Detector.GeometryITk:
537  if flags.Detector.GeometryITkPixel:
538  regionCreatorList += [result.popToolsAndMerge(ITkPixelPhysicsRegionToolCfg(flags))]
539  if flags.Detector.GeometryITkStrip:
540  regionCreatorList += [result.popToolsAndMerge(ITkStripPhysicsRegionToolCfg(flags))]
541  if flags.Detector.GeometryHGTD:
542  regionCreatorList += [result.popToolsAndMerge(HGTDPhysicsRegionToolCfg(flags))]
543  if flags.Detector.GeometryITk or flags.Detector.GeometryHGTD: # TODO: I do not know why this is only for ITk (and HGTD)
544  # FIXME dislike the ordering here, but try to maintain the same ordering as in the old configuration.
545  if flags.Detector.GeometryBpipe:
546  if flags.Sim.BeamPipeSimMode is not BeamPipeSimMode.Normal:
547  regionCreatorList += [result.popToolsAndMerge(BeampipeFwdCutPhysicsRegionToolCfg(flags))]
548  if not flags.Detector.GeometryFwdRegion and (flags.Detector.GeometryAFP or flags.Detector.GeometryALFA or flags.Detector.GeometryZDC):
549  regionCreatorList += [result.popToolsAndMerge(FWDBeamLinePhysicsRegionToolCfg(flags))]
550  if flags.Detector.GeometryCalo:
551  if flags.Detector.GeometryLAr:
552  # Shower parameterization overrides the calibration hit flag
553  if flags.Sim.LArParameterization is not LArParameterization.NoFrozenShowers \
554  and flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC, CalibrationRun.DeadLAr]:
555  Logging.log.info('You requested both calibration hits and frozen showers / parameterization in the LAr.')
556  Logging.log.info(' Such a configuration is not allowed, and would give junk calibration hits where the showers are modified.')
557  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)+')')
558  raise RuntimeError('Configuration not allowed')
559  regionCreatorList += [
560  result.popToolsAndMerge(EMBPhysicsRegionToolCfg(flags)),
561  result.popToolsAndMerge(EMECPhysicsRegionToolCfg(flags)),
562  result.popToolsAndMerge(HECPhysicsRegionToolCfg(flags)),
563  result.popToolsAndMerge(FCALPhysicsRegionToolCfg(flags))]
564  fullCommandList = '\t'.join(flags.Sim.G4Commands)
565  if flags.Sim.LArParameterization is LArParameterization.FrozenShowers or 'EMECPara' in fullCommandList:
566  # EMECPara Physics region is used by Woodcock tracking
567  # and by EMEC Frozen Showers (the latter is not part
568  # of production configurations). NB The 'EMB'
569  # PhysicsRegion seems to be used by the Frozen Showers
570  # parametrization also. Unclear if this is correct -
571  # not a big issue as Frozen Showers are not used in
572  # the EMB in production configurations.
573  regionCreatorList += [
574  result.popToolsAndMerge(EMECParaPhysicsRegionToolCfg(flags))]
575  if flags.Sim.LArParameterization is not LArParameterization.NoFrozenShowers:
576  regionCreatorList += [result.popToolsAndMerge(FCALParaPhysicsRegionToolCfg(flags)),
577  result.popToolsAndMerge(FCAL2ParaPhysicsRegionToolCfg(flags))]
578  if flags.Sim.LArParameterization in [LArParameterization.DeadMaterialFrozenShowers, LArParameterization.FrozenShowersFCalOnly, LArParameterization.FastCaloSim]: # TODO Check this makes sense
579  pass
580  regionCreatorList += [
581  result.popToolsAndMerge(PreSampLArPhysicsRegionToolCfg(flags)),
582  result.popToolsAndMerge(DeadMaterialPhysicsRegionToolCfg(flags))]
583  if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
584  regionCreatorList += [result.popToolsAndMerge(CALOPhysicsRegionToolCfg(flags))]
585 
588  if flags.Detector.GeometryMuon:
589  #todo - add the line below
590  regionCreatorList += [
591  result.popToolsAndMerge(DriftWallPhysicsRegionToolCfg(flags)),
592  result.popToolsAndMerge(DriftWall1PhysicsRegionToolCfg(flags)),
593  result.popToolsAndMerge(DriftWall2PhysicsRegionToolCfg(flags))]
594  if flags.Sim.CavernBackground not in [CavernBackground.Off, CavernBackground.Read] and not flags.Sim.RecordFlux:
595  regionCreatorList += [result.popToolsAndMerge(MuonSystemFastPhysicsRegionToolCfg(flags))]
596  result.setPrivateTools(regionCreatorList)
597  return result
598 
599 
601  regionCreatorList = []
602  result = ComponentAccumulator()
603  # Deliberately left commented out for now
604  #TODO - migrate below>>
605  #if (flags.GeoModel.AtlasVersion=="tb_LArH6_2003"):
606  # if (flags.Detector.GeometryLAr):
607  # regionCreatorList += [FCALPhysicsRegionTool(flags)]
608  #elif (flags.GeoModel.AtlasVersion=="tb_LArH6_2002"):
609  # if (flags.Detector.GeometryLAr):
610  # regionCreatorList += [HECPhysicsRegionTool(flags)]
611  #elif (flags.GeoModel.AtlasVersion=="tb_LArH6EC_2002"):
612  # if (flags.Detector.GeometryLAr):
613  # regionCreatorList += [EMECPhysicsRegionTool(flags)]
614  #elif (flags.GeoModel.AtlasVersion=="tb_LArH6_2004"):
615  # if (flags.Sim.LArTB_H6Hec.get_Value()):
616  # regionCreatorList += [HECPhysicsRegionTool(flags)]
617  # if (flags.Sim.LArTB_H6Emec.get_Value()):
618  # regionCreatorList += [EMECPhysicsRegionTool(flags)]
619  # if (flags.Sim.LArTB_H6Fcal.get_Value()):
620  # regionCreatorList += [FCALPhysicsRegionTool(flags)]
621  #<<migrate above
622  result.setPrivateTools(regionCreatorList)
623  return result
624 
625 
626 
628  result = ComponentAccumulator()
629  fieldMgrList = []
630 
631  if flags.Sim.TightMuonStepping:
632  tool = result.popToolsAndMerge(TightMuonsATLASFieldManagerToolCfg(flags))
633  fieldMgrList += [tool]
634  else:
635  tool = result.popToolsAndMerge(ATLASFieldManagerToolCfg(flags))
636  fieldMgrList += [tool]
637  if flags.Detector.GeometryBpipe:
638  tool = result.popToolsAndMerge(BeamPipeFieldManagerToolCfg(flags))
639  fieldMgrList += [tool]
640  if flags.Detector.GeometryID:
641  tool = result.popToolsAndMerge(InDetFieldManagerToolCfg(flags))
642  fieldMgrList += [tool]
643  if flags.Detector.GeometryITk or flags.Detector.GeometryHGTD: # TODO: while HGTD is included in the ITK envelope
644  tool = result.popToolsAndMerge(ITkFieldManagerToolCfg(flags))
645  fieldMgrList += [tool]
646  if flags.Detector.GeometryCalo and flags.Sim.MuonFieldOnlyInCalo:
647  tool = result.popToolsAndMerge(MuonsOnlyInCaloFieldManagerToolCfg(flags))
648  fieldMgrList += [tool]
649  if flags.Detector.GeometryMuon:
650  tool = result.popToolsAndMerge(MuonFieldManagerToolCfg(flags))
651  fieldMgrList += [tool]
652 
653  #sort these forward ones later
654  if flags.Detector.GeometryFwdRegion: #or forward?
655  fieldMgrList+=[
656  result.popToolsAndMerge(Q1FwdFieldManagerToolCfg(flags)),
657  result.popToolsAndMerge(Q2FwdFieldManagerToolCfg(flags)),
658  result.popToolsAndMerge(Q3FwdFieldManagerToolCfg(flags)),
659  result.popToolsAndMerge(D1FwdFieldManagerToolCfg(flags)),
660  result.popToolsAndMerge(D2FwdFieldManagerToolCfg(flags)),
661  result.popToolsAndMerge(Q4FwdFieldManagerToolCfg(flags)),
662  result.popToolsAndMerge(Q5FwdFieldManagerToolCfg(flags)),
663  result.popToolsAndMerge(Q6FwdFieldManagerToolCfg(flags)),
664  result.popToolsAndMerge(Q7FwdFieldManagerToolCfg(flags)),
665  result.popToolsAndMerge(Q1HKickFwdFieldManagerToolCfg(flags)),
666  result.popToolsAndMerge(Q1VKickFwdFieldManagerToolCfg(flags)),
667  result.popToolsAndMerge(Q2HKickFwdFieldManagerToolCfg(flags)),
668  result.popToolsAndMerge(Q2VKickFwdFieldManagerToolCfg(flags)),
669  result.popToolsAndMerge(Q3HKickFwdFieldManagerToolCfg(flags)),
670  result.popToolsAndMerge(Q3VKickFwdFieldManagerToolCfg(flags)),
671  result.popToolsAndMerge(Q4VKickAFwdFieldManagerToolCfg(flags)),
672  result.popToolsAndMerge(Q4HKickFwdFieldManagerToolCfg(flags)),
673  result.popToolsAndMerge(Q4VKickBFwdFieldManagerToolCfg(flags)),
674  result.popToolsAndMerge(Q5HKickFwdFieldManagerToolCfg(flags)),
675  result.popToolsAndMerge(Q6VKickFwdFieldManagerToolCfg(flags)),
676  result.popToolsAndMerge(Q1HKickFwdFieldManagerToolCfg(flags)),
677  result.popToolsAndMerge(FwdRegionFieldManagerToolCfg(flags))]
678 
679  result.setPrivateTools(fieldMgrList)
680  return result
681 
682 
684  fieldMgrList = []
685  result = ComponentAccumulator()
686  result.setPrivateTools(fieldMgrList)
687  return result
688 
689 
691  geoConfigToolList = []
692  # The methods for these tools should be defined in the
693  # package containing each tool, so G4AtlasTools in this case
694  result =ComponentAccumulator()
695  geoConfigToolList += [result.popToolsAndMerge(MaterialDescriptionToolCfg(flags))]
696  geoConfigToolList += [result.popToolsAndMerge(VoxelDensityToolCfg(flags))]
697  result.setPrivateTools(geoConfigToolList)
698  return result
699 
700 
701 @AccumulatorCache
702 def G4AtlasDetectorConstructionToolCfg(flags, name="G4AtlasDetectorConstructionTool", **kwargs):
703  result = ComponentAccumulator()
704 
705 
706  kwargs.setdefault("GeometryConfigurationTools", result.popToolsAndMerge(GeometryConfigurationToolsCfg(flags)))
707 
708  if "SenDetMasterTool" not in kwargs:
709  kwargs.setdefault("SenDetMasterTool",
710  result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
711 
712  if flags.Beam.Type is BeamType.TestBeam:
713  # Tile test beam
714  from G4AtlasTools.G4TestBeamGeometryConfig import TileTB_WorldEnvelopeCfg
715  kwargs.setdefault("World", result.popToolsAndMerge(TileTB_WorldEnvelopeCfg(flags)))
716  kwargs.setdefault("RegionCreators", []) # Empty for Tile test beam
717  kwargs.setdefault("FieldManagers", []) # Empty for Tile test beam
718  elif False: # This block is in case we ever decide to support LAr Test Beam again in Athena in the future
719  kwargs.setdefault("World", 'LArTB_World')
720  kwargs.setdefault("RegionCreators", result.popToolsAndMerge(TB_RegionCreatorListCfg(flags)))
721  kwargs.setdefault("FieldManagers", result.popToolsAndMerge(TB_FieldMgrListCfg(flags)))
722  else:
723  if flags.Detector.GeometryCavern:
724  kwargs.setdefault("World", result.popToolsAndMerge(CavernWorldCfg(flags)))
725  else:
726  kwargs.setdefault("World", result.popToolsAndMerge(ATLASEnvelopeCfg(flags)))
727  kwargs.setdefault("RegionCreators", result.popToolsAndMerge(ATLAS_RegionCreatorListCfg(flags)))
728  if flags.BField.solenoidOn or flags.BField.barrelToroidOn or flags.BField.endcapToroidOn:
729  kwargs.setdefault("FieldManagers", result.popToolsAndMerge(ATLAS_FieldMgrListCfg(flags)))
730 
731  if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
732  kwargs.setdefault("G4CaloTransportTool", result.addPublicTool(result.popToolsAndMerge(G4CaloTransportToolCfg(flags))))
733 
734  result.setPrivateTools(G4AtlasDetectorConstructionTool(name, **kwargs))
735  return result
736 
737 
738 def CavernInfraGeoDetectorToolCfg(flags, name='CavernInfra', **kwargs):
739  from AtlasGeoModel.CavernGMConfig import CavernGeometryCfg
740  result = CavernGeometryCfg(flags)
741  kwargs.setdefault("DetectorName", "CavernInfra")
742  result.setPrivateTools(result.popToolsAndMerge(GeoDetectorToolCfg(flags, name, **kwargs)))
743  return result
744 
745 
746 def CavernWorldCfg(flags, name="Cavern", **kwargs):
747  result = ComponentAccumulator()
748  kwargs.setdefault("DetectorName", "World")
749  bedrockDX = 302700
750  bedrockDZ = 301000
751  if flags.Sim.CavernBackground is CavernBackground.Off:
752 
753  if flags.Sim.ISFRun:
754  # for ISF cosmics simulation, set world volume to biggest possible case
755  bedrockDX = 1000.*3000 # 3 km
756  bedrockDZ = 1000.*3000 # 3 km
757  else:
758  from CosmicGenerator.CosmicGeneratorConfig import CavernPropertyCalculator
759  theCavernProperties = CavernPropertyCalculator()
760  if theCavernProperties.BedrockDX(flags) > bedrockDX:
761  bedrockDX = theCavernProperties.BedrockDX(flags)
762  if theCavernProperties.BedrockDZ(flags) > bedrockDZ:
763  bedrockDZ = theCavernProperties.BedrockDZ(flags)
764 
765  kwargs.setdefault("dX", bedrockDX) #FIXME Units?
766  kwargs.setdefault("dY", 57300 + 41000 + 1000) # 1 extra metre to help voxelization... #FIXME Units?
767  kwargs.setdefault("dZ", bedrockDZ) #FIXME Units?
768  # Subtraction Solid - has to be a better way to do this!!
769  kwargs.setdefault("NumberOfHoles", 1)
770  kwargs.setdefault("HoleNames", ['BelowCavern'])
771  kwargs.setdefault("Hole_dX", [bedrockDX])
772  kwargs.setdefault("Hole_dY", [41000])
773  kwargs.setdefault("Hole_dZ", [bedrockDZ])
774 
775  kwargs.setdefault("HolePosX", [0])
776  kwargs.setdefault("HolePosY", [-58300])
777  kwargs.setdefault("HolePosZ", [0])
778 
779  subDetectorList = []
780  subDetectorList += [ result.popToolsAndMerge(CavernInfraGeoDetectorToolCfg(flags))]
781  subDetectorList += [ result.popToolsAndMerge(ATLASEnvelopeCfg(flags))]
782 
783  kwargs.setdefault("SubDetectors", subDetectorList)
784  result.setPrivateTools(BoxEnvelope(name, **kwargs))
785  return result
G4GeometryToolConfig.MuonGeoDetectorToolCfg
def MuonGeoDetectorToolCfg(flags, name='Muon', **kwargs)
Definition: G4GeometryToolConfig.py:214
PLR_GeoModelConfig.PLR_GeometryCfg
def PLR_GeometryCfg(flags)
Definition: PLR_GeoModelConfig.py:3
G4GeometryToolConfig.BeamPipeGeoDetectorToolCfg
def BeamPipeGeoDetectorToolCfg(flags, name='BeamPipe', **kwargs)
Definition: G4GeometryToolConfig.py:46
G4FieldConfig.TightMuonsATLASFieldManagerToolCfg
def TightMuonsATLASFieldManagerToolCfg(flags, name='TightMuonsATLASFieldManager', **kwargs)
Definition: G4FieldConfig.py:32
G4GeometryToolConfig.MaterialDescriptionToolCfg
def MaterialDescriptionToolCfg(flags, name="MaterialDescriptionTool", **kwargs)
Definition: G4GeometryToolConfig.py:485
G4GeometryToolConfig.TileGeoDetectorToolCfg
def TileGeoDetectorToolCfg(flags, name='Tile', **kwargs)
Definition: G4GeometryToolConfig.py:158
SystemOfUnits
G4FieldConfig.Q2HKickFwdFieldManagerToolCfg
def Q2HKickFwdFieldManagerToolCfg(flags, name='Q2HKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:238
G4PhysicsRegionConfig.TRT_ArPhysicsRegionToolCfg
def TRT_ArPhysicsRegionToolCfg(flags, name='TRT_ArPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:166
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
G4PhysicsRegionConfig.MuonSystemFastPhysicsRegionToolCfg
def MuonSystemFastPhysicsRegionToolCfg(flags, name='MuonSystemFastPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:346
G4FieldConfig.Q2VKickFwdFieldManagerToolCfg
def Q2VKickFwdFieldManagerToolCfg(flags, name='Q2VKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:248
G4GeometryToolConfig.TB_FieldMgrListCfg
def TB_FieldMgrListCfg(flags)
Definition: G4GeometryToolConfig.py:683
G4GeometryToolConfig.ITkPixelGeoDetectorToolCfg
def ITkPixelGeoDetectorToolCfg(flags, name='ITkPixel', **kwargs)
Definition: G4GeometryToolConfig.py:91
MaterialDescriptionTool
Definition: MaterialDescriptionTool.h:21
G4GeometryToolConfig.MUONEnvelopeCfg
def MUONEnvelopeCfg(flags, name="MUONQ02", **kwargs)
Definition: G4GeometryToolConfig.py:345
G4FieldConfig.Q4VKickBFwdFieldManagerToolCfg
def Q4VKickBFwdFieldManagerToolCfg(flags, name='Q4VKickBFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:298
G4GeometryToolConfig.ALFAGeoDetectorToolCfg
def ALFAGeoDetectorToolCfg(flags, name='ALFA', **kwargs)
Definition: G4GeometryToolConfig.py:176
G4PhysicsRegionConfig.FCALPhysicsRegionToolCfg
def FCALPhysicsRegionToolCfg(flags, name='FCALPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:231
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
G4GeometryToolConfig.SCTGeoDetectorToolCfg
def SCTGeoDetectorToolCfg(flags, name='SCT', **kwargs)
Definition: G4GeometryToolConfig.py:64
BeamPipeGMConfig.BeamPipeGeometryCfg
def BeamPipeGeometryCfg(flags)
Definition: BeamPipeGMConfig.py:5
G4GeometryToolConfig.HGTDServiceToolCfg
def HGTDServiceToolCfg(flags, name='HGTDServices', **kwargs)
Definition: G4GeometryToolConfig.py:122
G4GeometryToolConfig.HGTDGeoDetectorToolCfg
def HGTDGeoDetectorToolCfg(flags, name='HGTD', **kwargs)
Definition: G4GeometryToolConfig.py:109
python.InDetServMatGeoModelConfig.InDetServiceMaterialCfg
def InDetServiceMaterialCfg(flags)
Definition: InDetServMatGeoModelConfig.py:8
G4GeometryToolConfig.ZDCGeoDetectorToolCfg
def ZDCGeoDetectorToolCfg(flags, name='ZDC', **kwargs)
Definition: G4GeometryToolConfig.py:185
G4FieldConfig.Q4FwdFieldManagerToolCfg
def Q4FwdFieldManagerToolCfg(flags, name='Q4FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:178
G4PhysicsRegionConfig.DriftWall2PhysicsRegionToolCfg
def DriftWall2PhysicsRegionToolCfg(flags, name='DriftWall2PhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:337
G4GeometryToolConfig.CavernWorldCfg
def CavernWorldCfg(flags, name="Cavern", **kwargs)
Definition: G4GeometryToolConfig.py:746
G4PhysicsRegionConfig.FCALParaPhysicsRegionToolCfg
def FCALParaPhysicsRegionToolCfg(flags, name='FCALParaPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:255
G4FieldConfig.Q7FwdFieldManagerToolCfg
def Q7FwdFieldManagerToolCfg(flags, name='Q7FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:208
python.ForDetGeoModelConfig.ForDetGeometryCfg
def ForDetGeometryCfg(flags)
Definition: ForDetGeoModelConfig.py:33
G4FieldConfig.D1FwdFieldManagerToolCfg
def D1FwdFieldManagerToolCfg(flags, name='D1FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:156
BoxEnvelope
Definition: BoxEnvelope.h:22
G4GeometryToolConfig.G4GeometryNotifierSvcCfg
def G4GeometryNotifierSvcCfg(flags, name="G4GeometryNotifierSvc", **kwargs)
Definition: G4GeometryToolConfig.py:28
G4GeometryToolConfig.ATLAS_FieldMgrListCfg
def ATLAS_FieldMgrListCfg(flags)
Definition: G4GeometryToolConfig.py:627
G4PhysicsRegionConfig.HGTDPhysicsRegionToolCfg
def HGTDPhysicsRegionToolCfg(flags, name='HGTDPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:134
G4GeometryToolConfig.LArMgrGeoDetectorToolCfg
def LArMgrGeoDetectorToolCfg(flags, name='LArMgr', **kwargs)
Definition: G4GeometryToolConfig.py:149
G4PhysicsRegionConfig.SX1PhysicsRegionToolCfg
def SX1PhysicsRegionToolCfg(flags, name='SX1PhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:373
G4GeometryToolConfig.PLRGeoDetectorToolCfg
def PLRGeoDetectorToolCfg(flags, name='PLR', **kwargs)
Definition: G4GeometryToolConfig.py:73
G4GeometryToolConfig.IDETEnvelopeCfg
def IDETEnvelopeCfg(flags, name="IDET", **kwargs)
Definition: G4GeometryToolConfig.py:262
G4FieldConfig.ATLASFieldManagerToolCfg
def ATLASFieldManagerToolCfg(flags, name='ATLASFieldManager', **kwargs)
Definition: G4FieldConfig.py:21
G4PhysicsRegionConfig.ITkStripPhysicsRegionToolCfg
def ITkStripPhysicsRegionToolCfg(flags, name='ITkStripPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:120
G4FieldConfig.Q5HKickFwdFieldManagerToolCfg
def Q5HKickFwdFieldManagerToolCfg(flags, name='Q5HKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:308
G4PhysicsRegionConfig.SCTPhysicsRegionToolCfg
def SCTPhysicsRegionToolCfg(flags, name='SCTPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:95
G4PhysicsRegionConfig.FWDBeamLinePhysicsRegionToolCfg
def FWDBeamLinePhysicsRegionToolCfg(flags, name='FWDBeamLinePhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:53
G4FieldConfig.Q1VKickFwdFieldManagerToolCfg
def Q1VKickFwdFieldManagerToolCfg(flags, name='Q1VKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:228
G4GeometryToolConfig.generateSubDetectorList
def generateSubDetectorList(flags)
Definition: G4GeometryToolConfig.py:374
G4GeometryToolConfig.CavernInfraGeoDetectorToolCfg
def CavernInfraGeoDetectorToolCfg(flags, name='CavernInfra', **kwargs)
Definition: G4GeometryToolConfig.py:738
CylindricalEnvelope
Definition: CylindricalEnvelope.h:22
VoxelDensityTool
Definition: VoxelDensityTool.h:21
G4PhysicsRegionConfig.DeadMaterialPhysicsRegionToolCfg
def DeadMaterialPhysicsRegionToolCfg(flags, name='DeadMaterialPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:282
G4FieldConfig.Q6VKickFwdFieldManagerToolCfg
def Q6VKickFwdFieldManagerToolCfg(flags, name='Q6VKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:318
ITkPixelGeoModelConfig.ITkPixelSimulationGeometryCfg
def ITkPixelSimulationGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:32
PixelGeoModelConfig.PixelSimulationGeometryCfg
def PixelSimulationGeometryCfg(flags)
Definition: PixelGeoModelConfig.py:44
G4PhysicsRegionConfig.ITkPixelPhysicsRegionToolCfg
def ITkPixelPhysicsRegionToolCfg(flags, name='ITkPixelPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:106
G4PhysicsRegionConfig.PreSampLArPhysicsRegionToolCfg
def PreSampLArPhysicsRegionToolCfg(flags, name='PreSampLArPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:275
G4GeometryToolConfig.TRTGeoDetectorToolCfg
def TRTGeoDetectorToolCfg(flags, name='TRT', **kwargs)
Definition: G4GeometryToolConfig.py:131
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
G4PhysicsRegionConfig.CavernShaftsConcretePhysicsRegionToolCfg
def CavernShaftsConcretePhysicsRegionToolCfg(flags, name='CavernShaftsConcretePhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:393
G4AtlasToolsConfig.G4CaloTransportToolCfg
def G4CaloTransportToolCfg(flags, name='G4CaloTransportTool', **kwargs)
Definition: G4AtlasToolsConfig.py:68
Geo2G4Config.Geo2G4SvcCfg
def Geo2G4SvcCfg(flags, **kwargs)
Definition: Geo2G4Config.py:6
G4FieldConfig.InDetFieldManagerToolCfg
def InDetFieldManagerToolCfg(flags, name='InDetFieldManager', **kwargs)
Definition: G4FieldConfig.py:71
G4FieldConfig.Q2FwdFieldManagerToolCfg
def Q2FwdFieldManagerToolCfg(flags, name='Q2FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:136
G4FieldConfig.Q4VKickAFwdFieldManagerToolCfg
def Q4VKickAFwdFieldManagerToolCfg(flags, name='Q4VKickAFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:278
G4PhysicsRegionConfig.EMECPhysicsRegionToolCfg
def EMECPhysicsRegionToolCfg(flags, name='EMECPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:205
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
G4PhysicsRegionConfig.BedrockPhysicsRegionToolCfg
def BedrockPhysicsRegionToolCfg(flags, name='BedrockPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:383
G4FieldConfig.Q1HKickFwdFieldManagerToolCfg
def Q1HKickFwdFieldManagerToolCfg(flags, name='Q1HKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:218
G4FieldConfig.Q5FwdFieldManagerToolCfg
def Q5FwdFieldManagerToolCfg(flags, name='Q5FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:188
G4GeometryToolConfig.IDetServicesMatGeoDetectorToolCfg
def IDetServicesMatGeoDetectorToolCfg(flags, name='IDetServicesMat', **kwargs)
Definition: G4GeometryToolConfig.py:140
G4GeometryToolConfig.VoxelDensityToolCfg
def VoxelDensityToolCfg(flags, name="VoxelDensityTool", **kwargs)
Definition: G4GeometryToolConfig.py:493
G4GeometryToolConfig.CosmicShortCutCfg
def CosmicShortCutCfg(flags, name="CosmicShortCut", **kwargs)
Definition: G4GeometryToolConfig.py:363
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
G4FieldConfig.Q6FwdFieldManagerToolCfg
def Q6FwdFieldManagerToolCfg(flags, name='Q6FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:198
G4GeometryToolConfig.GeometryConfigurationToolsCfg
def GeometryConfigurationToolsCfg(flags)
Definition: G4GeometryToolConfig.py:690
G4FieldConfig.Q3HKickFwdFieldManagerToolCfg
def Q3HKickFwdFieldManagerToolCfg(flags, name='Q3HKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:258
G4PhysicsRegionConfig.BeampipeFwdCutPhysicsRegionToolCfg
def BeampipeFwdCutPhysicsRegionToolCfg(flags, name='BeampipeFwdCutPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:18
G4PhysicsRegionConfig.PixelPhysicsRegionToolCfg
def PixelPhysicsRegionToolCfg(flags, name='PixelPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:78
G4FieldConfig.BeamPipeFieldManagerToolCfg
def BeamPipeFieldManagerToolCfg(flags, name='BeamPipeFieldManager', **kwargs)
Definition: G4FieldConfig.py:61
G4FieldConfig.Q3VKickFwdFieldManagerToolCfg
def Q3VKickFwdFieldManagerToolCfg(flags, name='Q3VKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:268
G4GeometryToolConfig.TB_RegionCreatorListCfg
def TB_RegionCreatorListCfg(flags)
Definition: G4GeometryToolConfig.py:600
G4FieldConfig.Q1FwdFieldManagerToolCfg
def Q1FwdFieldManagerToolCfg(flags, name='Q1FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:126
BCMPrimeGeoModelConfig.BCMPrimeGeometryCfg
def BCMPrimeGeometryCfg(flags)
Definition: BCMPrimeGeoModelConfig.py:6
G4TestBeamGeometryConfig.TileTB_WorldEnvelopeCfg
def TileTB_WorldEnvelopeCfg(flags, name="TileTB_World", **kwargs)
Definition: G4TestBeamGeometryConfig.py:169
G4FieldConfig.Q4HKickFwdFieldManagerToolCfg
def Q4HKickFwdFieldManagerToolCfg(flags, name='Q4HKickFwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:288
SCT_GeoModelConfig.SCT_SimulationGeometryCfg
def SCT_SimulationGeometryCfg(flags)
Definition: SCT_GeoModelConfig.py:43
python.CavernGMConfig.CavernGeometryCfg
def CavernGeometryCfg(flags)
Definition: CavernGMConfig.py:6
G4GeometryToolConfig.FwdRegionGeoDetectorToolCfg
def FwdRegionGeoDetectorToolCfg(flags, name='FwdRegion', **kwargs)
Definition: G4GeometryToolConfig.py:204
G4GeometryToolConfig.ATLAS_RegionCreatorListCfg
def ATLAS_RegionCreatorListCfg(flags)
Definition: G4GeometryToolConfig.py:510
G4PhysicsRegionConfig.DriftWallPhysicsRegionToolCfg
def DriftWallPhysicsRegionToolCfg(flags, name='DriftWallPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:319
G4GeometryToolConfig.LucidGeoDetectorToolCfg
def LucidGeoDetectorToolCfg(flags, name='Lucid', **kwargs)
Definition: G4GeometryToolConfig.py:167
G4GeometryToolConfig.BCMPrimeGeoDetectorToolCfg
def BCMPrimeGeoDetectorToolCfg(flags, name='BCMPrime', **kwargs)
Definition: G4GeometryToolConfig.py:82
python.MuonGeometryConfig.MuonGeoModelCfg
def MuonGeoModelCfg(flags)
Definition: MuonGeometryConfig.py:28
G4FieldConfig.MuonsOnlyInCaloFieldManagerToolCfg
def MuonsOnlyInCaloFieldManagerToolCfg(flags, name='MuonsOnlyInCaloFieldManager', **kwargs)
Definition: G4FieldConfig.py:91
G4PhysicsRegionConfig.TRTPhysicsRegionToolCfg
def TRTPhysicsRegionToolCfg(flags, name='TRTPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:152
G4FieldConfig.D2FwdFieldManagerToolCfg
def D2FwdFieldManagerToolCfg(flags, name='D2FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:168
G4GeometryToolConfig.ForwardRegionEnvelopeCfg
def ForwardRegionEnvelopeCfg(flags, name='ForwardRegion', **kwargs)
Definition: G4GeometryToolConfig.py:317
G4PhysicsRegionConfig.DriftWall1PhysicsRegionToolCfg
def DriftWall1PhysicsRegionToolCfg(flags, name='DriftWall1PhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:328
G4GeometryToolConfig.ITkStripGeoDetectorToolCfg
def ITkStripGeoDetectorToolCfg(flags, name='ITkStrip', **kwargs)
Definition: G4GeometryToolConfig.py:100
HGTDServiceGeoModelConfig.HGTDServiceGeoModelCfg
def HGTDServiceGeoModelCfg(flags)
Definition: HGTDServiceGeoModelConfig.py:3
TRT_GeoModelConfig.TRT_SimulationGeometryCfg
def TRT_SimulationGeometryCfg(flags)
Definition: TRT_GeoModelConfig.py:51
str
Definition: BTagTrackIpAccessor.cxx:11
G4GeometryToolConfig.ATLASEnvelopeCfg
def ATLASEnvelopeCfg(flags, name="Atlas", **kwargs)
Definition: G4GeometryToolConfig.py:411
G4GeometryToolConfig.G4AtlasDetectorConstructionToolCfg
def G4AtlasDetectorConstructionToolCfg(flags, name="G4AtlasDetectorConstructionTool", **kwargs)
Definition: G4GeometryToolConfig.py:702
G4GeometryToolConfig.PixelGeoDetectorToolCfg
def PixelGeoDetectorToolCfg(flags, name='Pixel', **kwargs)
Definition: G4GeometryToolConfig.py:55
G4FieldConfig.MuonFieldManagerToolCfg
def MuonFieldManagerToolCfg(flags, name='MuonFieldManager', **kwargs)
Definition: G4FieldConfig.py:101
G4FieldConfig.Q3FwdFieldManagerToolCfg
def Q3FwdFieldManagerToolCfg(flags, name='Q3FwdFieldManager', **kwargs)
Definition: G4FieldConfig.py:146
G4PhysicsRegionConfig.CALOPhysicsRegionToolCfg
def CALOPhysicsRegionToolCfg(flags, name='CALOPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:185
G4GeometryToolConfig.CALOEnvelopeCfg
def CALOEnvelopeCfg(flags, name="CALO", **kwargs)
Definition: G4GeometryToolConfig.py:290
G4PhysicsRegionConfig.EMBPhysicsRegionToolCfg
def EMBPhysicsRegionToolCfg(flags, name='EMBPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:192
PolyconicalEnvelope
Definition: PolyconicalEnvelope.h:19
G4PhysicsRegionConfig.HECPhysicsRegionToolCfg
def HECPhysicsRegionToolCfg(flags, name='HECPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:218
G4GeometryToolConfig.AFPGeoDetectorToolCfg
def AFPGeoDetectorToolCfg(flags, name='AFP', **kwargs)
Definition: G4GeometryToolConfig.py:194
G4FieldConfig.FwdRegionFieldManagerToolCfg
def FwdRegionFieldManagerToolCfg(flags, name='FwdRegionFieldManager', **kwargs)
Definition: G4FieldConfig.py:328
ITkStripGeoModelConfig.ITkStripSimulationGeometryCfg
def ITkStripSimulationGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:32
HGTD_GeoModelConfig.HGTD_SimulationGeometryCfg
def HGTD_SimulationGeometryCfg(flags)
Definition: python/HGTD_GeoModelConfig.py:17
G4PhysicsRegionConfig.EMECParaPhysicsRegionToolCfg
def EMECParaPhysicsRegionToolCfg(flags, name='EMECParaPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:241
G4AtlasToolsConfig.SensitiveDetectorMasterToolCfg
def SensitiveDetectorMasterToolCfg(flags, name="SensitiveDetectorMasterTool", **kwargs)
Definition: G4AtlasToolsConfig.py:372
G4AtlasDetectorConstructionTool
Definition: G4AtlasDetectorConstructionTool.h:33
G4GeometryToolConfig.ITKEnvelopeCfg
def ITKEnvelopeCfg(flags, name="ITK", **kwargs)
Definition: G4GeometryToolConfig.py:227
G4PhysicsRegionConfig.FCAL2ParaPhysicsRegionToolCfg
def FCAL2ParaPhysicsRegionToolCfg(flags, name='FCAL2ParaPhysicsRegionTool', **kwargs)
Definition: G4PhysicsRegionConfig.py:265
G4GeometryToolConfig.GeoDetectorToolCfg
def GeoDetectorToolCfg(flags, name='GeoDetectorTool', **kwargs)
Definition: G4GeometryToolConfig.py:36
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7
G4FieldConfig.ITkFieldManagerToolCfg
def ITkFieldManagerToolCfg(flags, name='ITkFieldManager', **kwargs)
Definition: G4FieldConfig.py:81