CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
mkfit::TrackCand Class Reference

#include <TrackStructures.h>

Inheritance diagram for mkfit::TrackCand:
mkfit::TrackBase

Public Member Functions

void addHitIdx (int hitIdx, int hitLyr, float chi2)
 
CombCandidatecombCandidate () const
 
void considerHitForOverlap (int hit_idx, int module_id, float chi2)
 
Track exportTrack (bool remove_missing_hits=false) const
 
HitMatchfindOverlap (int hit_idx, int module_id)
 
int getLastFoundHitLyr () const
 
int getLastFoundPixelHitLyr () const
 
int getLastHitIdx () const
 
int getLastHitLyr () const
 
HitOnTrack getLastHitOnTrack () const
 
void incOverlapCount ()
 
int lastCcIndex () const
 
int nFoundHits () const
 
int nHitsByTypeEncoded (const TrackerInfo &trk_inf) const
 
int nInsideMinusOneHits () const
 
int nLayersByTypeEncoded (const TrackerInfo &trk_inf) const
 
int nMatchedDecoded (const int &encoded) const
 
int nMissingHits () const
 
int nMonoDecoded (const int &encoded) const
 
int nOverlapHits () const
 
int nPixelDecoded (const int &encoded) const
 
int nStereoDecoded (const int &encoded) const
 
int nTailMinusOneHits () const
 
int nTotalHits () const
 
int nTotMatchDecoded (const int &encoded) const
 
int nUniqueLayers () const
 
int originIndex () const
 
HoTNoderefLastHoTNode ()
 
const HoTNoderefLastHoTNode () const
 
void resetOverlaps ()
 
void resetShortTrack ()
 
void setCombCandidate (CombCandidate *cc)
 
void setLastCcIndex (int i)
 
void setNFoundHits (int n)
 
void setNInsideMinusOneHits (int n)
 
void setNMissingHits (int n)
 
void setNOverlapHits (int n)
 
void setNTailMinusOneHits (int n)
 
void setOriginIndex (int oi)
 
 TrackCand ()=default
 
 TrackCand (const TrackBase &base, CombCandidate *ccand)
 
- Public Member Functions inherited from mkfit::TrackBase
int algoint () const
 
TrackAlgorithm algorithm () const
 
bool canReachRadius (float R) const
 
int charge () const
 
float chi2 () const
 
float d0BeamSpot (const float x_bs, const float y_bs, bool linearize=false) const
 
float emomEta () const
 
float emomPhi () const
 
float epT () const
 
const float * errArray () const
 
const SMatrixSym66errors () const
 
SMatrixSym66errors_nc ()
 
bool getDuplicateValue () const
 
int getEtaRegion () const
 
int getNSeedHits () const
 
Status getStatus () const
 
bool hasNanNSillyValues () const
 
bool hasSillyValues (bool dump, bool fix, const char *pref="")
 
float invpT () const
 
bool isFindable () const
 
bool isNotFindable () const
 
int label () const
 
float maxReachRadius () const
 
SVector3 momentum () const
 
float momEta () const
 
float momPhi () const
 
float p () const
 
const SVector6parameters () const
 
SVector6parameters_nc ()
 
const float * posArray () const
 
float posEta () const
 
SVector3 position () const
 
float posPhi () const
 
float posR () const
 
float posRsq () const
 
ProdType prodType () const
 
float pT () const
 
float px () const
 
float py () const
 
float pz () const
 
float rAtZ (float Z) const
 
float score () const
 
void setAlgoint (int algo)
 
void setAlgorithm (TrackAlgorithm algo)
 
void setCharge (int chg)
 
void setChi2 (float chi2)
 
void setDuplicateValue (bool d)
 
void setEtaRegion (int r)
 
void setLabel (int lbl)
 
void setNotFindable ()
 
void setNSeedHits (int n)
 
void setProdType (ProdType ptyp)
 
void setScore (float s)
 
void setState (const TrackState &newState)
 
void setStatus (Status s)
 
const TrackStatestate () const
 
TrackStatestate_nc ()
 
float swimPhiToR (const float x, const float y) const
 
