CMS 3D CMS Logo

UniqueStringProducer.cc
Go to the documentation of this file.
5 
6 #include <vector>
7 
8 class UniqueStringProducer : public edm::global::EDProducer<edm::BeginRunProducer> {
9 public:
11  const edm::ParameterSet& strings = iConfig.getParameter<edm::ParameterSet>("strings");
12  for (const std::string& vname : strings.getParameterNamesForType<std::string>()) {
13  strings_.emplace_back(vname, strings.getParameter<std::string>(vname));
14  produces<nanoaod::UniqueString, edm::InRun>(vname);
15  }
16  }
17 
18  ~UniqueStringProducer() override {}
19 
20  void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override {} // do nothing
21 
22  void globalBeginRunProduce(edm::Run& iRun, edm::EventSetup const&) const override {
23  for (const auto& pair : strings_) {
24  iRun.put(std::make_unique<nanoaod::UniqueString>(pair.second), pair.first);
25  }
26  }
27 
28 protected:
29  std::vector<std::pair<std::string, std::string>> strings_;
30 };
31 
UniqueStringProducer
Definition: UniqueStringProducer.cc:8
edm::StreamID
Definition: StreamID.h:30
UniqueStringProducer::produce
void produce(edm::StreamID, edm::Event &, edm::EventSetup const &) const override
Definition: UniqueStringProducer.cc:20
edm::Run
Definition: Run.h:45
nano_cff.strings
strings
Definition: nano_cff.py:28
MakerMacros.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::Run::put
void put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Run.h:108
Run.h
edm::global::EDProducer
Definition: EDProducer.h:32
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition: ParameterSet.h:36
UniqueString.h
edm::EventSetup
Definition: EventSetup.h:57
UniqueStringProducer::strings_
std::vector< std::pair< std::string, std::string > > strings_
Definition: UniqueStringProducer.cc:29
UniqueStringProducer::globalBeginRunProduce
void globalBeginRunProduce(edm::Run &iRun, edm::EventSetup const &) const override
Definition: UniqueStringProducer.cc:22
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
UniqueStringProducer::UniqueStringProducer
UniqueStringProducer(edm::ParameterSet const &iConfig)
Definition: UniqueStringProducer.cc:10
ParameterSet.h
EDProducer.h
edm::Event
Definition: Event.h:73
UniqueStringProducer::~UniqueStringProducer
~UniqueStringProducer() override
Definition: UniqueStringProducer.cc:18