12 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
13 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
14 from AthenaConfiguration.ComponentFactory
import CompFactory
15 from AthenaCommon.Logging
import logging
16 _log = logging.getLogger(__name__)
19 return "RegSelCondAlg_"+detector
23 Creates conditions alg that provides data to a RegSel Tool
26 condAlg = CondAlgConstructor( name =
_condAlgName( detector ),
27 PrintTable = printTable,
28 RegSelLUT = (
"RegSelLUTCondData_"+detector) )
30 condAlg = CondAlgConstructor( name =
_condAlgName( detector ),
31 ManagerName = detector,
32 PrintTable = printTable,
33 RegSelLUT = (
"RegSelLUTCondData_"+detector) )
35 if detector ==
"MDT" and not useMdtDcsData:
36 condAlg.Conditions =
""
37 elif detector ==
"Pixel":
38 condAlg.DetEleCollKey =
"PixelDetectorElementCollection"
39 condAlg.PixelCablingCondData =
"PixelCablingCondData"
40 elif detector ==
"SCT":
41 condAlg.DetEleCollKey =
"SCT_DetectorElementCollection"
42 condAlg.SCT_CablingData =
"SCT_CablingData"
43 elif detector ==
"ITkPixel":
44 condAlg.DetEleCollKey =
"ITkPixelDetectorElementCollection"
46 condAlg.PixelCablingCondData =
""
47 elif detector ==
"ITkStrip":
48 condAlg.DetEleCollKey =
"ITkStripDetectorElementCollection"
50 condAlg.SCT_CablingData =
""
55 Creates RegSelTool and corresponding cond tool that is needed for its function
57 If the enable flag is set - the tool is properly configured, else it is configured NOT to provide the data.
62 tool = CompFactory.RegSelTool(name=
"RegSelTool_"+detector)
69 tool.Initialised =
False
74 tool.RegSelLUT =
"RegSelLUTCondData_"+detector
75 tool.Initialised =
True
79 def regSelToolCfg(flags, detector, algorithm, readout_geometry=None, conditions=None):
82 ca.merge(readout_geometry)
89 if flags.hasFlag(
"PrintLUT"):
90 printLUT = flags.PrintLUT
92 the_alg =
_createRegSelCondAlg(detector, algorithm, flags.Muon.useMdtDcsData, printTable=printLUT )
93 ca.addCondAlgo(the_alg)
100 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
101 from PixelConditionsAlgorithms.PixelConditionsConfig
import PixelCablingCondAlgCfg
102 return regSelToolCfg(flags,
"Pixel", CompFactory.SiRegSelCondAlg,
107 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
108 from SCT_Cabling.SCT_CablingConfig
import SCT_CablingCondAlgCfg
109 return regSelToolCfg(flags,
"SCT", CompFactory.SiRegSelCondAlg,
114 from TRT_GeoModel.TRT_GeoModelConfig
import TRT_ReadoutGeometryCfg
115 return regSelToolCfg(flags,
"TRT", CompFactory.TRT_RegSelCondAlg,
121 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
122 return regSelToolCfg(flags,
"ITkPixel", CompFactory.SiRegSelCondAlg,
127 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
128 return regSelToolCfg(flags,
"ITkStrip", CompFactory.SiRegSelCondAlg,
135 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
136 from MuonConfig.MuonCondAlgConfig
import MdtCondDbAlgCfg
137 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
142 if flags.Muon.useMdtDcsData:
145 return regSelToolCfg(flags,
"MDT", CompFactory.MDT_RegSelCondAlg,
146 conditions=conditions)
150 from MuonConfig.MuonCablingConfig
import RPCCablingConfigCfg
151 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
157 return regSelToolCfg(flags,
"RPC", CompFactory.RPC_RegSelCondAlg,
158 conditions=conditions)
162 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
163 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
169 return regSelToolCfg(flags,
"TGC", CompFactory.TGC_RegSelCondAlg,
170 conditions=conditions)
174 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
175 from MuonConfig.MuonCablingConfig
import CSCCablingConfigCfg
181 return regSelToolCfg(flags,
"CSC", CompFactory.CSC_RegSelCondAlg,
182 conditions=conditions)
186 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
187 return regSelToolCfg(flags,
"sTGC", CompFactory.sTGC_RegSelCondAlg,
192 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
193 return regSelToolCfg(flags,
"MM", CompFactory.MM_RegSelCondAlg,
200 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
201 from LArRecUtils.LArRecUtilsConfig
import LArRoIMapCondAlgCfg
207 return regSelToolCfg(flags,
"TTEM", CompFactory.RegSelCondAlg_LAr,
208 conditions=conditions)
212 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
213 from LArRecUtils.LArRecUtilsConfig
import LArRoIMapCondAlgCfg
219 return regSelToolCfg(flags,
"TTHEC", CompFactory.RegSelCondAlg_LAr,
220 conditions=conditions)
224 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
225 from LArRecUtils.LArRecUtilsConfig
import LArRoIMapCondAlgCfg
231 return regSelToolCfg(flags,
"FCALEM", CompFactory.RegSelCondAlg_LAr,
232 conditions=conditions)
236 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
237 from LArRecUtils.LArRecUtilsConfig
import LArRoIMapCondAlgCfg
243 return regSelToolCfg(flags,
"FCALHAD", CompFactory.RegSelCondAlg_LAr,
244 conditions=conditions)
248 from TileByteStream.TileHid2RESrcIDConfig
import TileHid2RESrcIDCondAlgCfg
249 return regSelToolCfg(flags,
"TILE", CompFactory.RegSelCondAlg_Tile,
255 Get a list of RegionSelector tools for given detector look-up tables if the corresponding Detector flags are enabled
261 if det
in [
'TTEM',
'TTHEC',
'FCALEM',
'FCALHAD']:
267 detFlag = f
'Enable{flagName}'
268 detEnabled = getattr(flags.Detector, detFlag)
270 _log.debug(
'regSelToolsCfg: skip adding detector "%s" because the flag Detector.%s is False', det, detFlag)
272 funcName = f
'regSelTool_{det}_Cfg'
273 func = globals().
get(funcName,
None)
275 raise RuntimeError(
'regSelToolsCfg: cannot add detector "' + det +
'", RegSelToolConfig does not have a function ' + funcName)
276 regSelTools += [acc.popToolsAndMerge(func(flags))]
277 acc.setPrivateTools(regSelTools)
282 if __name__==
'__main__':
283 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
284 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
285 from AthenaConfiguration
import DetectorConfigFlags, TestDefaults
286 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
290 flags.Input.Files = TestDefaults.defaultTestFiles.RAW_RUN3
291 flags.GeoModel.AtlasVersion = TestDefaults.defaultGeometryTags.RUN3
292 flags.IOVDb.GlobalTag =
'CONDBR2-BLKPA-2023-02'
293 flags.Exec.MaxEvents = 1
294 flags.Concurrency.NumThreads = 1
297 flags.Input.FailOnUnknownCollections =
True
298 flags.Scheduler.AutoLoadUnmetDependencies =
False
303 flags.addFlag(
"PrintLUT",
True )
305 detNames = sys.argv[1:]
310 DetectorConfigFlags.disableDetectors(flags, DetectorConfigFlags.allDetectors +
311 list(DetectorConfigFlags.allGroups.keys()), toggle_geometry=
False)
313 DetectorConfigFlags.enableDetectors(flags, detNames, toggle_geometry=
False)
320 if 'LAr' in detNames:
321 detNames.remove(
'LAr')
322 detNames += [
'TTEM',
'TTHEC',
'FCALEM',
'FCALHAD']
323 if 'Tile' in detNames:
324 detNames.remove(
'Tile')
325 detNames.append(
'TILE')
326 if 'sTGC' in detNames:
327 detNames.remove(
'sTGC')
328 detNames.append(
'STGC')
332 alg = CompFactory.RegSelToolTester(
333 RegionSelectorTools = acc.popToolsAndMerge(toolsCfg) )
335 acc.addEventAlgo(alg, sequenceName=
'AthAlgSeq')
337 sys.exit(acc.run().isFailure())