singleMonitorTarget = Node(name="singleMonitorTarget") singleMonitorAbs = os.path.join(webRoot, "singleMonitor") singleMonitorRel = "singleMonitor" g.addNode(singleMonitorTarget) count = 0 singleComparisonMacro = "/uscms/home/meloam/scratch/s8workflow/SingleComparison.C" def getFileNameStub(args): return args["node"].getOnlyFile() singleMonitorPlotList = Miter() for onenode in singleMonitorMiter.iterMany(): count += 1 subMonitorAbs = os.path.join(singleMonitorAbs, onenode[1]["opoint"], onenode[1]["bin"]) subMonitorRel = os.path.join(singleMonitorRel, onenode[1]["opoint"], onenode[1]["bin"]) monitorNames = [ ["MonitorAnalyzer/n/njet_pt", "-njetpt.png", "Njet_{pt}"], ["MonitorAnalyzer/n/njet_eta", "-njeteta.png", "Njet_{eta}"], ["MonitorAnalyzer/generic/pvs", "-pvs.png", "N_{pv}"], ] fileDesc = onenode[1]["type"] if "dataset" in onenode[1]: fileDesc += "-%s" % onenode[1]["dataset"] if "trigger" in onenode[1]: fileDesc += "-%s" % onenode[1]["trigger"] for oneMonitor in monitorNames:
( s8macro, '%s','%s' ), [BindFunction( func = getFileNameStub, args = { 'node': onedata[0] } ), BindFunction( func = getFileNameStub, args = { 'node': onemc[0] } )] ), output="output.txt", noEmptyFiles=True) g.addEdge( collect, solution, runs8edge ) scaleFactors.add( runs8edge, type = "nominal" ) def getS8RootFile( args ): return args['node'].getWorkDir() + "/s8.root" if 0: solcount = 0 for s8solution in scaleFactors.iterMany(): target = s8solution[0].getChild() solname = s8solution[0].getName() + "-scale" solcount += 1 output = Node( name = "scale_factor_%s" % solcount ) runScale = LocalScriptEdge( name = solname, command = BindSubstitutes("root_scale %s &> scale.txt" , [BindFunction( func = getS8RootFile, args = { 'node': s8solution[0] } ) ] ), output = "scale.txt", noEmptyFiles = True ) g.addNode( output ) g.addEdge( target,output, runScale ) mcVsDataCollect = Node( name = "mcVsData-collect" )
# # Some website stuff # allPages = Miter() webRoot = "/afs/fnal.gov/files/home/room3/meloam/public_html/s8/v-1/" httpRoot = "http://home.fnal.gov/~meloam/s8/v-1/" # # Keep track of event counts # eventCollect = Node(name="event-collect") eventPage = Node(name="event-page") g.addNode(eventCollect) g.addNode(eventPage) for event in eventCountMiter.iterMany("dataset"): g.addEdge(event[0], eventCollect, NullEdge()) def eventText(args): retval = "<html><head><title>s8 event counts</title></head>" retval += "<body><h1>event counts</h1><ul>" for onepage in args["eventCount"].iterMany(): retval += "<li>%s - %s</a></li>" % (onepage[1]["dataset"], int(onepage[0].getValueFromOnlyOutputFile())) retval += "</ul></body></html>" return retval eventPageEdge = GeneratePageEdge( name="generateEventPage", filename="eventscount.html",