示例#1
0
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 '******************************************************************************'
示例#2
0
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
示例#3
0
    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
示例#4
0
    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"