File indexing completed on 2024-04-06 12:31:14
0001 #include "FWCore/Framework/interface/global/EDProducer.h"
0002 #include "FWCore/Framework/interface/Event.h"
0003 #include "FWCore/Utilities/interface/InputTag.h"
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "AnalysisDataFormats/TopObjects/interface/TtGenEvent.h"
0006 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
0007
0008 class TtGenEventReco : public edm::global::EDProducer<> {
0009 public:
0010 explicit TtGenEventReco(const edm::ParameterSet&);
0011 void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0012
0013 private:
0014 edm::EDGetTokenT<reco::GenParticleCollection> srcToken_;
0015 edm::EDGetTokenT<reco::GenParticleCollection> initToken_;
0016 edm::EDPutTokenT<TtGenEvent> putToken_;
0017 };
0018
0019 TtGenEventReco::TtGenEventReco(const edm::ParameterSet& cfg)
0020 : srcToken_(consumes<reco::GenParticleCollection>(cfg.getParameter<edm::InputTag>("src"))),
0021 initToken_(consumes<reco::GenParticleCollection>(cfg.getParameter<edm::InputTag>("init"))),
0022 putToken_(produces<TtGenEvent>()) {}
0023
0024 void TtGenEventReco::produce(edm::StreamID, edm::Event& evt, const edm::EventSetup& setup) const {
0025
0026 reco::GenParticleRefProd cands(evt.getHandle(srcToken_));
0027
0028
0029 reco::GenParticleRefProd initParts(evt.getHandle(initToken_));
0030
0031
0032 evt.emplace(putToken_, cands, initParts);
0033 }
0034
0035 #include "FWCore/Framework/interface/MakerMacros.h"
0036 DEFINE_FWK_MODULE(TtGenEventReco);