File indexing completed on 2023-10-25 09:59:50
0001 #include "RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h"
0002 #include "FWCore/Framework/interface/Event.h"
0003 #include "DataFormats/Common/interface/View.h"
0004 #include "FWCore/Framework/interface/MakerMacros.h"
0005 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
0006
0007 using namespace std;
0008
0009 FixedGridRhoProducerFastjet::FixedGridRhoProducerFastjet(const edm::ParameterSet& iConfig)
0010 : bge_(iConfig.getParameter<double>("maxRapidity"), iConfig.getParameter<double>("gridSpacing")) {
0011 pfCandidatesTag_ = iConfig.getParameter<edm::InputTag>("pfCandidatesTag");
0012 produces<double>();
0013
0014 input_pfcoll_token_ = consumes<edm::View<reco::Candidate> >(pfCandidatesTag_);
0015 }
0016
0017 FixedGridRhoProducerFastjet::~FixedGridRhoProducerFastjet() {}
0018
0019 void FixedGridRhoProducerFastjet::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
0020 edm::Handle<edm::View<reco::Candidate> > pfColl;
0021 iEvent.getByToken(input_pfcoll_token_, pfColl);
0022 std::vector<fastjet::PseudoJet> inputs;
0023 for (edm::View<reco::Candidate>::const_iterator ibegin = pfColl->begin(), iend = pfColl->end(), i = ibegin; i != iend;
0024 ++i) {
0025 inputs.push_back(fastjet::PseudoJet(i->px(), i->py(), i->pz(), i->energy()));
0026 }
0027 bge_.set_particles(inputs);
0028 iEvent.put(std::make_unique<double>(bge_.rho()));
0029 }
0030
0031 DEFINE_FWK_MODULE(FixedGridRhoProducerFastjet);