Esempio n. 1
0
def setupPatSubJets(process, runOnMC):
    #CA8 jets
    process.ca8PFJetsCHS = ak5PFJets.clone(
        src='pfNoElectron',  #or pfNoPileUp, does it make a difference?
        jetPtMin=cms.double(10.0),
        doAreaFastjet=cms.bool(True),
        rParam=cms.double(0.8),
        jetAlgorithm=cms.string("CambridgeAachen"),
    )

    process.ca8PFJetsCHSpruned = ak5PFJetsPruned.clone(  #Pruned CA8 jets
        src='pfNoElectron',  #or pfNoPileUp, does it make a difference?
        jetPtMin=cms.double(10.0),
        doAreaFastjet=cms.bool(True),
        rParam=cms.double(0.8),
        jetAlgorithm=cms.string("CambridgeAachen"),
    )

    #Add to PAT
    inputJetCorrLabel = (
        'AK7PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute',
                     'L2L3Residual'])  #data
    if runOnMC:
        inputJetCorrLabel = ('AK7PFchs',
                             ['L1FastJet', 'L2Relative', 'L3Absolute'])

    addJetCollection(
        process,
        cms.InputTag('ca8PFJetsCHS'),
        'CA8',
        'CHS',
        doJTA=True,
        doBTagging=True,
        jetCorrLabel=inputJetCorrLabel,
        doType1MET=False,
        genJetCollection=cms.InputTag("ca8GenJetsNoNu"),  #Why NoNu
        doJetID=True,
        btagInfo=btagInfo,
        btagdiscriminators=btagdiscriminators)
    process.patJetsCA8CHS.embedCaloTowers = False
    process.patJetsCA8CHS.embedPFCandidates = True
    process.patJetsCA8CHS.addTagInfos = cms.bool(True)
    process.selectedPatJetsCA8CHS.cut = 'pt > 15. & abs(eta) < 2.5'  #harder cut?

    process.pileupJetIdProducerChsCA8 = process.pileupJetIdProducerChs.clone(
        jets=cms.InputTag("selectedPatJetsCA8CHS"), jec=cms.string("AK7PFchs"))

    process.selectedPatJetsCA8CHSWithBeta = cms.EDProducer(
        'JetBetaProducer',
        src=cms.InputTag("selectedPatJetsCA8CHS"),
        primaryVertices=cms.InputTag("goodPV"),
        puJetIdMVA=cms.InputTag("pileupJetIdProducerChsCA8",
                                "fullDiscriminant"),
        puJetIdFlag=cms.InputTag("pileupJetIdProducerChsCA8", "fullId"),
        puJetIdentifier=cms.InputTag("pileupJetIdProducerChsCA8"),
    )

    process.cleanPatJetsCA8CHS.src = cms.InputTag(
        "selectedPatJetsCA8CHSWithBeta")
    process.cleanPatJetsCA8CHS.checkOverlaps.muons.requireNoOverlaps = cms.bool(
        True)
    process.cleanPatJetsCA8CHS.checkOverlaps.muons.deltaR = cms.double(0.8)
    process.cleanPatJetsCA8CHS.checkOverlaps.electrons.requireNoOverlaps = cms.bool(
        True)
    process.cleanPatJetsCA8CHS.checkOverlaps.electrons.deltaR = cms.double(0.8)

    addJetCollection(
        process,  #pruned CA8 jets to PAT
        cms.InputTag('ca8PFJetsCHSpruned'),
        'CA8',
        'CHSpruned',
        doJTA=True,
        doBTagging=True,
        jetCorrLabel=inputJetCorrLabel,
        doType1MET=False,
        genJetCollection=cms.InputTag("ca8GenJetsNoNu"),
        doJetID=True,
        btagInfo=btagInfo,
        btagdiscriminators=btagdiscriminators)
    process.patJetsCA8CHSpruned.embedCaloTowers = False
    process.patJetsCA8CHSpruned.embedPFCandidates = True
    process.patJetsCA8CHSpruned.addTagInfos = cms.bool(True)
    process.selectedPatJetsCA8CHSpruned.cut = 'pt > 15. & abs(eta) < 2.5'  #harder cut?
    process.cleanPatJetsCA8CHSpruned.checkOverlaps.muons.requireNoOverlaps = cms.bool(
        True)
    process.cleanPatJetsCA8CHSpruned.checkOverlaps.muons.deltaR = cms.double(
        0.8)
    process.cleanPatJetsCA8CHSpruned.checkOverlaps.electrons.requireNoOverlaps = cms.bool(
        True)
    process.cleanPatJetsCA8CHSpruned.checkOverlaps.electrons.deltaR = cms.double(
        0.8)

    #subjets
    process.ak5JetTracksAssociatorExplicitCA8PrunedSubjetsPF = ak5JetTracksAssociatorExplicit.clone(
        jets=cms.InputTag("ca8PFJetsCHSpruned", "SubJets"))
    process.expImpactParameterTagInfos = process.impactParameterTagInfos.clone(
        jetTracks=cms.InputTag(
            "ak5JetTracksAssociatorExplicitCA8PrunedSubjetsPF"))
    process.expSecondaryVertexTagInfos = process.secondaryVertexTagInfos.clone(
        trackIPTagInfos="expImpactParameterTagInfos")
    process.expInclusiveSecondaryVertexFinderTagInfos = process.inclusiveSecondaryVertexFinderTagInfos.clone(
        trackIPTagInfos="expImpactParameterTagInfos")
    process.expInclusiveSecondaryVertexFinderFilteredTagInfos = process.inclusiveSecondaryVertexFinderFilteredTagInfos.clone(
        trackIPTagInfos="expImpactParameterTagInfos")

    process.expTrackCountingHighEffBJetTags = process.trackCountingHighEffBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos")))
    process.expTrackCountingHighPurBJetTags = process.trackCountingHighPurBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos")))
    process.expJetProbabilityBJetTags = process.jetProbabilityBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos")))
    process.expJetBProbabilityBJetTags = process.jetBProbabilityBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos")))

    process.expSimpleSecondaryVertexHighEffBJetTags = process.simpleSecondaryVertexHighEffBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expSecondaryVertexTagInfos")))
    process.expSimpleSecondaryVertexHighPurBJetTags = process.simpleSecondaryVertexHighPurBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expSecondaryVertexTagInfos")))
    process.expSimpleInclusiveSecondaryVertexHighEffBJetTags = process.simpleInclusiveSecondaryVertexHighEffBJetTags.clone(
        tagInfos=cms.VInputTag(
            cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos")))
    process.expSimpleInclusiveSecondaryVertexHighPurBJetTags = process.simpleInclusiveSecondaryVertexHighPurBJetTags.clone(
        tagInfos=cms.VInputTag(
            cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos")))
    process.expDoubleSecondaryVertexHighEffBJetTags = process.doubleSecondaryVertexHighEffBJetTags.clone(
        tagInfos=cms.VInputTag(
            cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos")))

    process.expCombinedSecondaryVertexBJetTags = process.combinedSecondaryVertexBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos"),
                               cms.InputTag("expSecondaryVertexTagInfos")))
    process.expCombinedSecondaryVertexV1BJetTags = process.combinedSecondaryVertexV1BJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expImpactParameterTagInfos"),
                               cms.InputTag("expSecondaryVertexTagInfos")))

    process.expCombinedInclusiveSecondaryVertexBJetTags = process.combinedInclusiveSecondaryVertexBJetTags.clone(
        tagInfos=cms.VInputTag(
            cms.InputTag("expImpactParameterTagInfos"),
            cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos")))
    process.expCombinedSecondaryVertexSoftPFLeptonV1BJetTags = process.combinedSecondaryVertexSoftPFLeptonV1BJetTags.clone(
        tagInfos=cms.VInputTag(
            cms.InputTag("expImpactParameterTagInfos"),
            cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos"),
            cms.InputTag("expSoftPFMuonsTagInfos"),
            cms.InputTag("expSoftPFElectronsTagInfos")))

    process.expSoftPFMuonsTagInfos = process.softPFMuonsTagInfos.clone(
        jets=cms.InputTag("ca8PFJetsCHSpruned", "SubJets"))
    process.expSoftPFElectronsTagInfos = process.softPFElectronsTagInfos.clone(
        jets=cms.InputTag("ca8PFJetsCHSpruned", "SubJets"))
    process.expSoftPFMuonBJetTags = process.softPFMuonBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expSoftPFMuonsTagInfos")))
    process.expSoftPFElectronBJetTags = process.softPFElectronBJetTags.clone(
        tagInfos=cms.VInputTag(cms.InputTag("expSoftPFElectronsTagInfos")))

    process.explicitBtag = cms.Sequence(
        process.ak5JetTracksAssociatorExplicitCA8PrunedSubjetsPF *
        process.expImpactParameterTagInfos *
        process.expSecondaryVertexTagInfos *
        process.expInclusiveSecondaryVertexFinderTagInfos *
        process.expInclusiveSecondaryVertexFinderFilteredTagInfos *
        process.expTrackCountingHighEffBJetTags *
        process.expTrackCountingHighPurBJetTags *
        process.expJetProbabilityBJetTags *
        process.expJetBProbabilityBJetTags *
        process.expSimpleSecondaryVertexHighEffBJetTags *
        process.expSimpleSecondaryVertexHighPurBJetTags *
        process.expSimpleInclusiveSecondaryVertexHighEffBJetTags *
        process.expSimpleInclusiveSecondaryVertexHighPurBJetTags *
        process.expDoubleSecondaryVertexHighEffBJetTags *
        process.expSoftPFMuonsTagInfos * process.expSoftPFElectronsTagInfos *
        process.expSoftPFMuonBJetTags * process.expSoftPFElectronBJetTags *
        process.expCombinedSecondaryVertexBJetTags *
        process.expCombinedSecondaryVertexV1BJetTags *
        process.expCombinedInclusiveSecondaryVertexBJetTags *
        process.expCombinedSecondaryVertexSoftPFLeptonV1BJetTags)
    expinfo = cms.VInputTag(
        cms.InputTag("expImpactParameterTagInfos"),
        cms.InputTag("expSecondaryVertexTagInfos"),
        cms.InputTag("expInclusiveSecondaryVertexFinderTagInfos"),
        cms.InputTag("expInclusiveSecondaryVertexFinderFilteredTagInfos"),
        cms.InputTag("expSoftPFMuonsTagInfos"),
        cms.InputTag("expSoftPFElectronsTagInfos"))
    expbtag = cms.VInputTag(
        cms.InputTag("expTrackCountingHighEffBJetTags"),
        cms.InputTag("expTrackCountingHighPurBJetTags"),
        cms.InputTag("expJetProbabilityBJetTags"),
        cms.InputTag("expJetBProbabilityBJetTags"),
        cms.InputTag("expSimpleSecondaryVertexHighEffBJetTags"),
        cms.InputTag("expSimpleSecondaryVertexHighPurBJetTags"),
        cms.InputTag("expSimpleInclusiveSecondaryVertexHighEffBJetTags"),
        cms.InputTag("expSimpleInclusiveSecondaryVertexHighPurBJetTags"),
        cms.InputTag("expDoubleSecondaryVertexHighEffBJetTags"),
        cms.InputTag("expSoftPFMuonBJetTags"),
        cms.InputTag("expSoftPFElectronBJetTags"),
        cms.InputTag("expCombinedSecondaryVertexBJetTags"),
        cms.InputTag("expCombinedSecondaryVertexV1BJetTags"),
        cms.InputTag("expCombinedInclusiveSecondaryVertexBJetTags"),
        cms.InputTag("expCombinedSecondaryVertexSoftPFLeptonV1BJetTags"))
    inputJetCorrLabel = (
        'AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute',
                     'L2L3Residual'])  #data
    if runOnMC:
        inputJetCorrLabel = ('AK5PFchs',
                             ['L1FastJet', 'L2Relative', 'L3Absolute'])
    addJetCollection(process,
                     cms.InputTag('ca8PFJetsCHSpruned', 'SubJets'),
                     'CA8PrunedSubjets',
                     'PF',
                     doJTA=True,
                     doBTagging=True,
                     jetCorrLabel=inputJetCorrLabel,
                     doType1MET=False,
                     genJetCollection=cms.InputTag('ca8GenJetsNoNuPruned',
                                                   'SubJets'),
                     doJetID=True,
                     btagInfo=btagInfo,
                     btagdiscriminators=btagdiscriminators)
    process.patJetsCA8PrunedSubjetsPF.addJetCharge = False
    process.patJetsCA8PrunedSubjetsPF.embedCaloTowers = False
    process.patJetsCA8PrunedSubjetsPF.embedPFCandidates = True
    process.patJetsCA8PrunedSubjetsPF.addTagInfos = cms.bool(True)
    process.patJetsCA8PrunedSubjetsPF.tagInfoSources += expinfo
    process.patJetsCA8PrunedSubjetsPF.discriminatorSources += expbtag

    process.patDefaultSequence.replace(
        process.patJetsCA8PrunedSubjetsPF,
        process.explicitBtag * process.patJetsCA8PrunedSubjetsPF)

    #CA8 genJets
    process.ca8GenJetsNoNu = process.ak7GenJetsNoNu.clone()
    process.ca8GenJetsNoNu.rParam = 0.8
    process.ca8GenJetsNoNu.jetAlgorithm = "CambridgeAachen"

    process.ca8GenJets = process.ak7GenJets.clone()
    process.ca8GenJets.rParam = 0.8
    process.ca8GenJets.jetAlgorithm = "CambridgeAachen"

    process.ca8GenJetsNoNuPruned = process.ca8GenJetsNoNu.clone(  #Pruned gen jets
        SubJetParameters,
        usePruning=cms.bool(True),
        useExplicitGhosts=cms.bool(True),
        writeCompound=cms.bool(True),
        jetCollInstanceName=cms.string("SubJets"))

    process.ca8GenJetsPruned = process.ca8GenJets.clone(  #Pruned gen jets
        SubJetParameters,
        usePruning=cms.bool(True),
        useExplicitGhosts=cms.bool(True),
        writeCompound=cms.bool(True),
        jetCollInstanceName=cms.string("SubJets"))

    #Nsubjettiness
    process.selectedPatJetsCA8CHSwithNsub = cms.EDProducer(
        "NjettinessAdder",
        src=cms.InputTag("selectedPatJetsCA8CHSWithBeta"),
        cone=cms.double(0.8))

    #BoostedJetMerger: map properly pat fat jets and pat subjets
    process.selectedPatJetsCA8CHSPrunedPacked = cms.EDProducer(
        "BoostedJetMerger",
        jetSrc=cms.InputTag("selectedPatJetsCA8CHSpruned"),
        subjetSrc=cms.InputTag("selectedPatJetsCA8PrunedSubjetsPF"))

    #Sequences
    process.jetMCSequenceCA8CHS = cms.Sequence(
        process.ca8GenJetsNoNu * process.ca8GenJets *
        process.ca8GenJetsNoNuPruned * process.ca8GenJetsPruned)

    process.preSequenceCA8CHS = cms.Sequence(process.ca8PFJetsCHS +
                                             process.ca8PFJetsCHSpruned)
    if runOnMC:
        process.preSequenceCA8CHS += cms.Sequence(process.jetMCSequenceCA8CHS)

    process.patDefaultSequence.replace(
        process.selectedPatJetsCA8CHS,
        cms.Sequence(process.selectedPatJetsCA8CHS *
                     process.pileupJetIdProducerChsCA8 *
                     process.selectedPatJetsCA8CHSWithBeta *
                     process.selectedPatJetsCA8CHSwithNsub))
Esempio n. 2
0
patJetsCA8CHS.getJetMCFlavour = False
patJetsCA8CHS.jetCorrFactorsSource = cms.VInputTag(cms.InputTag('patJetCorrFactorsCA8CHS'))

#### Adding Nsubjetiness
patJetsCA8CHSwithNsub = cms.EDProducer("NjettinessAdder",
  src=cms.InputTag("patJetsCA8CHS"),
  cone=cms.double(0.8)
)

####################################################### PRUNNING
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ca8PFJetsCHSpruned = ak5PFJetsPruned.clone(
  src = 'pfNoPileUp',
  jetPtMin = cms.double(20.0),
  doAreaFastjet = cms.bool(True),
  rParam = cms.double(0.8),
  jetAlgorithm = cms.string("CambridgeAachen"),
)
jetSourcePruned = 'ca8PFJetsCHSpruned'

# corrections 
patJetCorrFactorsCA8CHSpruned = patJetCorrFactors.clone()
patJetCorrFactorsCA8CHSpruned.src = jetSourcePruned
patJetCorrFactorsCA8CHSpruned.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
patJetCorrFactorsCA8CHSpruned.payload = 'AK7PFchs'
patJetCorrFactorsCA8CHSpruned.useRho = True

patJetsCA8CHSpruned = patJets.clone()
patJetsCA8CHSpruned.jetSource = jetSourcePruned
patJetsCA8CHSpruned.addJetCharge = False
## CA8 pruned jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuPruned = ca4GenJets.clone(
    SubJetParameters,
    rParam=cms.double(0.8),
    src=cms.InputTag("genParticlesForJetsNoNu" + postfix),
    usePruning=cms.bool(True),
    writeCompound=cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"))
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ca8PFJetsPruned = ak5PFJetsPruned.clone(
    jetAlgorithm=cms.string("CambridgeAachen"),
    rParam=cms.double(0.8),
    src=getattr(process, "pfJets" + postfix).src,
    srcPVs=getattr(process, "pfJets" + postfix).srcPVs,
    doAreaFastjet=cms.bool(True),
    writeCompound=cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin=cms.double(options.fatJetPtMin))

if options.runSubJets:
    ## PATify CA8 jets
    addJetCollection(process,
                     labelName='CA8',
                     jetSource=cms.InputTag('ca8PFJets'),
                     btagInfos=bTagInfos,
                     btagDiscriminators=bTagDiscriminators,
                     jetCorrections=jetCorrectionsAK7,
                     postfix=postfix)
    process.patJetGenJetMatchPatJetsCA8PFlow.matched = cms.InputTag(
Esempio n. 4
0
    src = cms.InputTag("pfCHS"),
    doAreaFastjet = cms.bool(True),
    jetPtMin = cms.double(100.)
)


process.ak8PFJetsCHSConstituents = cms.EDFilter("MiniAODJetConstituentSelector",
                                        src = cms.InputTag("ak8PFJetsCHS"),
                                        cut = cms.string("pt > 100.0")
                                        )
## Pruned fat PFJets (two jet collections are produced, fat jets and subjets)
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak8PFJetsCHSPruned = ak5PFJetsPruned.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("ak8PFJetsCHSConstituents", "constituents"),
    doAreaFastjet = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(100.)
)



## b-tag discriminators
bTagDiscriminators = [
    'pfTrackCountingHighEffBJetTags',
    'pfTrackCountingHighPurBJetTags',
    'pfJetProbabilityBJetTags',
    'pfJetBProbabilityBJetTags',
    'pfSimpleSecondaryVertexHighEffBJetTags',
    'pfSimpleSecondaryVertexHighPurBJetTags',
    'pfCombinedSecondaryVertexBJetTags',
Esempio n. 5
0
process.selectedPatJets.cut = defaultJetCut
process.selectedPatJetsAK7PF.cut = defaultJetCut
#process.selectedPatJetsCAVHFatCalo.cut = defaultFatJetCut
process.selectedPatJetsCAVHFatPF.cut = defaultFatJetCut
process.selectedPatJetsCAVHSubPF.cut = cms.string("pt > 15. & abs(eta) < 5.0")
process.selectedPatJetsCAVHFilterPF.cut = cms.string(
    "pt > 5. & abs(eta) < 5.0")

# ------------------------------------------------------------------------------
# Jet Substructure (FastJet 3)
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(
    doAreaFastjet=cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone(rParam=cms.double(1.2),
                                       src=cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(rParam=cms.double(1.2),
                                          src=cms.InputTag("pfNoElectron" +
                                                           postfix),
                                          doAreaFastjet=cms.bool(True),
Esempio n. 6
0
                                        src = cms.InputTag("ak8PFJetsCHS"),
                                        cut = cms.string("pt > 100.0 && abs(rapidity()) < 2.4")
                                        )


# Advanced Algorithms for AK4, AK5, AK8 and CA8 :
#   - CHS, ungroomed
#   - CHS, pruned
#   - CHS, filtered
#   - CHS, trimmed
ak5PFJetsCHS = ak5PFJets.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSPruned = ak5PFJetsPruned.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSFiltered = ak5PFJetsFiltered.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSTrimmed = ak5PFJetsTrimmed.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

ak5PFJetsCHSSoftDrop = ak5PFJetsSoftDrop.clone(
    src = cms.InputTag("pfNoPileUpJME")
    )

    
Esempio n. 7
0
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuPruned = ca4GenJets.clone(
    SubJetParameters,
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    usePruning = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets")
)
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ca8PFJetsPruned = ak5PFJetsPruned.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.8),
    src = getattr(process,"pfJets"+postfix).src,
    srcPVs = getattr(process,"pfJets"+postfix).srcPVs,
    doAreaFastjet = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(options.fatJetPtMin)
)

if options.runSubJets:
    ## PATify CA8 jets
    switchJetCollection(process,
        cms.InputTag('ca8PFJets'),
        doJTA        = True,
        doBTagging   = True,
        btagInfo     = bTagInfos,
        btagdiscriminators = bTagDiscriminators,
        jetCorrLabel = jetCorrectionsAK7,
        doType1MET   = False,
AK8jetFlavorPuppi    = cms.Sequence(AK8byRefPuppi*AK8byValPhysPuppi*AK8byValAlgoPuppi)

#for each jet collection run Pruning, subjet b-tagging, quark gluon discrimination,n-subjettiness and subjet quark gluon discrimination
AK8PFJetsPuppi = ak5PFJets.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    src      = cms.InputTag('puppi','Puppi'),
    rParam   = cms.double(0.8),
    jetPtMin = cms.double(20)
    )

AK8caPFJetsPrunedPuppi = ak5PFJetsPruned.clone(
    src      = cms.InputTag('puppi','Puppi'),
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.8),
    doAreaFastjet = cms.bool(False),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20)
    )

from RecoJets.JetAssociationProducers.ic5JetTracksAssociatorAtVertex_cfi import ic5JetTracksAssociatorAtVertex
AK8jetTracksAssociatorAtVertexPuppi          = ic5JetTracksAssociatorAtVertex.clone()
AK8jetTracksAssociatorAtVertexPuppi  .jets   = cms.InputTag('AK8PFJetsPuppi')
AK8jetTracksAssociatorAtVertexPuppi  .tracks = "generalTracks"

AK8jetTracksAssociatorAtVertexSJPuppi        = ic5JetTracksAssociatorAtVertex.clone()
AK8jetTracksAssociatorAtVertexSJPuppi.jets   = cms.InputTag('AK8caPFJetsPrunedPuppi','SubJets')
AK8jetTracksAssociatorAtVertexSJPuppi.tracks = "generalTracks"

from RecoBTag.Configuration.RecoBTag_cff import *
Esempio n. 9
0
## CA8 pruned jets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuPruned = ca4GenJets.clone(
    SubJetParameters,
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    usePruning = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets")
)
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ca8PFJetsCHSPruned = ak5PFJetsPruned.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.8),
    src = getattr(process,"pfJets"+postfix).src,
    srcPVs = getattr(process,"pfJets"+postfix).srcPVs,
    doAreaFastjet = getattr(process,"pfJets"+postfix).doAreaFastjet,
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20.)
)
## CA8 jets with Kt subjets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
## Kt subjets produced using Kt-based pruning with very loose pruning cuts (pruning is effectively disabled)
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuKtSubjets = ca4GenJets.clone(
    SubJetParameters.clone(
        zcut = cms.double(0.),
        rcut_factor = cms.double(9999.)
    ),
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    usePruning = cms.bool(True),
Esempio n. 10
0
from RecoJets.JetProducers.ak5PFJets_cfi import *
process.ak5PFJetsClean = ak5PFJets.clone(src = cms.InputTag("particleFlowClean", "pfcands"))

process.ca8PFJetsClean = ak5PFJets.clone(
    src = cms.InputTag("particleFlowClean", "pfcands"),
    jetPtMin = cms.double(10.0),
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.8),
    jetAlgorithm = cms.string("CambridgeAachen"),
)

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ca8PFJetsCleanPruned = ak5PFJetsPruned.clone(
    src = cms.InputTag("particleFlowClean", "pfcands"),
    jetPtMin = cms.double(10.0),
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.8),
    jetAlgorithm = cms.string("CambridgeAachen"),
)

