ATLAS Offline Software
Loading...
Searching...
No Matches
MuonTrackingGeometryConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2# Configuration of MuonTrackingGeometry packages
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6
7def MuonStationTypeBuilderCfg(flags, name='MuonStationTypeBuilder', **kwargs):
8 result = ComponentAccumulator()
9 result.setPrivateTools(
10 CompFactory.Muon.MuonStationTypeBuilder(name, **kwargs))
11 return result
12
13def MuonStationBuilderCfg(flags, name='MuonStationBuilder', useCond=True, **kwargs):
14 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
15 result = MuonGeoModelCfg(flags)
16
17 if "StationTypeBuilder" not in kwargs:
18 kwargs.setdefault("StationTypeBuilder", result.popToolsAndMerge(
20
21 if useCond:
22 name = name + 'Cond'
23 muonStationBuilder = CompFactory.Muon.MuonStationBuilderCond(name, **kwargs) if useCond else \
24 CompFactory.Muon.MuonStationBuilder(name, **kwargs)
25 result.setPrivateTools(muonStationBuilder)
26 return result
27
28def MuonInertMaterialBuilderCfg(flags, name='MuonInertMaterialBuilder',
29 useCond = True,
30 **kwargs):
31 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
32 result = MuonGeoModelCfg(flags)
33
34 if useCond:
35 name = name + 'Cond'
36 muonInertMaterialBuilder = CompFactory.Muon.MuonInertMaterialBuilderCond(name, **kwargs) if useCond else \
37 CompFactory.Muon.MuonInertMaterialBuilder(name, **kwargs)
38 result.setPrivateTools(muonInertMaterialBuilder)
39 return result
40
41def MuonTrackingGeometryBuilderCfg(flags, name='MuonTrackingGeometryBuilder',
42 useCond = True,
43 **kwargs):
44 from SubDetectorEnvelopes.SubDetectorEnvelopesConfig import EnvelopeDefSvcCfg
45 result = ComponentAccumulator()
46
47 kwargs.setdefault("EnvelopeDefinitionSvc", result.getPrimaryAndMerge(
48 EnvelopeDefSvcCfg(flags)))
49
50 kwargs.setdefault("MuonStationBuilder", result.popToolsAndMerge(
52 name = 'MuonStationBuilder',
53 useCond = useCond)))
54
55 kwargs.setdefault("InertMaterialBuilder", result.popToolsAndMerge(
57 name = 'MuonInertMaterialBuilder',
58 useCond = useCond)))
59
60 kwargs.setdefault("EntryVolumeName", 'MuonSpectrometerEntrance')
61 kwargs.setdefault("ExitVolumeName", 'Muon::Containers::MuonSystem')
62
63 if useCond:
64 name = name + 'Cond'
65 geometryBuilder = CompFactory.Muon.MuonTrackingGeometryBuilderCond(name, **kwargs) if useCond else \
66 CompFactory.Muon.MuonTrackingGeometryBuilder(name, **kwargs)
67 result.setPrivateTools(geometryBuilder)
68 return result
69
70
MuonTrackingGeometryBuilderCfg(flags, name='MuonTrackingGeometryBuilder', useCond=True, **kwargs)
MuonInertMaterialBuilderCfg(flags, name='MuonInertMaterialBuilder', useCond=True, **kwargs)
MuonStationTypeBuilderCfg(flags, name='MuonStationTypeBuilder', **kwargs)
MuonStationBuilderCfg(flags, name='MuonStationBuilder', useCond=True, **kwargs)