From 0ed97291ca3d07c9655fcf9dacd09b23ad8fe428 Mon Sep 17 00:00:00 2001 From: gzevi Date: Wed, 30 May 2018 16:50:59 +0200 Subject: [PATCH 1/2] updated for TTHMVA in 947 --- python/electronsExtrasSUSY_cff.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/electronsExtrasSUSY_cff.py b/python/electronsExtrasSUSY_cff.py index 311af0f17a822..a25e144bf0cc7 100644 --- a/python/electronsExtrasSUSY_cff.py +++ b/python/electronsExtrasSUSY_cff.py @@ -34,6 +34,8 @@ def addSusyIDs(process, options): process.slimmedElectronsWithUserData = slimmedElectronsWithUserData process.electronMVATTH = electronMVATTH + ptRatioRelForEle.srcJet = cms.InputTag("slimmedJets") + # Make a new electron collection, with additional variables that are used for the LeptonMVA below process.slimmedElectronsWithUserData.src = cms.InputTag(options['ELECTRON_COLL']) process.slimmedElectronsWithUserData.userFloats = cms.PSet( @@ -41,6 +43,7 @@ def addSusyIDs(process, options): miniIsoAll = cms.InputTag("isoForEle:miniIsoAll"), PFIsoChg = cms.InputTag("isoForEle:PFIsoChg"), PFIsoAll = cms.InputTag("isoForEle:PFIsoAll"), + PFIsoAll04 = cms.InputTag("isoForEle:PFIsoAll04"), ptRatio = cms.InputTag("ptRatioRelForEle:ptRatio"), ptRel = cms.InputTag("ptRatioRelForEle:ptRel"), jetNDauChargedMVASel = cms.InputTag("ptRatioRelForEle:jetNDauChargedMVASel"), @@ -50,12 +53,13 @@ def addSusyIDs(process, options): # Run the ttH MVA - # Cannot take EGMMVA directly from VID, because the TTHMVA producer only loads userFloat. Need to first put the EGMMVA in the object as a userFloat + # Cannot take EGMMVA directly from VID, because the TTHMVA producer only loads userFloat. Need to first put the EGMMVA in the object as a userFloats, with the names the TTHMVA expects process.slimmedElectronsWithUserDataWithVID = process.slimmedElectronsWithUserData.clone() process.slimmedElectronsWithUserDataWithVID.src = cms.InputTag("slimmedElectronsWithUserData") process.slimmedElectronsWithUserDataWithVID.userCands = cms.PSet() # Removed process.slimmedElectronsWithUserDataWithVID.userFloats = cms.PSet( mvaSpring16HZZ = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Spring16HZZV1Values"), + mvaFall17noIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV1Values"), ) process.electronMVATTH.src = cms.InputTag("slimmedElectronsWithUserDataWithVID") From aa2780e7d85be677e9ec54716c92b1767cfff99b Mon Sep 17 00:00:00 2001 From: gzevi Date: Tue, 12 Jun 2018 14:53:10 +0200 Subject: [PATCH 2/2] Added JECs for SUSY ptRatio variables --- python/TnPTreeProducer_cfg.py | 1 + python/electronsExtrasSUSY_cff.py | 31 +++++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/python/TnPTreeProducer_cfg.py b/python/TnPTreeProducer_cfg.py index 861f2815de507..fc2616887bf0c 100644 --- a/python/TnPTreeProducer_cfg.py +++ b/python/TnPTreeProducer_cfg.py @@ -301,6 +301,7 @@ setattr( process.tnpEleIDs.variables , 'el_miniIsoChg', cms.string("userFloat('miniIsoChg')") ) setattr( process.tnpEleIDs.variables , 'el_miniIsoAll', cms.string("userFloat('miniIsoAll')") ) setattr( process.tnpEleIDs.variables , 'el_ptRatio', cms.string("userFloat('ptRatio')") ) + setattr( process.tnpEleIDs.variables , 'el_ptRatioUncorr', cms.string("userFloat('ptRatioUncorr')") ) setattr( process.tnpEleIDs.variables , 'el_ptRel', cms.string("userFloat('ptRel')") ) setattr( process.tnpEleIDs.variables , 'el_MVATTH', cms.InputTag("susyEleVarHelper:electronMVATTH") ) setattr( process.tnpEleIDs.variables , 'el_sip3d', cms.InputTag("susyEleVarHelper:sip3d") ) diff --git a/python/electronsExtrasSUSY_cff.py b/python/electronsExtrasSUSY_cff.py index a25e144bf0cc7..0b4f2bcd87db0 100644 --- a/python/electronsExtrasSUSY_cff.py +++ b/python/electronsExtrasSUSY_cff.py @@ -29,12 +29,27 @@ def addSusyIDs(process, options): from PhysicsTools.NanoAOD.electrons_cff import slimmedElectronsWithUserData from PhysicsTools.NanoAOD.electrons_cff import electronMVATTH + doJEC = True + if (doJEC): + from PhysicsTools.NanoAOD.jets_cff import updatedJets + from PhysicsTools.NanoAOD.jets_cff import jetCorrFactors # is this needed? + jetCorrFactors.src ='slimmedJets' + updatedJets.jetSource ='slimmedJets' + process.updatedJets = updatedJets + process.jetCorrFactors = jetCorrFactors + else: + ptRatioRelForEle.srcJet = cms.InputTag("slimmedJets") + process.isoForEle = isoForEle process.ptRatioRelForEle = ptRatioRelForEle process.slimmedElectronsWithUserData = slimmedElectronsWithUserData process.electronMVATTH = electronMVATTH - ptRatioRelForEle.srcJet = cms.InputTag("slimmedJets") + # Also save the raw ptRatio, with the JECs from the miniAOD + ptRatioRelForEleUncorr = ptRatioRelForEle.clone() + ptRatioRelForEleUncorr.srcJet = cms.InputTag("slimmedJets") + process.ptRatioRelForEleUncorr = ptRatioRelForEleUncorr + # Make a new electron collection, with additional variables that are used for the LeptonMVA below process.slimmedElectronsWithUserData.src = cms.InputTag(options['ELECTRON_COLL']) @@ -45,6 +60,7 @@ def addSusyIDs(process, options): PFIsoAll = cms.InputTag("isoForEle:PFIsoAll"), PFIsoAll04 = cms.InputTag("isoForEle:PFIsoAll04"), ptRatio = cms.InputTag("ptRatioRelForEle:ptRatio"), + ptRatioUncorr = cms.InputTag("ptRatioRelForEleUncorr:ptRatio"), ptRel = cms.InputTag("ptRatioRelForEle:ptRel"), jetNDauChargedMVASel = cms.InputTag("ptRatioRelForEle:jetNDauChargedMVASel"), ) @@ -84,13 +100,16 @@ def addSusyIDs(process, options): # The DataEmbedder (slimmedElectronsWithUserData) breaks the references, so we need to run VID and EleVarHelper after it --> Again, can never add VID results as userFloats # Solution: make a temp electron collection with VID, use it to calculate the TTHMVA, and then teach the SusyElectronVariableHelper to load 2 electron collections, taking MVATTH from the temp one and adding it as a susyEleVarHelper variable. That way, the susyEleVarHelper re-establishes the link between TTHMVA and the main electron collection + process.susy_sequence = cms.Sequence() + if (doJEC) : + process.susy_sequence += process.jetCorrFactors + process.susy_sequence += process.updatedJets + process.susy_sequence += process.ptRatioRelForEleUncorr - process.susy_sequence = cms.Sequence( - process.isoForEle + - process.ptRatioRelForEle + - process.slimmedElectronsWithUserData - ) + process.susy_sequence += process.isoForEle + process.susy_sequence += process.ptRatioRelForEle + process.susy_sequence += process.slimmedElectronsWithUserData process.susy_sequence_requiresVID = cms.Sequence( process.slimmedElectronsWithUserDataWithVID +