Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Configuration/PyReleaseValidation/python/relval_2017.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@
numWFIB = [10001.0,10002.0,10003.0,10004.0,10005.0,10006.0,10007.0,10008.0,10009.0,10059.0,10071.0,
10042.0,10024.0,10025.0,10026.0,10023.0,10224.0,10225.0,10424.0,
10024.1,10024.2,10024.3,10024.4,10024.5,
#10224.15,
10224.15,
10801.0,10802.0,10803.0,10804.0,10805.0,10806.0,10807.0,10808.0,10809.0,10859.0,10871.0,
10842.0,10824.0,10825.0,10826.0,10823.0,11024.0,11025.0,11224.0,
10824.1,10824.5,
10824.6,11024.6,11224.6,
10824.8,
#11024.15,
11024.15,
10842.501,10842.505,
10824.501,10824.505,
10824.511,
Expand Down
2 changes: 1 addition & 1 deletion Configuration/PyReleaseValidation/python/relval_pileup.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
workflows[25202]=['',['TTbar_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25','NANOUP15_PU25']]
workflows[25202.1]=['',['TTbar_13','DIGIUP15APVSimu_PU25','RECOUP15_PU25','HARVESTUP15_PU25']]
workflows[25202.2]=['',['TTbar_13','DIGIUP15APVSimu_PU25','RECOUP15_PU25_HIPM','HARVESTUP15_PU25']]
#workflows[25202.15]=['',['TTbar_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25','NANOUP15MC_PU25_JME']] #JME NanoAOD, disable until Nano-Run3 prompt dev is done
workflows[25202.15]=['',['TTbar_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25','NANOUP15MC_PU25_JME']] #JME NanoAOD
workflows[25203]=['',['H125GGgluonfusion_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25','NANOUP15_PU25']]
workflows[25204]=['',['QQH1352T_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25']]
workflows[25205]=['',['ZTT_13','DIGIUP15_PU25','RECOUP15_PU25','HARVESTUP15_PU25','NANOUP15_PU25']]
Expand Down
82 changes: 39 additions & 43 deletions PhysicsTools/NanoAOD/python/custom_jme_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@
#
#
#******************************************
def AddJetID(proc, jetName="", jetSrc="", jetTableName="", jetSequenceName=""):
def AddJetID(proc, jetName="", jetSrc="", jetTableName="", jetTaskName=""):
"""
Setup modules to calculate PF jet ID
"""
Expand Down Expand Up @@ -273,17 +273,17 @@ def AddJetID(proc, jetName="", jetSrc="", jetTableName="", jetSequenceName=""):
modifier.toModify(getattr(proc, jetTableName).variables, jetId = Var("userInt('tightIdLepVeto')*4+userInt('tightId')*2+userInt('looseId')",int, doc="Jet ID flags bit1 is loose, bit2 is tight, bit3 is tightLepVeto"))


getattr(proc,jetSequenceName).insert(getattr(proc,jetSequenceName).index(getattr(proc, jetSrc))+1, getattr(proc, tightJetId))
getattr(proc,jetSequenceName).insert(getattr(proc,jetSequenceName).index(getattr(proc, tightJetId))+1, getattr(proc, tightJetIdLepVeto))
getattr(proc,jetTaskName).add(getattr(proc, tightJetId))
getattr(proc,jetTaskName).add(getattr(proc, tightJetIdLepVeto))

setattr(proc,"_"+jetSequenceName+"_2016", getattr(proc,jetSequenceName).copy())
getattr(proc,"_"+jetSequenceName+"_2016").insert(getattr(proc, "_"+jetSequenceName+"_2016").index(getattr(proc, tightJetId)), getattr(proc, looseJetId))
setattr(proc,"_"+jetTaskName+"_2016", getattr(proc,jetTaskName).copy())
getattr(proc,"_"+jetTaskName+"_2016").add(getattr(proc, looseJetId))
for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
modifier.toReplaceWith(getattr(proc,jetSequenceName), getattr(proc, "_"+jetSequenceName+"_2016"))
modifier.toReplaceWith(getattr(proc,jetTaskName), getattr(proc, "_"+jetTaskName+"_2016"))

return proc

def AddPileUpJetIDVars(proc, jetName="", jetSrc="", jetTableName="", jetSequenceName=""):
def AddPileUpJetIDVars(proc, jetName="", jetSrc="", jetTableName="", jetTaskName=""):
"""
Setup modules to calculate pileup jet ID input variables for PF jet
"""
Expand All @@ -300,7 +300,7 @@ def AddPileUpJetIDVars(proc, jetName="", jetSrc="", jetTableName="", jetSequence
usePuppi = True if "Puppi" in jetName else False
)
)
getattr(proc,jetSequenceName).insert(getattr(proc,jetSequenceName).index(getattr(proc, jetSrc))+1, getattr(proc, puJetIdVarsCalculator))
getattr(proc,jetTaskName).add(getattr(proc, puJetIdVarsCalculator))

