Пример #1
0
def setup_jets_(process, isData, bTagDiscriminators):
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    jetToolbox(process, 'ak4', 'ak4CHSJetSequence', 'out', PUMethod='CHS', runOnMC=not isData, miniAOD=True, addPUJetID=False, bTagDiscriminators=bTagDiscriminators + ['pfSimpleSecondaryVertexHighEffBJetTags'])
    process.softPFElectronsTagInfosAK4PFCHS.electrons = cms.InputTag('slimmedElectrons')
    process.softPFMuonsTagInfosAK4PFCHS.muons = cms.InputTag('slimmedMuons')

    # 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"), ]
Пример #2
0
def produceJets(process, isData):
    '''
    JetToolbox twiki:
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox
    
    Using the QGTagger with Jet Toolbox: 
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox#QGTagger
    
    QuarkGluonLikelihood twiki: 
    https://twiki.cern.ch/twiki/bin/view/CMS/QuarkGluonLikelihood
    
    More info:
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/QGDataBaseVersion
    '''
    process.load("Configuration.EventContent.EventContent_cff")
    process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
    process.load('Configuration.StandardSequences.MagneticField_38T_cff')
    process.load('Configuration.StandardSequences.Services_cff')

    JEC = ['L1FastJet', 'L2Relative', 'L3Absolute']
    if isData:
        JEC += ['L2L3Residual']

    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    jetToolbox(process,
               'ak4',
               'ak4JetSubs',
               'out',
               addQGTagger=True,
               addPUJetID=True,
               JETCorrLevels=JEC,
               bTagDiscriminators=[
                   'pfCombinedInclusiveSecondaryVertexV2BJetTags',
                   'pfCombinedMVAV2BJetTags', 'pfCombinedCvsBJetTags',
                   'pfCombinedCvsLJetTags'
               ],
               updateCollection='cleanedPatJets',
               JETCorrPayload="AK4PFchs",
               postFix='')

    # Small fix required to add the variables ptD, axis2, mult. See:
    # https://hypernews.cern.ch/HyperNews/CMS/get/jet-algorithms/418/1.html
    getattr(process, 'updatedPatJetsAK4PFCHS').userData.userFloats.src += [
        'QGTagger' + 'AK4PFCHS' + ':ptD'
    ]
    getattr(process, 'updatedPatJetsAK4PFCHS').userData.userFloats.src += [
        'QGTagger' + 'AK4PFCHS' + ':axis2'
    ]
    getattr(process, 'updatedPatJetsAK4PFCHS').userData.userInts.src += [
        'QGTagger' + 'AK4PFCHS' + ':mult'
    ]

    return
Пример #3
0
def add_ak4_chs_jets_(process, isData, bTagDiscriminators):
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    if verbosity:
        jetToolbox(process, 'ak4', 'ak4CHSJetSequence', 'out', PUMethod='CHS', runOnMC=not isData, miniAOD=True, addPUJetID=False, bTagDiscriminators=bTagDiscriminators)
    else:
        with StdStreamSilenter():
            jetToolbox(process, 'ak4', 'ak4CHSJetSequence', 'out', PUMethod='CHS', runOnMC=not isData, miniAOD=True, addPUJetID=False, bTagDiscriminators=bTagDiscriminators)

    if (hasattr(process, 'softPFElectronsTagInfosAK4PFCHS')):
        process.softPFElectronsTagInfosAK4PFCHS.electrons = cms.InputTag('slimmedElectrons')

    if (hasattr(process, 'softPFMuonsTagInfosAK4PFCHS')):
        process.softPFMuonsTagInfosAK4PFCHS.muons = cms.InputTag('slimmedMuons')
Пример #4
0
def jettoolbox_settings( process , RunOnMC ):
    process.load('CommonTools/PileupAlgos/Puppi_cff')
    process.puppi.candName   = cms.InputTag('packedPFCandidates')
    process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices')
    process.puppiOnTheFly    = process.puppi.clone()
    process.puppiOnTheFly.useExistingWeights = True


    print "Add AK4 Jets"
    jetToolbox( process, 'ak4', 'jetToolBox_ak4', 'edmOut',
    runOnMC            = RunOnMC ,
    addQGTagger        = True,
    bTagDiscriminators = listBtagDiscriminators ,
    Cut                = ''
    )

    print "Add AK8 Jets, soft drop"
    jetToolbox( process, 'ak8', 'jetToolBox_ak8', 'edmOut',
    runOnMC            = RunOnMC,
    addSoftDropSubjets = True,
    addTrimming        = True,
    rFiltTrim          = 0.1,
    addPruning         = True,
    addFiltering       = True,
    addSoftDrop        = True,
    addNsub            = True,
    GetJetMCFlavour    = True,
    GetSubjetMCFlavour = True,
    bTagDiscriminators = listBtagDiscriminators ,
    Cut                = '' )

    print "Add AK8 Jets, top tag"
    jetToolbox( process, 'ca8', 'jetToolBox_ak8_toptag', 'edmOut',
    runOnMC            = RunOnMC ,
    addMassDrop        = True,
    addCMSTopTagger    = True,
    GetJetMCFlavour    = True,
    GetSubjetMCFlavour = True,
    bTagDiscriminators = listBtagDiscriminators ,
    Cut                = ''
    )

    print "Add ak8 jets, puppi"
    jetToolbox( process, 'ak8', 'jetToolBox_ak8_puppi', 'edmOut',
    runOnMC            = RunOnMC ,
    PUMethod           = 'Puppi',
    addTrimming        = True,
    addPruning         = True,
    addFiltering       = True,
    addSoftDrop        = True,
    addSoftDropSubjets = True,
    addNsub            = True,
    GetJetMCFlavour    = True,
    GetSubjetMCFlavour = True,
    bTagDiscriminators = listBtagDiscriminators ,
    Cut                = ''
    )
def produceJets(process, isData):
    '''
    JetToolbox twiki:
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox
    
    Using the QGTagger with Jet Toolbox: 
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox#QGTagger
    
    QuarkGluonLikelihood twiki: 
    https://twiki.cern.ch/twiki/bin/view/CMS/QuarkGluonLikelihood
    
    More info:
    https://twiki.cern.ch/twiki/bin/viewauth/CMS/QGDataBaseVersion
    '''
    process.load("Configuration.EventContent.EventContent_cff")
    process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
    process.load('Configuration.StandardSequences.MagneticField_38T_cff')
    process.load('Configuration.StandardSequences.Services_cff')
    
    JEC = ['L1FastJet','L2Relative','L3Absolute']
    if isData:
        JEC += ['L2L3Residual']

    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    jetToolbox( process, 'ak4', 'ak4JetSubs', 'out', 
                addQGTagger=True, addPUJetID=True, JETCorrLevels = JEC,
                bTagDiscriminators = ['pfCombinedInclusiveSecondaryVertexV2BJetTags', 'pfCombinedMVAV2BJetTags','pfCombinedCvsBJetTags','pfCombinedCvsLJetTags'],
                updateCollection='cleanedPatJets', JETCorrPayload="AK4PFchs",
                postFix='')

    # Small fix required to add the variables ptD, axis2, mult. See:
    # https://hypernews.cern.ch/HyperNews/CMS/get/jet-algorithms/418/1.html
    getattr( process, 'updatedPatJetsAK4PFCHS').userData.userFloats.src += ['QGTagger'+'AK4PFCHS'+':ptD']
    getattr( process, 'updatedPatJetsAK4PFCHS').userData.userFloats.src += ['QGTagger'+'AK4PFCHS'+':axis2']
    getattr( process, 'updatedPatJetsAK4PFCHS').userData.userInts.src   += ['QGTagger'+'AK4PFCHS'+':mult']

    return
Пример #6
0
    "PoolSource",
    fileNames=cms.untracked.vstring(
        #"file:mini_test.root"
        "/store/mc/RunIIFall17MiniAODv2/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/MINIAODSIM/PU2017_12Apr2018_94X_mc2017_realistic_v14-v1/910000/D842F996-2149-E811-AF09-0242AC1C0502.root"
    ))

process.JTBout = cms.OutputModule(
    "PoolOutputModule",
    fileName=cms.untracked.string('mini_JTB_test.root'),
    outputCommands=cms.untracked.vstring("keep *"))
process.endpath = cms.EndPath(process.JTBout)

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(
    process,
    'ak12',
    'jetSequence',
    'JTBout',
    miniAOD=True,
    PUMethod='Puppi',
    JETCorrPayload='AK8PFPuppi',
    runOnMC=True,
    Cut='pt > 50.0 && abs(eta) < 2.4',
    bTagDiscriminators=['pfBoostedDoubleSecondaryVertexAK8BJetTags'],
    addSoftDrop=True,
    addSoftDropSubjets=True,
    addPruning=True,
    addNsub=True,
    addEnergyCorrFunc=True,
)
# |---- jetToolBox: Creating selectedPatJetsAK8PFCHS collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHS"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   "SubJets"        "Ana"     
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"     
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"    

jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', 
  runOnMC = isMC, 
  PUMethod='CHS', 
  # updateCollection='slimmedJetsAK8', # can't run groomers on this yet
  # JETCorrPayload='AK8PFchs', # needed for update collection
  addSoftDropSubjets = True, 
  addTrimming = True, rFiltTrim=0.2, ptFrac=0.05,
  addPruning = True, 
  addFiltering = True, 
  addSoftDrop = True, 
  addNsub = True, 
  bTagInfos = listBTagInfos, 
  bTagDiscriminators = listBtagDiscriminatorsAK8, 
  addCMSTopTagger = False, 
  Cut = ak8Cut , 
  addNsubSubjets = True, 
  subjetMaxTau = 3 )


# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
# |---- jetToolBox: Running ak8PFJetsPuppiSoftDropMass, selectedPatJetsAK8PFPuppiSoftDropPacked, selectedPatJetsAK8PFPuppiSoftDropSubjets, ak8PFJetsPuppiPrunedMass, ak8PFJetsPuppiTrimmedMass, ak8PFJetsPuppiFilteredMass, NjettinessAK8Puppi, NsubjettinessAK8PFPuppiSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFPuppi collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppi"   ""               "Ana"     
Пример #8
0
#Define Jet Tool Box Stuff
listBtagDiscriminatorsAK4 = [
    'pfJetProbabilityBJetTags',
    'pfCombinedInclusiveSecondaryVertexV2BJetTags',
    'pfCombinedMVAV2BJetTags',
    'pfCombinedCvsLJetTags',
    'pfCombinedCvsBJetTags',
]
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

jetToolbox(process,
           'ak8',
           'ak8JetSubs',
           "out",
           PUMethod='CHS',
           bTagDiscriminators=listBtagDiscriminatorsAK4,
           addSoftDrop=True,
           addNsub=True,
           addNsubSubjets=True,
           miniAOD=False)  ### For example

#Add PAT tasks for jet Toolbox to execution schedule
process.schedule.associate(process.patTask)
from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask

associatePatAlgosToolsTask(process)

#miniAOD_customize stuff
process.patTaus.isoDeposits = cms.PSet()
process.selectedPatTaus.cut = cms.string(
    "pt > 18. && tauID('decayModeFindingNewDMs')> 0.5")
