def main():
    ROOT.PyConfig.IgnoreCommandLineOptions = True
    ROOT.gROOT.SetBatch(True)

    postprocessor = PostProcessor(
        # The output directory is the current working directory.
        outputDir='.',
        # Any and all command line arguments are taken to be an input file path.
        inputFiles=sys.argv[1:],
        # The skimming selection string.
        cut=(
            '(Sum$(Electron_pt > 20 && Electron_mvaSpring16GP_WP90) >= 2'
            '    || Sum$(Muon_pt > 20) >= 2'
            '    || Sum$(Electron_pt > 20 && Electron_mvaSpring16GP_WP80) >= 1'
            '    || Sum$(Muon_pt > 20 && Muon_tightId) >= 1'
            '    || (Sum$(Muon_pt > 20) == 0 && Sum$(Electron_pt > 20 && Electron_mvaSpring16GP_WP90) == 0 && MET_pt > 80))'
            '&& Sum$(abs(Jet_eta) < 2.5 && Jet_pt > 20 && Jet_jetId) >= 2'
        ),
        # The path to a text file describing which branches to keep and drop.
        branchsel='keep_and_drop.txt',
        # Additional postprocessing modules which add additional selections and branches.
{% if is_data %}
        modules=[vhbb()],
{% else %}
        modules=[btagSFProducer('cmva'), jecUncertAll_cppOut(), vhbb()],
{% endif %}
        # Preserve input file provenance information.
        provenance=True,
    )

    postprocessor.run()
    algostring='k_httTT_Hj',
    csv_looseWP=0.5426,
    csv_mediumWP=0.8484,
    selection=[
        lambda leps, jets, event: len(leps) >= 2 and len(jets) >= 3,
        lambda leps, jets, event: leps[0].conePt > 20 and leps[1].conePt > 10,
    ])

from CMGTools.TTHAnalysis.tools.finalMVA_DNN import finalMVA_DNN
finalMVA = lambda: finalMVA_DNN()

from PhysicsTools.NanoAODTools.postprocessing.modules.btv.btagSFProducer import btagSFProducer

btagSF2016_dj = lambda: btagSFProducer("Legacy2016",
                                       'deepjet',
                                       collName="JetSel_Recl",
                                       storeOutput=False,
                                       perJesComponents=True)
btagSF2017_dj = lambda: btagSFProducer("2017",
                                       'deepjet',
                                       collName="JetSel_Recl",
                                       storeOutput=False,
                                       perJesComponents=True)
btagSF2018_dj = lambda: btagSFProducer("2018",
                                       'deepjet',
                                       collName="JetSel_Recl",
                                       storeOutput=False,
                                       perJesComponents=True)

