Exemple #1
0
dataTriggerMiter.add( trigger_map['hltdijet20'], bin="100..110" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="100..110" )
dataTriggerMiter.add( trigger_map['hltdijet70'], bin="100..110" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="110..120" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="110..120" )
dataTriggerMiter.add( trigger_map['hltdijet70'], bin="110..120" )

dataTriggerMiter.add( trigger_map['hltdijet110'], bin="120.." )


skiplessDataMiter = Miter()
for opoint in operating_points:
    for bin in jet_bins:
        for tmap in dataTriggerMiter.iterGrouped( 'bin' ):
            if tmap.vals[0][1]['bin'] != bin[1]:
                continue

            for onetmap in tmap.iterMany():
                sample = onetmap[0][5]
                trigger = onetmap[0]
                step_postfix = "-%s-%s-%s-%s" % (sample,trigger[1],bin[0],opoint)
                monitor_node =\
                        run_monitor_input_helper( g,
                            jet_pt = bin[1],
                            tag = opoint,
                            fileKey = sample,
#                           trigger_name = trigger[4],
                            step_postfix = step_postfix,
                            muon_pt = "6..",
            step_postfix = "-%s-%s-%s-djet10mc" % (dataset[1]["dataset"], bin[0], opoint)
            currNode = run_monitor_input_helper(
                g,
                jet_pt=bin[1],
                tag=opoint,
                fileKey=dataset[1]["dataset"],
                trigger_name="HLT_BTagMu_DiJet10U",
                step_postfix=step_postfix,
                muon_pt="6..",
                input_files=dataset[0],
            )
            dijet10QCDMiter.add(currNode, bin=bin[0], dataset=dataset[1]["dataset"], opoint=opoint)
singleMonitorMiter = Miter()
rootQCDMiter = Miter()
# merge the dijet10 QCD into one guy
for currmerge in dijet10QCDMiter.iterGrouped("bin", "opoint"):
    step_postfix = "-%s-%s" % (currmerge.vals[0][1]["bin"], currmerge.vals[0][1]["opoint"])
    mergeNode = merge_with_root_qcd_helper(
        g,
        "root-qcd" + step_postfix,
        step_postfix,
        inputNodes=currmerge.getValues(),
        triggerName="hltjet10u",
        lumiMiter=exports["luminosityMiter"],
    )
    rootQCDMiter.add(mergeNode, bin=currmerge.vals[0][1]["bin"], opoint=currmerge.vals[0][1]["opoint"])
    singleMonitorMiter.add(
        mergeNode,
        trigger="hltdijet10u",
        bin=currmerge.vals[0][1]["bin"],
        opoint=currmerge.vals[0][1]["opoint"],
                                                 addFileNamesToCommandLine = True,
                                                 noEmptyFiles = True)

g.addEdge( luminosityListNode, luminositySumNode, sumLuminosity )


#
# Now, compute the lumi per-trigger. If there's just one dataset that contains
# the trigger we're looking for, we can just pass through from the previous
# luminosity node. Otherwise, we need to add them together (usually don't add
# them)
#
#luminositySumByTrigger = {}
luminositySumMiter = Miter()
#for trigger in luminosityByTrigger:
for trigger in luminosityMiter.iterGrouped( 'trigger' ):
    # should make a wrapper for this magic
    triggerName = trigger.vals[0][1][ 'trigger' ]
    
    lumiSum = Node( "lumisum-%s" % triggerName )
    g.addNode( lumiSum )
    luminositySumMiter.add( lumiSum, trigger = triggerName ) #ByTrigger[ trigger ] = lumiSum
    
    if   len( trigger ) == 1:
        g.addEdge( trigger.getOneValue(), lumiSum, NullEdge() )
    elif len( trigger ) > 1:
        lumiCollect = Node( "lumicollect-%s" % triggerName )
        g.addNode( lumiCollect )
        for dataset in trigger:
            g.addEdge( dataset.getOneValue(), lumiCollect, NullEdge() )
    noEmptyFiles=True,
)

g.addEdge(luminosityListNode, luminositySumNode, sumLuminosity)


