11 result = ComponentAccumulator()
12 trackingVolSvc = CompFactory.Trk.TrackingVolumesSvc(name=name, **kwargs)
13 result.addService(trackingVolSvc, primary=
True)
16 acc = ComponentAccumulator()
17 acc.merge(GeoModelCfg(flags))
18 acc.addService( CompFactory.Muon.MuonIdHelperSvc(
"MuonIdHelperSvc",
19 HasCSC=flags.Detector.GeometryCSC,
20 HasSTGC=flags.Detector.GeometrysTGC,
21 HasMM=flags.Detector.GeometryMM,
22 HasMDT=flags.Detector.GeometryMDT,
23 HasRPC=flags.Detector.GeometryRPC,
24 HasTGC=flags.Detector.GeometryTGC), primary=
True )
29 result = ComponentAccumulator()
31 if flags.Muon.usePhaseIIGeoSetup:
32 from MuonGeoModelR4.MuonGeoModelConfig
import MuonGeoModelCfg
as MuonGeoModelCfgR4
33 result.merge(MuonGeoModelCfgR4(flags))
34 from MuonGeoModelR4.MuonGeoModelConfig
import MuonAlignStoreCfg
35 result.merge(MuonAlignStoreCfg(flags))
36 if flags.Common.ProductionStep != ProductionStep.Simulation:
37 from MuonGeometryCnv.MuonReadoutGeomCnvCfg
import MuonReadoutGeometryCnvAlgCfg
42 result.merge(MuonReadoutGeometryCnvAlgCfg(flags, OutputLevel=ERROR))
51 acc = ComponentAccumulator()
52 kwargs.setdefault(
"HasCSC", flags.Detector.GeometryCSC)
53 kwargs.setdefault(
"HasSTgc", flags.Detector.GeometrysTGC)
54 kwargs.setdefault(
"HasMM", flags.Detector.GeometryMM)
56 kwargs.setdefault(
"UseConditionDb", flags.Muon.enableAlignment)
57 kwargs.setdefault(
"UseAsciiConditionData", flags.Muon.enableAlignment)
59 UseIlinesFromGM =
False
60 EnableCscInternalAlignment =
False
62 if flags.Muon.enableAlignment:
63 if not flags.Input.isMC:
64 kwargs.setdefault(
"BEENoShift",
True)
66 if flags.Muon.Align.UseILines
and flags.Detector.GeometryCSC:
67 if 'HLT' in flags.IOVDb.GlobalTag:
69 UseIlinesFromGM =
True
70 EnableCscInternalAlignment =
False
73 if (flags.Common.isOnline
and not flags.Input.isMC):
74 EnableCscInternalAlignment =
True
76 UseIlinesFromGM =
False
77 EnableCscInternalAlignment =
True
79 kwargs.setdefault(
"UseIlinesFromGM", UseIlinesFromGM)
80 kwargs.setdefault(
"EnableCscInternalAlignment", EnableCscInternalAlignment)
82 if not flags.GeoModel.SQLiteDB:
84 AGDD2Geo = CompFactory.AGDDtoGeoSvc()
85 muonAGDDTool = CompFactory.MuonAGDDTool(
"MuonSpectrometer", BuildNSW=
False)
86 AGDD2Geo.Builders += [ muonAGDDTool ]
87 if (flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM):
88 nswAGDDTool = CompFactory.NSWAGDDTool(
"NewSmallWheel", Locked=
False)
89 nswAGDDTool.Volumes = [
"NewSmallWheel"]
90 nswAGDDTool.DefaultDetector =
"Muon"
91 AGDD2Geo.Builders += [ nswAGDDTool ]
94 acc.addService(AGDD2Geo, create=
True)
99 detTool = CompFactory.MuonDetectorTool(name, **kwargs)
100 acc.setPrivateTools(detTool)
105 acc = ComponentAccumulator()
110 if flags.Muon.Align.UseAsBuilt:
113 if(flags.Muon.Align.UsesTGCAsBuilt):
116 if not flags.Muon.Align.UseALines
and not flags.Muon.Align.UseBLines:
118 from IOVDbSvc.IOVDbSvcConfig
import addFolders
120 onl =
"/Onl" if ((flags.Common.isOnline
or flags.IOVDb.GlobalTag.startswith(
"CONDBR2-HLTP"))
and not flags.Input.isMC)
else ""
121 ParlineFolders = [f
"/MUONALIGN{onl}/MDT/BARREL",
122 f
"/MUONALIGN{onl}/MDT/ENDCAP/SIDEA",
123 f
"/MUONALIGN{onl}/MDT/ENDCAP/SIDEC",
124 f
"/MUONALIGN{onl}/TGC/SIDEA",
125 f
"/MUONALIGN{onl}/TGC/SIDEC"]
126 acc.merge(addFolders( flags, ParlineFolders,
'MUONALIGN' if len(onl)
else 'MUONALIGN_OFL', className=
'CondAttrListCollection'))
129 ParlineFolders = [ x[ :x.find(onl)] + x[x.find(onl) + len(onl): ]
for x
in ParlineFolders]
131 kwargs.setdefault(
"LoadALines", flags.Muon.Align.UseALines)
132 kwargs.setdefault(
"LoadBLines", flags.Muon.Align.UseBLines)
134 kwargs.setdefault(
"ParlineFolders", ParlineFolders)
135 MuonAlign = CompFactory.Muon.AlignmentCondAlg(name, **kwargs)
136 acc.addCondAlgo(MuonAlign, primary =
True)
148 result = ComponentAccumulator()
150 if flags.GeoModel.Run < LHCPeriod.Run3:
152 kwargs.setdefault(
"MicroMegaJSON",
"")
154 kwargs.setdefault(
"ReadMmAsBuiltParamsKey",
"/MUONALIGN/ASBUILTPARAMS/MM")
157 from IOVDbSvc.IOVDbSvcConfig
import addFolders
158 if(
not (kwargs[
"MicroMegaJSON"]
or not kwargs[
"ReadMmAsBuiltParamsKey"]) ) :
159 result.merge(addFolders( flags, kwargs[
"ReadMmAsBuiltParamsKey"] ,
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
160 the_alg = CompFactory.Muon.NswAsBuiltCondAlg(name, **kwargs)
161 result.addCondAlgo(the_alg, primary =
True)
165 result = ComponentAccumulator()
167 if flags.GeoModel.Run < LHCPeriod.Run3
or not flags.Muon.Align.UsesTGCAsBuilt:
169 kwargs.setdefault(
"readFromJSON",
"")
170 if not kwargs[
"readFromJSON"]:
171 kwargs.setdefault(
"ReadKey",
"/MUONALIGN/ASBUILTPARAMS/STGC")
172 from IOVDbSvc.IOVDbSvcConfig
import addFolders
173 result.merge(addFolders( flags, kwargs[
"ReadKey"],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
174 the_alg = CompFactory.Muon.sTGCAsBuiltCondAlg(name,**kwargs)
175 result.addCondAlgo(the_alg, primary=
True)
181 name =
"MmAsBuilt2CondAlg"
182 if flags.GeoModel.Run != LHCPeriod.Run3:
184 kwargs.setdefault(
"readFromJSON",
"")
185 kwargs.setdefault(
"WriteKey",
"MmAsBuilt2")
186 the_alg = CompFactory.Muon.sTGCAsBuiltCondAlg(name,**kwargs)
187 cfg.addCondAlgo(the_alg, primary=
True)
189 cfg.getCondAlgo(
"MuonDetectorCondAlg").applyMmAsBuilt2=
True
190 cfg.getCondAlgo(
"MuonDetectorCondAlg").ReadMmAsBuilt2Key = kwargs[
"WriteKey"]
196 result = ComponentAccumulator()
197 if not flags.Detector.GeometryMDT:
199 from IOVDbSvc.IOVDbSvcConfig
import addFolders
200 if "readFromJSON" not in kwargs
or not kwargs[
"readFromJSON"]:
201 result.merge(addFolders( flags,
'/MUONALIGN/MDT/ASBUILTPARAMS' ,
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
202 the_alg = CompFactory.Muon.MdtAsBuiltCondAlg(name = name, **kwargs)
203 result.addCondAlgo(the_alg, primary =
True)
207 result = ComponentAccumulator()
208 if not flags.Muon.Align.UseILines:
210 from IOVDbSvc.IOVDbSvcConfig
import addFolders
211 if (flags.Common.isOnline
and not flags.Input.isMC):
212 result.merge(addFolders( flags, [
'/MUONALIGN/Onl/CSC/ILINES'],
'MUONALIGN', className=
'CondAttrListCollection'))
214 result.merge(addFolders( flags, [
'/MUONALIGN/CSC/ILINES'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
216 the_alg = CompFactory.Muon.CscILinesCondAlg(name, **kwargs)
217 result.addCondAlgo(the_alg, primary =
True)
223 result = ComponentAccumulator()
226 kwargs.setdefault(
"applyMmPassivation", flags.Muon.applyMMPassivation)
228 if kwargs[
"applyMmPassivation"]:
229 from MuonConfig.MuonCondAlgConfig
import NswPassivationDbAlgCfg
230 result.merge(NswPassivationDbAlgCfg(flags))
231 if flags.Muon.enableAlignment:
233 kwargs.setdefault(
"applyALines", flags.Muon.Align.UseALines)
234 kwargs.setdefault(
"applyBLines", flags.Muon.Align.UseBLines)
235 kwargs.setdefault(
"applyILines", flags.Muon.Align.UseILines)
236 kwargs.setdefault(
"applyNswAsBuilt", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"NswAsBuiltCondAlg"])>0)
237 kwargs.setdefault(
"applysTGCAsBuilt", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"sTGCAsBuiltCondAlg"])>0)
238 kwargs.setdefault(
"applyMdtAsBuilt", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"MdtAsBuiltCondAlg"])>0)
242 MuonDetectorManagerCond = CompFactory.MuonDetectorCondAlg(name, **kwargs)
244 result.addCondAlgo(MuonDetectorManagerCond, primary =
True)
255 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
256 from AthenaConfiguration.ComponentFactory
import CompFactory
257 from MuonConfig.MuonCablingConfig
import RPCCablingConfigCfg, MDTCablingConfigCfg, TGCCablingConfigCfg
258 from MuonConfig.MuonCondAlgConfig
import MdtCondDbAlgCfg
259 result = ComponentAccumulator()
260 kwargs.setdefault(
"name", f
"RegSelCondAlg_{detector}")
261 kwargs.setdefault(
"RegSelLUT", f
"RegSelLUTCondData_{detector}")
262 kwargs.setdefault(
"PrintTable", flags.hasFlag(
"PrintLUT")
and flags.PrintLUT)
265 result.merge(RPCCablingConfigCfg(flags))
266 result.merge(MDTCablingConfigCfg(flags))
267 result.merge(TGCCablingConfigCfg(flags))
270 result.merge(MdtCondDbAlgCfg(flags))
273 if (flags.Muon.usePhaseIIGeoSetup
and flags.Trigger.Muon.useNewRegionSelector ):
274 if not flags.Detector.GeometryMDT:
275 kwargs.setdefault(
"MdtCablingKey",
"")
276 if not flags.Detector.GeometryRPC:
277 kwargs.setdefault(
"RpcCablingKey",
"")
278 if not flags.Detector.GeometryTGC:
279 kwargs.setdefault(
"TgcCablingKey",
"")
281 if detector ==
"MDT": alignDet =
"Mdt"
282 elif detector ==
"RPC": alignDet =
"Rpc"
283 elif detector ==
"TGC": alignDet =
"Tgc"
284 elif detector ==
"sTGC": alignDet =
"sTgc"
285 elif detector ==
"MM": alignDet =
"Mm"
287 kwargs.setdefault(
"AlignKey", f
"{alignDet}ActsAlignContainer")
288 from MuonConfig.MuonConfigFlags
import GeoTrfCacheMode
289 kwargs.setdefault(
"splitTrfCache", flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SplitCache
or
290 flags.Muon.AlignedGeoTrfCacheMode == GeoTrfCacheMode.SlopyCache)
291 the_alg = CompFactory.MuonR4.RegionSelectorCondAlg(**kwargs)
293 elif detector ==
"MDT":
294 if not flags.Muon.useMdtDcsData:
295 kwargs.setdefault(
"Conditions",
"")
296 the_alg = CompFactory.MDT_RegSelCondAlg(**kwargs)
297 elif detector ==
"RPC":
298 the_alg = CompFactory.RPC_RegSelCondAlg(**kwargs)
299 elif detector ==
"TGC":
300 the_alg = CompFactory.TGC_RegSelCondAlg(**kwargs)
301 elif detector ==
"sTGC":
302 the_alg = CompFactory.sTGC_RegSelCondAlg(**kwargs)
303 elif detector ==
"MM":
304 the_alg = CompFactory.MM_RegSelCondAlg(**kwargs)
306 raise ValueError(f
"The {detector} is an unknown detector flag")
307 result.addCondAlgo(the_alg, primary =
True)