from CMGTools.TTHAnalysis.tools.nanoAOD.BtagSFs import BtagSFs
bTagSFs = lambda: BtagSFs(
def main(args):
    isdata = len(args.dataEra) > 0
    isfastsim = args.isFastSim
    isSUSY = args.sampleName.startswith("SMS_")

    if isdata and isfastsim:
        print "ERROR: It is impossible to have a dataset that is both data and fastsim"
        exit(0)

    if isdata:
        dataType = "Data"
        if not args.era + args.dataEra in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)
    elif isfastsim:
        dataType = "FASTSIM"
        if not args.era + args.dataEra in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)
    else:
        dataType = "MC"
        if not args.era in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)

    mods = []

    #~~~~~ Common modules for Data and MC ~~~~~
    taggerWorkingDirectory = os.environ[
        "CMSSW_BASE"] + "/src/PhysicsTools/NanoSUSYTools/python/processors/" + DataDepInputs[
            dataType][args.era if not isdata else
                      (args.era + args.dataEra)]["taggerWD"]
    mods += [
        #Stop0lObjectsProducer(args.era),
        #DeepTopProducer(args.era, taggerWorkingDirectory, sampleName=args.sampleName, isFastSim=isfastsim, isData=isdata),
        #Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim),
        SoftBDeepAK8SFProducer(args.era,
                               taggerWorkingDirectory,
                               isData=isdata,
                               isFastSim=isfastsim,
                               sampleName=args.sampleName),
    ]

    #~~~~~ Modules for MC Only ~~~~
    if not isdata:
        ## Major modules for MC
        mods += [
            btagSFProducer(args.era, algo="deepcsv"),
            BtagSFWeightProducer(DataDepInputs[dataType][args.era]["bTagEff"],
                                 args.sampleName,
                                 DeepCSVMediumWP[args.era],
                                 isfastsim=isfastsim),
            #TopReweightProducer(args.era, args.sampleName, isData=isdata),
            #DeepTopProducer(args.era, taggerWorkingDirectory, "JESUp", sampleName=args.sampleName, isFastSim=isfastsim, isData=isdata),
            #DeepTopProducer(args.era, taggerWorkingDirectory, "JESDown", sampleName=args.sampleName, isFastSim=isfastsim, isData=isdata),
            #Stop0lObjectsProducer(args.era, "JESUp"),
            #Stop0lObjectsProducer(args.era, "JESDown"),
            #Stop0lObjectsProducer(args.era, "METUnClustUp"),
            #Stop0lObjectsProducer(args.era, "METUnClustDown"),
            #Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="JESUp"),
            #Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="JESDown"),
            #Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="METUnClustUp"),
            #Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="METUnClustDown"),
        ]
    #============================================================================#
    #-------------------------     Run PostProcessor     ------------------------#
    #============================================================================#
    files = []
    if len(args.inputfile) > 5 and args.inputfile[0:5] == "file:":
        #This is just a single test input file
        files.append(args.inputfile[5:])
    else:
        #this is a file list
        with open(args.inputfile) as f:
            files = [line.strip() for line in f]

    p = PostProcessor(args.outputfile,
                      files,
                      cut=None,
                      branchsel=None,
                      postfix="",
                      outputbranchsel=None,
                      modules=mods,
                      provenance=False,
                      maxEvents=args.maxEvents)
    p.run()