process.load("RecoJets.Configuration.GenJetParticles_cff")
from RecoJets.Configuration.RecoGenJets_cff import ak7GenJetsNoNu
process.ca8GenJetsNoNu = ak7GenJetsNoNu.clone()
process.ca8GenJetsNoNu.rParam = 0.8
process.ca8GenJetsNoNu.jetAlgorithm = "CambridgeAachen"

process.ca8PFJetsCleanVMaps = cms.EDProducer("JetSubstructureValueMapsProducer",
    src = cms.InputTag("ca8PFJetsClean"),
    jetRadius = cms.double(0.8)
)
Esempio n. 11
0
if isNewerThan('CMSSW_5_2_0'):
    # JETS PRUNED ----------------------------

    # for jet substructure you need extra tags in 4XX and 52X:
    # for 4XX:
    # scram setup $CMS_PATH/slc5_amd64_gcc434/external/fastjet-toolfile/1.0-cms7/etc/scram.d/fastjet.xml
    # addpkg RecoJets/JetAlgorithms V04-04-00
    # addpkg RecoJets/JetProducers V05-10-02
    # for 52X:
    # addpkg RecoJets/JetProducers V05-10-02

    from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
    ak5PFJetsCHSpruned = ak5PFJetsPruned.clone(
        src = 'pfNoPileUp',
        jetPtMin = cms.double(10.0),
        doAreaFastjet = cms.bool(True)
        )

    jetSource = 'ak5PFJetsCHSpruned'

    # corrections 
    from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import *
    patJetCorrFactorsCHSpruned = patJetCorrFactors.clone()
    patJetCorrFactorsCHSpruned.src = jetSource
    # will need to add L2L3 corrections in the cfg
    patJetCorrFactorsCHSpruned.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
    patJetCorrFactorsCHSpruned.payload = 'AK5PFchs'
    patJetCorrFactorsCHSpruned.useRho = True

    # parton and gen jet matching
