Skip to content

Commit

Permalink
Add a way to access other analyses from analyzers
Browse files Browse the repository at this point in the history
  • Loading branch information
Sébastien Brochet committed Sep 22, 2015
1 parent 08be6d3 commit 0f9c22f
Show file tree
Hide file tree
Showing 8 changed files with 13 additions and 8 deletions.
3 changes: 2 additions & 1 deletion interface/Analyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float>> LorentzVector;

class CategoryManager;
class AnalyzersManager;
class ExTreeMaker;

namespace Framework {
Expand All @@ -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) {}
Expand Down
2 changes: 1 addition & 1 deletion interface/BTagsAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class BTagsAnalyzer: public Framework::Analyzer {
m_discr_name(config.getUntrackedParameter<std::string>("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<uint8_t>);

Expand Down
2 changes: 1 addition & 1 deletion interface/DileptonAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class DileptonAnalyzer: public Framework::Analyzer {
m_electron_tight_wp_name = config.getUntrackedParameter<std::string>("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;

Expand Down
2 changes: 1 addition & 1 deletion interface/TestAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<TwoMuonsCategory>("two_muons", "At least two muons category", config);
Expand Down
6 changes: 5 additions & 1 deletion plugins/TestAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
#include <cp3_llbb/Framework/interface/GenParticlesProducer.h>
#include <cp3_llbb/Framework/interface/JetsProducer.h>

#include <cp3_llbb/Framework/interface/DileptonAnalyzer.h>

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<JetsProducer>("jets");

const DileptonAnalyzer& di = analyzers.get<DileptonAnalyzer>("dilepton");

/*
if (producers.exists("gen_particles")) {
const GenParticlesProducer& gp = dynamic_cast<const GenParticlesProducer&>(producers.get("gen_particles"));
Expand Down
2 changes: 1 addition & 1 deletion src/BTagsAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include <cp3_llbb/Framework/interface/JetsProducer.h>

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<JetsProducer>("jets");

Expand Down
2 changes: 1 addition & 1 deletion src/DileptonAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/Framework.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 0f9c22f

Please sign in to comment.