Пример #9
0
#HERE WE RUN A MODULE FROM SAM HARPER WHICH INSERTS HEEP CUT INFO INTO THE PAT ELECTRON USER DATA
#we setup the HEEP ID V7.0 and enable VID via the following function
#and then add it to a new collection of pat::Electrons
#there is the option to call the new collection "slimmedElectrons" (useStdName=True)
#otherwise it calls them "heepElectrons"
#it creates a sequence "process.heepSequence" which we add to our path

from HEEP.VID.tools import addHEEPV70ElesMiniAOD
addHEEPV70ElesMiniAOD(process, useStdName=True)

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(process,
           'ak8',
           'jetSequence',
           'out',
           PUMethod='Puppi',
           miniAOD=True,
           runOnMC=options.isMC,
           addSoftDrop=True,
           addNsub=True)

process.options.allowUnscheduled = cms.untracked.bool(True)
##this is our example analysis module reading the results, you will have your own module
#process.heepIdExample = cms.EDAnalyzer("HEEPV70PATExample",
#                                       eles=cms.InputTag("slimmedElectrons"),
#                                       )

#process.p = cms.Path(
#    process.heepSequence*
#    process.heepIdExample) #our analysing example module, replace with your module
#
Пример #10
0
# Kappa jet processing
process.kappaTuple.Jets.minPt = 5.0
process.kappaTuple.Jets.taggers = cms.vstring()

# containers for objects to process
kappa_jets = {}  # algoname: kappa jet config

# GenJets
if not data:
	process.kappaTuple.active += cms.vstring('LV')

#Run JetToolbox to get jet collections: https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

