#                        command = "dbs search --query='find file where dataset=%s' | tail -n +5 > input.txt" % dataset[0],
#                        output="input.txt", 
#                        noEmptyFiles=True)
#    g.addNode( fileList )
#    g.addEdge( nullInput, fileList, datasetSearch )
#
#


#
# Generate trees from QCD and a child node with event counts
#
#qcdTreeNodes = {}
#eventCountNodes = {}

ttbarTreeMiter  = Miter()
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
]
trigger_list_linked = {
    "RUN2010B": [
        ["HLT_BTagMu_DiJet20U*", "hltdijet20u", "147196", "148818", "HLT_BTagMu_DiJet20U"],
        # [ "HLT_BTagMu_DiJet30U*","hltdijet30u", "148819", "149294","HLT_BTagMu_DiJet30U"   ],
        ["HLT_BTagMu_Jet20U", "hltjet20u", "146428", "147116", "HLT_BTagMu_Jet20U"],
    ],
    "RUN2010A": [["HLT_BTagMu_Jet10U", "hltjet10u", "141961", "142039", "HLT_BTagMu_Jet10U"]],
}
data_datasets = [["/BTau/Run2010B-Dec22ReReco_v1/AOD", "RUN2010B"], ["/BTau/Run2010A-Dec22ReReco_v1/AOD", "RUN2010A"]]


#
# 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)
Exemple #3
0
from ScriptGraph.Graph.LocalScriptEdge import LocalScriptEdge
from ScriptGraph.Helpers.BindFunction import BindFunction
from ScriptGraph.Helpers.BindSubstitutes import BindSubstitutes
from ScriptGraph.Helpers.BindPreviousOutput import BindPreviousOutput
from ScriptGraph.Graph.NullEdge import NullEdge

sys.path.append( os.path.dirname( os.path.abspath( __file__ )  ))
import genTree415 as genTree
from s8.MonitorInput import run_monitor_input_helper
from s8.RootQCD import merge_with_root_qcd_helper
from s8.Hadd import hadd_helper

from ScriptGraph.Helpers.Miter import Miter

g = Graph.Graph()
singleMonitorMiter = Miter()
baseWorkDir = "/uscms_data/d2/meloam/input415x2"
g.setWorkDir( baseWorkDir )
treeGraph = genTree.getGraph()
exports   = genTree.getDatasets()

g.addGraph( treeGraph )

operating_points = ["TCHEM", "TCHEL", "TCHET",
                    "TCHPT",  "TCHPM",  "TCHPL",
                    "SSVT",   "SSVM",   "SSVL",
                    "SSVHET", "SSVHEM",
                    "SSVHPT" ]
#operating_points = [ "TCHEL", "SSVHEM","TCHEM","SSVHPT" ]

operating_points = ["SSVHEM",]#"TCHEM", "TCHEL","TCHPT"]
                        command = "dbs search --query='find file where dataset=%s' | tail -n +5 > input.txt" % dataset[0],
                        output="input.txt", 
                        noEmptyFiles=True)
    g.addNode( fileList )
    g.addEdge( nullInput, fileList, datasetSearch )




#
# Generate trees from QCD and a child node with event counts
#
#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
    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()
    "60to80": ["HLT_BTagMu_DiJet20U"],
    "80to140": ["HLT_BTagMu_DiJet20U"],
    "140to": [],
}

operating_points = ["TCHEM", "TCHEL", "TCHPT", "TCHPM", "TCHPL", "SSVT", "SSVM", "SSVL", "SSVHET", "SSVHEM", "SSVHPT"]

operating_points = operating_points[0:1]

jet_bins = [["40to60", "40..60"], ["60to80", "60..80"], ["80to140", "80..140"], ["140to", "140.."]]


#
# Global lists
#
singleMonitorMiter = Miter()
comparisonMonitorMiter = Miter()
#
# Helpers
#
monitorInputLinkMiter = Miter()


def run_monitor_input_helper(
    g,
    step_postfix,
    input_files=None,  # can be a node from event generation
    muon_pt=None,
    jet_pt=None,
    trigger_name=None,
    log=None,
             ,["140to", "140..","135","225"]
           ]
trigger_list_linked = { 'RUN2010B' : [ [ "HLT_BTagMu_DiJet20U*","hltdijet20u", "147196", "148818","HLT_BTagMu_DiJet20U" ],
                                     # "HLT_BTagMu_DiJet30U*","hltdijet30u", "148819", "149294","HLT_BTagMu_DiJet30U"   ],
                                     [ "HLT_BTagMu_Jet20U"   ,"hltjet20u"  , "146428", "147116","HLT_BTagMu_Jet20U"  ] ],
                        'RUN2010A' : [ [ "HLT_BTagMu_Jet10U"   ,"hltjet10u"  , "141961", "142039","HLT_BTagMu_Jet10U" ] ]
                                  }
data_datasets = [ ['/BTau/Run2010B-Dec22ReReco_v1/AOD', 'RUN2010B'],
                  ['/BTau/Run2010A-Dec22ReReco_v1/AOD', 'RUN2010A']
]


#
# 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()
from ScriptGraph.Graph.LocalScriptEdge import LocalScriptEdge
from ScriptGraph.Helpers.BindFunction import BindFunction
from ScriptGraph.Helpers.BindSubstitutes import BindSubstitutes
from ScriptGraph.Helpers.BindPreviousOutput import BindPreviousOutput
from ScriptGraph.Graph.NullEdge import NullEdge

sys.path.append( os.path.dirname( os.path.abspath( __file__ )  ))
import genTree
from s8.MonitorInput import run_monitor_input_helper
from s8.RootQCD import merge_with_root_qcd_helper
from s8.Hadd import hadd_helper

from ScriptGraph.Helpers.Miter import Miter

g = Graph.Graph()
singleMonitorMiter = Miter()
baseWorkDir = "/uscms_data/d2/meloam/input39x2"
g.setWorkDir( baseWorkDir )
treeGraph = genTree.getGraph()
exports   = genTree.getDatasets()

g.addGraph( treeGraph )

operating_points = ["TCHEM", "TCHEL", "TCHET",
                    "TCHPT",  "TCHPM",  "TCHPL",
                    "SSVT",   "SSVM",   "SSVL",
                    "SSVHET", "SSVHEM",
                    "SSVHPT" ]

#operating_points = [ "TCHEL" ]
    "CSVT",
]
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()
from ScriptGraph.Graph.LocalScriptEdge import LocalScriptEdge
from ScriptGraph.Helpers.BindFunction import BindFunction
from ScriptGraph.Helpers.BindSubstitutes import BindSubstitutes
from ScriptGraph.Helpers.BindPreviousOutput import BindPreviousOutput
from ScriptGraph.Graph.NullEdge import NullEdge

sys.path.append( os.path.dirname( os.path.abspath( __file__ )  ))
import 39x
from s8.MonitorInput import run_monitor_input_helper
from s8.RootQCD import merge_with_root_qcd_helper
from s8.Hadd import hadd_helper

from ScriptGraph.Helpers.Miter import Miter

g = Graph.Graph()
singleMonitorMiter = Miter()
baseWorkDir = "/uscms_data/d2/meloam/input39x2"
g.setWorkDir( baseWorkDir )
treeGraph = genTree.getGraph()
exports   = genTree.getDatasets()

g.addGraph( treeGraph )

#
# Merge triggers for the B range
#
dataForWeights = {}
haddedDataMiterBRange = Miter()
dataForPlots = Miter()
for opoint in operating_points:
    for bin in jet_bins: