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 Muon__TGC_RawDataProviderToolMT=CompFactory.Muon.TGC_RawDataProviderToolMT
117 MuonTgcRawDataProviderTool = Muon__TGC_RawDataProviderToolMT(name =
"TGC_RawDataProviderToolMT",
118 Decoder = TGCRodDecoder,
119 RdoLocation = keyName )
121 if flags.Muon.MuonTrigger:
122 MuonTgcRawDataProviderTool.TgcContainerCacheKey = MuonCacheNames.TgcCache
126 Muon__TgcRawDataProvider=CompFactory.Muon.TgcRawDataProvider
127 TgcRawDataProvider = Muon__TgcRawDataProvider(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 Muon__MDT_RawDataProviderToolMT=CompFactory.Muon.MDT_RawDataProviderToolMT
162 MuonMdtRawDataProviderTool = Muon__MDT_RawDataProviderToolMT(name =
"MDT_RawDataProviderToolMT",
163 Decoder = MDTRodDecoder,
164 RdoLocation = keyName)
166 if flags.Muon.MuonTrigger:
167 MuonMdtRawDataProviderTool.CsmContainerCacheKey = MuonCacheNames.MdtCsmCache
170 Muon__MdtRawDataProvider=CompFactory.Muon.MdtRawDataProvider
171 MdtRawDataProvider = Muon__MdtRawDataProvider(name = name,
172 ProviderTool = MuonMdtRawDataProviderTool, **kwargs )
173 if flags.Muon.MuonTrigger:
175 from RegionSelector.RegSelToolConfig
import regSelTool_MDT_Cfg
176 MdtRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MDT_Cfg( flags ) )
179 acc.addEventAlgo(MdtRawDataProvider,primary=
True)
184 acc = ComponentAccumulator()
187 from MuonConfig.MuonCablingConfig
import CSCCablingConfigCfg
188 acc.merge( CSCCablingConfigCfg(flags) )
191 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
192 acc.merge(MuonGeoModelCfg(flags))
195 Muon__CscROD_Decoder=CompFactory.Muon.CscROD_Decoder
196 CSCRodDecoder = Muon__CscROD_Decoder(name =
"CscROD_Decoder" )
200 keyName = f
"{flags.Overlay.BkgPrefix}CSCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "CSCRDO"
201 Muon__CSC_RawDataProviderToolMT=CompFactory.Muon.CSC_RawDataProviderToolMT
202 MuonCscRawDataProviderTool = Muon__CSC_RawDataProviderToolMT(name =
"CSC_RawDataProviderToolMT",
203 Decoder = CSCRodDecoder,
204 RdoLocation = keyName)
205 if flags.Muon.MuonTrigger:
206 MuonCscRawDataProviderTool.CscContainerCacheKey = MuonCacheNames.CscCache
209 Muon__CscRawDataProvider=CompFactory.Muon.CscRawDataProvider
210 CscRawDataProvider = Muon__CscRawDataProvider(name = name,
211 ProviderTool = MuonCscRawDataProviderTool, **kwargs )
212 if flags.Muon.MuonTrigger:
214 from RegionSelector.RegSelToolConfig
import regSelTool_CSC_Cfg
215 CscRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_CSC_Cfg( flags ) )
218 acc.addEventAlgo(CscRawDataProvider,primary=
True)
224 result = ComponentAccumulator()
226 if False and not flags.Muon.MuonTrigger
and not flags.Input.isMC:
227 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
228 result.merge(NswDcsDbAlgCfg(flags))
230 kwargs.setdefault(
"DcsKey",
"")
233 kwargs.setdefault(
"CablingMap",
"")
236 from MuonConfig.MuonCablingConfig
import sTgcCablingCfg
237 result.merge( sTgcCablingCfg(flags) )
238 kwargs.setdefault(
"CablingMap",
"stgcCablingMap")
242 STGCRodDecoder = CompFactory.Muon.STGC_ROD_Decoder(name = name, **kwargs)
243 result.setPrivateTools(STGCRodDecoder)
248 acc = ComponentAccumulator()
252 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
253 acc.merge(MuonGeoModelCfg(flags))
258 keyName = f
"{flags.Overlay.BkgPrefix}sTGCRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "sTGCRDO"
259 Muon__STGC_RawDataProviderToolMT=CompFactory.Muon.STGC_RawDataProviderToolMT
260 MuonsTgcRawDataProviderTool = Muon__STGC_RawDataProviderToolMT(name =
"sTgcRawDataProviderTool",
262 RdoLocation = keyName,
263 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain )
269 Muon__sTgcRawDataProvider=CompFactory.Muon.sTgcRawDataProvider
270 sTgcRawDataProvider = Muon__sTgcRawDataProvider(name = name,
271 ProviderTool = MuonsTgcRawDataProviderTool, **kwargs )
272 if flags.Muon.MuonTrigger:
274 from RegionSelector.RegSelToolConfig
import regSelTool_STGC_Cfg
275 sTgcRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_STGC_Cfg( flags ) )
278 acc.addEventAlgo(sTgcRawDataProvider,primary=
True)
283 result = ComponentAccumulator()
284 the_tool = CompFactory.Muon.NSWTP_ROD_Decoder(name = name, **kwargs)
285 result.setPrivateTools(the_tool)
288 result = ComponentAccumulator()
290 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_TrigProcessor_RDO" )
291 the_tool = CompFactory.Muon.NSWTP_RawDataProviderToolMT(name = name, **kwargs)
292 result.setPrivateTools(the_tool)
295 result = ComponentAccumulator()
297 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
298 result.merge(MuonGeoModelCfg(flags))
299 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name,
301 result.addEventAlgo(the_alg, primary =
True)
306 acc = ComponentAccumulator()
309 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
310 acc.merge(MuonGeoModelCfg(flags))
313 Muon__PadTrig_ROD_Decoder = CompFactory.Muon.PadTrig_ROD_Decoder
314 STGCPadTriggerRodDecoder = Muon__PadTrig_ROD_Decoder(name =
"sTgcPadTriggerROD_Decoder")
318 keyName = flags.Overlay.BkgPrefix +
"NSW_PadTrigger_RDO" if flags.Common.isOverlay
else "NSW_PadTrigger_RDO"
319 Muon__PadTrig_RawDataProviderToolMT = CompFactory.Muon.PadTrig_RawDataProviderToolMT
320 MuonsTgcPadTriggerRawDataProviderTool = Muon__PadTrig_RawDataProviderToolMT(name =
"sTgcPadTriggerRawDataProviderTool",
321 Decoder = STGCPadTriggerRodDecoder,
322 RdoLocation = keyName)
326 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name,
327 ProviderTool = MuonsTgcPadTriggerRawDataProviderTool, **kwargs )
329 acc.addEventAlgo(the_alg, primary =
True)
334 result = ComponentAccumulator()
336 if not flags.Muon.MuonTrigger
and not flags.Input.isMC:
337 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
338 if False: result.merge(NswDcsDbAlgCfg(flags))
339 from MuonConfig.MuonCablingConfig
import MmCablingCfg
340 result.merge(MmCablingCfg(flags))
342 kwargs.setdefault(
"CablingMap",
"")
344 kwargs.setdefault(
"DcsKey",
"")
346 the_tool = CompFactory.Muon.MM_ROD_Decoder(name = name, **kwargs)
347 result.setPrivateTools(the_tool)
350 acc = ComponentAccumulator()
357 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
358 acc.merge(MuonGeoModelCfg(flags))
361 keyName = f
"{flags.Overlay.BkgPrefix}MMRDO" if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else "MMRDO"
362 MuonMmRawDataProviderTool = CompFactory.Muon.MM_RawDataProviderToolMT(name =
"MM_RawDataProviderToolMT",
364 RdoLocation = keyName,
365 SkipDecoding=flags.Muon.MuonTrigger
and flags.Muon.runCommissioningChain)
371 Muon__MmRawDataProvider = CompFactory.Muon.MM_RawDataProvider
372 MmRawDataProvider = Muon__MmRawDataProvider(name = name, ProviderTool = MuonMmRawDataProviderTool, **kwargs )
373 if flags.Muon.MuonTrigger:
375 from RegionSelector.RegSelToolConfig
import regSelTool_MM_Cfg
376 MmRawDataProvider.RegionSelectionTool = acc.popToolsAndMerge( regSelTool_MM_Cfg( flags ) )
378 acc.addEventAlgo(MmRawDataProvider,primary=
True)
383 result = ComponentAccumulator()
384 the_tool = CompFactory.Muon.NSWMMTP_ROD_Decoder(name = name, **kwargs)
385 result.setPrivateTools(the_tool)
389 result = ComponentAccumulator()
391 kwargs.setdefault(
"RdoLocation", ( flags.Overlay.BkgPrefix
if flags.Common.isOverlay
else "") +
"NSW_MMTrigProcessor_RDO" )
392 the_tool = CompFactory.Muon.NSWMMTP_RawDataProviderToolMT(name = name, **kwargs)
393 result.setPrivateTools(the_tool)
397 result = ComponentAccumulator()
399 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
400 result.merge(MuonGeoModelCfg(flags))
403 the_alg = CompFactory.Muon.sTgcPadTriggerRawDataProvider(name = name, ProviderTool = result.popToolsAndMerge(
NswMMTPRawDataProviderToolCfg(flags)), **kwargs )
404 result.addEventAlgo(the_alg, primary =
True)
409 cfg=ComponentAccumulator()
412 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
413 cfg.merge(ByteStreamReadCfg(flags ))
416 if flags.Detector.EnableRPC:
419 if flags.Muon.enableNRPC:
424 if flags.Detector.EnableTGC:
428 if flags.Detector.EnableMDT:
432 if flags.Detector.GeometryCSC:
435 if flags.Detector.GeometryMM:
441 if flags.Detector.GeometrysTGC:
446 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
452if __name__==
"__main__":
456 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
457 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
458 flags = initConfigFlags()
460 flags.Input.Files = defaultTestFiles.RAW_RUN2
461 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
462 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
463 flags.Concurrency.NumThreads = 1
464 flags.Exec.MaxEvents = 5
466 args = flags.fillFromArgs()
469 if not args.config_only:
470 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
471 cfg = MainServicesCfg(flags)
473 cfg = ComponentAccumulator()
476 cfg.printConfig(withDetails=
True)
478 if not args.config_only:
480 sys.exit(
not cfg.run().isSuccess())
Small class to hold the names for cache containers, should help to avoid copy / paste errors.
NswTrigProcessorRodDecoderCfg(flags, name="NswTrigProcessorDecoder", **kwargs)
TgcBytestreamDecodeCfg(flags, name="TgcRawDataProvider", **kwargs)
sTgcPadTriggerBytestreamDecodeCfg(flags, name="sTgcPadTriggerRawDataProvider", **kwargs)
sTgcRODDecoderCfg(flags, name="sTgcROD_Decoder", **kwargs)
NswTrigProcessorRawDataProviderToolCfg(flags, name="NswTrigProcessorRawDataTool", **kwargs)
NswTrigProcByteStreamDecodeCfg(flags, name="NswProcByteStream")
MmRDODDecoderCfg(flags, name="MmROD_Decoder", **kwargs)
NrpcBytestreamDecodeCfg(flags, name="NrpcRawDataProvider", **kwargs)
sTgcBytestreamDecodeCfg(flags, name="sTgcRawDataProvider", **kwargs)
RpcBytestreamDecodeCfg(flags, name="RpcRawDataProvider", **kwargs)
This configuration function sets up everything for decoding RPC bytestream data into RDOs.
MuonCacheCfg(flags)
This configuration function creates the IdentifiableCaches for RDO.
NswMMTPByteStreamDecodeCfg(flags, name="NswMMTPByteStreamDecode", **kwargs)
MdtBytestreamDecodeCfg(flags, name="MdtRawDataProvider", **kwargs)
NswMMTPRawDataProviderToolCfg(flags, name="NswMMTPRawDataProviderTool", **kwargs)
CscBytestreamDecodeCfg(flags, name="CscRawDataProvider", **kwargs)
MuonByteStreamDecodersCfg(flags)
NswMMTPRodDecoderCfg(flags, name="NswMMTPRodDecoder", **kwargs)
MmBytestreamDecodeCfg(flags, name="MmRawDataProvider", **kwargs)