#
# Get the variables
Expand All @@ -311,7 +311,7 @@ def AddPileUpJetIDVars(proc, jetName="", jetSrc="", jetTableName="", jetSequence
srcPileupJetId = cms.InputTag(puJetIdVarsCalculator)
)
)
getattr(proc,jetSequenceName).insert(getattr(proc,jetSequenceName).index(getattr(proc, puJetIdVarsCalculator))+1, getattr(proc, puJetIDVar))
getattr(proc,jetTaskName).add(getattr(proc, puJetIDVar))

#
# Save variables as userFloats and userInts for each jet
Expand Down Expand Up @@ -350,7 +350,7 @@ def AddPileUpJetIDVars(proc, jetName="", jetSrc="", jetTableName="", jetSequence

return proc

def AddQGLTaggerVars(proc, jetName="", jetSrc="", jetTableName="", jetSequenceName="", calculateQGLVars=False):
def AddQGLTaggerVars(proc, jetName="", jetSrc="", jetTableName="", jetTaskName="", calculateQGLVars=False):
"""
Schedule the QGTagger module to calculate input variables to the QG likelihood
"""
Expand Down Expand Up @@ -379,7 +379,7 @@ def AddQGLTaggerVars(proc, jetName="", jetSrc="", jetTableName="", jetSequenceNa
getattr(proc,jetTableName).variables.qgl_mult = QGLVARS.qgl_mult

if calculateQGLVars:
getattr(proc,jetSequenceName).insert(getattr(proc,jetSequenceName).index(getattr(proc, jetSrc))+1, getattr(proc, QGLTagger))
getattr(proc,jetTaskName).add(getattr(proc, QGLTagger))

return proc

Expand Down Expand Up @@ -544,43 +544,39 @@ def SavePatJets(proc, jetName, payload, patJetFinalColl, jetTablePrefix, jetTabl
)

#
# Define the jet modules sequence first
# Define the jet modules Task first
#
jetSequenceName = "jet{}Sequence".format(jetName)
setattr(proc, jetSequenceName, cms.Sequence(
getattr(proc,jetCorrFactors)+
getattr(proc,srcJets)+
getattr(proc,srcJetsWithUserData)+
getattr(proc,finalJetsForTable)
)
jetTaskName = "jet{}Task".format(jetName)
setattr(proc, jetTaskName, cms.Task(
getattr(proc,jetCorrFactors),
getattr(proc,srcJets),
getattr(proc,srcJetsWithUserData),
getattr(proc,finalJetsForTable)
)
)
proc.jetTask.add(getattr(proc,jetTaskName))

#
# Define the jet table sequences
# Define the jet tables Task
#
jetTableSequenceName = "jet{}TablesSequence".format(jetName)
setattr(proc, jetTableSequenceName, cms.Sequence(getattr(proc,jetTable)))

jetTableSequenceMCName = "jet{}MCTablesSequence".format(jetName)
setattr(proc, jetTableSequenceMCName, cms.Sequence(getattr(proc,jetMCTable)))
jetTableTaskName = "jet{}TablesTask".format(jetName)
setattr(proc, jetTableTaskName, cms.Task(getattr(proc,jetTable)))
proc.jetTablesTask.add(getattr(proc,jetTableTaskName))

jetTableTaskMCName = "jet{}MCTablesTask".format(jetName)
setattr(proc, jetTableTaskMCName, cms.Task(getattr(proc,jetMCTable)))
if runOnMC:
proc.nanoSequenceMC += getattr(proc,jetSequenceName)
proc.nanoSequenceMC += getattr(proc,jetTableSequenceName)
proc.nanoSequenceMC += getattr(proc,jetTableSequenceMCName)
else:
proc.nanoSequence += getattr(proc,jetSequenceName)
proc.nanoSequence += getattr(proc,jetTableSequenceName)
proc.jetMCTask.add(getattr(proc,jetTableTaskMCName))

#
# Schedule plugins to calculate Jet ID, PileUp Jet ID input variables, and Quark-Gluon Likehood input variables.
#
if doPF:
proc = AddJetID(proc, jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetSequenceName=jetSequenceName)
proc = AddJetID(proc, jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetTaskName=jetTaskName)
if doPUIDVar:
proc = AddPileUpJetIDVars(proc, jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetSequenceName=jetSequenceName)
proc = AddPileUpJetIDVars(proc, jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetTaskName=jetTaskName)
if doQGL:
proc = AddQGLTaggerVars(proc,jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetSequenceName=jetSequenceName, calculateQGLVars=True)
proc = AddQGLTaggerVars(proc,jetName=jetName, jetSrc=srcJets, jetTableName=jetTable, jetTaskName=jetTaskName, calculateQGLVars=True)

#
# Save b-tagging algorithm scores. Should only be done for jet collection with b-tagging
Expand Down Expand Up @@ -678,7 +674,7 @@ def ReclusterAK4CHSJets(proc, recoJA, runOnMC):
vertexes = "offlineSlimmedPrimaryVertices"
)
)
proc.jetSequence.insert(proc.jetSequence.index(proc.pileupJetId94X), getattr(proc, pileupJetId80X))
proc.jetUserDataTask.add(getattr(proc, pileupJetId80X))

proc.updatedJetsWithUserData.userInts.puId80XfullId = cms.InputTag('pileupJetId80X:fullId')
proc.updatedJetsWithUserData.userFloats.puId80XDisc = cms.InputTag("pileupJetId80X:fullDiscriminant")
Expand All @@ -705,7 +701,7 @@ def ReclusterAK4CHSJets(proc, recoJA, runOnMC):
jetName = "",
jetSrc = "updatedJets",
jetTableName = "jetTable",
jetSequenceName = "jetSequence"
jetTaskName = "jetTask"
)
#
# Add variables for quark guon likelihood tagger studies.
Expand Down Expand Up @@ -752,7 +748,7 @@ def ReclusterAK4CHSJets(proc, recoJA, runOnMC):
#The following lines make sure it is.
hfJetShowerShapeforCustomNanoAOD = "hfJetShowerShapeforCustomNanoAOD"
setattr(proc, hfJetShowerShapeforCustomNanoAOD, hfJetShowerShapeforNanoAOD.clone(jets="updatedJets",vertices="offlineSlimmedPrimaryVertices") )
proc.jetSequence.insert(proc.jetSequence.index(proc.updatedJetsWithUserData), getattr(proc, hfJetShowerShapeforCustomNanoAOD))
proc.jetUserDataTask.add(getattr(proc, hfJetShowerShapeforCustomNanoAOD))
proc.updatedJetsWithUserData.userFloats.hfsigmaEtaEta = cms.InputTag('hfJetShowerShapeforCustomNanoAOD:sigmaEtaEta')
proc.updatedJetsWithUserData.userFloats.hfsigmaPhiPhi = cms.InputTag('hfJetShowerShapeforCustomNanoAOD:sigmaPhiPhi')
proc.updatedJetsWithUserData.userInts.hfcentralEtaStripSize = cms.InputTag('hfJetShowerShapeforCustomNanoAOD:centralEtaStripSize')
Expand Down Expand Up @@ -910,14 +906,14 @@ def SaveGenJets(proc, genJetName, genJetAlgo, genJetSizeNr, genJetFinalColl, gen
)
)

