from PhysicsTools.JetMCAlgos.GenJetParticles_cff import genParticlesForJetsNoNuPlusNoHadron from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron # Supplies PDG ID to real name resolution of MC particles from SimGeneral.HepPDTESSource.pythiapdt_cfi import * # Configuration for matching B-hadrons ================================================================ genParticlesForJetsPlusBHadron = genParticlesForJetsPlusNoHadron.clone() genParticlesForJetsPlusBHadron.injectHadronFlavours = [5] ak5GenJetsPlusBHadron = ak5GenJets.clone() ak5GenJetsPlusBHadron.src = "genParticlesForJetsPlusBHadron" matchGenBHadron = matchGenHFHadron.clone() matchGenBHadron.flavour = 5 matchGenBHadron.genJets = cms.InputTag("ak5GenJetsPlusBHadron", "", "") genBHadronMatchingSequence = cms.Sequence( genParticlesForJetsPlusBHadron * ak5GenJetsPlusBHadron * matchGenBHadron ) # Configuration for matching C-hadrons ================================================================= genParticlesForJetsPlusCHadron = genParticlesForJetsPlusNoHadron.clone() genParticlesForJetsPlusCHadron.injectHadronFlavours = [4] ak5GenJetsPlusCHadron = ak5GenJets.clone() ak5GenJetsPlusCHadron.src = "genParticlesForJetsPlusCHadron" matchGenCHadron = matchGenHFHadron.clone() matchGenCHadron.flavour = 4 matchGenCHadron.genJets = cms.InputTag("ak5GenJetsPlusCHadron", "", "") genCHadronMatchingSequence = cms.Sequence( genParticlesForJetsPlusCHadron * ak5GenJetsPlusCHadron * matchGenCHadron )
def genHFTool(process, useMiniAOD=True): # Setting input particle collections to be used by the tools genParticleCollection = '' genJetCollection = 'ak4GenJetsCustom' if useMiniAOD: genParticleCollection = 'prunedGenParticles' genJetCollection = 'slimmedGenJets' else: genParticleCollection = 'genParticles' ## producing a subset of genParticles to be used for jet reclustering from RecoJets.Configuration.GenJetParticles_cff import genParticlesForJetsNoNu process.genParticlesForJetsCustom = genParticlesForJetsNoNu.clone( src=genParticleCollection) # Producing own jets for testing purposes from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets process.ak4GenJetsCustom = ak4GenJets.clone( src='genParticlesForJetsCustom', rParam=cms.double(0.4), jetAlgorithm=cms.string("AntiKt")) # Supplies PDG ID to real name resolution of MC particles process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") # Ghost particle collection used for Hadron-Jet association # MUST use proper input particle collection process.load("PhysicsTools.JetMCAlgos.HadronAndPartonSelector_cfi") process.selectedHadronsAndPartons.particles = genParticleCollection ## Input particle collection for matching to gen jets (partons + leptons) # MUST use use proper input jet collection: the jets to which hadrons should be associated # rParam and jetAlgorithm MUST match those used for jets to be associated with hadrons # More details on the tool: https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools#New_jet_flavour_definition from PhysicsTools.JetMCAlgos.AK4PFJetsMCFlavourInfos_cfi import ak4JetFlavourInfos process.genJetFlavourInfos = ak4JetFlavourInfos.clone( jets=genJetCollection) #for cmssw_7_6_X, not ready for 74x #process.load("PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cff") #added the 3-lines instead of GenHFHadronMatcher_cff from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron process.matchGenBHadron = matchGenHFHadron.clone(flavour=5) process.matchGenCHadron = matchGenHFHadron.clone(flavour=4) ## Plugin for analysing B hadrons # MUST use the same particle collection as in selectedHadronsAndPartons process.matchGenBHadron.genParticles = genParticleCollection process.matchGenBHadron.jetFlavourInfos = "genJetFlavourInfos" ## Plugin for analysing C hadrons # MUST use the same particle collection as in selectedHadronsAndPartons process.matchGenCHadron.genParticles = genParticleCollection process.matchGenCHadron.jetFlavourInfos = "genJetFlavourInfos" process.load("TopQuarkAnalysis.TopTools.GenTtbarCategorizer_cfi") process.GenTtbarCategories = process.categorizeGenTtbar.clone( genJets=cms.InputTag(genJetCollection), genJetPtMin=cms.double(20.)) process.GenTtbarCategories30 = process.categorizeGenTtbar.clone( genJets=cms.InputTag(genJetCollection), genJetPtMin=cms.double(30.)) process.GenTtbarCategories40 = process.categorizeGenTtbar.clone( genJets=cms.InputTag(genJetCollection), genJetPtMin=cms.double(40.)) process.catGenTops.genJetLabel = genJetCollection process.catGenTops.mcParticleLabel = genParticleCollection
import FWCore.ParameterSet.Config as cms # Flavour info: jet collection with all associated ghosts from PhysicsTools.JetMCAlgos.AK5PFJetsMCFlavourInfos_cfi import ak5JetFlavourInfos genJetFlavourPlusLeptonInfos = ak5JetFlavourInfos.clone( leptons = cms.InputTag("selectedHadronsAndPartons","leptons") ) from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron # Configuration for matching B-hadrons ================================================================ matchGenBHadron = matchGenHFHadron.clone( jetFlavourInfos = cms.InputTag("genJetFlavourPlusLeptonInfos"), flavour = 5 ) # Configuration for matching C-hadrons ================================================================= matchGenCHadron = matchGenHFHadron.clone( jetFlavourInfos = cms.InputTag("genJetFlavourPlusLeptonInfos"), flavour = 4 )
import FWCore.ParameterSet.Config as cms from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron # Configuration for matching B-hadrons ================================================================ matchGenBHadron = matchGenHFHadron.clone(flavour=5) # Configuration for matching C-hadrons ================================================================= matchGenCHadron = matchGenHFHadron.clone(flavour=4)
import FWCore.ParameterSet.Config as cms # Flavour info: jet collection with all associated ghosts from PhysicsTools.JetMCAlgos.AK5PFJetsMCFlavourInfos_cfi import ak5JetFlavourInfos genJetFlavourPlusLeptonInfos = ak5JetFlavourInfos.clone( leptons=cms.InputTag("selectedHadronsAndPartons", "leptons")) from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron # Configuration for matching B-hadrons ================================================================ matchGenBHadron = matchGenHFHadron.clone( jetFlavourInfos=cms.InputTag("genJetFlavourPlusLeptonInfos"), flavour=5) # Configuration for matching C-hadrons ================================================================= matchGenCHadron = matchGenHFHadron.clone( jetFlavourInfos=cms.InputTag("genJetFlavourPlusLeptonInfos"), flavour=4)
import FWCore.ParameterSet.Config as cms from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cfi import matchGenHFHadron # Configuration for matching B-hadrons ================================================================ matchGenBHadron = matchGenHFHadron.clone( flavour = 5 ) # Configuration for matching C-hadrons ================================================================= matchGenCHadron = matchGenHFHadron.clone( flavour = 4 )