54 result = ComponentAccumulator()
56 if flags.Detector.GeometryMDT:
59 if flags.Detector.GeometryRPC:
62 if flags.Detector.GeometryTGC:
65 if flags.Detector.GeometrysTGC:
68 if flags.Detector.GeometryMM:
71 from AthenaConfiguration.Enums
import ProductionStep
72 if flags.Common.ProductionStep
is not ProductionStep.Simulation:
75 kwargs.setdefault(
"ReadoutEleBuilders", sub_detTools)
76 the_tool = CompFactory.MuonGMR4.MuonDetectorTool(name = name, **kwargs)
77 result.setPrivateTools(the_tool)
100 result = ComponentAccumulator()
101 if not flags.Muon.usePhaseIIGeoSetup:
103 from AthenaConfiguration.Enums
import ProductionStep
104 if flags.Common.ProductionStep == ProductionStep.Simulation:
105 from MuonG4TrfCache.MuonTrfCacheConfig
import MuonTransformCacheCfg
106 result.merge(MuonTransformCacheCfg(flags))
109 from MuonCondAlgR4.ConditionsConfig
import MuonGeoAlignCondAlgCfg
110 result.merge(MuonGeoAlignCondAlgCfg(flags))
111 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsAlignStoreProviderAlgCfg
115 setCondDep = flags.Muon.enableAlignment
or flags.Sim.ReleaseGeoModel
116 from MuonConfig.MuonConfigFlags
import GeoTrfCacheMode
117 from ROOT.ActsTrk
import DetectorType
118 if flags.Detector.GeometryMDT:
119 result.merge(ActsAlignStoreProviderAlgCfg(flags,
120 name=
"MuonAlignStoreProviderMdt",
121 CondAlignStore=
"MdtActsAlignContainer" if setCondDep
else "",
122 EventAlignStore=
"MdtActsAlignContainer",
123 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
124 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
125 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
126 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
127 FillAlignCache =
False,
128 DetectorType=DetectorType.Mdt))
129 if flags.Detector.GeometryRPC:
130 result.merge(ActsAlignStoreProviderAlgCfg(flags,
131 name=
"MuonAlignStoreProviderRpc",
132 CondAlignStore=
"RpcActsAlignContainer" if setCondDep
else "",
133 EventAlignStore=
"RpcActsAlignContainer",
134 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
135 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
136 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
137 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
138 FillAlignCache =
False,
139 DetectorType=DetectorType.Rpc))
140 if flags.Detector.GeometryTGC:
141 result.merge(ActsAlignStoreProviderAlgCfg(flags,
142 name=
"MuonAlignStoreProviderTgc",
143 CondAlignStore=
"TgcActsAlignContainer" if setCondDep
else "",
144 EventAlignStore=
"TgcActsAlignContainer",
145 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
146 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
147 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
148 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
149 FillAlignCache =
False,
150 DetectorType=DetectorType.Tgc))
151 if flags.Detector.GeometrysTGC:
152 result.merge(ActsAlignStoreProviderAlgCfg(flags,
153 name=
"MuonAlignStoreProviderSTGC",
154 CondAlignStore=
"sTgcActsAlignContainer" if setCondDep
else "",
155 EventAlignStore=
"sTgcActsAlignContainer",
156 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
157 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
158 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
159 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
160 FillAlignCache =
False,
161 DetectorType=DetectorType.sTgc))
163 if flags.Detector.GeometryMM:
164 result.merge(ActsAlignStoreProviderAlgCfg(flags,
165 name=
"MuonAlignStoreProviderMM",
166 CondAlignStore=
"MmActsAlignContainer" if setCondDep
or \
167 flags.Muon.applyMMPassivation
else "",
168 EventAlignStore=
"MmActsAlignContainer",
169 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
170 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
171 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
172 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
173 FillAlignCache =
False,
174 DetectorType=DetectorType.Mm))