diff --git a/DQMServices/Components/plugins/DQMFileSaver.cc b/DQMServices/Components/plugins/DQMFileSaver.cc index 11803cf31dd8c..2390368cf2bb9 100644 --- a/DQMServices/Components/plugins/DQMFileSaver.cc +++ b/DQMServices/Components/plugins/DQMFileSaver.cc @@ -5,6 +5,9 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Run.h" #include "FWCore/Framework/interface/LuminosityBlock.h" +#include "FWCore/Framework/interface/GetterOfProducts.h" +#include "FWCore/Framework/interface/ProcessMatch.h" +#include "FWCore/Framework/interface/LuminosityBlock.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Version/interface/GetReleaseVersion.h" #include "FWCore/ServiceRegistry/interface/Service.h" @@ -60,6 +63,11 @@ class DQMFileSaver : public edm::one::EDAnalyzer jobmegetter_; + edm::GetterOfProducts runmegetter_; }; //-------------------------------------------------------- @@ -146,9 +154,15 @@ DQMFileSaver::DQMFileSaver(const edm::ParameterSet &ps) fileBaseName_(""), dbe_(&*edm::Service()), nrun_(0), - irun_(0) { - consumesMany(); - consumesMany(); + irun_(0), + // Abuse ProcessMatch as a "match all". + jobmegetter_(edm::GetterOfProducts(edm::ProcessMatch("*"), this, edm::InProcess)), + runmegetter_(edm::GetterOfProducts(edm::ProcessMatch("*"), this, edm::InRun)) { + callWhenNewProductsRegistered([this](edm::BranchDescription const &bd) { + this->jobmegetter_(bd); + this->runmegetter_(bd); + }); + workflow_ = ps.getUntrackedParameter("workflow", workflow_); if (workflow_.empty() || workflow_[0] != '/' || *workflow_.rbegin() == '/' || std::count(workflow_.begin(), workflow_.end(), '/') != 3 ||