jetPreDQMTask = cms.Task(ak4CaloL2RelativeCorrector,
                         ak4CaloL3AbsoluteCorrector, ak4PFL1FastjetCorrector,
                         ak4PFL2RelativeCorrector, ak4PFL3AbsoluteCorrector,
                         ak4PFCHSL1FastjetCorrector,
                         ak4PFCHSL2RelativeCorrector,
                         ak4PFCHSL3AbsoluteCorrector)
jetPreDQMSeq = cms.Sequence(jetPreDQMTask)

from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1
from JetMETCorrections.Type1MET.correctionTermsPfMetType0PFCandidate_cff import *
from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1

dqmCorrPfMetType1 = corrPfMetType1.clone(
    jetCorrLabel='dqmAk4PFCHSL1FastL2L3Corrector',
    jetCorrLabelRes='dqmAk4PFCHSL1FastL2L3Corrector')
pfMETT1 = pfMetT1.clone(srcCorrections=('dqmCorrPfMetType1:type1', ))

jetDQMAnalyzerAk4CaloUncleanedMC = jetDQMAnalyzerAk4CaloUncleaned.clone(
    JetCorrections="dqmAk4CaloL2L3Corrector")
jetDQMAnalyzerAk4CaloCleanedMC = jetDQMAnalyzerAk4CaloCleaned.clone(
    JetCorrections="dqmAk4CaloL2L3Corrector")
jetDQMAnalyzerAk4PFUncleanedMC = jetDQMAnalyzerAk4PFUncleaned.clone(
    JetCorrections="dqmAk4PFL1FastL2L3Corrector")
jetDQMAnalyzerAk4PFCleanedMC = jetDQMAnalyzerAk4PFCleaned.clone(
    JetCorrections="dqmAk4PFL1FastL2L3Corrector")
jetDQMAnalyzerAk4PFCHSCleanedMC = jetDQMAnalyzerAk4PFCHSCleaned.clone(
    JetCorrections="dqmAk4PFCHSL1FastL2L3Corrector")

caloMetDQMAnalyzerMC = caloMetDQMAnalyzer.clone(
    JetCorrections="dqmAk4CaloL2L3Corrector")
