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 = TestDefaults.defaultConditionsTags.RUN3_DATA23
 
  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())