コード例 #1
0
def createJMECorrector(isMC=True,
                       dataYear=2016,
                       runPeriod="B",
                       jesUncert="Total",
                       redojec=False,
                       jetType="AK4PFchs",
                       noGroom=False):

    jecTag_ = jecTagsMC[dataYear] if isMC else jecTagsDATA[dataYear +
                                                           runPeriod]

    jmeUncert_ = [x for x in jesUncert.split(",")]

    jerTag_ = jerTagsMC[dataYear]

    jmrValues_ = jmrValues[dataYear]

    jmsValues_ = jmsValues[dataYear]

    print 'JEC=', jecTag_, '\t JER=', jerTag_

    jmeCorrections = None
    #jme corrections
    if isMC:
        jmeCorrections = lambda: jetmetUncertaintiesProducer(
            era=dataYear,
            globalTag=jecTag_,
            jesUncertainties=jmeUncert_,
            redoJEC=redojec,
            jerTag=jerTag_,
            jetType=jetType,
            noGroom=noGroom,
            jmrVals=jmrValues_,
            jmsVals=jmsValues_)
    else:
        jmeCorrections = lambda: jetRecalib(globalTag=jecTag_,
                                            archive=archiveTag[dataYear],
                                            jetType=jetType,
                                            redojec=redojec)
    return jmeCorrections
コード例 #2
0
        jecarc = "Spring18_ppRef5TeV_V4_MC"
        #mod.append()
    else:
        mod.append(puWeight_2017())
#elif year == 18 and era != '':
#  jecfile = 'Autumn18_Run%s_V8_DATA'%era
#  jecarc  = 'Autumn18_V8_DATA'
elif year == 5:
    jecfile = 'Spring18_ppRef5TeV_V4_DATA'
    jecarc = 'Spring18_ppRef5TeV_V4_DATA'
    #jecfile = 'Spring18_ppRef5TeV_V2_DATA'
    #jecarc  = 'Spring18_ppRef5TeV_V2_DATA'

if jecfile != '':
    print 'JEC file: ', jecfile
    mod.append(jetRecalib(jecfile, jecarc, redoJEC=True, year=year))

if doTnP:
    if isData:
        if year == 17: mod.append(addTnPMuon17data())
        elif year == 16: mod.append(addTnPMuon16data())
        elif year == 18: mod.append(addTnPMuonForMoriond18data())
    else:
        if year == 17: mod.append(addTnPMuon17())
        elif year == 16: mod.append(addTnPMuon16())
        elif year == 18: mod.append(addTnPMuonForMoriond18())
    slimfilein = "SlimFileTnP.txt"
    slimfileout = "SlimFileTnP.txt"
    cut = 'nMuon >= 2 && Muon_pt[0] > 25 && Muon_pt[1] >= 12'
else:
    if not doNotSkim: mod.append(skimRecoLeps())
コード例 #3
0
        jecarc = "Autumn18_V8_MC"
        mod.append(puWeight_2018())
    elif year == 5:
        jecfile = "Spring18_ppRef5TeV_V2_MC"
        jecarc = "Spring18_ppRef5TeV_V2_MC"
        #mod.append()
    else:
        mod.append(puAutoWeight_2017())
elif year == 18 and era != '':
    jecfile = 'Autumn18_Run%s_V8_DATA' % era
    jecarc = 'Autumn18_V8_DATA'
elif year == 5:
    jecfile = 'Spring18_ppRef5TeV_V2_DATA'
    jecarc = 'Spring18_ppRef5TeV_V2_DATA'

if jecfile != '': mod.append(jetRecalib(jecfile, jecarc))

if doTnP:
    if isData:
        if year == 17: mod.append(addTnPMuon17data())
        elif year == 16: mod.append(addTnPMuon16data())
        elif year == 18: mod.append(addTnPMuonForMoriond18data())
    else:
        if year == 17: mod.append(addTnPMuon17())
        elif year == 16: mod.append(addTnPMuon16())
        elif year == 18: mod.append(addTnPMuonForMoriond18())
    slimfile = "SlimFileTnP.txt"
    cut = 'nMuon >= 2 && Muon_pt[0] > 25 && Muon_pt[1] >= 12'
else:
    if not doNotSkim: mod.append(skimRecoLeps())
    else: cut = ''
コード例 #4
0
Tuples.append(("2018", "B", True, "El"))
Tuples.append(("2018", "C", True, "El"))
Tuples.append(("2018", "D", True, "El"))

if args.era:
    Tuples = [tup for tup in Tuples if tup[0] == args.era]