def main(args):
    isdata = len(args.dataEra) > 0
    isfastsim = args.isFastSim
    isSUSY = args.sampleName.startswith("SMS_")

    if isdata and isfastsim:
        print "ERROR: It is impossible to have a dataset that is both data and fastsim"
        exit(0)

    if isdata:
        dataType = "Data"
        if not args.era + args.dataEra in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)
    elif isfastsim:
        dataType = "FASTSIM"
        if not args.era + args.dataEra in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)
    else:
        dataType = "MC"
        if not args.era in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)

    mods = []

    #~~~~~ Different modules for Data and MC ~~~~~
    # These modules must be run first in order to update JEC and MET approperiately for future modules
    # The MET update module must also be run before the JEC update modules
    if args.era == "2017":
        # EE noise mitigation in PF MET
        # https://hypernews.cern.ch/HyperNews/CMS/get/JetMET/1865.html
        mods.append(UpdateMETProducer("METFixEE2017"))
    if args.era == "2018":
        # The 2018 JetID came after our production
        mods.append(UpdateJetID(args.era))

    if isdata:
        # Apply resediual JEC on Data
        if DataDepInputs[dataType][args.era + args.dataEra]["redoJEC"]:
            mods.append(
                jetRecalib(DataDepInputs[dataType][args.era +
                                                   args.dataEra]["JEC"]))
    else:
        # JetMET uncertainty ?
        mods += [
            jetmetUncertaintiesProducer(
                args.era,
                DataDepInputs[dataType][args.era]["JECMC"],
                jerTag=DataDepInputs[dataType][args.era]["JERMC"],
                redoJEC=DataDepInputs[dataType][args.era]["redoJEC"],
                doSmearing=False,
                doL2L3=not isfastsim)
        ]

    #~~~~~ Common modules for Data and MC ~~~~~
    mods += [
        eleMiniCutID(),
        Stop0lObjectsProducer(args.era),
        TopTaggerProducer(recalculateFromRawInputs=True,
                          topDiscCut=DeepResovledDiscCut,
                          cfgWD=os.environ["CMSSW_BASE"] +
                          "/src/PhysicsTools/NanoSUSYTools/python/processors"),
        DeepTopProducer(args.era),
        Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim),
        Stop0l_trigger(args.era),
        UpdateEvtWeight(isdata, args.crossSection, args.nEvents,
                        args.sampleName)
    ]

    #~~~~~ Modules for MC Only ~~~~~
    if not isdata:
        pufile_data = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/%s" % (
            os.environ['CMSSW_BASE'],
            DataDepInputs[dataType][args.era]["pileup_Data"])
        pufile_mc = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/%s" % (
            os.environ['CMSSW_BASE'],
            DataDepInputs[dataType][args.era]["pileup_MC"])
        ## TODO: ZW don't understand this part, So this is for fullsim?
        ## Isn't jetmetUncertaintiesProducer included jecUncertProducer
        if not isfastsim:
            mods += [
                jecUncertProducer(DataDepInputs[dataType][args.era]["JECMC"]),
            ]
        ## Major modules for MC
        mods += [
            TopTaggerProducer(
                recalculateFromRawInputs=True,
                suffix="JESUp",
                AK4JetInputs=("Jet_pt_jesTotalUp", "Jet_eta", "Jet_phi",
                              "Jet_mass_jesTotalUp"),
                topDiscCut=DeepResovledDiscCut,
                cfgWD=os.environ["CMSSW_BASE"] +
                "/src/PhysicsTools/NanoSUSYTools/python/processors"),
            TopTaggerProducer(
                recalculateFromRawInputs=True,
                suffix="JESDown",
                AK4JetInputs=("Jet_pt_jesTotalDown", "Jet_eta", "Jet_phi",
                              "Jet_mass_jesTotalDown"),
                topDiscCut=DeepResovledDiscCut,
                cfgWD=os.environ["CMSSW_BASE"] +
                "/src/PhysicsTools/NanoSUSYTools/python/processors"),
            DeepTopProducer(args.era, "JESUp"),
            DeepTopProducer(args.era, "JESDown"),
            Stop0lObjectsProducer(args.era, "JESUp"),
            Stop0lObjectsProducer(args.era, "JESDown"),
            Stop0lObjectsProducer(args.era, "METUnClustUp"),
            Stop0lObjectsProducer(args.era, "METUnClustDown"),
            Stop0lBaselineProducer(args.era,
                                   isData=isdata,
                                   isFastSim=isfastsim,
                                   applyUncert="JESUp"),
            Stop0lBaselineProducer(args.era,
                                   isData=isdata,
                                   isFastSim=isfastsim,
                                   applyUncert="JESDown"),
            Stop0lBaselineProducer(args.era,
                                   isData=isdata,
                                   isFastSim=isfastsim,
                                   applyUncert="METUnClustUp"),
            Stop0lBaselineProducer(args.era,
                                   isData=isdata,
                                   isFastSim=isfastsim,
                                   applyUncert="METUnClustDown"),
            PDFUncertiantyProducer(isdata, isSUSY),
            lepSFProducer(args.era),
            lepSFProducer(args.era,
                          muonSelectionTag="Medium",
                          electronSelectionTag="Medium",
                          photonSelectionTag="Medium"),
            puWeightProducer(pufile_mc, pufile_data, args.sampleName,
                             "pileup"),
            btagSFProducer(era=args.era, algo="deepcsv"),
            BtagSFWeightProducer("allInOne_bTagEff_deepCSVb_med.root",
                                 args.sampleName, DeepCSVMediumWP[args.era]),
            # statusFlag 0x2100 corresponds to "isLastCopy and fromHardProcess"
            # statusFlag 0x2080 corresponds to "IsLastCopy and isHardProcess"
            GenPartFilter(statusFlags=[0x2100, 0x2080, 0x2000],
                          pdgIds=[0, 0, 22],
                          statuses=[0, 0, 1]),
            # TODO: first implemtation, need double check
            ISRSFWeightProducer(args.era, isSUSY, "allInOne_ISRWeight.root",
                                args.sampleName),
        ]
        # Special PU reweighting for 2017 separately
        if args.era == "2017":
            pufile_dataBtoE = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/Collisions17_BtoE.root" % os.environ[
                'CMSSW_BASE']
            pufile_dataF = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/Collisions17_F.root" % os.environ[
                'CMSSW_BASE']
            mods += [
                puWeightProducer(pufile_mc,
                                 pufile_dataBtoE,
                                 args.sampleName,
                                 "pileup",
                                 name="17BtoEpuWeight"),
                puWeightProducer(pufile_mc,
                                 pufile_dataF,
                                 args.sampleName,
                                 "pileup",
                                 name="17FpuWeight")
            ]
        # 2016 and 2017 L1 ECal prefiring reweighting
        if args.era == "2016" or args.era == "2017":
            mods.append(PrefCorr(args.era))

    #============================================================================#
    #-------------------------     Run PostProcessor     ------------------------#
    #============================================================================#
    files = []
    if len(args.inputfile) > 5 and args.inputfile[0:5] == "file:":
        #This is just a single test input file
        files.append(args.inputfile[5:])
    else:
        #this is a file list
        with open(args.inputfile) as f:
            files = [line.strip() for line in f]

    p = PostProcessor(args.outputfile,
                      files,
                      cut=None,
                      branchsel=None,
                      outputbranchsel="keep_and_drop.txt",
                      modules=mods,
                      provenance=False,
                      maxEvents=args.maxEvents)
    p.run()
     Stop0lObjectsProducer(args.era, "JESUp"),
     Stop0lObjectsProducer(args.era, "JESDown"),
     Stop0lObjectsProducer(args.era, "METUnClustUp"),
     Stop0lObjectsProducer(args.era, "METUnClustDown"),
     Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="JESUp"),
     Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="JESDown"),
     Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="METUnClustUp"),
     Stop0lBaselineProducer(args.era, isData=isdata, isFastSim=isfastsim, applyUncert="METUnClustDown"),
     PDFUncertiantyProducer(isdata, isSUSY),
     lepSFProducer(args.era),
     lepSFProducer(args.era, muonSelectionTag="Medium",
                   electronSelectionTag="Medium",
                   photonSelectionTag="Medium", 
                   tauSelectionTag="Tight"),
     puWeightProducer(pufile_mc, pufile_data, args.sampleName,"pileup"),
     btagSFProducer(era=args.era, algo="deepcsv"),
     BtagSFWeightProducer("allInOne_bTagEff_deepCSVb_med.root", args.sampleName, DeepCSVMediumWP[args.era]),
     # statusFlag 0x2100 corresponds to "isLastCopy and fromHardProcess"
     # statusFlag 0x2080 corresponds to "IsLastCopy and isHardProcess"
     GenPartFilter(statusFlags = [0x2100, 0x2080, 0x2000], pdgIds = [0, 0, 22], statuses = [0, 0, 1]),
     # TODO: first implemtation, need double check
     ISRSFWeightProducer(args.era, isSUSY, "allInOne_ISRWeight.root", args.sampleName), 
     ]
 # Special PU reweighting for 2017 separately
 if args.era == "2017":
     pufile_dataBtoE = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/Collisions17_BtoE.root" % os.environ['CMSSW_BASE']
     pufile_dataF = "%s/src/PhysicsTools/NanoSUSYTools/data/pileup/Collisions17_F.root" % os.environ['CMSSW_BASE']
     mods += [
         puWeightProducer(pufile_mc, pufile_dataBtoE, args.sampleName,"pileup", name="17BtoEpuWeight"),
         puWeightProducer(pufile_mc, pufile_dataF, args.sampleName,"pileup", name="17FpuWeight")
     ]
