CMS 3D CMS Logo

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

#include <Track.h>

Inheritance diagram for mkfit::Track:
mkfit::TrackBase

Public Member Functions

void addHitIdx (int hitIdx, int hitLyr, float chi2)
 
void addHitIdx (const HitOnTrack &hot, float chi2)
 
const HitOnTrackbeginHitsOnTrack () const
 
HitOnTrackbeginHitsOnTrack_nc ()
 
void countAndSetNFoundHits ()
 
const HitOnTrackendHitsOnTrack () const
 
std::vector< int > foundLayers () const
 
int getHitIdx (int posHitIdx) const
 
int getHitLyr (int posHitIdx) const
 
HitOnTrack getHitOnTrack (int posHitIdx) const
 
const HitOnTrackgetHitsOnTrackArray () const
 
int getLastFoundHitIdx () const
 
int getLastFoundHitLyr () const
 
HitOnTrack getLastFoundHitOnTrack () const
 
int getLastFoundHitPos () const
 
int getLastFoundMCHitID (const std::vector< HitVec > &globalHitVec) const
 
int getLastHitIdx () const
 
int getLastHitLyr () const
 
HitOnTrack getLastHitOnTrack () const
 
int getMCHitIDFromLayer (const std::vector< HitVec > &globalHitVec, int layer) const
 
HitVec hitsVector (const std::vector< HitVec > &globalHitVec) const
 
int mcHitIDofFirstHit (const std::vector< HitVec > &globalHitVec, const MCHitInfoVec &globalMCHitInfo) const
 
void mcHitIDsVec (const std::vector< HitVec > &globalHitVec, const MCHitInfoVec &globalMCHitInfo, std::vector< int > &mcHitIDs) const
 
int nFoundHits () const
 
int nInsideMinusOneHits () const
 
int nOverlapHits () const
 
int nTailMinusOneHits () const
 
int nTotalHits () const
 
int nUniqueLayers () const
 
void reserveHits (int nHits)
 
void resetHits ()
 
void resizeHits (int nHits, int nFoundHits)
 
void resizeHitsForInput ()
 
void setHitIdx (int posHitIdx, int newIdx)
 
void setHitIdxAtPos (int pos, const HitOnTrack &hot)
 
void setHitIdxLyr (int posHitIdx, int newIdx, int newLyr)
 
void setNOverlapHits (int n)
 
void sortHitsByLayer ()
 
 Track ()
 
 Track (const TrackBase &base)
 
 Track (const TrackState &state, float chi2, int label, int nHits, const HitOnTrack *hits)
 
 Track (int charge, const SVector3 &position, const SVector3 &momentum, const SMatrixSym66 &errors, float chi2)
 
- 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

std::vector< HitOnTrackhitsOnTrk_
 

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 361 of file Track.h.

Constructor & Destructor Documentation

◆ Track() [1/4]

mkfit::Track::Track ( )
inline

Definition at line 363 of file Track.h.

363 {}

◆ Track() [2/4]

mkfit::Track::Track ( const TrackBase base)
inlineexplicit

Definition at line 365 of file Track.h.

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

365  : TrackBase(base) {
366  // Reset hit counters -- caller has to initialize hits.
367  lastHitIdx_ = -1;
368  nFoundHits_ = 0;
369  }
short int nFoundHits_
Definition: Track.h:344
short int lastHitIdx_
Definition: Track.h:343

◆ Track() [3/4]

mkfit::Track::Track ( const TrackState state,
float  chi2,
int  label,
int  nHits,
const HitOnTrack hits 
)
inline

Definition at line 371 of file Track.h.

References addHitIdx(), f, h, hfClusterShapes_cfi::hits, nHits, and reserveHits().

372  : TrackBase(state, chi2, label) {
374  for (int h = 0; h < nHits; ++h) {
375  addHitIdx(hits[h].index, hits[h].layer, 0.0f);
376  }
377  }
float chi2() const
Definition: Track.h:172
int label() const
Definition: Track.h:174
void reserveHits(int nHits)
Definition: Track.h:418
double f[11][100]
void addHitIdx(int hitIdx, int hitLyr, float chi2)
Definition: Track.h:437
const TrackState & state() const
Definition: Track.h:129
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4

