Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 4
0
    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",
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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")'),
    )
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
    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 #
Ejemplo n.º 10
0
    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!
)
Ejemplo n.º 11
0
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
)
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
            '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)
Ejemplo n.º 14
0
                          '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' ]
Ejemplo n.º 17
0
                 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
Ejemplo n.º 19
0
##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"),
Ejemplo n.º 20
0
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)
Ejemplo n.º 22
0
# 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
Ejemplo n.º 23
0
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 ===========================================================================================
Ejemplo n.º 24
0
    "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")
Ejemplo n.º 25
0
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
                           },
Ejemplo n.º 26
0
#    )

# 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(''),
Ejemplo n.º 27
0
    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"),
Ejemplo n.º 28
0
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(
Ejemplo n.º 29
0
#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:
Ejemplo n.º 30
0
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
  )
Ejemplo n.º 31
0
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(