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:
Пример #2
0
                            ( 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" )
Пример #3
0
#
# 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",