Skip to content

Commit b151cab

Browse files
committed
trackGenJetAK4 added
1 parent aca061d commit b151cab

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

PhysicsTools/NanoAOD/python/jetMC_cff.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from PhysicsTools.NanoAOD.simplePATJetFlatTableProducer_cfi import simplePATJetFlatTableProducer
66
from PhysicsTools.NanoAOD.jetsAK8_cff import fatJetTable as _fatJetTable
77
from PhysicsTools.NanoAOD.jetsAK8_cff import subJetTable as _subJetTable
8+
from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets
89

910
jetMCTable = simplePATJetFlatTableProducer.clone(
1011
src = cms.InputTag("linkedObjects","jets"),
@@ -23,7 +24,7 @@
2324
name = cms.string("GenJet"),
2425
doc = cms.string("slimmedGenJets, i.e. ak4 Jets made with visible genparticles"),
2526
variables = cms.PSet(P4Vars,
26-
#anything else?
27+
#anything else?
2728
)
2829
)
2930

@@ -60,7 +61,7 @@
6061
name = cms.string("GenJetAK8"),
6162
doc = cms.string("slimmedGenJetsAK8, i.e. ak8 Jets made with visible genparticles"),
6263
variables = cms.PSet(P4Vars,
63-
#anything else?
64+
#anything else?
6465
)
6566
)
6667

@@ -100,7 +101,7 @@
100101
name = cms.string("SubGenJetAK8"),
101102
doc = cms.string("slimmedGenJetsAK8SoftDropSubJets, i.e. subjets of ak8 Jets made with visible genparticles"),
102103
variables = cms.PSet(P4Vars,
103-
#anything else?
104+
#anything else?
104105
)
105106
)
106107
subjetMCTable = simplePATJetFlatTableProducer.clone(
@@ -116,7 +117,22 @@
116117
)
117118
)
118119

120+
genParticlesForJetsCharged = cms.EDFilter("CandPtrSelector",
121+
src = cms.InputTag("prunedGenParticles"), # or "packedGenParticles" if available
122+
cut = cms.string("charge != 0 && pt > 0.3 && status == 1 && abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16")
123+
)
124+
125+
ak4GenJetsChargedOnly = ak4GenJets.clone(src = cms.InputTag("genParticlesForJetsCharged"), rParam = cms.double(0.4), jetAlgorithm=cms.string("AntiKt"), doAreaFastjet = False, jetPtMin=1)
126+
127+
128+
trackGenJetAK4Table = genJetTable.clone(
129+
src = cms.InputTag("ak4GenJetsChargedOnly"),
130+
cut = cms.string("pt > 1"),
131+
name = cms.string("TrackGenJetAK4"),
132+
doc = cms.string("AK4 GenJets made with charged particles only"),
133+
variables = cms.PSet(P3Vars)
134+
)
119135

120-
jetMCTaskak4 = cms.Task(jetMCTable,genJetTable,patJetPartonsNano,genJetFlavourTable)
136+
jetMCTaskak4 = cms.Task(jetMCTable,genJetTable,patJetPartonsNano,genJetFlavourTable,genParticlesForJetsCharged,ak4GenJetsChargedOnly,trackGenJetAK4Table)
121137
jetMCTaskak8 = cms.Task(genJetAK8Table,genJetAK8FlavourAssociation,genJetAK8FlavourTable,fatJetMCTable,genSubJetAK8Table,subjetMCTable)
122138
jetMCTask = jetMCTaskak4.copyAndAdd(jetMCTaskak8)

PhysicsTools/NanoAOD/python/nanogen_cff.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from PhysicsTools.NanoAOD.genVertex_cff import *
99
from PhysicsTools.NanoAOD.common_cff import Var,CandVars
1010
from PhysicsTools.NanoAOD.simpleSingletonCandidateFlatTableProducer_cfi import simpleSingletonCandidateFlatTableProducer
11+
from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets
1112

1213
nanoMetadata = cms.EDProducer("UniqueStringProducer",
1314
strings = cms.PSet(
@@ -24,6 +25,9 @@
2425
patJetPartonsNano+
2526
genJetFlavourAssociation+
2627
genJetFlavourTable+
28+
genParticlesForJetsCharged+
29+
ak4GenJetsChargedOnly+
30+
trackGenJetAK4Table+
2731
genSubJetAK8Table+
2832
genJetAK8Table+
2933
genJetAK8FlavourAssociation+
@@ -115,6 +119,10 @@ def customizeNanoGEN(process):
115119
process.ak8GenJetsNoNuConstituents = process.ak8GenJetsConstituents.clone(src='ak8GenJetsNoNu')
116120
process.ak8GenJetsNoNuSoftDrop = process.ak8GenJetsSoftDrop.clone(src=cms.InputTag('ak8GenJetsNoNuConstituents', 'constituents'))
117121
process.genSubJetAK8Table.src = "ak8GenJetsNoNuSoftDrop"
122+
process.genParticlesForJetsCharged = cms.EDFilter("CandPtrSelector", src = cms.InputTag("genParticles"), cut = cms.string("charge != 0 && pt > 0.3 && status == 1 && abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16"))
123+
process.ak4GenJetsChargedOnly = ak4GenJets.clone(src = cms.InputTag("genParticlesForJetsCharged"), rParam = cms.double(0.4), jetAlgorithm=cms.string("AntiKt"), doAreaFastjet = False, jetPtMin=1)
124+
process.nanogenSequence.insert(0, process.ak4GenJetsChargedOnly)
125+
process.nanogenSequence.insert(0, process.genParticlesForJetsCharged)
118126
process.nanogenSequence.insert(0, process.ak8GenJetsNoNuSoftDrop)
119127
process.nanogenSequence.insert(0, process.ak8GenJetsNoNuConstituents)
120128
# In case customizeNanoGENFromMini has already been called
@@ -128,14 +136,14 @@ def customizeNanoGEN(process):
128136
def pruneGenParticlesNano(process):
129137
process.finalGenParticles.src = process.genParticleTable.src.getModuleLabel()
130138
process.genParticleTable.src = "finalGenParticles"
131-
process.nanogenSequence.insert(0, process.finalGenParticles)
139+
process.nanogenSequence.insert(1, process.finalGenParticles)
132140
return process
133141

134142
# Prune gen particles with conditions applied in usual MiniAOD
135143
def pruneGenParticlesMini(process):
136-
if process.nanogenSequence.contains(process.mergedGenParticles):
137-
raise ValueError("Applying the MiniAOD genParticle pruner to MiniAOD is redunant. " \
138-
"Use a different customization.")
144+
# if process.nanogenSequence.contains(process.mergedGenParticles):
145+
# raise ValueError("Applying the MiniAOD genParticle pruner to MiniAOD is redunant. " \
146+
# "Use a different customization.")
139147
from PhysicsTools.PatAlgos.slimming.prunedGenParticles_cfi import prunedGenParticles
140148
process.prunedGenParticles = prunedGenParticles.clone()
141149
process.prunedGenParticles.src = "genParticles"

0 commit comments

Comments
 (0)