CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
JetVetoedTracksAssociatorDRVertex.cc
Go to the documentation of this file.
1 
3 
4 
6 
7 
10  const std::vector<edm::RefToBase<reco::Jet> >& fJets,
11  const std::vector<reco::TrackRef>& fTracks,
12  TrackClassifier & classifier
13 ) const
14 {
15  // cache tracks kinematics
16  std::vector <math::RhoEtaPhiVector> trackP3s;
17  trackP3s.reserve (fTracks.size());
18  for (unsigned i = 0; i < fTracks.size(); ++i)
19  {
20  const reco::Track* track = &*(fTracks[i]);
21  trackP3s.push_back (math::RhoEtaPhiVector (track->p(),track->eta(), track->phi()));
22  }
23  //loop on jets and associate
24  for (unsigned j = 0; j < fJets.size(); ++j)
25  {
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  {
32  double dR2 = deltaR2 (jetEta, jetPhi, trackP3s[t].eta(), trackP3s[t].phi());
33  classifier.evaluate( reco::TrackBaseRef(fTracks[t]) );
34  if (
35  dR2 < mDeltaR2Threshold &&
36  (
37  classifier.is(TrackClassifier::BWeakDecay) ||
38  classifier.is(TrackClassifier::CWeakDecay) ||
40  )
41  ) assoTracks.push_back (fTracks[t]);
42  }
43  reco::JetTracksAssociation::setValue (fAssociation, fJets[j], assoTracks);
44  }
45 }
46 
47 
double p() const
momentum vector magnitude
Definition: TrackBase.h:663
int i
Definition: DBlmapReader.cc:9
Base class for all types of Jets.
Definition: Jet.h:20
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:693
T eta() const
RhoEtaPhiVectorD RhoEtaPhiVector
spatial vector with cylindrical internal representation using pseudorapidity
Definition: Vector3D.h:32
virtual double eta() const
momentum pseudorapidity
TrackClassifier const & evaluate(reco::TrackBaseRef const &)
Classify the RecoTrack in categories.
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:699
bool setValue(Container &, const reco::JetBaseRef &, reco::TrackRefVector)
associate jet with value. Returns false and associate nothing if jet is already associated ...
int j
Definition: DBlmapReader.cc:9
double deltaR2(const T1 &t1, const T2 &t2)
Definition: deltaR.h:36
bool is(Category category) const
Returns track flag for a given category.
Get track history and classify it in function of their .
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, TrackClassifier &classifier) const
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
virtual double phi() const
momentum azimuthal angle
Definition: DDAxes.h:10