jetSequence = 'sequence'
jetToolbox( process, 'ak4', jetSequence+'ak4CHS',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='CHS',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False, addPUJetID=True) 
process.path *= process.sequenceak4CHS
process.path *= process.AK4PFCHSpileupJetIdCalculator*process.AK4PFCHSpileupJetIdEvaluator
jetToolbox( process, 'ak4', jetSequence+'ak4Puppi',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='Puppi',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak4Puppi
jetToolbox( process, 'ak4', jetSequence+'ak4',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='None',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak4
jetToolbox( process, 'ak8', jetSequence+'ak8CHS',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='CHS',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8CHS
jetToolbox( process, 'ak8', jetSequence+'ak8Puppi',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='Puppi',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8Puppi
jetToolbox( process, 'ak8', jetSequence+'ak8',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='None',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8
from Kappa.Skimming.KPatJets_miniAOD_cff import setup_PatJets
patJets = setup_PatJets(process, data)
	# create Jet variants
		'keep *GenEventInfoProduct*_*_*_*',		# pT-hat information
		"keep *_packedGenParticles_*_*",		# GN particle collection
		"keep *_packedPFCandidates_*_*",		# PF particle collection
	),
	SelectEvents = cms.untracked.PSet(
		SelectEvents = cms.vstring("p")
	)
)

## Add jet collections using the JetToolbox:
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(process, 'ak4', 'jetSequence', 'out',		# Required
	# Optional:
	PUMethod='CHS',
	miniAOD=True,
	addTrimming=True,
	addPruning=True,
	addSoftDrop=True,
	addFiltering=True,
	addMassDrop=True,
)
jetToolbox(process, 'ak8', 'jetSequence', 'out',		# Required
	# Optional:
	PUMethod='CHS',
	miniAOD=True,
	addTrimming=True,
	addPruning=True,
#	addSoftDrop=True,
#	addFiltering=True,
#	addMassDrop=True,
	addNsub=True,
		maxTau=4,
Пример #12
0
#            newPFCollection=True,
#            nameNewPFCollection='pfCandidatesNoEle',
#            addSoftDropSubjets = True,
#            addSoftDrop = True,
#            addNsub = True,
#            bTagDiscriminators = ['pfCombinedInclusiveSecondaryVertexV2BJetTags'],
#            addCMSTopTagger = False,
#            postFix="NoLep")

# Keep this behind the cleaned version for now, otherwise everything will be lepton cleaned
jetToolbox(process,
           'ak8',
           'ak8JetSubs',
           'out',
           runOnMC=not options.isData,
           PUMethod='Puppi',
           addSoftDropSubjets=True,
           addSoftDrop=True,
           addNsub=True,
           bTagDiscriminators=['pfCombinedInclusiveSecondaryVertexV2BJetTags'],
           addCMSTopTagger=False)

###############################################################################################################################

process.load("TopTagger.TopTagger.SHOTProducer_cfi")
process.SHOTProducer.ak4JetSrc = jetTag
process.SHOTProducer.ak8JetSrc = cms.InputTag(
    'packedPatJetsAK8PFPuppiSoftDrop')

###############################################################################################################################
Пример #13
0
# Kappa jet processing
process.kappaTuple.Jets.minPt = 5.0
process.kappaTuple.Jets.taggers = cms.vstring()

# containers for objects to process
kappa_jets = {}  # algoname: kappa jet config

# GenJets
if not data:
	process.kappaTuple.active += cms.vstring('LV')

#Run JetToolbox to get jet collections: https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

jetSequence = 'sequence'
jetToolbox( process, 'ak4', jetSequence+'ak4CHS',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='CHS',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False, addPUJetID=True) 
process.path *= process.sequenceak4CHS
process.path *= process.AK4PFCHSpileupJetIdCalculator*process.AK4PFCHSpileupJetIdEvaluator
jetToolbox( process, 'ak4', jetSequence+'ak4Puppi',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='Puppi',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak4Puppi
jetToolbox( process, 'ak4', jetSequence+'ak4',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='None',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak4
jetToolbox( process, 'ak8', jetSequence+'ak8CHS',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='CHS',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8CHS
jetToolbox( process, 'ak8', jetSequence+'ak8Puppi',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='Puppi',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8Puppi
jetToolbox( process, 'ak8', jetSequence+'ak8',  'out', miniAOD=True, runOnMC= not data, JETCorrPayload = "None", PUMethod='None',  addPruning=False, addSoftDrop=False , addPrunedSubjets=False,  addNsub=False, maxTau=6, addTrimming=False, addFiltering=False, addNsubSubjets=False) 
process.path *= process.sequenceak8
from Kappa.Skimming.KPatJets_miniAOD_cff import setup_PatJets
patJets = setup_PatJets(process, data)
	# create Jet variants
Пример #14
0
process.load("Configuration.EventContent.EventContent_cff")
process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
process.load('Configuration.StandardSequences.MagneticField_38T_cff')
process.load('Configuration.StandardSequences.Services_cff')
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff')
process.GlobalTag.globaltag = 'MCRUN2_74_V7'

process.load('FWCore.MessageLogger.MessageLogger_cfi')
process.MessageLogger.cerr.FwkReport.reportEvery = 10
process.MessageLogger.suppressWarning = cms.untracked.vstring('ecalLaserCorrFilter','manystripclus53X','toomanystripclus53X')
process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )
process.options.allowUnscheduled = cms.untracked.bool(True)

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='Puppi', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True ) #, JETCorrPayload='AK8PF', subJETCorrLevels=['L2Relative', 'L3Absoulte'] ) #, Cut='pt > 100 && abs(eta) < 2.4' ) 
jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='SK', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True, JETCorrLevels=['L1FastJet', 'L2Relative'] ) 
jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='CS', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True ) 
jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True, JETCorrPayload='AK3PFchs', subJETCorrPayload='AK8PFchs', JETCorrLevels=['L1FastJet', 'L2Relative'] )
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='Puppi', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='SK', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='CS', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='Puppi', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='SK', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='CS', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', addHEPTopTagger=True, addSoftDrop=True )

#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out' , addPruning=True, addSoftDrop=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True )
jetToolbox( process, 'ak4', 'ak4JetSubs', 'out', PUMethod='Puppi', addPUJetID=True, addPruning=True, addSoftDrop=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True )
#
Пример #15
0
# |---- jetToolBox: Running ak8PFJetsCHSSoftDropMass, selectedPatJetsAK8PFCHSSoftDropPacked, selectedPatJetsAK8PFCHSSoftDropSubjets, ak8PFJetsCHSPrunedMass, ak8PFJetsCHSTrimmedMass, ak8PFJetsCHSFilteredMass, NjettinessAK8CHS, NsubjettinessAK8PFCHSSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFCHS collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHS"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   "SubJets"        "Ana"     
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"     
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"    

jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', 
  runOnMC = isMC, 
  PUMethod='CHS', 
  addSoftDropSubjets = True, 
  addTrimming = True, rFiltTrim=0.2, ptFrac=0.05,
  addPruning = True, 
  addFiltering = True, 
  addSoftDrop = True, 
  addNsub = True, 
  bTagInfos = listBTagInfos, 
  bTagDiscriminators = listBtagDiscriminatorsAK8, 
  addCMSTopTagger = False, 
  Cut = ak8Cut , 
  addNsubSubjets = True, 
  subjetMaxTau = 4 )


# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
# |---- jetToolBox: Running ak8PFJetsPuppiSoftDropMass, selectedPatJetsAK8PFPuppiSoftDropPacked, selectedPatJetsAK8PFPuppiSoftDropSubjets, ak8PFJetsPuppiPrunedMass, ak8PFJetsPuppiTrimmedMass, ak8PFJetsPuppiFilteredMass, NjettinessAK8Puppi, NsubjettinessAK8PFPuppiSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFPuppi collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppi"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppiSoftDropPacked"   ""               "Ana"  
Пример #16
0
        if _jet_algo_radius == 'ak4' and _PU_method == "CHS":
            _do_PUJetID = True

        # create jet sequence with jet toolbox
        jetToolbox(
            process,
            _jet_algo_radius,
            _seq_name,
            'out',
            #dataTier='miniAOD',
            miniAOD=True,
            runOnMC=not options.isData,
            #JETCorrPayload="None",  # do *not* correct jets with JEC
            JETCorrLevels=[
                'L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual'
            ],
            PUMethod=_PU_method,  # PU subtraction method
            addPruning=False,
            addSoftDrop=False,
            addPrunedSubjets=False,
            addNsub=False,
            maxTau=6,
            addTrimming=False,
            addFiltering=False,
            addNsubSubjets=False,
            #bTagDiscriminators=None,
            addPUJetID=_do_PUJetID)

        # add jet sequence to process
        process.path *= getattr(process, _seq_name)
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   ""               "Ana"
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   "SubJets"        "Ana"
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"

jetToolbox(process,
           'ak8',
           'ak8JetSubs',
           'out',
           runOnMC=isMC,
           PUMethod='CHS',
           JETCorrLevels=['None'],
           subJETCorrLevels=['None'],
           addSoftDropSubjets=True,
           addTrimming=True,
           rFiltTrim=0.2,
           ptFrac=0.05,
           addPruning=True,
           addFiltering=True,
           addSoftDrop=True,
           addNsub=True,
           bTagInfos=listBTagInfos,
           bTagDiscriminators=listBtagDiscriminatorsAK8,
           addCMSTopTagger=False,
           Cut=ak8Cut,
           addNsubSubjets=True,
           subjetMaxTau=3)

# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
# |---- jetToolBox: Running ak8PFJetsPuppiSoftDropMass, selectedPatJetsAK8PFPuppiSoftDropPacked, selectedPatJetsAK8PFPuppiSoftDropSubjets, ak8PFJetsPuppiPrunedMass, ak8PFJetsPuppiTrimmedMass, ak8PFJetsPuppiFilteredMass, NjettinessAK8Puppi, NsubjettinessAK8PFPuppiSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFPuppi collection.
process.TFileService = cms.Service(
    "TFileService",
    fileName=cms.string('AnalysisOutput_DoubleB.root'),
    #                                  closeFileFast = cms.untracked.bool(True)
)

## process.demo = cms.EDAnalyzer('DimuonScoutingAnalyzer',
##      triggerResults  = cms.InputTag("TriggerResults", "", "TEST"),
##      muons           = cms.InputTag("hltScoutingMuonPackerCalo", "", "TEST"),
## )
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(process,
           'ak8',
           'jetSequence',
           'out',
           PUMethod='Puppi',
           miniAOD=True,
           runOnMC=False,
           addSoftDrop=True)
#jetToolbox( process, 'ak8', 'jetSequence', 'out', PUMethod='Puppi', miniAOD=True, runOnMC=False, bTagDiscriminators='pfBoostedDoubleSecondaryVertexAK8BJetTags', addSoftDrop=True)

process.demo = cms.EDAnalyzer(
    'DoubleBAnalyzer',
    triggerResults=cms.InputTag("TriggerResults", "", "HLT"),
    #     caloJets        = cms.InputTag("hltScoutingCaloPacker", "", "HLT"),
    #     pfJets          = cms.InputTag("hltScoutingPFPacker", "", "HLT"),
    recoAK8Jets=cms.InputTag("selectedPatJetsAK8PFPuppi"),
    #     recoAK8Jets        = cms.InputTag("slimmedJetsAK8", "", "RECO"),
    bDiscriminators=cms.vstring(  # list of b-tag discriminators to access
        #        'pfTrackCountingHighEffBJetTags',
        #        'pfTrackCountingHighPurBJetTags',
process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices')

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

### CA15Puppi
jetToolbox(
    process,
    'ca15',
    'jetSequence',
    'out',
    PUMethod='Puppi',
    miniAOD=options.useMiniAOD,
    runOnMC=options.runOnMC,
    bTagDiscriminators=(bTagDiscriminators +
                        ([] if NOTADDHBBTag else
                         ['pfBoostedDoubleSecondaryVertexCA15BJetTags'])),
    JETCorrPayload='AK8PFPuppi',
    JETCorrLevels=jetCorrectionLevelsPuppi,
    subJETCorrPayload='AK4PFPuppi',
    subJETCorrLevels=jetCorrectionLevelsPuppi,
    Cut='pt>120',
    addSoftDrop=True,
    addSoftDropSubjets=True,
    betaCut=1.0,
    zCutSD=0.15,
    addNsub=True)

### AK8Puppi
#jetToolbox( process, 'ak8', 'jetSequence', 'out', PUMethod='Puppi', miniAOD=options.useMiniAOD, runOnMC=options.runOnMC,
#	    bTagDiscriminators=(bTagDiscriminators + ([] if NOTADDHBBTag else ['pfBoostedDoubleSecondaryVertexAK8BJetTags'])),
#	    JETCorrPayload='AK8PFPuppi',JETCorrLevels=jetCorrectionLevelsPuppi,
Пример #20
0
def reclusterZinv(self, process, cleanedCandidates, suff):
    # skip all jet smearing for data
    from TreeMaker.TreeMaker.JetDepot import JetDepot
    doJERsmearing = self.geninfo

    ### AK8 detour

    # https://twiki.cern.ch/CMS/JetToolbox
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    listBTagInfos = ['pfInclusiveSecondaryVertexFinderTagInfos','pfImpactParameterTagInfos'] 
    listBtagDiscriminatorsAK8 = [
         'pfBoostedDoubleSecondaryVertexAK8BJetTags',
    ]
    listBtagDiscriminatorsSubjetAK8 = [
        'pfCombinedInclusiveSecondaryVertexV2BJetTags',
    ]
    jecLevels = ['L1FastJet', 'L2Relative', 'L3Absolute']
    if self.residual: jecLevels.append("L2L3Residual")
    jetToolbox(process,
        'ak8',
        'jetSequence',
        'out',
        PUMethod = 'Puppi',
        miniAOD = True,
        runOnMC = self.geninfo,
        postFix='Clean',
        newPFCollection = True,
        nameNewPFCollection = cleanedCandidates.value(),
        Cut = 'pt>170.',
        addPruning = True,
        addSoftDropSubjets = True,
        addNsub = True,
        maxTau = 3,
        bTagInfos = listBTagInfos, 
        bTagDiscriminators = listBtagDiscriminatorsAK8,
        subjetBTagDiscriminators = listBtagDiscriminatorsSubjetAK8,
        JETCorrLevels = jecLevels,
        subJETCorrLevels = jecLevels,
        addEnergyCorrFunc = False,
        associateTask = False,
        verbosity = 2 if self.verbose else 0,
    )
    JetAK8CleanTag = cms.InputTag("packedPatJetsAK8PFPuppiCleanSoftDrop")

    if doJERsmearing:
        # do central smearing and replace jet tag
        process, _, JetAK8CleanTag = JetDepot(process,
            JetTag=JetAK8CleanTag,
            jecUncDir=0,
            doSmear=doJERsmearing,
            jerUncDir=0,
            storeJer=2,
        )
    
    # get puppi-specific multiplicities
    from PhysicsTools.PatAlgos.patPuppiJetSpecificProducer_cfi import patPuppiJetSpecificProducer
    process.puppiSpecificAK8Clean = patPuppiJetSpecificProducer.clone(
        src = JetAK8CleanTag
    )
    # update userfloats (used for jet ID, including ID for JEC/JER variations)
    from TreeMaker.TreeMaker.addJetInfo import addJetInfo
    process, JetAK8CleanTag = addJetInfo(process, JetAK8CleanTag,
        ['puppiSpecificAK8Clean:puppiMultiplicity','puppiSpecificAK8Clean:neutralPuppiMultiplicity','puppiSpecificAK8Clean:neutralHadronPuppiMultiplicity',
         'puppiSpecificAK8Clean:photonPuppiMultiplicity','puppiSpecificAK8Clean:HFHadronPuppiMultiplicity','puppiSpecificAK8Clean:HFEMPuppiMultiplicity'])

    process = self.makeJetVarsAK8(process,
        JetTag=JetAK8CleanTag,
        suff='AK8Clean',
        storeProperties=1,
        doECFs=False, # currently disabled
        doDeepAK8=False, # currently disabled
        doDeepDoubleB=False, # currently disabled
        puppiSpecific="puppiSpecificAK8Clean",
    )

    # update some userfloat names
    process.JetPropertiesAK8Clean.prunedMass = cms.vstring('ak8PFJetsPuppiCleanPrunedMass')
    process.JetPropertiesAK8Clean.softDropMass = cms.vstring('SoftDrop')
    process.JetPropertiesAK8Clean.NsubjettinessTau1 = cms.vstring('NjettinessAK8PuppiClean:tau1')
    process.JetPropertiesAK8Clean.NsubjettinessTau2 = cms.vstring('NjettinessAK8PuppiClean:tau2')
    process.JetPropertiesAK8Clean.NsubjettinessTau3 = cms.vstring('NjettinessAK8PuppiClean:tau3')
    process.JetPropertiesAK8Clean.subjets = cms.vstring('SoftDrop')
    process.JetPropertiesAK8Clean.SJbDiscriminatorCSV = cms.vstring('SoftDrop','pfCombinedInclusiveSecondaryVertexV2BJetTags')
    process.JetPropertiesAK8Clean.neutralHadronPuppiMultiplicity = cms.vstring("puppiSpecificAK8Clean:neutralHadronPuppiMultiplicity")
    process.JetPropertiesAK8Clean.neutralPuppiMultiplicity = cms.vstring("puppiSpecificAK8Clean:neutralPuppiMultiplicity")
    process.JetPropertiesAK8Clean.photonPuppiMultiplicity = cms.vstring("puppiSpecificAK8Clean:photonPuppiMultiplicity")
#    process.JetPropertiesAK8Clean.ecfN2b1 = cms.vstring('ak8PFJetsPuppiCleanSoftDropValueMap:nb1AK8PuppiCleanSoftDropN2')
#    process.JetPropertiesAK8Clean.ecfN3b1 = cms.vstring('ak8PFJetsPuppiCleanSoftDropValueMap:nb1AK8PuppiCleanSoftDropN3')
#    process.JetPropertiesAK8Clean.ecfN2b2 = cms.vstring('ak8PFJetsPuppiCleanSoftDropValueMap:nb2AK8PuppiCleanSoftDropN2')
#    process.JetPropertiesAK8Clean.ecfN3b2 = cms.vstring('ak8PFJetsPuppiCleanSoftDropValueMap:nb2AK8PuppiCleanSoftDropN3')

    ### end AK8 detour

    # do CHS for jet clustering
    cleanedCandidatesCHS = cms.EDFilter("CandPtrSelector",
        src = cleanedCandidates,
        cut = cms.string("fromPV")
    )
    setattr(process,"cleanedCandidatesCHS"+suff,cleanedCandidatesCHS)

    # make the RECO jets 
    from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJets
    ak4PFJetsClean = ak4PFJets.clone(
        src = cms.InputTag("cleanedCandidatesCHS"+suff),
        doAreaFastjet = True
    )
    setattr(process,"ak4PFJetsClean"+suff,ak4PFJetsClean)

    # turn the RECO jets into PAT jets
    # for a full list & description of parameters see:
    # PhysicsTools/PatAlgos/python/tools/jetTools.py
    from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection
    jecLevels = ['L1FastJet', 'L2Relative', 'L3Absolute']
    if self.residual: jecLevels.append("L2L3Residual")
    btagDiscs = ['pfCombinedInclusiveSecondaryVertexV2BJetTags','pfDeepCSVDiscriminatorsJetTags:BvsAll']
    addJetCollection(
       process,
       labelName = 'AK4PFCLEAN'+suff,
       jetSource = cms.InputTag('ak4PFJetsClean'+suff),
       pfCandidates = cleanedCandidates,
       pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'),
       svSource = cms.InputTag('slimmedSecondaryVertices'),
       algo = 'AK',
       rParam = 0.4,
       getJetMCFlavour = True, # seems to be enough for hadronFlavour()
       #genJetCollection = cms.InputTag('slimmedGenJets'),
       genParticles = cms.InputTag('prunedGenParticles'), # likely needed for hadronFlavour()....
       jetCorrections = ('AK4PFchs', jecLevels, 'None'),
       btagDiscriminators = btagDiscs,
       muSource = cms.InputTag("slimmedMuons"),
       elSource = cms.InputTag("slimmedElectrons")
    )
    # turn on/off GEN matching
    getattr(process,'patJetsAK4PFCLEAN'+suff).addGenPartonMatch = cms.bool(False)
    getattr(process,'patJetsAK4PFCLEAN'+suff).addGenJetMatch = cms.bool(False)
    # turn off some flags for data
    getattr(process,'patJetsAK4PFCLEAN'+suff).addJetFlavourInfo = cms.bool(self.geninfo)
    getattr(process,'patJetsAK4PFCLEAN'+suff).getJetMCFlavour = cms.bool(self.geninfo)

    # apply pt cut to final jet collection (done in slimmedJets)
    reclusteredJets = cms.EDFilter("PATJetSelector",
        src = cms.InputTag("patJetsAK4PFCLEAN"+suff),
        cut = cms.string("pt>10.")
    )
    setattr(process,'reclusteredJets'+suff,reclusteredJets)
    JetTagClean = cms.InputTag("reclusteredJets"+suff)

    # recalculate MET from cleaned candidates and reclustered jets
    postfix="clean"+suff
    from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD
    runMetCorAndUncFromMiniAOD(
        process,
        isData=not self.geninfo, # controls gen met
        jetCollUnskimmed='patJetsAK4PFCLEAN'+suff,
        pfCandColl=cleanedCandidates.value(),
        recoMetFromPFCs=True, # to recompute
        reclusterJets=False, # without reclustering
        reapplyJEC=False,
        fixEE2017=self.doMETfix,
        postfix=postfix,
    )
    METTag = cms.InputTag('slimmedMETs'+postfix)
    if self.doMETfix:
        runMetCorAndUncFromMiniAOD(
            process,
            isData=not self.geninfo, # controls gen met
            jetCollUnskimmed='patJetsAK4PFCLEAN'+suff,
            pfCandColl=cleanedCandidates.value(),
            recoMetFromPFCs=True, # to recompute
            reclusterJets=False, # without reclustering
            reapplyJEC=False,
            postfix=postfix+'Orig',
            computeMETSignificance=False,
        )
        METTagOrig = cms.InputTag('slimmedMETs'+postfix+'Orig')
    else:
        METTagOrig = None
    
    # isolated tracks
    from TreeMaker.Utils.trackIsolationMaker_cfi import trackIsolationFilter

    IsolatedElectronTracksVetoClean = trackIsolationFilter.clone(
        doTrkIsoVeto        = False,
        vertexInputTag      = cms.InputTag("goodVertices"),
        pfCandidatesTag     = cleanedCandidates,
        dR_ConeSize         = cms.double(0.3),
        dz_CutValue         = cms.double(0.1),
        minPt_PFCandidate   = cms.double(5.0),
        isoCut              = cms.double(0.2),
        pdgId               = cms.int32(11),
        mTCut               = cms.double(100.),
        METTag              = METTag,
    )
    setattr(process,"IsolatedElectronTracksVetoClean"+suff,IsolatedElectronTracksVetoClean)

    IsolatedMuonTracksVetoClean = trackIsolationFilter.clone(
        doTrkIsoVeto        = False,
        vertexInputTag      = cms.InputTag("goodVertices"),
        pfCandidatesTag     = cleanedCandidates,
        dR_ConeSize         = cms.double(0.3),
        dz_CutValue         = cms.double(0.1),
        minPt_PFCandidate   = cms.double(5.0),
        isoCut              = cms.double(0.2), 
        pdgId               = cms.int32(13),
        mTCut               = cms.double(100.),
        METTag              = METTag,
    )
    setattr(process,"IsolatedMuonTracksVetoClean"+suff,IsolatedMuonTracksVetoClean)
    
    IsolatedPionTracksVetoClean = trackIsolationFilter.clone(
        doTrkIsoVeto        = False,
        vertexInputTag      = cms.InputTag("goodVertices"),
        pfCandidatesTag     = cleanedCandidates,
        dR_ConeSize         = cms.double(0.3),
        dz_CutValue         = cms.double(0.1),
        minPt_PFCandidate   = cms.double(10.0),
        isoCut              = cms.double(0.1),
        pdgId               = cms.int32(211),
        mTCut               = cms.double(100.),
        METTag              = METTag,
    )
    setattr(process,"IsolatedPionTracksVetoClean"+suff,IsolatedPionTracksVetoClean)

    self.VarsInt.extend(['IsolatedElectronTracksVetoClean'+suff+':isoTracks(isoElectronTracksclean'+suff+')'])
    self.VarsInt.extend(['IsolatedMuonTracksVetoClean'+suff+':isoTracks(isoMuonTracksclean'+suff+')'])
    self.VarsInt.extend(['IsolatedPionTracksVetoClean'+suff+':isoTracks(isoPionTracksclean'+suff+')'])

    if doJERsmearing:
        # do central smearing and replace jet tag
        process, _, JetTagClean = JetDepot(process,
            JetTag=JetTagClean,
            jecUncDir=0,
            doSmear=doJERsmearing,
            jerUncDir=0,
            storeJer=2,
        )
    
    # make the event variables
    process = self.makeJetVars(
        process,
        JetTag = JetTagClean,
        suff=postfix,
        storeProperties=1,
        METfix=self.doMETfix,
    )

    from TreeMaker.Utils.metdouble_cfi import metdouble
    METclean = metdouble.clone(
       METTag = METTag,
       JetTag = cms.InputTag('HTJets'+postfix)
    )
    setattr(process,"METclean"+suff,METclean)
    self.VarsDouble.extend(['METclean'+suff+':Pt(METclean'+suff+')','METclean'+suff+':Phi(METPhiclean'+suff+')','METclean'+suff+':Significance(METSignificanceclean'+suff+')'])
#    self.VarsDouble.extend(['METclean'+suff+':RawPt(RawMETclean'+suff+')','METclean'+suff+':RawPhi(RawMETPhiclean'+suff+')'])

    if self.doMETfix:
        METcleanOrig = METclean.clone(
            METTag = METTagOrig
        )
        setattr(process,"METclean"+suff+"Orig",METcleanOrig)
        self.VarsDouble.extend(['METclean'+suff+'Orig:Pt(METclean'+suff+'Orig)','METclean'+suff+'Orig:Phi(METPhiclean'+suff+'Orig)'])
#        self.VarsDouble.extend(['METclean'+suff+'Orig:RawPt(RawMETclean'+suff+'Orig)','METclean'+suff+'Orig:RawPhi(RawMETPhiclean'+suff+'Orig)'])

    return process
Пример #21
0
#####################
# MET Significance  #
#####################
process.load("RecoMET/METProducers.METSignificance_cfi")
process.load("RecoMET/METProducers.METSignificanceParams_cfi")
from RecoMET.METProducers.testInputFiles_cff import recoMETtestInputFiles


#######################
# AK10 collection     #
#######################
if options.runAK10:
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    jetToolbox( process, 'ak10', 'ak10JetSubs', 'out', runOnMC=(not options.isData),
                addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True,
                JETCorrPayload='AK3Pachs', subJETCorrPayload='AK10PFchs', JETCorrLevels=['L1FastJet', 'L2Relative', 'L3Absolute'],
                addNsub=True, maxTau=6, addTrimming=True, addFiltering=True,
                addEnergyCorrFunc=True, maxECF=5 )    
                
#######################
# Quark gluon tagging #
#######################
if options.runQG:
    qgDatabaseVersion = 'v1' # check https://twiki.cern.ch/twiki/bin/viewauth/CMS/QGDataBaseVersion

    from CondCore.DBCommon.CondDBSetup_cfi import *
    QGPoolDBESSource = cms.ESSource("PoolDBESSource",
          CondDBSetup,
          toGet = cms.VPSet(),
          connect = cms.string('frontier://FrontierProd/CMS_COND_PAT_000'),
    )
Пример #22
0
listBtagDiscriminatorsAK4 = [
    'pfJetProbabilityBJetTags',
    'pfCombinedInclusiveSecondaryVertexV2BJetTags',
    'pfCombinedMVAV2BJetTags',
    'pfCombinedCvsLJetTags',
    'pfCombinedCvsBJetTags',
]
jetToolbox(
    process,
    'ak8',
    'ak8JetSubs',
    'out',
    PUMethod='CHS',
    #updateCollection='slimmedJetsAK8',
    JETCorrPayload='AK8PFchs',
    #addEnergyCorrFunc=True,
    #updateCollectionSubjets='slimmedJetsAK8PFCHSSoftDropPacked:SubJets',
    subJETCorrPayload='AK4PFchs',
    bTagDiscriminators=listBtagDiscriminatorsAK4,
    #addNsubSubjets=True,
    addPrunedSubjets=True,
    postFix='CollectionTests',
    addTrimming=True,
    addPruning=True)  #, addPrunedSubjets=True, subJETCorrPayload='AK4PFchs' )
jetToolbox(
    process,
    'ak8',
    'ak8JetSubs',
    'out',
    PUMethod='CHS',
    #updateCollection='slimmedJetsAK8',
Пример #23
0
### ------------------------------------------------------------------
process.load('CommonTools/PileupAlgos/Puppi_cff')
## e.g. to run on miniAOD
process.puppi.candName = cms.InputTag('packedPFCandidates')
process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices')

### ------------------------------------------------------------------
### Recluster jets and adding subtructure tools from jetToolbox 
### (https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox)
### ------------------------------------------------------------------
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
process.puppiOnTheFly = process.puppi.clone()
process.puppiOnTheFly.useExistingWeights = True

if "MC" in options.DataProcessing: 
	jetToolbox( process, 'ak4', 'analysisPath', 'edmNtuplesOut', addQGTagger=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', addSoftDropSubjets=True, addTrimming=True, rFiltTrim=0.1, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', addCMSTopTagger=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', PUMethod='Puppi', newPFCollection=True, nameNewPFCollection='puppiOnTheFly', addSoftDropSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
else:
	jetToolbox( process, 'ak4', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addQGTagger=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addSoftDropSubjets=True, addTrimming=True, rFiltTrim=0.1, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addCMSTopTagger=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, PUMethod='Puppi', newPFCollection=True, nameNewPFCollection='puppiOnTheFly', addSoftDropSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )

jLabelAK8 = 'selectedPatJetsAK8PFCHS'
jLabel            = 'selectedPatJetsAK4PFCHS'
jLabelNoHF        = 'selectedPatJetsAK4PFCHS'

### ---------------------------------------------------------------------------
### Removing the HF from the MET computation as from 7 Aug 2015 recommendations
Пример #24
0
pfDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-symbol.json'
pfDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-0000.params'
pfMassDecorrelatedDeepBoostedJetTags.preprocessParams = pfMassDecorrelatedDeepBoostedJetPreprocessParamsV02
pfMassDecorrelatedDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-symbol.json'
pfMassDecorrelatedDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-0000.params'

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(
    process,
    'ak8',
    'jetSequence',
    'noOutput',
    dataTier='miniAOD',
    runOnMC=False,
    updateCollection='slimmedJetsAK8',
    JETCorrPayload='AK8PFchs',
    JETCorrLevels=['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual'],
    bTagDiscriminators=[
        "pfDeepBoostedDiscriminatorsJetTags:TvsQCD",
        "pfDeepBoostedDiscriminatorsJetTags:WvsQCD",
        "pfDeepBoostedDiscriminatorsJetTags:ZvsQCD",
        "pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:TvsQCD",
        "pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD",
        "pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZvsQCD",
    ])
## AK8Jet Tag: selectedUpdatedPatJetsAK8WithDeepTags

from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask
task = getPatAlgosToolsTask(process)
process.endpath = cms.EndPath(task)

##--|  ##Updating Jet collection for DeepFlavor tagger
Пример #25
0
JEC = ['L1FastJet', 'L2Relative', 'L3Absolute']
if not isMC:
    JEC += ['L2L3Residual']

jetToolbox(
    process,
    'ak4',
    'myJetSequence',
    'outTemp',
    JETCorrPayload='AK4PFchs',
    JETCorrLevels=JEC,
    miniAOD=True,
    runOnMC=isMC,
    addNsub=True,  # was True      
    #addPUJetID=False,
    #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags','pfCombinedMVAV2BJetTags'],
    #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags'],
    #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags'],
    addPUJetID=True,
    addPruning=False,
    addTrimming=False,
    addCMSTopTagger=True,
    addHEPTopTagger=True,
    addMassDrop=True,
    addSoftDrop=False,
    addQGTagger=True,  # addSoftDrop=True
)  #, addPrunedSubjets=True )

preSeq += process.myJetSequence

# no need to recorrect the jets, since they are reclustered on the fly
Пример #26
0
process.load('FWCore.MessageLogger.MessageLogger_cfi')
process.MessageLogger.cerr.FwkReport.reportEvery = 100
#process.MessageLogger.suppressWarning = cms.untracked.vstring('ecalLaserCorrFilter','manystripclus53X','toomanystripclus53X')
process.options = cms.untracked.PSet(wantSummary=cms.untracked.bool(True))
process.options.allowUnscheduled = cms.untracked.bool(True)

#process.load("JetMETCorrections.Configuration.JetCorrectionServices_cff")
#process.load("JetMETCorrections.Configuration.JetCorrectionServicesAllAlgos_cff")

########################################################################
#### THESE EXAMPLES ARE JUST TESTS, MOST OF THEM ARE TOTALLY WRONG.
#### THERE ARE JUST TO TEST SEVERAL FEATURES OF THE JETTOOLBOX.
#######################################################################

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
'''
jetToolbox( process, 'ak8', 'jetSequence', 'out', PUMethod='CHS', miniAOD=True,
		#Cut='pt > 200 && abs(eta) < 2.5', # Tight
		runOnMC=False,
		addPruning = True, addSoftDrop = True,
		addNsub    = True,
		#addPrunedSubjets=True, addSoftDropSubjets=True,
		#addNsubSubjets  =True
		)

#jetToolbox( process, 'ak4', 'jetSequence', 'out', PUMethod='Puppi', miniAOD=True, runOnMC=True )
#process.load('CommonTools.PileupAlgos.Puppi_cff')
#process.PuppiOnTheFly = process.puppi.clone( candName = cms.InputTag( 'packedPFCandidates' ), vertexName = cms.InputTag( 'offlineSlimmedPrimaryVertices' ), clonePackedCands = cms.bool(True) )
#process.PuppiOnTheFly.useExistingWeights = True
#jetToolbox(process, 'ak4', 'dummy', 'out', PUMethod = 'Puppi', JETCorrPayload = 'AK4PFchs', JETCorrLevels = ['L2Relative', 'L3Absolute'], miniAOD = True, newPFCollection=True, nameNewPFCollection='puppi')
Пример #27
0
bTagDiscriminators = [
    'pfCombinedInclusiveSecondaryVertexV2BJetTags',
    'pfBoostedDoubleSecondaryVertexAK8BJetTags'
]
JETCorrLevels = ['L2Relative', 'L3Absolute']

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox(process,
           'ak8',
           'jetSequence',
           'out',
           PUMethod='Puppi',
           JETCorrPayload='AK8PFPuppi',
           JETCorrLevels=JETCorrLevels,
           miniAOD=True,
           runOnMC=True,
           Cut='pt > 170.0 && abs(rapidity()) < 2.4',
           addNsub=True,
           maxTau=3,
           addSoftDrop=True,
           addSoftDropSubjets=True,
           subJETCorrPayload='AK4PFPuppi',
           subJETCorrLevels=JETCorrLevels,
           bTagDiscriminators=bTagDiscriminators)
# srcJets = cms.untracked.InputTag('selectedPatJetsAK8PFPuppi')
# srcSubjets = cms.untracked.InputTag('selectedPatJetsAK8PFPuppiSoftDropPacked')
# ---------------------------------------------------------

process.out = cms.OutputModule("PoolOutputModule",
                               fileName=cms.untracked.string('ntuple.root'),
                               dropMetaData=cms.untracked.string("ALL"),
Пример #28
0
jetAlgoAK8 = 'AK8PFchs'
jetAlgoAK8Puppi = 'AK8PFPuppi'

ak8Cut = 'pt > 170 && abs(eta) < 2.4'

jetToolbox(
    process,
    'ak8',
    'analysisPath',
    'edmNtuplesOut',
    runOnMC=True,
    #updateCollection=jetAK8Label,
    #updateCollectionSubjets=subjetAK8Label,
    #JETCorrPayload=jetAlgoAK8,
    addSoftDropSubjets=True,
    addTrimming=True,
    rFiltTrim=0.1,
    addPruning=True,
    addFiltering=True,
    addSoftDrop=True,
    addNsub=True,
    bTagInfos=listBTagInfos,
    bTagDiscriminators=listBtagDiscriminatorsAK8,
    Cut=ak8Cut,
    addNsubSubjets=True,
    subjetMaxTau=4)

jetToolbox(process,
           'ak8',
           'analysisPath',
           'edmNtuplesOut',
Пример #29
0
process.source = cms.Source(
    "PoolSource",
    # replace 'myfile.root' with the source file you want to use
    fileNames=cms.untracked.vstring(files))
process.MessageLogger.cerr.FwkReport.reportEvery = 1000

#================================================================================
# Remake the Jet Collections ////////////////////////////////////////////////////
#================================================================================

# Adjust the jet collection to include tau4
jetToolbox(process,
           'ak8',
           'jetsequence',
           'out',
           updateCollection='slimmedJetsAK8',
           JETCorrPayload='AK8PFchs',
           addNsub=True,
           maxTau=4)

#================================================================================
# Prepare and run producer //////////////////////////////////////////////////////
#================================================================================

# Apply a preselction
process.selectedAK8Jets = cms.EDFilter(
    'PATJetSelector',
    src=cms.InputTag('selectedPatJetsAK8PFCHS'),
    cut=cms.string('pt > 100.0 && abs(eta) < 2.4'),
    filter=cms.bool(True))
Пример #30
0
                               cut = cms.string(muonID),
)
#HERE WE RUN A MODULE FROM SAM HARPER WHICH INSERTS HEEP CUT INFO INTO THE PAT ELECTRON USER DATA
#we setup the HEEP ID V7.0 and enable VID via the following function
#and then add it to a new collection of pat::Electrons
#there is the option to call the new collection "slimmedElectrons" (useStdName=True)
#otherwise it calls them "heepElectrons"
#it creates a sequence "process.heepSequence" which we add to our path

#from HEEP.VID.tools import addHEEPV70ElesMiniAOD

from ExoAnalysis.cmsWRextensions.tools import addHEEPV70ElesMiniAOD
addHEEPV70ElesMiniAOD(process,useStdName=False)

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
jetToolbox( process, 'ak8', 'jetSequence', 'out', PUMethod='Puppi', miniAOD=True, runOnMC=options.isMC, addSoftDrop=True , addSoftDropSubjets=True, addNsub=True, JETCorrPayload='AK8PFPuppi', JETCorrLevels=['L1FastJet','L2Relative', 'L3Absolute'])  

process.options.allowUnscheduled = cms.untracked.bool(True)
##this is our example analysis module reading the results, you will have your own module
#process.heepIdExample = cms.EDAnalyzer("HEEPV70PATExample",
#                                       eles=cms.InputTag("slimmedElectrons"),
#                                       )

#process.p = cms.Path(
#    process.heepSequence*
#    process.heepIdExample) #our analysing example module, replace with your module
#

#process.muonSelectionSeq = cms.Sequence(process.TriggerFilter * process.badGlobalMuonTagger * process.cloneGlobalMuonTagger * process.removeBadAndCloneGlobalMuons * process.tunePMuons * process.tuneIDMuons)
process.muonSelectionSeq = cms.Sequence(cms.ignore(process.badGlobalMuonTagger) * cms.ignore(process.cloneGlobalMuonTagger) * process.removeBadAndCloneGlobalMuons * process.tunePMuons * process.tuneIDMuons)
#   https://github.com/cms-jet/JRDatabase/tree/master/textFiles
jetAlgoAK8      = 'AK8PFchs'
jetAlgoAK8Puppi = 'AK8PFPuppi'

ak8Cut='pt > 170 && abs(eta) < 2.4'

jetToolbox( process, 
		'ak8', 
		'analysisPath', 
		'edmNtuplesOut', 
		runOnMC=True, 
		#updateCollection=jetAK8Label, 
		#updateCollectionSubjets=subjetAK8Label, 
		#JETCorrPayload=jetAlgoAK8, 
		addSoftDropSubjets=True, 
		addTrimming=True, 
		rFiltTrim=0.1, 
		addPruning=True, 
		addFiltering=True, 
		addSoftDrop=True, 
		addNsub=True, 
		bTagInfos=listBTagInfos, 
		bTagDiscriminators=listBtagDiscriminatorsAK8, 
		Cut=ak8Cut, 
		addNsubSubjets=True, 
		subjetMaxTau=4 )

jetToolbox( process, 
		'ak8', 
		'analysisPath', 
		'edmNtuplesOut', 
		runOnMC=True, 
Пример #32
0
process.load('FWCore.MessageLogger.MessageLogger_cfi')
process.MessageLogger.cerr.FwkReport.reportEvery = 10
process.MessageLogger.suppressWarning = cms.untracked.vstring('ecalLaserCorrFilter','manystripclus53X','toomanystripclus53X')
process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )
process.options.allowUnscheduled = cms.untracked.bool(True)

########################################################################
#### THESE EXAMPLES ARE JUST TEST, MOST OF THEM ARE TOTALLY WRONG. 
#### THERE ARE JUST TO TEST SEVERAL FEATURES OF THE JETTOOLBOX.
#######################################################################

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='Puppi', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True , JETCorrPayload='AK8PFchs', subJETCorrPayload='AK4PFchs', subJETCorrLevels=['L2Relative', 'L3Absoulte'] ) #, Cut='pt > 100 && abs(eta) < 2.4' ) 
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='SK', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True, JETCorrLevels=['L1FastJet', 'L2Relative'] ) 
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='CS', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True ) 
jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True, JETCorrPayload='AK3Pachs', subJETCorrPayload='AK8PFchs', JETCorrLevels=['L1FastJet', 'L2Relative'], addEnergyCorrFunc=True, maxECF=5 ) 
#
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='Puppi', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='SK', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrPayload='AK8PF' ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='CS', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrLevels=['L2Relative'] ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True ) 
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrPayload='AK8PFchs', JETCorrLevels=['L3Absolute'] ) 
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='Puppi', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='SK', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='CS', addHEPTopTagger=True, addSoftDrop=True )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', addHEPTopTagger=True, addSoftDrop=True )

#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out' , addPruning=True, addSoftDrop=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True )
#jetToolbox( process, 'ak4', 'ak4JetSubs', 'out', addQGTagger=True) #PUMethod='Puppi', addPUJetID=True, addPruning=True, addSoftDrop=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True )
#jetToolbox( process, 'ak4', 'ak4JetSubs', 'out', addQGTagger=True, QGjetsLabel='', PUMethod='Plain' )
#jetToolbox( process, 'ak4', 'ak4JetSubs', 'out', addQGTagger=True, PUMethod='Puppi' )
# |---- jetToolBox: Running ak8PFJetsCHSSoftDropMass, selectedPatJetsAK8PFCHSSoftDropPacked, selectedPatJetsAK8PFCHSSoftDropSubjets, ak8PFJetsCHSPrunedMass, ak8PFJetsCHSTrimmedMass, ak8PFJetsCHSFilteredMass, NjettinessAK8CHS, NsubjettinessAK8PFCHSSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFCHS collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHS"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   "SubJets"        "Ana"     
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"     
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"    

jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', 
  runOnMC = isMC, 
  PUMethod='CHS', 
  addSoftDropSubjets = True, 
  addTrimming = True, rFiltTrim=0.2, ptFrac=0.05,
  addPruning = True, 
  addFiltering = True, 
  addSoftDrop = True, 
  addNsub = True, 
  bTagInfos = listBTagInfos, 
  bTagDiscriminators = listBtagDiscriminatorsAK8, 
  addCMSTopTagger = False, 
  Cut = ak8Cut , 
  addNsubSubjets = True, 
  subjetMaxTau = 3 )


# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
# |---- jetToolBox: Running ak8PFJetsPuppiSoftDropMass, selectedPatJetsAK8PFPuppiSoftDropPacked, selectedPatJetsAK8PFPuppiSoftDropSubjets, ak8PFJetsPuppiPrunedMass, ak8PFJetsPuppiTrimmedMass, ak8PFJetsPuppiFilteredMass, NjettinessAK8Puppi, NsubjettinessAK8PFPuppiSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFPuppi collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppi"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppiSoftDropPacked"   ""               "Ana"  
# |---- jetToolBox: Creating selectedPatJetsAK8PFCHS collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHS"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   ""               "Ana"     
# vector<pat::Jet>                      "selectedPatJetsAK8PFCHSSoftDropPacked"   "SubJets"        "Ana"     
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"     
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"    

jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', 
  runOnMC = isMC, 
  PUMethod='CHS', 
  JETCorrLevels = [ 'None' ],
  subJETCorrLevels = [ 'None' ],
  addSoftDropSubjets = True, 
  addTrimming = True, rFiltTrim=0.2, ptFrac=0.05,
  addPruning = True, 
  addFiltering = True, 
  addSoftDrop = True, 
  addNsub = True, 
  bTagInfos = listBTagInfos, 
  bTagDiscriminators = listBtagDiscriminatorsAK8, 
  addCMSTopTagger = False, 
  Cut = ak8Cut , 
  addNsubSubjets = True, 
  subjetMaxTau = 3 )


# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
# |---- jetToolBox: Running ak8PFJetsPuppiSoftDropMass, selectedPatJetsAK8PFPuppiSoftDropPacked, selectedPatJetsAK8PFPuppiSoftDropSubjets, ak8PFJetsPuppiPrunedMass, ak8PFJetsPuppiTrimmedMass, ak8PFJetsPuppiFilteredMass, NjettinessAK8Puppi, NsubjettinessAK8PFPuppiSoftDropSubjets.
# |---- jetToolBox: Creating selectedPatJetsAK8PFPuppi collection.
# vector<pat::Jet>                      "selectedPatJetsAK8PFPuppi"   ""               "Ana"     
Пример #35
0
        # calculate and evaluate PUJetID only for ak4CHS jets (TODO: do we need this?)
        _do_PUJetID = False
        if _jet_algo_radius == 'ak4' and _PU_method == "CHS":
            _do_PUJetID = True

        # create jet sequence with jet toolbox
        jetToolbox(
            process,
            _jet_algo_radius,
            _seq_name,
            'out',
            miniAOD=True,
            runOnMC=not options.isData,
            JETCorrPayload="None",  # do *not* correct jets with JEC
            PUMethod=_PU_method,  # PU subtraction method
            addPruning=False,
            addSoftDrop=False,
            addPrunedSubjets=False,
            addNsub=False,
            maxTau=6,
            addTrimming=False,
            addFiltering=False,
            addNsubSubjets=False,
            addPUJetID=_do_PUJetID)

        # add jet sequence to process
        process.path *= getattr(process, _seq_name)

        # add PUJetID calculator and evaluator to process
        if _do_PUJetID:
            process.path *= getattr(
Пример #36
0
process.source = cms.Source(
    "PoolSource",
    fileNames=cms.untracked.vstring(
        "/store/mc/RunIISummer16MiniAODv2/SUSYZHToAA_AATo4B_M-50_TuneCUETP8M1_13TeV_madgraph_pythia8/MINIAODSIM/PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/00000/BEEEFB4E-37C8-E811-A98B-001E6757E05C.root"
    ),
    inputCommands=cms.untracked.vstring(
        'keep *', 'drop *_ctppsLocalTrackLiteProducer_*_RECO'
        #CTPPSPixelClusteredmDetSetVector_ctppsPixelClusters_*_RECO'
    ))

process.TFileService = cms.Service("TFileService",
                                   fileName=cms.string("analysis.root"))

jetToolbox(process,
           'ak8',
           'jetSequence',
           'out',
           PUMethod='CHS',
           addPruning=True,
           addSoftDrop=True,
           addNsubSubjets=True,
           addSoftDropSubjets=True,
           addNsub=True,
           Cut="pt>20")

process.dump = cms.EDAnalyzer("EventContentAnalyzer")

process.p = cms.Path(process.fullPatMetSequence *
                     process.mainNtuplizer)  #* process.dump )
Пример #37
0
from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

# from RecoJets.JetProducers.jetToolbox_cff import jetToolbox
process.myJetSequence = cms.Sequence()

#                          the new sequence ,  temporary output file
jetToolbox(
    process,
    "ak4",
    "myJetSequence",
    "outTemp",
    JETCorrPayload="AK4PFchs",
    JETCorrLevels=["L1FastJet", "L2Relative", "L3Absolute"],
    miniAOD=True,
    addNsub=True,
    # addPUJetID=False,
    addPUJetID=True,
    addPruning=False,
    addTrimming=False,
    addCMSTopTagger=True,
    addHEPTopTagger=True,
    addMassDrop=True,
    addSoftDrop=False,  # addSoftDrop=True
)  # , addPrunedSubjets=True )


preSeq += process.myJetSequence

# no need to recorrect the jets, since they are reclustered on the fly
# the name patJetsAK4PFCHS found looking at the "processDump.py" and looking for patjetproducer
#   edmConfigDump stepB.py &> processDump.py
def ak8JetSequences(process, isRealData):
    #https://twiki.cern.ch/twiki/bin/view/CMS/Hbbtagging#V4_training
    #     bTagDiscriminators = ['pfMassIndependentDeepDoubleBvLJetTags:probHbb'] #https://twiki.cern.ch/twiki/bin/view/CMS/Hbbtagging
    bTagDiscriminators = [
        'pfMassIndependentDeepDoubleBvLJetTags:probHbb',
        'pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHbbvsQCD',
        'pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:HbbvsQCD',
        'pfDeepBoostedDiscriminatorsJetTags:HbbvsQCD'
    ]  #https://twiki.cern.ch/twiki/bin/view/CMS/Hbbtagging
    subjetBTagDiscriminators = [
        'pfDeepCSVJetTags:probb', 'pfDeepCSVJetTags:probbb'
    ]
    JETCorrLevels = ['L1FastJet', 'L2Relative', 'L3Absolute']
    if isRealData: JETCorrLevels.append('L2L3Residual')

    jetToolbox(process,
               'ak8',
               'jetSequence',
               'noOutput',
               PUMethod='Puppi',
               postFix='wLep',
               JETCorrPayload='AK8PFPuppi',
               JETCorrLevels=JETCorrLevels,
               runOnMC=(not isRealData),
               addSoftDrop=True,
               addSoftDropSubjets=True,
               addNsub=True,
               subJETCorrPayload='AK4PFPuppi',
               subJETCorrLevels=JETCorrLevels,
               bTagDiscriminators=['None'],
               subjetBTagDiscriminators=subjetBTagDiscriminators)

    jetToolbox(process,
               'ak8',
               'jetSequence',
               'noOutput',
               PUMethod='Puppi',
               postFix='NoLep',
               newPFCollection=True,
               nameNewPFCollection='leptonLesspuppi',
               JETCorrPayload='AK8PFPuppi',
               JETCorrLevels=JETCorrLevels,
               runOnMC=(not isRealData),
               addSoftDrop=True,
               addSoftDropSubjets=True,
               addNsub=True,
               subJETCorrPayload='AK4PFPuppi',
               subJETCorrLevels=JETCorrLevels,
               bTagDiscriminators=['None'],
               subjetBTagDiscriminators=['None'])

    #because there was a built in 100 GeV cut????
    process.ak8PFJetsPuppiwLepSoftDrop.jetPtMin = 10
    process.ak8PFJetsPuppiNoLepSoftDrop.jetPtMin = 10

    #add in alternative SDs
    _addProcessAndTask(
        process, "ak8PFJetsPuppiwLepSoftDropZ0p15",
        process.ak8PFJetsPuppiwLepSoftDrop.clone(zcut=cms.double(0.15)))
    _addProcessAndTask(
        process, "ak8PFJetsPuppiwLepSoftDropMassZ0p15",
        process.ak8PFJetsPuppiwLepSoftDropMass.clone(
            matched=cms.InputTag("ak8PFJetsPuppiwLepSoftDropZ0p15")))
    process.patJetsAK8PFPuppiwLep.userData.userFloats.src += [
        'ak8PFJetsPuppiwLepSoftDropMassZ0p15'
    ]
    _addProcessAndTask(
        process, "ak8PFJetsPuppiwLepSoftDropZ0p05",
        process.ak8PFJetsPuppiwLepSoftDrop.clone(zcut=cms.double(0.05)))
    _addProcessAndTask(
        process, "ak8PFJetsPuppiwLepSoftDropMassZ0p05",
        process.ak8PFJetsPuppiwLepSoftDropMass.clone(
            matched=cms.InputTag("ak8PFJetsPuppiwLepSoftDropZ0p05")))
    process.patJetsAK8PFPuppiwLep.userData.userFloats.src += [
        'ak8PFJetsPuppiwLepSoftDropMassZ0p05'
    ]
    _addProcessAndTask(
        process, "ak8PFJetsPuppiNoLepSoftDropZ0p15",
        process.ak8PFJetsPuppiNoLepSoftDrop.clone(zcut=cms.double(0.15)))
    _addProcessAndTask(
        process, "ak8PFJetsPuppiNoLepSoftDropMassZ0p15",
        process.ak8PFJetsPuppiNoLepSoftDropMass.clone(
            matched=cms.InputTag("ak8PFJetsPuppiNoLepSoftDropZ0p15")))
    process.patJetsAK8PFPuppiNoLep.userData.userFloats.src += [
        'ak8PFJetsPuppiNoLepSoftDropMassZ0p15'
    ]
    _addProcessAndTask(
        process, "ak8PFJetsPuppiNoLepSoftDropZ0p05",
        process.ak8PFJetsPuppiNoLepSoftDrop.clone(zcut=cms.double(0.05)))
    _addProcessAndTask(
        process, "ak8PFJetsPuppiNoLepSoftDropMassZ0p05",
        process.ak8PFJetsPuppiNoLepSoftDropMass.clone(
            matched=cms.InputTag("ak8PFJetsPuppiNoLepSoftDropZ0p05")))
    process.patJetsAK8PFPuppiNoLep.userData.userFloats.src += [
        'ak8PFJetsPuppiNoLepSoftDropMassZ0p05'
    ]

    #https://twiki.cern.ch/twiki/bin/viewauth/CMS/DeepAKXTagging#CMSSW_recipes
    from RecoBTag.MXNet.pfDeepBoostedJet_cff import pfDeepBoostedJetTags, pfMassDecorrelatedDeepBoostedJetTags
    from RecoBTag.MXNet.Parameters.V02.pfDeepBoostedJetPreprocessParams_cfi import pfDeepBoostedJetPreprocessParams as pfDeepBoostedJetPreprocessParamsV02
    from RecoBTag.MXNet.Parameters.V02.pfMassDecorrelatedDeepBoostedJetPreprocessParams_cfi import pfMassDecorrelatedDeepBoostedJetPreprocessParams as pfMassDecorrelatedDeepBoostedJetPreprocessParamsV02
    pfDeepBoostedJetTags.preprocessParams = pfDeepBoostedJetPreprocessParamsV02
    pfDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-symbol.json'
    pfDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-0000.params'
    pfMassDecorrelatedDeepBoostedJetTags.preprocessParams = pfMassDecorrelatedDeepBoostedJetPreprocessParamsV02
    pfMassDecorrelatedDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-symbol.json'
    pfMassDecorrelatedDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-0000.params'

    from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
    from RecoBTag.MXNet.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsAll
    updateJetCollection(
        process,
        jetSource=cms.InputTag('packedPatJetsAK8PFPuppiwLepSoftDrop'),
        pvSource=cms.InputTag('offlineSlimmedPrimaryVertices'),
        svSource=cms.InputTag('slimmedSecondaryVertices'),
        rParam=0.8,
        jetCorrections=('AK8PFPuppi', cms.vstring(JETCorrLevels), 'None'),
        btagDiscriminators=bTagDiscriminators,
        postfix=
        'AK8wLepWithPuppiDaughters',  # !!! postfix must contain "WithPuppiDaughter" !!!
        printWarning=False)
    updateJetCollection(
        process,
        jetSource=cms.InputTag('packedPatJetsAK8PFPuppiNoLepSoftDrop'),
        pvSource=cms.InputTag('offlineSlimmedPrimaryVertices'),
        svSource=cms.InputTag('slimmedSecondaryVertices'),
        rParam=0.8,
        jetCorrections=('AK8PFPuppi', cms.vstring(JETCorrLevels), 'None'),
        btagDiscriminators=[
            'pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD'
        ],
        postfix=
        'AK8NoLepWithPuppiDaughters',  # !!! postfix must contain "WithPuppiDaughter" !!!
        printWarning=False)

    from AnalysisTreeMaker.Utilities.leptonInJetProducer_cff import addJetVars
    addJetVars(process, process.jetSequence, "ak8", "Puppi", "wLep")
    process.packedPatJetsAK8PFPuppiwLepSoftDroplepInJetMVAValueMap.src = cms.InputTag(
        'selectedUpdatedPatJetsAK8wLepWithPuppiDaughters')
Пример #39
0
#from RecoJets.JetProducers.jetToolbox_cff import jetToolbox
process.myJetSequence = cms.Sequence()

JEC = ['L1FastJet','L2Relative','L3Absolute']
if not isMC:
    JEC += ['L2L3Residual']

jetToolbox( process, 'ak4', 'myJetSequence', 'outTemp',    
             JETCorrPayload='AK4PFchs', JETCorrLevels = JEC, 
             miniAOD=True,
             runOnMC=isMC,
             addNsub=True,  # was True      
             #addPUJetID=False,
             #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags','pfCombinedMVAV2BJetTags'], 
             #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags'], 
             #bTagDiscriminators = ['pfTrackCountingHighEffBJetTags','pfTrackCountingHighPurBJetTags','pfJetProbabilityBJetTags','pfJetBProbabilityBJetTags','pfSimpleSecondaryVertexHighEffBJetTags','pfSimpleSecondaryVertexHighPurBJetTags','pfCombinedSecondaryVertexV2BJetTags','pfCombinedInclusiveSecondaryVertexV2BJetTags'],              
             addPUJetID=True,
             addPruning=False,
             addTrimming=False,
             addCMSTopTagger=True,
             addHEPTopTagger=True,
             addMassDrop=True,
             addSoftDrop=False, 
             addQGTagger=True,  # addSoftDrop=True
             ) #, addPrunedSubjets=True )


preSeq += process.myJetSequence

# no need to recorrect the jets, since they are reclustered on the fly
# the name patJetsAK4PFCHS found looking at the "processDump.py" and looking for patjetproducer
#   edmConfigDump stepB.py &> processDump.py
Пример #40
0
#####################
# MET Significance  #
#####################
process.load("RecoMET/METProducers.METSignificance_cfi")
process.load("RecoMET/METProducers.METSignificanceParams_cfi")
from RecoMET.METProducers.testInputFiles_cff import recoMETtestInputFiles


#######################
# AK10 collection     #
#######################
if options.runAK10:
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
    jetToolbox( process, 'ak10', 'ak10JetSubs', 'out', runOnMC=(not options.isData),
                addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True,
                JETCorrPayload='AK3Pachs', subJETCorrPayload='AK10PFchs', JETCorrLevels=['L1FastJet', 'L2Relative', 'L3Absolute'],
                addNsub=True, maxTau=6, addTrimming=True, addFiltering=True,
                addEnergyCorrFunc=True, maxECF=5 )    
                
#######################
# Quark gluon tagging #
#######################
if options.runQG:
    qgDatabaseVersion = 'v2b' # check https://twiki.cern.ch/twiki/bin/viewauth/CMS/QGDataBaseVersion

    from CondCore.DBCommon.CondDBSetup_cfi import *
    QGPoolDBESSource = cms.ESSource("PoolDBESSource",
          CondDBSetup,
          toGet = cms.VPSet(),
          connect = cms.string('frontier://FrontierProd/CMS_COND_PAT_000'),
    )
# vector<reco::GenJet>                  "selectedPatJetsAK8PFCHS"   "genJets"        "Ana"
# vector<reco::PFCandidate>             "selectedPatJetsAK8PFCHS"   "pfCandidates"   "Ana"

jetToolbox(
    process,
    'ak8',
    'ak8JetSubs',
    'out',
    runOnMC=isMC,
    PUMethod='CHS',
    # updateCollection='slimmedJetsAK8', # can't run groomers on this yet
    # JETCorrPayload='AK8PFchs', # needed for update collection
    JETCorrLevels=['None'],
    subJETCorrLevels=['None'],
    addSoftDropSubjets=True,
    addTrimming=True,
    rFiltTrim=0.2,
    ptFrac=0.05,
    addPruning=True,
    addFiltering=True,
    addSoftDrop=True,
    addNsub=True,
    bTagInfos=listBTagInfos,
    bTagDiscriminators=listBtagDiscriminatorsAK8,
    addCMSTopTagger=False,
    Cut=ak8Cut,
    addNsubSubjets=True,
    subjetMaxTau=3)

# |---- jetToolBox: JETTOOLBOX RUNNING ON MiniAOD FOR AK8 JETS USING Puppi
# |---- jetToolBox: Applying this corrections: ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None')
Пример #42
0
def addJetToolboxSequences(process,
                           isData,
                           jet_algorithm_specs=('ak4', 'ak8'),
                           pu_subtraction_methods=('', 'CHS'),
                           min_jet_pt=None,
                           do_pu_jet_id=False):

    # jet collections obtained with 'JetToolbox' CMSSW module:
    # https://twiki.cern.ch/twiki/bin/viewauth/CMS/JetToolbox
    from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox

    _jet_collection_names = []

    # go through all combinations of jet radius and PU subtraction algorithms
    for _jet_algo_radius in jet_algorithm_specs:
        for _PU_method in pu_subtraction_methods:
            # -- first, make reco::PFJets using the jet toolbox
            jetToolbox(
                process,
                _jet_algo_radius,
                "jetToolbox{}{}".format(_jet_algo_radius, _PU_method),
                'out',
                dataTier='miniAOD',
                runOnMC=not isData,
                PUMethod=_PU_method,  # PU subtraction method
                #bTagDiscriminators=[],  # do not skim btag discriminators
                addPruning=False,
                addSoftDrop=False,
                addPrunedSubjets=False,
                addNsub=False,
                maxTau=6,
                addTrimming=False,
                addFiltering=False,
                addNsubSubjets=False,
                addPUJetID=do_pu_jet_id,
                verbosity=2)

            # -- next, configure pT threshold for reco::PFJets
            if min_jet_pt is not None:
                _reco_pfjet_module = getattr(
                    process, "{}PFJets{}".format(_jet_algo_radius, _PU_method))
                _reco_pfjet_module.jetPtMin = min_jet_pt  # doesn't seem to work

            # # add PUJetID calculator and evaluator to process
            # if _do_PUJetID:
            #     process.path *= getattr(process, "{}PF{}pileupJetIdCalculator".format(_jet_algo_radius.upper(), _PU_method))
            #     process.path *= getattr(process, "{}PF{}pileupJetIdEvaluator".format(_jet_algo_radius.upper(), _PU_method))

            # -- then, make pat::Jets
            patJetCollectionName = "{}PF{}".format(_jet_algo_radius.upper(),
                                                   _PU_method)
            assert not hasattr(process, patJetCollectionName)

            _seq_data = cms.Sequence()
            for _tag in JET_TAG_LIST_FOR_DATA:
                try:
                    _seq_data *= getattr(
                        process, "{}{}".format(_tag, patJetCollectionName))
                except AttributeError as _err:
                    print(
                        "[karmaJetToolbox] WARNING: Not adding jet tag '{}' to '{}' jets due to error: {}"
                        .format(_tag, patJetCollectionName, _err))

            if not isData:
                _seq_mc = cms.Sequence(
                    getattr(process, "patJetPartons") * getattr(
                        process, "patJetFlavourAssociation{}".format(
                            patJetCollectionName)) *
                    getattr(process,
                            "patJetPartonMatch{}".format(patJetCollectionName))
                    * getattr(
                        process,
                        "patJetGenJetMatch{}".format(patJetCollectionName)))
                patSequence = cms.Sequence(
                    _seq_data * _seq_mc * getattr(
                        process, "patJets{}".format(patJetCollectionName)) *
                    getattr(process,
                            "selectedPatJets{}".format(patJetCollectionName)))
            else:
                patSequence = cms.Sequence(
                    _seq_data * getattr(
                        process, "patJets{}".format(patJetCollectionName)) *
                    getattr(process,
                            "selectedPatJets{}".format(patJetCollectionName)))
            if min_jet_pt is not None:
                _pat_jet_module = getattr(
                    process, "selectedPatJets{}".format(patJetCollectionName))
                _pat_jet_module.cut = "pt()>{:f}".format(min_jet_pt)

            print "[karmaJetToolbox] Add pat::Jet collection '{}'".format(
                patJetCollectionName)
            _jet_collection_names.append(
                "selectedPatJets{}".format(patJetCollectionName))

    # cleanup unused modules added by jet toolbox
    del process.out  # jettoolbox test rootfile

    # associate all tasks on the endpath with the path and remove the endpath
    for _task in process.endpath._tasks:
        process.paths['path'].associate(_task)
    del process.endpath

    return _jet_collection_names
Пример #43
0
listBtagDiscriminators = [ 'pfTrackCountingHighEffBJetTags',
		'pfTrackCountingHighPurBJetTags',
		'pfJetProbabilityBJetTags',
		'pfJetBProbabilityBJetTags',
		'pfSimpleSecondaryVertexHighEffBJetTags',
		'pfSimpleSecondaryVertexHighPurBJetTags',
		'pfCombinedSecondaryVertexV2BJetTags',
		'pfCombinedInclusiveSecondaryVertexV2BJetTags',
		'pfBoostedDoubleSecondaryVertexAK8BJetTags'
		]

ak4Cut='pt > 25 && abs(eta) < 5.'
ak8Cut='pt > 100 && abs(eta) < 5.'
if "MC" in options.DataProcessing: 
	jetToolbox( process, 'ak4', 'analysisPath', 'edmNtuplesOut', addQGTagger=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak4Cut )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', addSoftDropSubjets=True, addTrimming=True, rFiltTrim=0.1, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', addCMSTopTagger=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', PUMethod='Puppi', addSoftDropSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )
else:
	jetToolbox( process, 'ak4', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addQGTagger=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak4Cut )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addSoftDropSubjets=True, addTrimming=True, rFiltTrim=0.1, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addCMSTopTagger=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, PUMethod='Puppi', addSoftDropSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True, bTagDiscriminators=listBtagDiscriminators, Cut=ak8Cut )

jLabelAK8	= 'selectedPatJetsAK8PFCHS'
jLabelAK8Puppi 	= 'selectedPatJetsAK8PFPuppi'
jLabel		= 'selectedPatJetsAK4PFCHS'
jLabelNoHF	= 'selectedPatJetsAK4PFCHS'

Пример #44
0
process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff")
process.load("Configuration.EventContent.EventContent_cff")
process.load('Configuration.StandardSequences.GeometryDB_cff')
process.load('Configuration.StandardSequences.MagneticField_38T_cff')
process.load('Configuration.StandardSequences.Services_cff')
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff')
process.GlobalTag.globaltag = options.globalTag 


from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets

if ( options.isData ):
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, PUMethod='Puppi', addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, PUMethod='SK', addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', runOnMC=False, addCMSTopTagger=True )
else:
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', PUMethod='Puppi', addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', PUMethod='SK', addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ak8', 'analysisPath', 'edmNtuplesOut', addSoftDropSubjets=True, addPrunedSubjets=True, addTrimming=True, addPruning=True, addFiltering=True, addSoftDrop=True, addNsub=True )
	jetToolbox( process, 'ca8', 'analysisPath', 'edmNtuplesOut', addCMSTopTagger=True )
jLabelAK8 = 'selectedPatJetsAK8PFCHS'

### Selected leptons and jets
process.skimmedPatMuons = cms.EDFilter(
    "PATMuonSelector",
    src = cms.InputTag(muLabel),
    cut = cms.string("pt > 10 && abs(eta) < 2.4")
Пример #45
0
#### THERE ARE JUST TO TEST SEVERAL FEATURES OF THE JETTOOLBOX.
#######################################################################

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='Puppi', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True , JETCorrPayload='AK8PFchs', subJETCorrPayload='AK4PFchs', subJETCorrLevels=['L2Relative', 'L3Absoulte'] ) #, Cut='pt > 100 && abs(eta) < 2.4' )
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='SK', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True, JETCorrLevels=['L1FastJet', 'L2Relative'] )
#jetToolbox( process, 'ak8', 'ak8JetSubs', 'out', PUMethod='CS', addPruning=True, addSoftDrop=True , addPrunedSubjets=True, addSoftDropSubjets=True, addNsub=True, maxTau=6, addTrimming=True, addFiltering=True )
jetToolbox(process,
           'ak8',
           'ak8JetSubs',
           'out',
           addPruning=True,
           addSoftDrop=True,
           addPrunedSubjets=True,
           addSoftDropSubjets=True,
           addNsub=True,
           maxTau=6,
           addTrimming=True,
           addFiltering=True,
           JETCorrPayload='AK3Pachs',
           subJETCorrPayload='AK8PFchs',
           JETCorrLevels=['L1FastJet', 'L2Relative'],
           addEnergyCorrFunc=True,
           maxECF=5)
#
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='Puppi', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True )
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='SK', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrPayload='AK8PF' )
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', PUMethod='CS', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrLevels=['L2Relative'] )
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True )
#jetToolbox( process, 'ca8', 'ca8JetSubs', 'out', addCMSTopTagger=True, addMassDrop=True, addSoftDrop=True, JETCorrPayload='AK8PFchs', JETCorrLevels=['L3Absolute'] )
#jetToolbox( process, 'ca12', 'ca12JetSubs', 'out', PUMethod='Puppi', addHEPTopTagger=True, addSoftDrop=True )
Пример #46
0
def jettoolbox_settings( process , runMC ):
    process.load('CommonTools/PileupAlgos/Puppi_cff')
    process.puppi.candName = cms.InputTag('packedPFCandidates')
    process.puppi.vertexName = cms.InputTag('offlineSlimmedPrimaryVertices')
    process.puppi.useExistingWeights = cms.bool(True)

    jetToolbox( process, 'ak4', 'analysisPath', 'edmOut',
        runOnMC            = runMC,
        addQGTagger        = True,
        bTagInfos          = listBTagInfos,
        bTagDiscriminators = listBtagDiscriminators,
        Cut                = ak4Cut )

    #jetToolbox( process, 'ak4', 'analysisPath', 'edmOut',
    #    runOnMC=runMC,
    #    PUMethod='Puppi',
    #    newPFCollection=True,
    #    nameNewPFCollection='puppi',
    #    bTagInfos=listBTagInfos,
    #    bTagDiscriminators=listBtagDiscriminators,
    #    Cut=ak4Cut )

    jetToolbox( process, 'ak8', 'analysisPath', 'edmOut',
        runOnMC            = runMC,
        addSoftDropSubjets = True,
        addTrimming        = True,
        rFiltTrim          = 0.1,
        addPruning         = True,
        addFiltering       = True,
        addSoftDrop        = True,
        addNsub            = True,
        bTagInfos          = listBTagInfos,
        bTagDiscriminators = listBtagDiscriminators,
        addCMSTopTagger    = True,
        Cut                = ak8Cut ,
        addNsubSubjets     = True,
        subjetMaxTau       = 4 )

    #jetToolbox( process, 'ak8', 'analysisPath', 'edmOut',
    #    runOnMC=runMC,
    #    PUMethod='Puppi',
    #    newPFCollection=True,
    #    nameNewPFCollection='puppi',
    #    addSoftDropSubjets=True,
    #    addTrimming=True,
    #    addPruning=True,
    #    addFiltering=True,
    #    addSoftDrop=True,
    #    addNsub=True,
    #    bTagInfos=listBTagInfos,
    #    bTagDiscriminators=listBtagDiscriminators,
    #    addCMSTopTagger=True,
    #    Cut=ak8Cut,
    #    addNsubSubjets=True,
    #    subjetMaxTau=4
    #    )

    jetToolbox( process, 'ca8', 'analysisPath', 'edmOut',
        runOnMC            = runMC ,
        addMassDrop        = True,
        addCMSTopTagger    = True,
        GetJetMCFlavour    = True,
        GetSubjetMCFlavour = True,
        bTagDiscriminators = listBtagDiscriminators ,
        Cut                = ''
    )
Пример #47
0

option = 'RECO'

process.load("ExoDiBosonResonances.EDBRCommon.goodMuons_cff")
process.load("ExoDiBosonResonances.EDBRCommon.goodElectrons_cff")
process.load("ExoDiBosonResonances.EDBRCommon.goodJets_cff")
process.load("ExoDiBosonResonances.EDBRCommon.leptonicW_cff")
process.load("ExoDiBosonResonances.EDBRCommon.hadronicW_cff")
process.load("ExoDiBosonResonances.EDBRCommon.goodPuppi_cff")

from JMEAnalysis.JetToolbox.jetToolbox_cff import jetToolbox
JETCorrLevels = ['L2Relative', 'L3Absolute', 'L2L3Residual']
jetToolbox(process, 'ak8', 'dummySeqAK8', 'noOutput',
           PUMethod='Puppi', JETCorrPayload='AK8PFPuppi', JETCorrLevels=JETCorrLevels,
           Cut='pt > 170.0 && abs(rapidity()) < 2.4',
           dataTier='miniAOD', runOnMC=runOnMC,
           addSoftDrop=True, addNsub=True,addSoftDropSubjets=True, subJETCorrPayload='AK4PFPuppi', subJETCorrLevels=JETCorrLevels   # must add soft-drop
)

from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
from RecoBTag.MXNet.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsProbs,_pfDeepBoostedJetTagsMetaDiscrs,_pfMassDecorrelatedDeepBoostedJetTagsProbs,_pfMassDecorrelatedDeepBoostedJetTagsMetaDiscrs
#use the v2 training :  https://twiki.cern.ch/twiki/bin/viewauth/CMS/DeepAKXTagging#Additional_instructions_to_run_D
from RecoBTag.MXNet.pfDeepBoostedJet_cff import pfDeepBoostedJetTags, pfMassDecorrelatedDeepBoostedJetTags
from RecoBTag.MXNet.Parameters.V02.pfDeepBoostedJetPreprocessParams_cfi import pfDeepBoostedJetPreprocessParams as pfDeepBoostedJetPreprocessParamsV02
from RecoBTag.MXNet.Parameters.V02.pfMassDecorrelatedDeepBoostedJetPreprocessParams_cfi import pfMassDecorrelatedDeepBoostedJetPreprocessParams as pfMassDecorrelatedDeepBoostedJetPreprocessParamsV02
pfDeepBoostedJetTags.preprocessParams = pfDeepBoostedJetPreprocessParamsV02
pfDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-symbol.json'
pfDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/full/resnet-0000.params'
pfMassDecorrelatedDeepBoostedJetTags.preprocessParams = pfMassDecorrelatedDeepBoostedJetPreprocessParamsV02
pfMassDecorrelatedDeepBoostedJetTags.model_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-symbol.json'
pfMassDecorrelatedDeepBoostedJetTags.param_path = 'RecoBTag/Combined/data/DeepBoostedJet/V02/decorrelated/resnet-0000.params'
Пример #48
0
    'pfTrackCountingHighEffBJetTags', 'pfTrackCountingHighPurBJetTags',
    'pfJetProbabilityBJetTags', 'pfJetBProbabilityBJetTags',
    'pfSimpleSecondaryVertexHighEffBJetTags',
    'pfSimpleSecondaryVertexHighPurBJetTags',
    'pfCombinedSecondaryVertexV2BJetTags',
    'pfCombinedInclusiveSecondaryVertexV2BJetTags',
    'pfBoostedDoubleSecondaryVertexAK8BJetTags'
]

ak4Cut = 'pt > 25 && abs(eta) < 5.'
ak8Cut = 'pt > 100 && abs(eta) < 5.'
if "MC" in options.DataProcessing:
    jetToolbox(process,
               'ak4',
               'analysisPath',
               'edmNtuplesOut',
               addQGTagger=True,
               bTagDiscriminators=listBtagDiscriminators,
               Cut=ak4Cut)
    jetToolbox(process,
               'ak8',
               'analysisPath',
               'edmNtuplesOut',
               addSoftDropSubjets=True,
               addTrimming=True,
               rFiltTrim=0.1,
               addPruning=True,
               addFiltering=True,
               addSoftDrop=True,
               addNsub=True,
               bTagDiscriminators=listBtagDiscriminators,