diff --git a/Configuration/PyReleaseValidation/python/relval_2017.py b/Configuration/PyReleaseValidation/python/relval_2017.py index 0c65ccc7fd102..b652123f4ce2b 100644 --- a/Configuration/PyReleaseValidation/python/relval_2017.py +++ b/Configuration/PyReleaseValidation/python/relval_2017.py @@ -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, diff --git a/Configuration/PyReleaseValidation/python/relval_pileup.py b/Configuration/PyReleaseValidation/python/relval_pileup.py index 55b30ebadced3..6c6f0f620c64a 100644 --- a/Configuration/PyReleaseValidation/python/relval_pileup.py +++ b/Configuration/PyReleaseValidation/python/relval_pileup.py @@ -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']] diff --git a/PhysicsTools/NanoAOD/python/custom_jme_cff.py b/PhysicsTools/NanoAOD/python/custom_jme_cff.py index 96ac4e5187f66..31c72e80ce66b 100644 --- a/PhysicsTools/NanoAOD/python/custom_jme_cff.py +++ b/PhysicsTools/NanoAOD/python/custom_jme_cff.py @@ -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 """ @@ -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 """ @@ -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 @@ -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 @@ -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 """ @@ -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 @@ -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 @@ -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") @@ -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. @@ -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') @@ -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 @@ -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): diff --git a/PhysicsTools/PatAlgos/python/tools/jetCollectionTools.py b/PhysicsTools/PatAlgos/python/tools/jetCollectionTools.py index 01d00edfec39b..15d65ebae4906 100644 --- a/PhysicsTools/PatAlgos/python/tools/jetCollectionTools.py +++ b/PhysicsTools/PatAlgos/python/tools/jetCollectionTools.py @@ -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 @@ -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" ]: @@ -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) # @@ -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)