genJetSequenceName = "genJet{}Sequence".format(genJetName)
setattr(proc, genJetSequenceName, cms.Sequence(
getattr(proc,genJetTableThisJet)+
getattr(proc,genJetFlavourAssociationThisJet)+
genJetTaskName = "genJet{}Task".format(genJetName)
setattr(proc, genJetTaskName, cms.Task(
getattr(proc,genJetTableThisJet),
getattr(proc,genJetFlavourAssociationThisJet),
getattr(proc,genJetFlavourTableThisJet)
)
)
proc.nanoSequenceMC.insert(proc.nanoSequenceMC.index(proc.jetMC)+1, getattr(proc,genJetSequenceName))
proc.jetMCTask.add(getattr(proc,genJetTaskName))

return proc

Expand Down Expand Up @@ -958,7 +954,7 @@ def ReclusterAK4GenJets(proc, genJA):
rParam = genJetSizeNr,
)
)
proc.jetMC.insert(proc.jetMC.index(proc.genJetFlavourTable), getattr(proc, genJetFlavourAssociationThisJet))
proc.jetMCTask.add(getattr(proc, genJetFlavourAssociationThisJet))
return proc

def AddNewAK8GenJetsForJEC(proc, genJA):
Expand Down
12 changes: 9 additions & 3 deletions PhysicsTools/PatAlgos/python/tools/jetCollectionTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from PhysicsTools.PatAlgos.tools.ConfigToolBase import *

