def catTool(process, runOnMC=True, doSecVertex=True, useMiniAOD=True): catJetsSource = "slimmedJets" catGenJetsSource = "slimmedGenJets" catMuonsSource = "slimmedMuons" catElectronsSource = "slimmedElectrons" catPhotonsSource = "slimmedPhotons" catTausSource = "slimmedTaus" catMETsSource = "slimmedMETs" catVertexSource = "offlineSlimmedPrimaryVertices" catMCsource = "prunedGenParticles" catBeamSpot = "offlineBeamSpot" catRho = "fixedGridRhoAll" process.load("CATTools.CatProducer.catCandidates_cff") process.load("CATTools.CatProducer.recoEventInfo_cfi") if runOnMC: ## Load MC dependent producers process.load("CATTools.CatProducer.pdfWeight_cff") process.load("CATTools.CatProducer.pileupWeight_cff") process.load("CATTools.CatProducer.pseudoTop_cfi") if not useMiniAOD: process.load("CATTools.CatProducer.genTopProducer_cfi") process.catJets.src = cms.InputTag(catJetsSource) process.catJets.genJetMatch = cms.InputTag("patJetGenJetMatch") process.catTaus.src = cms.InputTag(catTausSource) process.catTaus.genJetMatch = cms.InputTag("tauGenJetMatch") process.catMuons.src = cms.InputTag(catMuonsSource) process.catMuons.mcLabel = cms.InputTag(catMCsource) process.catMuons.vertexLabel = cms.InputTag(catVertexSource) process.catMuons.beamLineSrc = cms.InputTag(catBeamSpot) process.catElectrons.src = cms.InputTag(catElectronsSource) process.catElectrons.vertexLabel = cms.InputTag(catVertexSource) process.catElectrons.mcLabel = cms.InputTag(catMCsource) process.catElectrons.beamLineSrc = cms.InputTag(catBeamSpot) process.catElectrons.rhoLabel = cms.InputTag(catRho) process.catPhotons.src = cms.InputTag(catPhotonsSource) process.catMETs.src = cms.InputTag(catMETsSource) process.catSecVertexs.muonSrc = cms.InputTag(catMuonsSource) process.catSecVertexs.elecSrc = cms.InputTag(catElectronsSource) process.catSecVertexs.vertexLabel = cms.InputTag(catVertexSource) if runOnMC: ## using MEtUncertainties to get lepton shifts ## Need to update - Jet calculation was old, would most likely be the same for leptons from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection=catJetsSource, electronCollection=catElectronsSource, photonCollection=catPhotonsSource, muonCollection=catMuonsSource, tauCollection=catTausSource, makeType1p2corrPFMEt=True, outputModule=None) process.catMuons.shiftedEnDownSrc = cms.InputTag( "shiftedSlimmedMuonsEnDown") process.catMuons.shiftedEnUpSrc = cms.InputTag( "shiftedSlimmedMuonsEnUp") process.catElectrons.shiftedEnDownSrc = cms.InputTag( "shiftedSlimmedElectronsEnDown") process.catElectrons.shiftedEnUpSrc = cms.InputTag( "shiftedSlimmedElectronsEnUp") if doSecVertex: from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import TransientTrackBuilderESProducer setattr(process, "TransientTrackBuilderESProducer", TransientTrackBuilderESProducer)
def miniAOD_customizeCommon(process): process.patMuons.isoDeposits = cms.PSet() process.patElectrons.isoDeposits = cms.PSet() process.patTaus.isoDeposits = cms.PSet() process.patPhotons.isoDeposits = cms.PSet() # process.patMuons.embedTrack = True # used for IDs process.patMuons.embedCombinedMuon = True # used for IDs process.patMuons.embedMuonBestTrack = True # used for IDs process.patMuons.embedStandAloneMuon = True # maybe? process.patMuons.embedPickyMuon = False # no, use best track process.patMuons.embedTpfmsMuon = False # no, use best track process.patMuons.embedDytMuon = False # no, use best track # # disable embedding of electron and photon associated objects already stored by the ReducedEGProducer process.patElectrons.embedGsfElectronCore = False ## process.patElectrons.embed in AOD externally stored gsf electron core process.patElectrons.embedSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedPflowSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedSeedCluster = False ## process.patElectrons.embed in AOD externally stored the electron's seedcluster process.patElectrons.embedBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's basic clusters process.patElectrons.embedPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's preshower clusters process.patElectrons.embedPflowBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow basic clusters process.patElectrons.embedPflowPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow preshower clusters process.patElectrons.embedRecHits = False ## process.patElectrons.embed in AOD externally stored the RecHits - can be called from the PATElectronProducer process.patElectrons.electronSource = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.patElectrons.electronIDSources = cms.PSet( # configure many IDs as InputTag <someName> = <someTag> you # can comment out those you don't want to save some disk space eidRobustLoose=cms.InputTag("reducedEgamma", "eidRobustLoose"), eidRobustTight=cms.InputTag("reducedEgamma", "eidRobustTight"), eidLoose=cms.InputTag("reducedEgamma", "eidLoose"), eidTight=cms.InputTag("reducedEgamma", "eidTight"), eidRobustHighEnergy=cms.InputTag("reducedEgamma", "eidRobustHighEnergy"), ) process.elPFIsoDepositChargedPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositChargedAllPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositNeutralPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositGammaPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma", "reducedGedGsfElectrons") # process.patPhotons.embedSuperCluster = False ## whether to process.patPhotons.embed in AOD externally stored supercluster process.patPhotons.embedSeedCluster = False ## process.patPhotons.embed in AOD externally stored the photon's seedcluster process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer process.patPhotons.photonSource = cms.InputTag("reducedEgamma", "reducedGedPhotons") process.patPhotons.electronSource = cms.InputTag("reducedEgamma", "reducedGedGsfElectrons") process.patPhotons.photonIDSources = cms.PSet( PhotonCutBasedIDLoose=cms.InputTag('reducedEgamma', 'PhotonCutBasedIDLoose'), PhotonCutBasedIDTight=cms.InputTag('reducedEgamma', 'PhotonCutBasedIDTight')) process.phPFIsoDepositChargedPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositChargedAllPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositNeutralPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositGammaPAT.src = cms.InputTag("reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma", "reducedGedPhotons") # process.selectedPatJets.cut = cms.string("pt > 10") process.selectedPatMuons.cut = cms.string( "pt > 5 || isPFMuon || (pt > 3 && (isGlobalMuon || isStandAloneMuon || numberOfMatches > 0 || muonID('RPCMuLoose')))" ) process.selectedPatElectrons.cut = cms.string("") process.selectedPatTaus.cut = cms.string( "pt > 18. && tauID('decayModeFindingNewDMs')> 0.5") process.selectedPatPhotons.cut = cms.string("") from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection from PhysicsTools.PatAlgos.slimming.applySubstructure_cff import applySubstructure applySubstructure(process) # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerStandAlone switchOnTriggerStandAlone(process, outputModule='') process.patTrigger.packTriggerPathNames = cms.bool(True) # # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET # FIXME: are we 100% sure this should still be PF and not PFchs? from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties addJetCollection(process, postfix="ForMetUnc", labelName='AK4PF', jetSource=cms.InputTag('ak4PFJets'), jetCorrections=('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) process.patJetsAK4PFForMetUnc.getJetMCFlavour = False runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollectionUnskimmed="patJetsAK4PFForMetUnc", jetCollection="selectedPatJetsAK4PFForMetUnc", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", makeType1p2corrPFMEt=True, doSmearJets=False, outputModule=None) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName="patCaloMet", metSource="caloMetM") #keep this after all addJetCollections otherwise it will attempt computing them also for stuf with no taginfos #Some useful BTAG vars process.patJets.userData.userFunctions = cms.vstring( '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.M):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).numberOfSourceCandidatePtrs):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).value):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).significance):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.z):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.z):(0)', ) process.patJets.userData.userFunctionLabels = cms.vstring( 'vtxMass', 'vtxNtracks', 'vtx3DVal', 'vtx3DSig', 'vtxPx', 'vtxPy', 'vtxPz', 'vtxPosX', 'vtxPosY', 'vtxPosZ') process.patJets.tagInfoSources = cms.VInputTag( cms.InputTag("pfSecondaryVertexTagInfos")) process.patJets.addTagInfos = cms.bool(True) # ## PU JetID process.load("PhysicsTools.PatAlgos.slimming.pileupJetId_cfi") process.patJets.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ] #VID Electron IDs electron_ids = [ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_50ns_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_PU20bx25_V0_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_25ns_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_startup_cff' ] switchOnVIDElectronIdProducer(process) process.egmGsfElectronIDs.physicsObjectSrc = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.src = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.ebReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEBRecHits") process.electronIDValueMapProducer.eeReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEERecHits") process.electronIDValueMapProducer.esReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedESRecHits") for idmod in electron_ids: setupAllVIDIdsInModule(process, idmod, setupVIDElectronSelection) # Adding puppi jets process.load('CommonTools.PileupAlgos.Puppi_cff') process.load('RecoJets.JetProducers.ak4PFJetsPuppi_cfi') process.ak4PFJetsPuppi.doAreaFastjet = True # even for standard ak4PFJets this is overwritten in RecoJets/Configuration/python/RecoPFJets_cff #process.puppi.candName = cms.InputTag('packedPFCandidates') #process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices') from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import j2tParametersVX process.ak4PFJetsPuppiTracksAssociatorAtVertex = cms.EDProducer( "JetTracksAssociatorAtVertex", j2tParametersVX, jets=cms.InputTag("ak4PFJetsPuppi")) process.patJetPuppiCharge = cms.EDProducer( "JetChargeProducer", src=cms.InputTag("ak4PFJetsPuppiTracksAssociatorAtVertex"), var=cms.string('Pt'), exp=cms.double(1.0)) addJetCollection(process, postfix="", labelName='Puppi', jetSource=cms.InputTag('ak4PFJetsPuppi'), jetCorrections=('AK4PFchs', ['L2Relative', 'L3Absolute'], ''), algo='AK', rParam=0.4, btagDiscriminators=map( lambda x: x.value(), process.patJets.discriminatorSources)) process.patJetGenJetMatchPuppi.matched = 'slimmedGenJets' process.patJetsPuppi.userData.userFloats.src = cms.VInputTag( cms.InputTag("")) process.patJetsPuppi.jetChargeSource = cms.InputTag("patJetPuppiCharge") process.patJetsPuppi.tagInfoSources = cms.VInputTag( cms.InputTag("pfSecondaryVertexTagInfosPuppi")) process.patJetsPuppi.addTagInfos = cms.bool(True) process.selectedPatJetsPuppi.cut = cms.string("pt > 20") process.load('PhysicsTools.PatAlgos.slimming.slimmedJets_cfi') process.slimmedJetsPuppi = process.slimmedJets.clone() process.slimmedJetsPuppi.src = cms.InputTag("selectedPatJetsPuppi") process.slimmedJetsPuppi.packedPFCandidates = cms.InputTag( "packedPFCandidates") ## puppi met process.load('RecoMET.METProducers.PFMET_cfi') process.pfMetPuppi = process.pfMet.clone() process.pfMetPuppi.src = cms.InputTag("puppi") process.pfMetPuppi.alias = cms.string('pfMetPuppi') ## type1 correction, from puppi jets process.corrPfMetType1Puppi = process.corrPfMetType1.clone( src='ak4PFJetsPuppi', jetCorrLabel='ak4PFCHSL2L3Corrector', ) del process.corrPfMetType1Puppi.offsetCorrLabel # no L1 for PUPPI jets process.pfMetT1Puppi = process.pfMetT1.clone( src='pfMetPuppi', srcCorrections=[cms.InputTag("corrPfMetType1Puppi", "type1")]) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName='patMETPuppi', metSource='pfMetT1Puppi') # T1 addMETCollection(process, labelName='patPFMetPuppi', metSource='pfMetPuppi') # RAW process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') process.slimmedMETsPuppi = process.slimmedMETs.clone() process.slimmedMETsPuppi.src = cms.InputTag("patMETPuppi") process.slimmedMETsPuppi.rawUncertainties = cms.InputTag( "patPFMetPuppi") # only central value process.slimmedMETsPuppi.type1Uncertainties = cms.InputTag( "patPFMetT1") # only central value for now del process.slimmedMETsPuppi.type1p2Uncertainties # not available
def miniAOD_customizeCommon(process): process.patMuons.isoDeposits = cms.PSet() process.patElectrons.isoDeposits = cms.PSet() process.patTaus.isoDeposits = cms.PSet() process.patPhotons.isoDeposits = cms.PSet() # process.patMuons.embedTrack = True # used for IDs process.patMuons.embedCombinedMuon = True # used for IDs process.patMuons.embedMuonBestTrack = True # used for IDs process.patMuons.embedStandAloneMuon = True # maybe? process.patMuons.embedPickyMuon = False # no, use best track process.patMuons.embedTpfmsMuon = False # no, use best track process.patMuons.embedDytMuon = False # no, use best track # # disable embedding of electron and photon associated objects already stored by the ReducedEGProducer process.patElectrons.embedGsfElectronCore = False ## process.patElectrons.embed in AOD externally stored gsf electron core process.patElectrons.embedSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedPflowSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedSeedCluster = False ## process.patElectrons.embed in AOD externally stored the electron's seedcluster process.patElectrons.embedBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's basic clusters process.patElectrons.embedPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's preshower clusters process.patElectrons.embedPflowBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow basic clusters process.patElectrons.embedPflowPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow preshower clusters process.patElectrons.embedRecHits = False ## process.patElectrons.embed in AOD externally stored the RecHits - can be called from the PATElectronProducer process.patElectrons.electronSource = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.patElectrons.electronIDSources = cms.PSet( # configure many IDs as InputTag <someName> = <someTag> you # can comment out those you don't want to save some disk space eidRobustLoose = cms.InputTag("reducedEgamma","eidRobustLoose"), eidRobustTight = cms.InputTag("reducedEgamma","eidRobustTight"), eidLoose = cms.InputTag("reducedEgamma","eidLoose"), eidTight = cms.InputTag("reducedEgamma","eidTight"), eidRobustHighEnergy = cms.InputTag("reducedEgamma","eidRobustHighEnergy"), ) process.elPFIsoDepositCharged.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositChargedAll.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositNeutral.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositGamma.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositPU.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") # process.patPhotons.embedSuperCluster = False ## whether to process.patPhotons.embed in AOD externally stored supercluster process.patPhotons.embedSeedCluster = False ## process.patPhotons.embed in AOD externally stored the photon's seedcluster process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer process.patPhotons.photonSource = cms.InputTag("reducedEgamma","reducedGedPhotons") process.patPhotons.photonIDSources = cms.PSet( PhotonCutBasedIDLoose = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDLoose'), PhotonCutBasedIDTight = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDTight') ) process.phPFIsoDepositCharged.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositChargedAll.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositNeutral.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositGamma.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositPU.src = cms.InputTag("reducedEgamma","reducedGedPhotons") # process.selectedPatJets.cut = cms.string("pt > 10") process.selectedPatMuons.cut = cms.string("pt > 5 || isPFMuon || (pt > 3 && (isGlobalMuon || isStandAloneMuon || numberOfMatches > 0 || muonID('RPCMuLoose')))") process.selectedPatElectrons.cut = cms.string("") process.selectedPatTaus.cut = cms.string("pt > 18. && tauID('decayModeFinding')> 0.5") process.selectedPatPhotons.cut = cms.string("") # add CMS top tagger from RecoJets.JetProducers.caTopTaggers_cff import caTopTagInfos as toptag process.cmsttRaw = toptag.clone() process.caTopTagInfos = cms.EDProducer("RecoJetDeltaRTagInfoValueMapProducer", src = cms.InputTag("ak8PFJetsCHS"), matched = cms.InputTag("cmsTopTagPFJetsCHS"), matchedTagInfos = cms.InputTag("cmsttRaw"), distMax = cms.double(0.8) ) #add AK8 from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection addJetCollection(process, labelName = 'AK8', jetSource = cms.InputTag('ak8PFJetsCHS'), algo= 'AK', rParam = 0.8, jetCorrections = ('AK8PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), btagInfos = ['caTopTagInfos'] ) process.patJetsAK8.userData.userFloats.src = [] # start with empty list of user floats process.selectedPatJetsAK8.cut = cms.string("pt > 100") process.patJetGenJetMatchAK8.matched = 'slimmedGenJets' ## AK8 groomed masses from RecoJets.Configuration.RecoPFJets_cff import ak8PFJetsCHSPruned, ak8PFJetsCHSFiltered, ak8PFJetsCHSTrimmed process.ak8PFJetsCHSPruned = ak8PFJetsCHSPruned.clone() process.ak8PFJetsCHSTrimmed = ak8PFJetsCHSTrimmed.clone() process.ak8PFJetsCHSFiltered = ak8PFJetsCHSFiltered.clone() process.load("RecoJets.JetProducers.ak8PFJetsCHS_groomingValueMaps_cfi") process.patJetsAK8.userData.userFloats.src += ['ak8PFJetsCHSPrunedLinks','ak8PFJetsCHSTrimmedLinks','ak8PFJetsCHSFilteredLinks'] # Add AK8 top tagging variables process.patJetsAK8.tagInfoSources = cms.VInputTag(cms.InputTag("caTopTagInfos")) process.patJetsAK8.addTagInfos = cms.bool(True) # add Njetiness process.load('RecoJets.JetProducers.nJettinessAdder_cfi') process.NjettinessAK8 = process.Njettiness.clone() process.NjettinessAK8.src = cms.InputTag("ak8PFJetsCHS") process.NjettinessAK8.cone = cms.double(0.8) process.patJetsAK8.userData.userFloats.src += ['NjettinessAK8:tau1','NjettinessAK8:tau2','NjettinessAK8:tau3'] # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerStandAlone switchOnTriggerStandAlone( process, outputModule = '' ) process.patTrigger.packTriggerPathNames = cms.bool(True) # # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET # FIXME: this and the typeI MET should become AK4 once we have the proper JEC? from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties addJetCollection(process, postfix = "ForMetUnc", labelName = 'AK4PF', jetSource = cms.InputTag('ak4PFJets'), jetCorrections = ('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) process.patJetsAK4PFForMetUnc.getJetMCFlavour = False runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection="selectedPatJetsAK4PFForMetUnc", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", makeType1p2corrPFMEt=True, outputModule=None) #keep this after all addJetCollections otherwise it will attempt computing them also for stuf with no taginfos #Some useful BTAG vars process.patJets.userData.userFunctions = cms.vstring( '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).p4.M):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).nTracks):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().flightDistance(0).value):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().flightDistance(0).significance):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).p4.x):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).p4.y):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).p4.z):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).position.x):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).position.y):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).position.z):(0)', ) process.patJets.userData.userFunctionLabels = cms.vstring('vtxMass','vtxNtracks','vtx3DVal','vtx3DSig','vtxPx','vtxPy','vtxPz','vtxPosX','vtxPosY','vtxPosZ') process.patJets.tagInfoSources = cms.VInputTag(cms.InputTag("secondaryVertexTagInfos")) process.patJets.addTagInfos = cms.bool(True) # ## PU JetID process.load("PhysicsTools.PatAlgos.slimming.pileupJetId_cfi") process.patJets.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ] #VID Electron IDs electron_ids = ['RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_50ns_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_PU20bx25_V0_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_25ns_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_startup_cff'] switchOnVIDElectronIdProducer(process) process.egmGsfElectronIDs.physicsObjectSrc = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.src = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.ebReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEBRecHits") process.electronIDValueMapProducer.eeReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEERecHits") process.electronIDValueMapProducer.esReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedESRecHits") for idmod in electron_ids: setupAllVIDIdsInModule(process,idmod,setupVIDElectronSelection)
def addCorrectedPFMet(process, isMC, doApplyType0corr, doApplySysShiftCorr, runPeriod, doSmearJets): process.load("PhysicsTools.PatUtils.patPFMETCorrections_cff") process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_cff") if isMC: process.calibratedAK5PFJetsForPFMEtMVA.correctors = cms.vstring( "ak5PFL1FastL2L3") else: process.calibratedAK5PFJetsForPFMEtMVA.correctors = cms.vstring( "ak5PFL1FastL2L3Residual") process.pfMEtMVA.srcCorrJets = cms.InputTag( 'calibratedAK5PFJetsForPFMEtMVA') process.pfMEtMVA.srcLeptons = cms.VInputTag('goodMuons') process.pfMEtMVA.verbosity = cms.int32(0) process.patPFMetMVA = process.patMETs.clone( metSource=cms.InputTag('pfMEtMVA'), addMuonCorrections=cms.bool(False), genMETSource=cms.InputTag('genMetTrue')) process.patMEtMVAsequence = cms.Sequence(process.pfMEtMVAsequence + process.patPFMetMVA) process.load("JetMETCorrections.METPUSubtraction.noPileUpPFMET_cff") process.load("JetMETCorrections.METPUSubtraction.noPileUpPFchsMET_cff") if isMC: process.calibratedAK5PFJetsForNoPileUpPFMEt.correctors = cms.vstring( "ak5PFL1FastL2L3") process.calibratedAK5PFchsJetsForNoPileUpPFchsMEt.correctors = cms.vstring( "ak5PFchsL1FastL2L3") else: process.calibratedAK5PFJetsForNoPileUpPFMEt.correctors = cms.vstring( "ak5PFL1FastL2L3Residual") process.calibratedAK5PFchsJetsForNoPileUpPFchsMEt.correctors = cms.vstring( "ak5PFchsL1FastL2L3Residual") process.noPileUpPFMEt.srcLeptons = cms.VInputTag('patMuons') process.noPileUpPFMEtData.verbosity = cms.int32(0) process.noPileUpPFMEt.verbosity = cms.int32(0) process.patPFMetNoPileUp = process.patMETs.clone( metSource=cms.InputTag('noPileUpPFMEt'), addMuonCorrections=cms.bool(False), genMETSource=cms.InputTag('genMetTrue')) process.noPileUpPFchsMEt.srcLeptons = cms.VInputTag('patMuons') process.noPileUpPFchsMEtData.verbosity = cms.int32(0) process.noPileUpPFchsMEt.verbosity = cms.int32(0) process.patPFchsMetNoPileUp = process.patMETs.clone( metSource=cms.InputTag('noPileUpPFchsMEt'), addMuonCorrections=cms.bool(False), genMETSource=cms.InputTag('genMetTrue')) process.patMEtNoPileUpSequence = cms.Sequence( process.noPileUpPFMEtSequence + process.patPFMetNoPileUp + process.patPFchsMetNoPileUp) process.makeCorrectedPatMETs = cms.Sequence() if isMC: import PhysicsTools.PatAlgos.tools.helpers as configtools process.type0PFMEtCorrection.remove( process.type0PFMEtCorrectionPFCandToVertexAssociation) process.makeCorrectedPatMETs += process.type0PFMEtCorrectionPFCandToVertexAssociation configtools.cloneProcessingSnippet(process, process.producePatPFMETCorrections, "NoSmearing") process.selectedPatJetsForMETtype1p2CorrNoSmearing.src = cms.InputTag( 'patJetsNotOverlappingWithLeptonsForMEtUncertainty') process.selectedPatJetsForMETtype2CorrNoSmearing.src = process.selectedPatJetsForMETtype1p2CorrNoSmearing.src configtools.cloneProcessingSnippet(process, process.patMEtMVAsequence, "NoSmearing") process.patMEtNoPileUpSequence.remove(process.type0PFMEtCorrection) configtools.cloneProcessingSnippet(process, process.patMEtNoPileUpSequence, "NoSmearing") else: doSmearJets = False sysShiftCorrParameter = None if doApplySysShiftCorr: process.load("JetMETCorrections.Type1MET.pfMETsysShiftCorrections_cfi") if runPeriod == "2012RunABC": if isMC: sysShiftCorrParameter = process.pfMEtSysShiftCorrParameters_2012runABCvsNvtx_mc else: sysShiftCorrParameter = process.pfMEtSysShiftCorrParameters_2012runABCvsNvtx_data else: raise ValueError("Invalid runPeriod = %s !!" % runPeriod) from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process, electronCollection='', photonCollection='', muonCollection=cms.InputTag('patMuons'), tauCollection='', jetCollection=cms.InputTag('patJets'), doSmearJets=doSmearJets, makeType1corrPFMEt=True, makeType1p2corrPFMEt=True, doApplyType0corr=doApplyType0corr, sysShiftCorrParameter=sysShiftCorrParameter, doApplySysShiftCorr=doApplySysShiftCorr, addToPatDefaultSequence=False) from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runMVAMEtUncertainties runMVAMEtUncertainties(process, electronCollection='', photonCollection='', muonCollection=cms.InputTag('patMuons'), tauCollection='', doSmearJets=doSmearJets, addToPatDefaultSequence=False) from PhysicsTools.PatUtils.tools.runNoPileUpMEtUncertainties import runNoPileUpMEtUncertainties runNoPileUpMEtUncertainties(process, electronCollection='', photonCollection='', muonCollection=cms.InputTag('patMuons'), tauCollection='', doApplyChargedHadronSubtraction=False, doSmearJets=doSmearJets, addToPatDefaultSequence=False) runNoPileUpMEtUncertainties(process, electronCollection='', photonCollection='', muonCollection=cms.InputTag('patMuons'), tauCollection='', doApplyChargedHadronSubtraction=True, doSmearJets=doSmearJets, addToPatDefaultSequence=False) if isMC: process.patPFMet.addGenMET = cms.bool(True) process.patPFMetMVA.addGenMET = cms.bool(True) process.patPFJetMETtype1p2Corr.jetCorrLabel = cms.string("L3Absolute") process.patPFJetMETtype1p2CorrNoSmearing.jetCorrLabel = cms.string( "L3Absolute") process.makeCorrectedPatMETs += process.metUncertaintySequence process.makeCorrectedPatMETs += process.producePatPFMETCorrectionsNoSmearing process.makeCorrectedPatMETs += process.patMEtMVAsequenceNoSmearing process.makeCorrectedPatMETs += process.patMEtNoPileUpSequenceNoSmearing else: process.patPFMet.addGenMET = cms.bool(False) process.patPFMetMVA.addGenMET = cms.bool(False) process.patPFJetMETtype1p2Corr.jetCorrLabel = cms.string( "L2L3Residual") process.makeCorrectedPatMETs += process.patJetsNotOverlappingWithLeptonsForMEtUncertainty if hasattr(process, "pfMEtSysShiftCorrSequence"): process.makeCorrectedPatMETs += process.pfMEtSysShiftCorrSequence process.makeCorrectedPatMETs += process.producePatPFMETCorrections process.makeCorrectedPatMETs += process.patMEtMVAsequence process.makeCorrectedPatMETs += process.patMEtNoPileUpSequence # add MVA MEt with unity response training for moduleName in dir(process): if (moduleName.endswith("Up") or moduleName.endswith("Down")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_() == "PFMETProducerMVA": module_unity = module.clone(inputFileNames=cms.PSet( DPhi=cms.FileInPath( 'JetMETCorrections/METPUSubtraction/data/gbrmetphi_53.root' ), # CV: same for unity and non-unity response training CovU2=cms.FileInPath( 'JetMETCorrections/METPUSubtraction/data/gbru2cov_53_UnityResponse.root' ), U=cms.FileInPath( 'JetMETCorrections/METPUSubtraction/data/gbrmet_53_UnityResponse.root' ), CovU1=cms.FileInPath( 'JetMETCorrections/METPUSubtraction/data/gbru1cov_53_UnityResponse.root' ))) moduleName_unity = moduleName.replace("pfMEtMVA", "pfMEtMVAunityResponse") setattr(process, moduleName_unity, module_unity) process.makeCorrectedPatMETs += module_unity for moduleName in dir(process): if (moduleName.endswith("Up") or moduleName.endswith("Down")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_( ) == "PATMETProducer" and moduleName.find("patPFMetMVA") != -1: module_unity = module.clone( metSource=cms.InputTag(module.metSource.value().replace( "pfMEtMVA", "pfMEtMVAunityResponse"))) moduleName_unity = moduleName.replace("patPFMetMVA", "patPFMetMVAunityResponse") setattr(process, moduleName_unity, module_unity) process.makeCorrectedPatMETs += module_unity # add No-PU MEt without L1Fastjet jet energy corrections for moduleName in dir(process): if ((moduleName.endswith("Up") or moduleName.endswith("Down")) and not moduleName.endswith("NoPileUp")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_( ) == "NoPileUpPFMEtDataProducer": moduleName_calib_or_corrJets = module.srcJets.value() module_calib_or_corrJets = getattr(process, moduleName_calib_or_corrJets) moduleName_calibJets = None moduleName_corrJets = None moduleName_smearedJets = None ##print "%s: %s" % (moduleName_calib_or_corrJets, module_calib_or_corrJets.type_()) if module_calib_or_corrJets.type_() == "ShiftedPFJetProducer": moduleName_corrJets = moduleName_calib_or_corrJets module_corrJets = getattr(process, moduleName_corrJets) moduleName_calibJets = module_corrJets.src.value() elif module_calib_or_corrJets.type_() == "PFJetCorrectionProducer": moduleName_calibJets = moduleName_calib_or_corrJets elif module_calib_or_corrJets.type_() == "SmearedPFJetProducer": moduleName_smearedJets = moduleName_calib_or_corrJets module_smearedJets = getattr(process, moduleName_smearedJets) moduleName_calibJets = module_smearedJets.src.value() else: raise ValueError("Module = %s is of unsupported type = %s !!" % (moduleName_calib_or_corrJets, module_calib_or_corrJets.type_())) if moduleName_calibJets: module_calibJets = getattr(process, moduleName_calibJets) module_calibJets_woL1FastJet = module_calibJets.clone( correctors=cms.vstring( module_calibJets.correctors[0].replace("L1Fast", ""))) moduleName_calibJets_woL1FastJet = moduleName_calibJets.replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet") setattr(process, moduleName_calibJets_woL1FastJet, module_calibJets_woL1FastJet) ##print "adding module %s: %s" % (moduleName_calibJets_woL1FastJet, module_calibJets_woL1FastJet.type_()) process.makeCorrectedPatMETs += module_calibJets_woL1FastJet if moduleName_corrJets: module_corrJets = getattr(process, moduleName_corrJets) module_corrJets_woL1FastJet = module_corrJets.clone( src=cms.InputTag(module_corrJets.src.value().replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet")), jetCorrLabelUpToL3Res=cms.string( module_corrJets.jetCorrLabelUpToL3Res.value().replace( "L1Fast", "")), jetCorrLabelUpToL3=cms.string( module_corrJets.jetCorrLabelUpToL3.value().replace( "L1Fast", ""))) moduleName_corrJets_woL1FastJet = moduleName_corrJets.replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet") setattr(process, moduleName_corrJets_woL1FastJet, module_corrJets_woL1FastJet) ##print "adding module %s: %s" % (moduleName_corrJets_woL1FastJet, module_corrJets_woL1FastJet.type_()) process.makeCorrectedPatMETs += module_corrJets_woL1FastJet if moduleName_smearedJets: module_smearedJets = getattr(process, moduleName_smearedJets) module_smearedJets_woL1FastJet = module_smearedJets.clone( src=cms.InputTag(module_smearedJets.src.value().replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet")), jetCorrLabel=cms.string('ak5PFL1Fastjet')) moduleName_smearedJets_woL1FastJet = moduleName_smearedJets.replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet") setattr(process, moduleName_smearedJets_woL1FastJet, module_smearedJets_woL1FastJet) ##print "adding module %s: %s" % (moduleName_smearedJets_woL1FastJet, module_smearedJets_woL1FastJet.type_()) process.makeCorrectedPatMETs += module_smearedJets_woL1FastJet moduleName_jetId = module.srcJetIds.getModuleLabel() module_jetId = getattr(process, moduleName_jetId) module_jetId_woL1FastJet = module_jetId.clone( jets=cms.InputTag(module_jetId.jets.value().replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet"))) moduleName_jetId_woL1FastJet = moduleName_jetId.replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet") setattr(process, moduleName_jetId_woL1FastJet, module_jetId_woL1FastJet) ##print "adding module %s: %s" % (moduleName_jetId_woL1FastJet, module_jetId_woL1FastJet.type_()) process.makeCorrectedPatMETs += module_jetId_woL1FastJet module_woL1FastJet = module.clone( jetEnOffsetCorrLabel=cms.string(""), srcJets=cms.InputTag(module.srcJets.value().replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet")), srcJetIds=cms.InputTag(module.srcJetIds.value().replace( "ForNoPileUpPFMEt", "ForNoPileUpPFMEtWithoutL1FastJet"))) moduleName_woL1FastJet = moduleName.replace( "noPileUpPFMEtData", "noPileUpPFMEtDataWithoutL1FastJet") setattr(process, moduleName_woL1FastJet, module_woL1FastJet) process.makeCorrectedPatMETs += module_woL1FastJet for moduleName in dir(process): if ((moduleName.endswith("Up") or moduleName.endswith("Down")) and not moduleName.endswith("NoPileUp")) and not isMC: continue module = getattr(process, moduleName) if isinstance( module, cms.EDProducer) and module.type_() == "NoPileUpPFMEtProducer": module_woL1FastJet = module.clone(srcMVAMEtData=cms.InputTag( module.srcMVAMEtData.value().replace( "noPileUpPFMEtData", "noPileUpPFMEtDataWithoutL1FastJet"))) moduleName_woL1FastJet = moduleName.replace( "noPileUpPFMEt", "noPileUpPFMEtWithoutL1FastJet") setattr(process, moduleName_woL1FastJet, module_woL1FastJet) process.makeCorrectedPatMETs += module_woL1FastJet for moduleName in dir(process): if ((moduleName.endswith("Up") or moduleName.endswith("Down")) and not moduleName.endswith("NoPileUp")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_( ) == "PATMETProducer" and moduleName.find("patPFMetNoPileUp") != -1: module_woL1FastJet = module.clone( metSource=cms.InputTag(module.metSource.value().replace( "noPileUpPFMEt", "noPileUpPFMEtWithoutL1FastJet"))) moduleName_woL1FastJet = moduleName.replace( "patPFMetNoPileUp", "patPFMetNoPileUpWithoutL1FastJet") setattr(process, moduleName_woL1FastJet, module_woL1FastJet) process.makeCorrectedPatMETs += module_woL1FastJet return process.makeCorrectedPatMETs
def miniAOD_customizeCommon(process): process.patMuons.isoDeposits = cms.PSet() process.patElectrons.isoDeposits = cms.PSet() process.patTaus.isoDeposits = cms.PSet() process.patPhotons.isoDeposits = cms.PSet() # process.patMuons.embedTrack = True # used for IDs process.patMuons.embedCombinedMuon = True # used for IDs process.patMuons.embedMuonBestTrack = True # used for IDs process.patMuons.embedStandAloneMuon = True # maybe? process.patMuons.embedPickyMuon = False # no, use best track process.patMuons.embedTpfmsMuon = False # no, use best track process.patMuons.embedDytMuon = False # no, use best track # # disable embedding of electron and photon associated objects already stored by the ReducedEGProducer process.patElectrons.embedGsfElectronCore = False ## process.patElectrons.embed in AOD externally stored gsf electron core process.patElectrons.embedSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedPflowSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedSeedCluster = False ## process.patElectrons.embed in AOD externally stored the electron's seedcluster process.patElectrons.embedBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's basic clusters process.patElectrons.embedPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's preshower clusters process.patElectrons.embedPflowBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow basic clusters process.patElectrons.embedPflowPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow preshower clusters process.patElectrons.embedRecHits = False ## process.patElectrons.embed in AOD externally stored the RecHits - can be called from the PATElectronProducer process.patElectrons.electronSource = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.patElectrons.electronIDSources = cms.PSet( # configure many IDs as InputTag <someName> = <someTag> you # can comment out those you don't want to save some disk space eidRobustLoose=cms.InputTag("reducedEgamma", "eidRobustLoose"), eidRobustTight=cms.InputTag("reducedEgamma", "eidRobustTight"), eidLoose=cms.InputTag("reducedEgamma", "eidLoose"), eidTight=cms.InputTag("reducedEgamma", "eidTight"), eidRobustHighEnergy=cms.InputTag("reducedEgamma", "eidRobustHighEnergy"), ) process.elPFIsoDepositChargedPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositChargedAllPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositNeutralPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositGammaPAT.src = cms.InputTag( "reducedEgamma", "reducedGedGsfElectrons") process.elPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma", "reducedGedGsfElectrons") # process.patPhotons.embedSuperCluster = False ## whether to process.patPhotons.embed in AOD externally stored supercluster process.patPhotons.embedSeedCluster = False ## process.patPhotons.embed in AOD externally stored the photon's seedcluster process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer process.patPhotons.photonSource = cms.InputTag("reducedEgamma", "reducedGedPhotons") process.patPhotons.photonIDSources = cms.PSet( PhotonCutBasedIDLoose=cms.InputTag('reducedEgamma', 'PhotonCutBasedIDLoose'), PhotonCutBasedIDTight=cms.InputTag('reducedEgamma', 'PhotonCutBasedIDTight')) process.phPFIsoDepositChargedPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositChargedAllPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositNeutralPAT.src = cms.InputTag( "reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositGammaPAT.src = cms.InputTag("reducedEgamma", "reducedGedPhotons") process.phPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma", "reducedGedPhotons") # process.selectedPatJets.cut = cms.string("pt > 10") process.selectedPatMuons.cut = cms.string( "pt > 5 || isPFMuon || (pt > 3 && (isGlobalMuon || isStandAloneMuon || numberOfMatches > 0 || muonID('RPCMuLoose')))" ) process.selectedPatElectrons.cut = cms.string("") process.selectedPatTaus.cut = cms.string( "pt > 18. && tauID('decayModeFinding')> 0.5") process.selectedPatPhotons.cut = cms.string("") # add CMS top tagger from RecoJets.JetProducers.caTopTaggers_cff import caTopTagInfos process.caTopTagInfos = caTopTagInfos.clone() process.caTopTagInfosPAT = cms.EDProducer( "RecoJetDeltaRTagInfoValueMapProducer", src=cms.InputTag("ak8PFJetsCHS"), matched=cms.InputTag("cmsTopTagPFJetsCHS"), matchedTagInfos=cms.InputTag("caTopTagInfos"), distMax=cms.double(0.8)) #add AK8 from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection addJetCollection( process, labelName='AK8', jetSource=cms.InputTag('ak8PFJetsCHS'), algo='AK', rParam=0.8, jetCorrections=('AK8PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), btagInfos=['caTopTagInfosPAT']) process.patJetsAK8.userData.userFloats.src = [ ] # start with empty list of user floats process.selectedPatJetsAK8.cut = cms.string("pt > 100") process.patJetGenJetMatchAK8.matched = 'slimmedGenJets' ## AK8 groomed masses from RecoJets.Configuration.RecoPFJets_cff import ak8PFJetsCHSPruned, ak8PFJetsCHSSoftDrop, ak8PFJetsCHSFiltered, ak8PFJetsCHSTrimmed process.ak8PFJetsCHSPruned = ak8PFJetsCHSPruned.clone() process.ak8PFJetsCHSSoftDrop = ak8PFJetsCHSSoftDrop.clone() process.ak8PFJetsCHSTrimmed = ak8PFJetsCHSTrimmed.clone() process.ak8PFJetsCHSFiltered = ak8PFJetsCHSFiltered.clone() process.load("RecoJets.JetProducers.ak8PFJetsCHS_groomingValueMaps_cfi") process.patJetsAK8.userData.userFloats.src += [ 'ak8PFJetsCHSPrunedMass', 'ak8PFJetsCHSSoftDropMass', 'ak8PFJetsCHSTrimmedMass', 'ak8PFJetsCHSFilteredMass' ] # Add AK8 top tagging variables process.patJetsAK8.tagInfoSources = cms.VInputTag( cms.InputTag("caTopTagInfosPAT")) process.patJetsAK8.addTagInfos = cms.bool(True) # add Njetiness process.load('RecoJets.JetProducers.nJettinessAdder_cfi') process.NjettinessAK8 = process.Njettiness.clone() process.NjettinessAK8.src = cms.InputTag("ak8PFJetsCHS") process.NjettinessAK8.cone = cms.double(0.8) process.patJetsAK8.userData.userFloats.src += [ 'NjettinessAK8:tau1', 'NjettinessAK8:tau2', 'NjettinessAK8:tau3' ] # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerStandAlone switchOnTriggerStandAlone(process, outputModule='') process.patTrigger.packTriggerPathNames = cms.bool(True) # # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET # FIXME: this and the typeI MET should become AK4 once we have the proper JEC? from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties addJetCollection(process, postfix="ForMetUnc", labelName='AK4PF', jetSource=cms.InputTag('ak4PFJets'), jetCorrections=('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) process.patJetsAK4PFForMetUnc.getJetMCFlavour = False runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection="selectedPatJetsAK4PFForMetUnc", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", makeType1p2corrPFMEt=True, outputModule=None) #keep this after all addJetCollections otherwise it will attempt computing them also for stuf with no taginfos #Some useful BTAG vars process.patJets.userData.userFunctions = cms.vstring( '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.M):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).numberOfSourceCandidatePtrs):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).value):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).significance):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.z):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.z):(0)', ) process.patJets.userData.userFunctionLabels = cms.vstring( 'vtxMass', 'vtxNtracks', 'vtx3DVal', 'vtx3DSig', 'vtxPx', 'vtxPy', 'vtxPz', 'vtxPosX', 'vtxPosY', 'vtxPosZ') process.patJets.tagInfoSources = cms.VInputTag( cms.InputTag("pfSecondaryVertexTagInfos")) process.patJets.addTagInfos = cms.bool(True) # ## PU JetID process.load("PhysicsTools.PatAlgos.slimming.pileupJetId_cfi") process.patJets.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ] #VID Electron IDs electron_ids = [ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_50ns_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_PU20bx25_V0_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_25ns_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_startup_cff' ] switchOnVIDElectronIdProducer(process) process.egmGsfElectronIDs.physicsObjectSrc = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.src = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.ebReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEBRecHits") process.electronIDValueMapProducer.eeReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEERecHits") process.electronIDValueMapProducer.esReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedESRecHits") for idmod in electron_ids: setupAllVIDIdsInModule(process, idmod, setupVIDElectronSelection)
'L3Absolute'], ''), genParticles=cms.InputTag('prunedGenParticles'), pvSource=cms.InputTag('offlineSlimmedPrimaryVertices')) from RecoMET.METProducers.PFMET_cfi import pfMet process.pfMet = pfMet.clone(src="packedPFCandidates") process.pfMet.calculateSignificance = False from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1 process.pfMetT1 = pfMetT1.clone() from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection="selectedPatJets", photonCollection="slimmedPhotons", electronCollection="slimmedElectrons", muonCollection="slimmedMuons", tauCollection="slimmedTaus", makeType1p2corrPFMEt=False) process.patMETs.addGenMET = cms.bool(False) process.patJets.addGenJetMatch = cms.bool(False) process.patJets.addGenPartonMatch = cms.bool(False) process.patJets.addPartonJetMatch = cms.bool(False) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName='patMET', metSource='pfMetT1') # T1 addMETCollection(process, labelName='patPFMet', metSource='pfMet') # RAW from PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi import slimmedMETs process.mySlimmedMETs = slimmedMETs.clone()
from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection switchJetCollection( process, jetSource=cms.InputTag("ak4PFJets"), jetCorrections=("AK4PF", ["L1FastJet", "L2Relative", "L3Absolute"], ""), ) # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties( process, addToPatDefaultSequence=False, jetCollection="selectedPatJets", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", ) ## ------------------------------------------------------ # In addition you usually want to change the following # parameters: ## ------------------------------------------------------ # # process.GlobalTag.globaltag = ... ## (according to https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions) # ## ## switch to RECO input from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValProdTTbarAODSIM
def miniAOD_customizeCommon(process): process.patMuons.isoDeposits = cms.PSet() process.patElectrons.isoDeposits = cms.PSet() process.patTaus.isoDeposits = cms.PSet() process.patPhotons.isoDeposits = cms.PSet() # process.patMuons.embedTrack = True # used for IDs process.patMuons.embedCombinedMuon = True # used for IDs process.patMuons.embedMuonBestTrack = True # used for IDs process.patMuons.embedStandAloneMuon = True # maybe? process.patMuons.embedPickyMuon = False # no, use best track process.patMuons.embedTpfmsMuon = False # no, use best track process.patMuons.embedDytMuon = False # no, use best track # # disable embedding of electron and photon associated objects already stored by the ReducedEGProducer process.patElectrons.embedGsfElectronCore = False ## process.patElectrons.embed in AOD externally stored gsf electron core process.patElectrons.embedSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedPflowSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedSeedCluster = False ## process.patElectrons.embed in AOD externally stored the electron's seedcluster process.patElectrons.embedBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's basic clusters process.patElectrons.embedPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's preshower clusters process.patElectrons.embedPflowBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow basic clusters process.patElectrons.embedPflowPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow preshower clusters process.patElectrons.embedRecHits = False ## process.patElectrons.embed in AOD externally stored the RecHits - can be called from the PATElectronProducer process.patElectrons.electronSource = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.patElectrons.electronIDSources = cms.PSet( # configure many IDs as InputTag <someName> = <someTag> you # can comment out those you don't want to save some disk space eidRobustLoose = cms.InputTag("reducedEgamma","eidRobustLoose"), eidRobustTight = cms.InputTag("reducedEgamma","eidRobustTight"), eidLoose = cms.InputTag("reducedEgamma","eidLoose"), eidTight = cms.InputTag("reducedEgamma","eidTight"), eidRobustHighEnergy = cms.InputTag("reducedEgamma","eidRobustHighEnergy"), ) process.patElectrons.addPFClusterIso = cms.bool(True) process.patElectrons.ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleEcalPFClusIso") process.patElectrons.hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleHcalPFClusIso") process.elPFIsoDepositChargedPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositChargedAllPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositNeutralPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositGammaPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") # process.patPhotons.embedSuperCluster = False ## whether to process.patPhotons.embed in AOD externally stored supercluster process.patPhotons.embedSeedCluster = False ## process.patPhotons.embed in AOD externally stored the photon's seedcluster process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer process.patPhotons.addPFClusterIso = cms.bool(True) process.patPhotons.ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoEcalPFClusIso") process.patPhotons.hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoHcalPFClusIso") process.patPhotons.photonSource = cms.InputTag("reducedEgamma","reducedGedPhotons") process.patPhotons.electronSource = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.patPhotons.photonIDSources = cms.PSet( PhotonCutBasedIDLoose = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDLoose'), PhotonCutBasedIDTight = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDTight') ) process.phPFIsoDepositChargedPAT.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositChargedAllPAT.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositNeutralPAT.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositGammaPAT.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositPUPAT.src = cms.InputTag("reducedEgamma","reducedGedPhotons") # process.selectedPatJets.cut = cms.string("pt > 10") process.selectedPatMuons.cut = cms.string("pt > 5 || isPFMuon || (pt > 3 && (isGlobalMuon || isStandAloneMuon || numberOfMatches > 0 || muonID('RPCMuLoose')))") process.selectedPatElectrons.cut = cms.string("") process.selectedPatTaus.cut = cms.string("pt > 18. && tauID('decayModeFindingNewDMs')> 0.5") process.selectedPatPhotons.cut = cms.string("") from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection from PhysicsTools.PatAlgos.slimming.applySubstructure_cff import applySubstructure applySubstructure( process ) # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerStandAlone switchOnTriggerStandAlone( process, outputModule = '' ) process.patTrigger.packTriggerPathNames = cms.bool(True) # # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET # FIXME: are we 100% sure this should still be PF and not PFchs? from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties addJetCollection(process, postfix = "ForMetUnc", labelName = 'AK4PF', jetSource = cms.InputTag('ak4PFJets'), jetCorrections = ('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) process.patJetsAK4PFForMetUnc.getJetMCFlavour = False runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollectionUnskimmed="patJetsAK4PFForMetUnc", jetCollection="selectedPatJetsAK4PFForMetUnc", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", makeType1p2corrPFMEt=True, doSmearJets=False, outputModule=None) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName = "patCaloMet", metSource = "caloMetM" ) #keep this after all addJetCollections otherwise it will attempt computing them also for stuf with no taginfos #Some useful BTAG vars process.patJets.userData.userFunctions = cms.vstring( '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.M):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).numberOfSourceCandidatePtrs):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).value):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").flightDistance(0).significance):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).p4.z):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.x):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.y):(0)', '?(tagInfoCandSecondaryVertex("pfSecondaryVertex").nVertices()>0)?(tagInfoCandSecondaryVertex("pfSecondaryVertex").secondaryVertex(0).vertex.z):(0)', ) process.patJets.userData.userFunctionLabels = cms.vstring('vtxMass','vtxNtracks','vtx3DVal','vtx3DSig','vtxPx','vtxPy','vtxPz','vtxPosX','vtxPosY','vtxPosZ') process.patJets.tagInfoSources = cms.VInputTag(cms.InputTag("pfSecondaryVertexTagInfos")) process.patJets.addTagInfos = cms.bool(True) # ## PU JetID process.load("PhysicsTools.PatAlgos.slimming.pileupJetId_cfi") process.patJets.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ] ## CaloJets process.caloJetMap = cms.EDProducer("RecoJetDeltaRValueMapProducer", src = process.patJets.jetSource, matched = cms.InputTag("ak4CaloJets"), distMax = cms.double(0.4), values = cms.vstring('pt','emEnergyFraction'), valueLabels = cms.vstring('pt','emEnergyFraction'), lazyParser = cms.bool(True) ) process.patJets.userData.userFloats.src += [ cms.InputTag("caloJetMap:pt"), cms.InputTag("caloJetMap:emEnergyFraction") ] #VID Electron IDs electron_ids = ['RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_50ns_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_PU20bx25_V0_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_25ns_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV50_CSA14_startup_cff'] switchOnVIDElectronIdProducer(process, DataFormat.MiniAOD) process.egmGsfElectronIDs.physicsObjectSrc = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.src = \ cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.electronIDValueMapProducer.ebReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEBRecHits") process.electronIDValueMapProducer.eeReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedEERecHits") process.electronIDValueMapProducer.esReducedRecHitCollection = \ cms.InputTag("reducedEgamma","reducedESRecHits") for idmod in electron_ids: setupAllVIDIdsInModule(process,idmod,setupVIDElectronSelection) # Adding puppi jets process.load('CommonTools.PileupAlgos.Puppi_cff') process.load('RecoJets.JetProducers.ak4PFJetsPuppi_cfi') process.ak4PFJetsPuppi.doAreaFastjet = True # even for standard ak4PFJets this is overwritten in RecoJets/Configuration/python/RecoPFJets_cff #process.puppi.candName = cms.InputTag('packedPFCandidates') #process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices') from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import j2tParametersVX process.ak4PFJetsPuppiTracksAssociatorAtVertex = cms.EDProducer("JetTracksAssociatorAtVertex", j2tParametersVX, jets = cms.InputTag("ak4PFJetsPuppi") ) process.patJetPuppiCharge = cms.EDProducer("JetChargeProducer", src = cms.InputTag("ak4PFJetsPuppiTracksAssociatorAtVertex"), var = cms.string('Pt'), exp = cms.double(1.0) ) addJetCollection(process, postfix = "", labelName = 'Puppi', jetSource = cms.InputTag('ak4PFJetsPuppi'), jetCorrections = ('AK4PFchs', ['L2Relative', 'L3Absolute'], ''), algo= 'AK', rParam = 0.4, btagDiscriminators = map(lambda x: x.value() ,process.patJets.discriminatorSources) ) process.patJetGenJetMatchPuppi.matched = 'slimmedGenJets' process.patJetsPuppi.userData.userFloats.src = cms.VInputTag(cms.InputTag("")) process.patJetsPuppi.jetChargeSource = cms.InputTag("patJetPuppiCharge") process.selectedPatJetsPuppi.cut = cms.string("pt > 20") process.load('PhysicsTools.PatAlgos.slimming.slimmedJets_cfi') process.slimmedJetsPuppi = process.slimmedJets.clone() process.slimmedJetsPuppi.src = cms.InputTag("selectedPatJetsPuppi") process.slimmedJetsPuppi.packedPFCandidates = cms.InputTag("packedPFCandidates") ## puppi met process.load('RecoMET.METProducers.PFMET_cfi') process.pfMetPuppi = process.pfMet.clone() process.pfMetPuppi.src = cms.InputTag("puppi") process.pfMetPuppi.alias = cms.string('pfMetPuppi') ## type1 correction, from puppi jets process.corrPfMetType1Puppi = process.corrPfMetType1.clone( src = 'ak4PFJetsPuppi', jetCorrLabel = 'ak4PFCHSL2L3Corrector', ) del process.corrPfMetType1Puppi.offsetCorrLabel # no L1 for PUPPI jets process.pfMetT1Puppi = process.pfMetT1.clone( src = 'pfMetPuppi', srcCorrections = [ cms.InputTag("corrPfMetType1Puppi","type1") ] ) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName='patMETPuppi', metSource='pfMetT1Puppi') # T1 addMETCollection(process, labelName='patPFMetPuppi', metSource='pfMetPuppi') # RAW process.load('PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi') process.slimmedMETsPuppi = process.slimmedMETs.clone() process.slimmedMETsPuppi.src = cms.InputTag("patMETPuppi") process.slimmedMETsPuppi.rawUncertainties = cms.InputTag("patPFMetPuppi") # only central value process.slimmedMETsPuppi.type1Uncertainties = cms.InputTag("patPFMetT1") # only central value for now del process.slimmedMETsPuppi.type1p2Uncertainties # not available #Jen additions from PhysicsTools.PatAlgos.slimming.metFilterPaths_cff import miniAOD_insertMETFiltersInSchedule miniAOD_insertMETFiltersInSchedule(process)
def catTool(process, runOnMC=True, doSecVertex=True, useMiniAOD=True): catJetsSource = "slimmedJets" catJetsPuppiSource = "slimmedJetsPuppi" catGenJetsSource = "slimmedGenJets" catMETsSource = "slimmedMETs" catMETsPuppiSource = "slimmedMETsPuppi" catMuonsSource = "slimmedMuons" catElectronsSource = "slimmedElectrons" catPhotonsSource = "slimmedPhotons" catTausSource = "slimmedTaus" catVertexSource = "offlineSlimmedPrimaryVertices" catMCsource = "prunedGenParticles" catBeamSpot = "offlineBeamSpot" catRho = "fixedGridRhoAll" btagNames = cms.vstring("pfCombinedInclusiveSecondaryVertexV2BJetTags") ePidNames = cms.vstring() process.load("CATTools.CatProducer.catCandidates_cff") process.load("CATTools.CatProducer.recoEventInfo_cfi") ####################################################################### # getting jec from file for jec on the fly from db file # currently only for mc if runOnMC: from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup process.jec = cms.ESSource( "PoolDBESSource", CondDBSetup, connect=cms.string( 'sqlite_fip:CATTools/CatProducer/data/PHYS14_V4_MC.db'), toGet=cms.VPSet( cms.PSet( record=cms.string("JetCorrectionsRecord"), tag=cms.string( "JetCorrectorParametersCollection_PHYS14_V4_MC_AK4PFchs" ), label=cms.untracked.string("AK4PFchs")))) process.es_prefer_jec = cms.ESPrefer("PoolDBESSource", "jec") ## applying new jec on the fly if useMiniAOD: process.load( "PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff") catJetsSource = "patJetsUpdated" ####################################################################### ####################################################################### ## for egamma pid temp ## https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Recipe_for_regular_users_for_74X from PhysicsTools.SelectorUtils.tools.vid_id_tools import DataFormat, switchOnVIDElectronIdProducer, setupAllVIDIdsInModule, setupVIDElectronSelection if not useMiniAOD: dataFormat = DataFormat.AOD else: dataFormat = DataFormat.MiniAOD switchOnVIDElectronIdProducer(process, dataFormat) my_id_modules = [ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_PHYS14_PU20bx25_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV51_cff' ] for idmod in my_id_modules: setupAllVIDIdsInModule(process, idmod, setupVIDElectronSelection) if useMiniAOD: process.catElectrons.electronIDSources = cms.PSet( eleVetoIdMap=cms.InputTag( "egmGsfElectronIDs:cutBasedElectronID-PHYS14-PU20bx25-V2-standalone-veto" ), eleLooseIdMap=cms.InputTag( "egmGsfElectronIDs:cutBasedElectronID-PHYS14-PU20bx25-V2-standalone-loose" ), eleMediumIdMap=cms.InputTag( "egmGsfElectronIDs:cutBasedElectronID-PHYS14-PU20bx25-V2-standalone-medium" ), eleTightIdMap=cms.InputTag( "egmGsfElectronIDs:cutBasedElectronID-PHYS14-PU20bx25-V2-standalone-tight" ), eleHEEPIdMap=cms.InputTag( "egmGsfElectronIDs:heepElectronID-HEEPV51"), ) ####################################################################### if runOnMC: ## Load MC dependent producers ## FIX ME - pile up and pdf weight process.load("CATTools.CatProducer.pdfWeight_cff") process.load("CATTools.CatProducer.pileupWeight_cff") if not useMiniAOD: process.load("CATTools.CatProducer.genTopProducer_cfi") ## FIX ME very out of date! ## using MEtUncertainties to get lepton shifts ## Need to update - Jet calculation was old, would most likely be the same for leptons from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties( process, addToPatDefaultSequence=False, jetCollection=catJetsSource, electronCollection=catElectronsSource, photonCollection=catPhotonsSource, muonCollection=catMuonsSource, tauCollection=catTausSource, makeType1p2corrPFMEt=True, outputModule=None, jecUncertaintyFile=None, ) process.catMuons.shiftedEnDownSrc = cms.InputTag( "shiftedSlimmedMuonsEnDown") process.catMuons.shiftedEnUpSrc = cms.InputTag( "shiftedSlimmedMuonsEnUp") process.catElectrons.shiftedEnDownSrc = cms.InputTag( "shiftedSlimmedElectronsEnDown") process.catElectrons.shiftedEnUpSrc = cms.InputTag( "shiftedSlimmedElectronsEnUp") if doSecVertex: from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import TransientTrackBuilderESProducer setattr(process, "TransientTrackBuilderESProducer", TransientTrackBuilderESProducer) #process.makeCatCandidates += process.catSecVertexs process.catJets.src = cms.InputTag(catJetsSource) process.catJets.genJetMatch = cms.InputTag("patJetGenJetMatch") process.catJets.btagNames = btagNames process.catTaus.src = cms.InputTag(catTausSource) process.catTaus.genJetMatch = cms.InputTag("tauGenJetMatch") process.catMuons.src = cms.InputTag(catMuonsSource) process.catMuons.mcLabel = cms.InputTag(catMCsource) process.catMuons.vertexLabel = cms.InputTag(catVertexSource) process.catMuons.beamLineSrc = cms.InputTag(catBeamSpot) process.catElectrons.src = cms.InputTag(catElectronsSource) process.catElectrons.ePidNames = ePidNames process.catElectrons.vertexLabel = cms.InputTag(catVertexSource) process.catElectrons.mcLabel = cms.InputTag(catMCsource) process.catElectrons.beamLineSrc = cms.InputTag(catBeamSpot) process.catElectrons.rhoLabel = cms.InputTag(catRho) process.catPhotons.src = cms.InputTag(catPhotonsSource) process.catMETs.src = cms.InputTag(catMETsSource) process.catSecVertexs.muonSrc = cms.InputTag(catMuonsSource) process.catSecVertexs.elecSrc = cms.InputTag(catElectronsSource) process.catSecVertexs.vertexLabel = cms.InputTag(catVertexSource) process.catJetsPuppi.src = cms.InputTag(catJetsPuppiSource) process.catJetsPuppi.genJetMatch = cms.InputTag("patJetGenJetMatch") process.catJetsPuppi.btagNames = btagNames process.catMETsPuppi.src = cms.InputTag(catMETsPuppiSource)
def addCorrectedPFMet(process, isMC, doApplyType0corr, doApplySysShiftCorr, runPeriod, doSmearJets, jecUncertaintyTag, doApplyUnclEnergyResidualCorr): process.load("PhysicsTools.PatUtils.patPFMETCorrections_cff") process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_cff") if isMC: process.calibratedAK5PFJetsForPFMEtMVA.correctors = cms.vstring("ak5PFL1FastL2L3") else: process.calibratedAK5PFJetsForPFMEtMVA.correctors = cms.vstring("ak5PFL1FastL2L3Residual") process.pfMEtMVA.srcCorrJets = cms.InputTag('calibratedAK5PFJetsForPFMEtMVA') process.pfMEtMVA.srcLeptons = cms.VInputTag('goodMuons') process.pfMEtMVA.inputFileNames = cms.PSet( DPhi = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbrmetphi_53_June2013_type1.root'), CovU2 = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbru2cov_53_Dec2012.root'), U = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbrmet_53_June2013_type1.root'), CovU1 = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbru1cov_53_Dec2012.root') ) process.pfMEtMVA.loadMVAfromDB = cms.bool(False) process.pfMEtMVA.verbosity = cms.int32(0) process.patPFMetMVA = process.patMETs.clone( metSource = cms.InputTag('pfMEtMVA'), addMuonCorrections = cms.bool(False), genMETSource = cms.InputTag('genMetTrue') ) process.patMEtMVAsequence = cms.Sequence(process.pfMEtMVAsequence + process.patPFMetMVA) process.load("JetMETCorrections.METPUSubtraction.noPileUpPFMET_cff") process.load("JetMETCorrections.METPUSubtraction.noPileUpPFchsMET_cff") if isMC: process.calibratedAK5PFJetsForNoPileUpPFMEt.correctors = cms.vstring("ak5PFL1FastL2L3") process.calibratedAK5PFchsJetsForNoPileUpPFchsMEt.correctors = cms.vstring("ak5PFchsL1FastL2L3") else: process.calibratedAK5PFJetsForNoPileUpPFMEt.correctors = cms.vstring("ak5PFL1FastL2L3Residual") process.calibratedAK5PFchsJetsForNoPileUpPFchsMEt.correctors = cms.vstring("ak5PFchsL1FastL2L3Residual") process.noPileUpPFMEt.srcLeptons = cms.VInputTag('patMuons') process.noPileUpPFMEtData.verbosity = cms.int32(0) process.noPileUpPFMEt.verbosity = cms.int32(0) process.patPFMetNoPileUp = process.patMETs.clone( metSource = cms.InputTag('noPileUpPFMEt'), addMuonCorrections = cms.bool(False), genMETSource = cms.InputTag('genMetTrue') ) process.noPileUpPFchsMEt.srcLeptons = cms.VInputTag('patMuons') process.noPileUpPFchsMEtData.verbosity = cms.int32(0) process.noPileUpPFchsMEt.verbosity = cms.int32(0) process.patPFchsMetNoPileUp = process.patMETs.clone( metSource = cms.InputTag('noPileUpPFchsMEt'), addMuonCorrections = cms.bool(False), genMETSource = cms.InputTag('genMetTrue') ) process.patMEtNoPileUpSequence = cms.Sequence(process.noPileUpPFMEtSequence + process.patPFMetNoPileUp + process.noPileUpPFchsMEtSequence + process.patPFchsMetNoPileUp) ##process.patMEtNoPileUpSequence = cms.Sequence(process.noPileUpPFMEtSequence + process.patPFMetNoPileUp) process.makeCorrectedPatPFMETs = cms.Sequence() if isMC: import PhysicsTools.PatAlgos.tools.helpers as configtools process.type0PFMEtCorrection.remove(process.type0PFMEtCorrectionPFCandToVertexAssociation) process.makeCorrectedPatPFMETs += process.type0PFMEtCorrectionPFCandToVertexAssociation configtools.cloneProcessingSnippet(process, process.producePatPFMETCorrections, "NoSmearing") process.selectedPatJetsForMETtype1p2CorrNoSmearing.src = cms.InputTag('patJetsNotOverlappingWithLeptonsForJetMEtUncertainty') process.selectedPatJetsForMETtype2CorrNoSmearing.src = process.selectedPatJetsForMETtype1p2CorrNoSmearing.src configtools.cloneProcessingSnippet(process, process.patMEtMVAsequence, "NoSmearing") process.makeCorrectedPatPFMETs += process.patMEtMVAsequenceNoSmearing ##process.patMEtNoPileUpSequence.remove(process.type0PFMEtCorrection) configtools.cloneProcessingSnippet(process, process.patMEtNoPileUpSequence, "NoSmearing") ##process.printEventContentForNoPileUpPFMEtNoSmearing = cms.EDAnalyzer("EventContentAnalyzer") ##process.patMEtNoPileUpSequenceNoSmearing.replace(process.noPileUpPFMEtDataNoSmearing, process.printEventContentForNoPileUpPFMEtNoSmearing + process.noPileUpPFMEtDataNoSmearing) process.makeCorrectedPatPFMETs += process.patMEtNoPileUpSequenceNoSmearing else: doSmearJets = False sysShiftCorrParameter = None if doApplySysShiftCorr: process.load("JetMETCorrections.Type1MET.pfMETsysShiftCorrections_cfi") if runPeriod == "2012RunABCD": if isMC: sysShiftCorrParameter = process.pfMEtSysShiftCorrParameters_2012runABCvsNvtx_mc else: sysShiftCorrParameter = process.pfMEtSysShiftCorrParameters_2012runABCvsNvtx_data else: raise ValueError("Invalid runPeriod = %s !!" % runPeriod) from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties( process, electronCollection = '', photonCollection = '', muonCollection = cms.InputTag('patMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), doSmearJets = doSmearJets, jecUncertaintyTag = jecUncertaintyTag, makeType1corrPFMEt = True, makeType1p2corrPFMEt = True, doApplyType0corr = doApplyType0corr, sysShiftCorrParameter = sysShiftCorrParameter, doApplySysShiftCorr = doApplySysShiftCorr, doApplyUnclEnergyCalibration = (doApplyUnclEnergyResidualCorr & isMC), addToPatDefaultSequence = False ) from PhysicsTools.PatUtils.tools.runMVAMEtUncertainties import runMVAMEtUncertainties runMVAMEtUncertainties( process, electronCollection = '', photonCollection = '', muonCollection = cms.InputTag('patMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), doSmearJets = doSmearJets, jecUncertaintyTag = jecUncertaintyTag, addToPatDefaultSequence = False ) from PhysicsTools.PatUtils.tools.runNoPileUpMEtUncertainties import runNoPileUpMEtUncertainties runNoPileUpMEtUncertainties( process, electronCollection = '', photonCollection = '', muonCollection = cms.InputTag('patMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), doApplyChargedHadronSubtraction = False, doSmearJets = doSmearJets, jecUncertaintyTag = jecUncertaintyTag, doApplyUnclEnergyCalibration = (doApplyUnclEnergyResidualCorr & isMC), addToPatDefaultSequence = False ) runNoPileUpMEtUncertainties( process, electronCollection = '', photonCollection = '', muonCollection = cms.InputTag('patMuons'), tauCollection = '', jetCollection = cms.InputTag('patJetsAK5PFchs'), doApplyChargedHadronSubtraction = True, doSmearJets = doSmearJets, jecUncertaintyFile = "PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PFchs.txt", jecUncertaintyTag = jecUncertaintyTag, addToPatDefaultSequence = False ) if isMC: process.makeCorrectedPatPFMETs += process.pfType1MEtUncertaintySequence process.makeCorrectedPatPFMETs += process.pfNoPileUpMEtUncertaintySequence process.makeCorrectedPatPFMETs += process.pfchsNoPileUpMEtUncertaintySequence process.makeCorrectedPatPFMETs += process.pfMVAMEtUncertaintySequence process.patPFMet.addGenMET = cms.bool(True) process.patPFMetMVA.addGenMET = cms.bool(True) process.patPFJetMETtype1p2Corr.jetCorrLabel = cms.string("L3Absolute") process.patPFJetMETtype1p2CorrNoSmearing.jetCorrLabel = cms.string("L3Absolute") else: process.patPFMet.addGenMET = cms.bool(False) process.patPFMetMVA.addGenMET = cms.bool(False) process.patPFJetMETtype1p2Corr.jetCorrLabel = cms.string("L2L3Residual") process.makeCorrectedPatPFMETs += process.patJetsNotOverlappingWithLeptonsForJetMEtUncertainty if hasattr(process, "pfMEtSysShiftCorrSequence"): process.makeCorrectedPatPFMETs += process.pfMEtSysShiftCorrSequence process.makeCorrectedPatPFMETs += process.producePatPFMETCorrections process.makeCorrectedPatPFMETs += process.patMEtMVAsequence process.makeCorrectedPatPFMETs += process.patMEtNoPileUpSequence # add MVA MEt with unity response training for moduleName in dir(process): if (moduleName.endswith("Up") or moduleName.endswith("Down")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_() == "PFMETProducerMVA": module_unity = module.clone( inputFileNames = cms.PSet( DPhi = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbrmetphi_53_June2013_type1.root'), # CV: same for unity and non-unity response training CovU2 = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbru2cov_53_Dec2012.root'), U = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbrmet_53_June2013_type1_UnityResponse.root'), CovU1 = cms.FileInPath('JetMETCorrections/METPUSubtraction/data/gbru1cov_53_Dec2012.root') ), loadMVAfromDB = cms.bool(False) ) moduleName_unity = moduleName.replace("pfMEtMVA", "pfMEtMVAunityResponse") setattr(process, moduleName_unity, module_unity) process.makeCorrectedPatPFMETs += module_unity for moduleName in dir(process): if (moduleName.endswith("Up") or moduleName.endswith("Down")) and not isMC: continue module = getattr(process, moduleName) if isinstance(module, cms.EDProducer) and module.type_() == "PATMETProducer" and moduleName.find("patPFMetMVA") != -1: module_unity = module.clone( metSource = cms.InputTag(module.metSource.value().replace("pfMEtMVA", "pfMEtMVAunityResponse")) ) moduleName_unity = moduleName.replace("patPFMetMVA", "patPFMetMVAunityResponse") setattr(process, moduleName_unity, module_unity) process.makeCorrectedPatPFMETs += module_unity return process.makeCorrectedPatPFMETs
process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") process.load("PhysicsTools.PatUtils.patPFMETCorrections_cff") from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection switchJetCollection(process, jetSource=cms.InputTag('ak4PFJets'), jetCorrections=('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection="selectedPatJets", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus") ## ------------------------------------------------------ # In addition you usually want to change the following # parameters: ## ------------------------------------------------------ # # process.GlobalTag.globaltag = ... ## (according to https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions) # ## ## switch to RECO input from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValProdTTbarAODSIM process.source.fileNames = filesRelValProdTTbarAODSIM # ## process.maxEvents.input = 10
sfNoPUjetOffsetEnCorr = 0.2 doApplyUnclEnergyResidualCorr=False if produceStdPFMET: for i in smearing: isSmear=False if i == "Smeared": isSmear=True runType1PFMEtUncertainties( process, electronCollection = cms.InputTag('selectedPatElectrons'), photonCollection = '', muonCollection = cms.InputTag('selectedPatMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), makeType1corrPFMEt = True, makeType1p2corrPFMEt = True, doApplyType0corr = True, doSmearJets =isSmear, postfix = i ) if produceMVAPFMET: for i in smearing: isSmear=False if i == "Smeared": isSmear=True runMVAMEtUncertainties( process, electronCollection = cms.InputTag('selectedPatElectrons'),
genParticles = cms.InputTag('prunedGenParticles'), pvSource = cms.InputTag('offlineSlimmedPrimaryVertices') ) from RecoMET.METProducers.PFMET_cfi import pfMet process.pfMet = pfMet.clone(src = "packedPFCandidates") process.pfMet.calculateSignificance = False from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1 process.pfMetT1 = pfMetT1.clone() from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process,addToPatDefaultSequence=False, jetCollection="selectedPatJets", photonCollection="slimmedPhotons", electronCollection="slimmedElectrons", muonCollection="slimmedMuons", tauCollection="slimmedTaus", makeType1p2corrPFMEt=False) process.patMETs.addGenMET = cms.bool(False) process.patJets.addGenJetMatch = cms.bool(False) process.patJets.addGenPartonMatch = cms.bool(False) process.patJets.addPartonJetMatch = cms.bool(False) from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName = 'patMET' , metSource = 'pfMetT1' ) # T1 addMETCollection(process, labelName = 'patPFMet' , metSource = 'pfMet' ) # RAW from PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi import slimmedMETs process.mySlimmedMETs = slimmedMETs.clone()
process.goodPhotonsHighPtCut = cms.EDFilter("PATPhotonSelector", src = cms.InputTag("patPhotons"), cut = cms.string('pt > 30.0 && hadronicOverEm < 0.5 && r9 > 0.9 && abs(superCluster.eta) < 1.4442 && sigmaIetaIeta < 0.011 '), filter = cms.bool(False) ) if isRealData == True: from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties runType1PFMEtUncertainties(process, electronCollection = '', photonCollection = cms.InputTag('goodPhotonsHighPtCut'), muonCollection = '', tauCollection = '', jetCollection = cms.InputTag('patJets'), jetCorrLabel = 'L2L3Residual', jecUncertaintyFile = "PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PF.txt", makeType1corrPFMEt = True, makeType1p2corrPFMEt = False, doApplyType0corr = True, doSmearJets = False, addToPatDefaultSequence = False, postfix = '' ) process.patPFJetMETtype1p2Corr.jetCorrLabel = cms.string('L2L3Residual') process.patPFJetMETtype2Corr.jetCorrLabel = cms.string('L2L3Residual') from PhysicsTools.PatUtils.tools.runMVAMEtUncertainties import runMVAMEtUncertainties runMVAMEtUncertainties(process, electronCollection = '', photonCollection = cms.InputTag('goodPhotonsHighPtCut'), muonCollection = '',
def miniAOD_customizeCommon(process): process.patMuons.isoDeposits = cms.PSet() process.patElectrons.isoDeposits = cms.PSet() process.patTaus.isoDeposits = cms.PSet() process.patPhotons.isoDeposits = cms.PSet() # process.patMuons.embedTrack = True # used for IDs process.patMuons.embedCombinedMuon = True # used for IDs process.patMuons.embedMuonBestTrack = True # used for IDs process.patMuons.embedStandAloneMuon = True # maybe? process.patMuons.embedPickyMuon = False # no, use best track process.patMuons.embedTpfmsMuon = False # no, use best track process.patMuons.embedDytMuon = False # no, use best track # # disable embedding of electron and photon associated objects already stored by the ReducedEGProducer process.patElectrons.embedGsfElectronCore = False ## process.patElectrons.embed in AOD externally stored gsf electron core process.patElectrons.embedSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedPflowSuperCluster = False ## process.patElectrons.embed in AOD externally stored supercluster process.patElectrons.embedSeedCluster = False ## process.patElectrons.embed in AOD externally stored the electron's seedcluster process.patElectrons.embedBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's basic clusters process.patElectrons.embedPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's preshower clusters process.patElectrons.embedPflowBasicClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow basic clusters process.patElectrons.embedPflowPreshowerClusters = False ## process.patElectrons.embed in AOD externally stored the electron's pflow preshower clusters process.patElectrons.embedRecHits = False ## process.patElectrons.embed in AOD externally stored the RecHits - can be called from the PATElectronProducer process.patElectrons.electronSource = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.patElectrons.electronIDSources = cms.PSet( # configure many IDs as InputTag <someName> = <someTag> you # can comment out those you don't want to save some disk space eidRobustLoose = cms.InputTag("reducedEgamma","eidRobustLoose"), eidRobustTight = cms.InputTag("reducedEgamma","eidRobustTight"), eidLoose = cms.InputTag("reducedEgamma","eidLoose"), eidTight = cms.InputTag("reducedEgamma","eidTight"), eidRobustHighEnergy = cms.InputTag("reducedEgamma","eidRobustHighEnergy"), ) process.elPFIsoDepositCharged.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositChargedAll.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositNeutral.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositGamma.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") process.elPFIsoDepositPU.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") # process.patPhotons.embedSuperCluster = False ## whether to process.patPhotons.embed in AOD externally stored supercluster process.patPhotons.embedSeedCluster = False ## process.patPhotons.embed in AOD externally stored the photon's seedcluster process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer process.patPhotons.photonSource = cms.InputTag("reducedEgamma","reducedGedPhotons") process.patPhotons.photonIDSources = cms.PSet( PhotonCutBasedIDLoose = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDLoose'), PhotonCutBasedIDTight = cms.InputTag('reducedEgamma', 'PhotonCutBasedIDTight') ) process.phPFIsoDepositCharged.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositChargedAll.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositNeutral.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositGamma.src = cms.InputTag("reducedEgamma","reducedGedPhotons") process.phPFIsoDepositPU.src = cms.InputTag("reducedEgamma","reducedGedPhotons") # process.selectedPatJets.cut = cms.string("pt > 10") process.selectedPatMuons.cut = cms.string("pt > 5 || isPFMuon || (pt > 3 && (isGlobalMuon || isStandAloneMuon || numberOfMatches > 0 || muonID('RPCMuLoose')))") process.selectedPatElectrons.cut = cms.string("") process.selectedPatTaus.cut = cms.string("pt > 18. && tauID('decayModeFinding')> 0.5") process.selectedPatPhotons.cut = cms.string("") # from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection #switch to AK4 (though it should soon be unnecessary as ak4 should become the 71X default) #FIXME: still using AK5PFchs for jet energy corrections, while waiting for a new globalTag switchJetCollection(process, jetSource = cms.InputTag('ak4PFJetsCHS'), jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), ''), btagDiscriminators = ['jetBProbabilityBJetTags', 'jetProbabilityBJetTags', 'trackCountingHighPurBJetTags', 'trackCountingHighEffBJetTags', 'simpleSecondaryVertexHighEffBJetTags', 'simpleSecondaryVertexHighPurBJetTags', 'combinedSecondaryVertexBJetTags' , 'combinedInclusiveSecondaryVertexBJetTags' ], ) #add CA8 from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection addJetCollection(process, labelName = 'AK8', jetSource = cms.InputTag('ak8PFJetsCHS'),algo= 'AK', rParam = 0.8, jetCorrections = ('AK7PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') ) process.patJetsAK8.userData.userFloats.src = [] # start with empty list of user floats process.selectedPatJetsAK8.cut = cms.string("pt > 100") process.patJetGenJetMatchAK8.matched = 'slimmedGenJets' ## AK8 groomed masses from RecoJets.Configuration.RecoPFJets_cff import ak8PFJetsCHSPruned, ak8PFJetsCHSFiltered, ak8PFJetsCHSTrimmed process.ak8PFJetsCHSPruned = ak8PFJetsCHSPruned.clone() process.ak8PFJetsCHSTrimmed = ak8PFJetsCHSTrimmed.clone() process.ak8PFJetsCHSFiltered = ak8PFJetsCHSFiltered.clone() process.load("RecoJets.JetProducers.ak8PFJetsCHS_groomingValueMaps_cfi") process.patJetsAK8.userData.userFloats.src += ['ak8PFJetsCHSPrunedLinks','ak8PFJetsCHSTrimmedLinks','ak8PFJetsCHSFilteredLinks'] ### CA8 groomed masses (for the matched jet): doesn't seem to work, it produces tons of warnings "Matched jets separated by dR greater than distMax=0.8" # from RecoJets.Configuration.RecoPFJets_cff import ca8PFJetsCHSFiltered, ca8PFJetsCHSTrimmed # ca8PFJetsCHSPruned is already in AOD # process.ca8PFJetsCHSTrimmed = ca8PFJetsCHSTrimmed.clone() # process.ca8PFJetsCHSFiltered = ca8PFJetsCHSFiltered.clone() # process.load("RecoJets.JetProducers.ca8PFJetsCHS_groomingValueMaps_cfi") # process.ca8PFJetsCHSPrunedLinks.src = cms.InputTag("ak8PFJetsCHS") # process.ca8PFJetsCHSTrimmedLinks.src = cms.InputTag("ak8PFJetsCHS") # process.ca8PFJetsCHSFilteredLinks.src = cms.InputTag("ak8PFJetsCHS") # process.patJetsAK8.userData.userFloats.src += ['ca8PFJetsCHSPrunedLinks','ca8PFJetsCHSTrimmedLinks','ca8PFJetsCHSFilteredLinks'] ## cmsTopTagger (note: it is already run in RECO, we just add the value) process.cmsTopTagPFJetsCHSLinksAK8 = process.ak8PFJetsCHSPrunedLinks.clone() process.cmsTopTagPFJetsCHSLinksAK8.src = cms.InputTag("ak8PFJetsCHS") process.cmsTopTagPFJetsCHSLinksAK8.matched = cms.InputTag("cmsTopTagPFJetsCHS") process.patJetsAK8.userData.userFloats.src += ['cmsTopTagPFJetsCHSLinksAK8'] # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerStandAlone switchOnTriggerStandAlone( process, outputModule = '' ) process.patTrigger.packTriggerPathNames = cms.bool(True) # # apply type I/type I + II PFMEt corrections to pat::MET object # and estimate systematic uncertainties on MET # FIXME: this and the typeI MET should become AK4 once we have the proper JEC? from PhysicsTools.PatUtils.tools.runType1PFMEtUncertainties import runType1PFMEtUncertainties addJetCollection(process, postfix = "ForMetUnc", labelName = 'AK4PF', jetSource = cms.InputTag('ak4PFJets'), jetCorrections = ('AK4PF', ['L1FastJet', 'L2Relative', 'L3Absolute'], '')) process.patJetsAK4PFForMetUnc.getJetMCFlavour = False runType1PFMEtUncertainties(process, addToPatDefaultSequence=False, jetCollection="selectedPatJetsAK4PFForMetUnc", electronCollection="selectedPatElectrons", muonCollection="selectedPatMuons", tauCollection="selectedPatTaus", makeType1p2corrPFMEt=True, outputModule=None) #keep this after all addJetCollections otherwise it will attempt computing them also for stuf with no taginfos #Some useful BTAG vars process.patJets.userData.userFunctions = cms.vstring( '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).p4.M):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().secondaryVertex(0).nTracks):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().flightDistance(0).value):(0)', '?(tagInfoSecondaryVertex().nVertices()>0)?(tagInfoSecondaryVertex().flightDistance(0).significance):(0)', ) process.patJets.userData.userFunctionLabels = cms.vstring('vtxMass','vtxNtracks','vtx3DVal','vtx3DSig') process.patJets.tagInfoSources = cms.VInputTag(cms.InputTag("secondaryVertexTagInfos")) process.patJets.addTagInfos = cms.bool(True) # ## PU JetID process.load("PhysicsTools.PatAlgos.slimming.pileupJetId_cfi") process.patJets.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ]
sfNoPUjetOffsetEnCorr = None if isData: sfNoPUjetOffsetEnCorr = 0.2 else: sfNoPUjetOffsetEnCorr = 0.2 doApplyUnclEnergyResidualCorr=False runType1PFMEtUncertainties( process, electronCollection = '',#cms.InputTag('selectedPatElectrons'), photonCollection = '', muonCollection = cms.InputTag('selectedPatMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), makeType1corrPFMEt = True, makeType1p2corrPFMEt = True, doApplyType0corr = True, doSmearJets =isMC, postfix = '' ) runMVAMEtUncertainties( process, electronCollection = '', photonCollection = '', muonCollection = cms.InputTag('selectedPatMuons'), tauCollection = '', jetCollection = cms.InputTag('patJets'), doSmearJets =isMC,