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:
return result
102 from MuonCondAlgR4.ConditionsConfig
import MuonGeoAlignCondAlgCfg
103 result.merge(MuonGeoAlignCondAlgCfg(flags))
104 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsAlignStoreProviderAlgCfg
106 from MuonG4TrfCache.MuonTrfCacheConfig
import MuonTransformCacheCfg
107 result.merge(MuonTransformCacheCfg(flags))
109 setCondDep = flags.Muon.enableAlignment
or flags.Sim.ReleaseGeoModel
110 from MuonConfig.MuonConfigFlags
import GeoTrfCacheMode
111 from ROOT.ActsTrk
import DetectorType
112 if flags.Detector.GeometryMDT:
113 result.merge(ActsAlignStoreProviderAlgCfg(flags,
114 name=
"MuonAlignStoreProviderMdt",
115 CondAlignStore=
"MdtActsAlignContainer" if setCondDep
else "",
116 EventAlignStore=
"MdtActsAlignContainer",
117 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
118 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
119 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
120 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
121 FillAlignCache =
False,
122 DetectorType=DetectorType.Mdt))
123 if flags.Detector.GeometryRPC:
124 result.merge(ActsAlignStoreProviderAlgCfg(flags,
125 name=
"MuonAlignStoreProviderRpc",
126 CondAlignStore=
"RpcActsAlignContainer" if setCondDep
else "",
127 EventAlignStore=
"RpcActsAlignContainer",
128 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
129 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
130 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
131 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
132 FillAlignCache =
False,
133 DetectorType=DetectorType.Rpc))
134 if flags.Detector.GeometryTGC:
135 result.merge(ActsAlignStoreProviderAlgCfg(flags,
136 name=
"MuonAlignStoreProviderTgc",
137 CondAlignStore=
"TgcActsAlignContainer" if setCondDep
else "",
138 EventAlignStore=
"TgcActsAlignContainer",
139 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
140 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
141 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
142 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
143 FillAlignCache =
False,
144 DetectorType=DetectorType.Tgc))
145 if flags.Detector.GeometrysTGC:
146 result.merge(ActsAlignStoreProviderAlgCfg(flags,
147 name=
"MuonAlignStoreProviderSTGC",
148 CondAlignStore=
"sTgcActsAlignContainer" if setCondDep
else "",
149 EventAlignStore=
"sTgcActsAlignContainer",
150 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
151 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
152 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
153 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
154 FillAlignCache =
False,
155 DetectorType=DetectorType.sTgc))
157 if flags.Detector.GeometryMM:
158 result.merge(ActsAlignStoreProviderAlgCfg(flags,
159 name=
"MuonAlignStoreProviderMM",
160 CondAlignStore=
"MmActsAlignContainer" if setCondDep
or \
161 flags.Muon.applyMMPassivation
else "",
162 EventAlignStore=
"MmActsAlignContainer",
163 SplitPhysVolCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
164 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache,
165 SplitActsTrfCache = flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
166 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.ActsSplitALineCond,
167 FillAlignCache =
False,
168 DetectorType=DetectorType.Mm))