float theta () const
 
 TrackBase ()
 
 TrackBase (const TrackState &state, float chi2, int label)
 
 TrackBase (int charge, const SVector3 &position, const SVector3 &momentum, const SMatrixSym66 &errors, float chi2)
 
float x () const
 
float y () const
 
float z () const
 
float zAtR (float R, float *r_reached=nullptr) const
 

Private Attributes

CombCandidatem_comb_candidate = nullptr
 
short int m_origin_index = -1
 
HitMatchPair m_overlap_hits
 
short int nInsideMinusOneHits_ = 0
 
short int nMissingHits_ = 0
 
short int nOverlapHits_ = 0
 
short int nTailMinusOneHits_ = 0
 

Additional Inherited Members

- Public Types inherited from mkfit::TrackBase
enum  ProdType { ProdType::NotSet = 0, ProdType::Signal = 1, ProdType::InTimePU = 2, ProdType::OutOfTimePU = 3 }
 
enum  TrackAlgorithm {
  TrackAlgorithm::undefAlgorithm = 0, TrackAlgorithm::ctf = 1, TrackAlgorithm::duplicateMerge = 2, TrackAlgorithm::cosmics = 3,
  TrackAlgorithm::initialStep = 4, TrackAlgorithm::lowPtTripletStep = 5, TrackAlgorithm::pixelPairStep = 6, TrackAlgorithm::detachedTripletStep = 7,
  TrackAlgorithm::mixedTripletStep = 8, TrackAlgorithm::pixelLessStep = 9, TrackAlgorithm::tobTecStep = 10, TrackAlgorithm::jetCoreRegionalStep = 11,
  TrackAlgorithm::conversionStep = 12, TrackAlgorithm::muonSeededStepInOut = 13, TrackAlgorithm::muonSeededStepOutIn = 14, TrackAlgorithm::outInEcalSeededConv = 15,
  TrackAlgorithm::inOutEcalSeededConv = 16, TrackAlgorithm::nuclInter = 17, TrackAlgorithm::standAloneMuon = 18, TrackAlgorithm::globalMuon = 19,
  TrackAlgorithm::cosmicStandAloneMuon = 20, TrackAlgorithm::cosmicGlobalMuon = 21, TrackAlgorithm::highPtTripletStep = 22, TrackAlgorithm::lowPtQuadStep = 23,
  TrackAlgorithm::detachedQuadStep = 24, TrackAlgorithm::reservedForUpgrades1 = 25, TrackAlgorithm::reservedForUpgrades2 = 26, TrackAlgorithm::bTagGhostTracks = 27,
  TrackAlgorithm::beamhalo = 28, TrackAlgorithm::gsf = 29, TrackAlgorithm::hltPixel = 30, TrackAlgorithm::hltIter0 = 31,
  TrackAlgorithm::hltIter1 = 32, TrackAlgorithm::hltIter2 = 33, TrackAlgorithm::hltIter3 = 34, TrackAlgorithm::hltIter4 = 35,
  TrackAlgorithm::hltIterX = 36, TrackAlgorithm::hiRegitMuInitialStep = 37, TrackAlgorithm::hiRegitMuLowPtTripletStep = 38, TrackAlgorithm::hiRegitMuPixelPairStep = 39,
  TrackAlgorithm::hiRegitMuDetachedTripletStep = 40, TrackAlgorithm::hiRegitMuMixedTripletStep = 41, TrackAlgorithm::hiRegitMuPixelLessStep = 42, TrackAlgorithm::hiRegitMuTobTecStep = 43,
  TrackAlgorithm::hiRegitMuMuonSeededStepInOut = 44, TrackAlgorithm::hiRegitMuMuonSeededStepOutIn = 45, TrackAlgorithm::algoSize = 46
}
 track algorithm; copy from TrackBase.h to keep in standalone builds More...
 
- Static Public Member Functions inherited from mkfit::TrackBase
static const char * algoint_to_cstr (int algo)
 
- Protected Attributes inherited from mkfit::TrackBase
float chi2_ = 0.
 
int label_ = -1
 
short int lastHitIdx_ = -1
 
short int nFoundHits_ = 0
 
float score_ = 0.
 
TrackState state_
 
Status status_
 

Detailed Description

Definition at line 159 of file TrackStructures.h.

Constructor & Destructor Documentation

◆ TrackCand() [1/2]

