qcdTreeMiter    = Miter()
eventCountMiter = Miter()

for dataset in qcd_datasets:
    treeNode,produceTree = genTree( g=g,input = nullInput,
                                nodeName = "tree-%s" % dataset[1],
                                edgeName = "generateTree-%s" % dataset[1],
                                crabCfg  = "/uscms_data/d2/meloam/s8workflow/crab_mc.cfg", 
                                cmsswCfg = "/uscms_data/d2/meloam/s8workflow/cmssw_mc.py",
                                dataset  = dataset[0],
                                overridepath = dataset[0],
                                overridefiles= "s8_trees.txt")


    #qcdTreeNodes[ dataset[1] ] = treeNode
    qcdTreeMiter.add( treeNode, dataset = dataset[1] )

for dataset in ttbar_datasets:
    treeNode,produceTree = genTree( g=g,input = nullInput,
                                nodeName = "tree-%s" % dataset[1],
                                edgeName = "generateTree-%s" % dataset[1],
                                crabCfg  = "/uscms_data/d2/meloam/s8workflow/crab_mc.cfg", 
                                cmsswCfg = "/uscms_data/d2/meloam/s8workflow/cmssw_mc.py",
                                dataset  = dataset[0],
                                overridepath = dataset[0],
                                overridefiles= "s8_trees.txt")

    #qcdTreeNodes[ dataset[1] ] = treeNode
    ttbarTreeMiter.add( treeNode, dataset = dataset[1] )

dijet10QCDMiter = Miter()
for dataset in exports["qcd"].iterMany():
    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(
Example #3
0
]

trigger_map  = { 
    'hltdijet20' :
                 [ "HLT_BTagMu_DiJet20_Mu5", "hltdijet20", "147196", "148818","HLT_BTagMu_DiJet20_Mu5", 'RUN2011B' ],
    'hltdijet40' :
                 [ "HLT_BTagMu_DiJet40_Mu5", "hltdijet40", "147196", "149294","HLT_BTagMu_DiJet40_Mu5" , 'RUN2011B' ],
    'hltdijet70' :
                 [ "HLT_BTagMu_DiJet70_Mu5", "hltdijet70", "148819", "149294","HLT_BTagMu_DiJet70_Mu5" , 'RUN2011B' ],
    'hltdijet110':
                 [ "HLT_BTagMu_DiJet110_Mu5","hltdijet110","146428", "147116","HLT_BTagMu_DiJet110_Mu5" , 'RUN2011B' ] 
}

dataTriggerMiter = Miter()

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="30..40" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="40..50" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="50..60" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="50..60" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="60..70" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="60..70" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="70..80" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="70..80" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="80..90" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="80..90" )
dataTriggerMiter.add( trigger_map['hltdijet70'], bin="80..90" )
Example #4
0
#qcdTreeNodes = {}
#eventCountNodes = {}

qcdTreeMiter    = Miter()
eventCountMiter = Miter()

for dataset in qcd_datasets:
    treeNode,produceTree = genTree( g=g,input = nullInput,
                                nodeName = "tree-%s" % dataset[1],
                                edgeName = "generateTree-%s" % dataset[1],
                                crabCfg  = "/uscms_data/d2/meloam/s8workflow/crab_mc.cfg", 
                                cmsswCfg = "/uscms_data/d2/meloam/s8workflow/cmssw_mc.py",
                                dataset  = dataset[0] )

    #qcdTreeNodes[ dataset[1] ] = treeNode
    qcdTreeMiter.add( treeNode, dataset = dataset[1] )

    #
    # we've generated the trees, add a step to extract the luminosities
    #
    eventNode = Node( name = "eventCounts-%s" % (dataset[1]) )
    # will return the crab workdir
    crabWorkDir  = BindCrabWorkDir( produceTree )
    # will return the following command line substituted in with the late-bound values
    commandLine  = BindSubstitutes( 
        "crab -report -continue %s | grep 'Total Events read: ' | awk '{print $4;}' > events.txt"
                                        ,[ crabWorkDir ] )
    getEvents = LocalScriptEdge.LocalScriptEdge( name = "getEvent-%s" % dataset[1],
        command = commandLine,
        output = "events.txt",
        noEmptyFiles=True)


jet_bins_mc = [
         [ "20to"  , "20..",  "15", "210"]
]

jet_bins_data = [
        [ "20to50" , "20..50","15","55" ],
        [ "50to80" , "50..80","45","85" ],
        [ "80to120", "80..120","75","125" ],
        [ "120to" , "120..","115","210" ],
]
dataTriggerMiter = Miter()

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="20..50" )

dataTriggerMiter.add( trigger_map['hltdijet20'], bin="50..80" )
dataTriggerMiter.add( trigger_map['hltdijet40'], bin="50..80" )

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

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

singleDataMonitorNode = Node( "singleDataMonitor" )
g.addNode( singleDataMonitorNode )
singleDataMonitor = Miter()
def addSingleMonitor( node, **kwargs ):
    global singlaDataMonitorNode, singleDataMonitor, g
qcdTreeMiter = Miter()
eventCountMiter = Miter()