from CommonTools.ParticleFlow.pfCHS_cff import pfCHS, packedPrimaryVertexAssociationJME
from CommonTools.PileupAlgos.Puppi_cff import puppi
from CommonTools.PileupAlgos.softKiller_cfi import softKiller

Expand Down Expand Up @@ -274,6 +275,13 @@ def addRecoJetCollection(self,
#
if pfCand not in self.prerequisites:
#
# Setup PrimaryVertexAssociationJME to be used by CHS and PUPPI
#
if recoJetInfo.jetPUMethod == "chs" or recoJetInfo.jetPUMethod == "puppi":
if "packedPrimaryVertexAssociationJME" not in self.prerequisites:
self.addProcessAndTask(proc, "packedPrimaryVertexAssociationJME", packedPrimaryVertexAssociationJME.clone())
self.prerequisites.append("packedPrimaryVertexAssociationJME")
#
# Skip if no PU Method or CS specified
#
if recoJetInfo.jetPUMethod in [ "", "cs" ]:
Expand All @@ -282,9 +290,6 @@ def addRecoJetCollection(self,
# CHS
#
elif recoJetInfo.jetPUMethod == "chs":
from CommonTools.ParticleFlow.pfCHS_cff import pfCHS, packedPrimaryVertexAssociationJME
self.addProcessAndTask(proc, "packedPrimaryVertexAssociationJME", packedPrimaryVertexAssociationJME.clone())
self.prerequisites.append("packedPrimaryVertexAssociationJME")
self.addProcessAndTask(proc, pfCand, pfCHS.clone())
self.prerequisites.append(pfCand)
#
Expand All @@ -294,6 +299,7 @@ def addRecoJetCollection(self,
self.addProcessAndTask(proc, pfCand, puppi.clone(
candName = self.pfLabel,
vertexName = self.pvLabel,
vertexAssociation = 'packedPrimaryVertexAssociationJME:original'
)
)
self.prerequisites.append(pfCand)
Expand Down