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_RawDataProviderToolMT(name =
"RPC_RawDataProviderToolMT",
53 Decoder = RPCRodDecoder,
54 RdoLocation = keyName )
55 if flags.Muon.MuonTrigger:
56 MuonRpcRawDataProviderTool.RpcContainerCacheKey = MuonCacheNames.RpcCache
57 MuonRpcRawDataProviderTool.WriteOutRpcSectorLogic =
False
61 Muon__RpcRawDataProvider=CompFactory.Muon.RpcRawDataProvider
62 RpcRawDataProvider = Muon__RpcRawDataProvider(name = name,
63 ProviderTool = MuonRpcRawDataProviderTool, **kwargs )
65 if flags.Muon.MuonTrigger:
67 from RegionSelector.RegSelToolConfig
import regSelTool_RPC_Cfg
68 RpcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_RPC_Cfg( flags ) )
71 acc.addEventAlgo(RpcRawDataProvider, primary=
True)
75 acc = ComponentAccumulator()
78 from MuonConfig.MuonCablingConfig
import NRPCCablingConfigCfg
79 acc.merge( NRPCCablingConfigCfg(flags) )
82 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
83 acc.merge(MuonGeoModelCfg(flags))
87 keyName = flags.Overlay.BkgPrefix +
"NRPCRDO" if flags.Common.isOverlay
else "NRPCRDO"
88 MuonNrpcRawDataProviderTool = CompFactory.Muon.NRPC_RawDataProviderTool(name =
"NRPC_RawDataProviderTool",
89 NrpcRdoKey = keyName )
92 NrpcRawDataProvider = CompFactory.Muon.NrpcRawDataProvider(name = name,
93 ProviderTool = MuonNrpcRawDataProviderTool, **kwargs )
95 acc.addEventAlgo(NrpcRawDataProvider, primary=
True)
99 acc = ComponentAccumulator()
102 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
103 acc.merge( TGCCablingConfigCfg(flags) )
106 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
107 acc.merge(MuonGeoModelCfg(flags))
110 Muon__TGC_RodDecoderReadout=CompFactory.Muon.TGC_RodDecoderReadout
111 TGCRodDecoder = Muon__TGC_RodDecoderReadout(name =
"TgcROD_Decoder")
115 keyName = f
"{flags.Overlay.BkgPrefix}TGCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "TGCRDO"
116 MuonTgcRawDataProviderTool = CompFactory.Muon.TGC_RawDataProviderTool(name =
"TGC_RawDataProviderTool",
117 Decoder = TGCRodDecoder,
118 RdoLocation = keyName )
120 if flags.Muon.MuonTrigger:
121 MuonTgcRawDataProviderTool.TgcContainerCacheKey = MuonCacheNames.TgcCache
125 Muon__TgcRawDataProvider=CompFactory.Muon.TgcRawDataProvider
126 TgcRawDataProvider = Muon__TgcRawDataProvider(name = name,
127 ProviderTool = MuonTgcRawDataProviderTool, **kwargs )
128 if flags.Muon.MuonTrigger:
130 from RegionSelector.RegSelToolConfig
import regSelTool_TGC_Cfg
131 TgcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_TGC_Cfg( flags ) )
134 acc.addEventAlgo(TgcRawDataProvider,primary=
True)
139 acc = ComponentAccumulator()
142 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
143 acc.merge( MDTCablingConfigCfg(flags) )
146 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
147 acc.merge( AtlasFieldCacheCondAlgCfg(flags) )
150 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
151 acc.merge(MuonGeoModelCfg(flags))
154 MdtROD_Decoder=CompFactory.MdtROD_Decoder
159 keyName = f
"{flags.Overlay.BkgPrefix}MDTCSM" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "MDTCSM"
160 Muon__MDT_RawDataProviderToolMT=CompFactory.Muon.MDT_RawDataProviderToolMT
161 MuonMdtRawDataProviderTool = Muon__MDT_RawDataProviderToolMT(name =
"MDT_RawDataProviderToolMT",
162 Decoder = MDTRodDecoder,
163 RdoLocation = keyName)
165 if flags.Muon.MuonTrigger:
166 MuonMdtRawDataProviderTool.CsmContainerCacheKey = MuonCacheNames.MdtCsmCache
169 Muon__MdtRawDataProvider=CompFactory.Muon.MdtRawDataProvider
170 MdtRawDataProvider = Muon__MdtRawDataProvider(name = name,
171 ProviderTool = MuonMdtRawDataProviderTool, **kwargs )
172 if flags.Muon.MuonTrigger:
174 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
175 MdtRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MDT_Cfg( flags ) )
178 acc.addEventAlgo(MdtRawDataProvider,primary=
True)
183 acc = ComponentAccumulator()
186 from MuonConfig.MuonCablingConfig
import CSCCablingConfigCfg
187 acc.merge( CSCCablingConfigCfg(flags) )
190 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
191 acc.merge(MuonGeoModelCfg(flags))
194 Muon__CscROD_Decoder=CompFactory.Muon.CscROD_Decoder
195 CSCRodDecoder = Muon__CscROD_Decoder(name =
"CscROD_Decoder" )
199 keyName = f
"{flags.Overlay.BkgPrefix}CSCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "CSCRDO"
200 Muon__CSC_RawDataProviderToolMT=CompFactory.Muon.CSC_RawDataProviderToolMT
201 MuonCscRawDataProviderTool = Muon__CSC_RawDataProviderToolMT(name =
"CSC_RawDataProviderToolMT",
202 Decoder = CSCRodDecoder,
203 RdoLocation = keyName)
204 if flags.Muon.MuonTrigger:
205 MuonCscRawDataProviderTool.CscContainerCacheKey = MuonCacheNames.CscCache
208 Muon__CscRawDataProvider=CompFactory.Muon.CscRawDataProvider
209 CscRawDataProvider = Muon__CscRawDataProvider(name = name,
210 ProviderTool = MuonCscRawDataProviderTool, **kwargs )
211 if flags.Muon.MuonTrigger:
213 from RegionSelector.RegSelToolConfig
import regSelTool_CSC_Cfg
214 CscRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_CSC_Cfg( flags ) )
217 acc.addEventAlgo(CscRawDataProvider,primary=
True)
223 result = ComponentAccumulator()
225 if False and not flags.Muon.MuonTrigger
and not flags.Input.isMC:
226 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
227 result.merge(NswDcsDbAlgCfg(flags))
229 kwargs.setdefault(
"DcsKey",
"")
232 kwargs.setdefault(
"CablingMap",
"")
235 from MuonConfig.MuonCablingConfig
import sTgcCablingCfg
236 result.merge( sTgcCablingCfg(flags) )
237 kwargs.setdefault(
"CablingMap",
"stgcCablingMap")
241 STGCRodDecoder = CompFactory.Muon.STGC_ROD_Decoder(name = name, **kwargs)
242 result.setPrivateTools(STGCRodDecoder)
247 acc = ComponentAccumulator()
251 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
252 acc.merge(MuonGeoModelCfg(flags))
257 keyName = f
"{flags.Overlay.BkgPrefix}sTGCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "sTGCRDO"
258 MuonsTgcRawDataProviderTool = CompFactory.Muon.STGC_RawDataProviderToolMT(name =
"sTgcRawDataProviderTool",
260 RdoLocation = keyName,
261 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain )
267 Muon__sTgcRawDataProvider=CompFactory.Muon.sTgcRawDataProvider
268 sTgcRawDataProvider = Muon__sTgcRawDataProvider(name = name,
269 ProviderTool = MuonsTgcRawDataProviderTool, **kwargs )
270 if flags.Muon.MuonTrigger:
272 from RegionSelector.RegSelToolConfig
import regSelTool_STGC_Cfg
273 sTgcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_STGC_Cfg( flags ) )
276 acc.addEventAlgo(sTgcRawDataProvider,primary=
True)
281 result = ComponentAccumulator()
282 the_tool = CompFactory.Muon.NSWTP_ROD_Decoder(name = name, **kwargs)
283 result.setPrivateTools(the_tool)
286 result = ComponentAccumulator()
288 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_TrigProcessor_RDO" )
289 the_tool = CompFactory.Muon.NSWTP_RawDataProviderToolMT(name = name, **kwargs)
290 result.setPrivateTools(the_tool)
293 result = ComponentAccumulator()
295 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
296 result.merge(MuonGeoModelCfg(flags))
297 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name,
299 result.addEventAlgo(the_alg, primary =
True)
304 acc = ComponentAccumulator()
307 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
308 acc.merge(MuonGeoModelCfg(flags))
311 Muon__PadTrig_ROD_Decoder = CompFactory.Muon.PadTrig_ROD_Decoder
312 STGCPadTriggerRodDecoder = Muon__PadTrig_ROD_Decoder(name =
"sTgcPadTriggerROD_Decoder")
316 keyName = flags.Overlay.BkgPrefix +
"NSW_PadTrigger_RDO" if flags.Common.isOverlay
else "NSW_PadTrigger_RDO"
317 Muon__PadTrig_RawDataProviderToolMT = CompFactory.Muon.PadTrig_RawDataProviderToolMT
318 MuonsTgcPadTriggerRawDataProviderTool = Muon__PadTrig_RawDataProviderToolMT(name =
"sTgcPadTriggerRawDataProviderTool",
319 Decoder = STGCPadTriggerRodDecoder,
320 RdoLocation = keyName)
324 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name,
325 ProviderTool = MuonsTgcPadTriggerRawDataProviderTool, **kwargs )
327 acc.addEventAlgo(the_alg, primary =
True)
332 result = ComponentAccumulator()
334 if not flags.Muon.MuonTrigger
and not flags.Input.isMC:
335 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
336 if False: result.merge(NswDcsDbAlgCfg(flags))
337 from MuonConfig.MuonCablingConfig
import MmCablingCfg
338 result.merge(MmCablingCfg(flags))
340 kwargs.setdefault(
"CablingMap",
"")
342 kwargs.setdefault(
"DcsKey",
"")
344 the_tool = CompFactory.Muon.MM_ROD_Decoder(name = name, **kwargs)
345 result.setPrivateTools(the_tool)
348 acc = ComponentAccumulator()
355 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
356 acc.merge(MuonGeoModelCfg(flags))
359 keyName = f
"{flags.Overlay.BkgPrefix}MMRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "MMRDO"
360 MuonMmRawDataProviderTool = CompFactory.Muon.MM_RawDataProviderToolMT(name =
"MM_RawDataProviderToolMT",
362 RdoLocation = keyName,
363 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain)
369 Muon__MmRawDataProvider = CompFactory.Muon.MM_RawDataProvider
370 MmRawDataProvider = Muon__MmRawDataProvider(name = name, ProviderTool = MuonMmRawDataProviderTool, **kwargs )
371 if flags.Muon.MuonTrigger:
373 from RegionSelector.RegSelToolConfig
import regSelTool_MM_Cfg
374 MmRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MM_Cfg( flags ) )
376 acc.addEventAlgo(MmRawDataProvider,primary=
True)
381 result = ComponentAccumulator()
382 the_tool = CompFactory.Muon.NSWMMTP_ROD_Decoder(name = name, **kwargs)
383 result.setPrivateTools(the_tool)
387 result = ComponentAccumulator()
389 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_MMTrigProcessor_RDO" )
390 the_tool = CompFactory.Muon.NSWMMTP_RawDataProviderToolMT(name = name, **kwargs)
391 result.setPrivateTools(the_tool)
395 result = ComponentAccumulator()
397 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
398 result.merge(MuonGeoModelCfg(flags))
401 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name, ProviderTool = result.popToolsAndMerge(
NswMMTPRawDataProviderToolCfg(flags)), **kwargs )
402 result.addEventAlgo(the_alg, primary =
True)
407 cfg=ComponentAccumulator()
410 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
411 cfg.merge(ByteStreamReadCfg(flags ))
414 if flags.Detector.EnableRPC:
417 if flags.Muon.enableNRPC:
422 if flags.Detector.EnableTGC:
426 if flags.Detector.EnableMDT:
430 if flags.Detector.GeometryCSC:
433 if flags.Detector.GeometryMM:
439 if flags.Detector.GeometrysTGC:
444 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
450if __name__==
"__main__":
454 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
455 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
456 flags = initConfigFlags()
458 flags.Input.Files = defaultTestFiles.RAW_RUN2
459 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
460 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
461 flags.Concurrency.NumThreads = 1
462 flags.Exec.MaxEvents = 5
464 args = flags.fillFromArgs()
467 if not args.config_only:
468 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
469 cfg = MainServicesCfg(flags)
471 cfg = ComponentAccumulator()
474 cfg.printConfig(withDetails=
True)
476 if not args.config_only:
478 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)