File indexing completed on 2024-07-24 04:45:06
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())
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.ProcessModifiers.run2_miniAOD_UL_cff import run2_miniAOD_UL
0023 _run2_miniAOD_ANY = (run2_miniAOD_UL)
0024 from Configuration.Eras.Modifier_pA_2016_cff import pA_2016
0025 if postfix=='':
0026
0027 _rerun_puppijets_task = task.copy()
0028 _rerun_puppijets_task.add(getattr(process,'ak8PFJetsPuppi'),
0029 getattr(process,'ak8PFJetsPuppiConstituents'),
0030 getattr(process,'ak8PFJetsPuppiSoftDrop'),
0031 getattr(process,'ak8PFJetsPuppiSoftDropMass'))
0032 (_run2_miniAOD_ANY | pA_2016 ).toReplaceWith(task, _rerun_puppijets_task)
0033 (_run2_miniAOD_ANY | pA_2016 ).toModify(getattr(process,'ak8PFJetsPuppiConstituents'+postfix),
0034 cut = cms.string('pt > 170.0 && abs(rapidity()) < 2.4'))
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
0099 for e in [pp_on_XeXe_2017]:
0100 e.toModify(getattr(process,'nb1AK8PuppiSoftDrop'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0101 e.toModify(getattr(process,'nb2AK8PuppiSoftDrop'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0102
0103 from RecoJets.JetProducers.nJettinessAdder_cfi import Njettiness
0104 addToProcessAndTask('NjettinessAK8Subjets'+postfix, Njettiness.clone(), process, task)
0105 getattr(process,"NjettinessAK8Subjets"+postfix).src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")
0106 getattr(process,"patJetsAK8PFPuppiSoftDrop").userData.userFloats.src += ['nb1AK8PuppiSoftDrop'+postfix+':ecfN2','nb1AK8PuppiSoftDrop'+postfix+':ecfN3']
0107 getattr(process,"patJetsAK8PFPuppiSoftDrop").userData.userFloats.src += ['nb2AK8PuppiSoftDrop'+postfix+':ecfN2','nb2AK8PuppiSoftDrop'+postfix+':ecfN3']
0108 addToProcessAndTask('nb1AK8PuppiSoftDropSubjets'+postfix, process.ecfNbeta1.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")), process, task)
0109 addToProcessAndTask('nb2AK8PuppiSoftDropSubjets'+postfix, process.ecfNbeta2.clone(src = cms.InputTag("ak8PFJetsPuppiSoftDrop"+postfix, "SubJets")), process, task)
0110 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['nb1AK8PuppiSoftDropSubjets'+postfix+':ecfN2','nb1AK8PuppiSoftDropSubjets'+postfix+':ecfN3']
0111 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['nb2AK8PuppiSoftDropSubjets'+postfix+':ecfN2','nb2AK8PuppiSoftDropSubjets'+postfix+':ecfN3']
0112 getattr(process,"patJetsAK8PFPuppiSoftDropSubjets"+postfix).userData.userFloats.src += ['NjettinessAK8Subjets'+postfix+':tau1','NjettinessAK8Subjets'+postfix+':tau2','NjettinessAK8Subjets'+postfix+':tau3','NjettinessAK8Subjets'+postfix+':tau4']
0113
0114 for e in [pp_on_XeXe_2017]:
0115 e.toModify(getattr(process,'nb1AK8PuppiSoftDropSubjets'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0116 e.toModify(getattr(process,'nb2AK8PuppiSoftDropSubjets'+postfix), cuts = ['pt > 999999', 'pt > 999999', 'pt > 999999'] )
0117
0118
0119
0120 addJetCollection(process, postfix=postfix, labelName = 'AK8Puppi',
0121 jetSource = cms.InputTag('ak8PFJetsPuppi'+postfix),
0122 algo= 'AK', rParam = 0.8,
0123 jetCorrections = ('AK8PFPuppi', cms.vstring(['L2Relative', 'L3Absolute']), 'None'),
0124 btagDiscriminators = None,
0125 genJetCollection = cms.InputTag('slimmedGenJetsAK8')
0126 )
0127 getattr(process,"patJetsAK8Puppi"+postfix).userData.userFloats.src = []
0128 getattr(process,"selectedPatJetsAK8Puppi"+postfix).cut = cms.string("pt > 100")
0129 getattr(process,"selectedPatJetsAK8Puppi"+postfix).cutLoose = cms.string("pt > 30")
0130 getattr(process,"selectedPatJetsAK8Puppi"+postfix).nLoose = cms.uint32(3)
0131
0132 from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import j2tParametersVX
0133 addToProcessAndTask('ak8PFJetsPuppiTracksAssociatorAtVertex'+postfix, cms.EDProducer("JetTracksAssociatorAtVertex",
0134 j2tParametersVX.clone( coneSize = cms.double(0.8) ),
0135 jets = cms.InputTag("ak8PFJetsPuppi") ),
0136 process, task)
0137 addToProcessAndTask('patJetAK8PuppiCharge'+postfix, cms.EDProducer("JetChargeProducer",
0138 src = cms.InputTag("ak8PFJetsPuppiTracksAssociatorAtVertex"),
0139 var = cms.string('Pt'),
0140 exp = cms.double(1.0) ),
0141 process, task)
0142
0143
0144 getattr(process,"patJetsAK8Puppi"+postfix).userData.userFloats.src += ['ak8PFJetsPuppiSoftDropMass'+postfix]
0145 getattr(process,"patJetsAK8Puppi"+postfix).addTagInfos = cms.bool(False)
0146
0147
0148
0149 addToProcessAndTask('NjettinessAK8Puppi'+postfix, Njettiness.clone(), process, task)
0150 getattr(process,"NjettinessAK8Puppi"+postfix).src = cms.InputTag("ak8PFJetsPuppi"+postfix)
0151 getattr(process,"patJetsAK8Puppi").userData.userFloats.src += ['NjettinessAK8Puppi'+postfix+':tau1','NjettinessAK8Puppi'+postfix+':tau2','NjettinessAK8Puppi'+postfix+':tau3','NjettinessAK8Puppi'+postfix+':tau4']
0152
0153
0154 addToProcessAndTask("slimmedJetsAK8PFPuppiSoftDropSubjets"+postfix,
0155 cms.EDProducer("PATJetSlimmer",
0156 src = cms.InputTag("selectedPatJetsAK8PFPuppiSoftDropSubjets"),
0157 packedPFCandidates = cms.InputTag("packedPFCandidates"),
0158 dropJetVars = cms.string("1"),
0159 dropDaughters = cms.string("0"),
0160 rekeyDaughters = cms.string("1"),
0161 dropTrackRefs = cms.string("1"),
0162 dropSpecific = cms.string("1"),
0163 dropTagInfos = cms.string("1"),
0164 modifyJets = cms.bool(True),
0165 mixedDaughters = cms.bool(False),
0166 modifierConfig = cms.PSet( modifications = cms.VPSet() )
0167 ),
0168 process, task)
0169
0170
0171
0172 addToProcessAndTask("slimmedJetsAK8PFPuppiSoftDropPacked"+postfix,
0173 cms.EDProducer("BoostedJetMerger",
0174 jetSrc=cms.InputTag("selectedPatJetsAK8PFPuppiSoftDrop"),
0175 subjetSrc=cms.InputTag("slimmedJetsAK8PFPuppiSoftDropSubjets")
0176 ),
0177 process, task )
0178
0179
0180 addToProcessAndTask("packedPatJetsAK8"+postfix, cms.EDProducer("JetSubstructurePacker",
0181 jetSrc = cms.InputTag("selectedPatJetsAK8Puppi"+postfix),
0182 distMax = cms.double(0.8),
0183 algoTags = cms.VInputTag(
0184 cms.InputTag("slimmedJetsAK8PFPuppiSoftDropPacked"+postfix)
0185 ),
0186 algoLabels = cms.vstring(
0187 'SoftDropPuppi'
0188 ),
0189 fixDaughters = cms.bool(True),
0190 packedPFCandidates = cms.InputTag("packedPFCandidates"+postfix),
0191 ),
0192 process, task)
0193
0194
0195 process.slimmedJetsAK8.rekeyDaughters = "0"
0196
0197 process.slimmedJetsAK8.dropDaughters = cms.string("pt < 170")
0198 process.slimmedJetsAK8.dropSpecific = cms.string("pt < 170")
0199 process.slimmedJetsAK8.dropTagInfos = cms.string("pt < 170")