5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7 from libpyeformat_helper
import SourceIdentifier, SubDetector
8 from RegionSelector
import RegSelToolConfig
10 from AthenaCommon.Logging
import logging
11 _log = logging.getLogger(__name__)
16 Get a list of RegionSelector tools for given detector look-up tables to build list of ROBs
17 in these detectors that intersect with the RoI. Special value 'All' can be also given
18 in the detNames list to include all detectors available in RegionSelector.
21 _regSelToDetFlagMap = {
30 _regSelToDetFlagMap |= dict([(d,d)
for d
in [
'Pixel',
'SCT',
'TRT']])
32 _regSelToDetFlagMap |= dict([(d,d)
for d
in [
'MDT',
'RPC',
'TGC',
'CSC',
'MM']])
33 _regSelToDetFlagMap[
'STGC'] =
'sTGC'
35 detNames = _regSelToDetFlagMap.keys()
42 if det
not in _regSelToDetFlagMap:
43 raise RuntimeError(
'Cannot add detector "' + det +
'" because it is not in _regSelToDetFlagMap')
44 detFlag =
'Enable'+_regSelToDetFlagMap[det]
45 detEnabled = getattr(flags.Detector, detFlag)
47 _log.debug(
'addRegSelDets: skip adding detector "%s" because the flag Detector.%s is False', det, detFlag)
49 funcName = f
'regSelTool_{det}_Cfg'
50 if not hasattr(RegSelToolConfig, funcName):
51 raise RuntimeError(
'Cannot add detector "' + det +
'", RegSelToolConfig does not have a function ' + funcName)
52 func = getattr(RegSelToolConfig, funcName)
53 if not callable(func):
54 raise RuntimeError(
'Cannot add detector "' + det +
'", RegSelToolConfig.' + funcName +
' is not callable')
55 regSelTools += [acc.popToolsAndMerge(func(flags))]
57 acc.setPrivateTools(regSelTools)
62 regSelDets : list[str] = [],
63 ROBs: list[SourceIdentifier] = [],
64 subDets: list[SubDetector] = [],
66 """Configure the RoIPEBInfoWriterTool"""
71 tool = CompFactory.RoIPEBInfoWriterTool(
73 RegionSelectorTools = acc_regsel.popPrivateTools(),
74 ExtraROBs = [
int(robid)
for robid
in ROBs],
75 ExtraSubDets = [
int(detid)
for detid
in subDets],
79 acc.setPrivateTools(tool)
84 ROBs: list[SourceIdentifier] = [],
85 subDets : list[SubDetector] = [],
87 """Configure the StaticPEBInfoWriterTool"""
90 tool = CompFactory.StaticPEBInfoWriterTool(
92 ROBList = [
int(robid)
for robid
in ROBs],
93 SubDetList = [
int(detid)
for detid
in subDets],
96 acc.setPrivateTools(tool)
100 if __name__ ==
'__main__':
101 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultGeometryTags
102 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
104 flags.Input.Files = defaultTestFiles.RAW_RUN3
105 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
110 regSelDets = [
'Pixel',
'SCT',
'TRT'],
111 subDets = [SubDetector.TDAQ_CTP] )
112 acc.popPrivateTools()
116 subDets = [SubDetector.TDAQ_HLT],
117 ROBs = [SourceIdentifier(SubDetector.TDAQ_CTP, 0)])
118 acc.popPrivateTools()