First of all, read through the Twiki MiniAOD Workbook.
There are two jet collections stored. They are
For slimmedJets, b-tag variables are stored, for slimmedJetsAK8 not. Access via
jet.bDiscriminator("jetBProbabilityBJetTags")
The AK8 collection contains userfloats for the jets pruned, trimmed and filtered mass. Access via
fatjet.userFloat("ak8PFJetsCHSPrunedLinks") fatjet.userFloat("ak8PFJetsCHSTrimmedLinks") fatjet.userFloat("ak8PFJetsCHSFilteredLinks")
Flavour is stored for slimmedJets via
abs(j.partonFlavour())
not available for AK8.
In config file
####### Redo Jet clustering sequence ########## from RecoJets.Configuration.RecoPFJets_cff import ak8PFJetsCHS, ak8PFJetsCHSPruned, ak8PFJetsCHSSoftDrop, ak8PFJetsCHSPrunedLinks, ak8PFJetsCHSSoftDropLinks# , ak8PFJetsCSTrimmed, ak8PFJetsCSFiltered, ak8PFJetsCHSFilteredLinks, ak8PFJetsCHSTrimmedLinks process.chs = cms.EDFilter("CandPtrSelector", src = cms.InputTag('packedPFCandidates'), cut = cms.string('fromPV') ) process.ak8PFJetsCHS = ak8PFJetsCHS.clone( src = 'chs' ) process.ak8PFJetsCHSPruned = ak8PFJetsCHSPruned.clone( src = 'chs' ) process.ak8PFJetsCHSSoftDrop = ak8PFJetsCHSSoftDrop.clone( src = 'chs' ) # process.ak8PFJetsCSTrimmed = ak8PFJetsCSTrimmed.clone( src = 'chs' ) # process.ak8PFJetsCSFiltered = ak8PFJetsCSFiltered.clone( src = 'chs' ) process.ak8PFJetsCHSPrunedLinks = ak8PFJetsCHSPrunedLinks.clone() process.ak8PFJetsCHSSoftDropLinks = ak8PFJetsCHSSoftDropLinks.clone() # process.ak8PFJetsCHSFilteredLinks = ak8PFJetsCHSFilteredLinks.clone() # process.ak8PFJetsCHSTrimmedLinks = ak8PFJetsCHSTrimmedLinks.clone() process.NjettinessAK8 = cms.EDProducer("NjettinessAdder", src = cms.InputTag("ak8PFJetsCHS"), Njets = cms.vuint32(1, 2, 3, 4), # variables for measure definition : measureDefinition = cms.uint32( 0 ), # CMS default is normalized measure beta = cms.double(1.0), # CMS default is 1 R0 = cms.double( 0.8 ), # CMS default is jet cone size Rcutoff = cms.double( -999.0), # not used by default # variables for axes definition : axesDefinition = cms.uint32( 6 ), # CMS default is 1-pass KT axes nPass = cms.int32(-999), # not used by default akAxesR0 = cms.double(-999.0) # not used by default ) process.substructureSequence = cms.Sequence(process.chs + process.ak8PFJetsCHS + process.ak8PFJetsCHSPruned + process.ak8PFJetsCHSSoftDrop + # process.ak8PFJetsCSTrimmed + # process.ak8PFJetsCSFiltered + process.NjettinessAK8 + process.ak8PFJetsCHSPrunedLinks + process.ak8PFJetsCHSSoftDropLinks) # + # process.ak8PFJetsCHSFilteredLinks + # process.ak8PFJetsCHSTrimmedLinks) ####### Redo pat jets sequence ########## from ExoDiBosonResonances.EDBRJets.redoPatJets_cff import patJetCorrFactorsAK8, patJetsAK8, selectedPatJetsAK8 # Redo ak8PFJetsCHS process.patJetCorrFactorsAK8 = patJetCorrFactorsAK8.clone( src = 'ak8PFJetsCHS' ) process.patJetsAK8 = patJetsAK8.clone( jetSource = 'ak8PFJetsCHS' ) process.patJetsAK8.jetCorrFactorsSource = cms.VInputTag( cms.InputTag("patJetCorrFactorsAK8") ) process.selectedPatJetsAK8 = selectedPatJetsAK8.clone( cut = cms.string('pt > 20') ) process.redoPatJets = cms.Sequence( process.patJetCorrFactorsAK8 + process.patJetsAK8 + process.selectedPatJetsAK8 ) # Redo ak8PFJetsCHSPruned process.patPrunedJetCorrFactorsAK8 = patJetCorrFactorsAK8.clone( src = 'ak8PFJetsCHSPruned' ) process.patPrunedJetsAK8 = patJetsAK8.clone( jetSource = 'ak8PFJetsCHSPruned' ) process.patPrunedJetsAK8.jetCorrFactorsSource = cms.VInputTag( cms.InputTag("patPrunedJetCorrFactorsAK8") ) process.patPrunedJetsAK8.userData.userFloats =cms.PSet(src = cms.VInputTag("")) process.selectedPrunedPatJetsAK8 = selectedPatJetsAK8.clone(cut = 'pt > 20', src = "patPrunedJetsAK8") process.redoPrunedPatJets = cms.Sequence( process.patPrunedJetCorrFactorsAK8 + process.patPrunedJetsAK8 + process.selectedPrunedPatJetsAK8 ) # Redo ak8PFJetsCHSSoftDrop process.patSoftDropJetCorrFactorsAK8 = patJetCorrFactorsAK8.clone( src = 'ak8PFJetsCHSSoftDrop' ) process.patSoftDropJetsAK8 = patJetsAK8.clone( jetSource = 'ak8PFJetsCHSSoftDrop' ) process.patSoftDropJetsAK8.jetCorrFactorsSource = cms.VInputTag( cms.InputTag("patSoftDropJetCorrFactorsAK8") ) process.patSoftDropJetsAK8.userData.userFloats =cms.PSet(src = cms.VInputTag("")) process.selectedSoftDropPatJetsAK8 = selectedPatJetsAK8.clone(cut = 'pt > 20', src = "patSoftDropJetsAK8") process.redoSoftDropPatJets = cms.Sequence( process.patSoftDropJetCorrFactorsAK8 + process.patSoftDropJetsAK8 + process.selectedSoftDropPatJetsAK8 )
Remember to add to your path:
process.p = cms.Path(process.substructureSequence*process.redoPatJets*process.redoPrunedPatJets*process.redoSoftDropPatJets*process.ntuplizer)