Esempio n. 12
0
)

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak6PFJetsFiltered = ak5PFJetsFiltered.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.6),
    writeCompound = cms.bool(False),
    jetCollInstanceName=cms.string("")
)

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak6PFJetsPruned = ak5PFJetsPruned.clone(
    src = process.pfJetsPFlow.src,
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(0.6),
    writeCompound = cms.bool(False),
    jetCollInstanceName=cms.string("")
)

### Define AK8 jets (GEN and RECO)
#process.ak8GenJetsNoNu = process.ak5GenJetsNoNu.clone( rParam = 0.8 )
#process.ak8PFJets = process.pfJetsPFlow.clone( rParam = 0.8 )

### Define AK10 jets (GEN and RECO)
#process.ak10GenJetsNoNu = process.ak5GenJetsNoNu.clone( rParam = 1.0 )
#process.ak10PFJets = process.pfJetsPFlow.clone( rParam = 1.0 )

from PhysicsTools.PatAlgos.tools.jetTools import *
##SK: try this for AK5 jets
addJetCollection(
Esempio n. 13
0
    rParam=cms.double(0.8),
    useConstituentSubtraction=cms.bool(True),
    csRParam=cms.double(0.4),
    csRho_EtaMax=ak4PFJets.
    Rho_EtaMax,  # Just use the same eta for both C.S. and rho by default
    useExplicitGhosts=cms.bool(True),
    doAreaFastjet=cms.bool(True),
    jetPtMin=cms.double(100.0))

