File indexing completed on 2024-09-07 04:37:30
0001
0002
0003 #include "FWCore/Framework/interface/stream/EDProducer.h"
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0006 #include "FWCore/ParameterSet/interface/PluginDescription.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 #include "FWCore/Utilities/interface/ESGetToken.h"
0009 #include "FWCore/Framework/interface/ESHandle.h"
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 #include "FWCore/Framework/interface/MakerMacros.h"
0012 #include "DataFormats/HGCalReco/interface/Trackster.h"
0013
0014 using namespace ticl;
0015
0016 class MergedTrackstersProducer : public edm::stream::EDProducer<> {
0017 public:
0018 explicit MergedTrackstersProducer(const edm::ParameterSet &ps);
0019 ~MergedTrackstersProducer() override {}
0020 void produce(edm::Event &, const edm::EventSetup &) override;
0021 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0022
0023 private:
0024 edm::EDGetTokenT<std::vector<Trackster>> egamma_tracksters_token_;
0025
0026 edm::EDGetTokenT<std::vector<Trackster>> general_tracksters_token_;
0027 };
0028
0029 MergedTrackstersProducer::MergedTrackstersProducer(const edm::ParameterSet &ps)
0030 : egamma_tracksters_token_(
0031 consumes<std::vector<ticl::Trackster>>(ps.getParameter<edm::InputTag>("egamma_tracksters"))),
0032 general_tracksters_token_(
0033 consumes<std::vector<ticl::Trackster>>(ps.getParameter<edm::InputTag>("had_tracksters"))) {
0034 produces<std::vector<Trackster>>();
0035 }
0036
0037 void MergedTrackstersProducer::produce(edm::Event &evt, const edm::EventSetup &es) {
0038 auto resultTracksters = std::make_unique<std::vector<Trackster>>();
0039 auto const &egamma_tracksters = evt.get(egamma_tracksters_token_);
0040 auto const &had_tracksters = evt.get(general_tracksters_token_);
0041 for (auto const &eg_trackster : egamma_tracksters) {
0042 resultTracksters->push_back(eg_trackster);
0043 }
0044 for (auto const &had_trackster : had_tracksters) {
0045 resultTracksters->push_back(had_trackster);
0046 }
0047
0048 evt.put(std::move(resultTracksters));
0049 }
0050
0051 void MergedTrackstersProducer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) {
0052 edm::ParameterSetDescription desc;
0053 desc.add<edm::InputTag>("egamma_tracksters", edm::InputTag("ticlTrackstersCLUE3DEM"));
0054 desc.add<edm::InputTag>("had_tracksters", edm::InputTag("ticlTrackstersCLUE3DHAD"));
0055 descriptions.add("mergedTrackstersProducer", desc);
0056 }
0057
0058 DEFINE_FWK_MODULE(MergedTrackstersProducer);