def customizeEGM(process, era): egmEra = '2017-Nov17ReReco' if '2016' in era: egmEra = '2016-Legacy' setupEgammaPostRecoSeq(process, runVID=True, era=egmEra) process.egammaPostReco = cms.Path(process.egammaPostRecoSeq)
DataEra=cms.string("2017BtoF"), UseJetEMPt=cms.bool(False), PrefiringRateSystematicUncty=cms.double(0.2), SkipWarnings=False) ### fix a bug in the ECAL-Tracker momentum combination when applying the scale and smearing from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runEnergyCorrections=True, runVID=True, #era='2017-Nov17ReReco', era='2017-UL', eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V2_cff' ], phoIDModules=[ 'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Fall17_94X_V2_cff', 'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff' ]) process.TFileService = cms.Service("TFileService", fileName=cms.string('ggtree_mc.root')) ''' ### update JEC process.load("PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff") process.jetCorrFactors = process.updatedPatJetCorrFactors.clone( src = cms.InputTag("slimmedJets"),
cut=cms.string("pt > 5 && abs(eta)<2.5")) process.RandomNumberGeneratorService = cms.Service( "RandomNumberGeneratorService", calibratedPatElectrons=cms.PSet( #initialSeed = cms.untracked.uint32(SEED), # for HPC initialSeed=cms.untracked.uint32(123456), # for crab engineName=cms.untracked.string('TRandom3'))) from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runEnergyCorrections=False, runVID=True, eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16_ID_ISO_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff' ], phoIDModules=[ 'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff' ], era='2016-Legacy') process.load("RecoEgamma.EgammaTools.calibratedEgammas_cff") process.calibratedPatElectrons.correctionFile = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc" #process.calibratedPatElectrons.src = cms.InputTag("selectedElectrons") #process.calibratedPatElectrons.src = cms.InputTag("electronsMVA") process.calibratedPatElectrons.src = cms.InputTag("slimmedElectrons") ## from PhysicsTools.SelectorUtils.tools.vid_id_tools import * ## dataFormat = DataFormat.MiniAOD ## switchOnVIDElectronIdProducer(process, dataFormat)
hltFiltersProcessName = 'PAT' #'RECO' #reducedConversionsName = 'RECO'#'PAT'ele#'RECO'muon reducedConversionsName = 'PAT' #'PAT'ele#'RECO'muon if runOnMC: reducedConversionsName = 'PAT' #'RECO' process.load("VAJets.PKUCommon.goodMuons_cff") process.load("VAJets.PKUCommon.goodElectrons_cff") process.load("VAJets.PKUCommon.goodPhotons_cff") process.load("VAJets.PKUCommon.goodJets_cff") process.load("VAJets.PKUCommon.leptonicZ_cff") #for egamma smearing from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runEnergyCorrections=False, era="2018-Prompt") #for egamma smearing # If Update process.goodMuons.src = "slimmedMuons" process.goodElectrons.src = "slimmedElectrons" process.goodPhotons.src = "slimmedPhotons" if chsorpuppi: process.goodAK4Jets.src = "slimmedJets" else: process.goodAK4Jets.src = "slimmedJetsPuppi" ZBOSONCUT = "pt > 0.0" process.leptonicVSelector = cms.EDFilter("CandViewSelector",
PrefiringRateSystematicUncty=cms.double(0.2), SkipWarnings=False) ##### ## ELECTRON ID SECTION ##### ###### ### Electron smear and regression ###### from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, # applyEnergyCorrections=False, # applyVIDOnCorrectedEgamma=False, runEnergyCorrections= False, # False for 2016/2018, as energy corrections are not yet availible for 2018; corrections by default are fine for 2016 so no need to re-run runVID= True, # if you are running on miniAOD v1 or Fall17V2 please enable it era='2016-Legacy') # '2018-Prompt', '2016-Legacy' ##### ## For tt+X ##### ##### # Setting input particle collections to be used by the tools genParticleCollection = "prunedGenParticles" genJetCollection = "slimmedGenJets" jetFlavourInfos = "genJetFlavourInfos" jetAlgo = "AntiKt" rParam = 0.4
import MuMuTauTauTreeMaker.MuTauTreelizer.TauIdDeep_slimmedTausElectronCleanedTight as tauIdConfig tauIdEmbedder = tauIdConfig.TauIDEmbedder(process, cms, debug=False, updatedTauName=updatedTauName, toKeep=["deepTau2017v2p1"]) tauIdEmbedder.runTauID() process.rerunTauIDSequence = cms.Sequence( process.rerunMvaIsolationSequence * getattr(process, updatedTauName)) ############################################################ ######## implant the 2017v2 egamma ID into the 2018 miniAOD ############ # reference: https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2#2017_MiniAOD_V2 from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, era='2018-Prompt') ########################################################### if options.isMC == 1: process.treelizer = cms.Sequence( process.lumiTree * process.HLTEle * process.MuonID * process.MuonSelector * process.TrigMuMatcher * process.egammaPostRecoSeq * process.ElectronCandSelector * process.rerunTauIDSequence * process.TauCandSelector * process.JetSelector * process.GenMuonCandSelector * process.GenElectronCandSelector * process.GenTauMuCandSelector * process.GenTauEleCandSelector * process.GenTauHadCandSelector * process.ZMuMuInclusiveAnalyzer) process.TFileService = cms.Service( "TFileService", fileName=cms.string('ZMuMuTreelization_mc.root'))
process.output.outputCommands.append('keep *_selectedPatTausMuonCleaned_*_*') ############################# ### electron cleaned taus ### ############################# if doETau: from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq # 2018 #setupEgammaPostRecoSeq(process, # runEnergyCorrections=False, #as energy corrections are not yet availible for 2018 # era='2018-Prompt') # 2017 setupEgammaPostRecoSeq(process, runVID=False, #saves CPU time by not needlessly re-running VID, if you want the Fall17V2 IDs, set this to True or remove (default is True) era='2017-Nov17ReReco') # 2016 #setupEgammaPostRecoSeq(process, # runEnergyCorrections=False, #corrections by default are fine so no need to re-run # era='2016-Legacy') # alternative approach, full recluster jets without electrons jetSrc = 'patJetsElectronCleaned' recoJetSrc = 'ak4PFJetsElectronCleaned' pfCandSrc = "electronCleanedPackedPFCandidates" process.recoElectronsForJetCleaning = cms.EDFilter('PATElectronRefSelector', src = cms.InputTag('slimmedElectrons'), cut = cms.string('electronID("mvaEleID-Fall17-noIso-V1-wp90")'), )
src=cms.InputTag("offlineSlimmedPrimaryVertices"), # -- miniAOD -- # cut=cms.string("!isFake && ndof > 4 && abs(z) < 24 && position.Rho < 2" ), # tracksSize() > 3 for the older cut filter=cms.bool( True ), # otherwise it won't filter the events, just produce an empty vertex collection. ) process.FastFilters = cms.Sequence(process.goodOfflinePrimaryVertices) ################################## # For E/gamma correction and VID # ################################## from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, applyEnergyCorrections=False, applyVIDOnCorrectedEgamma=False, isMiniAOD=True) ###################### # MET Phi Correction # ###################### #from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD #runMetCorAndUncFromMiniAOD(process, isData=True ) #For MC isData=False ################# # -- DY Tree -- # ################# from SKFlat.SKFlatMaker.SKFlatMaker_cfi import * from SKFlat.SKFlatMaker.PUreweight2012_cff import * process.recoTree = SKFlatMaker.clone()
cms.InputTag("ElectronMVAEstimatorRun2Fall17IsoV2Values"), cms.InputTag("ElectronMVAEstimatorRun2Fall17NoIsoV2Values"), ) # -- call the default KAPPA electron setup routine setupElectrons(process, "slimmedElectrons") # -- EGM post-reco sequence from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, applyEnergyCorrections=True, applyVIDOnCorrectedEgamma=True, isMiniAOD=True, runVID=True, eleIDModules=['RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff'], phoIDModules=[], era='2017-Nov17ReReco') # -- add to process process.path *= (process.makeKappaElectrons * process.egammaPostRecoSeq) # process.path *= (process.makeKappaElectrons) ###################### # Configure JTB Jets #
outName) process.GlobalTag.globaltag = globalTag print("Using global tag: " + globalTag) # geometry for saturation process.load("Configuration.StandardSequences.GeometryDB_cff") # for output file process.TFileService = cms.Service("TFileService", fileName=cms.string(outName)) # summary of information needed for e/gamma corrections egm_info = submit_utils.egamma_info(outName) setupEgammaPostRecoSeq(process, applyEnergyCorrections=True, applyVIDOnCorrectedEgamma=True, runVID=True, runEnergyCorrections=True, era=egm_info['era']) ## update AK4PFchs jet collection in MiniAOD JECs from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection updateJetCollection( process, jetSource=cms.InputTag('slimmedJets'), labelName='UpdatedJEC', jetCorrections=('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') # Do not forget 'L2L3Residual' on data! )
process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring( 'file:/data4/cmkuo/testfiles/DoubleEG_Run2016F_17Jul2018.root' ) ) #process.load("PhysicsTools.PatAlgos.patSequences_cff") process.load( "PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff" ) process.load( "PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff" ) process.load( "PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff" ) ### fix a bug in the ECAL-Tracker momentum combination when applying the scale and smearing from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runVID=False, era='2016-Legacy') #from PhysicsTools.PatAlgos.tools.cmsswVersionTools import * from PhysicsTools.PatAlgos.tools.coreTools import * runOnData( process, names=['Photons', 'Electrons','Muons','Taus','Jets'], outputModules = [] ) #runOnData( process, outputModules = [] ) #removeMCMatching(process, names=['All'], outputModules=[]) process.TFileService = cms.Service("TFileService", fileName = cms.string('ggtree_data.root')) from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD runMetCorAndUncFromMiniAOD ( process, isData = True )
def makeAnalysisStep(self, stepName, **inputs): step = super(ElectronCalibration, self).makeAnalysisStep(stepName, **inputs) if stepName == 'preliminary': if not hasattr(self.process, 'RandomNumberGeneratorService'): self.process.RandomNumberGeneratorService = cms.Service( 'RandomNumberGeneratorService', ) LeptonSetup = cms.string(self.year) #https://twiki.cern.ch/twiki/bin/view/CMS/EgammaPostRecoRecipes #fix a bug in the ECAL-Tracker momentum combination when applying the scale and smearing from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq if LeptonSetup == "2016": setupEgammaPostRecoSeq( self.process, runEnergyCorrections=True, runVID=True, eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16_ID_ISO_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff' ], era='2016-Legacy') if LeptonSetup == "2017": setupEgammaPostRecoSeq( self.process, runEnergyCorrections=True, runVID=True, era='2017-Nov17ReReco', ) if LeptonSetup == "2018": setupEgammaPostRecoSeq( self.process, runEnergyCorrections=True, runVID=True, eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Autumn18_ID_ISO_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff' ], era='2018-Prompt') step.addModule('egammaPostRecoSeq', self.process.egammaPostRecoSeq) if self.electronScaleShift or self.electronRhoResShift or self.electronPhiResShift: self.process.RandomNumberGeneratorService.electronSystematicShift = cms.PSet( initialSeed=cms.untracked.uint32(345), ) shiftMod = cms.EDProducer( "PATElectronSystematicShifter", src=step.getObjTag('e'), correctionFile=cms.string(correctionFile), scaleShift=cms.double(self.electronScaleShift), rhoResShift=cms.double(self.electronRhoResShift), phiResShift=cms.double(self.electronPhiResShift), ) step.addModule('electronSystematicShift', shiftMod, 'e') if stepName == 'selection': # need to re-sort now that we're calibrated eSort = cms.EDProducer( "PATElectronCollectionSorter", src=step.getObjTag('e'), function=cms.string('pt'), ) step.addModule('electronSorting', eSort, 'e') return step
'userawPt': True, 'ptThreshold': 50.0, 'minEtaThreshold': 2.65, 'maxEtaThreshold': 3.139 }, postfix="ModifiedMET") ## era based on year 2016/2017/2018 from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq if year == "2016": print("running on 2016") egammaEra = '2016-Legacy' prefire_era = "2016BtoH" setupEgammaPostRecoSeq(process, runEnergyCorrections=False, era=egammaEra) if year == "2017": print("running on 2017") egammaEra = '2017-Nov17ReReco' prefire_era = "2017BtoF" setupEgammaPostRecoSeq( process, runVID=False, # saves CPU time by not needlessly re-running VID era=egammaEra) if year == "2018": print("running on 2018") egammaEra = '2018-Prompt' setupEgammaPostRecoSeq(process, era=egammaEra)
'HLT_DoublePhoton85'] if YEAR_ERA == "2018": selections_triggers = [ 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_PixelVeto_Mass55', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto', 'HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90', 'HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95', 'HLT_DoublePhoton70', 'HLT_DoublePhoton85', 'HLT_Photon100EE_TightID_TightIso'] ### Setup Electron / Photon sequence ######################################################################################################################## # https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2#2018_MiniAOD from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq if YEAR_ERA == "2016": setupEgammaPostRecoSeq(process, runEnergyCorrections=False, era='2016-Legacy') if YEAR_ERA == "2017": setupEgammaPostRecoSeq(process,runVID=False, era='2017-Nov17ReReco') #saves CPU time by not needlessly re-running VID, if you want the Fall17V2 IDs, set this to True or remove (default is True) if YEAR_ERA == "2018": setupEgammaPostRecoSeq(process,era='2018-Prompt') ### Photons options ######################################################################################################################## # https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedPhotonIdentificationRun2#Photon_ID_Working_Points_WP_defi # https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2#ID_information # https://twiki.cern.ch/twiki/bin/view/CMS/MultivariatePhotonIdentificationRun2#Recommended_MVA_Recipe_for_regul <- Fallv2 # https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedPhotonIdentificationRun2 if YEAR_ERA == "2016": # ID photon_loose_id = "cutBasedPhotonID-Spring16-V2p2-loose" photon_medium_id = "cutBasedPhotonID-Spring16-V2p2-medium" photon_tight_id = "cutBasedPhotonID-Spring16-V2p2-tight"
src = cms.InputTag('packedPFCandidates'), cut = cms.string('fromPV') ) if is_data_flag: process.AK4QGTaggerCHS.jec = cms.InputTag("ak4chsL1FastL2L3ResidualCorrector") process.CA8QGTaggerCHS.jec = cms.InputTag("ca8chsL1FastL2L3ResidualCorrector") process.AK8QGTaggerCHS.jec = cms.InputTag("ak8chsL1FastL2L3ResidualCorrector") process.CA15QGTaggerCHS.jec = cms.InputTag("ak8chsL1FastL2L3ResidualCorrector") process.AK4QGTaggerSubJetsCHS.jec = cms.InputTag("ak4chsL1FastL2L3ResidualCorrector") process.CA8QGTaggerSubJetsCHS.jec = cms.InputTag("ca8chsL1FastL2L3ResidualCorrector") process.AK8QGTaggerSubJetsCHS.jec = cms.InputTag("ak8chsL1FastL2L3ResidualCorrector") process.CA15QGTaggerSubJetsCHS.jec = cms.InputTag("ak8chsL1FastL2L3ResidualCorrector") from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runVID=True, era='2016-Legacy', #era is new to select between 2016 / 2017, it defaults to 2017 phoIDModules=[]) #bug with default modules for photon VID; off for now # PF MET corrections from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD runMetCorAndUncFromMiniAOD(process, isData=is_data_flag, manualJetConfig=True, jetCorLabelL3="ak4chsL1FastL2L3Corrector", jetCorLabelRes="ak4chsL1FastL2L3ResidualCorrector", reclusterJets=True, recoMetFromPFCs=True, postfix="V2" ) # PUPPI Woof Woof
# autoDataType = cms.bool(True), # isSynchronization = cms.bool(False), # #correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc"), # correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc"), # # recHitCollectionEB = cms.InputTag('reducedEgamma:reducedEBRecHits'), # recHitCollectionEE = cms.InputTag('reducedEgamma:reducedEERecHits') # # # ) from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runEnergyCorrections=False, runVID=True, phoIDModules=[ 'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff' ], era='2017-Nov17ReReco') process.load("RecoEgamma.EgammaTools.calibratedEgammas_cff") process.calibratedPatElectrons.correctionFile = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc" #process.calibratedPatElectrons.src = cms.InputTag("selectedElectrons") #process.calibratedPatElectrons.src = cms.InputTag("electronsMVA") process.calibratedPatElectrons.src = cms.InputTag("slimmedElectrons") ## from PhysicsTools.SelectorUtils.tools.vid_id_tools import * ## dataFormat = DataFormat.MiniAOD ## switchOnVIDElectronIdProducer(process, dataFormat) ## # define which IDs we want to produce ## my_id_modules = [ 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff' ]
muSource=cms.InputTag('slimmedMuons'), elSource=cms.InputTag('slimmedElectrons'), genParticles=cms.InputTag('prunedGenParticles'), getJetMCFlavour=isMC) process.patJetsPuppi.addGenPartonMatch = cms.bool(isMC) process.patJetsPuppi.addGenJetMatch = cms.bool(isMC) patAlgosToolsTask.add(process.ak4PuppiJets) UpdatePuppiTuneV15(process, isMC) process.ApplyPatAlgos = cms.Path(process.patAlgosToolsTask) #import FWCore.PythonUtilities.LumiList as LumiList #import FWCore.ParameterSet.Types as CfgTypes #process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) #JSONfile = 'Cert_314472-325175_13TeV_17SeptEarlyReReco2018ABC_PromptEraD_Collisions18_JSON.txt' #myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',') #process.source.lumisToProcess.extend(myLumis) from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq #from EgammaUser.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, era='2017-UL') process.p = cms.Path( process.ecalBadCalibReducedMINIAOD2019Filter * process.ecalLaserCorrFilter * process.ecalDeadCellBoundaryEnergyFilterUpdate * process.BadChargedCandidateFilterUpdate * process.BadPFMuonFilterUpdate * process.BadPFMuonFilterUpdateDz * process.egammaPostRecoSeq * # process.ecalSCnew process.ntuplemakerminiaod)
# process.p += process.btagFilter #==============================================================================================================================# # Jet producers #==============================================================================================================================# from AnalysisTreeMaker.TreeMaker.jetProducers_cff import defaultJetSequences defaultJetSequences(process, isRealData) #==============================================================================================================================# # Customization #==============================================================================================================================# # #https://twiki.cern.ch/twiki/bin/view/CMS/EgammaPostRecoRecipes from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq if '2018' in type: setupEgammaPostRecoSeq(process, era='2018-Prompt') if '2017' in type: setupEgammaPostRecoSeq( process, runVID= True, #if you want the Fall17V2 IDs, set this to True or remove (default is True) era='2017-Nov17ReReco' ) #era is new to select between 2016 / 2017, it defaults to 2017 if '2016' in type: setupEgammaPostRecoSeq( process, runVID=True, runEnergyCorrections= False, #no point in re-running them, they are already fine era='2016-Legacy') process.p += process.egammaPostRecoSeq
##https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2#2017_MiniAOD_V2 tags = { "ReReco": { "2016": "2016-Legacy", "2017": "2017-Nov17ReReco", "2018": "2018-Prompt", }, "UL": { "2016Pre": "2016preVFP-UL", "2016Post": "2016postVFP-UL", "2017": "2017-UL", "2018": "2018-UL" } } setupEgammaPostRecoSeq(process, era=tags[options.reco][options.era]) ##Producer to get pdf weights process.pdfweights = cms.EDProducer( "PDFWeights", LHE=cms.InputTag("externalLHEProducer"), LHAID=cms.int32(306000), isData=cms.bool(isData or isDiBoson), ) ##Mini Skimmer class which does the skimming process.skimmer = cms.EDAnalyzer("MiniSkimmer", jets=cms.InputTag("updatedPatJetsRAW"), fatjets=cms.InputTag("updatedPatJetsAK8RAW"), genjets=cms.InputTag("slimmedGenJets"), genfatjets=cms.InputTag("slimmedGenJetsAK8"),
process.options = cms.untracked.PSet(wantSummary=cms.untracked.bool(True)) process.options.allowUnscheduled = cms.untracked.bool(True) process.source = cms.Source( "PoolSource", fileNames=cms.untracked.vstring( 'file:/lustre/cmswork/abragagn/store/mc/RunIIAutumn18MiniAOD/BsToJpsiPhi_JpsiPhiFilterDG0_SoftQCDnonD_TuneCP5_13TeV-pythia8-evtgen/MINIAODSIM/102X_upgrade2018_realistic_v15-v2/70000/4A9E6315-5CEA-F74F-B615-9722DF5C36B2.root' )) from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '') from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runEnergyCorrections= False, #as energy corrections are not yet availible for 2018 era='2018-Prompt') ### vtxTagInfo process.load('RecoBTag/SoftLepton/softLepton_cff') #process.load('RecoBTag/SoftLepton/softPFMuonTagInfos_cfi') #process.load('RecoBTag/SoftLepton/softPFElectronTagInfos_cfi') process.load( 'RecoBTag/SecondaryVertex/pfInclusiveSecondaryVertexFinderTagInfos_cfi') process.load('RecoBTag/ImpactParameter/pfImpactParameterTagInfos_cfi') #process.load('RecoBTag/SecondaryVertex/secondaryVertexTagInfos_cfi')
process.jecSequence = cms.Sequence(process.patJetCorrFactorsUpdatedJEC * process.updatedPatJetsUpdatedJEC) from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD runMetCorAndUncFromMiniAOD( process, isData=False, #(or False), postfix="TEST") from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runVID=True, eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff' ], # runVID=True, #saves CPU time by not needlessly re-running VID era='2017-Nov17ReReco') process.load( 'HiggsAnalysis/HiggsToZZ4Leptons/hTozzTo4leptonsPreselection_data_noskim_cff' ) #@#process.calibratedPatElectrons.isMC = cms.bool(True) process.hTozzTo4leptonsHLTInfo.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT") process.hTozzTo4leptonsCommonRootTreePresel.use2011EA = cms.untracked.bool( False)
# If you only want to re-cluster and get the proper uncertainties runMetCorAndUncFromMiniAOD(process, isData=runOnData, metType="Puppi", pfCandColl=cms.InputTag("puppiForMET"), recoMetFromPFCs=True, jetFlavor="AK4PFPuppi", postfix="Puppi") ### Electron scale and smearing ======================================================================= from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, applyEnergyCorrections=False, applyVIDOnCorrectedEgamma=False, isMiniAOD=True, era='2017-Nov17ReReco') ### END Electron scale and smearing ==================================================================== # Electron ID ========================================================================================== from PhysicsTools.SelectorUtils.tools.vid_id_tools import * # turn on VID producer, indicate data format to be # DataFormat.AOD or DataFormat.MiniAOD, as appropriate useAOD = False if useAOD == True: dataFormat = DataFormat.AOD else: dataFormat = DataFormat.MiniAOD
if period is '2016': labelEra = '2016-Legacy' rerunIDs = True rerunEnergyCorrections = False elif period is '2017': labelEra = '2017-Nov17ReReco' rerunIDs = True rerunEnergyCorrections = True elif period is '2018': labelEra = '2018-Prompt' rerunIDs = True rerunEnergyCorrections = True setupEgammaPostRecoSeq(process, runVID=rerunIDs, runEnergyCorrections=rerunEnergyCorrections, era=labelEra) # Tau ID =============================================================================================== # https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuidePFTauID#Running_of_the_DNN_based_tau_ID updatedTauName = "NewTauIDsEmbedded" #name of pat::Tau collection with new tau-Ids import RecoTauTag.RecoTau.tools.runTauIdMVA as tauIdConfig tauIdEmbedder = tauIdConfig.TauIDEmbedder( process, cms, debug=False, updatedTauName=updatedTauName, toKeep=["2017v2", "deepTau2017v2p1", "MVADM_2016_v1", "MVADM_2017_v1"]) tauIdEmbedder.runTauID() # END Tau ID ===========================================================================================
"PoolSource", fileNames=cms.untracked.vstring( 'file:/lustre/cmswork/abragagn/store/data/Run2017F/Charmonium/MINIAOD/31Mar2018-v1/90000/58FBECAC-9137-E811-83C4-003048F34A5E.root' )) from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag #process.GlobalTag = GlobalTag(process.GlobalTag, '94X_dataRun2_ReReco_EOY17_v2', '') process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_data', '') #from PhysicsTools.PatAlgos.tools.coreTools import runOnData #runOnData( process, outputModules = [] ) from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runEnergyCorrections=True, era='2017-Nov17ReReco') ### vtxTagInfo process.load('RecoBTag/SoftLepton/softLepton_cff') #process.load('RecoBTag/SoftLepton/softPFMuonTagInfos_cfi') #process.load('RecoBTag/SoftLepton/softPFElectronTagInfos_cfi') process.load( 'RecoBTag/SecondaryVertex/pfInclusiveSecondaryVertexFinderTagInfos_cfi') process.load('RecoBTag/ImpactParameter/pfImpactParameterTagInfos_cfi') #process.load('RecoBTag/SecondaryVertex/secondaryVertexTagInfos_cfi') process.softPFMuonsTagInfos.primaryVertex = cms.InputTag( "offlineSlimmedPrimaryVertices")
process.load('Configuration.StandardSequences.Services_cff') process.load("Configuration.StandardSequences.MagneticField_cff") process.load( "Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '94X_mc2017_realistic_v17', '') if isMC == False: process.GlobalTag = GlobalTag(process.GlobalTag, '94X_dataRun2_v11') print 'Using global tag', process.GlobalTag.globaltag ################################################ ## Produce new slimmedElectrons with V2 IDs - https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2 ################################################ from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runVID=True, era='2017-Nov17ReReco') ################################################ ## Produce modified MET with the ECAL noise fix ################################################ from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD runMetCorAndUncFromMiniAOD(process, isData=not isMC, fixEE2017=True, fixEE2017Params={ 'userawPt': True, 'ptThreshold': 50.0, 'minEtaThreshold': 2.65, 'maxEtaThreshold': 3.139 },
# ) # pat for trigger process.load('PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff') # pat for muons process.load('PhysicsTools.PatAlgos.patSequences_cff') from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runVID=True, era='2017-Nov17ReReco', isMiniAOD=False, eleIDModules=[ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff' ], phoIDModules=[ 'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff' ] # phoIDModules=[] ) # For AOD Track variables process.MaterialPropagator = cms.ESProducer( 'PropagatorWithMaterialESProducer', ComponentName=cms.string('PropagatorWithMaterial'), Mass=cms.double(0.105), MaxDPhi=cms.double(1.6), PropagationDirection=cms.string('alongMomentum'), SimpleMagneticField=cms.string(''),
svSource=cms.InputTag('slimmedSecondaryVertices'), jetCorrections=('AK4PFchs', cms.vstring([]), 'None'), btagDiscriminators=[ 'pfDeepFlavourJetTags:probb', 'pfDeepFlavourJetTags:probbb', 'pfDeepFlavourJetTags:problepb', ], ) updateJetCollection(process, postfix='AK8RAW', jetSource=cms.InputTag('slimmedJetsAK8'), jetCorrections=('AK8PFchs', cms.vstring([]), 'None')) ##https://twiki.cern.ch/twiki/bin/view/CMS/EgammaMiniAODV2#2017_MiniAOD_V2 setupEgammaPostRecoSeq(process, era='2017-Nov17ReReco') ##Mini Skimmer class which does the skimming process.skimmer = cms.EDAnalyzer( "MiniSkimmer", jets=cms.InputTag("selectedUpdatedPatJetsRAW"), fatjets=cms.InputTag("updatedPatJetsAK8RAW"), genjets=cms.InputTag("slimmedGenJets"), genfatjets=cms.InputTag("slimmedGenJetsAK8"), mets=cms.InputTag("slimmedMETs"), electrons=cms.InputTag("slimmedElectrons"), muons=cms.InputTag("slimmedMuons"), trigger=cms.InputTag("TriggerResults", "", "HLT"), triggerObjects=cms.InputTag("slimmedPatTrigger"), pileUp=cms.InputTag("slimmedAddPileupInfo"), genInfo=cms.InputTag("generator"),
from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD runMetCorAndUncFromMiniAOD(process, isData=False, fixEE2017=True, fixEE2017Params={ 'userawPt': True, 'ptThreshold': 50.0, 'minEtaThreshold': 2.65, 'maxEtaThreshold': 3.139 }, postfix="ModifiedMET") from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runVID=True, #saves CPU time by not needlessly re-running VID runEnergyCorrections=False, era='2016-Legacy') process.bugfixingSequence = cms.Sequence() #process.bugfixingSequence += process.egammaPostRecoSeq #process.bugfixingSequence += process.fullPatMetSequenceModifiedMET from PhysicsTools.PatUtils.l1ECALPrefiringWeightProducer_cfi import l1ECALPrefiringWeightProducer process.prefiringweight = l1ECALPrefiringWeightProducer.clone( DataEra=cms.string('2016BtoH'), UseJetEMPt=cms.bool(False), PrefiringRateSystematicUncty=cms.double(0.2), SkipWarnings=False) process.externalCorrectionSequence = cms.Sequence() process.externalCorrectionSequence += process.prefiringweight process.fcncKit = cms.EDAnalyzer(
#for egamma smearing #from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq #setupEgammaPostRecoSeq(process, # era="2017-Nov17ReReco", # runVID=True, # runEnergyCorrections=True,#True: do egamma_modification # ) from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, runVID=True, runEnergyCorrections= False, #no point in re-running them, they are already fine era='2016-Legacy' ) #era is new to select between 2016 / 2017, it defaults to 2017 #for egamma smearing # If Update process.goodMuons.src = "slimmedMuons" process.goodElectrons.src = "slimmedElectrons" process.goodPhotons.src = "slimmedPhotons" process.Wtoenu.MET = "slimmedMETs" process.Wtomunu.MET = "slimmedMETs" # jerc uncer 2017/5/7 if chsorpuppi:
process.recoTree.ApplyFilter = False # -- Store Flags -- # process.recoTree.StoreMuonFlag = True process.recoTree.StoreElectronFlag = True process.recoTree.StorePhotonFlag = True # -- photon part should be updated! later when it is necessary -- # process.recoTree.StoreJetFlag = True process.recoTree.StoreMETFlag = True process.recoTree.StoreGENFlag = isMC process.recoTree.KeepAllGen = isMC process.recoTree.StoreLHEFlag = isMC if Is2017: from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq(process, runVID=False, #saves CPU time by not needlessly re-running VID era='2017-Nov17ReReco') #a sequence egammaPostRecoSeq has now been created and should be added to your path, eg process.p=cms.Path(process.egammaPostRecoSeq) #################### # -- Let it run -- # #################### if Is2016: process.p = cms.Path( process.recoTree ) if Is2017: process.p = cms.Path( process.egammaPostRecoSeq * process.recoTree )
process.load("Geometry.CaloEventSetup.CaloTowerConstituents_cfi") process.load("Configuration.StandardSequences.Services_cff") process.load( 'Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff' ) from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag = GlobalTag( process.GlobalTag, getGlobalTagName(isMC=options.isMC, era=options.era), '') from RecoEgamma.EgammaTools.EgammaPostRecoTools import setupEgammaPostRecoSeq setupEgammaPostRecoSeq( process, applyEnergyCorrections=options.applyEnergyCorrections, applyVIDOnCorrectedEgamma=options.applyVIDOnCorrectedEgamma, isMiniAOD=options.isMiniAOD, era=options.era, runVID=options.runVID, runEnergyCorrections=options.runEnergyCorrections, applyEPCombBug=options.applyEPCombBug) process.p = cms.Path(process.egammaPostRecoSeq) process.egammaOutput = cms.OutputModule( "PoolOutputModule", compressionAlgorithm=cms.untracked.string('LZMA'), compressionLevel=cms.untracked.int32(4), dataset=cms.untracked.PSet(dataTier=cms.untracked.string('AODSIM'), filterName=cms.untracked.string('')), eventAutoFlushCompressedSize=cms.untracked.int32(15728640), fileName=cms.untracked.string(