◆ Track() [4/4]

mkfit::Track::Track ( int  charge,
const SVector3 position,
const SVector3 momentum,
const SMatrixSym66 errors,
float  chi2 
)
inline

Definition at line 379 of file Track.h.

int charge() const
Definition: Track.h:171
float chi2() const
Definition: Track.h:172
SVector3 momentum() const
Definition: Track.h:144
SVector3 position() const
Definition: Track.h:143
Definition: errors.py:1

Member Function Documentation

◆ addHitIdx() [1/2]

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

Definition at line 437 of file Track.h.

References mkfit::TrackBase::chi2(), mkfit::TrackBase::chi2_, hitsOnTrk_, mkfit::TrackBase::lastHitIdx_, and mkfit::TrackBase::nFoundHits_.

Referenced by mkfit::StdSeq::clean_cms_seedtracks_iter(), and Track().

437  {
438  hitsOnTrk_.push_back({hitIdx, hitLyr});
439  ++lastHitIdx_;
440  if (hitIdx >= 0 || hitIdx == -9) {
441  ++nFoundHits_;
442  chi2_ += chi2;
443  }
444  }
float chi2_
Definition: Track.h:341
float chi2() const
Definition: Track.h:172
short int nFoundHits_
Definition: Track.h:344
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ addHitIdx() [2/2]

void mkfit::Track::addHitIdx ( const HitOnTrack hot,
float  chi2 
)
inline

Definition at line 446 of file Track.h.

References addHitIdx(), mkfit::TrackBase::chi2(), mkfit::HitOnTrack::index, and mkfit::HitOnTrack::layer.

Referenced by addHitIdx().

446 { addHitIdx(hot.index, hot.layer, chi2); }
float chi2() const
Definition: Track.h:172
void addHitIdx(int hitIdx, int hitLyr, float chi2)
Definition: Track.h:437

◆ beginHitsOnTrack()

const HitOnTrack* mkfit::Track::beginHitsOnTrack ( ) const
inline

Definition at line 494 of file Track.h.

References hitsOnTrk_.

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

494 { return hitsOnTrk_.data(); }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ beginHitsOnTrack_nc()

HitOnTrack* mkfit::Track::beginHitsOnTrack_nc ( )
inline

Definition at line 497 of file Track.h.

References hitsOnTrk_.

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

497 { return hitsOnTrk_.data(); }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ countAndSetNFoundHits()

void mkfit::Track::countAndSetNFoundHits ( )
inline

Definition at line 503 of file Track.h.

References hitsOnTrk_, mps_fire::i, mkfit::TrackBase::lastHitIdx_, and mkfit::TrackBase::nFoundHits_.

503  {
504  nFoundHits_ = 0;
505  for (int i = 0; i <= lastHitIdx_; i++) {
506  if (hitsOnTrk_[i].index >= 0 || hitsOnTrk_[i].index == -9)
507  nFoundHits_++;
508  }
509  }
short int nFoundHits_
Definition: Track.h:344
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ endHitsOnTrack()

const HitOnTrack* mkfit::Track::endHitsOnTrack ( ) const
inline

Definition at line 495 of file Track.h.

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

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

495 { return hitsOnTrk_.data() + (lastHitIdx_ + 1); }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ foundLayers()

std::vector<int> mkfit::Track::foundLayers ( ) const
inline

Definition at line 568 of file Track.h.

References hitsOnTrk_, mkfit::TrackBase::lastHitIdx_, and hgcalTBTopologyTester_cfi::layers.

