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))
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(
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',
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),
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") )
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 *
## 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),
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) )
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
) 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(
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"))
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
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(
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 *
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),
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),
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()
#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()
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',
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") )
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'
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) )