def tooldiff(): from AthenaCommon.AppMgr import ToolSvc from AthenaCommon.AppMgr import ServiceMgr alltools = ToolSvc.getAllChildren() alltools += ServiceMgr.getAllChildren() toolmap = dict() for i in alltools: tooltype = i.configurables.keys()[0] toolitems = i.configurables.items() if toolmap.has_key(tooltype): if toolmap[tooltype] != toolitems: print '%s seen before' % tooltype, print ' and differs' print 'previous contents: ', toolmap[tooltype] print 'new contents: ', toolitems else: toolmap[tooltype] = toolitems for i in toolmap.keys(): print ' ' print ' ' print '******************************************************************************' print 'toolmap key ', i print '******************************************************************************' if len(toolmap[i]) > 1: firsttool = toolmap[i][1] prop = firsttool[1].getProperties() prop_differ = False diff_list = list() diffvals = dict() diffvals[firsttool] = prop for j in toolmap[i]: print 'toolmap item ', j print j[1] print ' ' if prop != j[1].getProperties(): prop_differ = True jprop = j[1].getProperties() diffvals[j[1]] = jprop for p in prop.keys(): if prop[p] != jprop[p]: diff_list.append(p) if prop_differ: print 'Properties differ in ', set(diff_list) for kk in diffvals.keys(): print kk, diffvals[kk] else: print 'single item' print '******************************************************************************'
def debuglevel(level=2): from AthenaCommon.AlgSequence import AlgSequence job = AlgSequence() if hasattr(job, 'TrigSteer_HLT'): steeringEF = job.TrigSteer_HLT steeringEF.OutputLevel = level import re exp = re.compile("EFID|FTF|IDTrig|FTK|L2ID") pokus = None reftoconf = list() reftoname = list() for alg in steeringEF.getAllChildren(): try: algname = alg.name() except: print 'No algname for ', alg algname = '' if exp.search(algname): print algname try: alg.OutputLevel = level pokus = alg except: pass for j in alg.properties().items(): (aa, ab) = j if hasattr(type(ab), '__name__'): nm = type(ab).__name__ if nm.find('ToolHandle') > -1 and nm.find( 'ToolHandleArray') == -1: print nm reftoconf.append(ab) reftoname.append(ab.getName()) from AthenaCommon.AppMgr import ToolSvc for t in ToolSvc.getAllChildren(): for it in reftoname: if t.getName().find(it) > -1: try: t.OutputLevel = level except: print 'Setting of outputlevel failed for ', t
def get_available_trigger_monitoring_tools(self): "Get list of currently running trigger-monitoring tools" # get list of all tools in ToolSvc tool_list = ToolSvc.getAllChildren() # list of monitoring tools mon_tools = [] # loop over tools for tool in tool_list: # skip tools with names that will garble our commands # (no TrigMonTools do this) # specifically skip tools with scope resolution operators in their names (why do they have these here!?) if "::" in tool.getName(): print "Skipping",tool.getName(),"as its name contains a scope resolution operator '::'." continue # OLD: # find if Trig and Monitoring are in the tool Dll name if "Trig" in tool.getDlls() and "Monitoring" in tool.getDlls(): mon_tools.append(tool.getName()) # # NEW: # find if Trig and Monitoring are in the tool Dll name, or if the tool name contains both 'Mon' and either 'HLT' or 'Trig' # (This change was made to catch TrigEgammaMonTool, which has 'TrigEgammaAnalysisTools' as its Dll name) # FURTHER EDIT: extra if statemend added below (7 lines below here) to catch all TrigEgammaAnalysisTools, so we can just revert back to the previous 'OLD' if statement above #if ( "Trig" in tool.getDlls() and "Monitoring" in tool.getDlls() ) or ( ("HLT" in tool.getName() or "Trig" in tool.getName()) and "Mon" in tool.getName() ): # mon_tools.append(tool.getName()) # of if the tool Dll name is TrigInDetAnalysisExample, as is the case for the IDtrk tools if 'TrigInDetAnalysisExample' == tool.getDlls(): mon_tools.append(tool.getName()) # of if the tool Dll name is TrigEgammaAnalysisTools, as is the case for the Egamma tools if 'TrigEgammaAnalysisTools' == tool.getDlls(): mon_tools.append(tool.getName()) # return the list of monitoring tools print "mon_tools =",mon_tools return mon_tools
DQTDataFlowMon = DQTDataFlowMonTool(name = 'DQTDataFlowMon', histoPathBase = '/GLOBAL/DQTDataFlow', releaseString = releaseString) #ToolSvc += DQTDataFlowMon #bugfix ATR-20161 ManagedAthenaGlobalMon.AthenaMonTools += [ DQTDataFlowMon ] #-- set up output histogram file ------------------------------------------------------------------------------ log.info('HLTFlags %s', HLTMonFlags) from GaudiSvc.GaudiSvcConf import THistSvc svcMgr += THistSvc() svcMgr.THistSvc.Output += ["GLOBAL DATAFILE='" + DQMonFlags.histogramFile() + "' OPT='RECREATE'"] include( "TrigHLTMonitoring/HLTMonitoring_topOptions.py" ) if hasattr(runArgs,"useDB"): if runArgs.useDB: pass elif not runArgs.useDB: log.info("Update tools to use xAODConfigTool") for tool in ToolSvc.getAllChildren(): tool_prop = tool.getDefaultProperties() for prop,value in tool_prop.iteritems(): if prop == "TrigConfigTool": log.info("Set xAOD::TrigConfigTool %s",tool.getName()) tool.TrigConfigTool="TrigConf::xAODConfigTool" if prop == "TrigConfigSvc": log.info("Set xAOD::TrigConfigSvc %s",tool.getName()) tool.TrigConfigTool="TrigConf::xAODConfigSvc"