mkfit::TrackCand::TrackCand ( )
default

◆ TrackCand() [2/2]

mkfit::TrackCand::TrackCand ( const TrackBase base,
CombCandidate ccand 
)
inlineexplicit

Definition at line 163 of file TrackStructures.h.

References mkfit::TrackBase::lastHitIdx_, and mkfit::TrackBase::nFoundHits_.

163  : TrackBase(base), m_comb_candidate(ccand) {
164  // Reset hit counters -- caller has to initialize hits.
165  lastHitIdx_ = -1;
166  nFoundHits_ = 0;
167  }
CombCandidate * m_comb_candidate
base
Main Program
Definition: newFWLiteAna.py:92
short int nFoundHits_
Definition: Track.h:358
short int lastHitIdx_
Definition: Track.h:357

Member Function Documentation

◆ addHitIdx()

void mkfit::TrackCand::addHitIdx ( int  hitIdx,
int  hitLyr,
float  chi2 
)
inline

Definition at line 550 of file TrackStructures.h.

References mkfit::CombCandidate::addHit(), mkfit::TrackBase::chi2(), mkfit::TrackBase::chi2_, mkfit::Hit::kHitCCCFilterIdx, mkfit::Hit::kHitMissIdx, mkfit::TrackBase::lastHitIdx_, m_comb_candidate, mkfit::TrackBase::nFoundHits_, nInsideMinusOneHits_, nMissingHits_, and nTailMinusOneHits_.

Referenced by mkfit::CombCandidate::compactifyHitStorageForBestCand(), mkfit::MkFinder::findCandidates(), mkfit::MkBuilder::findTracksStandard(), and mkfit::CandCloner::processSeedRange().

550  {
551  lastHitIdx_ = m_comb_candidate->addHit({hitIdx, hitLyr}, chi2, lastHitIdx_);
552 
553  if (hitIdx >= 0 || hitIdx == Hit::kHitCCCFilterIdx) {
554  ++nFoundHits_;
555  chi2_ += chi2;
557  nTailMinusOneHits_ = 0;
558  }
559  //Note that for tracks passing through an inactive module (hitIdx = -7), we do not count the -7 hit against the track when scoring.
560  else {
561  ++nMissingHits_;
562  if (hitIdx == Hit::kHitMissIdx)
564  }
565  }
CombCandidate * m_comb_candidate
float chi2_
Definition: Track.h:355
float chi2() const
Definition: Track.h:186
short int nTailMinusOneHits_
short int nFoundHits_
Definition: Track.h:358
short int lastHitIdx_
Definition: Track.h:357
static constexpr int kHitCCCFilterIdx
Definition: Hit.h:198
int addHit(const HitOnTrack &hot, float chi2, int prev_idx)
short int nMissingHits_
static constexpr int kHitMissIdx
Definition: Hit.h:193
short int nInsideMinusOneHits_

◆ combCandidate()

CombCandidate* mkfit::TrackCand::combCandidate ( ) const
inline

◆ considerHitForOverlap()

void mkfit::TrackCand::considerHitForOverlap ( int  hit_idx,
int  module_id,
float  chi2 
)
inline

Definition at line 199 of file TrackStructures.h.

References mkfit::TrackBase::chi2(), mkfit::HitMatchPair::consider_hit_for_overlap(), m_overlap_hits, and edm::service::monitor_file_utilities::module_id().

199  {
201  }
HitMatchPair m_overlap_hits
void consider_hit_for_overlap(int hit_idx, int module_id, float chi2)
auto module_id(edm::ModuleCallingContext const &mcc)
float chi2() const
Definition: Track.h:186

◆ exportTrack()

Track mkfit::TrackCand::exportTrack ( bool  remove_missing_hits = false) const

Definition at line 14 of file TrackStructures.cc.

References dprintf, mkfit::TrackBase::getNSeedHits(), mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::TrackBase::label(), mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, nFoundHits(), cms::cuda::nh, nOverlapHits(), nOverlapHits_, nTotalHits(), and mkfit::TrackBase::prodType().

Referenced by mkfit::MkBuilder::export_best_comb_cands().

