File indexing completed on 2024-04-06 12:24:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/one/EDProducer.h"
0025
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030
0031 #include "PhysicsTools/UtilAlgos/interface/NTupler.h"
0032 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0033
0034
0035
0036
0037
0038 class NTuplingDevice : public edm::one::EDProducer<edm::one::SharedResources> {
0039 public:
0040 explicit NTuplingDevice(const edm::ParameterSet&);
0041 ~NTuplingDevice() override;
0042
0043 private:
0044 void produce(edm::Event&, const edm::EventSetup&) override;
0045
0046
0047 std::unique_ptr<NTupler> ntupler_;
0048 };
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 NTuplingDevice::NTuplingDevice(const edm::ParameterSet& iConfig) {
0062 usesResource(TFileService::kSharedResource);
0063
0064 edm::ParameterSet ntPset = iConfig.getParameter<edm::ParameterSet>("Ntupler");
0065 std::string ntuplerName = ntPset.getParameter<std::string>("ComponentName");
0066 ntupler_ = NTuplerFactory::get()->create(ntuplerName, ntPset);
0067
0068
0069 ntupler_->registerleaves(producesCollector());
0070
0071
0072 produces<double>("dummy");
0073 }
0074
0075 NTuplingDevice::~NTuplingDevice() {}
0076
0077
0078 void NTuplingDevice::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
0079 ntupler_->fill(iEvent);
0080 iEvent.put(std::make_unique<double>(0.), "dummy");
0081 }
0082
0083
0084 DEFINE_FWK_MODULE(NTuplingDevice);