for dataset in qcd_datasets:
    treeNode, produceTree = genTree(
        g=g,
        input=nullInput,
        nodeName="tree-%s" % dataset[1],
        edgeName="generateTree-%s" % dataset[1],
        crabCfg="/uscms_data/d2/meloam/s8workflow/crab_mc.cfg",
        cmsswCfg="/uscms_data/d2/meloam/s8workflow/cmssw_mc.py",
        dataset=dataset[0],
    )

    # qcdTreeNodes[ dataset[1] ] = treeNode
    qcdTreeMiter.add(treeNode, dataset=dataset[1])

    #
    # we've generated the trees, add a step to extract the luminosities
    #
    eventNode = Node(name="eventCounts-%s" % (dataset[1]))
    # will return the crab workdir
    crabWorkDir = BindCrabWorkDir(produceTree)
    # will return the following command line substituted in with the late-bound values
    commandLine = BindSubstitutes(
        "crab -report -continue %s | grep 'Total Events read: ' | awk '{print $4;}' > events.txt", [crabWorkDir]
    )
    getEvents = LocalScriptEdge.LocalScriptEdge(
        name="getEvent-%s" % dataset[1], command=commandLine, output="events.txt", noEmptyFiles=True
    )
    g.addNode(eventNode)
# Run s8_monitor_input over QCD without skipping events
#
dijet10QCDMiter   = Miter()
for dataset in exports['qcd'].iterMany():
    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',
trigger_map  = { 
    'hltdijet20u' :
                 [ "HLT_BTagMu_DiJet20U*","hltdijet20u", "147196", "148818","HLT_BTagMu_DiJet20U", 'RUN2010B' ],
    'hltdijet20u-fullrange' :
                 [ "HLT_BTagMu_DiJet20U*","hltdijet20u-fullrange", "147196", "149294","HLT_BTagMu_DiJet20U" , 'RUN2010B' ],
    'hltdijet30u' :
                 [ "HLT_BTagMu_DiJet30U*","hltdijet30u", "148819", "149294","HLT_BTagMu_DiJet30U" , 'RUN2010B' ],
    'hltjet10u' :
                 [ "HLT_BTagMu_Jet10U"   ,"hltjet10u"  , "141961", "142039","HLT_BTagMu_Jet10U" , 'RUN2010A' ],
    'hltjet20u' :
                 [ "HLT_BTagMu_Jet20U"   ,"hltjet20u"  , "146428", "147116","HLT_BTagMu_Jet20U" , 'RUN2010B' ] 
}

dataTriggerMiter = Miter()

dataTriggerMiter.add( trigger_map['hltjet10u'], bin = "40..60" )
dataTriggerMiter.add( trigger_map['hltjet20u'], bin = "40..60" )

dataTriggerMiter.add( trigger_map['hltjet10u'], bin = "60..80" )
dataTriggerMiter.add( trigger_map['hltjet20u'], bin = "60..80" )
dataTriggerMiter.add( trigger_map['hltdijet20u-fullrange'], bin = "60..80" )
dataTriggerMiter.add( trigger_map['hltdijet20u'], bin = "60..80" )


dataTriggerMiter.add( trigger_map['hltjet10u'], bin = "80.." )
dataTriggerMiter.add( trigger_map['hltjet20u'], bin = "80.." )
dataTriggerMiter.add( trigger_map['hltdijet20u'], bin = "80.." )
dataTriggerMiter.add( trigger_map['hltdijet30u'], bin = "80.." )


#dataTriggerMiter.add( trigger_map['hltjet10u'], bin = "140.." )
if simple_mode:
    operating_points = ["SSVHEM", "TCHEM"]
    pass


jet_bins_mc = [["20to", "20..", "15", "210"]]

jet_bins_data = [
    ["20to50", "20..50", "15", "55"],
    ["50to80", "50..80", "45", "85"],
    ["80to120", "80..120", "75", "125"],
    ["120to", "120..", "115", "210"],
]
dataTriggerMiter = Miter()

dataTriggerMiter.add(trigger_map["hltdijet20"], bin="20..50")

dataTriggerMiter.add(trigger_map["hltdijet20"], bin="50..80")
dataTriggerMiter.add(trigger_map["hltdijet40"], bin="50..80")

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

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

singleDataMonitorNode = Node("singleDataMonitor")
g.addNode(singleDataMonitorNode)
singleDataMonitor = Miter()

g.addGraph( treeGraph )

#
# Merge triggers for the B range
#
dataForWeights = {}
haddedDataMiterBRange = Miter()
dataForPlots = Miter()
for opoint in operating_points:
    for bin in jet_bins:  
        currNode = hadd_helper( g, "-%s-%s-data-brange" % (bin[0],opoint), 
                                        skiplessDataMiter.getValues( bin=bin[0],
                                        opoint = opoint,
                                        dataset = 'RUN2010B' ) )
        haddedDataMiterBRange.add(
                            currNode,
                            opoint = opoint,
                            bin = bin[0] )
        print "the opoint is %s" % opoint
        singleMonitorMiter.add( currNode,\
                                                bin     = bin[0],
                                                opoint  = opoint,
                                                njetpt  = True,
                                                njeteta = True,
                                                privert = True,
                                                type    = "hadd_data" )
        dataForWeights[ bin[0] ] = currNode
        if opoint == "TCHEM":
            dataForPlots.add( currNode, bin = bin[0] )
#
# Merge Bins
#