1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/global/EDProducer.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
namespace edm {
class BooleanProducer : public global::EDProducer<> {
public:
explicit BooleanProducer(ParameterSet const& config)
: value_(config.getParameter<bool>("value")), token_(produces<bool>()) {}
void produce(StreamID sid, Event& event, EventSetup const& setup) const final { event.emplace(token_, value_); }
static void fillDescriptions(ConfigurationDescriptions& descriptions);
private:
const bool value_;
const edm::EDPutTokenT<bool> token_;
};
void BooleanProducer::fillDescriptions(ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<bool>("value", false);
descriptions.addWithDefaultLabel(desc);
descriptions.setComment("This EDProducer produces a boolean value according to the \"value\" parameter.");
}
} // namespace edm
#include "FWCore/Framework/interface/MakerMacros.h"
using edm::BooleanProducer;
DEFINE_FWK_MODULE(BooleanProducer);
|