====== miniAOD Workbook ====== First of all, read through the Twiki [[https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookMiniAOD|MiniAOD Workbook]]. ===== Jets ===== There are two jet collections stored. They are * "slimmedJets" = AK4PFJetsCHS * "slimmedJetsAK8" = AK8PFJetsCHS (has a transverse momentum cut of pT > 100 GeV) 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. ==== Jet reclustering ==== 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)