from VBFHToInv.NanoAODTools.postprocessing.modules.metCleaning import *
from VBFHToInv.NanoAODTools.postprocessing.modules.crCreator import *
from VBFHToInv.NanoAODTools.postprocessing.modules.crDiLepCreator import *
from VBFHToInv.NanoAODTools.postprocessing.modules.crSingleLepCreator import *
from VBFHToInv.NanoAODTools.postprocessing.modules.selectionCreator import *
from VBFHToInv.NanoAODTools.postprocessing.modules.lepSFProducer import lepSFtight
from VBFHToInv.NanoAODTools.postprocessing.modules.lepSFProducer import lepSFveto
from VBFHToInv.NanoAODTools.postprocessing.modules.nloSFProducer import nloSF
from VBFHToInv.NanoAODTools.postprocessing.modules.bosonDecayFinder import bosonDecay
from VBFHToInv.NanoAODTools.postprocessing.modules.trigger_selection import TriggerSelectionConstructor

from VBFHToInv.NanoAODTools.postprocessing.modules.objectCleaning import *

#btagging weights - give event weight automatically based on jets discri (so all working points automatically)
from PhysicsTools.NanoAODTools.postprocessing.modules.btv.btagSFProducer import btagSFProducer
btagSF2017deepCSV = lambda: btagSFProducer("2017", 'deepcsv')

