def usePF2PATForAnalysis(jetAlgo, postfix, useTypeIMET, usePFNoPU): # Jet corrections # No L2L3 Residual on purpose if usePFNoPU: jetCorrections = ("%sPFchs" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute']) postfix += "chs" else: jetCorrections = ("%sPF" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute']) #if not runOnMC: # jetCorrections[1].append('L2L3Residual') p = postfix usePF2PAT(process, runPF2PAT=True, jetAlgo=jetAlgo, runOnMC=runOnMC, postfix=p, jetCorrections=jetCorrections, typeIMetCorrections = useTypeIMET) getattr(process, "pfPileUp" + p).Enable = True getattr(process, "pfPileUp" + p).Vertices = 'goodOfflinePrimaryVertices' getattr(process, "pfPileUp" + p).checkClosestZVertex = cms.bool(False) getattr(process, "pfJets" + p).doAreaFastjet = cms.bool(True) getattr(process, "pfJets" + p).doRhoFastjet = False getattr(process, 'patJetCorrFactors' + p).rho = cms.InputTag("kt6PFJets", "rho") # Do not use kt6PFJetsPFlowAK5, it's not ok for L1FastJet. # top projections in PF2PAT: getattr(process,"pfNoPileUp" + p).enable = cms.bool(usePFNoPU) getattr(process,"pfNoMuon" + p).enable = True getattr(process,"pfNoElectron" + p).enable = True getattr(process,"pfNoTau" + p).enable = True getattr(process,"pfNoJet" + p).enable = True getattr(process,"patElectrons" + p).embedTrack = True getattr(process,"patMuons" + p).embedTrack = True # enable delta beta correction for muon selection in PF2PAT? getattr(process,"pfIsolatedMuons" + p).doDeltaBetaCorrection = True getattr(process, "patJets" + p).embedPFCandidates = False # Keep only jets with pt > 2 Gev getattr(process, "selectedPatJets" + p).cut = "pt > 2"; # Use a cone of 0.3 for photon isolation #adaptPFIsoPhotons(process, applyPostfix(process, "patPhotons", postfix), postfix, "03") # 2012 Photon ID # Electron conversion setattr(process, "patConversions" + p, cms.EDProducer("PATConversionProducer", # input collection electronSource = cms.InputTag("selectedPatElectrons" + p) )) # Switch electron isolation to dR = 0.3, for PF2PAT getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p)) getattr(process, "pfIsolatedElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p) getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsNeutral = cms.VInputTag(cms.InputTag("elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p)) getattr(process, "pfElectrons" + p).isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p)) getattr(process, "pfElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p) getattr(process, "pfElectrons" + p).isolationValueMapsNeutral = cms.VInputTag(cms.InputTag( "elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p)) # ... And for PAT adaptPFIsoElectrons(process, getattr(process, "pfElectrons" + p), p, "03") if runOnMC: cloneProcessingSnippet(process, getattr(process, "makePatMuons" + p), "Loose" + p, p) getattr(process, "muonMatchLoose" + p).src = cms.InputTag("pfMuons" + p) getattr(process, "patMuonsLoose" + p).pfMuonSource = cms.InputTag("pfMuons" + p) getattr(process, "patDefaultSequence" + p).replace(getattr(process, "makePatMuons" + p), getattr(process, "makePatMuons" + p) + getattr(process, "makePatMuonsLoose" + p)) else: setattr(process, "patMuonsLoose" + p, getattr(process, "patMuons" + p).clone( pfMuonSource = cms.InputTag("pfMuons" + p) ) ) setattr(process, "selectedPatMuonsLoose" + p, getattr(process, "selectedPatMuons" + p).clone( src = cms.InputTag("patMuonsLoose" + p) ) ) sequence = getattr(process, "patDefaultSequence" + p) if not runOnMC: sequence += getattr(process, "patMuonsLoose" + p) sequence += (getattr(process, "selectedPatMuonsLoose" + p)) setattr(process, "patElectronsLoose" + p, getattr(process, "patElectrons" + p).clone( pfElectronSource = cms.InputTag("pfElectrons" + p) ) ) setattr(process, "selectedPatElectronsLoose" + p, getattr(process, "selectedPatElectrons" + p).clone( src = cms.InputTag("patElectronsLoose" + p) ) ) adaptPFIsoElectrons(process, getattr(process, "patElectronsLoose" + p), postfix, "03") sequence = getattr(process, "patDefaultSequence" + p) sequence += (getattr(process, "patElectronsLoose" + p) * getattr(process, "selectedPatElectronsLoose" + p)) #giulia turn off qg tagger ## Setup quark gluon tagger #process.load('QuarkGluonTagger.EightTeV.QGTagger_RecoJets_cff') #cloneProcessingSnippet(process, process.QuarkGluonTagger, p) #getattr(process, "QGTagger" + p).srcJets = cms.InputTag("selectedPatJets" + p) #getattr(process, "QGTagger" + p).isPatJet = cms.untracked.bool(True) #getattr(process, "QGTagger" + p).useCHS = cms.untracked.bool(usePFNoPU) ## Remove the processing of primary vertices, as it's already what we do here #getattr(process, 'QGTagger' + p).srcPV = cms.InputTag('goodOfflinePrimaryVertices') #getattr(process, 'QuarkGluonTagger' + p).remove(getattr(process, 'goodOfflinePrimaryVerticesQG' + p)) if not runOnMC: if 'L2L3Residual' in jetCorrections: getattr(process, 'patPFJetMETtype1p2Corr' + p).jetCorrLabel = 'L2L3Residual' getattr(process, 'patPFMet' + p).addGenMET = cms.bool(False) names = ["Taus"] #if jetAlgo != "AK5": #names += ["Electrons", "Muons"] if len(names) > 0: removeSpecificPATObjects(process, names = names, outputModules = ['out'], postfix = p) adaptPVs(process, pvCollection = cms.InputTag("goodOfflinePrimaryVertices"), postfix = p) getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatElectrons" + p), getattr(process, "selectedPatElectrons" + p) + getattr(process, "patConversions" + p)) #getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatJets" + p), getattr(process, "selectedPatJets" + p) + getattr(process, "QuarkGluonTagger" + p)) return getattr(process, "patPF2PATSequence" + p)
btagDiscriminators=bTagDiscriminators, jetCorrections=('AK4PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute'], 'None'), genJetCollection=FIXME, genParticles=FIXME) getattr(process, 'selectedPatJets').cut = cms.string( 'pt > 10') # to match the selection for slimmedJets in MiniAOD # What is this needed for? # In[ ]: from PhysicsTools.PatAlgos.tools.pfTools import adaptPVs ## Adapt primary vertex collection adaptPVs(process, pvCollection=cms.InputTag('offlineSlimmedPrimaryVertices')) # Now, set the output. Please note the use of the `Task`, which allows the configuration file to run smoothly in the unscheduled mode # In[ ]: #output process.out = cms.OutputModule( "PoolOutputModule", fileName=cms.untracked.string('recluster_jets.root'), ## save only events passing the full path #SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('p') ), outputCommands=cms.untracked.vstring( 'drop *', ## Do not keep anything 'keep *_slimmedJets_*_*', 'keep *_selectedPatJets_*_*',
def reSetJet(process): ## Filter out neutrinos from packed GenParticles process.packedGenParticlesForJetsNoNu = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedGenParticles"), cut = cms.string("abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16")) ## Define GenJets from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets process.ak5GenJetsNoNu = ak5GenJets.clone(src = 'packedGenParticlesForJetsNoNu') ## Select charged hadron subtracted packed PF candidates process.pfCHS = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string("fromPV")) from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets ## Define PFJetsCHS process.ak5PFJetsCHS = ak5PFJets.clone(src = 'pfCHS', doAreaFastjet = True) ################################################# ## Remake PAT jets ################################################# ## b-tag discriminators bTagDiscriminators = [ 'pfCombinedInclusiveSecondaryVertexV2BJetTags' ] ################################################################# slimmedAddPileupInfo = cms.EDProducer( 'PileupSummaryInfoSlimmer', #src = cms.InputTag('addPileupInfo'), keepDetailedInfoFor = cms.vint32(0) ) ####################################################### from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection ## Add PAT jet collection based on the above-defined ak5PFJetsCHS addJetCollection( process, labelName = 'AK5PFCHS', jetSource = cms.InputTag('ak5PFJetsCHS'), pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), bsSource = cms.InputTag('offlineBeamSpot'), pfCandidates = cms.InputTag('packedPFCandidates'), svSource = cms.InputTag('slimmedSecondaryVertices'), btagDiscriminators = bTagDiscriminators, #jetCorrections = ('AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute'], 'None'), #commented before adding jet corrections genJetCollection = cms.InputTag('ak5GenJetsNoNu'), genParticles = cms.InputTag('prunedGenParticles'), algo = 'AK', rParam = 0.5 ) getattr(process,'selectedPatJetsAK5PFCHS').cut = cms.string('pt > 20.') process.rejet = cms.Path(process.packedGenParticlesForJetsNoNu * process.ak5GenJetsNoNu * process.pfCHS * process.ak5PFJetsCHS * process.patJetCorrFactorsAK5PFCHS * process.patJetPartons * process.patJetFlavourAssociationAK5PFCHS * process.patJetPartonMatchAK5PFCHS * process.patJetGenJetMatchAK5PFCHS * process.pfImpactParameterTagInfosAK5PFCHS * process.pfInclusiveSecondaryVertexFinderTagInfosAK5PFCHS * process.pfCombinedInclusiveSecondaryVertexV2BJetTagsAK5PFCHS * process.patJetsAK5PFCHS * process.selectedPatJetsAK5PFCHS) from PhysicsTools.PatAlgos.tools.pfTools import adaptPVs ## Adapt primary vertex collection and BeamSpot adaptPVs(process, pvCollection=cms.InputTag('offlineSlimmedPrimaryVertices')) adaptBSs(process, bsCollection=cms.InputTag('offlineBeamSpot')) from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection updateJetCollection( process, jetSource = cms.InputTag('slimmedJets'), labelName = 'UpdatedJEC', jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') # Do not forget 'L2L3Residual' on data ) process.load('Configuration.StandardSequences.Services_cff') #Added info from now onwards process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") from CondCore.DBCommon.CondDBSetup_cfi import * import os process.jer = cms.ESSource("PoolDBESSource", CondDBSetup, toGet = cms.VPSet( # Resolution cms.PSet( record = cms.string('JetResolutionRcd'), tag = cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK5PFchs'), label = cms.untracked.string('AK5PFchs_pt') ), # Scale factors cms.PSet( record = cms.string('JetResolutionScaleFactorRcd'), tag = cms.string('JR_Fall15_25nsV2_MC_SF_AK4PFchs'), label = cms.untracked.string('AK5PFchs') ), ), connect = cms.string('sqlite:Fall15_25nsV2_MC.db') ) process.es_prefer_jer = cms.ESPrefer('PoolDBESSource', 'jer')
def usePF2PATForAnalysis(jetAlgo, postfix, useTypeIMET, usePFNoPU): # Jet corrections # No L2L3 Residual on purpose if usePFNoPU: jetCorrections = ("%sPFchs" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute']) postfix += "chs" else: jetCorrections = ("%sPF" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute']) #if not runOnMC: # jetCorrections[1].append('L2L3Residual') p = postfix usePF2PAT(process, runPF2PAT=True, jetAlgo=jetAlgo, runOnMC=runOnMC, postfix=p, jetCorrections=jetCorrections, typeIMetCorrections = useTypeIMET) getattr(process, "pfPileUp" + p).Enable = True getattr(process, "pfPileUp" + p).Vertices = 'goodOfflinePrimaryVertices' getattr(process, "pfPileUp" + p).checkClosestZVertex = cms.bool(False) getattr(process, "pfJets" + p).doAreaFastjet = cms.bool(True) getattr(process, "pfJets" + p).doRhoFastjet = False getattr(process, 'patJetCorrFactors' + p).rho = cms.InputTag("kt6PFJets", "rho") # Do not use kt6PFJetsPFlowAK5, it's not ok for L1FastJet. # top projections in PF2PAT: getattr(process,"pfNoPileUp" + p).enable = cms.bool(usePFNoPU) getattr(process,"pfNoMuon" + p).enable = True getattr(process,"pfNoElectron" + p).enable = True getattr(process,"pfNoTau" + p).enable = True getattr(process,"pfNoJet" + p).enable = True getattr(process,"patElectrons" + p).embedTrack = True getattr(process,"patMuons" + p).embedTrack = True # enable delta beta correction for muon selection in PF2PAT? getattr(process,"pfIsolatedMuons" + p).doDeltaBetaCorrection = True getattr(process, "patJets" + p).embedPFCandidates = False # Keep only jets with pt > 2 Gev getattr(process, "selectedPatJets" + p).cut = "pt > 2"; # Use a cone of 0.3 for photon isolation #adaptPFIsoPhotons(process, applyPostfix(process, "patPhotons", postfix), postfix, "03") # 2012 Photon ID # Electron conversion setattr(process, "patConversions" + p, cms.EDProducer("PATConversionProducer", # input collection electronSource = cms.InputTag("selectedPatElectrons" + p) )) # Switch electron isolation to dR = 0.3, for PF2PAT getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p)) getattr(process, "pfIsolatedElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p) getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsNeutral = cms.VInputTag(cms.InputTag("elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p)) getattr(process, "pfElectrons" + p).isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p)) getattr(process, "pfElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p) getattr(process, "pfElectrons" + p).isolationValueMapsNeutral = cms.VInputTag(cms.InputTag( "elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p)) # ... And for PAT adaptPFIsoElectrons(process, getattr(process, "pfElectrons" + p), p, "03") ##there used to be a modulo to keep track of muons gen info, doesnt work anymore and we don't use that info - so removed for now. setattr(process, "patMuonsLoose" + p, getattr(process, "patMuons" + p).clone( pfMuonSource = cms.InputTag("pfMuons" + p), embedGenMatch = False, addGenMatch = False ) ) setattr(process, "selectedPatMuonsLoose" + p, getattr(process, "selectedPatMuons" + p).clone( src = cms.InputTag("patMuonsLoose" + p) ) ) sequence = getattr(process, "patDefaultSequence" + p) sequence += getattr(process, "patMuonsLoose" + p) sequence += (getattr(process, "selectedPatMuonsLoose" + p)) setattr(process, "patElectronsLoose" + p, getattr(process, "patElectrons" + p).clone( pfElectronSource = cms.InputTag("pfElectrons" + p) ) ) setattr(process, "selectedPatElectronsLoose" + p, getattr(process, "selectedPatElectrons" + p).clone( src = cms.InputTag("patElectronsLoose" + p) ) ) adaptPFIsoElectrons(process, getattr(process, "patElectronsLoose" + p), postfix, "03") sequence = getattr(process, "patDefaultSequence" + p) sequence += (getattr(process, "patElectronsLoose" + p) * getattr(process, "selectedPatElectronsLoose" + p)) # Setup quark gluon tagger #process.load('QuarkGluonTagger.EightTeV.QGTagger_RecoJets_cff') #cloneProcessingSnippet(process, process.QuarkGluonTagger, p) #getattr(process, "QGTagger" + p).srcJets = cms.InputTag("selectedPatJets" + p) #getattr(process, "QGTagger" + p).isPatJet = cms.untracked.bool(True) #getattr(process, "QGTagger" + p).useCHS = cms.untracked.bool(usePFNoPU) ## Remove the processing of primary vertices, as it's already what we do here #getattr(process, 'QGTagger' + p).srcPV = cms.InputTag('goodOfflinePrimaryVertices') #getattr(process, 'QuarkGluonTagger' + p).remove(getattr(process, 'goodOfflinePrimaryVerticesQG' + p)) if not runOnMC: if 'L2L3Residual' in jetCorrections: getattr(process, 'patPFJetMETtype1p2Corr' + p).jetCorrLabel = 'L2L3Residual' getattr(process, 'patPFMet' + p).addGenMET = cms.bool(False) names = ["Taus"] #if jetAlgo != "AK5": #names += ["Electrons", "Muons"] if len(names) > 0: removeSpecificPATObjects(process, names = names, outputModules = ['out'], postfix = p) adaptPVs(process, pvCollection = cms.InputTag("goodOfflinePrimaryVertices"), postfix = p) getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatElectrons" + p), getattr(process, "selectedPatElectrons" + p) + getattr(process, "patConversions" + p)) #getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatJets" + p), getattr(process, "selectedPatJets" + p) + getattr(process, "QuarkGluonTagger" + p)) return getattr(process, "patPF2PATSequence" + p)
def reSetJet(process): ## Filter out neutrinos from packed GenParticles process.packedGenParticlesForJetsNoNu = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedGenParticles"), cut = cms.string("abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16")) ## Define GenJets from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets process.ak5GenJetsNoNu = ak5GenJets.clone(src = 'packedGenParticlesForJetsNoNu') ## Select charged hadron subtracted packed PF candidates process.pfCHS = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string("fromPV")) from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets ## Define PFJetsCHS process.ak5PFJetsCHS = ak5PFJets.clone(src = 'pfCHS', doAreaFastjet = True) ################################################# ## Remake PAT jets ################################################# ## b-tag discriminators bTagDiscriminators = [ 'pfCombinedInclusiveSecondaryVertexV2BJetTags' ] ################################################################# slimmedAddPileupInfo = cms.EDProducer( 'PileupSummaryInfoSlimmer', src = cms.InputTag('addPileupInfo'), keepDetailedInfoFor = cms.vint32(0) ) ####################################################### from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection ## Add PAT jet collection based on the above-defined ak5PFJetsCHS addJetCollection( process, labelName = 'AK5PFCHS', jetSource = cms.InputTag('ak5PFJetsCHS'), pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), bsSource = cms.InputTag('offlineBeamSpot'), pfCandidates = cms.InputTag('packedPFCandidates'), svSource = cms.InputTag('slimmedSecondaryVertices'), btagDiscriminators = bTagDiscriminators, jetCorrections = ('AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute'], 'None'), genJetCollection = cms.InputTag('ak5GenJetsNoNu'), genParticles = cms.InputTag('prunedGenParticles'), algo = 'AK', rParam = 0.5 ) getattr(process,'selectedPatJetsAK5PFCHS').cut = cms.string('pt > 20.') process.rejet = cms.Path(process.packedGenParticlesForJetsNoNu * process.ak5GenJetsNoNu * process.pfCHS * process.ak5PFJetsCHS * process.patJetCorrFactorsAK5PFCHS * process.patJetPartons * process.patJetFlavourAssociationAK5PFCHS * process.patJetPartonMatchAK5PFCHS * process.patJetGenJetMatchAK5PFCHS * process.pfImpactParameterTagInfosAK5PFCHS * process.pfInclusiveSecondaryVertexFinderTagInfosAK5PFCHS * process.pfCombinedInclusiveSecondaryVertexV2BJetTagsAK5PFCHS * process.patJetsAK5PFCHS * process.selectedPatJetsAK5PFCHS) from PhysicsTools.PatAlgos.tools.pfTools import adaptPVs ## Adapt primary vertex collection and BeamSpot adaptPVs(process, pvCollection=cms.InputTag('offlineSlimmedPrimaryVertices')) adaptBSs(process, bsCollection=cms.InputTag('offlineBeamSpot'))
def reSetJet(process): ## Filter out neutrinos from packed GenParticles process.packedGenParticlesForJetsNoNu = cms.EDFilter( "CandPtrSelector", src=cms.InputTag("packedGenParticles"), cut=cms.string( "abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16")) ## Define GenJets from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets process.ak5GenJetsNoNu = ak5GenJets.clone( src='packedGenParticlesForJetsNoNu') ## Select charged hadron subtracted packed PF candidates process.pfCHS = cms.EDFilter("CandPtrSelector", src=cms.InputTag("packedPFCandidates"), cut=cms.string("fromPV")) from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets ## Define PFJetsCHS process.ak5PFJetsCHS = ak5PFJets.clone(src='pfCHS', doAreaFastjet=True) ################################################# ## Remake PAT jets ################################################# ## b-tag discriminators bTagDiscriminators = ['pfCombinedInclusiveSecondaryVertexV2BJetTags'] ################################################################# slimmedAddPileupInfo = cms.EDProducer( 'PileupSummaryInfoSlimmer', #src = cms.InputTag('addPileupInfo'), keepDetailedInfoFor=cms.vint32(0)) ####################################################### from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection ## Add PAT jet collection based on the above-defined ak5PFJetsCHS addJetCollection( process, labelName='AK5PFCHS', jetSource=cms.InputTag('ak5PFJetsCHS'), pvSource=cms.InputTag('offlineSlimmedPrimaryVertices'), bsSource=cms.InputTag('offlineBeamSpot'), pfCandidates=cms.InputTag('packedPFCandidates'), svSource=cms.InputTag('slimmedSecondaryVertices'), btagDiscriminators=bTagDiscriminators, #jetCorrections = ('AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute'], 'None'), #commented before adding jet corrections genJetCollection=cms.InputTag('ak5GenJetsNoNu'), genParticles=cms.InputTag('prunedGenParticles'), algo='AK', rParam=0.5) getattr(process, 'selectedPatJetsAK5PFCHS').cut = cms.string('pt > 20.') process.rejet = cms.Path( process.packedGenParticlesForJetsNoNu * process.ak5GenJetsNoNu * process.pfCHS * process.ak5PFJetsCHS * process.patJetCorrFactorsAK5PFCHS * process.patJetPartons * process.patJetFlavourAssociationAK5PFCHS * process.patJetPartonMatchAK5PFCHS * process.patJetGenJetMatchAK5PFCHS * process.pfImpactParameterTagInfosAK5PFCHS * process.pfInclusiveSecondaryVertexFinderTagInfosAK5PFCHS * process.pfCombinedInclusiveSecondaryVertexV2BJetTagsAK5PFCHS * process.patJetsAK5PFCHS * process.selectedPatJetsAK5PFCHS) from PhysicsTools.PatAlgos.tools.pfTools import adaptPVs ## Adapt primary vertex collection and BeamSpot adaptPVs(process, pvCollection=cms.InputTag('offlineSlimmedPrimaryVertices')) adaptBSs(process, bsCollection=cms.InputTag('offlineBeamSpot')) from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection updateJetCollection( process, jetSource=cms.InputTag('slimmedJets'), labelName='UpdatedJEC', jetCorrections=('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') # Do not forget 'L2L3Residual' on data ) process.load('Configuration.StandardSequences.Services_cff' ) #Added info from now onwards process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") from CondCore.DBCommon.CondDBSetup_cfi import * import os process.jer = cms.ESSource( "PoolDBESSource", CondDBSetup, toGet=cms.VPSet( # Resolution cms.PSet( record=cms.string('JetResolutionRcd'), tag=cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK5PFchs'), label=cms.untracked.string('AK5PFchs_pt')), # Scale factors cms.PSet(record=cms.string('JetResolutionScaleFactorRcd'), tag=cms.string('JR_Fall15_25nsV2_MC_SF_AK4PFchs'), label=cms.untracked.string('AK5PFchs')), ), connect=cms.string('sqlite:Fall15_25nsV2_MC.db')) process.es_prefer_jer = cms.ESPrefer('PoolDBESSource', 'jer')