ak8PFJetsCSConstituents = cms.EDProducer("PFJetConstituentSelector",
                                         src=cms.InputTag("ak8PFJetsCS"),
                                         cut=cms.string("pt > 100.0"))

ak8PFJetsCSPruned = ak5PFJetsPruned.clone(rParam=0.8,
                                          jetPtMin=15.0,
                                          src=cms.InputTag(
                                              "ak8PFJetsCSConstituents",
                                              "constituents"))

ak8PFJetsCSTrimmed = ak5PFJetsTrimmed.clone(rParam=0.8,
                                            jetPtMin=15.0,
                                            src=cms.InputTag(
                                                "ak8PFJetsCSConstituents",
                                                "constituents"))

ak8PFJetsCSFiltered = ak5PFJetsFiltered.clone(rParam=0.8,
                                              jetPtMin=15.0,
                                              src=cms.InputTag(
                                                  "ak8PFJetsCSConstituents",
                                                  "constituents"))
Esempio n. 14
0
from CMGTools.Common.Tools.cmsswRelease import isNewerThan

if isNewerThan('CMSSW_5_2_0'):
    # JETS PRUNED ----------------------------

    # for jet substructure you need extra tags in 4XX and 52X:
    # for 4XX:
    # scram setup $CMS_PATH/slc5_amd64_gcc434/external/fastjet-toolfile/1.0-cms7/etc/scram.d/fastjet.xml
    # addpkg RecoJets/JetAlgorithms V04-04-00
    # addpkg RecoJets/JetProducers V05-10-02
    # for 52X:
    # addpkg RecoJets/JetProducers V05-10-02

    from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
    ak5PFJetsCHSpruned = ak5PFJetsPruned.clone(src='pfNoPileUp',
                                               jetPtMin=cms.double(10.0),
                                               doAreaFastjet=cms.bool(True))

    jetSource = 'ak5PFJetsCHSpruned'

    # corrections
    from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import *
    patJetCorrFactorsCHSpruned = patJetCorrFactors.clone()
    patJetCorrFactorsCHSpruned.src = jetSource
    # will need to add L2L3 corrections in the cfg
    patJetCorrFactorsCHSpruned.levels = [
        'L1FastJet', 'L2Relative', 'L3Absolute'
    ]
    patJetCorrFactorsCHSpruned.payload = 'AK5PFchs'
    patJetCorrFactorsCHSpruned.useRho = True