#pu weight - data file is hardcoded !!!
from PhysicsTools.NanoAODTools.postprocessing.modules.common.puWeightProducer import puWeightProducer
pufile_data = "%s/src/VBFHToInv/NanoAODTools/data/pileup/RerecoData2017withSysts.root" % os.environ[
    'CMSSW_BASE']
puWeight2017 = lambda: puWeightProducer(
    'auto', pufile_data, "pu_mc", "pileup", verbose=False)

#how to change data and MC files ??
#pufile_data2017="%s/src/VBFHToInv/NanoAODTools/python/postprocessing/data/pileup/pileup_Cert_294927-306462_13TeV_PromptReco_Collisions17_withVar.root" % os.environ['CMSSW_BASE']
#pufile_mcFall17="%s/src/VBFHToInv/NanoAODTools/python/postprocessing/data/pileup/" % os.environ['CMSSW_BASE']
#puWeight2017 = lambda : puWeightProducer(pufile_mcFall17,pufile_data2017,"pu_mc","pileup",verbose=False)

#lepton SF
#from PhysicsTools.NanoAODTools.postprocessing.modules.common.lepSFProducer import lepSF
def main(args):
    isdata = len(args.dataEra) > 0

    if isdata:
        dataType = "Data"
        if not args.era + args.dataEra in DataDepInputs[dataType]:
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)

    else:
        dataType = "MC"
        if not args.era in DataDepInputs[dataType].keys():
            print "ERROR: Era \"" + args.era + "\" not recognized"
            exit(0)

    mods = []

    #~~~~~ Different modules for Data and MC ~~~~~
    # These modules must be run first in order to update JEC and MET approperiately for future modules
    # The MET update module must also be run before the JEC update modules
    if args.era == "2017":
        # EE noise mitigation in PF MET
        # https://hypernews.cern.ch/HyperNews/CMS/get/JetMET/1865.html
        mods.append(UpdateMETProducer("METFixEE2017"))

    if isdata:
        # Apply resediual JEC on Data
        mods.append(
            createJMECorrector(isMC=False,
                               dataYear=int(args.era),
                               runPeriod=args.dataEra,
                               jetType="AK8PFPuppi")())
    else:
        mods.append(
            createJMECorrector(
                isMC=True,
                dataYear=int(args.era),
                jesUncert="Merged",
                applyHEMfix=(True if args.era == '2018' else False))())
        mods.append(
            createJMECorrector(
                isMC=True,
                dataYear=int(args.era),
                jesUncert="Merged",
                jetType="AK8PFPuppi",
                applyHEMfix=(True if args.era == '2018' else False))())

    #~~~~~ Common modules for Data and MC ~~~~~
    mods.append(eleMiniCutID())

    #~~~~~ Modules for MC Only ~~~~
    if not isdata:
        pufile_data = "{0}/src/PhysicsTools/NanoAODTools/python/postprocessing/data/pileup/{1}".format(
            os.environ['CMSSW_BASE'],
            DataDepInputs[dataType][args.era]["pileup_Data"])
        pufile_mc = "{0}/src/PhysicsTools/NanoAODTools/python/postprocessing/data/pileup/{1}".format(
            os.environ['CMSSW_BASE'],
            DataDepInputs[dataType][args.era]["pileup_MC"])
        ## Major modules for MC
        mods += [
            PDFUncertaintyProducer(isdata),
            puWeightProducer(pufile_mc, pufile_data, "pu_mc", "pileup"),
            btagSFProducer(args.era if args.era != '2016' else 'Legacy2016',
                           algo="deepcsv",
                           verbose=0),
            #btagSFProducer(args.era, algo="deepjet", verbose=0),
            BtagSFWeightProducer(args.era),
            #'''
            #statusFlag 0x2100 corresponds to "isLastCopy and fromHardProcess"
            #statusFlag 0x2080 corresponds to "IsLastCopy and isHardProcess"
            #'''
            GenPartFilter(statusFlags=[0x2100, 0x2080, 0x2000, 0],
                          pdgIds=[0, 0, 22, 0],
                          statuses=[0, 0, 1, 23]),
        ]
        # 2016 and 2017 L1 ECal prefiring reweighting
        if args.era == "2016" or args.era == "2017":
            era_map = {'2016': 'H', '2017': 'F'}
            prefargs = {
                "jetroot":
                "L1prefiring_jetpt_{0}Bto{1}.root".format(
                    args.era, era_map[args.era]),
                "jetmapname":
                "L1prefiring_jetpt_{0}Bto{1}".format(args.era,
                                                     era_map[args.era]),
                "photonroot":
                "L1prefiring_photonpt_{0}Bto{1}.root".format(
                    args.era, era_map[args.era]),
                "photonmapname":
                "L1prefiring_photonpt_{0}Bto{1}".format(
                    args.era, era_map[args.era])
            }
            mods.append(PrefCorr(**prefargs))

    #============================================================================#
    #-------------------------     Run PostProcessor     ------------------------#
    #============================================================================#
    files = []
    if len(args.inputfile) > 5 and args.inputfile[0:5] == "file:":
        #This is just a single test input file
        files.append(args.inputfile[5:])
    else:
        #this is a file list
        with open(args.inputfile) as f:
            files = [line.strip() for line in f]

    p = PostProcessor(args.outputfile,
                      files,
                      cut=None,
                      branchsel=None,
                      outputbranchsel="keep_and_drop.txt",
                      modules=mods,
                      provenance=False,
                      maxEntries=args.maxEvents,
                      prefetch=True)
    p.run()
