CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IsolatedPixelTrackCandidate.cc
Go to the documentation of this file.
2 
3 using namespace reco;
4 
6  : RecoCandidate(right), track_(right.track_), l1tauJet_(right.l1tauJet_) {
7  maxPtPxl_ = right.maxPtPxl_;
8  sumPtPxl_ = right.sumPtPxl_;
9  enIn_ = right.enIn_;
10  enOut_ = right.enOut_;
11  nhitIn_ = right.nhitIn_;
12  nhitOut_ = right.nhitOut_;
13  etaPhiEcal_ = right.etaPhiEcal_;
14  etaEcal_ = right.etaEcal_;
15  phiEcal_ = right.phiEcal_;
16 }
17 
19 
21  return new IsolatedPixelTrackCandidate(*this);
22 }
23 
25 
27 
29 
31  const RecoCandidate* o = dynamic_cast<const RecoCandidate*>(&c);
32  return (o != nullptr && checkOverlap(track(), o->track()));
33 }
34 
35 std::pair<int, int> IsolatedPixelTrackCandidate::towerIndex() const {
36  int ieta(0), iphi(0), nphi(72), kphi(1);
37  double etas[24] = {0.000, 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.870, 0.957,
38  1.044, 1.131, 1.218, 1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830, 1.930, 2.043};
39  for (int i = 1; i < 24; i++) {
40  if (fabs(track_->eta()) <= etas[i]) {
41  ieta = (track_->eta() > 0) ? i : -i;
42  if (i > 20) {
43  kphi = 2;
44  nphi = 36;
45  }
46  break;
47  }
48  }
49 
50  const double dphi = M_PI / 36.; //0.087266462;
51  double phi = track_->phi();
52  if (phi < 0)
53  phi += (2 * M_PI);
54  double delta = phi + (kphi * dphi);
55  for (int i = 0; i < nphi; i++) {
56  if (delta <= (kphi * (i + 1) * dphi)) {
57  iphi = kphi * i + 1;
58  break;
59  }
60  }
61 
62  return std::pair<int, int>(ieta, iphi);
63 }
double enOut_
energy in outer cone around L1 tau jet
const int nphi
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
Definition: RecoCandidate.h:67
const edm::EventSetup & c
reco::TrackRef track_
reference to a Track
l1t::TauRef l1ttauJet_
reference to a S2 L1 tau jet
virtual reco::TrackRef track() const
reference to a Track
double sumPtPxl_
Pt sum of other pixel tracks in the cone around the candidate.
IsolatedPixelTrackCandidate * clone() const override
returns a clone of the candidate
double maxPtPxl_
highest Pt of other pixel tracks in the cone around the candidate
int nhitIn_
number of hits in inner cone
#define M_PI
virtual l1t::TauRef l1ttau() const
get reference to L1 tau jet from lt1
virtual l1extra::L1JetParticleRef l1tau() const
get reference to L1 tau jet
int nhitOut_
number of hits in inner cone
double enIn_
energy in inner cone around L1 tau jet
reco::TrackRef track() const override
refrence to a Track
l1extra::L1JetParticleRef l1tauJet_
reference to a L1 tau jet
double phi() const final
momentum azimuthal angle
std::pair< int, int > towerIndex() const
get index of tower which track is hitting
bool overlap(const Candidate &) const override
check overlap with another candidate