def loadPujetId(process,collection,mvaOnly=False,isChs=False,release="44X"):

    ## FIXME 52X and CHS options need to be properly filled
    if release.startswith("4"):
        if isChs:
            algos = stdalgos_4x
        else:
            algos = stdalgos_4x
    elif release.startswith("5"):
        if isChs:
            algos = chsalgos_5x
        else:
            algos = stdalgos_5x

    if not mvaOnly:
        setattr(process,
                "%s%s" % ("puJetId",collection), 
                pileupJetIdProducer.clone(
            produceJetIds = cms.bool(True),
            jetids = cms.InputTag(""),
            runMvas = cms.bool(False),
            jets = cms.InputTag(collection),
            vertexes = cms.InputTag("offlinePrimaryVertices"),
            algos = cms.VPSet(algos[0])
            )
                )
    setattr(process,
            "%s%s" % ("puJetMva",collection), 
            pileupJetIdProducer.clone(
        produceJetIds = cms.bool(False),
        jetids = cms.InputTag("%s%s" % ("puJetId",collection)),
        runMvas = cms.bool(True),
        jets = cms.InputTag(collection),
        vertexes = cms.InputTag("offlinePrimaryVertices"),
        algos = cms.VPSet(*algos)
        )
            )
    
    if mvaOnly:
        setattr(process, "%s%s" % ("puJetIdSequence",collection),
                getattr(process,"%s%s" % ("puJetMva",collection)) )
    else:
        setattr(process, "%s%s" % ("puJetIdSequence",collection),
                cms.Sequence(getattr(process,"%s%s" % ("puJetId",collection)) * getattr(process,"%s%s" % ("puJetMva",collection)) )
                )

    seqeuence = getattr(process, "%s%s" % ("puJetIdSequence",collection))
    inputsTag = cms.InputTag("%s%s" % ("puJetId",collection))
    mvaTags  = {}
    idTags   = {}
    for a in algos:
        mvaTags[a.label.value()] = cms.InputTag("%s%s" % ("puJetMva",collection), "%sDiscriminant" % a.label.value())
        idTags[a.label.value()] = cms.InputTag("%s%s" % ("puJetMva",collection), "%sId"           % a.label.value())
    outputCommands = [ "keep *_%s%s_*_*" % ("puJetId",collection),  "keep *_%s%s_*_*" % ("puJetMva",collection) ]
    
    return seqeuence,inputsTag,mvaTags,idTags,outputCommands
    stdalgos_4x,
    stdalgos_5x,
    stdalgos,
    cutbased,
    chsalgos_4x,
    chsalgos_5x,
    chsalgos,
)

#
# Standard pfJets
#
puJetId = pileupJetIdProducer.clone(
    produceJetIds=cms.bool(True),
    jetids=cms.InputTag(""),
    runMvas=cms.bool(False),
    jets=cms.InputTag("selectedPatJetsAK5PF"),
    vertexes=cms.InputTag("offlinePrimaryVertices"),
    algos=cms.VPSet(cutbased),
)

#
puJetMva = pileupJetIdProducer.clone(
    produceJetIds=cms.bool(False),
    jetids=cms.InputTag("puJetId"),
    runMvas=cms.bool(True),
    jets=cms.InputTag("selectedPatJetsAK5PF"),
    vertexes=cms.InputTag("offlinePrimaryVertices"),
    algos=stdalgos,
)

#
示例#3
0
def loadPujetId(process,
                collection,
                mvaOnly=False,
                isChs=False,
                release="44X"):

    ## FIXME 52X and CHS options need to be properly filled
    if release.startswith("4"):
        if isChs:
            algos = stdalgos_4x
        else:
            algos = stdalgos_4x
    elif release.startswith("5"):
        if isChs:
            algos = chsalgos_5x
        else:
            algos = stdalgos_5x

    if not mvaOnly:
        setattr(
            process, "%s%s" % ("puJetId", collection),
            pileupJetIdProducer.clone(
                produceJetIds=cms.bool(True),
                jetids=cms.InputTag(""),
                runMvas=cms.bool(False),
                jets=cms.InputTag(collection),
                vertexes=cms.InputTag("offlinePrimaryVertices"),
                algos=cms.VPSet(algos[0])))
    setattr(
        process, "%s%s" % ("puJetMva", collection),
        pileupJetIdProducer.clone(
            produceJetIds=cms.bool(False),
            jetids=cms.InputTag("%s%s" % ("puJetId", collection)),
            runMvas=cms.bool(True),
            jets=cms.InputTag(collection),
            vertexes=cms.InputTag("offlinePrimaryVertices"),
            algos=cms.VPSet(*algos)))

    if mvaOnly:
        setattr(process, "%s%s" % ("puJetIdSequence", collection),
                getattr(process, "%s%s" % ("puJetMva", collection)))
    else:
        setattr(
            process, "%s%s" % ("puJetIdSequence", collection),
            cms.Sequence(
                getattr(process, "%s%s" % ("puJetId", collection)) *
                getattr(process, "%s%s" % ("puJetMva", collection))))

    seqeuence = getattr(process, "%s%s" % ("puJetIdSequence", collection))
    inputsTag = cms.InputTag("%s%s" % ("puJetId", collection))
    mvaTags = {}
    idTags = {}
    for a in algos:
        mvaTags[a.label.value()] = cms.InputTag(
            "%s%s" % ("puJetMva", collection),
            "%sDiscriminant" % a.label.value())
        idTags[a.label.value()] = cms.InputTag(
            "%s%s" % ("puJetMva", collection), "%sId" % a.label.value())
    outputCommands = [
        "keep *_%s%s_*_*" % ("puJetId", collection),
        "keep *_%s%s_*_*" % ("puJetMva", collection)
    ]

    return seqeuence, inputsTag, mvaTags, idTags, outputCommands
示例#4
0
import FWCore.ParameterSet.Config as cms

from CMGTools.External.pujetidproducer_cfi import pileupJetIdProducer, stdalgos_4x, stdalgos_5x, stdalgos, cutbased, chsalgos_4x, chsalgos_5x, chsalgos
# from RecoJets.JetProducers.PileupJetID_cfi import pileupJetIdProducer, _stdalgos_4x, _stdalgos_5x, _stdalgos, cutbased, _chsalgos_4x, _chsalgos_5x, _chsalgos

#
# Standard pfJets
#
puJetId = pileupJetIdProducer.clone(
    produceJetIds=cms.bool(True),
    jetids=cms.InputTag(""),
    runMvas=cms.bool(False),
    jets=cms.InputTag("selectedPatJets"),
    vertexes=cms.InputTag("offlinePrimaryVertices"),
    algos=cms.VPSet(cutbased))

#
puJetMva = pileupJetIdProducer.clone(
    produceJetIds=cms.bool(False),
    jetids=cms.InputTag("puJetId"),
    runMvas=cms.bool(True),
    jets=cms.InputTag("selectedPatJets"),
    vertexes=cms.InputTag("offlinePrimaryVertices"),
    algos=stdalgos)

#
puJetIdSqeuence = cms.Sequence(puJetId * puJetMva)

#
# Charged Hadron Subtraction
#