if args.subera:
    Tuples = [tup for tup in Tuples if tup[1] == args.subera]

Tuples.sort(key=lambda j: j[1])  #sort by subera
Tuples.sort(key=lambda j: j[0])  #then by era, again

#### Dictionary for the data jetrecalibrator
dataRecalib = {
    "2017": {
        "B": jetRecalib("Fall17_17Nov2017B_V32_DATA",
                        "Fall17_17Nov2017_V32_DATA"),
        "C": jetRecalib("Fall17_17Nov2017C_V32_DATA",
                        "Fall17_17Nov2017_V32_DATA"),
        "D": jetRecalib("Fall17_17Nov2017DE_V32_DATA",
                        "Fall17_17Nov2017_V32_DATA"),
        "E": jetRecalib("Fall17_17Nov2017DE_V32_DATA",
                        "Fall17_17Nov2017_V32_DATA"),
        "F": jetRecalib("Fall17_17Nov2017F_V32_DATA",
                        "Fall17_17Nov2017_V32_DATA"),
        "NONE": "NothingToSeeHere"
    }
}

#Test the module initialization and cutstrings produced
if args.stage == 'test':
    Mods = []
コード例 #5
0
def multiplier(
    fileList,
    hName=None,
    NLeps=None,
    theEra=["2017", "NONE"],
    theBTagger=['CSVv2', 'M'],
    evtConfig=[True, 1, 1, 1, 1],
    maxevt=-1
):  #evtConfig=[isData, genEquivalentLuminosity, genXS, genNEvents]
    if hName == None:
        hDirName = None
    else:
        hName = hName
        hDirName = "plots"
        modulesMC = [
            puWeightProducer("auto",
                             pufile_data2017,
                             "pu_mc",
                             "pileup",
                             verbose=False),
            Trigger(triggers),
            jetmetUncertaintiesProducer("2017",
                                        "Fall17_17Nov2017_V32_MC", ["All"],
                                        redoJEC=True),
            btagSFProducer(theEra[0], algo=theBTagger[0]),
            BaselineSelector(maxevt=maxevt,
                             probEvt=None,
                             isData=evtConfig[0],
                             genEquivalentLuminosity=evtConfig[1],
                             genXS=evtConfig[2],
                             genNEvents=evtConfig[3],
                             genSumWeights=evtConfig[4],
                             era=theEra[0],
                             btagging=theBTagger,
                             lepPt=25,
                             MET=50,
                             HT=500,
                             invertZWindow=False,
                             invertZWindowEarlyReturn=False,
                             GenTop_LepSelection=None,
                             jetPtVar="pt_nom",
                             jetMVar="mass_nom"),
        ]
        dataRecalib = {
            '2017': {
                'B':
                jetRecalib("Fall17_17Nov2017B_V32_DATA",
                           "Fall17_17Nov2017_V32_DATA"),
                'C':
                jetRecalib("Fall17_17Nov2017C_V32_DATA",
                           "Fall17_17Nov2017_V32_DATA"),
                'D':
                jetRecalib("Fall17_17Nov2017DE_V32_DATA",
                           "Fall17_17Nov2017_V32_DATA"),
                'E':
                jetRecalib("Fall17_17Nov2017DE_V32_DATA",
                           "Fall17_17Nov2017_V32_DATA"),
                'F':
                jetRecalib("Fall17_17Nov2017F_V32_DATA",
                           "Fall17_17Nov2017_V32_DATA"),
                'NONE':
                'NothingToSeeHere'
            }
        }
        modulesData = [
            Trigger(triggers),
            dataRecalib[theEra[0]][theEra[1]],
            BaselineSelector(maxevt=maxevt,
                             probEvt=None,
                             isData=evtConfig[0],
                             genEquivalentLuminosity=evtConfig[1],
                             genXS=evtConfig[2],
                             genNEvents=evtConfig[3],
                             era=theEra[0],
                             btagging=theBTagger,
                             lepPt=25,
                             MET=50,
                             HT=500,
                             invertZWindow=False,
                             invertZWindowEarlyReturn=False,
                             GenTop_LepSelection=None,
                             jetPtVar="pt_nom",
                             jetMVar="mass_nom"),
        ]
    if evtConfig[0] == True:
        theModules = modulesData
    else:
        theModules = modulesMC
    p = PostProcessor(
        "/tmp/nmangane",  #"./"+theEra+"/"+theBTagger[0],
        fileList,
        modules=theModules,
        noOut=False,
        postfix=hName,
        haddFileName="Tree_" + hName,
        histFileName=hName,
        histDirName=hDirName,
    )
    p.run()