Exemple #8
0
from PhysicsTools.NanoAODTools.postprocessing.modules.btv.btagSFProducer import btagSFProducer

btagSF_deep_2018 = lambda: btagSFProducer(era='2018', algo='deepcsv')
btagSF_deepFlav_2018 = lambda: btagSFProducer(era='2018', algo='deepjet')

btagSF_deep_2017 = lambda: btagSFProducer(era='2017', algo='deepcsv')
btagSF_deepFlav_2017 = lambda: btagSFProducer(era='2017', algo='deepjet')
btagSF_csvv2_2017 = lambda: btagSFProducer(era='2017', algo='csvv2')  # legacy

btagSF_deep_2016_TuneCP5 = lambda: btagSFProducer(era='2016_TuneCP5',
                                                  algo='deepcsv')
btagSF_deepFlav_2016_TuneCP5 = lambda: btagSFProducer(era='2016_TuneCP5',
                                                      algo='deepjet')
btagSF_deep_2016 = lambda: btagSFProducer(era='2016', algo='deepcsv')
btagSF_deepFlav_2016 = lambda: btagSFProducer(era='2016', algo='deepjet')
btagSF_csvv2_2016 = lambda: btagSFProducer(era='2016', algo='csvv2')  # legacy
btagSF_cmva_2016 = lambda: btagSFProducer(era='2016', algo='cmva')  # legacy

btagSF_deep_2018_LSLoose = lambda: btagSFProducer(
    era='2018', algo='deepcsv', jetCollectionName='JetAK4LSLoose')
btagSF_deepFlav_2018_LSLoose = lambda: btagSFProducer(
    era='2018', algo='deepjet', jetCollectionName='JetAK4LSLoose')

btagSF_deep_2017_LSLoose = lambda: btagSFProducer(
    era='2017', algo='deepcsv', jetCollectionName='JetAK4LSLoose')
btagSF_deepFlav_2017_LSLoose = lambda: btagSFProducer(
    era='2017', algo='deepjet', jetCollectionName='JetAK4LSLoose')
btagSF_csvv2_2017_LSLoose = lambda: btagSFProducer(
    era='2017', algo='csvv2', jetCollectionName='JetAK4LSLoose')  # legacy

btagSF_deep_2016_TuneCP5_LSLoose = lambda: btagSFProducer(
Exemple #9
0
p = PostProcessor(
    ".",
    files,
    cut=selection,
    branchsel=None,
    modules=[
        Grafter(["baseW/F=1."]),
        GenericFormulaAdder('data/formulasToAdd_MC.py'),
        PromptParticlesGenVarsProducer(),
        #wwNLLcorrectionWeightProducer(),
        #MetUnclusteredTreeMaker(),
        lepMergerLatino(),
        GenLeptonMatchProducer("Lepton"),
        #
        GenVarProducer(),
        #
        #l2KinProducer(),
        #l3KinProducer(),
        #l4KinProducer()
        btagSFProducer(era='2016', algo='cmva'),
        BTagEventWeightProducer()
    ],
    provenance=True,
    fwkJobReport=True)

p.run()

print "DONE"
os.system("ls -lR")