CMS 3D CMS Logo

HGCalTriggerNtupleGenJet.cc
Go to the documentation of this file.
4 
6 
7 
8 
10 {
11 
12  public:
14 
15  virtual void initialize(TTree&, const edm::ParameterSet&, edm::ConsumesCollector&&) override final;
16  virtual void fill(const edm::Event&, const edm::EventSetup& ) override final;
17 
18  private:
19  virtual void clear() override final;
20 
22 
23  int genjet_n_;
24  std::vector<float> genjet_energy_;
25  std::vector<float> genjet_pt_;
26  std::vector<float> genjet_eta_;
27  std::vector<float> genjet_phi_;
28 
29 };
30 
33  "HGCalTriggerNtupleGenJet" );
34 
35 
38 {
39 }
40 
41 void
43 initialize(TTree& tree, const edm::ParameterSet& conf, edm::ConsumesCollector&& collector)
44 {
45 
46  genjet_token_ = collector.consumes<reco::GenJetCollection>(conf.getParameter<edm::InputTag>("GenJets"));
47  tree.Branch("genjet_n", &genjet_n_, "genjet_n/I");
48  tree.Branch("genjet_energy", &genjet_energy_);
49  tree.Branch("genjet_pt", &genjet_pt_);
50  tree.Branch("genjet_eta", &genjet_eta_);
51  tree.Branch("genjet_phi", &genjet_phi_);
52 
53 }
54 
55 void
57 fill(const edm::Event& e, const edm::EventSetup& es)
58 {
60  e.getByToken(genjet_token_, genjets_h);
61  const reco::GenJetCollection& genjets = *genjets_h;
62 
63  clear();
64  genjet_n_ = genjets.size();
65  genjet_energy_.reserve(genjet_n_);
66  genjet_pt_.reserve(genjet_n_);
67  genjet_eta_.reserve(genjet_n_);
68  genjet_phi_.reserve(genjet_n_);
69  for(const auto& jet : genjets)
70  {
71  genjet_energy_.emplace_back(jet.energy());
72  genjet_pt_.emplace_back(jet.pt());
73  genjet_eta_.emplace_back(jet.eta());
74  genjet_phi_.emplace_back(jet.phi());
75  }
76 
77 }
78 
79 
80 void
83 {
84  genjet_n_ = 0;
85  genjet_energy_.clear();
86  genjet_pt_.clear();
87  genjet_eta_.clear();
88  genjet_phi_.clear();
89 }
90 
91 
92 
93 
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
HGCalTriggerNtupleGenJet(const edm::ParameterSet &)
virtual void initialize(TTree &, const edm::ParameterSet &, edm::ConsumesCollector &&) override final
std::vector< GenJet > GenJetCollection
collection of GenJet objects
virtual void clear() override final
std::vector< float > genjet_energy_
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: tree.py:1
virtual void fill(const edm::Event &, const edm::EventSetup &) override final