File indexing completed on 2024-11-27 03:17:59
0001 import FWCore.ParameterSet.Config as cms
0002
0003 from PhysicsTools.PatAlgos.tools.helpers import MassSearchReplaceAnyInputTagVisitor, addKeepStatement
0004 from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask
0005
0006 def loadJetMETBTag(process):
0007
0008 task = getPatAlgosToolsTask(process)
0009
0010 import RecoParticleFlow.PFProducer.pfLinker_cff
0011 process.particleFlowPtrs = RecoParticleFlow.PFProducer.pfLinker_cff.particleFlowPtrs.clone()
0012 task.add(process.particleFlowPtrs)
0013
0014 process.load("CommonTools.ParticleFlow.pfNoPileUpIso_cff")
0015 task.add(process.pfNoPileUpIsoTask)
0016 process.load("CommonTools.ParticleFlow.ParticleSelectors.pfSortByType_cff")
0017 task.add(process.pfSortByTypeTask)
0018
0019 import RecoJets.Configuration.RecoPFJets_cff
0020 process.ak4PFJetsCHS = RecoJets.Configuration.RecoPFJets_cff.ak4PFJetsCHS.clone()
0021 task.add(process.ak4PFJetsCHS)
0022
0023 process.ak4PFJets = RecoJets.Configuration.RecoPFJets_cff.ak4PFJets.clone()
0024 task.add(process.ak4PFJets)
0025 process.ak8PFJetsCHS = RecoJets.Configuration.RecoPFJets_cff.ak8PFJetsCHS.clone()
0026 task.add(process.ak8PFJetsCHS)
0027
0028 process.fixedGridRhoAll = RecoJets.Configuration.RecoPFJets_cff.fixedGridRhoAll.clone()
0029 process.fixedGridRhoFastjetAll = RecoJets.Configuration.RecoPFJets_cff.fixedGridRhoFastjetAll.clone()
0030 process.fixedGridRhoFastjetCentral = RecoJets.Configuration.RecoPFJets_cff.fixedGridRhoFastjetCentral.clone()
0031 process.fixedGridRhoFastjetCentralChargedPileUp = RecoJets.Configuration.RecoPFJets_cff.fixedGridRhoFastjetCentralChargedPileUp.clone()
0032 process.fixedGridRhoFastjetCentralNeutral = RecoJets.Configuration.RecoPFJets_cff.fixedGridRhoFastjetCentralNeutral.clone()
0033 task.add( process.fixedGridRhoAll,
0034 process.fixedGridRhoFastjetAll,
0035 process.fixedGridRhoFastjetCentral,
0036 process.fixedGridRhoFastjetCentralChargedPileUp,
0037 process.fixedGridRhoFastjetCentralNeutral )
0038
0039 process.load("RecoJets.JetAssociationProducers.ak4JTA_cff")
0040 task.add(process.ak4JTATask)
0041
0042 process.load('RecoBTag.Configuration.RecoBTag_cff')
0043 task.add(process.btaggingTask)
0044
0045 process.load("RecoMET.METProducers.pfMet_cfi")
0046 task.add(process.pfMet)
0047
0048
0049 def cleanPfCandidates(process, verbose=False):
0050 task = getPatAlgosToolsTask(process)
0051
0052
0053 process.load("CommonTools.ParticleFlow.pfCandidateRecalibrator_cfi")
0054 task.add(process.pfCandidateRecalibrator)
0055
0056 replacePFCandidates = MassSearchReplaceAnyInputTagVisitor("particleFlow", "pfCandidateRecalibrator", verbose=verbose)
0057 replacePFTmpPtrs = MassSearchReplaceAnyInputTagVisitor("particleFlowTmpPtrs", "particleFlowPtrs", verbose=verbose)
0058 for everywhere in [ process.producers, process.filters, process.analyzers, process.psets, process.vpsets ]:
0059 for name,obj in everywhere.items():
0060 if obj != process.pfCandidateRecalibrator:
0061 replacePFCandidates.doIt(obj, name)
0062 replacePFTmpPtrs.doIt(obj, name)
0063
0064
0065 process.load("CommonTools.ParticleFlow.pfEGammaToCandidateRemapper_cfi")
0066 task.add(process.pfEGammaToCandidateRemapper)
0067 process.pfEGammaToCandidateRemapper.pf2pf = cms.InputTag("pfCandidateRecalibrator")
0068 process.reducedEgamma.gsfElectronsPFValMap = cms.InputTag("pfEGammaToCandidateRemapper","electrons")
0069 process.reducedEgamma.photonsPFValMap = cms.InputTag("pfEGammaToCandidateRemapper","photons")
0070
0071
0072 def addDiscardedPFCandidates(process, inputCollection, verbose=False):
0073
0074 task = getPatAlgosToolsTask(process)
0075
0076 process.primaryVertexAssociationDiscardedCandidates = process.primaryVertexAssociation.clone(
0077 particles = inputCollection,
0078 )
0079 task.add(process.primaryVertexAssociationDiscardedCandidates)
0080
0081 process.packedPFCandidatesDiscarded = process.packedPFCandidates.clone(
0082 inputCollection = inputCollection,
0083 PuppiNoLepSrc = cms.InputTag(""),
0084 PuppiSrc = cms.InputTag(""),
0085 secondaryVerticesForWhiteList = cms.VInputTag(),
0086 vertexAssociator = cms.InputTag("primaryVertexAssociationDiscardedCandidates","original")
0087 )
0088 task.add(process.packedPFCandidatesDiscarded)
0089
0090 addKeepStatement(process, "keep patPackedCandidates_packedPFCandidates_*_*",
0091 ["keep patPackedCandidates_packedPFCandidatesDiscarded_*_*"],
0092 verbose=verbose)
0093
0094
0095 def customizeAll(process, verbose=False):
0096
0097 if verbose:
0098 print("===>>> customizing the process for legacy rereco 2016")
0099
0100 loadJetMETBTag(process)
0101
0102 cleanPfCandidates(process, verbose)
0103 addDiscardedPFCandidates(process, cms.InputTag("pfCandidateRecalibrator","discarded"), verbose=verbose)
0104
0105 return process