3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
5from AthenaConfiguration.Enums
import ProductionStep
9 MdtCsmCache =
"MdtCsmRdoCache"
10 CscCache =
"CscRdoCache"
11 RpcCache =
"RpcRdoCache"
12 TgcCache =
"TgcRdoCache"
21 acc = ComponentAccumulator()
23 MuonCacheCreator=CompFactory.MuonCacheCreator
25 CscCacheKey = (MuonCacheNames.CscCache
if flags.Detector.GeometryCSC
else ""),
26 RpcCacheKey = MuonCacheNames.RpcCache,
27 TgcCacheKey = MuonCacheNames.TgcCache)
29 acc.addEventAlgo( cacheCreator, primary=
True )
36 acc = ComponentAccumulator()
39 from MuonConfig.MuonCablingConfig
import RPCCablingConfigCfg
40 acc.merge( RPCCablingConfigCfg(flags) )
43 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
44 acc.merge(MuonGeoModelCfg(flags))
47 RPCRodDecoder = CompFactory.Muon.RpcROD_Decoder(name =
"RpcROD_Decoder",NOBXS=flags.Trigger.L1MuonSim.RPCNBX)
51 keyName = f
"{flags.Overlay.BkgPrefix}RPCPAD" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "RPCPAD"
52 MuonRpcRawDataProviderTool = CompFactory.Muon.RPC_RawDataProviderTool(name =
"RPC_RawDataProviderTool",
53 Decoder = RPCRodDecoder,
54 RdoLocation = keyName )
55 if flags.Muon.MuonTrigger:
56 MuonRpcRawDataProviderTool.RpcContainerCacheKey = MuonCacheNames.RpcCache
57 MuonRpcRawDataProviderTool.WriteOutRpcSectorLogic =
False
61 RpcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
62 ProviderTool = MuonRpcRawDataProviderTool, **kwargs )
64 if flags.Muon.MuonTrigger:
66 from RegionSelector.RegSelToolConfig
import regSelTool_RPC_Cfg
67 RpcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_RPC_Cfg( flags ) )
70 acc.addEventAlgo(RpcRawDataProvider, primary=
True)
74 acc = ComponentAccumulator()
77 from MuonConfig.MuonCablingConfig
import NRPCCablingConfigCfg
78 acc.merge( NRPCCablingConfigCfg(flags) )
81 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
82 acc.merge(MuonGeoModelCfg(flags))
86 keyName = flags.Overlay.BkgPrefix +
"NRPCRDO" if flags.Common.isOverlay
else "NRPCRDO"
87 MuonNrpcRawDataProviderTool = CompFactory.Muon.NRPC_RawDataProviderTool(name =
"NRPC_RawDataProviderTool",
88 NrpcRdoKey = keyName )
91 NrpcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
92 ProviderTool = MuonNrpcRawDataProviderTool, **kwargs )
94 acc.addEventAlgo(NrpcRawDataProvider, primary=
True)
98 acc = ComponentAccumulator()
101 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
102 acc.merge( TGCCablingConfigCfg(flags) )
105 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
106 acc.merge(MuonGeoModelCfg(flags))
109 Muon__TGC_RodDecoderReadout=CompFactory.Muon.TGC_RodDecoderReadout
110 TGCRodDecoder = Muon__TGC_RodDecoderReadout(name =
"TgcROD_Decoder")
114 keyName = f
"{flags.Overlay.BkgPrefix}TGCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "TGCRDO"
115 MuonTgcRawDataProviderTool = CompFactory.Muon.TGC_RawDataProviderTool(name =
"TGC_RawDataProviderTool",
116 Decoder = TGCRodDecoder,
117 RdoLocation = keyName )
119 if flags.Muon.MuonTrigger:
120 MuonTgcRawDataProviderTool.TgcContainerCacheKey = MuonCacheNames.TgcCache
123 if flags.Muon.MuonTrigger:
124 kwargs.setdefault(
"UseHashIds",
True)
127 TgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
128 ProviderTool = MuonTgcRawDataProviderTool, **kwargs )
129 if flags.Muon.MuonTrigger:
131 from RegionSelector.RegSelToolConfig
import regSelTool_TGC_Cfg
132 TgcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_TGC_Cfg( flags ) )
135 acc.addEventAlgo(TgcRawDataProvider,primary=
True)
140 acc = ComponentAccumulator()
143 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
144 acc.merge( MDTCablingConfigCfg(flags) )
147 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
148 acc.merge( AtlasFieldCacheCondAlgCfg(flags) )
151 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
152 acc.merge(MuonGeoModelCfg(flags))
155 MdtROD_Decoder=CompFactory.MdtROD_Decoder
160 keyName = f
"{flags.Overlay.BkgPrefix}MDTCSM" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "MDTCSM"
161 MuonMdtRawDataProviderTool = CompFactory.Muon.MDT_RawDataProviderTool(name =
"MDT_RawDataProviderTool",
162 Decoder = MDTRodDecoder,
163 RdoLocation = keyName)
165 if flags.Muon.MuonTrigger:
166 MuonMdtRawDataProviderTool.CsmContainerCacheKey = MuonCacheNames.MdtCsmCache
169 MdtRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
170 ProviderTool = MuonMdtRawDataProviderTool, **kwargs )
171 if flags.Muon.MuonTrigger:
173 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
174 MdtRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MDT_Cfg( flags ) )
177 acc.addEventAlgo(MdtRawDataProvider,primary=
True)
182 acc = ComponentAccumulator()
185 from MuonConfig.MuonCablingConfig
import CSCCablingConfigCfg
186 acc.merge( CSCCablingConfigCfg(flags) )
189 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
190 acc.merge(MuonGeoModelCfg(flags))
193 Muon__CscROD_Decoder=CompFactory.Muon.CscROD_Decoder
194 CSCRodDecoder = Muon__CscROD_Decoder(name =
"CscROD_Decoder" )
198 keyName = f
"{flags.Overlay.BkgPrefix}CSCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "CSCRDO"
199 MuonCscRawDataProviderTool = CompFactory.Muon.CSC_RawDataProviderTool(name =
"CSC_RawDataProviderTool",
200 Decoder = CSCRodDecoder,
201 RdoLocation = keyName)
202 if flags.Muon.MuonTrigger:
203 MuonCscRawDataProviderTool.CscContainerCacheKey = MuonCacheNames.CscCache
206 CscRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
207 ProviderTool = MuonCscRawDataProviderTool, **kwargs )
208 if flags.Muon.MuonTrigger:
210 from RegionSelector.RegSelToolConfig
import regSelTool_CSC_Cfg
211 CscRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_CSC_Cfg( flags ) )
214 acc.addEventAlgo(CscRawDataProvider,primary=
True)
220 result = ComponentAccumulator()
222 if False and not flags.Muon.MuonTrigger
and not flags.Input.isMC:
223 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
224 result.merge(NswDcsDbAlgCfg(flags))
226 kwargs.setdefault(
"DcsKey",
"")
229 kwargs.setdefault(
"CablingMap",
"")
232 from MuonConfig.MuonCablingConfig
import sTgcCablingCfg
233 result.merge( sTgcCablingCfg(flags) )
234 kwargs.setdefault(
"CablingMap",
"stgcCablingMap")
238 STGCRodDecoder = CompFactory.Muon.STGC_ROD_Decoder(name = name, **kwargs)
239 result.setPrivateTools(STGCRodDecoder)
244 acc = ComponentAccumulator()
248 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
249 acc.merge(MuonGeoModelCfg(flags))
254 keyName = f
"{flags.Overlay.BkgPrefix}sTGCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "sTGCRDO"
255 MuonsTgcRawDataProviderTool = CompFactory.Muon.STGC_RawDataProviderTool(name =
"sTgcRawDataProviderTool",
257 RdoLocation = keyName,
258 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain )
264 sTgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name,
265 ProviderTool = MuonsTgcRawDataProviderTool, **kwargs )
266 if flags.Muon.MuonTrigger:
268 from RegionSelector.RegSelToolConfig
import regSelTool_STGC_Cfg
269 sTgcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_STGC_Cfg( flags ) )
272 acc.addEventAlgo(sTgcRawDataProvider,primary=
True)
277 result = ComponentAccumulator()
278 the_tool = CompFactory.Muon.NSWTP_ROD_Decoder(name = name, **kwargs)
279 result.setPrivateTools(the_tool)
282 result = ComponentAccumulator()
284 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_TrigProcessor_RDO" )
285 the_tool = CompFactory.Muon.NSWTP_RawDataProviderTool(name = name, **kwargs)
286 result.setPrivateTools(the_tool)
289 result = ComponentAccumulator()
291 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
292 result.merge(MuonGeoModelCfg(flags))
293 the_alg = CompFactory.Muon.MuonRawDataProvider(name = name,
295 result.addEventAlgo(the_alg, primary =
True)
300 acc = ComponentAccumulator()
303 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
304 acc.merge(MuonGeoModelCfg(flags))
307 Muon__PadTrig_ROD_Decoder = CompFactory.Muon.PadTrig_ROD_Decoder
308 STGCPadTriggerRodDecoder = Muon__PadTrig_ROD_Decoder(name =
"sTgcPadTriggerROD_Decoder")
312 keyName = flags.Overlay.BkgPrefix +
"NSW_PadTrigger_RDO" if flags.Common.isOverlay
else "NSW_PadTrigger_RDO"
313 MuonsTgcPadTriggerRawDataProviderTool = CompFactory.Muon.PadTrig_RawDataProviderTool(name =
"sTgcPadTriggerRawDataProviderTool",
314 Decoder = STGCPadTriggerRodDecoder,
315 RdoLocation = keyName)
319 the_alg = CompFactory.Muon.MuonRawDataProvider(name = name,
320 ProviderTool = MuonsTgcPadTriggerRawDataProviderTool, **kwargs )
322 acc.addEventAlgo(the_alg, primary =
True)
327 result = ComponentAccumulator()
329 if not flags.Muon.MuonTrigger
and not flags.Input.isMC:
330 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
331 if False: result.merge(NswDcsDbAlgCfg(flags))
332 from MuonConfig.MuonCablingConfig
import MmCablingCfg
333 result.merge(MmCablingCfg(flags))
335 kwargs.setdefault(
"CablingMap",
"")
337 kwargs.setdefault(
"DcsKey",
"")
339 the_tool = CompFactory.Muon.MM_ROD_Decoder(name = name, **kwargs)
340 result.setPrivateTools(the_tool)
343 acc = ComponentAccumulator()
350 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
351 acc.merge(MuonGeoModelCfg(flags))
354 keyName = f
"{flags.Overlay.BkgPrefix}MMRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "MMRDO"
355 MuonMmRawDataProviderTool = CompFactory.Muon.MM_RawDataProviderTool(name =
"MM_RawDataProviderTool",
357 RdoLocation = keyName,
358 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain)
364 MmRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name = name, ProviderTool = MuonMmRawDataProviderTool, **kwargs )
365 if flags.Muon.MuonTrigger:
367 from RegionSelector.RegSelToolConfig
import regSelTool_MM_Cfg
368 MmRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MM_Cfg( flags ) )
370 acc.addEventAlgo(MmRawDataProvider,primary=
True)
375 result = ComponentAccumulator()
376 the_tool = CompFactory.Muon.NSWMMTP_ROD_Decoder(name = name, **kwargs)
377 result.setPrivateTools(the_tool)
381 result = ComponentAccumulator()
383 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_MMTrigProcessor_RDO" )
384 the_tool = CompFactory.Muon.NSWMMTP_RawDataProviderToolMT(name = name, **kwargs)
385 result.setPrivateTools(the_tool)
389 result = ComponentAccumulator()
391 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
392 result.merge(MuonGeoModelCfg(flags))
395 the_alg = CompFactory.Muon.MuonRawDataProvider(name = name, ProviderTool = result.popToolsAndMerge(
NswMMTPRawDataProviderToolCfg(flags)), **kwargs )
396 result.addEventAlgo(the_alg, primary =
True)
401 cfg=ComponentAccumulator()
404 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
405 cfg.merge(ByteStreamReadCfg(flags ))
408 if flags.Detector.EnableRPC:
411 if flags.Muon.enableNRPC:
416 if flags.Detector.EnableTGC:
420 if flags.Detector.EnableMDT:
424 if flags.Detector.GeometryCSC:
427 if flags.Detector.GeometryMM:
433 if flags.Detector.GeometrysTGC:
438 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
444if __name__==
"__main__":
448 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
449 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
450 flags = initConfigFlags()
452 flags.Input.Files = defaultTestFiles.RAW_RUN2
453 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
454 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
455 flags.Concurrency.NumThreads = 1
456 flags.Exec.MaxEvents = 5
458 args = flags.fillFromArgs()
461 if not args.config_only:
462 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
463 cfg = MainServicesCfg(flags)
465 cfg = ComponentAccumulator()
468 cfg.printConfig(withDetails=
True)
470 if not args.config_only:
472 sys.exit(
not cfg.run().isSuccess())
Small class to hold the names for cache containers, should help to avoid copy / paste errors.
MmBytestreamDecodeCfg(flags, name="MuonMmRdoProvider", **kwargs)
NswTrigProcessorRodDecoderCfg(flags, name="NswTrigProcessorDecoder", **kwargs)
MdtBytestreamDecodeCfg(flags, name="MuonMdtRdoProvider", **kwargs)
sTgcPadTriggerBytestreamDecodeCfg(flags, name="sTgcPadTriggerRawDataProvider", **kwargs)
sTgcRODDecoderCfg(flags, name="sTgcROD_Decoder", **kwargs)
NswTrigProcessorRawDataProviderToolCfg(flags, name="NswTrigProcessorRawDataTool", **kwargs)
sTgcBytestreamDecodeCfg(flags, name="MuonStgcRdoProvider", **kwargs)
NswTrigProcByteStreamDecodeCfg(flags, name="NswProcByteStream")
MmRDODDecoderCfg(flags, name="MmROD_Decoder", **kwargs)
MuonCacheCfg(flags)
This configuration function creates the IdentifiableCaches for RDO.
NswMMTPByteStreamDecodeCfg(flags, name="NswMMTPByteStreamDecode", **kwargs)
NswMMTPRawDataProviderToolCfg(flags, name="NswMMTPRawDataProviderTool", **kwargs)
TgcBytestreamDecodeCfg(flags, name="MuonTgcRdoProvider", **kwargs)
CscBytestreamDecodeCfg(flags, name="CscRawDataProvider", **kwargs)
NrpcBytestreamDecodeCfg(flags, name="MuonNRpcRdoProvider", **kwargs)
MuonByteStreamDecodersCfg(flags)
RpcBytestreamDecodeCfg(flags, name="MuonRpcRdoProvider", **kwargs)
This configuration function sets up everything for decoding RPC bytestream data into RDOs.
NswMMTPRodDecoderCfg(flags, name="NswMMTPRodDecoder", **kwargs)