From 0f9c22f5bb40ef84031dabfbf6b50dd700b20e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Brochet?= Date: Mon, 21 Sep 2015 15:10:23 +0200 Subject: [PATCH] Add a way to access other analyses from analyzers --- interface/Analyzer.h | 3 ++- interface/BTagsAnalyzer.h | 2 +- interface/DileptonAnalyzer.h | 2 +- interface/TestAnalyzer.h | 2 +- plugins/TestAnalyzer.cc | 6 +++++- src/BTagsAnalyzer.cc | 2 +- src/DileptonAnalyzer.cc | 2 +- src/Framework.cc | 2 +- 8 files changed, 13 insertions(+), 8 deletions(-) diff --git a/interface/Analyzer.h b/interface/Analyzer.h index 3b8d9df..b892552 100644 --- a/interface/Analyzer.h +++ b/interface/Analyzer.h @@ -22,6 +22,7 @@ typedef ROOT::Math::LorentzVector> LorentzVector; class CategoryManager; +class AnalyzersManager; class ExTreeMaker; namespace Framework { @@ -36,7 +37,7 @@ namespace Framework { tree(tree_) { } - virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const CategoryManager&) = 0; + virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const AnalyzersManager&, const CategoryManager&) = 0; virtual void doConsumes(const edm::ParameterSet&, edm::ConsumesCollector&& collector) {} virtual void registerCategories(CategoryManager& manager, const edm::ParameterSet& config) {} diff --git a/interface/BTagsAnalyzer.h b/interface/BTagsAnalyzer.h index 07b7d4e..865fec5 100644 --- a/interface/BTagsAnalyzer.h +++ b/interface/BTagsAnalyzer.h @@ -14,7 +14,7 @@ class BTagsAnalyzer: public Framework::Analyzer { m_discr_name(config.getUntrackedParameter("discr_name")) { } - virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const CategoryManager&) override; + virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const AnalyzersManager&, const CategoryManager&) override; BRANCH(indices, std::vector); diff --git a/interface/DileptonAnalyzer.h b/interface/DileptonAnalyzer.h index 1c2cde4..d7d34c4 100644 --- a/interface/DileptonAnalyzer.h +++ b/interface/DileptonAnalyzer.h @@ -22,7 +22,7 @@ class DileptonAnalyzer: public Framework::Analyzer { m_electron_tight_wp_name = config.getUntrackedParameter("electrons_tight_wp_name", "cutBasedElectronID-Spring15-50ns-V1-standalone-tight"); } - virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const CategoryManager&) override; + virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const AnalyzersManager&, const CategoryManager&) override; virtual void registerCategories(CategoryManager& manager, const edm::ParameterSet&) override; diff --git a/interface/TestAnalyzer.h b/interface/TestAnalyzer.h index e7b2794..c84e902 100644 --- a/interface/TestAnalyzer.h +++ b/interface/TestAnalyzer.h @@ -38,7 +38,7 @@ class TestAnalyzer: public Framework::Analyzer { } - virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const CategoryManager&) override; + virtual void analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager&, const AnalyzersManager&, const CategoryManager&) override; virtual void registerCategories(CategoryManager& manager, const edm::ParameterSet& config) { manager.new_category("two_muons", "At least two muons category", config); diff --git a/plugins/TestAnalyzer.cc b/plugins/TestAnalyzer.cc index e6681a4..fa63084 100644 --- a/plugins/TestAnalyzer.cc +++ b/plugins/TestAnalyzer.cc @@ -3,11 +3,15 @@ #include #include +#include -void TestAnalyzer::analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager& producers, const CategoryManager& categories) { + +void TestAnalyzer::analyze(const edm::Event&, const edm::EventSetup&, const ProducersManager& producers, const AnalyzersManager& analyzers, const CategoryManager& categories) { const JetsProducer& jets = producers.get("jets"); + const DileptonAnalyzer& di = analyzers.get("dilepton"); + /* if (producers.exists("gen_particles")) { const GenParticlesProducer& gp = dynamic_cast(producers.get("gen_particles")); diff --git a/src/BTagsAnalyzer.cc b/src/BTagsAnalyzer.cc index 624b610..1b7a55a 100644 --- a/src/BTagsAnalyzer.cc +++ b/src/BTagsAnalyzer.cc @@ -2,7 +2,7 @@ #include -void BTagsAnalyzer::analyze(const edm::Event& event, const edm::EventSetup&, const ProducersManager& producers, const CategoryManager& categories) { +void BTagsAnalyzer::analyze(const edm::Event& event, const edm::EventSetup&, const ProducersManager& producers, const AnalyzersManager& analyzers, const CategoryManager& categories) { const JetsProducer& jets = producers.get("jets"); diff --git a/src/DileptonAnalyzer.cc b/src/DileptonAnalyzer.cc index 197b85d..c8b1192 100644 --- a/src/DileptonAnalyzer.cc +++ b/src/DileptonAnalyzer.cc @@ -41,7 +41,7 @@ void DileptonAnalyzer::registerCategories(CategoryManager& manager, const edm::P } } -void DileptonAnalyzer::analyze(const edm::Event& event, const edm::EventSetup&, const ProducersManager& producers, const CategoryManager& categories) { +void DileptonAnalyzer::analyze(const edm::Event& event, const edm::EventSetup&, const ProducersManager& producers, const AnalyzersManager& analyzers, const CategoryManager& categories) { // ***** ***** ***** // Get all dilepton objects out of the event diff --git a/src/Framework.cc b/src/Framework.cc index a6c91af..1e7329c 100644 --- a/src/Framework.cc +++ b/src/Framework.cc @@ -192,7 +192,7 @@ void ExTreeMaker::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } for (auto& analyzer: m_analyzers) { - analyzer->analyze(iEvent, iSetup, *m_producers_manager, *m_categories); + analyzer->analyze(iEvent, iSetup, *m_producers_manager, *m_analyzers_manager, *m_categories); analyzer->setRun(true); }