Esempio n. 15
0
process.ak8PFlow = process.pfJetsPFlow.clone(rParam=cms.double(0.8))

###############################
###### AK 0.5 jets groomed ####
###############################

from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(src=process.pfJetsPFlow.src,
                                                 doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(
    src=process.pfJetsPFlow.src, doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak5PrunedPFlow = ak5PFJetsPruned.clone(src=process.pfJetsPFlow.src,
                                               doAreaFastjet=cms.bool(True))

###############################
###### AK 0.7 jets groomed ####
###############################

process.ak7TrimmedPFlow = process.ak5TrimmedPFlow.clone(
    src=process.pfJetsPFlow.src, rParam=cms.double(0.7))

process.ak7FilteredPFlow = process.ak5FilteredPFlow.clone(
    src=process.pfJetsPFlow.src, rParam=cms.double(0.7))

process.ak7PrunedPFlow = process.ak5PrunedPFlow.clone(
    src=process.pfJetsPFlow.src, rParam=cms.double(0.7))

process.ak7TrimmedGenJetsNoNu = ak5GenJets.clone(
#patJetsAK7CHSNOJEC.getJetMCFlavour = False
#patJetsAK7CHSNOJEC.jetCorrFactorsSource = cms.VInputTag(cms.InputTag('patJetCorrFactorsAK7CHSNOJEC'))

#### Adding Nsubjetiness
patJetsAK7CHSwithNsub = cms.EDProducer("NjettinessAdder",
  src=cms.InputTag("patJetsAK7CHS"),
  cone=cms.double(0.7)
)

####################################################### PRUNNING
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak7PFJetsCHSpruned = ak5PFJetsPruned.clone(
  src = 'pfNoPileUp',
  jetPtMin = cms.double(20.0),
  doAreaFastjet = cms.bool(True),
  rParam = cms.double(0.7),
  jetAlgorithm = cms.string("AntiKt"),
)
jetSourcePruned = 'ak7PFJetsCHSpruned'

# corrections 
patJetCorrFactorsAK7CHSpruned = patJetCorrFactors.clone()
patJetCorrFactorsAK7CHSpruned.src = jetSourcePruned
patJetCorrFactorsAK7CHSpruned.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
patJetCorrFactorsAK7CHSpruned.payload = 'AK7PFchs'
patJetCorrFactorsAK7CHSpruned.useRho = True

patJetsAK7CHSpruned = patJets.clone()
patJetsAK7CHSpruned.jetSource = jetSourcePruned
patJetsAK7CHSpruned.addJetCharge = False
from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed
process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
process.ak5FilteredPFlow = ak5PFJetsFiltered.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak5PrunedPFlow = ak5PFJetsPruned.clone(
    src = ak5JetSrc,
    doAreaFastjet = cms.bool(True)
    )


process.ak5Ungroomed = cms.EDProducer(
    "CandViewNtpProducer", 
    src = cms.InputTag("goodPatJetsPFlow"),
    lazyParser = cms.untracked.bool(True),
    prefix = cms.untracked.string(""),
    eventInfo = cms.untracked.bool(True),
    variables = cms.VPSet(
        cms.PSet(
            tag = cms.untracked.string("pt"),
            quantity = cms.untracked.string("correctedP4(0).pt()")
            ),
        cms.PSet(
Esempio n. 18
0
process.printEventAK5PFJets = cms.EDAnalyzer(
    "printJetFlavourInfo",
    jetFlavourInfos=cms.InputTag("jetFlavourInfosAK5PFJets"))
#-------------------------------------------------------------------------
# AK8 fat jets and pruned subjets
#-------------------------------------------------------------------------
from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets
process.ak8PFJets = ak5PFJets.clone(
    rParam=cms.double(0.8),
    src=cms.InputTag("particleFlow"),
)

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak8PFJetsPruned = ak5PFJetsPruned.clone(
    rParam=cms.double(0.8),
    src=cms.InputTag("particleFlow"),
    writeCompound=cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"))

process.jetFlavourInfosAK8PFJets = cms.EDProducer(
    "JetFlavourClustering",
    jets=cms.InputTag("ak8PFJets"),
    groomedJets=cms.InputTag("ak8PFJetsPruned"),
    subjets=cms.InputTag("ak8PFJetsPruned", "SubJets"),
    bHadrons=cms.InputTag("selectedHadronsAndPartons", "bHadrons"),
    cHadrons=cms.InputTag("selectedHadronsAndPartons", "cHadrons"),
    partons=cms.InputTag("selectedHadronsAndPartons", "algorithmicPartons"),
    leptons=cms.InputTag("selectedHadronsAndPartons", "leptons"),
    jetAlgorithm=cms.string("AntiKt"),
    rParam=cms.double(0.8),
    ghostRescaling=cms.double(1e-18),
#from RecoJets.Configuration.GenJetParticles_cff import *
from RecoJets.JetProducers.ak5PFJets_cfi        import ak5PFJets
from RecoJets.JetProducers.ak5PFJetsPruned_cfi  import ak5PFJetsPruned

#for each jet collection run Pruning, subjet b-tagging, quark gluon discrimination,n-subjettiness and subjet quark gluon discrimination
AK6PFJetsCHS = ak5PFJets.clone(
    src      = cms.InputTag('PFBRECO','pfNoElectron'),
    rParam   = cms.double(0.4),
    jetPtMin = cms.double(20)
    )

AK6caPFJetsPrunedCHS = ak5PFJetsPruned.clone(
    src      = cms.InputTag('PFBRECO','pfNoElectron'),
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(0.4),
    doAreaFastjet = cms.bool(False),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20)
    )

from RecoJets.JetAssociationProducers.ic5JetTracksAssociatorAtVertex_cfi import ic5JetTracksAssociatorAtVertex
AK6jetTracksAssociatorAtVertexCHS          = ic5JetTracksAssociatorAtVertex.clone()
AK6jetTracksAssociatorAtVertexCHS  .jets   = cms.InputTag('AK6PFJetsCHS')
AK6jetTracksAssociatorAtVertexCHS  .tracks = "generalTracks"

AK6jetTracksAssociatorAtVertexSJCHS        = ic5JetTracksAssociatorAtVertex.clone()
AK6jetTracksAssociatorAtVertexSJCHS.jets   = cms.InputTag('AK6caPFJetsPrunedCHS','SubJets')
AK6jetTracksAssociatorAtVertexSJCHS.tracks = "generalTracks"

from RecoBTag.Configuration.RecoBTag_cff import *
Esempio n. 20
0
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.genJetsNoNuPruned = ca4GenJets.clone(
    SubJetParameters,
    jetAlgorithm = cms.string(options.jetAlgo),
    rParam = cms.double(options.jetRadius),
    src = (cms.InputTag("packedGenParticlesForJetsNoNu") if options.miniAOD else cms.InputTag("genParticlesForJetsNoNu"+postfix)),
    usePruning = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets")
)
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.PFJetsCHSPruned = ak5PFJetsPruned.clone(
    jetAlgorithm = cms.string(options.jetAlgo),
    rParam = cms.double(options.jetRadius),
    src = (getattr(process,"ak4PFJets").src if options.miniAOD else getattr(process,"pfJetsPFBRECO"+postfix).src),
    srcPVs = (getattr(process,"ak4PFJets").srcPVs if options.miniAOD else getattr(process,"pfJetsPFBRECO"+postfix).srcPVs),
    doAreaFastjet = cms.bool(True),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(options.fatJetPtMin)
)

if options.runSubJets:
    ## PATify the above jets
    addJetCollection(
        process,
        labelName='PFCHS',
        jetSource=cms.InputTag('PFJetsCHS'),
        algo=algoLabel,           # needed for jet flavor clustering
        rParam=options.jetRadius, # needed for jet flavor clustering
        pfCandidates = cms.InputTag(pfCandidates),
        pvSource = cms.InputTag(pvSource),
Esempio n. 21
0
defaultFatJetCut = cms.string("pt > 100. & abs(eta) < 5.0")
process.selectedPatJets.cut = defaultJetCut
process.selectedPatJetsAK7PF.cut = defaultJetCut
#process.selectedPatJetsCAVHFatCalo.cut = defaultFatJetCut
process.selectedPatJetsCAVHFatPF.cut = defaultFatJetCut
process.selectedPatJetsCAVHSubPF.cut = cms.string("pt > 15. & abs(eta) < 5.0")
process.selectedPatJetsCAVHFilterPF.cut = cms.string("pt > 5. & abs(eta) < 5.0")

# ------------------------------------------------------------------------------
# Jet Substructure (FastJet 3)
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(doAreaFastjet = cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(
    rParam = cms.double(1.2),
    src = cms.InputTag("pfNoElectron"+postfix),
    doAreaFastjet = cms.bool(True),
    doRhoFastjet = cms.bool(True),
    Rho_EtaMax = cms.double(6.0),
Esempio n. 22
0
process.printEventAK5PFJets = cms.EDAnalyzer("printJetFlavourInfo",
    jetFlavourInfos = cms.InputTag("jetFlavourInfosAK5PFJets")
)
#-------------------------------------------------------------------------
# AK8 fat jets and pruned subjets
#-------------------------------------------------------------------------
from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets
process.ak8PFJets = ak5PFJets.clone(
    rParam        = cms.double(0.8),
    src           = cms.InputTag("particleFlow"),
)

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
process.ak8PFJetsPruned = ak5PFJetsPruned.clone(
    rParam              = cms.double(0.8),
    src                 = cms.InputTag("particleFlow"),
    writeCompound       = cms.bool(True),
    jetCollInstanceName = cms.string("SubJets")
)

process.jetFlavourInfosAK8PFJets = cms.EDProducer("JetFlavourClustering",
    jets                     = cms.InputTag("ak8PFJets"),
    groomedJets              = cms.InputTag("ak8PFJetsPruned"),
    subjets                  = cms.InputTag("ak8PFJetsPruned", "SubJets"),
    bHadrons                 = cms.InputTag("selectedHadronsAndPartons","bHadrons"),
    cHadrons                 = cms.InputTag("selectedHadronsAndPartons","cHadrons"),
    partons                  = cms.InputTag("selectedHadronsAndPartons","algorithmicPartons"),
    leptons                  = cms.InputTag("selectedHadronsAndPartons","leptons"),
    jetAlgorithm             = cms.string("AntiKt"),
    rParam                   = cms.double(0.8),
    ghostRescaling           = cms.double(1e-18),
    hadronFlavourHasPriority = cms.bool(False)
                              srcByReference = cms.InputTag("AK12byRef"),
                              physicsDefinition = cms.bool(False),
                              leptonInfo = cms.bool(True))

AK12jetFlavor    = cms.Sequence(AK12byRef*AK12byValPhys*AK12byValAlgo)

#for each jet collection run Pruning, subjet b-tagging, quark gluon discrimination,n-subjettiness and subjet quark gluon discrimination
AK12PFJets = ak5PFJets.clone(
    rParam = cms.double(1.2),
    jetPtMin = cms.double(20)
    )

AK12caPFJetsPruned = ak5PFJetsPruned.clone(
    jetAlgorithm = cms.string("CambridgeAachen"),
    rParam = cms.double(1.2),
    doAreaFastjet = cms.bool(False),
    writeCompound = cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin = cms.double(20)
    )

from RecoJets.JetAssociationProducers.ic5JetTracksAssociatorAtVertex_cfi import ic5JetTracksAssociatorAtVertex
AK12jetTracksAssociatorAtVertex          = ic5JetTracksAssociatorAtVertex.clone()
AK12jetTracksAssociatorAtVertex  .jets   = cms.InputTag('AK12PFJets')
AK12jetTracksAssociatorAtVertex  .tracks = "generalTracks"

AK12jetTracksAssociatorAtVertexSJ        = ic5JetTracksAssociatorAtVertex.clone()
AK12jetTracksAssociatorAtVertexSJ.jets   = cms.InputTag('AK12caPFJetsPruned','SubJets')
AK12jetTracksAssociatorAtVertexSJ.tracks = "generalTracks"

from RecoBTag.Configuration.RecoBTag_cff import *
AK12jetImpactParameterTagInfos                      = impactParameterTagInfos.clone()
Esempio n. 24
0
#patJetsAK4CHSNOJEC.addGenJetMatch = False
#patJetsAK4CHSNOJEC.getJetMCFlavour = False
#patJetsAK4CHSNOJEC.jetCorrFactorsSource = cms.VInputTag(cms.InputTag('patJetCorrFactorsAK4CHSNOJEC'))

#### Adding Nsubjetiness
patJetsAK4CHSwithNsub = cms.EDProducer("NjettinessAdder",
                                       src=cms.InputTag("patJetsAK4CHS"),
                                       cone=cms.double(0.4))

####################################################### PRUNNING
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak4PFJetsCHSpruned = ak5PFJetsPruned.clone(
    src='pfNoPileUp',
    jetPtMin=cms.double(20.0),
    doAreaFastjet=cms.bool(True),
    rParam=cms.double(0.4),
    jetAlgorithm=cms.string("AntiKt"),
)
jetSourcePruned = 'ak4PFJetsCHSpruned'

# corrections
patJetCorrFactorsAK4CHSpruned = patJetCorrFactors.clone()
patJetCorrFactorsAK4CHSpruned.src = jetSourcePruned
patJetCorrFactorsAK4CHSpruned.levels = [
    'L1FastJet', 'L2Relative', 'L3Absolute'
]
patJetCorrFactorsAK4CHSpruned.payload = 'AK5PFchs'
patJetCorrFactorsAK4CHSpruned.useRho = True

patJetsAK4CHSpruned = patJets.clone()
Esempio n. 25
0
                             cut=cms.string("fromPV"))
from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJets
## Fat PFJets
from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJets

process.ak8PFJetsCHS = ak4PFJets.clone(rParam=cms.double(0.8),
                                       src=cms.InputTag("pfCHS"),
                                       doAreaFastjet=cms.bool(True),
                                       jetPtMin=cms.double(50.))
## Pruned fat PFJets (two jet collections are produced, fat jets and subjets)
from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned

process.ak8PFJetsCHSPruned = ak5PFJetsPruned.clone(
    rParam=cms.double(0.8),
    src=cms.InputTag("pfCHS"),
    doAreaFastjet=cms.bool(True),
    writeCompound=cms.bool(True),
    jetCollInstanceName=cms.string("SubJets"),
    jetPtMin=cms.double(50.))

#################################################
## Make PAT jets
#################################################

## b-tag discriminators
bTagDiscriminators = [
    'pfTrackCountingHighEffBJetTags', 'pfTrackCountingHighPurBJetTags',
    'pfJetProbabilityBJetTags', 'pfJetBProbabilityBJetTags',
    'pfSimpleSecondaryVertexHighEffBJetTags',
    'pfSimpleSecondaryVertexHighPurBJetTags',
    'pfCombinedSecondaryVertexBJetTags',
Esempio n. 26
0
    useExplicitGhosts = cms.bool(True),
    doAreaFastjet = cms.bool(True),
    jetPtMin = cms.double(100.0)
    )



ak8PFJetsCSConstituents = cms.EDProducer("PFJetConstituentSelector",
                                         src = cms.InputTag("ak8PFJetsCS"),
                                         cut = cms.string("pt > 100.0")
                                        )


ak8PFJetsCSPruned = ak5PFJetsPruned.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )

ak8PFJetsCSTrimmed = ak5PFJetsTrimmed.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )


ak8PFJetsCSFiltered = ak5PFJetsFiltered.clone(
    rParam = 0.8,
    jetPtMin = 15.0,
    src = cms.InputTag("ak8PFJetsCSConstituents", "constituents")
    )
Esempio n. 27
0
import FWCore.ParameterSet.Config as cms

# JETS PRUNED AK5 ----------------------------

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PFJetsChSpruned = ak5PFJetsPruned.clone(
    src = 'pfNoPileUp',
    jetPtMin = cms.double(30.0),
    doAreaFastjet = cms.bool(True),
    )

jetSource = 'ak5PFJetsChSpruned'

# corrections 
from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import *
patJetCorrFactorsAK5CHSpruned = patJetCorrFactors.clone()
patJetCorrFactorsAK5CHSpruned.src = jetSource
# will need to add L2L3 corrections in the cfg
patJetCorrFactorsAK5CHSpruned.levels = ['L1FastJet', 'L2Relative', 'L3Absolute']
patJetCorrFactorsAK5CHSpruned.payload = 'AK5PFchs'
patJetCorrFactorsAK5CHSpruned.useRho = True

# parton and gen jet matching

from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import *
patJetPartonMatchAK5CHSpruned = patJetPartonMatch.clone()
patJetPartonMatchAK5CHSpruned.src = jetSource
patJetGenJetMatchAK5CHSpruned = patJetGenJetMatch.clone()
patJetGenJetMatchAK5CHSpruned.src = jetSource
patJetGenJetMatchAK5CHSpruned.matched = 'ak5GenJetsNoNu'
Esempio n. 28
0
def setupPatSubJets (process, runOnMC):
    #CA8 jets
    process.ca8PFJetsCHS = ak5PFJets.clone(
        src = 'pfNoElectron', #or pfNoPileUp, does it make a difference?
        jetPtMin = cms.double(10.0),
        doAreaFastjet = cms.bool(True),
        rParam = cms.double(0.8),
        jetAlgorithm = cms.string("CambridgeAachen"),
        )

    process.ca8PFJetsCHSpruned = ak5PFJetsPruned.clone( #Pruned CA8 jets
        src = 'pfNoElectron', #or pfNoPileUp, does it make a difference?
        jetPtMin = cms.double(10.0),
        doAreaFastjet = cms.bool(True),
        rParam = cms.double(0.8),
        jetAlgorithm = cms.string("CambridgeAachen"),
        )

    #Add to PAT
    inputJetCorrLabel = ('AK7PFchs',['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual']) #data
    if runOnMC : inputJetCorrLabel = ('AK7PFchs',['L1FastJet', 'L2Relative', 'L3Absolute'])

    addJetCollection(process,
                     cms.InputTag('ca8PFJetsCHS'),
                     'CA8', 'CHS',
                     doJTA=True,
                     doBTagging=True,
                     jetCorrLabel=inputJetCorrLabel,
                     doType1MET=False,
                     genJetCollection = cms.InputTag("ca8GenJetsNoNu"), #Why NoNu
                     doJetID = True,
                     btagInfo = btagInfo,
                     btagdiscriminators = btagdiscriminators
                     )
    process.patJetsCA8CHS.embedCaloTowers = False
    process.patJetsCA8CHS.embedPFCandidates = True
    process.patJetsCA8CHS.addTagInfos = cms.bool(True)
    process.selectedPatJetsCA8CHS.cut = 'pt > 15. & abs(eta) < 2.5' #harder cut?

    process.pileupJetIdProducerChsCA8 = process.pileupJetIdProducerChs.clone(
        jets = cms.InputTag("patJetsCA8CHS"),
        jec  = cms.string("AK7PFchs")
        )
    #process.puJetIdChsCA8 = process.puJetIdChs.clone() #configure beta/beta* for CA8 jets
    #process.puJetMvaChsCA8 = process.puJetMvaChs.clone()
    
    #process.puJetIdChsCA8.jets = cms.InputTag("patJetsCA8CHS")
    #process.puJetMvaChsCA8.jets = cms.InputTag("patJetsCA8CHS")
    #process.puJetMvaChsCA8.jetids = cms.InputTag("puJetIdChsCA8")
    
    process.patJetsCA8CHSWithBeta = cms.EDProducer('JetBetaProducer',
                                                   src = cms.InputTag("patJetsCA8CHS"),
                                                   primaryVertices = cms.InputTag("goodPV"),
                                                   #puJetIdMVA = cms.InputTag("puJetMvaChsCA8","fullDiscriminant"),
                                                   #puJetIdFlag = cms.InputTag("puJetMvaChsCA8","fullId"),
                                                   #puJetIdentifier = cms.InputTag("puJetIdChsCA8"),
                                                   puJetIdMVA = cms.InputTag("pileupJetIdProducerChsCA8","fullDiscriminant"),
                                                   puJetIdFlag = cms.InputTag("pileupJetIdProducerChsCA8","fullId"),
                                                   puJetIdentifier = cms.InputTag("pileupJetIdProducerChsCA8"),
                                                   )
    process.selectedPatJetsCA8CHS.src = cms.InputTag("patJetsCA8CHSWithBeta")

                            
    addJetCollection(process, #pruned CA8 jets to PAT
                     cms.InputTag('ca8PFJetsCHSpruned'),
                     'CA8', 'CHSpruned',
                     doJTA=True,
                     doBTagging=True,
                     jetCorrLabel=inputJetCorrLabel,
                     doType1MET=False,
                     genJetCollection = cms.InputTag("ca8GenJetsNoNu"),
                     doJetID = True,
                     btagInfo = btagInfo,
                     btagdiscriminators = btagdiscriminators
                     )
    process.patJetsCA8CHSpruned.embedCaloTowers = False
    process.patJetsCA8CHSpruned.embedPFCandidates = True
    process.patJetsCA8CHSpruned.addTagInfos = cms.bool(True)
    process.selectedPatJetsCA8CHSpruned.cut = 'pt > 15. & abs(eta) < 2.5' #harder cut?

    #subjets
    inputJetCorrLabel = ('AK5PFchs',['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual']) #data
    if runOnMC : inputJetCorrLabel = ('AK5PFchs',['L1FastJet', 'L2Relative', 'L3Absolute'])
    addJetCollection(process,
                     cms.InputTag('ca8PFJetsCHSpruned','SubJets'),
                     'CA8PrunedSubjets', 'PF',
                     doJTA=True,
                     doBTagging=True,
                     jetCorrLabel=inputJetCorrLabel,
                     doType1MET=False,
                     genJetCollection=cms.InputTag('ca8GenJetsNoNuPruned','SubJets'),
                     doJetID=True,
                     btagInfo = btagInfo,
                     btagdiscriminators = btagdiscriminators
                     )
    process.patJetsCA8PrunedSubjetsPF.addJetCharge = False
    process.patJetsCA8PrunedSubjetsPF.embedCaloTowers = False
    process.patJetsCA8PrunedSubjetsPF.embedPFCandidates = True
    process.patJetsCA8PrunedSubjetsPF.addTagInfos = cms.bool(True)
    
    #CA8 genJets
    process.ca8GenJetsNoNu = process.ak7GenJetsNoNu.clone()
    process.ca8GenJetsNoNu.rParam = 0.8
    process.ca8GenJetsNoNu.jetAlgorithm = "CambridgeAachen"

    process.ca8GenJets = process.ak7GenJets.clone()
    process.ca8GenJets.rParam = 0.8
    process.ca8GenJets.jetAlgorithm = "CambridgeAachen"

    process.ca8GenJetsNoNuPruned = process.ca8GenJetsNoNu.clone( #Pruned gen jets
        SubJetParameters,
        usePruning = cms.bool(True),
        useExplicitGhosts = cms.bool(True),
        writeCompound = cms.bool(True),
        jetCollInstanceName=cms.string("SubJets")
        )

    process.ca8GenJetsPruned = process.ca8GenJets.clone( #Pruned gen jets
        SubJetParameters,
        usePruning = cms.bool(True),
        useExplicitGhosts = cms.bool(True),
        writeCompound = cms.bool(True),
        jetCollInstanceName=cms.string("SubJets")
        )

    #Nsubjettiness
    process.selectedPatJetsCA8CHSwithNsub = cms.EDProducer("NjettinessAdder",
                                                           src=cms.InputTag("selectedPatJetsCA8CHS"),
                                                           cone=cms.double(0.8)
                                                           )

    #BoostedJetMerger: map properly pat fat jets and pat subjets
    process.selectedPatJetsCA8CHSPrunedPacked = cms.EDProducer("BoostedJetMerger",
                                                          jetSrc=cms.InputTag("selectedPatJetsCA8CHSpruned"),
                                                          subjetSrc=cms.InputTag("selectedPatJetsCA8PrunedSubjetsPF")
                                                          )

    #Sequences
    process.jetMCSequenceCA8CHS = cms.Sequence(
        process.ca8GenJetsNoNu *
        process.ca8GenJets *
        process.ca8GenJetsNoNuPruned *
        process.ca8GenJetsPruned
        )

    process.preSequenceCA8CHS = cms.Sequence(
        process.ca8PFJetsCHS +
        process.ca8PFJetsCHSpruned
        )
    if runOnMC : process.preSequenceCA8CHS += cms.Sequence(process.jetMCSequenceCA8CHS)

    process.patDefaultSequence.replace(
        process.selectedPatJetsCA8CHS,
        #cms.Sequence(process.puJetIdChsCA8 * process.puJetMvaChsCA8 * process.patJetsCA8CHSWithBeta * process.selectedPatJetsCA8CHS * process.selectedPatJetsCA8CHSwithNsub)
        cms.Sequence(process.pileupJetIdProducerChsCA8 * process.patJetsCA8CHSWithBeta * process.selectedPatJetsCA8CHS * process.selectedPatJetsCA8CHSwithNsub)
        )