From 353c3d6e2611cb281397bc1a4187f860ce9d6f9f Mon Sep 17 00:00:00 2001 From: Congqiao Li Date: Sat, 10 Jul 2021 09:03:55 +0200 Subject: [PATCH] Detect the original GEN module name for ExternalGeneratorFilter set moduleName to its original module name as ExternalGeneratorFilter is a wrapper of a specific generator filter --- PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc | 6 ++++++ TopQuarkAnalysis/TopEventProducers/src/TopDecaySubset.cc | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc b/PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc index 4fd7b9f6e7b47..90714b1edff4e 100644 --- a/PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc +++ b/PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc @@ -142,6 +142,12 @@ void HadronAndPartonSelector::produce(edm::Event& iEvent, const edm::EventSetup& if (genEvtInfoProduct.isValid()) { const edm::StableProvenance& prov = iEvent.getStableProvenance(genEvtInfoProduct.id()); moduleName = edm::moduleName(prov, iEvent.processHistory()); + if (moduleName == "ExternalGeneratorFilter") { + moduleName = parameterSet(prov, iEvent.processHistory()).getParameter("@external_type"); + edm::LogInfo("SpecialModule") + << "GEN events are produced by ExternalGeneratorFilter, " + << "which is a wrapper of the original module: " << moduleName; + } } if (moduleName.find("Pythia6") != std::string::npos) diff --git a/TopQuarkAnalysis/TopEventProducers/src/TopDecaySubset.cc b/TopQuarkAnalysis/TopEventProducers/src/TopDecaySubset.cc index 68730351ccc95..bc7b2fec5c286 100644 --- a/TopQuarkAnalysis/TopEventProducers/src/TopDecaySubset.cc +++ b/TopQuarkAnalysis/TopEventProducers/src/TopDecaySubset.cc @@ -247,6 +247,12 @@ TopDecaySubset::ShowerModel TopDecaySubset::checkShowerModel(edm::Event& event) if (genEvtInfoProduct.isValid()) { const edm::StableProvenance& prov = event.getStableProvenance(genEvtInfoProduct.id()); moduleName = edm::moduleName(prov, event.processHistory()); + if (moduleName == "ExternalGeneratorFilter") { + moduleName = parameterSet(prov, event.processHistory()).getParameter("@external_type"); + edm::LogInfo("SpecialModule") + << "GEN events are produced by ExternalGeneratorFilter, " + << "which is a wrapper of the original module: " << moduleName; + } } ShowerModel shower(kStart);