Exemple #1
0
    jetFlavourInfos = "genJetFlavourInfos",
    onlyJetClusteredHadrons = cms.bool(False)
)

# Plugin for analysing C hadrons
# MUST use the same particle collection as in selectedHadronsAndPartons
#from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cff import matchGenCHadron
#process.matchGenCHadron = matchGenCHadron.clone(
#    genParticles = genParticleCollection,
#    jetFlavourInfos = "genJetFlavourInfos"
#)

process.load("PhysicsTools/JetMCAlgos/ttHFGenFilter_cfi")
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter
process.ttHFGenFilter = ttHFGenFilter.clone(
    genParticles = genParticleCollection,
    taggingMode  = cms.bool(True),
)

print "If taggingMode is set to true, the filter will write a branch into the tree instead of filtering the events"
print "taggingMode is set to ", process.ttHFGenFilter.taggingMode


## configuring the testing analyzer that produces output tree
#process.matchGenHFHadrons = cms.EDAnalyzer("matchGenHFHadrons",
#    # phase space of jets to be stored
#    genJetPtMin = cms.double(15),
#    genJetAbsEtaMax = cms.double(2.4),
#    # input tags holding information about matching
#    genJets = cms.InputTag(genJetCollection),
#    genBHadJetIndex = cms.InputTag("matchGenBHadron", "genBHadJetIndex"),
#    genBHadFlavour = cms.InputTag("matchGenBHadron", "genBHadFlavour"),
process.matchGenBHadron = matchGenBHadron.clone(
    genParticles=genParticleCollection,
    jetFlavourInfos="genJetFlavourInfos",
    onlyJetClusteredHadrons=cms.bool(False))

# Plugin for analysing C hadrons
# MUST use the same particle collection as in selectedHadronsAndPartons
#from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cff import matchGenCHadron
#process.matchGenCHadron = matchGenCHadron.clone(
#    genParticles = genParticleCollection,
#    jetFlavourInfos = "genJetFlavourInfos"
#)

process.load("PhysicsTools/JetMCAlgos/ttHFGenFilter_cfi")
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter
process.ttHFGenFilter = ttHFGenFilter.clone(genParticles=genParticleCollection)

## configuring the testing analyzer that produces output tree
#process.matchGenHFHadrons = cms.EDAnalyzer("matchGenHFHadrons",
#    # phase space of jets to be stored
#    genJetPtMin = cms.double(15),
#    genJetAbsEtaMax = cms.double(2.4),
#    # input tags holding information about matching
#    genJets = cms.InputTag(genJetCollection),
#    genBHadJetIndex = cms.InputTag("matchGenBHadron", "genBHadJetIndex"),
#    genBHadFlavour = cms.InputTag("matchGenBHadron", "genBHadFlavour"),
#    genBHadFromTopWeakDecay = cms.InputTag("matchGenBHadron", "genBHadFromTopWeakDecay"),
#    genBHadPlusMothers = cms.InputTag("matchGenBHadron", "genBHadPlusMothers"),
#    genBHadPlusMothersIndices = cms.InputTag("matchGenBHadron", "genBHadPlusMothersIndices"),
#    genBHadIndex = cms.InputTag("matchGenBHadron", "genBHadIndex"),
#    genBHadLeptonHadronIndex = cms.InputTag("matchGenBHadron", "genBHadLeptonHadronIndex"),
## Producer for ttbar categorisation ID
# MUST use same genJetCollection as used for tools above
from PhysicsTools.JetMCAlgos.GenTtbarCategorizer_cfi import categorizeGenTtbar
#from TopQuarkAnalysis.TopTools.GenTtbarCategorizer_cfi import categorizeGenTtbar
process.categorizeGenTtbar = categorizeGenTtbar.clone(
    genJets=cms.InputTag(genJetCollection),
    genJetPtMin=cms.double(20.),
    genJetAbsEtaMax=cms.double(2.4))

seq += process.categorizeGenTtbar

# the ttHFGen filter, used as a tagger
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter

process.ttHFGenFilter = ttHFGenFilter.clone(
    genParticles=cms.InputTag(genParticleCollection),
    taggingMode=cms.bool(True))
seq += process.ttHFGenFilter

# load the analysis:
process.load("Analyzers.ttH_analyzer.ttHbb_cfi")

# pat object collections
process.ttHbb.input_tags.electrons = electronCollection
process.ttHbb.input_tags.muons = muonCollection
process.ttHbb.input_tags.mets = METCollection
process.ttHbb.input_tags.jets = jetCollection