14  {
15  dprintf("TrackCand::exportTrack label=%5d, total_hits=%2d, overlaps=%2d -- n_seed_hits=%d,prod_type=%d\n",
16  label(),
17  nTotalHits(),
19  getNSeedHits(),
20  (int)prodType());
21 
22  Track res(*this);
23  res.resizeHits(remove_missing_hits ? nFoundHits() : nTotalHits(), nFoundHits());
24  res.setNOverlapHits(nOverlapHits());
25 
26  int nh = nTotalHits();
27  int ch = lastHitIdx_;
28  int good_hits_pos = nFoundHits();
29  while (--nh >= 0) {
30  const HoTNode &hot_node = m_comb_candidate->hot_node(ch);
31  if (remove_missing_hits) {
32  if (hot_node.m_hot.index >= 0)
33  res.setHitIdxAtPos(--good_hits_pos, hot_node.m_hot);
34  } else {
35  res.setHitIdxAtPos(nh, hot_node.m_hot);
36  }
37  dprintf(" nh=%2d, ch=%d, idx=%d lyr=%d prev_idx=%d\n",
38  nh,
39  ch,
40  hot_node.m_hot.index,
41  hot_node.m_hot.layer,
42  hot_node.m_prev_idx);
43  ch = hot_node.m_prev_idx;
44  }
45 
46  return res;
47  }
int nOverlapHits() const
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
ProdType prodType() const
Definition: Track.h:272
int label() const
Definition: Track.h:188
short int nOverlapHits_
Definition: Electron.h:6
int getNSeedHits() const
Definition: Track.h:275
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357
int nFoundHits() const
#define dprintf(...)
Definition: Debug.h:98

◆ findOverlap()

HitMatch* mkfit::TrackCand::findOverlap ( int  hit_idx,
int  module_id 
)
inline

Definition at line 202 of file TrackStructures.h.

References mkfit::HitMatchPair::find_overlap(), m_overlap_hits, and edm::service::monitor_file_utilities::module_id().

202 { return m_overlap_hits.find_overlap(hit_idx, module_id); }
HitMatchPair m_overlap_hits
auto module_id(edm::ModuleCallingContext const &mcc)
HitMatch * find_overlap(int hit_idx, int module_id)

◆ getLastFoundHitLyr()

int mkfit::TrackCand::getLastFoundHitLyr ( ) const
inline

Definition at line 428 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, cms::cuda::nh, and nTotalHits().

428  {
429  int nh = nTotalHits();
430  int ch = lastHitIdx_;
431  int ll = -1;
432  while (--nh >= 0) {
433  const HoTNode& hot_node = m_comb_candidate->hot_node(ch);
434  if (hot_node.m_hot.index < 0) {
435  ch = hot_node.m_prev_idx;
436  } else {
437  ll = hot_node.m_hot.layer;
438  break;
439  }
440  }
441  return ll;
442  }
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357

◆ getLastFoundPixelHitLyr()

int mkfit::TrackCand::getLastFoundPixelHitLyr ( ) const
inline

Definition at line 444 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, cms::cuda::nh, and nTotalHits().

444  {
445  int nh = nTotalHits();
446  int ch = lastHitIdx_;
447  int ll = -1;
448  while (--nh >= 0) {
449  const HoTNode& hot_node = m_comb_candidate->hot_node(ch);
450  int tl = hot_node.m_hot.layer;
451  if (hot_node.m_hot.index < 0 || !((0 <= tl && tl <= 3) || (18 <= tl && tl <= 20) || (45 <= tl && tl <= 47))) {
452  ch = hot_node.m_prev_idx;
453  } else if ((0 <= tl && tl <= 3) || (18 <= tl && tl <= 20) || (45 <= tl && tl <= 47)) {
454  ll = hot_node.m_hot.layer;
455  break;
456  }
457  }
458  return ll;
459  }
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357
HitOnTrack m_hot

◆ getLastHitIdx()

int mkfit::TrackCand::getLastHitIdx ( ) const
inline

◆ getLastHitLyr()

int mkfit::TrackCand::getLastHitLyr ( ) const
inline

◆ getLastHitOnTrack()

HitOnTrack mkfit::TrackCand::getLastHitOnTrack ( ) const
inline

Definition at line 422 of file TrackStructures.h.

