CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
JetTracksAssociationDRVertex.cc
Go to the documentation of this file.
1 // Associate jets with tracks by simple "dR" criteria
2 // Fedor Ratnikov (UMd), Aug. 28, 2007
3 
5 
8 
11 
12 JetTracksAssociationDRVertex::JetTracksAssociationDRVertex(double fDr) : mDeltaR2Threshold(fDr * fDr) {}
13 
16  const std::vector<reco::TrackRef>& fTracks) const {
17  // cache tracks kinematics
18  std::vector<math::RhoEtaPhiVector> trackP3s;
19  trackP3s.reserve(fTracks.size());
20  for (unsigned i = 0; i < fTracks.size(); ++i) {
21  const reco::Track* track = &*(fTracks[i]);
22  trackP3s.push_back(math::RhoEtaPhiVector(track->p(), track->eta(), track->phi()));
23  }
24  //loop on jets and associate
25  for (unsigned j = 0; j < fJets.size(); ++j) {
26  reco::TrackRefVector assoTracks;
27  const reco::Jet* jet = &*(fJets[j]);
28  double jetEta = jet->eta();
29  double jetPhi = jet->phi();
30  for (unsigned t = 0; t < fTracks.size(); ++t) {
31  double dR2 = deltaR2(jetEta, jetPhi, trackP3s[t].eta(), trackP3s[t].phi());
32  if (dR2 < mDeltaR2Threshold)
33  assoTracks.push_back(fTracks[t]);
34  }
35  reco::JetTracksAssociation::setValue(fAssociation, fJets[j], assoTracks);
36  }
37 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
Base class for all types of Jets.
Definition: Jet.h:20
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
RhoEtaPhiVectorD RhoEtaPhiVector
spatial vector with cylindrical internal representation using pseudorapidity
Definition: Vector3D.h:33
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
bool setValue(Container &, const reco::JetBaseRef &, reco::TrackRefVector)
associate jet with value. Returns false and associate nothing if jet is already associated ...
double mDeltaR2Threshold
fidutial dR between track in the vertex and jet&#39;s reference direction
void produce(reco::JetTracksAssociation::Container *fAssociation, const std::vector< edm::RefToBase< reco::Jet > > &fJets, const std::vector< reco::TrackRef > &fTracks) const
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:67
double phi() const final
momentum azimuthal angle
double eta() const final
momentum pseudorapidity