#electron VID collections
#process.ttHbb.electronVIDCollections = cms.VInputTag(
#     "egmGsfElectronIDs:mvaEleID-Spring15-25ns-Trig-V1-wp80",
    jetFlavourInfos = "genJetFlavourInfos",
    onlyJetClusteredHadrons = cms.bool(False)
)

# Plugin for analysing C hadrons
# MUST use the same particle collection as in selectedHadronsAndPartons
#from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cff import matchGenCHadron
#process.matchGenCHadron = matchGenCHadron.clone(
#    genParticles = genParticleCollection,
#    jetFlavourInfos = "genJetFlavourInfos"
#)

process.load("PhysicsTools/JetMCAlgos/ttHFGenFilter_cfi")
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter
process.ttHFGenFilter = ttHFGenFilter.clone(
    genParticles = genParticleCollection
)


## configuring the testing analyzer that produces output tree
#process.matchGenHFHadrons = cms.EDAnalyzer("matchGenHFHadrons",
#    # phase space of jets to be stored
#    genJetPtMin = cms.double(15),
#    genJetAbsEtaMax = cms.double(2.4),
#    # input tags holding information about matching
#    genJets = cms.InputTag(genJetCollection),
#    genBHadJetIndex = cms.InputTag("matchGenBHadron", "genBHadJetIndex"),
#    genBHadFlavour = cms.InputTag("matchGenBHadron", "genBHadFlavour"),
#    genBHadFromTopWeakDecay = cms.InputTag("matchGenBHadron", "genBHadFromTopWeakDecay"),
#    genBHadPlusMothers = cms.InputTag("matchGenBHadron", "genBHadPlusMothers"),
#    genBHadPlusMothersIndices = cms.InputTag("matchGenBHadron", "genBHadPlusMothersIndices"),
# MUST use same genJetCollection as used for tools above
from PhysicsTools.JetMCAlgos.GenTtbarCategorizer_cfi import categorizeGenTtbar
#from TopQuarkAnalysis.TopTools.GenTtbarCategorizer_cfi import categorizeGenTtbar
process.categorizeGenTtbar = categorizeGenTtbar.clone(
		genJets = cms.InputTag(genJetCollection),
		genJetPtMin     = cms.double(20.),
		genJetAbsEtaMax = cms.double(2.4)
)

seq += process.categorizeGenTtbar


# the ttHFGen filter, used as a tagger
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter
process.ttHFGenFilter = ttHFGenFilter.clone(
	genParticles = cms.InputTag(genParticleCollection),
	taggingMode  = cms.bool(True)
)
seq += process.ttHFGenFilter

# load the analysis:
process.load("Analyzers.ttH_analyzer.ttHbb_cfi")

# pat object collections
process.ttHbb.input_tags.electrons = electronCollection
process.ttHbb.input_tags.muons     = muonCollection
process.ttHbb.input_tags.mets      = METCollection
process.ttHbb.input_tags.jets     = jetCollection

#electron VID collections
#process.ttHbb.electronVIDCollections = cms.VInputTag(
#     "egmGsfElectronIDs:mvaEleID-Spring15-25ns-Trig-V1-wp80",
    jetFlavourInfos = "genJetFlavourInfos",
    onlyJetClusteredHadrons = cms.bool(False)
)

# Plugin for analysing C hadrons
# MUST use the same particle collection as in selectedHadronsAndPartons
#from PhysicsTools.JetMCAlgos.GenHFHadronMatcher_cff import matchGenCHadron
#process.matchGenCHadron = matchGenCHadron.clone(
#    genParticles = genParticleCollection,
#    jetFlavourInfos = "genJetFlavourInfos"
#)

process.load("PhysicsTools/JetMCAlgos/ttHFGenFilter_cfi")
from PhysicsTools.JetMCAlgos.ttHFGenFilter_cfi import ttHFGenFilter
process.ttHFGenFilter = ttHFGenFilter.clone(
    genParticles = genParticleCollection,
    taggingMode  = cms.bool(True),
)
print "If taggingMode is set to true, the filter will write a branch into the tree instead of filtering the events"
print "taggingMode is set to ", process.ttHFGenFilter.taggingMode



## configuring the testing analyzer that produces output tree
#process.matchGenHFHadrons = cms.EDAnalyzer("matchGenHFHadrons",
#    # phase space of jets to be stored
#    genJetPtMin = cms.double(15),
#    genJetAbsEtaMax = cms.double(2.4),
#    # input tags holding information about matching
#    genJets = cms.InputTag(genJetCollection),
#    genBHadJetIndex = cms.InputTag("matchGenBHadron", "genBHadJetIndex"),
#    genBHadFlavour = cms.InputTag("matchGenBHadron", "genBHadFlavour"),