Imperial Analysis
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ICJetDestHelper.hh
Go to the documentation of this file.
1 #ifndef UserCode_ICHiggsTauTau_ICJetDestHelper_h
2 #define UserCode_ICHiggsTauTau_ICJetDestHelper_h
3 
4 #include <memory>
5 #include "boost/functional/hash.hpp"
6 #include "FWCore/ParameterSet/interface/ParameterSet.h"
7 #include "FWCore/Framework/interface/Event.h"
8 #include "FWCore/Framework/interface/EventSetup.h"
9 #include "FWCore/Framework/interface/EDProducer.h"
10 #include "FWCore/Utilities/interface/InputTag.h"
11 #include "DataFormats/Math/interface/deltaR.h"
12 #include "DataFormats/JetReco/interface/CaloJet.h"
13 #include "DataFormats/JetReco/interface/PFJet.h"
14 #include "DataFormats/TrackReco/interface/TrackFwd.h"
18 #include "PhysicsTools/SelectorUtils/interface/JetIDSelectionFunctor.h"
20 
21 template <class U>
22 struct JetDestHelper {
23  explicit JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector && collector) {}
24  void DoSetup(edm::EDProducer * prod) {}
26 };
27 
28 template <>
29 struct JetDestHelper<ic::CaloJet> {
30  bool do_jet_id;
31  edm::InputTag input_jet_id;
32  JetIDSelectionFunctor *loose_id;
33  JetIDSelectionFunctor *tight_id;
35 
36  explicit JetDestHelper(const edm::ParameterSet &pset,edm::ConsumesCollector && collector)
37  : do_jet_id(pset.getParameter<bool>("includeJetID")),
38  input_jet_id(pset.getParameter<edm::InputTag>("inputJetID")),
39  loose_id(NULL),
40  tight_id(NULL),
41  do_n_carrying(pset.getParameter<bool>("includeTowerCounts")) {
42  collector.consumes<reco::JetIDValueMap>(input_jet_id);
43  loose_id = new JetIDSelectionFunctor(JetIDSelectionFunctor::PURE09,
44  JetIDSelectionFunctor::LOOSE);
45  tight_id = new JetIDSelectionFunctor(JetIDSelectionFunctor::PURE09,
46  JetIDSelectionFunctor::TIGHT);
47  }
48 
49  void DoSetup(edm::EDProducer * prod) {
50  std::cout << "CaloJet specific options:\n";
51  PrintOptional(1, do_jet_id, "includeJetID");
52  PrintOptional(1, do_n_carrying, "includeTowerCounts");
53  }
54 
56  delete loose_id;
57  delete tight_id;
58  }
59 };
60 
61 template <>
62 struct JetDestHelper<ic::JPTJet> {
63  bool do_jet_id;
64  edm::InputTag input_jet_id;
65  JetIDSelectionFunctor *loose_id;
66  JetIDSelectionFunctor *tight_id;
68  boost::hash<reco::Track const*> track_hasher;
70  edm::InputTag input_trks;
71  edm::InputTag input_vtxs;
73 
74  explicit JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector && collector)
75  : do_jet_id(pset.getParameter<bool>("includeJetID")),
76  input_jet_id(pset.getParameter<edm::InputTag>("inputJetID")),
77  loose_id(NULL),
78  tight_id(NULL),
79  request_trks(pset.getParameter<bool>("requestTracks")),
80  do_trk_vars(pset.getParameter<bool>("includeTrackBasedVars")),
81  input_trks(pset.getParameter<edm::InputTag>("inputTracks")),
82  input_vtxs(pset.getParameter<edm::InputTag>("inputVertices")),
83  do_n_carrying(pset.getParameter<bool>("includeTowerCounts")) {
84  collector.consumes<edm::ValueMap<float>>(input_jet_id);
85  collector.consumes<reco::TrackCollection>(input_trks);
86  collector.consumes<reco::VertexCollection>(input_vtxs);
87  loose_id = new JetIDSelectionFunctor(JetIDSelectionFunctor::PURE09,
88  JetIDSelectionFunctor::LOOSE);
89  tight_id = new JetIDSelectionFunctor(JetIDSelectionFunctor::PURE09,
90  JetIDSelectionFunctor::TIGHT);
91  }
92 
93  void DoSetup(edm::EDProducer * prod) {
94  if (request_trks) {
95  prod->produces<reco::TrackRefVector>("requestedTracks");
96  }
97  std::cout << "JPTJet specific options:\n";
98  PrintOptional(1, do_jet_id, "includeJetID");
99  PrintOptional(1, do_n_carrying, "includeTowerCounts");
100  PrintOptional(1, request_trks, "requestTracks");
101  PrintOptional(1, do_trk_vars, "includeTrackBasedVars");
102  }
103 
104  std::vector<std::size_t> DoTrackCollection(
105  reco::TrackRefVector const &ref_vec, reco::TrackRefVector *target) {
106  std::vector<std::size_t> res(ref_vec.size(), 0);
107  for (unsigned i = 0; i < ref_vec.size(); ++i) {
108  res[i] = track_hasher(&(*(ref_vec[i])));
109  target->push_back(ref_vec[i]);
110  }
111  return res;
112  }
113 
114  void AddTrackCollection(reco::TrackRefVector const &ref_vec,
115  std::vector<reco::Track const *> *target) {
116  for (unsigned i = 0; i < ref_vec.size(); ++i) {
117  target->push_back(&(*(ref_vec[i])));
118  }
119  }
120 
122  delete loose_id;
123  delete tight_id;
124  }
125 };
126 
127 template <>
128 struct JetDestHelper<ic::PFJet> {
129  bool do_pu_id;
130  edm::InputTag input_pu_id;
132  edm::InputTag input_trks;
133  edm::InputTag input_vtxs;
135  boost::hash<reco::Track const*> track_hasher;
136 
137  explicit JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector && collector)
138  : do_pu_id(pset.getParameter<bool>("includePileupID")),
139  input_pu_id(pset.getParameter<edm::InputTag>("inputPileupID")),
140  do_trk_vars(pset.getParameter<bool>("includeTrackBasedVars")),
141  input_trks(pset.getParameter<edm::InputTag>("inputTracks")),
142  input_vtxs(pset.getParameter<edm::InputTag>("inputVertices")),
143  request_trks(pset.getParameter<bool>("requestTracks")) {
144  collector.consumes<edm::ValueMap<float>>(input_pu_id);
145  collector.consumes<reco::TrackCollection>(input_trks);
146  collector.consumes<reco::VertexCollection>(input_vtxs);
147  }
148 
149  void DoSetup(edm::EDProducer * prod) {
150  if (request_trks) {
151  prod->produces<reco::TrackRefVector>("requestedTracks");
152  }
153  std::cout << "PFJet specific options:\n";
154  PrintOptional(1, do_pu_id, "includePileupID");
155  PrintOptional(1, request_trks, "requestTracks");
156  PrintOptional(1, do_trk_vars, "includeTrackBasedVars");
157  }
158 
160 };
161 
162 template<class U>
163 void FillCommonPFJet(ic::PFJet *dest, U const& src) {
164  dest->set_muon_multiplicity(src.muonMultiplicity());
165  dest->set_charged_multiplicity(src.chargedMultiplicity());
166  dest->set_charged_had_multiplicity(src.chargedHadronMultiplicity());
167  dest->set_neutral_had_multiplicity(src.neutralHadronMultiplicity());
168  dest->set_photon_multiplicity(src.photonMultiplicity());
169  dest->set_electron_multiplicity(src.electronMultiplicity());
170  dest->set_HF_had_multiplicity(src.HFHadronMultiplicity());
171  dest->set_HF_em_multiplicity(src.HFEMMultiplicity());
172  dest->set_neutral_multiplicity(src.neutralMultiplicity());
173  dest->set_charged_em_energy(src.chargedEmEnergy());
174  dest->set_neutral_em_energy(src.neutralEmEnergy());
175  dest->set_charged_had_energy(src.chargedHadronEnergy());
176  dest->set_neutral_had_energy(src.neutralHadronEnergy());
177  dest->set_photon_energy(src.photonEnergy());
178  dest->set_electron_energy(src.electronEnergy());
179  dest->set_muon_energy(src.muonEnergy());
180  dest->set_HF_had_energy(src.HFHadronEnergy());
181  dest->set_HF_em_energy(src.HFEMEnergy());
182  dest->set_charged_mu_energy(src.chargedMuEnergy());
183 }
184 
185 template<class U>
186 void FillCommonCaloJet(ic::CaloJet *dest, U const& src) {
187  dest->set_max_em_tower_energy(src.maxEInEmTowers());
188  dest->set_max_had_tower_energy(src.maxEInHadTowers());
189  dest->set_energy_frac_had(src.energyFractionHadronic());
190  dest->set_energy_frac_em(src.emEnergyFraction());
191  dest->set_had_energy_HB(src.hadEnergyInHB());
192  dest->set_had_energy_HO(src.hadEnergyInHO());
193  dest->set_had_energy_HE(src.hadEnergyInHE());
194  dest->set_had_energy_HF(src.hadEnergyInHF());
195  dest->set_em_energy_EB(src.emEnergyInEB());
196  dest->set_em_energy_EE(src.emEnergyInEE());
197  dest->set_em_energy_HF(src.emEnergyInHF());
198  dest->set_towers_area(src.towersArea());
199 }
200 
201 template<class U>
202 void FillCommonJPTJet(ic::JPTJet *dest, U const& src) {
203  dest->set_muon_multiplicity(src.muonMultiplicity());
204  dest->set_charged_multiplicity(src.chargedMultiplicity());
205  dest->set_charged_em_energy(src.chargedEmEnergy());
206  dest->set_neutral_em_energy(src.neutralEmEnergy());
207  dest->set_charged_had_energy(src.chargedHadronEnergy());
208  dest->set_neutral_had_energy(src.neutralHadronEnergy());
209 }
210 
211 
212 std::map<unsigned, unsigned> BuildTrkVtxMap(
213  edm::Handle<reco::TrackCollection> const &trk_handle,
214  edm::Handle<reco::VertexCollection> const &vtx_handle) {
215  std::map<unsigned, unsigned> trk_vtx_map;
216  if (trk_handle->size() > 0) {
217  reco::Track const *ptr_to_first = &(trk_handle->at(0));
218  for (unsigned i = 0; i < vtx_handle->size(); ++i) {
219  std::vector<reco::TrackBaseRef>::const_iterator trk_it;
220  for (trk_it = vtx_handle->at(i).tracks_begin();
221  trk_it != vtx_handle->at(i).tracks_end(); ++trk_it) {
222  reco::Track const *ptr_to_trk =
223  dynamic_cast<reco::Track const *>(&(**trk_it));
224  unsigned trk_idx = (unsigned(ptr_to_trk - ptr_to_first));
225  trk_vtx_map[trk_idx] = i;
226  }
227  }
228  }
229  return trk_vtx_map;
230 }
231 
233  std::vector<reco::PFCandidatePtr> const &pfcands,
234  reco::TrackRefVector *track_requests,
235  boost::hash<reco::Track const *> *track_hasher) {
236  std::vector<std::size_t> track_ids;
237  for (unsigned iP = 0; iP < pfcands.size(); ++iP) {
238  if (pfcands[iP]->trackRef().isNonnull()) {
239  track_requests->push_back(pfcands[iP]->trackRef());
240  track_ids.push_back((*track_hasher)(&(*(pfcands[iP]->trackRef()))));
241  }
242  }
243  dest->set_constituent_tracks(track_ids);
244 }
245 
247  std::vector<reco::Track const *> const &all_tracks,
248  edm::Handle<reco::TrackCollection> const &trk_handle,
249  edm::Handle<reco::VertexCollection> const &vtx_handle,
250  std::map<unsigned, unsigned> const &trk_vtx_map) {
251  std::vector<double> pt_at_vtx_vec(vtx_handle->size(), 0.0);
252  reco::Track const *ptr_first = &(trk_handle->at(0));
253  double trk_pt_total = 0.0;
254  for (unsigned j = 0; j < all_tracks.size(); ++j) {
255  unsigned idx = unsigned(all_tracks[j] - ptr_first);
256  trk_pt_total += all_tracks[j]->pt();
257  // Is track associated to a vertex?
258  if (trk_vtx_map.count(idx) > 0) {
259  pt_at_vtx_vec[trk_vtx_map.find(idx)->second] += all_tracks[j]->pt();
260  } else { // No, so is it within 0.2 cm wrt the closest vertex in z
261  std::vector<double> dz_with_vtx(vtx_handle->size(), 0.0);
262  for (unsigned k = 0; k < vtx_handle->size(); ++k) {
263  dz_with_vtx[k] = fabs(vtx_handle->at(k).z() - all_tracks[j]->vz());
264  }
265  std::vector<double>::const_iterator min =
266  std::min_element(dz_with_vtx.begin(), dz_with_vtx.end());
267  if (min != dz_with_vtx.end()) {
268  if (*min < 0.2) {
269  pt_at_vtx_vec[unsigned(min - dz_with_vtx.begin())] +=
270  all_tracks[j]->pt();
271  }
272  }
273  }
274  }
275  if (vtx_handle->size() > 0 && trk_pt_total > 0.0) {
276  for (unsigned j = 0; j < pt_at_vtx_vec.size(); ++j) {
277  pt_at_vtx_vec[j] = pt_at_vtx_vec[j] / trk_pt_total;
278  }
279  dest->set_beta(pt_at_vtx_vec[0]);
280  dest->set_beta_max(
281  *std::max_element(pt_at_vtx_vec.begin(), pt_at_vtx_vec.end()));
282  dest->set_track_pt_total(trk_pt_total);
283  } else {
284  dest->set_beta(-1.);
285  dest->set_beta_max(-1.);
286  dest->set_track_pt_total(0);
287  }
288 }
289 
291  std::vector<reco::PFCandidatePtr> const &pfcands,
292  edm::Handle<reco::TrackCollection> const &trk_handle,
293  edm::Handle<reco::VertexCollection> const &vtx_handle,
294  std::map<unsigned, unsigned> const &trk_vtx_map) {
295  int charged_multiplicity_nopu = 0;
296  float linear_radial_moment_nopu = 0.0;
297  double trk_pt_total = 0.0;
298  std::vector<double> pt_at_vtx_vec(vtx_handle->size(), 0.0);
299  reco::Track const* ptr_first = &(trk_handle->at(0));
300  for (unsigned iP = 0; iP < pfcands.size(); ++iP) {
301  if (pfcands[iP]->trackRef().isNonnull()) {
302  unsigned idx = unsigned(&(*(pfcands[iP]->trackRef())) - ptr_first);
303  trk_pt_total += pfcands[iP]->trackRef()->pt();
304  // Is track associated to a vertex?
305  if (trk_vtx_map.count(idx) > 0) {
306  // If this track is mapped to the first PV, increase number of nopu
307  // charged multiplicity
308  if (trk_vtx_map.find(idx)->second == 0) {
309  ++charged_multiplicity_nopu;
310  linear_radial_moment_nopu +=
311  pfcands[iP]->pt() * deltaR(dest->vector().Rapidity(), dest->phi(),
312  pfcands[iP]->rapidity(),
313  pfcands[iP]->phi());
314  }
315  pt_at_vtx_vec[trk_vtx_map.find(idx)->second] +=
316  pfcands[iP]->trackRef()->pt();
317  } else { // No, so is it within 0.2 cm wrt the closest vertex in z
318  std::vector<double> dz_with_vtx(vtx_handle->size(), 0.0);
319  for (unsigned iV = 0; iV < vtx_handle->size(); ++iV) {
320  dz_with_vtx[iV] =
321  fabs(vtx_handle->at(iV).z() - pfcands[iP]->trackRef()->vz());
322  }
323  std::vector<double>::const_iterator min =
324  std::min_element(dz_with_vtx.begin(), dz_with_vtx.end());
325  if (min != dz_with_vtx.end()) {
326  if (*min < 0.2) {
327  // As above, if this track is not associated to any vertex, but
328  // is within 0.2 cm of first PV, then increase multiplicity
329  // count
330  if (unsigned(min-dz_with_vtx.begin()) == 0) {
331  ++charged_multiplicity_nopu;
332  linear_radial_moment_nopu +=
333  pfcands[iP]->pt() * deltaR(dest->vector().Rapidity(), dest->phi(),
334  pfcands[iP]->rapidity(),
335  pfcands[iP]->phi());
336  }
337  pt_at_vtx_vec[unsigned(min - dz_with_vtx.begin())] +=
338  pfcands[iP]->trackRef()->pt();
339  }
340  }
341  }
342  } else { // No track found, assume PF candidate is not PU
343  linear_radial_moment_nopu +=
344  pfcands[iP]->pt() * deltaR(dest->vector().Rapidity(), dest->phi(),
345  pfcands[iP]->rapidity(),
346  pfcands[iP]->phi());
347  }
348  }
349  // IMPORTANT: taking the dest pt() here not the src()!
350  linear_radial_moment_nopu = linear_radial_moment_nopu / dest->pt();
351  dest->set_linear_radial_moment(linear_radial_moment_nopu);
352  dest->set_charged_multiplicity_nopu(charged_multiplicity_nopu);
353  // jet.set_constituent_tracks(trks);
354  if (vtx_handle->size() > 0 && trk_pt_total > 0.0) {
355  for (unsigned iV = 0; iV < pt_at_vtx_vec.size(); ++iV) {
356  pt_at_vtx_vec[iV] = pt_at_vtx_vec[iV] / trk_pt_total;
357  }
358  dest->set_beta(pt_at_vtx_vec[0]);
359  dest->set_beta_max(
360  *std::max_element(pt_at_vtx_vec.begin(), pt_at_vtx_vec.end()));
361  } else {
362  dest->set_beta(-1.0);
363  dest->set_beta_max(-1.0);
364  }
365 }
366 
367 #endif
void set_neutral_had_multiplicity(int const &neutral_had_multiplicity)
Number of neutral hadron constituents.
Definition: PFJet.hh:250
void set_had_energy_HO(float const &had_energy_HO)
Hadronic energy in the HO detector.
Definition: CaloJet.hh:110
void DoSetup(edm::EDProducer *prod)
void set_beta(float const &beta)
The fraction of the constituent track momentum associated to the primary vertex.
Definition: JPTJet.hh:234
JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector &&collector)
void set_neutral_em_energy(float const &neutral_em_energy)
Neutral EM energy.
Definition: JPTJet.hh:165
std::vector< ic::Vertex > VertexCollection
Definition: Vertex.hh:104
void set_neutral_em_energy(float const &neutral_em_energy)
Neutral electromagnetic energy.
Definition: PFJet.hh:286
void FillCommonPFJet(ic::PFJet *dest, U const &src)
void set_muon_multiplicity(int const &muon_multiplicity)
Number of PF muon constituents.
Definition: PFJet.hh:234
void DoSetup(edm::EDProducer *prod)
void set_HF_had_energy(float const &HF_had_energy)
HF hadronic energy.
Definition: PFJet.hh:316
void set_charged_multiplicity_nopu(int const &charged_multiplicity_nopu)
The number of charged constituents associated to the PV.
Definition: PFJet.hh:349
void set_neutral_had_energy(float const &neutral_had_energy)
Neutral hadron energy.
Definition: JPTJet.hh:175
void FillPFTrackVars(ic::PFJet *dest, std::vector< reco::PFCandidatePtr > const &pfcands, edm::Handle< reco::TrackCollection > const &trk_handle, edm::Handle< reco::VertexCollection > const &vtx_handle, std::map< unsigned, unsigned > const &trk_vtx_map)
void set_max_em_tower_energy(float const &max_em_tower_energy)
Maximum energy deposited in the ECAL towers.
Definition: CaloJet.hh:85
void DoSetup(edm::EDProducer *prod)
JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector &&collector)
void set_em_energy_EE(float const &em_energy_EE)
Electromagnetic energy in the EE detector.
Definition: CaloJet.hh:130
JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector &&collector)
void set_charged_multiplicity(int const &charged_multiplicity)
Total number of charged constituents.
Definition: JPTJet.hh:155
JetDestHelper(const edm::ParameterSet &pset, edm::ConsumesCollector &&collector)
Vector const & vector() const
Four-momentum.
Definition: Candidate.hh:31
void set_photon_multiplicity(int const &photon_multiplicity)
Number of PF photon constituents.
Definition: PFJet.hh:256
void set_linear_radial_moment(float const &linear_radial_moment)
Used for quark-gluon discrimination.
Definition: PFJet.hh:355
JetIDSelectionFunctor * tight_id
std::vector< ic::Track > TrackCollection
Definition: Track.hh:199
std::vector< std::size_t > DoTrackCollection(reco::TrackRefVector const &ref_vec, reco::TrackRefVector *target)
void set_electron_multiplicity(int const &electron_multiplicity)
Number of PF electron constituents.
Definition: PFJet.hh:261
void set_beta(float const &beta)
The fraction of the constituent track momentum associated to the primary vertex.
Definition: PFJet.hh:332
A class derived from ic::Jet which adds Jet-plus-track specific information.
Definition: JPTJet.hh:15
void set_charged_multiplicity(int const &charged_multiplicity)
Number of charged constituents.
Definition: PFJet.hh:239
Definition: CaloJet.hh:9
void FillCommonJPTJet(ic::JPTJet *dest, U const &src)
void set_had_energy_HB(float const &had_energy_HB)
Hadronic energy in the HB detector.
Definition: CaloJet.hh:105
void set_charged_em_energy(float const &charged_em_energy)
Charged EM energy.
Definition: JPTJet.hh:160
void AddTrackCollection(reco::TrackRefVector const &ref_vec, std::vector< reco::Track const * > *target)
void DoSetup(edm::EDProducer *prod)
double phi() const
Direct access to .
Definition: Candidate.hh:48
void set_charged_had_energy(float const &charged_had_energy)
Charged hadron energy.
Definition: PFJet.hh:291
void set_HF_em_multiplicity(int const &HF_em_multiplicity)
Number of PF HF electromagnetic constituents.
Definition: PFJet.hh:271
void set_charged_had_multiplicity(int const &charged_had_multiplicity)
Number of charged hadron constituents.
Definition: PFJet.hh:244
void set_HF_had_multiplicity(int const &HF_had_multiplicity)
Number PF HF hadronic constituents.
Definition: PFJet.hh:266
JetIDSelectionFunctor * tight_id
void FillCommonCaloJet(ic::CaloJet *dest, U const &src)
void set_em_energy_HF(float const &em_energy_HF)
Electromagnetic energy in the HF detector.
Definition: CaloJet.hh:135
void FillJPTTrackVars(ic::JPTJet *dest, std::vector< reco::Track const * > const &all_tracks, edm::Handle< reco::TrackCollection > const &trk_handle, edm::Handle< reco::VertexCollection > const &vtx_handle, std::map< unsigned, unsigned > const &trk_vtx_map)
void set_charged_mu_energy(float const &charged_mu_energy)
Muon energy.
Definition: PFJet.hh:327
void set_muon_energy(float const &muon_energy)
Muon energy.
Definition: PFJet.hh:311
void set_track_pt_total(float const &track_pt_total)
The scalar sum of track .
Definition: JPTJet.hh:240
void set_electron_energy(float const &electron_energy)
Electron energy.
Definition: PFJet.hh:306
Derived from the ic::Jet class and adding information specific to calorimeter jets.
Definition: CaloJet.hh:15
void set_energy_frac_had(float const &energy_frac_had)
Hadronic fraction of the jet energy.
Definition: CaloJet.hh:95
void set_charged_em_energy(float const &charged_em_energy)
Charged electromagnetic energy.
Definition: PFJet.hh:281
void set_HF_em_energy(float const &HF_em_energy)
HF electromagnetic energy.
Definition: PFJet.hh:322
JetIDSelectionFunctor * loose_id
A class deriving from ic::Jet that provides specific information for particle-flow jets...
Definition: PFJet.hh:14
boost::hash< reco::Track const * > track_hasher
void PrintOptional(unsigned depth, bool value, std::string text)
void set_beta_max(float const &beta_max)
The largest value of beta() obtained when it is evaluated for every vertex in the event...
Definition: PFJet.hh:335
void set_max_had_tower_energy(float const &max_had_tower_energy)
Maximum energy deposited in the HCAL towers.
Definition: CaloJet.hh:90
boost::hash< reco::Track const * > track_hasher
void set_constituent_tracks(std::vector< std::size_t > const &constituent_tracks)
A vector to refer to the constituent track ic::Track::id() values.
Definition: PFJet.hh:343
Definition: Consumes.h:19
void set_neutral_multiplicity(int const &neutral_multiplicity)
Number of neutral constituents.
Definition: PFJet.hh:276
void set_energy_frac_em(float const &energy_frac_em)
Electromagnetic fraction of the jet energy.
Definition: CaloJet.hh:100
void set_neutral_had_energy(float const &neutral_had_energy)
Neutral hadron energy.
Definition: PFJet.hh:296
JetIDSelectionFunctor * loose_id
void set_photon_energy(float const &photon_energy)
Photon energy.
Definition: PFJet.hh:301
double pt() const
Direct access to the .
Definition: Candidate.hh:42
void set_had_energy_HF(float const &had_energy_HF)
Hadronic energy in the HF detector.
Definition: CaloJet.hh:120
void set_em_energy_EB(float const &em_energy_EB)
Electromagnetic energy in the EB detector.
Definition: CaloJet.hh:125
void set_charged_had_energy(float const &charged_had_energy)
Charged hadron energy.
Definition: JPTJet.hh:170
std::map< unsigned, unsigned > BuildTrkVtxMap(edm::Handle< reco::TrackCollection > const &trk_handle, edm::Handle< reco::VertexCollection > const &vtx_handle)
void set_towers_area(float const &towers_area)
Area of towers contributing to the jet.
Definition: CaloJet.hh:140
void set_beta_max(float const &beta_max)
The largest value of beta() obtained when it is evaluated for every vertex in the event...
Definition: JPTJet.hh:237
void FillPFTracksAndRequest(ic::PFJet *dest, std::vector< reco::PFCandidatePtr > const &pfcands, reco::TrackRefVector *track_requests, boost::hash< reco::Track const * > *track_hasher)
void set_muon_multiplicity(int const &muon_multiplicity)
Number of muon constituents.
Definition: JPTJet.hh:150
void set_had_energy_HE(float const &had_energy_HE)
Hadronic energy in the HE detector.
Definition: CaloJet.hh:115