References mkfit::CombCandidate::hot(), mkfit::TrackBase::lastHitIdx_, and m_comb_candidate.

422 { return m_comb_candidate->hot(lastHitIdx_); }
CombCandidate * m_comb_candidate
short int lastHitIdx_
Definition: Track.h:357
HitOnTrack hot(int i) const

◆ incOverlapCount()

void mkfit::TrackCand::incOverlapCount ( )
inline

◆ lastCcIndex()

int mkfit::TrackCand::lastCcIndex ( ) const
inline

◆ nFoundHits()

int mkfit::TrackCand::nFoundHits ( ) const
inline

◆ nHitsByTypeEncoded()

int mkfit::TrackCand::nHitsByTypeEncoded ( const TrackerInfo trk_inf) const
inline

Definition at line 480 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::Hit::kHitCCCFilterIdx, mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, muonTagProbeFilters_cff::matched, cms::cuda::nh, and nTotalHits().

480  {
481  int prevL = -1;
482  bool prevStereo = false;
483  int nh = nTotalHits();
484  int ch = lastHitIdx_;
485  int pix = 0, stereo = 0, mono = 0, matched = 0;
486  int doubleStereo = -1;
487  while (--nh >= 0) {
488  const HoTNode& hot_node = m_comb_candidate->hot_node(ch);
489  int thisL = hot_node.m_hot.layer;
490  if (thisL >= 0 && (hot_node.m_hot.index >= 0 || hot_node.m_hot.index == Hit::kHitCCCFilterIdx)) {
491  bool cStereo = trk_inf[thisL].is_stereo();
492  if (trk_inf[thisL].is_pixel())
493  ++pix;
494  else if (cStereo) {
495  ++stereo;
496  if (thisL == prevL)
497  doubleStereo = thisL;
498  } else {
499  //mono if not pixel, nor stereo - can be matched to stereo
500  ++mono;
501  if (prevStereo && thisL == prevL - 1)
502  ++matched;
503  else if (thisL == prevL && thisL == doubleStereo - 1)
504  ++matched; //doubleMatch, the first is counted early on
505  }
506  prevL = thisL;
507  prevStereo = cStereo;
508  }
509  ch = hot_node.m_prev_idx;
510  }
511  return pix + 100 * stereo + 10000 * mono + 1000000 * matched;
512  }
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357
static constexpr int kHitCCCFilterIdx
Definition: Hit.h:198
HitOnTrack m_hot

◆ nInsideMinusOneHits()

int mkfit::TrackCand::nInsideMinusOneHits ( ) const
inline

◆ nLayersByTypeEncoded()

int mkfit::TrackCand::nLayersByTypeEncoded ( const TrackerInfo trk_inf) const
inline

Definition at line 514 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::Hit::kHitCCCFilterIdx, mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, muonTagProbeFilters_cff::matched, cms::cuda::nh, and nTotalHits().

514  {
515  int prevL = -1;
516  bool prevStereo = false;
517  int nh = nTotalHits();
518  int ch = lastHitIdx_;
519  int pix = 0, stereo = 0, mono = 0, matched = 0;
520  while (--nh >= 0) {
521  const HoTNode& hot_node = m_comb_candidate->hot_node(ch);
522  int thisL = hot_node.m_hot.layer;
523  if (thisL >= 0 && (hot_node.m_hot.index >= 0 || hot_node.m_hot.index == Hit::kHitCCCFilterIdx) &&
524  thisL != prevL) {
525  bool cStereo = trk_inf[thisL].is_stereo();
526  if (trk_inf[thisL].is_pixel())
527  ++pix;
528  else if (cStereo)
529  ++stereo;
530  else {
531  //mono if not pixel, nor stereo - can be matched to stereo
532  ++mono;
533  if (prevStereo && thisL == prevL - 1)
534  ++matched;
535  }
536  prevL = thisL;
537  prevStereo = cStereo;
538  }
539  ch = hot_node.m_prev_idx;
540  }
541  return pix + 100 * stereo + 10000 * mono + 1000000 * matched;
542  }
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357
static constexpr int kHitCCCFilterIdx
Definition: Hit.h:198
HitOnTrack m_hot

◆ nMatchedDecoded()

int mkfit::TrackCand::nMatchedDecoded ( const int &  encoded) const
inline

