Imperial Analysis
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ICCandidateProducer.cc
Go to the documentation of this file.
2 #include <memory>
3 #include <string>
4 #include <vector>
5 #include "FWCore/Framework/interface/Event.h"
6 #include "FWCore/Framework/interface/EventSetup.h"
7 #include "FWCore/Framework/interface/MakerMacros.h"
8 #include "FWCore/ParameterSet/interface/ParameterSet.h"
9 #include "FWCore/Utilities/interface/InputTag.h"
10 #include "DataFormats/Common/interface/Handle.h"
11 #include "DataFormats/Common/interface/View.h"
17 
18 ICCandidateProducer::ICCandidateProducer(const edm::ParameterSet& config)
19  : input_(config.getParameter<edm::InputTag>("input")),
20  branch_(config.getParameter<std::string>("branch")) {
21  consumes<edm::View<reco::Candidate>>(input_);
22  candidates_ = new std::vector<ic::Candidate>();
23  PrintHeaderWithProduces(config, input_, branch_);
24 }
25 
27 
28 void ICCandidateProducer::produce(edm::Event& event,
29  const edm::EventSetup& setup) {
30  edm::Handle<edm::View<reco::Candidate> > cand_handle;
31  event.getByLabel(input_, cand_handle);
32 
33  candidates_->clear();
34  candidates_->resize(cand_handle->size(), ic::Candidate());
35 
36  for (unsigned i = 0; i < cand_handle->size(); ++i) {
37  reco::Candidate const& src = cand_handle->at(i);
38  ic::Candidate & dest = candidates_->at(i);
39  dest.set_id(cand_hasher_(&src));
40  dest.set_pt(src.pt());
41  dest.set_eta(src.eta());
42  dest.set_phi(src.phi());
43  dest.set_energy(src.energy());
44  dest.set_charge(src.charge());
45  }
46 }
47 
48 void ICCandidateProducer::beginJob() {
49  ic::StaticTree::tree_->Branch(branch_.c_str(), &candidates_);
50 }
51 
52 void ICCandidateProducer::endJob() {}
53 
DEFINE_FWK_MODULE(ICCandidateProducer)
Stores a four-momentum, charge and identifier, and is the base class for most other physics objects...
Definition: Candidate.hh:13
void set_phi(double const &phi)
Direct access to .
Definition: Candidate.hh:75
void set_id(std::size_t const &id)
Unique identifier.
Definition: Candidate.hh:66
void set_charge(int const &charge)
Electric charge.
Definition: Candidate.hh:81
static TTree * tree_
Definition: StaticTree.hh:13
void set_energy(double const &energy)
Direct access to the energy.
Definition: Candidate.hh:78
ICCandidateProducer(const edm::ParameterSet &)
Definition: Consumes.h:19
void set_pt(double const &pt)
Direct access to the .
Definition: Candidate.hh:69
See documentation here.
void set_eta(double const &eta)
Direct access to .
Definition: Candidate.hh:72
void PrintHeaderWithProduces(edm::ParameterSet const &config, edm::InputTag const &in, std::string branch)