def addDiscardedPFCandidates(process, inputCollection, verbose=False): task = getPatAlgosToolsTask(process) process.primaryVertexAssociationDiscardedCandidates = process.primaryVertexAssociation.clone( particles = inputCollection, ) task.add(process.primaryVertexAssociationDiscardedCandidates) process.packedPFCandidatesDiscarded = process.packedPFCandidates.clone( inputCollection = inputCollection, PuppiNoLepSrc = cms.InputTag(""), PuppiSrc = cms.InputTag(""), secondaryVerticesForWhiteList = cms.VInputTag(), vertexAssociator = cms.InputTag("primaryVertexAssociationDiscardedCandidates","original") ) task.add(process.packedPFCandidatesDiscarded) addKeepStatement(process, "keep patPackedCandidates_packedPFCandidates_*_*", ["keep patPackedCandidates_packedPFCandidatesDiscarded_*_*"], verbose=verbose) # Now make the mixed map for rekeying from PhysicsTools.PatAlgos.slimming.packedPFCandidateRefMixer_cfi import packedPFCandidateRefMixer process.oldPFCandToPackedOrDiscarded = packedPFCandidateRefMixer.clone( pf2pf = cms.InputTag(inputCollection.moduleLabel), pf2packed = cms.VInputTag(cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded")) ) task.add(process.oldPFCandToPackedOrDiscarded) # Fix slimmed muon keying process.slimmedMuons.pfCandidates = cms.VInputTag(cms.InputTag(inputCollection.moduleLabel), inputCollection) process.slimmedMuons.packedPFCandidates = cms.VInputTag(cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded")) #MM point to uncleaned collection for hadronic taus, to avoid remaking them #no impact expected, as no muons are included here process.slimmedTaus.packedPFCandidates=cms.InputTag("packedPFCandidatesBackup")
def addDiscardedPFCandidates(process, inputCollection, verbose=False): process.primaryVertexAssociationDiscardedCandidates = process.primaryVertexAssociation.clone( particles=inputCollection, ) process.packedPFCandidatesDiscarded = process.packedPFCandidates.clone( inputCollection=inputCollection, PuppiNoLepSrc=cms.InputTag(""), PuppiSrc=cms.InputTag(""), secondaryVerticesForWhiteList=cms.VInputTag(), vertexAssociator=cms.InputTag( "primaryVertexAssociationDiscardedCandidates", "original")) addKeepStatement( process, "keep patPackedCandidates_packedPFCandidates_*_*", ["keep patPackedCandidates_packedPFCandidatesDiscarded_*_*"], verbose=verbose) # Now make the mixed map for rekeying from PhysicsTools.PatAlgos.slimming.packedPFCandidateRefMixer_cfi import packedPFCandidateRefMixer process.oldPFCandToPackedOrDiscarded = packedPFCandidateRefMixer.clone( pf2pf=cms.InputTag(inputCollection.moduleLabel), pf2packed=cms.VInputTag(cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded"))) # Fix slimmed muon keying process.slimmedMuons.pfCandidates = cms.VInputTag( cms.InputTag(inputCollection.moduleLabel), inputCollection) process.slimmedMuons.packedPFCandidates = cms.VInputTag( cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded"))
def customizeAll(process, verbose=False): #disabled for now, backup in case 90X needs similar fix #process = customizeGSFixForPAT(process) loadJetMETBTag(process) backupJetSequences = backupJetsFirstStep(process) addBadMuonFilters(process) badMuons = cms.VInputTag( cms.InputTag("badGlobalMuonTagger","bad"), cms.InputTag("cloneGlobalMuonTagger","bad") ) # clean the muons and PF candidates, and make *everything* point to the new candidates cleanPFCandidates(process, badMuons, verbose=verbose) addDiscardedPFCandidates(process, cms.InputTag("pfCandidatesBadMuonsCleaned","discarded"), verbose=verbose) # now make the backup sequences point to the right place backupJetsSecondStep(process, backupJetSequences, badMuons, verbose=verbose) process.patMuons.embedCaloMETMuonCorrs = False # FIXME ##extra METs and MET corrections =============================================================== from PhysicsTools.PatAlgos.slimming.extraSlimmedMETs_MuEGFixMoriond2017 import addExtraMETCollections,addExtraPuppiMETCorrections ### Gain switch collections not existing in 90X+ ### -> corrections are set up to give no change on the MET computation addExtraMETCollections(process, unCleanPFCandidateCollection="particleFlow", cleanElectronCollection="slimmedElectrons", cleanPhotonCollection="slimmedPhotons", unCleanElectronCollection="slimmedElectrons", unCleanPhotonCollection="slimmedPhotons") addExtraPuppiMETCorrections(process, cleanPFCandidateCollection="particleFlow", unCleanPFCandidateCollection="pfCandidatesBadMuonsCleaned", cleanElectronCollection="slimmedElectrons", cleanPhotonCollection="slimmedPhotons", unCleanElectronCollection="slimmedElectrons", unCleanPhotonCollection="slimmedPhotons") addKeepStatement(process, "keep *_slimmedMETs_*_*", ["keep *_slimmedMETsUncorrected_*_*", "keep *_slimmedMETsEGClean_*_*", "keep *_slimmedMETsMuEGClean_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedMETsPuppi_*_*", ["keep *_puppiMETEGCor_*_*", "keep *_puppiMETMuCor_*_*"], verbose=verbose) #redo the miniAOD data customization for new JEC modules created during the backup process from PhysicsTools.PatAlgos.slimming.miniAOD_tools import miniAOD_customizeData miniAOD_customizeData(process) return process
def backupJetsSecondStep(process, sequences, badMuons, verbose=False): """Deploy the snapshots after the change of PFCandidates""" # put back the old input tags for sequence in sequences.itervalues(): massSearchReplaceAnyInputTag(sequence, "pfCandidatesBadMuonsCleaned", "particleFlow") massSearchReplaceAnyInputTag(sequence, "muonsCleaned", "muons") # gate the input collections to avoid re-running most of PAT on good events reduceInputJetCollection(process, process.ak4PFJetsCHSBackup, badMuons) reduceInputJetCollection(process, process.ak4PFJetsPuppiBackup, badMuons) # fix names in the valuemaps process.patJetsBackup.userData.userInts.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsAK8Backup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsAK8PuppiBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) # # now deal with daughter links # for these we can keep the daughters process.slimmedJetsBackup.mixedDaughters = True process.slimmedJetsBackup.packedPFCandidates = cms.InputTag("oldPFCandToPackedOrDiscarded") process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.mixedDaughters = True process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.packedPFCandidates = cms.InputTag("oldPFCandToPackedOrDiscarded") # for these we can't process.slimmedJetsPuppiBackup.dropDaughters = '1' process.slimmedJetsAK8PFPuppiSoftDropSubjetsBackup.dropDaughters = '1' # for these we do even if we wouldn't have done in the standard case, since we couldn't for the subjets process.packedPatJetsAK8Backup.fixDaughters = False process.slimmedJetsAK8Backup.rekeyDaughters = '1' process.slimmedJetsAK8Backup.mixedDaughters = True process.slimmedJetsAK8Backup.packedPFCandidates = cms.InputTag("oldPFCandToPackedOrDiscarded") # reduceFinalJetCollection(process, process.slimmedJetsBackup, badMuons) reduceFinalJetCollection(process, process.slimmedJetsPuppiBackup, badMuons) reduceFinalJetCollection(process, process.slimmedJetsAK8Backup, badMuons) # addKeepStatement(process, "keep *_slimmedJets_*_*", ["keep *_slimmedJetsBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsPuppi_*_*", ["keep *_slimmedJetsPuppiBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsAK8_*_*", ["keep *_slimmedJetsAK8Backup_*_*"], verbose=verbose) addKeepStatement(process,"keep *_slimmedJetsAK8PFCHSSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFCHSSoftDropPackedBackup_SubJets_*"], verbose=verbose) addKeepStatement(process,"keep *_slimmedJetsAK8PFPuppiSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFPuppiSoftDropPackedBackup_SubJets_*"], verbose=verbose)
def addDiscardedPFCandidates(process, inputCollection, verbose=False): task = getPatAlgosToolsTask(process) process.primaryVertexAssociationDiscardedCandidates = process.primaryVertexAssociation.clone( particles = inputCollection, ) task.add(process.primaryVertexAssociationDiscardedCandidates) process.packedPFCandidatesDiscarded = process.packedPFCandidates.clone( inputCollection = inputCollection, PuppiNoLepSrc = cms.InputTag(""), PuppiSrc = cms.InputTag(""), secondaryVerticesForWhiteList = cms.VInputTag(), vertexAssociator = cms.InputTag("primaryVertexAssociationDiscardedCandidates","original") ) task.add(process.packedPFCandidatesDiscarded) addKeepStatement(process, "keep patPackedCandidates_packedPFCandidates_*_*", ["keep patPackedCandidates_packedPFCandidatesDiscarded_*_*"], verbose=verbose)
def addDiscardedPFCandidates(process, inputCollection, verbose=False): process.primaryVertexAssociationDiscardedCandidates = process.primaryVertexAssociation.clone( particles = inputCollection, ) process.packedPFCandidatesDiscarded = process.packedPFCandidates.clone( inputCollection = inputCollection, PuppiNoLepSrc = cms.InputTag(""), PuppiSrc = cms.InputTag(""), secondaryVerticesForWhiteList = cms.VInputTag(), vertexAssociator = cms.InputTag("primaryVertexAssociationDiscardedCandidates","original") ) addKeepStatement(process, "keep patPackedCandidates_packedPFCandidates_*_*", ["keep patPackedCandidates_packedPFCandidatesDiscarded_*_*"], verbose=verbose) # Now make the mixed map for rekeying from PhysicsTools.PatAlgos.slimming.packedPFCandidateRefMixer_cfi import packedPFCandidateRefMixer process.oldPFCandToPackedOrDiscarded = packedPFCandidateRefMixer.clone( pf2pf = cms.InputTag(inputCollection.moduleLabel), pf2packed = cms.VInputTag(cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded")) ) # Fix slimmed muon keying process.slimmedMuons.pfCandidates = cms.VInputTag(cms.InputTag(inputCollection.moduleLabel), inputCollection) process.slimmedMuons.packedPFCandidates = cms.VInputTag(cms.InputTag("packedPFCandidates"), cms.InputTag("packedPFCandidatesDiscarded"))
def addExtraMETCollections(process, unCleanPFCandidateCollection, cleanElectronCollection, cleanPhotonCollection, unCleanElectronCollection, unCleanPhotonCollection ): # Muon/EGamma un/corrected pfMET ============ from PhysicsTools.PatUtils.tools.corMETFromMuonAndEG import corMETFromMuonAndEG from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncForMiniAODProduction # uncorrected MET cloneProcessingSnippet(process, getattr(process,"makePatJets"),"BackupAllEvents") massSearchReplaceAnyInputTag(getattr(process,"makePatJetsBackupAllEvents"), "ak4PFJetsCHS", "ak4PFJetsCHSBackupAllEvents") massSearchReplaceAnyInputTag(getattr(process,"makePatJetsBackupAllEvents"), "pfCandidatesBadMuonsCleaned", "particleFlow") del process.patJetsBackupAllEvents.userData process.patJetsBackupAllEvents.addAssociatedTracks = cms.bool(False) process.patJetsBackupAllEvents.addBTagInfo = cms.bool(False) process.patJetsBackupAllEvents.addDiscriminators = cms.bool(False) process.patJetsBackupAllEvents.addGenJetMatch = cms.bool(False) process.patJetsBackupAllEvents.addGenPartonMatch = cms.bool(False) process.patJetsBackupAllEvents.addJetCharge = cms.bool(False) process.patJetsBackupAllEvents.addJetCorrFactors = cms.bool(True) process.patJetsBackupAllEvents.addJetFlavourInfo = cms.bool(False) process.patJetsBackupAllEvents.addJetID = cms.bool(False) process.patJetsBackupAllEvents.addPartonJetMatch = cms.bool(False) process.patJetsBackupAllEvents.addResolutions = cms.bool(False) process.patJetsBackupAllEvents.addTagInfos = cms.bool(False) process.patJetsBackupAllEvents.discriminatorSources = cms.VInputTag() process.patJetsBackupAllEvents.embedGenJetMatch = cms.bool(False) runMetCorAndUncForMiniAODProduction(process, metType="PF", pfCandColl=cms.InputTag(unCleanPFCandidateCollection), recoMetFromPFCs=True, jetCollUnskimmed="patJetsBackupAllEvents", postfix="Uncorrected" ) if not hasattr(process, "slimmedMETs"): process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') process.slimmedMETsUncorrected = process.slimmedMETs.clone() process.slimmedMETsUncorrected.src = cms.InputTag("patPFMetT1Uncorrected") process.slimmedMETsUncorrected.rawVariation = cms.InputTag("patPFMetUncorrected") process.slimmedMETsUncorrected.t1Uncertainties = cms.InputTag("patPFMetT1%sUncorrected") process.slimmedMETsUncorrected.t01Variation = cms.InputTag("patPFMetT0pcT1Uncorrected") process.slimmedMETsUncorrected.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sUncorrected") process.slimmedMETsUncorrected.tXYUncForRaw = cms.InputTag("patPFMetTxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT1 = cms.InputTag("patPFMetT1TxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyUncorrected") del process.slimmedMETsUncorrected.caloMET # EG corrected MET corMETFromMuonAndEG(process, pfCandCollection="", #not needed electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, eGPFix="Uncorrected", postfix="EGOnly" ) process.slimmedMETsEGClean = process.slimmedMETs.clone() process.slimmedMETsEGClean.src = cms.InputTag("patPFMetT1UncorrectedEGOnly") process.slimmedMETsEGClean.rawVariation = cms.InputTag("patPFMetRawUncorrectedEGOnly") process.slimmedMETsEGClean.t1Uncertainties = cms.InputTag("patPFMetT1%sUncorrectedEGOnly") process.slimmedMETsEGClean.t01Variation = cms.InputTag("patPFMetT0pcT1UncorrectedEGOnly") process.slimmedMETsEGClean.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForRaw = cms.InputTag("patPFMetTxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT1 = cms.InputTag("patPFMetT1TxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyUncorrectedEGOnly") del process.slimmedMETsEGClean.caloMET # fully corrected MET corMETFromMuonAndEG(process, pfCandCollection="", #not needed electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, postfix="MuEGClean" ) process.slimmedMETsMuEGClean = process.slimmedMETs.clone() process.slimmedMETsMuEGClean.src = cms.InputTag("patPFMetT1MuEGClean") process.slimmedMETsMuEGClean.rawVariation = cms.InputTag("patPFMetRawMuEGClean") process.slimmedMETsMuEGClean.t1Uncertainties = cms.InputTag("patPFMetT1%sMuEGClean") process.slimmedMETsMuEGClean.t01Variation = cms.InputTag("patPFMetT0pcT1MuEGClean") process.slimmedMETsMuEGClean.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sMuEGClean") process.slimmedMETsMuEGClean.tXYUncForRaw = cms.InputTag("patPFMetTxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT1 = cms.InputTag("patPFMetT1TxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyMuEGClean") del process.slimmedMETsMuEGClean.caloMET addKeepStatement(process, "keep *_slimmedMETs_*_*", ["keep *_slimmedMETsUncorrected_*_*", "keep *_slimmedMETsEGClean_*_*", "keep *_slimmedMETsMuEGClean_*_*"])
def addExtraPuppiMETCorrections(process, cleanPFCandidateCollection, unCleanPFCandidateCollection, cleanElectronCollection, cleanPhotonCollection, unCleanElectronCollection, unCleanPhotonCollection ): from PhysicsTools.PatUtils.tools.corMETFromMuonAndEG import corMETFromMuonAndEG #EG correction for puppi, muon correction done right above corMETFromMuonAndEG(process, pfCandCollection="puppiForMET", electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, eGPfCandMatching=True, eGPFix="Puppi", postfix="PuppiClean" ) if not hasattr(process, "slimmedMETs"): process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') process.slimmedMETsPuppi.src = cms.InputTag("patPFMetT1PuppiPuppiClean") process.slimmedMETsPuppi.rawVariation = cms.InputTag("patPFMetRawPuppiPuppiClean") process.slimmedMETsPuppi.t1Uncertainties = cms.InputTag("patPFMetT1%sPuppiPuppiClean") process.slimmedMETsPuppi.t01Variation = cms.InputTag("patPFMetT0pcT1PuppiPuppiClean") process.slimmedMETsPuppi.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForRaw = cms.InputTag("patPFMetTxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT1 = cms.InputTag("patPFMetT1TxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyPuppiPuppiClean") #del process.slimmedMETsPuppi.caloMET #EGamma correction process.puppiMETEGCor = cms.EDProducer("CorrMETDataExtractor", corrections = cms.VInputTag( cms.InputTag("corMETPhotonPuppiClean"), cms.InputTag("corMETElectronPuppiClean") ) ) #Muon correction, restarting from PF candidates to take the weights process.puppiMuonCorrection = cms.EDProducer("ShiftedParticleMETcorrInputProducer", srcOriginal = cms.InputTag(unCleanPFCandidateCollection), srcShifted = cms.InputTag(cleanPFCandidateCollection), ) process.puppiMETMuCor = cms.EDProducer("CorrMETDataExtractor", corrections = cms.VInputTag( cms.InputTag("puppiMuonCorrection") ) ) addKeepStatement(process, "keep *_slimmedMETsPuppi_*_*", ["keep *_puppiMETEGCor_*_*", "keep *_puppiMETMuCor_*_*"])
def customizeGSFixForPAT(process): process.load("RecoEgamma.EgammaTools.egammaGainSwitchFixForPAT_cff") process.load("RecoParticleFlow.PFProducer.pfGSFixLinkerForPAT_cff") process.load( "RecoEgamma.EgammaIsolationAlgos.pfClusterIsolationRemapForPAT_cff") process.load("RecoEgamma.ElectronIdentification.idExternalRemapForPAT_cff") process.load("RecoEgamma.EgammaTools.egammaGainSwitchFlag_cff") #this clones all the modules before they were modified to run on the orginal collections miniAOD_addOrginalEGamma(process, "BeforeGSFix") from PhysicsTools.PatAlgos.tools.helpers import addKeepStatement addKeepStatement(process, 'keep *_slimmedElectrons_*_*', [ 'keep *_reducedEgammaBeforeGSFix_*_*', 'keep *_slimmedElectronsBeforeGSFix_*_*', 'keep *_slimmedPhotonsBeforeGSFix_*_*', 'keep EBDigiCollection_selectDigi_*_*', 'keep EEDigiCollection_selectDigi_*_*', 'drop *_reducedEgammaBeforeGSFix_reducedGedGsfElectrons_*', 'drop *_reducedEgammaBeforeGSFix_reducedGedPhotons_*', 'keep *_ecalMultiAndGSGlobalRecHitEB_hitsNotReplaced_*', 'keep *_particleFlowEGammaGSFixed_dupECALClusters_*', 'keep *_particleFlowEGammaGSFixed_dupESClusters_*', ]) process.reducedEgamma.gsfElectrons = cms.InputTag("gedGsfElectronsGSFixed") process.reducedEgamma.gsfElectronsPFValMap = cms.InputTag( "particleBasedIsolationGSFixed", "gedGsfElectrons") process.reducedEgamma.gsfElectronPFClusterIsoSources = cms.VInputTag( cms.InputTag("electronEcalPFClusterIsolationProducerGSFixed"), cms.InputTag("electronHcalPFClusterIsolationProducerGSFixed"), ) process.reducedEgamma.gsfElectronIDSources = cms.VInputTag( cms.InputTag("eidLooseGSFixed"), cms.InputTag("eidRobustHighEnergyGSFixed"), cms.InputTag("eidRobustLooseGSFixed"), cms.InputTag("eidRobustTightGSFixed"), cms.InputTag("eidTightGSFixed"), ) process.reducedEgamma.photons = cms.InputTag("gedPhotonsGSFixed") process.reducedEgamma.conversions = cms.InputTag( "allConversions", processName=cms.InputTag.skipCurrentProcess()) process.reducedEgamma.singleConversions = cms.InputTag( "particleFlowEGamma", processName=cms.InputTag.skipCurrentProcess()) process.reducedEgamma.photonsPFValMap = cms.InputTag( "particleBasedIsolationGSFixed", "gedPhotons") process.reducedEgamma.photonPFClusterIsoSources = cms.VInputTag( cms.InputTag("photonEcalPFClusterIsolationProducerGSFixed"), cms.InputTag("photonHcalPFClusterIsolationProducerGSFixed"), ) process.reducedEgamma.photonIDSources = cms.VInputTag( cms.InputTag("PhotonCutBasedIDLooseGSFixed"), cms.InputTag("PhotonCutBasedIDLooseEMGSFixed"), cms.InputTag("PhotonCutBasedIDTightGSFixed")) process.reducedEgamma.barrelEcalHits = cms.InputTag( "ecalMultiAndGSGlobalRecHitEB") process.reducedEgamma.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE") process.reducedEgamma.preshowerEcalHits = cms.InputTag( "reducedEcalRecHitsES") for modification in process.slimmedPhotons.modifierConfig.modifications: if modification.modifierName != 'EGExtraInfoModifierFromIntValueMaps': continue modification.photon_config.hasGainSwitchFlag = cms.InputTag( 'PhotonGainSwitchFlagProducer:hasGainSwitchFlag') for modification in process.slimmedElectrons.modifierConfig.modifications: if modification.modifierName != 'EGExtraInfoModifierFromIntValueMaps': continue modification.electron_config.hasGainSwitchFlag = cms.InputTag( 'ElectronGainSwitchFlagProducer:hasGainSwitchFlag') return process
def backupJetsSecondStep(process, sequences, badMuons, verbose=False): """Deploy the snapshots after the change of PFCandidates""" # put back the old input tags for sequence in sequences.itervalues(): massSearchReplaceAnyInputTag(sequence, "pfCandidatesBadMuonsCleaned", "particleFlow") massSearchReplaceAnyInputTag(sequence, "muonsCleaned", "muons") # gate the input collections to avoid re-running most of PAT on good events reduceInputJetCollection(process, process.ak4PFJetsCHSBackup, badMuons) reduceInputJetCollection(process, process.ak4PFJetsPuppiBackup, badMuons) # fix names in the valuemaps process.patJetsBackup.userData.userInts.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsAK8Backup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsAK8PuppiBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) # # now deal with daughter links # for these we can keep the daughters process.slimmedJetsBackup.mixedDaughters = True process.slimmedJetsBackup.packedPFCandidates = cms.InputTag( "oldPFCandToPackedOrDiscarded") process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.mixedDaughters = True process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.packedPFCandidates = cms.InputTag( "oldPFCandToPackedOrDiscarded") # for these we can't process.slimmedJetsPuppiBackup.dropDaughters = '1' process.slimmedJetsAK8PFPuppiSoftDropSubjetsBackup.dropDaughters = '1' # for these we do even if we wouldn't have done in the standard case, since we couldn't for the subjets process.packedPatJetsAK8Backup.fixDaughters = False process.slimmedJetsAK8Backup.rekeyDaughters = '1' process.slimmedJetsAK8Backup.mixedDaughters = True process.slimmedJetsAK8Backup.packedPFCandidates = cms.InputTag( "oldPFCandToPackedOrDiscarded") # reduceFinalJetCollection(process, process.slimmedJetsBackup, badMuons) reduceFinalJetCollection(process, process.slimmedJetsPuppiBackup, badMuons) reduceFinalJetCollection(process, process.slimmedJetsAK8Backup, badMuons) # addKeepStatement(process, "keep *_slimmedJets_*_*", ["keep *_slimmedJetsBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsPuppi_*_*", ["keep *_slimmedJetsPuppiBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsAK8_*_*", ["keep *_slimmedJetsAK8Backup_*_*"], verbose=verbose) addKeepStatement( process, "keep *_slimmedJetsAK8PFCHSSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFCHSSoftDropPackedBackup_SubJets_*"], verbose=verbose) addKeepStatement( process, "keep *_slimmedJetsAK8PFPuppiSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFPuppiSoftDropPackedBackup_SubJets_*"], verbose=verbose)
def addExtraMETCollections(process, unCleanPFCandidateCollection, cleanElectronCollection, cleanPhotonCollection, unCleanElectronCollection, unCleanPhotonCollection ): task = getPatAlgosToolsTask(process) # Muon/EGamma un/corrected pfMET ============ from PhysicsTools.PatUtils.tools.corMETFromMuonAndEG import corMETFromMuonAndEG from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncForMiniAODProduction # uncorrected MET cloneProcessingSnippet(process, getattr(process,"makePatJets"),"BackupAllEvents", addToTask = True ) massSearchReplaceAnyInputTag(getattr(process,"makePatJetsBackupAllEvents"), "ak4PFJetsCHS", "ak4PFJetsCHSBackupAllEvents") massSearchReplaceAnyInputTag(getattr(process,"makePatJetsBackupAllEvents"), "pfCandidatesBadMuonsCleaned", "particleFlow") del process.patJetsBackupAllEvents.userData process.patJetsBackupAllEvents.addAssociatedTracks = cms.bool(False) process.patJetsBackupAllEvents.addBTagInfo = cms.bool(False) process.patJetsBackupAllEvents.addDiscriminators = cms.bool(False) process.patJetsBackupAllEvents.addGenJetMatch = cms.bool(False) process.patJetsBackupAllEvents.addGenPartonMatch = cms.bool(False) process.patJetsBackupAllEvents.addJetCharge = cms.bool(False) process.patJetsBackupAllEvents.addJetCorrFactors = cms.bool(True) process.patJetsBackupAllEvents.addJetFlavourInfo = cms.bool(False) process.patJetsBackupAllEvents.addJetID = cms.bool(False) process.patJetsBackupAllEvents.addPartonJetMatch = cms.bool(False) process.patJetsBackupAllEvents.addResolutions = cms.bool(False) process.patJetsBackupAllEvents.addTagInfos = cms.bool(False) process.patJetsBackupAllEvents.discriminatorSources = cms.VInputTag() process.patJetsBackupAllEvents.embedGenJetMatch = cms.bool(False) runMetCorAndUncForMiniAODProduction(process, metType="PF", pfCandColl=cms.InputTag(unCleanPFCandidateCollection), recoMetFromPFCs=True, jetCollUnskimmed="patJetsBackupAllEvents", postfix="Uncorrected" ) if not hasattr(process, "slimmedMETs"): process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') process.slimmedMETsUncorrected = process.slimmedMETs.clone() task.add(process.slimmedMETs) process.slimmedMETsUncorrected.src = cms.InputTag("patPFMetT1Uncorrected") process.slimmedMETsUncorrected.rawVariation = cms.InputTag("patPFMetUncorrected") process.slimmedMETsUncorrected.t1Uncertainties = cms.InputTag("patPFMetT1%sUncorrected") process.slimmedMETsUncorrected.t01Variation = cms.InputTag("patPFMetT0pcT1Uncorrected") process.slimmedMETsUncorrected.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sUncorrected") process.slimmedMETsUncorrected.tXYUncForRaw = cms.InputTag("patPFMetTxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT1 = cms.InputTag("patPFMetT1TxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyUncorrected") process.slimmedMETsUncorrected.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyUncorrected") del process.slimmedMETsUncorrected.caloMET # EG corrected MET corMETFromMuonAndEG(process, pfCandCollection="", #not needed electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, eGPFix="Uncorrected", postfix="EGOnly" ) process.slimmedMETsEGClean = process.slimmedMETs.clone() task.add(process.slimmedMETsEGClean) process.slimmedMETsEGClean.src = cms.InputTag("patPFMetT1UncorrectedEGOnly") process.slimmedMETsEGClean.rawVariation = cms.InputTag("patPFMetRawUncorrectedEGOnly") process.slimmedMETsEGClean.t1Uncertainties = cms.InputTag("patPFMetT1%sUncorrectedEGOnly") process.slimmedMETsEGClean.t01Variation = cms.InputTag("patPFMetT0pcT1UncorrectedEGOnly") process.slimmedMETsEGClean.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForRaw = cms.InputTag("patPFMetTxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT1 = cms.InputTag("patPFMetT1TxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyUncorrectedEGOnly") process.slimmedMETsEGClean.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyUncorrectedEGOnly") del process.slimmedMETsEGClean.caloMET # fully corrected MET corMETFromMuonAndEG(process, pfCandCollection="", #not needed electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, postfix="MuEGClean" ) process.slimmedMETsMuEGClean = process.slimmedMETs.clone() task.add(process.slimmedMETsMuEGClean) process.slimmedMETsMuEGClean.src = cms.InputTag("patPFMetT1MuEGClean") process.slimmedMETsMuEGClean.rawVariation = cms.InputTag("patPFMetRawMuEGClean") process.slimmedMETsMuEGClean.t1Uncertainties = cms.InputTag("patPFMetT1%sMuEGClean") process.slimmedMETsMuEGClean.t01Variation = cms.InputTag("patPFMetT0pcT1MuEGClean") process.slimmedMETsMuEGClean.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sMuEGClean") process.slimmedMETsMuEGClean.tXYUncForRaw = cms.InputTag("patPFMetTxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT1 = cms.InputTag("patPFMetT1TxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyMuEGClean") process.slimmedMETsMuEGClean.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyMuEGClean") del process.slimmedMETsMuEGClean.caloMET addKeepStatement(process, "keep *_slimmedMETs_*_*", ["keep *_slimmedMETsUncorrected_*_*", "keep *_slimmedMETsEGClean_*_*", "keep *_slimmedMETsMuEGClean_*_*"])
def addExtraPuppiMETCorrections(process, cleanPFCandidateCollection, unCleanPFCandidateCollection, cleanElectronCollection, cleanPhotonCollection, unCleanElectronCollection, unCleanPhotonCollection ): task = getPatAlgosToolsTask(process) from PhysicsTools.PatUtils.tools.corMETFromMuonAndEG import corMETFromMuonAndEG #EG correction for puppi, muon correction done right above corMETFromMuonAndEG(process, metType="Puppi", electronCollection=unCleanElectronCollection, photonCollection=unCleanPhotonCollection, corElectronCollection=cleanElectronCollection, corPhotonCollection=cleanPhotonCollection, allMETEGCorrected=True, muCorrection=False, eGCorrection=True, runOnMiniAOD=False, eGPfCandMatching=True, eGPFix="Puppi", postfix="PuppiClean" ) if not hasattr(process, "slimmedMETs"): process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') task.add(process.slimmedMETs) process.slimmedMETsPuppi.src = cms.InputTag("patPFMetT1PuppiPuppiClean") process.slimmedMETsPuppi.rawVariation = cms.InputTag("patPFMetRawPuppiPuppiClean") process.slimmedMETsPuppi.t1Uncertainties = cms.InputTag("patPFMetT1%sPuppiPuppiClean") process.slimmedMETsPuppi.t01Variation = cms.InputTag("patPFMetT0pcT1PuppiPuppiClean") process.slimmedMETsPuppi.t1SmearedVarsAndUncs = cms.InputTag("patPFMetT1Smear%sPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForRaw = cms.InputTag("patPFMetTxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT1 = cms.InputTag("patPFMetT1TxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT01 = cms.InputTag("patPFMetT0pcT1TxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT1Smear = cms.InputTag("patPFMetT1SmearTxyPuppiPuppiClean") process.slimmedMETsPuppi.tXYUncForT01Smear = cms.InputTag("patPFMetT0pcT1SmearTxyPuppiPuppiClean") #del process.slimmedMETsPuppi.caloMET #EGamma correction process.puppiMETEGCor = cms.EDProducer("CorrMETDataExtractor", corrections = cms.VInputTag( cms.InputTag("corMETPhotonPuppiClean"), cms.InputTag("corMETElectronPuppiClean") ) ) task.add(process.puppiMETEGCor) #Muon correction, restarting from PF candidates to take the weights process.puppiMuonCorrection = cms.EDProducer("ShiftedParticleMETcorrInputProducer", srcOriginal = cms.InputTag(unCleanPFCandidateCollection), srcShifted = cms.InputTag(cleanPFCandidateCollection), srcWeights = cms.InputTag("") ) task.add(process.puppiMuonCorrection) process.puppiMETMuCor = cms.EDProducer("CorrMETDataExtractor", corrections = cms.VInputTag( cms.InputTag("puppiMuonCorrection") ) ) task.add(process.puppiMETMuCor) addKeepStatement(process, "keep *_slimmedMETsPuppi_*_*", ["keep *_puppiMETEGCor_*_*", "keep *_puppiMETMuCor_*_*"])
def backupJetsSecondStep(process, sequences, badMuons, verbose=False): """Deploy the snapshots after the change of PFCandidates""" task = getPatAlgosToolsTask(process) # put back the old input tags and copy in task for sequence in six.itervalues(sequences): massSearchReplaceAnyInputTag(sequence, "pfCandidatesBadMuonsCleaned", "particleFlow") massSearchReplaceAnyInputTag(sequence, "muonsCleaned", "muons") for mod in listModules(sequence): task.add(mod) # gate the input collections to avoid re-running most of PAT on good events reduceInputJetCollection(process, process.ak4PFJetsCHSBackup, badMuons) reduceInputJetCollection(process, process.ak4PFJetsPuppiBackup, badMuons) # fix names in the valuemaps process.patJetsBackup.userData.userInts.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsAK8Backup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) process.patJetsAK8PuppiBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring( "Backup", ) # # now deal with daughter links # for these we can keep the daughters if hasattr(process, "slimmedJetsBackup"): process.slimmedJetsBackup.mixedDaughters = True process.slimmedJetsBackup.packedPFCandidates = cms.InputTag( "oldPFCandToPackedOrDiscarded") process.packedPatJetsAK8Backup.fixDaughters = False #for this one the link is broken using oldPFCandToPackedOrDiscarded... #not sure why, but result is the same process.slimmedJetsAK8Backup.rekeyDaughters = '1' process.slimmedJetsAK8Backup.mixedDaughters = False process.slimmedJetsAK8Backup.packedPFCandidates = cms.InputTag( "packedPFCandidatesBackup") #oldPFCandToPackedOrDiscarded reduceFinalJetCollection(process, process.slimmedJetsBackup, badMuons) if hasattr(process, "slimmedJetsAK8PFCHSSoftDropSubjetsBackup"): process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.mixedDaughters = True process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.packedPFCandidates = cms.InputTag( "oldPFCandToPackedOrDiscarded") reduceFinalJetCollection(process, process.slimmedJetsAK8Backup, badMuons) #for this one the link is broken using oldPFCandToPackedOrDiscarded... #not sure why, but result is the same process.slimmedJetsAK8BackupAllEvents.packedPFCandidates = cms.InpuTag( "packedPFCandidatesBackup") # for these we can't if hasattr(process, "slimmedJetsPuppiBackup"): process.slimmedJetsPuppiBackup.dropDaughters = '1' process.slimmedJetsAK8PFPuppiSoftDropSubjetsBackup.dropDaughters = '1' reduceFinalJetCollection(process, process.slimmedJetsPuppiBackup, badMuons) # addKeepStatement(process, "keep *_slimmedJets_*_*", ["keep *_slimmedJetsBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsPuppi_*_*", ["keep *_slimmedJetsPuppiBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsAK8_*_*", ["keep *_slimmedJetsAK8Backup_*_*"], verbose=verbose) addKeepStatement( process, "keep *_slimmedJetsAK8PFCHSSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFCHSSoftDropPackedBackup_SubJets_*"], verbose=verbose) addKeepStatement( process, "keep *_slimmedJetsAK8PFPuppiSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFPuppiSoftDropPackedBackup_SubJets_*"], verbose=verbose)
def backupJetsSecondStep(process, sequences, badMuons, verbose=False): """Deploy the snapshots after the change of PFCandidates""" task = getPatAlgosToolsTask(process) # put back the old input tags and copy in task for sequence in sequences.itervalues(): massSearchReplaceAnyInputTag(sequence, "pfCandidatesBadMuonsCleaned", "particleFlow") massSearchReplaceAnyInputTag(sequence, "muonsCleaned", "muons") for mod in listModules(sequence): task.add(mod) # gate the input collections to avoid re-running most of PAT on good events reduceInputJetCollection(process, process.ak4PFJetsCHSBackup, badMuons) reduceInputJetCollection(process, process.ak4PFJetsPuppiBackup, badMuons) # fix names in the valuemaps process.patJetsBackup.userData.userInts.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsAK8Backup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) process.patJetsAK8PuppiBackup.userData.userFloats.labelPostfixesToStrip = cms.vstring("Backup",) # # now deal with daughter links # for these we can keep the daughters if hasattr(process,"slimmedJetsBackup"): process.slimmedJetsBackup.mixedDaughters = True process.slimmedJetsBackup.packedPFCandidates = cms.InputTag("oldPFCandToPackedOrDiscarded") process.packedPatJetsAK8Backup.fixDaughters = False #for this one the link is broken using oldPFCandToPackedOrDiscarded... #not sure why, but result is the same process.slimmedJetsAK8Backup.rekeyDaughters = '1' process.slimmedJetsAK8Backup.mixedDaughters = False process.slimmedJetsAK8Backup.packedPFCandidates = cms.InputTag("packedPFCandidatesBackup") #oldPFCandToPackedOrDiscarded reduceFinalJetCollection(process, process.slimmedJetsBackup, badMuons) if hasattr(process,"slimmedJetsAK8PFCHSSoftDropSubjetsBackup"): process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.mixedDaughters = True process.slimmedJetsAK8PFCHSSoftDropSubjetsBackup.packedPFCandidates = cms.InputTag("oldPFCandToPackedOrDiscarded") reduceFinalJetCollection(process, process.slimmedJetsAK8Backup, badMuons) #for this one the link is broken using oldPFCandToPackedOrDiscarded... #not sure why, but result is the same process.slimmedJetsAK8BackupAllEvents.packedPFCandidates = cms.InpuTag("packedPFCandidatesBackup") # for these we can't if hasattr(process,"slimmedJetsPuppiBackup"): process.slimmedJetsPuppiBackup.dropDaughters = '1' process.slimmedJetsAK8PFPuppiSoftDropSubjetsBackup.dropDaughters = '1' reduceFinalJetCollection(process, process.slimmedJetsPuppiBackup, badMuons) # addKeepStatement(process, "keep *_slimmedJets_*_*", ["keep *_slimmedJetsBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsPuppi_*_*", ["keep *_slimmedJetsPuppiBackup_*_*"], verbose=verbose) addKeepStatement(process, "keep *_slimmedJetsAK8_*_*", ["keep *_slimmedJetsAK8Backup_*_*"], verbose=verbose) addKeepStatement(process,"keep *_slimmedJetsAK8PFCHSSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFCHSSoftDropPackedBackup_SubJets_*"], verbose=verbose) addKeepStatement(process,"keep *_slimmedJetsAK8PFPuppiSoftDropPacked_SubJets_*", ["keep *_slimmedJetsAK8PFPuppiSoftDropPackedBackup_SubJets_*"], verbose=verbose)
def customizeGSFixForPAT(process): process.load("RecoEgamma.EgammaTools.egammaGainSwitchFixForPAT_cff") process.load("RecoParticleFlow.PFProducer.pfGSFixLinkerForPAT_cff") process.load("RecoEgamma.EgammaIsolationAlgos.pfClusterIsolationRemapForPAT_cff") process.load("RecoEgamma.ElectronIdentification.idExternalRemapForPAT_cff") process.load("RecoEgamma.EgammaTools.egammaGainSwitchFlag_cff") #this clones all the modules before they were modified to run on the orginal collections miniAOD_addOrginalEGamma(process,"BeforeGSFix") from PhysicsTools.PatAlgos.tools.helpers import addKeepStatement addKeepStatement(process,'keep *_slimmedElectrons_*_*', ['keep *_reducedEgammaBeforeGSFix_*_*', 'keep *_slimmedElectronsBeforeGSFix_*_*', 'keep *_slimmedPhotonsBeforeGSFix_*_*', 'keep EBDigiCollection_selectDigi_*_*', 'keep EEDigiCollection_selectDigi_*_*', 'drop *_reducedEgammaBeforeGSFix_reducedGedGsfElectrons_*', 'drop *_reducedEgammaBeforeGSFix_reducedGedPhotons_*', 'keep *_ecalMultiAndGSGlobalRecHitEB_hitsNotReplaced_*', 'keep *_particleFlowEGammaGSFixed_dupECALClusters_*', 'keep *_particleFlowEGammaGSFixed_dupESClusters_*', ]) process.reducedEgamma.gsfElectrons = cms.InputTag("gedGsfElectronsGSFixed") process.reducedEgamma.gsfElectronsPFValMap = cms.InputTag("particleBasedIsolationGSFixed","gedGsfElectrons") process.reducedEgamma.gsfElectronPFClusterIsoSources = cms.VInputTag( cms.InputTag("electronEcalPFClusterIsolationProducerGSFixed"), cms.InputTag("electronHcalPFClusterIsolationProducerGSFixed"), ) process.reducedEgamma.gsfElectronIDSources = cms.VInputTag( cms.InputTag("eidLooseGSFixed"), cms.InputTag("eidRobustHighEnergyGSFixed"), cms.InputTag("eidRobustLooseGSFixed"), cms.InputTag("eidRobustTightGSFixed"), cms.InputTag("eidTightGSFixed"), ) process.reducedEgamma.photons = cms.InputTag("gedPhotonsGSFixed") process.reducedEgamma.conversions = cms.InputTag("allConversions", processName=cms.InputTag.skipCurrentProcess()) process.reducedEgamma.singleConversions = cms.InputTag("particleFlowEGamma", processName=cms.InputTag.skipCurrentProcess()) process.reducedEgamma.photonsPFValMap = cms.InputTag("particleBasedIsolationGSFixed","gedPhotons") process.reducedEgamma.photonPFClusterIsoSources = cms.VInputTag( cms.InputTag("photonEcalPFClusterIsolationProducerGSFixed"), cms.InputTag("photonHcalPFClusterIsolationProducerGSFixed"), ) process.reducedEgamma.photonIDSources = cms.VInputTag( cms.InputTag("PhotonCutBasedIDLooseGSFixed"), cms.InputTag("PhotonCutBasedIDLooseEMGSFixed"), cms.InputTag("PhotonCutBasedIDTightGSFixed") ) process.reducedEgamma.barrelEcalHits = cms.InputTag("ecalMultiAndGSGlobalRecHitEB") process.reducedEgamma.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE") process.reducedEgamma.preshowerEcalHits = cms.InputTag("reducedEcalRecHitsES") for modification in process.slimmedPhotons.modifierConfig.modifications: if modification.modifierName != 'EGExtraInfoModifierFromIntValueMaps': continue modification.photon_config.hasGainSwitchFlag = cms.InputTag('PhotonGainSwitchFlagProducer:hasGainSwitchFlag') for modification in process.slimmedElectrons.modifierConfig.modifications: if modification.modifierName != 'EGExtraInfoModifierFromIntValueMaps': continue modification.electron_config.hasGainSwitchFlag = cms.InputTag('ElectronGainSwitchFlagProducer:hasGainSwitchFlag') return process