99def MuonAlignStoreCfg(flags):
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
105
106 from MuonG4TrfCache.MuonTrfCacheConfig import MuonTransformCacheCfg
107 result.merge(MuonTransformCacheCfg(flags))
108
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))
156
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))
169
170
171 return result
172