#
# Now, compute the lumi per-trigger. If there's just one dataset that contains
# the trigger we're looking for, we can just pass through from the previous
# luminosity node. Otherwise, we need to add them together (usually don't add
# them)
#
# luminositySumByTrigger = {}
luminositySumMiter = Miter()
# for trigger in luminosityByTrigger:
for trigger in luminosityMiter.iterGrouped("trigger"):
    # should make a wrapper for this magic
    triggerName = trigger.vals[0][1]["trigger"]

    lumiSum = Node("lumisum-%s" % triggerName)
    g.addNode(lumiSum)
    luminositySumMiter.add(lumiSum, trigger=triggerName)  # ByTrigger[ trigger ] = lumiSum

    if len(trigger) == 1:
        g.addEdge(trigger.getOneValue(), lumiSum, NullEdge())
    elif len(trigger) > 1:
        lumiCollect = Node("lumicollect-%s" % triggerName)
        g.addNode(lumiCollect)
        for dataset in trigger:
            g.addEdge(dataset.getOneValue(), lumiCollect, NullEdge())
dataTriggerMiter.add(trigger_map["hltdijet20"], bin="100..110")
dataTriggerMiter.add(trigger_map["hltdijet40"], bin="100..110")
dataTriggerMiter.add(trigger_map["hltdijet70"], bin="100..110")

dataTriggerMiter.add(trigger_map["hltdijet20"], bin="110..120")
dataTriggerMiter.add(trigger_map["hltdijet40"], bin="110..120")
dataTriggerMiter.add(trigger_map["hltdijet70"], bin="110..120")

dataTriggerMiter.add(trigger_map["hltdijet110"], bin="120..")


skiplessDataMiter = Miter()
for opoint in operating_points:
    for bin in jet_bins:
        for tmap in dataTriggerMiter.iterGrouped("bin"):
            if tmap.vals[0][1]["bin"] != bin[1]:
                continue

            for onetmap in tmap.iterMany():
                sample = onetmap[0][5]
                trigger = onetmap[0]
                step_postfix = "-%s-%s-%s-%s" % (sample, trigger[1], bin[0], opoint)
                monitor_node = run_monitor_input_helper(
                    g,
                    jet_pt=bin[1],
                    tag=opoint,
                    fileKey=sample,
                    #                           trigger_name = trigger[4],
                    step_postfix=step_postfix,
                    muon_pt="6..",
    for bin in jet_bins:
        for opoint in operating_points:
            step_postfix = "-%s-%s-%s-djet10mc" % (dataset[1]['dataset'],bin[0],opoint)
            currNode = run_monitor_input_helper( g,
                        jet_pt = bin[1],
                        tag = opoint,
                        fileKey = dataset[1]['dataset'],
                        trigger_name = "HLT_BTagMu_DiJet10U",
                        step_postfix = step_postfix,
                        muon_pt = "6..",
                        input_files = dataset[0] )
            dijet10QCDMiter.add( currNode, bin = bin[0], dataset=dataset[1]['dataset'], opoint=opoint )
singleMonitorMiter = Miter()
rootQCDMiter = Miter()
# merge the dijet10 QCD into one guy
for currmerge in dijet10QCDMiter.iterGrouped( 'bin', 'opoint' ):
    step_postfix = "-%s-%s" % ( currmerge.vals[0][1]['bin'], currmerge.vals[0][1]['opoint'] )
    mergeNode = merge_with_root_qcd_helper( g, "root-qcd" + step_postfix, step_postfix,
                    inputNodes  = currmerge.getValues(),
                    triggerName = "hltjet10u",
                    lumiMiter   = exports['luminosityMiter']
                )
    rootQCDMiter.add( mergeNode,
                        bin     = currmerge.vals[0][1]['bin'],
                        opoint  = currmerge.vals[0][1]['opoint'] )
    singleMonitorMiter.add( mergeNode,\
                                    trigger = 'hltdijet10u',
                                    bin     = currmerge.vals[0][1]['bin'],
                                    opoint  = currmerge.vals[0][1]['opoint'],
                                    njetpt  = True,
                                    njeteta = True,