568  {
569  std::vector<int> layers;
570  for (int ihit = 0; ihit <= lastHitIdx_; ++ihit) {
571  if (hitsOnTrk_[ihit].index >= 0 || hitsOnTrk_[ihit].index == -9) {
572  layers.push_back(hitsOnTrk_[ihit].layer);
573  }
574  }
575  return layers;
576  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ getHitIdx()

int mkfit::Track::getHitIdx ( int  posHitIdx) const
inline

◆ getHitLyr()

int mkfit::Track::getHitLyr ( int  posHitIdx) const
inline

◆ getHitOnTrack()

HitOnTrack mkfit::Track::getHitOnTrack ( int  posHitIdx) const
inline

◆ getHitsOnTrackArray()

const HitOnTrack* mkfit::Track::getHitsOnTrackArray ( ) const
inline

Definition at line 493 of file Track.h.

References hitsOnTrk_.

Referenced by mkfit::MkFinder::bkFitInputTracks(), and mkfit::MkFitter::inputTracksForFit().

493 { return hitsOnTrk_.data(); }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ getLastFoundHitIdx()

int mkfit::Track::getLastFoundHitIdx ( ) const
inline

Definition at line 468 of file Track.h.

References getLastFoundHitPos(), hitsOnTrk_, and mkfit::TrackBase::p().

468  {
469  int p = getLastFoundHitPos();
470  return p >= 0 ? hitsOnTrk_[p].index : -1;
471  }
float p() const
Definition: Track.h:159
int getLastFoundHitPos() const
Definition: Track.h:457
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ getLastFoundHitLyr()

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

Definition at line 472 of file Track.h.

References getLastFoundHitPos(), hitsOnTrk_, and mkfit::TrackBase::p().

472  {
473  int p = getLastFoundHitPos();
474  return p >= 0 ? hitsOnTrk_[p].layer : -1;
475  }
float p() const
Definition: Track.h:159
int getLastFoundHitPos() const
Definition: Track.h:457
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ getLastFoundHitOnTrack()

HitOnTrack mkfit::Track::getLastFoundHitOnTrack ( ) const
inline

Definition at line 464 of file Track.h.

References getLastFoundHitPos(), hitsOnTrk_, and mkfit::TrackBase::p().

Referenced by getLastFoundMCHitID().

464  {
465  int p = getLastFoundHitPos();
466  return p >= 0 ? hitsOnTrk_[p] : HitOnTrack(-1, -1);
467  }
float p() const
Definition: Track.h:159
int getLastFoundHitPos() const
Definition: Track.h:457
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ getLastFoundHitPos()

int mkfit::Track::getLastFoundHitPos ( ) const
inline

Definition at line 457 of file Track.h.

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

Referenced by getLastFoundHitIdx(), getLastFoundHitLyr(), and getLastFoundHitOnTrack().

457  {
458  int hi = lastHitIdx_;
459  while (hi >= 0 && hitsOnTrk_[hi].index < 0)
460  --hi;
461  return hi;
462  }
Definition: EPCuts.h:4
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ getLastFoundMCHitID()

int mkfit::Track::getLastFoundMCHitID ( const std::vector< HitVec > &  globalHitVec) const
inline

Definition at line 477 of file Track.h.

References getLastFoundHitOnTrack(), mkfit::HitOnTrack::index, and mkfit::HitOnTrack::layer.

477  {
478  HitOnTrack hot = getLastFoundHitOnTrack();
479  return globalHitVec[hot.layer][hot.index].mcHitID();
480  }
HitOnTrack getLastFoundHitOnTrack() const
Definition: Track.h:464

◆ getLastHitIdx()

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

Definition at line 454 of file Track.h.

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

454 { return hitsOnTrk_[lastHitIdx_].index; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ getLastHitLyr()

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

Definition at line 455 of file Track.h.

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

455 { return hitsOnTrk_[lastHitIdx_].layer; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ getLastHitOnTrack()

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

Definition at line 453 of file Track.h.

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

453 { return hitsOnTrk_[lastHitIdx_]; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ getMCHitIDFromLayer()

int mkfit::Track::getMCHitIDFromLayer ( const std::vector< HitVec > &  globalHitVec,
int  layer 
) const
inline

Definition at line 482 of file Track.h.

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

482  {
483  int mcHitID = -1;
484  for (int ihit = 0; ihit <= lastHitIdx_; ++ihit) {
485  if (hitsOnTrk_[ihit].layer == layer) {
486  mcHitID = globalHitVec[hitsOnTrk_[ihit].layer][hitsOnTrk_[ihit].index].mcHitID();
487  break;
488  }
489  }
490  return mcHitID;
491  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ hitsVector()

HitVec mkfit::Track::hitsVector ( const std::vector< HitVec > &  globalHitVec) const
inline

Definition at line 383 of file Track.h.

References hitsOnTrk_, mkfit::HitOnTrack::index, mkfit::HitOnTrack::layer, and mkfit::Config::nMaxTrkHits.

383  {
384  HitVec hitsVec;
385  for (int ihit = 0; ihit < Config::nMaxTrkHits; ++ihit) {
386  const HitOnTrack& hot = hitsOnTrk_[ihit];
387  if (hot.index >= 0) {
388  hitsVec.push_back(globalHitVec[hot.layer][hot.index]);
389  }
390  }
391  return hitsVec;
392  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
std::vector< Hit > HitVec
constexpr int nMaxTrkHits
Definition: Config.h:42

◆ mcHitIDofFirstHit()

int mkfit::Track::mcHitIDofFirstHit ( const std::vector< HitVec > &  globalHitVec,
const MCHitInfoVec globalMCHitInfo 
) const
inline

Definition at line 407 of file Track.h.

References hitsOnTrk_, mkfit::HitOnTrack::index, and mkfit::HitOnTrack::layer.

407  {
408  const HitOnTrack& hot = hitsOnTrk_[0];
409  if ((hot.index >= 0) && (static_cast<size_t>(hot.index) < globalHitVec[hot.layer].size())) {
410  return globalHitVec[hot.layer][hot.index].mcTrackID(globalMCHitInfo);
411  } else {
412  return hot.index;
413  }
414  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ mcHitIDsVec()

void mkfit::Track::mcHitIDsVec ( const std::vector< HitVec > &  globalHitVec,
const MCHitInfoVec globalMCHitInfo,
std::vector< int > &  mcHitIDs 
) const
inline

Definition at line 394 of file Track.h.

References hitsOnTrk_, mkfit::HitOnTrack::index, mkfit::TrackBase::lastHitIdx_, and mkfit::HitOnTrack::layer.

396  {
397  for (int ihit = 0; ihit <= lastHitIdx_; ++ihit) {
398  const HitOnTrack& hot = hitsOnTrk_[ihit];
399  if ((hot.index >= 0) && (static_cast<size_t>(hot.index) < globalHitVec[hot.layer].size())) {
400  mcHitIDs.push_back(globalHitVec[hot.layer][hot.index].mcTrackID(globalMCHitInfo));
401  } else {
402  mcHitIDs.push_back(hot.index);
403  }
404  }
405  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ nFoundHits()

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

◆ nInsideMinusOneHits()

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

Definition at line 517 of file Track.h.

References hitsOnTrk_, mps_fire::i, mkfit::TrackBase::lastHitIdx_, and dqmiodumpmetadata::n.

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

517  {
518  int n = 0;
519  bool insideValid = false;
520  for (int i = lastHitIdx_; i >= 0; --i) {
521  if (hitsOnTrk_[i].index >= 0)
522  insideValid = true;
523  if (insideValid && hitsOnTrk_[i].index == -1)
524  ++n;
525  }
526  return n;
527  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ nOverlapHits()

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

Definition at line 514 of file Track.h.

References mkfit::TrackBase::Status::n_overlaps, and mkfit::TrackBase::status_.

Referenced by mkfit::getScoreCand().

514 { return status_.n_overlaps; }
Status status_
Definition: Track.h:345

◆ nTailMinusOneHits()

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

Definition at line 529 of file Track.h.

References hitsOnTrk_, mps_fire::i, mkfit::TrackBase::lastHitIdx_, and dqmiodumpmetadata::n.

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

529  {
530  int n = 0;
531  for (int i = lastHitIdx_; i >= 0; --i) {
532  if (hitsOnTrk_[i].index >= 0)
533  return n;
534  if (hitsOnTrk_[i].index == -1)
535  ++n;
536  }
537  return n;
538  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ nTotalHits()

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

◆ nUniqueLayers()

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

Definition at line 540 of file Track.h.

References hitsOnTrk_, heavyIonCSV_trainingSettings::idx, mkfit::TrackBase::lastHitIdx_, and jetUpdater_cfi::sort.

540  {
541  // make local copy in vector: sort it in place
542  std::vector<HitOnTrack> tmp_hitsOnTrk(hitsOnTrk_.begin(), hitsOnTrk_.end());
543  std::sort(tmp_hitsOnTrk.begin(), tmp_hitsOnTrk.end(), [](const auto& h1, const auto& h2) {
544  return h1.layer < h2.layer;
545  });
546 
547  // local counters
548  auto lyr_cnt = 0;
549  auto prev_lyr = -1;
550 
551  // loop over copy of hitsOnTrk
552  for (auto ihit = 0; ihit <= lastHitIdx_; ++ihit) {
553  const auto& hot = tmp_hitsOnTrk[ihit];
554  const auto lyr = hot.layer;
555  const auto idx = hot.index;
556  if (lyr >= 0 && (idx >= 0 || idx == -9) && lyr != prev_lyr) {
557  ++lyr_cnt;
558  prev_lyr = lyr;
559  }
560  }
561  return lyr_cnt;
562  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ reserveHits()

void mkfit::Track::reserveHits ( int  nHits)
inline

Definition at line 418 of file Track.h.

References hitsOnTrk_, and nHits.

Referenced by Track().

418 { hitsOnTrk_.reserve(nHits); }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits

◆ resetHits()

void mkfit::Track::resetHits ( )
inline

Definition at line 420 of file Track.h.

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

420  {
421  lastHitIdx_ = -1;
422  nFoundHits_ = 0;
423  hitsOnTrk_.clear();
424  }
short int nFoundHits_
Definition: Track.h:344
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ resizeHits()

void mkfit::Track::resizeHits ( int  nHits,
int  nFoundHits 
)
inline

Definition at line 427 of file Track.h.

References hitsOnTrk_, mkfit::TrackBase::lastHitIdx_, nFoundHits(), mkfit::TrackBase::nFoundHits_, and nHits.

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

427  {
428  hitsOnTrk_.resize(nHits);
429  lastHitIdx_ = nHits - 1;
431  }
int nFoundHits() const
Definition: Track.h:511
short int nFoundHits_
Definition: Track.h:344
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits

◆ resizeHitsForInput()

void mkfit::Track::resizeHitsForInput ( )

Definition at line 389 of file Track.cc.

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

389  {
390  bzero(&hitsOnTrk_, sizeof(hitsOnTrk_));
391  hitsOnTrk_.resize(lastHitIdx_ + 1);
392  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

◆ setHitIdx()

void mkfit::Track::setHitIdx ( int  posHitIdx,
int  newIdx 
)
inline

Definition at line 499 of file Track.h.

References hitsOnTrk_.

499 { hitsOnTrk_[posHitIdx].index = newIdx; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ setHitIdxAtPos()

void mkfit::Track::setHitIdxAtPos ( int  pos,
const HitOnTrack hot 
)
inline

Definition at line 433 of file Track.h.

References hitsOnTrk_.

433 { hitsOnTrk_[pos] = hot; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ setHitIdxLyr()

void mkfit::Track::setHitIdxLyr ( int  posHitIdx,
int  newIdx,
int  newLyr 
)
inline

Definition at line 501 of file Track.h.

References hitsOnTrk_.

501 { hitsOnTrk_[posHitIdx] = {newIdx, newLyr}; }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579

◆ setNOverlapHits()

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

◆ sortHitsByLayer()

void mkfit::Track::sortHitsByLayer ( )

Definition at line 394 of file Track.cc.

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

Referenced by mkfit::StdSeq::clean_cms_seedtracks_iter().

394  {
395  std::stable_sort(&hitsOnTrk_[0], &hitsOnTrk_[lastHitIdx_ + 1], [](const auto& h1, const auto& h2) {
396  return h1.layer < h2.layer;
397  });
398  }
std::vector< HitOnTrack > hitsOnTrk_
Definition: Track.h:579
short int lastHitIdx_
Definition: Track.h:343

Member Data Documentation

◆ hitsOnTrk_

std::vector<HitOnTrack> mkfit::Track::hitsOnTrk_
private