File indexing completed on 2023-03-17 11:16:23
0001 import FWCore.ParameterSet.Config as cms
0002
0003 from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask, addToProcessAndTask
0004
0005 def applySubstructure( process, postfix="" ) :
0006
0007 task = getPatAlgosToolsTask(process)
0008
0009 from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection
0010
0011
0012 from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJetsDefault
0013
0014
0015
0016 from RecoJets.JetProducers.ak8PFJets_cfi import ak8PFJetsPuppi, ak8PFJetsPuppiSoftDrop, ak8PFJetsPuppiConstituents
0017 setattr(process,'ak8PFJetsPuppi'+postfix,ak8PFJetsPuppi.clone())
0018 setattr(process,'ak8PFJetsPuppiConstituents'+postfix, ak8PFJetsPuppiConstituents.clone(cut = cms.string('pt > 170.0 && abs(rapidity()) < 2.4') ))
0019 setattr(process,'ak8PFJetsPuppiSoftDrop'+postfix, ak8PFJetsPuppiSoftDrop.clone( src = 'ak8PFJetsPuppiConstituents'+postfix+':constituents' ))
0020 from RecoJets.JetProducers.ak8PFJetsPuppi_groomingValueMaps_cfi import ak8PFJetsPuppiSoftDropMass
0021 setattr(process,'ak8PFJetsPuppiSoftDropMass'+postfix, ak8PFJetsPuppiSoftDropMass.clone())
0022 from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
0023 from Configuration.Eras.Modifier_run2_miniAOD_94XFall17_cff import run2_miniAOD_94XFall17
0024 from Configuration.ProcessModifiers.run2_miniAOD_UL_cff import run2_miniAOD_UL
0025 _run2_miniAOD_ANY = (run2_miniAOD_80XLegacy | run2_miniAOD_94XFall17 | run2_miniAOD_UL)
0026 from Configuration.Eras.Modifier_pA_2016_cff import pA_2016
0027 if postfix=='':
0028
0029 _rerun_puppijets_task = task.copy()
0030 _rerun_puppijets_task.add(getattr(process,'ak8PFJetsPuppi'),
0031 getattr(process,'ak8PFJetsPuppiConstituents'),
0032 getattr(process,'ak8PFJetsPuppiSoftDrop'),
0033 getattr(process,'ak8PFJetsPuppiSoftDropMass'))
0034 (_run2_miniAOD_ANY | pA_2016 ).toReplaceWith(task, _rerun_puppijets_task)
0035 else:
0036 task.add(getattr(process,'ak8PFJetsPuppi'+postfix),
0037 getattr(process,'ak8PFJetsPuppiConstituents'+postfix),
0038 getattr(process,'ak8PFJetsPuppiSoftDrop'+postfix),
0039 getattr(process,'ak8PFJetsPuppiSoftDropMass'+postfix))
0040
0041 from RecoJets.JetProducers.ak8GenJets_cfi import ak8GenJets, ak8GenJetsSoftDrop, ak8GenJetsConstituents
0042 addToProcessAndTask('ak8GenJetsNoNuConstituents'+postfix, ak8GenJetsConstituents.clone(src='ak8GenJetsNoNu'), process, task )
0043 addToProcessAndTask('ak8GenJetsNoNuSoftDrop'+postfix,ak8GenJetsSoftDrop.clone(src=cms.InputTag('ak8GenJetsNoNuConstituents'+postfix, 'constituents')),process,task)
0044 addToProcessAndTask('slimmedGenJetsAK8SoftDropSubJets'+postfix,
0045 cms.EDProducer("PATGenJetSlimmer",
0046 src = cms.InputTag("ak8GenJetsNoNuSoftDrop"+postfix, "SubJets"),
0047 packedGenParticles = cms.InputTag("packedGenParticles"),
0048 cut = cms.string(""),
0049 cutLoose = cms.string(""),
0050 nLoose = cms.uint32(0),
0051 clearDaughters = cms.bool(False),
0052 dropSpecific = cms.bool(True),
0053 ), process, task )
0054
0055
0056 addJetCollection(
0057 process,
0058 postfix=postfix,
0059 labelName = 'AK8PFPuppiSoftDrop' + postfix,
0060 jetSource = cms.InputTag('ak8PFJetsPuppiSoftDrop'+postfix),
0061 btagDiscriminators = ['None'],
0062 genJetCollection = cms.InputTag('slimmedGenJetsAK8'),
0063 jetCorrections = ('AK8PFPuppi', ['L2Relative', 'L3Absolute'], 'None'),
0064 getJetMCFlavour = False
0065 )
0066
0067 addJetCollection(
0068 process,
0069 postfix=postfix,
0070 labelName = 'AK8PFPuppiSoftDropSubjets',
0071 jetSource = cms.InputTag('ak8PFJetsPuppiSoftDrop'+postfix,'SubJets'),
0072 algo = 'ak',
0073 rParam = 0.8,
0074 btagDiscriminators = ['pfDeepCSVJetTags:probb', 'pfDeepCSVJetTags:probbb', 'pfCombinedInclusiveSecondaryVertexV2BJetTags','pfCombinedMVAV2BJetTags'],
0075 jetCorrections = ('AK4PFPuppi', ['L2Relative', 'L3Absolute'], 'None'),
0076 explicitJTA = True,
0077 svClustering = True,
0078 genJetCollection = cms.InputTag('slimmedGenJetsAK8SoftDropSubJets'),
0079 fatJets=cms.InputTag('ak8PFJetsPuppi'),
0080 groomedFatJets=cms.InputTag('ak8PFJetsPuppiSoftDrop')
0081 )
0082
0083 from Configuration.Eras.Modifier_run3_common_cff import run3_common
0084 run3_common.toModify(process.patJetsAK8PFPuppiSoftDropSubjets,
0085 discriminatorSources = cms.VInputTag(
0086 cms.InputTag("pfDeepCSVJetTagsAK8PFPuppiSoftDropSubjets","probb"),
0087 cms.InputTag("pfDeepCSVJetTagsAK8PFPuppiSoftDropSubjets","probbb")
0088 )
0089 )
0090
0091
0092 process.load('RecoJets.JetProducers.ECF_cff')
0093 addToProcessAndTask('nb1AK8PuppiSoftDrop'+postfix, process.ecfNbeta1.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix), cuts = cms.vstring('', '', 'pt > 250')), process, task)
0094 addToProcessAndTask('nb2AK8PuppiSoftDrop'+postfix, process.ecfNbeta2.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix), cuts = cms.vstring('', '', 'pt > 250')), process, task)
0095
0096
0097 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
0098 from Configuration.Eras.Modifier_phase2_common_cff import phase2_common
0099
0100 for e in [pp_on_XeXe_2017, phase2_common]:
0101 e.toModify(getattr(process,'nb1AK8PuppiSoftDrop'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0102 e.toModify(getattr(process,'nb2AK8PuppiSoftDrop'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0103
0104 from RecoJets.JetProducers.nJettinessAdder_cfi import Njettiness
0105 addToProcessAndTask('NjettinessAK8Subjets'+postfix, Njettiness.clone(), process, task)
0106 getattr(process,"NjettinessAK8Subjets"+postfix).src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")
0107 getattr(process,"patJetsAK8PFPuppiSoftDrop").userData.userFloats.src += ['nb1AK8PuppiSoftDrop'+postfix+':ecfN2','nb1AK8PuppiSoftDrop'+postfix+':ecfN3']
0108 getattr(process,"patJetsAK8PFPuppiSoftDrop").userData.userFloats.src += ['nb2AK8PuppiSoftDrop'+postfix+':ecfN2','nb2AK8PuppiSoftDrop'+postfix+':ecfN3']
0109 addToProcessAndTask('nb1AK8PuppiSoftDropSubjets'+postfix, process.ecfNbeta1.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")), process, task)
0110 addToProcessAndTask('nb2AK8PuppiSoftDropSubjets'+postfix, process.ecfNbeta2.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")), process, task)
0111 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['nb1AK8PuppiSoftDropSubjets'+postfix+':ecfN2','nb1AK8PuppiSoftDropSubjets'+postfix+':ecfN3']
0112 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['nb2AK8PuppiSoftDropSubjets'+postfix+':ecfN2','nb2AK8PuppiSoftDropSubjets'+postfix+':ecfN3']
0113 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['NjettinessAK8Subjets'+postfix+':tau1','NjettinessAK8Subjets'+postfix+':tau2','NjettinessAK8Subjets'+postfix+':tau3','NjettinessAK8Subjets'+postfix+':tau4']
0114
0115 for e in [pp_on_XeXe_2017, phase2_common]:
0116 e.toModify(getattr(process,'nb1AK8PuppiSoftDropSubjets'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0117 e.toModify(getattr(process,'nb2AK8PuppiSoftDropSubjets'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0118
0119
0120
0121 addJetCollection(process, postfix=postfix, labelName = 'AK8Puppi',
0122 jetSource = cms.InputTag('ak8PFJetsPuppi'+postfix),
0123 algo= 'AK', rParam = 0.8,
0124 jetCorrections = ('AK8PFPuppi', cms.vstring(['L2Relative', 'L3Absolute']), 'None'),
0125 btagDiscriminators = ([
0126 'pfCombinedSecondaryVertexV2BJetTags',
0127 'pfCombinedInclusiveSecondaryVertexV2BJetTags',
0128 'pfCombinedMVAV2BJetTags',
0129 'pfDeepCSVJetTags:probb',
0130 'pfDeepCSVJetTags:probc',
0131 'pfDeepCSVJetTags:probudsg',
0132 'pfDeepCSVJetTags:probbb',
0133 'pfBoostedDoubleSecondaryVertexAK8BJetTags']),
0134 genJetCollection = cms.InputTag('slimmedGenJetsAK8')
0135 )
0136 getattr(process,"patJetsAK8Puppi"+postfix).userData.userFloats.src = []
0137 getattr(process,"selectedPatJetsAK8Puppi"+postfix).cut = cms.string("pt > 100")
0138 getattr(process,"selectedPatJetsAK8Puppi"+postfix).cutLoose = cms.string("pt > 30")
0139 getattr(process,"selectedPatJetsAK8Puppi"+postfix).nLoose = cms.uint32(3)
0140
0141 from Configuration.Eras.Modifier_run3_common_cff import run3_common
0142 run3_common.toModify(process.patJetsAK8Puppi,
0143 discriminatorSources = cms.VInputTag(
0144 cms.InputTag("pfDeepCSVJetTagsAK8Puppi","probb"),
0145 cms.InputTag("pfDeepCSVJetTagsAK8Puppi","probc"),
0146 cms.InputTag("pfDeepCSVJetTagsAK8Puppi","probudsg"),
0147 cms.InputTag("pfDeepCSVJetTagsAK8Puppi","probbb")
0148 )
0149 )
0150
0151 from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import j2tParametersVX
0152 addToProcessAndTask('ak8PFJetsPuppiTracksAssociatorAtVertex'+postfix, cms.EDProducer("JetTracksAssociatorAtVertex",
0153 j2tParametersVX.clone( coneSize = cms.double(0.8) ),
0154 jets = cms.InputTag("ak8PFJetsPuppi") ),
0155 process, task)
0156 addToProcessAndTask('patJetAK8PuppiCharge'+postfix, cms.EDProducer("JetChargeProducer",
0157 src = cms.InputTag("ak8PFJetsPuppiTracksAssociatorAtVertex"),
0158 var = cms.string('Pt'),
0159 exp = cms.double(1.0) ),
0160 process, task)
0161
0162
0163 getattr(process,"patJetsAK8Puppi"+postfix).userData.userFloats.src += ['ak8PFJetsPuppiSoftDropMass'+postfix]
0164 getattr(process,"patJetsAK8Puppi"+postfix).addTagInfos = cms.bool(False)
0165
0166
0167
0168 addToProcessAndTask('NjettinessAK8Puppi'+postfix, Njettiness.clone(), process, task)
0169 getattr(process,"NjettinessAK8Puppi"+postfix).src = cms.InputTag("ak8PFJetsPuppi"+postfix)
0170 getattr(process,"patJetsAK8Puppi").userData.userFloats.src += ['NjettinessAK8Puppi'+postfix+':tau1','NjettinessAK8Puppi'+postfix+':tau2','NjettinessAK8Puppi'+postfix+':tau3','NjettinessAK8Puppi'+postfix+':tau4']
0171
0172
0173 addToProcessAndTask("slimmedJetsAK8PFPuppiSoftDropSubjets"+postfix,
0174 cms.EDProducer("PATJetSlimmer",
0175 src = cms.InputTag("selectedPatJetsAK8PFPuppiSoftDropSubjets"),
0176 packedPFCandidates = cms.InputTag("packedPFCandidates"),
0177 dropJetVars = cms.string("1"),
0178 dropDaughters = cms.string("0"),
0179 rekeyDaughters = cms.string("1"),
0180 dropTrackRefs = cms.string("1"),
0181 dropSpecific = cms.string("1"),
0182 dropTagInfos = cms.string("1"),
0183 modifyJets = cms.bool(True),
0184 mixedDaughters = cms.bool(False),
0185 modifierConfig = cms.PSet( modifications = cms.VPSet() )
0186 ),
0187 process, task)
0188
0189
0190
0191 addToProcessAndTask("slimmedJetsAK8PFPuppiSoftDropPacked"+postfix,
0192 cms.EDProducer("BoostedJetMerger",
0193 jetSrc=cms.InputTag("selectedPatJetsAK8PFPuppiSoftDrop"),
0194 subjetSrc=cms.InputTag("slimmedJetsAK8PFPuppiSoftDropSubjets")
0195 ),
0196 process, task )
0197
0198
0199 addToProcessAndTask("packedPatJetsAK8"+postfix, cms.EDProducer("JetSubstructurePacker",
0200 jetSrc = cms.InputTag("selectedPatJetsAK8Puppi"+postfix),
0201 distMax = cms.double(0.8),
0202 algoTags = cms.VInputTag(
0203 cms.InputTag("slimmedJetsAK8PFPuppiSoftDropPacked"+postfix)
0204 ),
0205 algoLabels = cms.vstring(
0206 'SoftDropPuppi'
0207 ),
0208 fixDaughters = cms.bool(True),
0209 packedPFCandidates = cms.InputTag("packedPFCandidates"+postfix),
0210 ),
0211 process, task)
0212
0213
0214 process.slimmedJetsAK8.rekeyDaughters = "0"
0215
0216 process.slimmedJetsAK8.dropDaughters = cms.string("pt < 170")
0217 process.slimmedJetsAK8.dropSpecific = cms.string("pt < 170")
0218 process.slimmedJetsAK8.dropTagInfos = cms.string("pt < 170")