Definition at line 221 of file TrackStructures.h.

221 { return encoded / 1000000; }

◆ nMissingHits()

int mkfit::TrackCand::nMissingHits ( ) const
inline

Definition at line 180 of file TrackStructures.h.

References nMissingHits_.

Referenced by mkfit::MkFinder::copy_in().

180 { return nMissingHits_; }
short int nMissingHits_

◆ nMonoDecoded()

int mkfit::TrackCand::nMonoDecoded ( const int &  encoded) const
inline

Definition at line 220 of file TrackStructures.h.

220 { return (encoded / 10000) % 100; }

◆ nOverlapHits()

int mkfit::TrackCand::nOverlapHits ( ) const
inline

Definition at line 181 of file TrackStructures.h.

References nOverlapHits_.

Referenced by mkfit::MkFinder::copy_in(), exportTrack(), and mkfit::getScoreCand().

181 { return nOverlapHits_; }
short int nOverlapHits_

◆ nPixelDecoded()

int mkfit::TrackCand::nPixelDecoded ( const int &  encoded) const
inline

Definition at line 218 of file TrackStructures.h.

218 { return encoded % 100; }

◆ nStereoDecoded()

int mkfit::TrackCand::nStereoDecoded ( const int &  encoded) const
inline

Definition at line 219 of file TrackStructures.h.

219 { return (encoded / 100) % 100; }

◆ nTailMinusOneHits()

int mkfit::TrackCand::nTailMinusOneHits ( ) const
inline

◆ nTotalHits()

int mkfit::TrackCand::nTotalHits ( ) const
inline

◆ nTotMatchDecoded()

int mkfit::TrackCand::nTotMatchDecoded ( const int &  encoded) const
inline

Definition at line 222 of file TrackStructures.h.

222  {
223  return encoded % 100 + (encoded / 100) % 100 + (encoded / 10000) % 100 - encoded / 1000000;
224  }

◆ nUniqueLayers()

int mkfit::TrackCand::nUniqueLayers ( ) const
inline

Definition at line 461 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::HitOnTrack::index, mkfit::Hit::kHitCCCFilterIdx, mkfit::TrackBase::lastHitIdx_, mkfit::HitOnTrack::layer, m_comb_candidate, mkfit::HoTNode::m_hot, mkfit::HoTNode::m_prev_idx, cms::cuda::nh, and nTotalHits().

461  {
462  int nUL = 0;
463  int prevL = -1;
464  int nh = nTotalHits();
465  int ch = lastHitIdx_;
466 
467  while (--nh >= 0) {
468  const HoTNode& hot_node = m_comb_candidate->hot_node(ch);
469  int thisL = hot_node.m_hot.layer;
470  if (thisL >= 0 && (hot_node.m_hot.index >= 0 || hot_node.m_hot.index == Hit::kHitCCCFilterIdx) &&
471  thisL != prevL) {
472  ++nUL;
473  prevL = thisL;
474  }
475  ch = hot_node.m_prev_idx;
476  }
477  return nUL;
478  }
CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
uint32_t nh
int nTotalHits() const
short int lastHitIdx_
Definition: Track.h:357
static constexpr int kHitCCCFilterIdx
Definition: Hit.h:198
HitOnTrack m_hot

◆ originIndex()

int mkfit::TrackCand::originIndex ( ) const
inline

Definition at line 195 of file TrackStructures.h.

References m_origin_index.

Referenced by mkfit::MkBuilder::findTracksStandard().

195 { return m_origin_index; }
short int m_origin_index

◆ refLastHoTNode() [1/2]

HoTNode & mkfit::TrackCand::refLastHoTNode ( )
inline

Definition at line 544 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node_nc(), mkfit::TrackBase::lastHitIdx_, and m_comb_candidate.

CombCandidate * m_comb_candidate
short int lastHitIdx_
Definition: Track.h:357
HoTNode & hot_node_nc(int i)

◆ refLastHoTNode() [2/2]

const HoTNode & mkfit::TrackCand::refLastHoTNode ( ) const
inline

Definition at line 546 of file TrackStructures.h.

References mkfit::CombCandidate::hot_node(), mkfit::TrackBase::lastHitIdx_, and m_comb_candidate.