pfMetDQMAnalyzerMC = pfMetDQMAnalyzer.clone(
Beispiel #2
0
jetPreDQMTask = cms.Task(ak4CaloL2RelativeCorrector,
                         ak4CaloL3AbsoluteCorrector, ak4PFL1FastjetCorrector,
                         ak4PFL2RelativeCorrector, ak4PFL3AbsoluteCorrector,
                         ak4PFCHSL1FastjetCorrector,
                         ak4PFCHSL2RelativeCorrector,
                         ak4PFCHSL3AbsoluteCorrector)
jetPreDQMSeq = cms.Sequence(jetPreDQMTask)

from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1
from JetMETCorrections.Type1MET.correctionTermsPfMetType0PFCandidate_cff import *
from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1

dqmCorrPfMetType1 = corrPfMetType1.clone(
    jetCorrLabel=cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector'),
    jetCorrLabelRes=cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector'))
pfMETT1 = pfMetT1.clone(
    srcCorrections=cms.VInputTag(cms.InputTag('dqmCorrPfMetType1', 'type1')))

jetDQMAnalyzerAk4CaloUncleanedMC = jetDQMAnalyzerAk4CaloUncleaned.clone(
    JetCorrections=cms.InputTag("dqmAk4CaloL2L3Corrector"))
jetDQMAnalyzerAk4CaloCleanedMC = jetDQMAnalyzerAk4CaloCleaned.clone(
    JetCorrections=cms.InputTag("dqmAk4CaloL2L3Corrector"))
jetDQMAnalyzerAk4PFUncleanedMC = jetDQMAnalyzerAk4PFUncleaned.clone(
    JetCorrections=cms.InputTag("dqmAk4PFL1FastL2L3Corrector"))
jetDQMAnalyzerAk4PFCleanedMC = jetDQMAnalyzerAk4PFCleaned.clone(
    JetCorrections=cms.InputTag("dqmAk4PFL1FastL2L3Corrector"))
jetDQMAnalyzerAk4PFCHSCleanedMC = jetDQMAnalyzerAk4PFCHSCleaned.clone(
    JetCorrections=cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"))

caloMetDQMAnalyzerMC = caloMetDQMAnalyzer.clone(
    JetCorrections=cms.InputTag("dqmAk4CaloL2L3Corrector"))
pfMetDQMAnalyzerMC = pfMetDQMAnalyzer.clone(
    dqmAk4PFCHSL1FastL2L3Corrector
)

jetPreDQMSeq=cms.Sequence(ak4CaloL2RelativeCorrector*ak4CaloL3AbsoluteCorrector*
                          ak4PFL1FastjetCorrector*ak4PFL2RelativeCorrector*ak4PFL3AbsoluteCorrector*
                          ak4PFCHSL1FastjetCorrector*ak4PFCHSL2RelativeCorrector*ak4PFCHSL3AbsoluteCorrector)

from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1
from JetMETCorrections.Type1MET.correctionTermsPfMetType0PFCandidate_cff import *
from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1

dqmCorrPfMetType1=corrPfMetType1.clone(jetCorrLabel = cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector'),
                                       jetCorrLabelRes = cms.InputTag('dqmAk4PFCHSL1FastL2L3Corrector')
                                       )
pfMETT1=pfMetT1.clone(srcCorrections = cms.VInputTag(
        cms.InputTag('dqmCorrPfMetType1', 'type1')
    ))

jetDQMAnalyzerAk4CaloUncleanedMC=jetDQMAnalyzerAk4CaloUncleaned.clone(JetCorrections  = cms.InputTag("dqmAk4CaloL2L3Corrector"))
jetDQMAnalyzerAk4CaloCleanedMC=jetDQMAnalyzerAk4CaloCleaned.clone(JetCorrections    = cms.InputTag("dqmAk4CaloL2L3Corrector"))
jetDQMAnalyzerAk4PFUncleanedMC=jetDQMAnalyzerAk4PFUncleaned.clone(JetCorrections    = cms.InputTag("dqmAk4PFL1FastL2L3Corrector"))
jetDQMAnalyzerAk4PFCleanedMC=jetDQMAnalyzerAk4PFCleaned.clone(JetCorrections      = cms.InputTag("dqmAk4PFL1FastL2L3Corrector"))
jetDQMAnalyzerAk4PFCHSCleanedMC=jetDQMAnalyzerAk4PFCHSCleaned.clone(JetCorrections   = cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"))

caloMetDQMAnalyzerMC=caloMetDQMAnalyzer.clone(JetCorrections    = cms.InputTag("dqmAk4CaloL2L3Corrector"))
pfMetDQMAnalyzerMC=pfMetDQMAnalyzer.clone(JetCorrections      = cms.InputTag("dqmAk4PFL1FastL2L3Corrector"))
pfMetT1DQMAnalyzerMC=pfMetT1DQMAnalyzer.clone(JetCorrections    = cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"))

jetMETDQMOfflineSource = cms.Sequence(HBHENoiseFilterResultProducer*goodOfflinePrimaryVerticesDQM*AnalyzeSUSYDQM*QGTagger*
                                      pileupJetIdCalculatorCHSDQM*pileupJetIdEvaluatorCHSDQM*
                                      pileupJetIdCalculatorDQM*pileupJetIdEvaluatorDQM*
from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection
switchJetCollection(process,
                    jetSource=cms.InputTag('ak4PFJets'),
                    jetCorrections=('AK4PF',
                                    ['L1FastJet', 'L2Relative',
                                     '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)
Beispiel #5
0
def setup_jets_mets_(process, isData, bTagDiscriminators):
    """
    Create a new jets collection and a new MET collection with new JECs applied

    Return a tuple of newly created collections (jet, met)
    """

    # Jets

    add_ak4_chs_jets_(process, isData, bTagDiscriminators)

    # b-tagging information. From
    # https://github.com/cms-sw/cmssw/blob/CMSSW_7_4_X/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py#L130
    process.patJetsAK4PFCHS.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.patJetsAK4PFCHS.userData.userFunctionLabels = cms.vstring('vtxMass','vtxNtracks','vtx3DVal','vtx3DSig','vtxPx','vtxPy','vtxPz','vtxPosX','vtxPosY','vtxPosZ')
    process.patJetsAK4PFCHS.tagInfoSources = cms.VInputTag(cms.InputTag("pfSecondaryVertexTagInfosAK4PFCHS"))
    process.patJetsAK4PFCHS.addTagInfos = cms.bool(True)

    # Pile-up jet id
    process.load('RecoJets.JetProducers.PileupJetID_cfi')
    process.pileupJetId.applyJec = False
    process.pileupJetId.vertexes = cms.InputTag('offlineSlimmedPrimaryVertices')
    process.patJetsAK4PFCHS.userData.userFloats.src = [ cms.InputTag("pileupJetId:fullDiscriminant"), ]

    # MET
    from PhysicsTools.PatAlgos.tools.metTools import addMETCollection

    ## Gen MET
    if not isData:
        process.genMetExtractor = cms.EDProducer("GenMETExtractor",
                metSource = cms.InputTag("slimmedMETs", "" , cms.InputTag.skipCurrentProcess())
                )

    # MET is done from all PF candidates, and Type-I corrections are computed from CHS ak4 PF jets
    # https://twiki.cern.ch/twiki/bin/viewauth/CMS/MissingETRun2Corrections#type_1_PF_MET_recommended

    ## Raw PF METs
    process.load('RecoMET.METProducers.PFMET_cfi')

    process.pfMet.src = cms.InputTag('packedPFCandidates')
    addMETCollection(process, labelName='patPFMet', metSource='pfMet') # RAW MET
    process.patPFMet.addGenMET = False

    ## Type 1 corrections
    process.load('JetMETCorrections.Configuration.JetCorrectors_cff')
    from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1
    from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1

    process.corrPfMetType1 = corrPfMetType1.clone(
        src = 'ak4PFJetsCHS',
        jetCorrLabel = 'ak4PFCHSL1FastL2L3Corrector' if not isData else 'ak4PFCHSL1FastL2L3ResidualCorrector',
        offsetCorrLabel = 'ak4PFCHSL1FastjetCorrector',
        type1JetPtThreshold = cms.double(15.0)
    )
    process.pfMetT1 = pfMetT1.clone(
        src = 'pfMet',
        srcCorrections = [cms.InputTag("corrPfMetType1", "type1")]
    )

    addMETCollection(process, labelName='patMET', metSource='pfMetT1') # T1 MET
    process.patMET.addGenMET = False

    ## Slimmed METs

    from PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi import slimmedMETs
    #### CaloMET is not available in MiniAOD
    del slimmedMETs.caloMET

    process.slimmedMETs = slimmedMETs.clone()

    process.patMET.addGenMET = not isData
    if not isData:
        process.patMET.genMETSource = cms.InputTag("genMetExtractor")
    process.slimmedMETs.src = cms.InputTag("patMET")
    process.slimmedMETs.rawVariation = cms.InputTag("patPFMet") # only central value

    # Only central values are available
    configure_slimmedmet_(process.slimmedMETs)

    process.slimmedJetsNewJEC = process.selectedPatJetsAK4PFCHS.clone()
    process.slimmedMETsNewJEC = process.slimmedMETs.clone()

    return ('slimmedJetsNewJEC', 'slimmedMETsNewJEC')
Beispiel #6
0
def setup_met_(process, isData):
    from PhysicsTools.PatAlgos.tools.metTools import addMETCollection

    ## Gen MET
    if not isData:
        process.genMetExtractor = cms.EDProducer("GenMETExtractor",
                metSource = cms.InputTag("slimmedMETs", "" , cms.InputTag.skipCurrentProcess())
                )

    # MET is done from all PF candidates, and Type-I corrections are computed from CHS ak4 PF jets
    # https://twiki.cern.ch/twiki/bin/viewauth/CMS/MissingETRun2Corrections#type_1_PF_MET_recommended

    ## Raw PF METs
    process.load('RecoMET.METProducers.PFMET_cfi')

    process.pfMet.src = cms.InputTag('packedPFCandidates')
    addMETCollection(process, labelName='patPFMet', metSource='pfMet') # RAW MET
    process.patPFMet.addGenMET = False

    ## Type 1 corrections
    process.load('JetMETCorrections.Configuration.JetCorrectors_cff')
    from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1
    from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1

    if not hasattr(process, 'ak4PFJetsCHS'):
        print("WARNING: No AK4 CHS jets produced. Type 1 corrections for MET are not available.")
    else:
        process.corrPfMetType1 = corrPfMetType1.clone(
            src = 'ak4PFJetsCHS',
            jetCorrLabel = 'ak4PFCHSL1FastL2L3Corrector' if not isData else 'ak4PFCHSL1FastL2L3ResidualCorrector',
            offsetCorrLabel = 'ak4PFCHSL1FastjetCorrector'
        )
        process.pfMetT1 = pfMetT1.clone(
            src = 'pfMet',
            srcCorrections = [cms.InputTag("corrPfMetType1", "type1")]
        )

        addMETCollection(process, labelName='patMET', metSource='pfMetT1') # T1 MET
        process.patMET.addGenMET = False

    ## Slimmed METs

    from PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi import slimmedMETs
    #### CaloMET is not available in MiniAOD
    del slimmedMETs.caloMET

    process.slimmedMETs = slimmedMETs.clone()
    if hasattr(process, "patMET"):
        # Create MET from Type 1 PF collection
        process.patMET.addGenMET = not isData
        if not isData:
            process.patMET.genMETSource = cms.InputTag("genMetExtractor")
        process.slimmedMETs.src = cms.InputTag("patMET")
        process.slimmedMETs.rawUncertainties = cms.InputTag("patPFMet") # only central value
    else:
        # Create MET from RAW PF collection
        process.patPFMet.addGenMET = not isData
        if not isData:
            process.patPFMet.genMETSource = cms.InputTag("genMetExtractor")
        process.slimmedMETs.src = cms.InputTag("patPFMet")
        del process.slimmedMETs.rawUncertainties # not available

    del process.slimmedMETs.type1Uncertainties # not available
    del process.slimmedMETs.type1p2Uncertainties # not available
Beispiel #7
0
def setup_nohf_met_(process, isData):
    from PhysicsTools.PatAlgos.tools.metTools import addMETCollection

    process.noHFCands = cms.EDFilter("CandPtrSelector",
            src=cms.InputTag("packedPFCandidates"),
            cut=cms.string("abs(pdgId)!=1 && abs(pdgId)!=2 && abs(eta)<3.0")
            )

    if not isData and not hasattr(process, 'genMetExtractor'):
        process.genMetExtractor = cms.EDProducer("GenMETExtractor",
                metSource = cms.InputTag("slimmedMETs", "" , cms.InputTag.skipCurrentProcess())
                )

    if not hasattr(process, 'pfMet'):
        from RecoMET.METProducers.PFMET_cfi import pfMet
        process.pfMetNoHF = pfMet.clone()
    else:
        process.pfMetNoHF = process.pfMet.clone()

    process.pfMetNoHF.calculateSignificance = False
    process.pfMetNoHF.src = cms.InputTag('noHFCands')
    addMETCollection(process, labelName='patPFMetNoHF', metSource='pfMetNoHF') # RAW MET
    process.patPFMetNoHF.addGenMET = False

    ## Type 1 corrections
    if not hasattr(process, 'ak4PFCHSL1FastL2L3Corrector'):
        process.load('JetMETCorrections.Configuration.JetCorrectors_cff')

    from JetMETCorrections.Type1MET.correctionTermsPfMetType1Type2_cff import corrPfMetType1
    from JetMETCorrections.Type1MET.correctedMet_cff import pfMetT1

    if not hasattr(process, 'ak4PFJetsCHS'):
        print("WARNING: No AK4 CHS jets produced. Type 1 corrections for MET are not available.")
    else:
        if not hasattr(process, 'corrPfMetType1'):
            process.corrPfMetType1 = corrPfMetType1.clone(
                src = 'ak4PFJetsCHS',
                jetCorrLabel = 'ak4PFCHSL1FastL2L3Corrector' if not isData else 'ak4PFCHSL1FastL2L3ResidualCorrector',
                offsetCorrLabel = 'ak4PFCHSL1FastjetCorrector'
            )

        process.pfMetT1NoHF = pfMetT1.clone(
            src = 'pfMetNoHF',
            srcCorrections = [cms.InputTag("corrPfMetType1", "type1")]
        )

        addMETCollection(process, labelName='patMETNoHF', metSource='pfMetT1NoHF') # T1 MET
        process.patMETNoHF.addGenMET = False

    ## Slimmed METs

    from PhysicsTools.PatAlgos.slimming.slimmedMETs_cfi import slimmedMETs
    #### CaloMET is not available in MiniAOD
    if hasattr(slimmedMETs, 'caloMET'):
        del slimmedMETs.caloMET

    process.slimmedMETsNoHF = slimmedMETs.clone()
    if hasattr(process, "patMETNoHF"):
        # Create MET from Type 1 PF collection
        process.patMETNoHF.addGenMET = not isData
        if not isData:
            process.patMETNoHF.genMETSource = cms.InputTag("genMetExtractor")
        process.slimmedMETsNoHF.src = cms.InputTag("patMETNoHF")
        process.slimmedMETsNoHF.rawUncertainties = cms.InputTag("patPFMetNoHF") # only central value
    else:
        # Create MET from RAW PF collection
        process.patPFMetNoHF.addGenMET = not isData
        if not isData:
            process.patPFMetNoHF.genMETSource = cms.InputTag("genMetExtractor")
        process.slimmedMETsNoHF.src = cms.InputTag("patPFMetNoHF")
        del process.slimmedMETsNoHF.rawUncertainties # not available

    del process.slimmedMETsNoHF.type1Uncertainties # not available
    del process.slimmedMETsNoHF.type1p2Uncertainties # not available
process.ak4PFJets.doAreaFastjet = True

from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection
switchJetCollection(process,
                    jetSource = cms.InputTag('ak4PFJets'),
                    jetCorrections = ('AK4PF', ['L1FastJet', 'L2Relative', '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) 
			       
Beispiel #9
0
)
newAK4PFCHSL1FastL2L3ResidualCorrectorChain = cms.Sequence(
    #ak4PFCHSL1FastjetCorrector * ak4PFCHSL2RelativeCorrector * ak4PFCHSL3AbsoluteCorrector *
    newAK4PFCHSL1FastL2L3ResidualCorrector)

metPreValidSeqTask = cms.Task(ak4PFCHSL1FastjetCorrector,
                              ak4PFCHSL2RelativeCorrector,
                              ak4PFCHSL3AbsoluteCorrector,
                              ak4PFCHSResidualCorrector)
metPreValidSeq = cms.Sequence(metPreValidSeqTask)

valCorrPfMetType1 = corrPfMetType1.clone(
    jetCorrLabel='newAK4PFCHSL1FastL2L3Corrector',
    jetCorrLabelRes='newAK4PFCHSL1FastL2L3ResidualCorrector')

PfMetT1 = pfMetT1.clone(
    srcCorrections=cms.VInputTag('valCorrPfMetType1:type1'))

PfMetT0pcT1 = pfMetT0pcT1.clone(srcCorrections=cms.VInputTag(
    'corrPfMetType0PfCand', 'valCorrPfMetType1:type1'))

METRelValSequence = cms.Sequence(
    metAnalyzer * pfMetAnalyzer * genMetTrueAnalyzer *
    correctionTermsPfMetType0PFCandidateForValidation *
    newAK4PFCHSL1FastL2L3CorrectorChain *
    newAK4PFCHSL1FastL2L3ResidualCorrectorChain * valCorrPfMetType1 *
    pfMetT0pc * PfMetT1 * PfMetT0pcT1 * pfType0CorrectedMetAnalyzer *
    pfType1CorrectedMetAnalyzer * pfType01CorrectedMetAnalyzer)

METValidation = cms.Sequence(
    metAnalyzer * pfMetAnalyzer * genMetTrueAnalyzer *
    correctionTermsPfMetType0PFCandidateForValidation *