CombCandidate * m_comb_candidate
const HoTNode & hot_node(int i) const
short int lastHitIdx_
Definition: Track.h:357

◆ resetOverlaps()

void mkfit::TrackCand::resetOverlaps ( )
inline

Definition at line 198 of file TrackStructures.h.

References m_overlap_hits, and mkfit::HitMatchPair::reset().

198 { m_overlap_hits.reset(); }
HitMatchPair m_overlap_hits

◆ resetShortTrack()

void mkfit::TrackCand::resetShortTrack ( )
inline

Definition at line 235 of file TrackStructures.h.

References mkfit::getScoreWorstPossible(), m_comb_candidate, and mkfit::TrackBase::score_.

Referenced by mkfit::CombCandidate::mergeCandsAndBestShortOne().

235  {
237  m_comb_candidate = nullptr;
238  }
CombCandidate * m_comb_candidate
float getScoreWorstPossible()
Definition: Track.h:613
float score_
Definition: Track.h:356

◆ setCombCandidate()

void mkfit::TrackCand::setCombCandidate ( CombCandidate cc)
inline

Definition at line 176 of file TrackStructures.h.

References gpuPixelDoublets::cc, and m_comb_candidate.

Referenced by mkfit::MkFinder::copy_out().

176 { m_comb_candidate = cc; }
CombCandidate * m_comb_candidate
uint32_t cc[maxCellsPerHit]
Definition: gpuFishbone.h:49

◆ setLastCcIndex()

void mkfit::TrackCand::setLastCcIndex ( int  i)
inline

◆ setNFoundHits()

void mkfit::TrackCand::setNFoundHits ( int  n)
inline

◆ setNInsideMinusOneHits()

void mkfit::TrackCand::setNInsideMinusOneHits ( int  n)
inline

◆ setNMissingHits()

void mkfit::TrackCand::setNMissingHits ( int  n)
inline

◆ setNOverlapHits()

void mkfit::TrackCand::setNOverlapHits ( int  n)
inline

Definition at line 187 of file TrackStructures.h.

References dqmiodumpmetadata::n, and nOverlapHits_.

Referenced by mkfit::MkFinder::copy_out().

◆ setNTailMinusOneHits()

void mkfit::TrackCand::setNTailMinusOneHits ( int  n)
inline

◆ setOriginIndex()

void mkfit::TrackCand::setOriginIndex ( int  oi)
inline

Definition at line 196 of file TrackStructures.h.

References m_origin_index.

Referenced by mkfit::MkFinder::findCandidates().

196 { m_origin_index = oi; }
short int m_origin_index

Member Data Documentation

◆ m_comb_candidate

CombCandidate* mkfit::TrackCand::m_comb_candidate = nullptr
private

◆ m_origin_index

short int mkfit::TrackCand::m_origin_index = -1
private

Definition at line 251 of file TrackStructures.h.

Referenced by originIndex(), and setOriginIndex().

◆ m_overlap_hits

HitMatchPair mkfit::TrackCand::m_overlap_hits
private

Definition at line 242 of file TrackStructures.h.

Referenced by considerHitForOverlap(), findOverlap(), and resetOverlaps().

◆ nInsideMinusOneHits_

short int mkfit::TrackCand::nInsideMinusOneHits_ = 0
private

Definition at line 248 of file TrackStructures.h.

Referenced by addHitIdx(), nInsideMinusOneHits(), and setNInsideMinusOneHits().

◆ nMissingHits_

short int mkfit::TrackCand::nMissingHits_ = 0
private

Definition at line 245 of file TrackStructures.h.

Referenced by addHitIdx(), nMissingHits(), nTotalHits(), and setNMissingHits().

◆ nOverlapHits_

short int mkfit::TrackCand::nOverlapHits_ = 0
private

Definition at line 246 of file TrackStructures.h.

Referenced by exportTrack(), incOverlapCount(), nOverlapHits(), and setNOverlapHits().

◆ nTailMinusOneHits_

short int mkfit::TrackCand::nTailMinusOneHits_ = 0
private

Definition at line 249 of file TrackStructures.h.

Referenced by addHitIdx(), nTailMinusOneHits(), and setNTailMinusOneHits().