CMS 3D CMS Logo

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

#include <TrackStructures.h>

Public Types

using allocator_type = CcAlloc< TrackCand >
 
enum  SeedState_e { Dormant = 0, Finding, Finished }
 
using trk_cand_vec_type = std::vector< TrackCand, CcAlloc< TrackCand > >
 

Public Member Functions

int addHit (const HitOnTrack &hot, float chi2, int prev_idx)
 
void beginBkwSearch ()
 
void clear ()
 
 CombCandidate (const allocator_type &alloc)
 
 CombCandidate (const CombCandidate &o)
 
 CombCandidate (CombCandidate &&o)
 
void compactifyHitStorageForBestCand (bool remove_seed_hits, int backward_fit_min_hits)
 
trk_cand_vec_type::reference emplace_back (TrackCand &tc)
 
bool empty () const
 
TrackCandfront ()
 
const TrackCandfront () const
 
HitOnTrack hot (int i) const
 
const HoTNodehot_node (int i) const
 
HoTNodehot_node_nc (int i)
 
const HoTNodehotsData () const
 
int hotsSize () const
 
void importSeed (const Track &seed, int seed_idx, const track_score_func &score_func, int region)
 
void mergeCandsAndBestShortOne (const IterationParams &params, const track_score_func &score_func, bool update_score, bool sort_cands)
 
CombCandidateoperator= (CombCandidate &&o)
 
TrackCandoperator[] (int i)
 
const TrackCandoperator[] (int i) const
 
int pickupLayer () const
 
const TrackCandrefBestShortCand () const
 
void repackCandPostBkwSearch (int i)
 
void reset (int max_cands_per_seed, int expected_num_hots)
 
void resize (trk_cand_vec_type::size_type count)
 
int seed_origin_index () const
 
void setBestShortCand (const TrackCand &tc)
 
void setState (SeedState_e ss)
 
trk_cand_vec_type::size_type size () const
 
SeedState_e state () const
 

Private Attributes

TrackCand m_best_short_cand
 
std::vector< HoTNodem_hots
 
int m_hots_size = 0
 
short int m_lastHitIdx_before_bkwsearch = -1
 
short int m_nInsideMinusOneHits_before_bkwsearch = -1
 
short int m_nTailMinusOneHits_before_bkwsearch = -1
 
int m_pickup_layer: 16
 
int m_seed_origin_index = -1
 
SeedState_e m_state: 8
 
trk_cand_vec_type m_trk_cands
 

Detailed Description

Definition at line 277 of file TrackStructures.h.

Member Typedef Documentation

◆ allocator_type

Definition at line 280 of file TrackStructures.h.

◆ trk_cand_vec_type

Definition at line 279 of file TrackStructures.h.

Member Enumeration Documentation

◆ SeedState_e

Enumerator
Dormant 
Finding 
Finished 

Definition at line 282 of file TrackStructures.h.

Constructor & Destructor Documentation

◆ CombCandidate() [1/3]

mkfit::CombCandidate::CombCandidate ( const allocator_type alloc)
inline

◆ CombCandidate() [2/3]

mkfit::CombCandidate::CombCandidate ( const CombCandidate o)
inline

Definition at line 287 of file TrackStructures.h.

288  : m_trk_cands(o.m_trk_cands),
289  m_state(o.m_state),
290  m_pickup_layer(o.m_pickup_layer),
291  m_lastHitIdx_before_bkwsearch(o.m_lastHitIdx_before_bkwsearch),
292  m_nInsideMinusOneHits_before_bkwsearch(o.m_nInsideMinusOneHits_before_bkwsearch),
293  m_nTailMinusOneHits_before_bkwsearch(o.m_nTailMinusOneHits_before_bkwsearch),
294  m_seed_origin_index(o.m_seed_origin_index),
295  m_hots_size(o.m_hots_size),
296  m_hots(o.m_hots) {}
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
std::vector< HoTNode > m_hots

◆ CombCandidate() [3/3]

mkfit::CombCandidate::CombCandidate ( CombCandidate &&  o)
inline

Definition at line 299 of file TrackStructures.h.

300  : m_trk_cands(std::move(o.m_trk_cands)),
301  m_best_short_cand(std::move(o.m_best_short_cand)),
302  m_state(o.m_state),
303  m_pickup_layer(o.m_pickup_layer),
304  m_lastHitIdx_before_bkwsearch(o.m_lastHitIdx_before_bkwsearch),
305  m_nInsideMinusOneHits_before_bkwsearch(o.m_nInsideMinusOneHits_before_bkwsearch),
306  m_nTailMinusOneHits_before_bkwsearch(o.m_nTailMinusOneHits_before_bkwsearch),
307  m_seed_origin_index(o.m_seed_origin_index),
308  m_hots_size(o.m_hots_size),
309  m_hots(std::move(o.m_hots)) {
310  // This is not needed as we do EOCC::reset() after EOCCS::resize which
311  // calls Reset here and all CombCands get cleared.
312  // However, if at some point we start using this for other purposes this needs
313  // to be called as well.
314  // for (auto &tc : *this) tc.setCombCandidate(this);
315  }
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
def move(src, dest)
Definition: eostools.py:511
std::vector< HoTNode > m_hots

Member Function Documentation

◆ addHit()

int mkfit::CombCandidate::addHit ( const HitOnTrack hot,
float  chi2,
int  prev_idx 
)
inline

Definition at line 374 of file TrackStructures.h.

References isoTrack_cff::chi2, hot(), m_hots, and m_hots_size.

Referenced by mkfit::TrackCand::addHitIdx().

374  {
375  m_hots.push_back({hot, chi2, prev_idx});
376  return m_hots_size++;
377  }
HitOnTrack hot(int i) const
std::vector< HoTNode > m_hots

◆ beginBkwSearch()

void mkfit::CombCandidate::beginBkwSearch ( )

Definition at line 206 of file TrackStructures.cc.

References Dormant, mkfit::TrackCand::lastCcIndex(), m_hots, m_lastHitIdx_before_bkwsearch, m_nInsideMinusOneHits_before_bkwsearch, m_nTailMinusOneHits_before_bkwsearch, m_pickup_layer, m_state, m_trk_cands, mkfit::TrackCand::nInsideMinusOneHits(), mkfit::TrackCand::nTailMinusOneHits(), mkfit::TrackCand::setLastCcIndex(), mkfit::TrackCand::setNInsideMinusOneHits(), and mkfit::TrackCand::setNTailMinusOneHits().

206  {
207  // Assumes compactifyHitStorageForBestCand() has already been called.
208  //
209  // This is to be called before backward-search to start with a single
210  // input candidate for backward combinatorial search.
211  //
212  // m_state and m_pickup_layer are also set.
213 
214  TrackCand &tc = m_trk_cands[0];
215 
216  m_state = Dormant;
217  m_pickup_layer = m_hots[0].m_hot.layer;
218  m_lastHitIdx_before_bkwsearch = tc.lastCcIndex();
219  m_nInsideMinusOneHits_before_bkwsearch = tc.nInsideMinusOneHits();
220  m_nTailMinusOneHits_before_bkwsearch = tc.nTailMinusOneHits();
221  tc.setLastCcIndex(0);
222  tc.setNInsideMinusOneHits(0);
223  tc.setNTailMinusOneHits(0);
224  }
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
std::vector< HoTNode > m_hots

◆ clear()

void mkfit::CombCandidate::clear ( void  )
inline

Definition at line 348 of file TrackStructures.h.

References m_trk_cands.

Referenced by mkfit::CandCloner::processSeedRange().

348 { m_trk_cands.clear(); }
trk_cand_vec_type m_trk_cands

◆ compactifyHitStorageForBestCand()

void mkfit::CombCandidate::compactifyHitStorageForBestCand ( bool  remove_seed_hits,
int  backward_fit_min_hits 
)

Definition at line 121 of file TrackStructures.cc.

References mkfit::TrackCand::addHitIdx(), cms::cuda::assert(), mkfit::TrackBase::getNSeedHits(), heavyIonCSV_trainingSettings::idx, mkfit::HitOnTrack::index, mkfit::TrackCand::lastCcIndex(), mkfit::HitOnTrack::layer, mkfit::HoTNode::m_chi2, mkfit::HoTNode::m_hot, m_hots, m_hots_size, m_trk_cands, WZElectronSkims53X_cff::max, mkfit::TrackCand::nFoundHits(), mkfit::TrackCand::setLastCcIndex(), mkfit::TrackCand::setNFoundHits(), mkfit::TrackCand::setNInsideMinusOneHits(), mkfit::TrackCand::setNMissingHits(), and mkfit::TrackCand::setNTailMinusOneHits().

121  {
122  // The best candidate is assumed to be in position 0 (after mergeCandsAndBestShortOne
123  // mergeCandsAndBestShortOne has been called).
124  // Other cands are dropped, their hits are dropped as well.
125  // Seed hits are dropped if remove_seed_hits is true.
126 
127  /* The following considerations are related to the following implementation:
128  minNrOfHitsForRebuild (checked against "nHits - nseed") has a default at 5, except
129  1 in initialStep
130  4 in tobTec and pixelLess
131  https://github.com/cms-sw/cmssw/blob/master/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc#L1015
132 
133  NOTE: some of those can be matched hits !!!
134 
135  the hit splitting is triggered here: https://github.com/cms-sw/cmssw/blob/master/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc#L468
136  after the rebuild has already happened: https://github.com/cms-sw/cmssw/blob/master/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc#L313
137  */
138 
139  assert(!m_trk_cands.empty());
140  m_trk_cands.resize(1);
141  TrackCand &tc = m_trk_cands[0];
142 
143  // Do NOT remove any seed hits if fewer than backward_fit_min_hits hits are available.
144  if (remove_seed_hits && tc.nFoundHits() <= backward_fit_min_hits) {
145  remove_seed_hits = false;
146  }
147 
148  // Stash HoTNodes at the end of m_hots.
149  int stash_end = m_hots.size();
150  int stash_pos = stash_end;
151 
152  int idx = tc.lastCcIndex();
153 
154  if (remove_seed_hits) {
155  // Skip invalid hits that would now be at the head of the candidate.
156  // Make sure to subtract / recount number of hits:
157  // as this is rather involved, just call addHitIdx() repeatedly so counts
158  // of holes get updated correctly.
159  // Though one should not care super much ... it's only relevant for relative scores
160  // and here we are trimming everything down to a single candidate.
161 
162  int n_hits_to_pick = std::max(tc.nFoundHits() - tc.getNSeedHits(), backward_fit_min_hits);
163  while (n_hits_to_pick > 0) {
164  m_hots[--stash_pos] = m_hots[idx];
165  if (m_hots[idx].m_hot.index >= 0)
166  --n_hits_to_pick;
167  idx = m_hots[idx].m_prev_idx;
168  }
169 
170  m_hots_size = 0;
171  m_hots.clear();
172  tc.setLastCcIndex(-1);
173  tc.setNFoundHits(0);
174  tc.setNMissingHits(0);
175  tc.setNInsideMinusOneHits(0);
176  tc.setNTailMinusOneHits(0);
177  while (stash_pos != stash_end && m_hots[stash_pos].m_hot.index < 0)
178  ++stash_pos;
179  while (stash_pos != stash_end) {
180  HoTNode &hn = m_hots[stash_pos];
181  tc.addHitIdx(hn.m_hot.index, hn.m_hot.layer, hn.m_chi2);
182  ++stash_pos;
183  }
184  } else {
185  while (idx != -1) {
186  m_hots[--stash_pos] = m_hots[idx];
187  idx = m_hots[idx].m_prev_idx;
188  }
189 
190  // If we are not removing seed_hits, track is good as it is,
191  // just fixup m_hots and t.lastCcIndex.
192  int pos = 0;
193  while (stash_pos != stash_end) {
194  m_hots[pos].m_hot = m_hots[stash_pos].m_hot;
195  m_hots[pos].m_chi2 = m_hots[stash_pos].m_chi2;
196  m_hots[pos].m_prev_idx = pos - 1;
197  ++pos;
198  ++stash_pos;
199  }
200  m_hots.resize(pos);
201  m_hots_size = pos;
202  tc.setLastCcIndex(pos - 1);
203  }
204  }
assert(be >=bs)
trk_cand_vec_type m_trk_cands
std::vector< HoTNode > m_hots

◆ emplace_back()

trk_cand_vec_type::reference mkfit::CombCandidate::emplace_back ( TrackCand tc)
inline

Definition at line 347 of file TrackStructures.h.

References m_trk_cands.

Referenced by mkfit::CandCloner::processSeedRange().

347 { return m_trk_cands.emplace_back(tc); }
trk_cand_vec_type m_trk_cands

◆ empty()

bool mkfit::CombCandidate::empty ( void  ) const
inline

Definition at line 340 of file TrackStructures.h.

References m_trk_cands.

Referenced by mergeCandsAndBestShortOne().

340 { return m_trk_cands.empty(); }
trk_cand_vec_type m_trk_cands

◆ front() [1/2]

TrackCand& mkfit::CombCandidate::front ( )
inline

Definition at line 345 of file TrackStructures.h.

References m_trk_cands.

345 { return m_trk_cands.front(); }
trk_cand_vec_type m_trk_cands

◆ front() [2/2]

const TrackCand& mkfit::CombCandidate::front ( ) const
inline

Definition at line 346 of file TrackStructures.h.

References m_trk_cands.

346 { return m_trk_cands.front(); }
trk_cand_vec_type m_trk_cands

◆ hot()

HitOnTrack mkfit::CombCandidate::hot ( int  i) const
inline

◆ hot_node()

const HoTNode& mkfit::CombCandidate::hot_node ( int  i) const
inline

◆ hot_node_nc()

HoTNode& mkfit::CombCandidate::hot_node_nc ( int  i)
inline

Definition at line 393 of file TrackStructures.h.

References mps_fire::i, and m_hots.

Referenced by mkfit::TrackCand::refLastHoTNode().

393 { return m_hots[i]; }
std::vector< HoTNode > m_hots

◆ hotsData()

const HoTNode* mkfit::CombCandidate::hotsData ( ) const
inline

Definition at line 396 of file TrackStructures.h.

References m_hots.

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

396 { return m_hots.data(); }
std::vector< HoTNode > m_hots

◆ hotsSize()

int mkfit::CombCandidate::hotsSize ( ) const
inline

Definition at line 391 of file TrackStructures.h.

References m_hots_size.

391 { return m_hots_size; }

◆ importSeed()

void mkfit::CombCandidate::importSeed ( const Track seed,
int  seed_idx,
const track_score_func score_func,
int  region 
)

Definition at line 53 of file TrackStructures.cc.

References Dormant, dprintf, mkfit::getScoreCand(), trackingPlots::hp, m_pickup_layer, m_seed_origin_index, m_state, m_trk_cands, nano_mu_digi_cff::region, fileCollector::seed, and HLT_2024v14_cff::TrackCand.

53  {
54  m_trk_cands.emplace_back(TrackCand(seed, this));
55 
57  m_pickup_layer = seed.getLastHitLyr();
58  m_seed_origin_index = seed_idx;
59 
60  TrackCand &cand = m_trk_cands.back();
61  cand.setNSeedHits(seed.nTotalHits());
62  cand.setEtaRegion(region);
63 
64  dprintf("Importing pt=%f eta=%f, lastCcIndex=%d\n", cand.pT(), cand.momEta(), cand.lastCcIndex());
65 
66  for (const HitOnTrack *hp = seed.beginHitsOnTrack(); hp != seed.endHitsOnTrack(); ++hp) {
67  dprintf(" hit idx=%d lyr=%d\n", hp->index, hp->layer);
68  cand.addHitIdx(hp->index, hp->layer, 0.0f);
69  }
70 
71  cand.setScore(getScoreCand(score_func, cand));
72  }
float getScoreCand(const track_score_func &score_func, const Track &cand1, bool penalizeTailMissHits=false, bool inFindCandidates=false)
Definition: Track.h:601
trk_cand_vec_type m_trk_cands
#define dprintf(...)
Definition: Debug.h:98

◆ mergeCandsAndBestShortOne()

void mkfit::CombCandidate::mergeCandsAndBestShortOne ( const IterationParams params,
const track_score_func score_func,
bool  update_score,
bool  sort_cands 
)

Definition at line 74 of file TrackStructures.cc.

References DummyCfis::c, mkfit::TrackCand::combCandidate(), empty(), mkfit::getScoreCand(), m_best_short_cand, m_trk_cands, submitPVValidationJobs::params, mkfit::TrackCand::resetShortTrack(), mkfit::TrackBase::score(), mkfit::TrackBase::setScore(), jetUpdater_cfi::sort, and mkfit::sortByScoreTrackCand().

77  {
78  TrackCand *best_short = m_best_short_cand.combCandidate() ? &m_best_short_cand : nullptr;
79 
80  if (!empty()) {
81  if (update_score) {
82  for (auto &c : m_trk_cands)
83  c.setScore(getScoreCand(score_func, c));
84  if (best_short)
85  best_short->setScore(getScoreCand(score_func, *best_short));
86  }
87  if (sort_cands) {
89  }
90 
91  if (best_short && best_short->score() > m_trk_cands.back().score()) {
92  auto ci = m_trk_cands.begin();
93  while (ci->score() > best_short->score())
94  ++ci;
95 
96  if ((int)m_trk_cands.size() >= params.maxCandsPerSeed)
97  m_trk_cands.pop_back();
98 
99  // To print out what has been replaced -- remove when done with short track handling.
100 #ifdef DEBUG
101  if (ci == m_trk_cands.begin()) {
102  printf("FindTracksStd -- Replacing best cand (%f) with short one (%f) in final sorting\n",
103  m_trk_cands.front().score(),
104  best_short->score());
105  }
106 #endif
107 
108  m_trk_cands.insert(ci, *best_short);
109  }
110 
111  } else if (best_short) {
112  m_trk_cands.push_back(*best_short);
113  }
114 
115  if (best_short)
116  best_short->resetShortTrack();
117 
118  // assert(capacity() == (size_t)Config::maxCandsPerSeed);
119  }
float getScoreCand(const track_score_func &score_func, const Track &cand1, bool penalizeTailMissHits=false, bool inFindCandidates=false)
Definition: Track.h:601
CombCandidate * combCandidate() const
bool sortByScoreTrackCand(const TrackCand &cand1, const TrackCand &cand2)
trk_cand_vec_type m_trk_cands

◆ operator=()

CombCandidate& mkfit::CombCandidate::operator= ( CombCandidate &&  o)
inline

Definition at line 321 of file TrackStructures.h.

References m_best_short_cand, m_hots, m_hots_size, m_lastHitIdx_before_bkwsearch, m_nInsideMinusOneHits_before_bkwsearch, m_nTailMinusOneHits_before_bkwsearch, m_pickup_layer, m_seed_origin_index, m_state, m_trk_cands, eostools::move(), and EcalTangentSkim_cfg::o.

321  {
322  m_trk_cands = (std::move(o.m_trk_cands));
323  m_best_short_cand = std::move(o.m_best_short_cand);
324  m_state = o.m_state;
325  m_pickup_layer = o.m_pickup_layer;
326  m_lastHitIdx_before_bkwsearch = o.m_lastHitIdx_before_bkwsearch;
327  m_nInsideMinusOneHits_before_bkwsearch = o.m_nInsideMinusOneHits_before_bkwsearch;
328  m_nTailMinusOneHits_before_bkwsearch = o.m_nTailMinusOneHits_before_bkwsearch;
329  m_seed_origin_index = o.m_seed_origin_index;
330  m_hots_size = o.m_hots_size;
331  m_hots = std::move(o.m_hots);
332 
333  for (auto& tc : m_trk_cands)
334  tc.setCombCandidate(this);
335 
336  return *this;
337  }
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
def move(src, dest)
Definition: eostools.py:511
std::vector< HoTNode > m_hots

◆ operator[]() [1/2]

TrackCand& mkfit::CombCandidate::operator[] ( int  i)
inline

Definition at line 343 of file TrackStructures.h.

References mps_fire::i, and m_trk_cands.

343 { return m_trk_cands[i]; }
trk_cand_vec_type m_trk_cands

◆ operator[]() [2/2]

const TrackCand& mkfit::CombCandidate::operator[] ( int  i) const
inline

Definition at line 344 of file TrackStructures.h.

References mps_fire::i, and m_trk_cands.

344 { return m_trk_cands[i]; }
trk_cand_vec_type m_trk_cands

◆ pickupLayer()

int mkfit::CombCandidate::pickupLayer ( ) const
inline

Definition at line 404 of file TrackStructures.h.

References m_pickup_layer.

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

404 { return m_pickup_layer; }

◆ refBestShortCand()

const TrackCand& mkfit::CombCandidate::refBestShortCand ( ) const
inline

Definition at line 398 of file TrackStructures.h.

References m_best_short_cand.

Referenced by mkfit::CandCloner::processSeedRange().

398 { return m_best_short_cand; }

◆ repackCandPostBkwSearch()

void mkfit::CombCandidate::repackCandPostBkwSearch ( int  i)

Definition at line 226 of file TrackStructures.cc.

References mps_fire::i, mkfit::TrackCand::lastCcIndex(), m_hots, m_lastHitIdx_before_bkwsearch, m_nInsideMinusOneHits_before_bkwsearch, m_nTailMinusOneHits_before_bkwsearch, m_trk_cands, mkfit::TrackCand::nInsideMinusOneHits(), mkfit::TrackCand::nTailMinusOneHits(), mkfit::TrackCand::setLastCcIndex(), mkfit::TrackCand::setNInsideMinusOneHits(), and mkfit::TrackCand::setNTailMinusOneHits().

226  {
227  // Called during filtering following backward search when a TrackCand's
228  // front hits need to be reindexed.
229  // mergeCandsAndBestShortOne() has already been called (from MkBuilder::FindXxx()).
230  // NOTES:
231  // 1. Should only be called once for each i (flag/bit to allow multiple calls can be added).
232  // 2. Alternatively, CombCand could provide hit iterator/exporter that would handle this correctly.
233 
234  TrackCand &tc = m_trk_cands[i];
235 
236  int curr_idx = tc.lastCcIndex();
237  if (curr_idx != 0) {
238  int last_idx = -1, prev_idx;
239  do {
240  prev_idx = m_hots[curr_idx].m_prev_idx;
241 
242  m_hots[curr_idx].m_prev_idx = last_idx;
243 
244  last_idx = curr_idx;
245  curr_idx = prev_idx;
246  } while (prev_idx != -1);
247  }
248 
249  tc.setLastCcIndex(m_lastHitIdx_before_bkwsearch);
250  tc.setNInsideMinusOneHits(m_nInsideMinusOneHits_before_bkwsearch + tc.nInsideMinusOneHits());
251  tc.setNTailMinusOneHits(m_nTailMinusOneHits_before_bkwsearch + tc.nTailMinusOneHits());
252  }
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
std::vector< HoTNode > m_hots

◆ reset()

void mkfit::CombCandidate::reset ( int  max_cands_per_seed,
int  expected_num_hots 
)
inline

Definition at line 350 of file TrackStructures.h.

References mkfit::getScoreWorstPossible(), m_best_short_cand, m_hots, m_hots_size, m_lastHitIdx_before_bkwsearch, m_nInsideMinusOneHits_before_bkwsearch, m_nTailMinusOneHits_before_bkwsearch, m_trk_cands, mkfit::TrackBase::setScore(), and createJobs::tmp.

350  {
351  std::vector<TrackCand, CcAlloc<TrackCand>> tmp(m_trk_cands.get_allocator());
352  m_trk_cands.swap(tmp);
353  m_trk_cands.reserve(max_cands_per_seed); // we *must* never exceed this
354 
356 
357  // state and pickup_layer set in importSeed.
358 
359  // expected_num_hots is different for CloneEngine and Std, especially as long as we
360  // instantiate all candidates before purging them.
361  // ce: N_layer * N_cands ~~ 20 * 6 = 120
362  // std: i don't know, maybe double?
363  m_hots.reserve(expected_num_hots);
364  m_hots_size = 0;
365  m_hots.clear();
366 
370  }
short int m_nInsideMinusOneHits_before_bkwsearch
short int m_nTailMinusOneHits_before_bkwsearch
void setScore(float s)
Definition: Track.h:178
float getScoreWorstPossible()
Definition: Track.h:597
short int m_lastHitIdx_before_bkwsearch
trk_cand_vec_type m_trk_cands
tmp
align.sh
Definition: createJobs.py:716
std::vector< HoTNode > m_hots

◆ resize()

void mkfit::CombCandidate::resize ( trk_cand_vec_type::size_type  count)
inline

◆ seed_origin_index()

int mkfit::CombCandidate::seed_origin_index ( ) const
inline

Definition at line 406 of file TrackStructures.h.

References m_seed_origin_index.

406 { return m_seed_origin_index; }

◆ setBestShortCand()

void mkfit::CombCandidate::setBestShortCand ( const TrackCand tc)
inline

Definition at line 399 of file TrackStructures.h.

References m_best_short_cand.

Referenced by mkfit::CandCloner::processSeedRange().

399 { m_best_short_cand = tc; }

◆ setState()

void mkfit::CombCandidate::setState ( SeedState_e  ss)
inline

◆ size()

trk_cand_vec_type::size_type mkfit::CombCandidate::size ( void  ) const
inline

◆ state()

SeedState_e mkfit::CombCandidate::state ( ) const
inline

Definition at line 401 of file TrackStructures.h.

References m_state.

Referenced by mkfit::MkBuilder::find_tracks_unroll_candidates(), and mkfit::CandCloner::processSeedRange().

401 { return m_state; }

Member Data Documentation

◆ m_best_short_cand

TrackCand mkfit::CombCandidate::m_best_short_cand
private

◆ m_hots

std::vector<HoTNode> mkfit::CombCandidate::m_hots
private

◆ m_hots_size

int mkfit::CombCandidate::m_hots_size = 0
private

◆ m_lastHitIdx_before_bkwsearch

short int mkfit::CombCandidate::m_lastHitIdx_before_bkwsearch = -1
private

Definition at line 413 of file TrackStructures.h.

Referenced by beginBkwSearch(), operator=(), repackCandPostBkwSearch(), and reset().

◆ m_nInsideMinusOneHits_before_bkwsearch

short int mkfit::CombCandidate::m_nInsideMinusOneHits_before_bkwsearch = -1
private

Definition at line 414 of file TrackStructures.h.

Referenced by beginBkwSearch(), operator=(), repackCandPostBkwSearch(), and reset().

◆ m_nTailMinusOneHits_before_bkwsearch

short int mkfit::CombCandidate::m_nTailMinusOneHits_before_bkwsearch = -1
private

Definition at line 415 of file TrackStructures.h.

Referenced by beginBkwSearch(), operator=(), repackCandPostBkwSearch(), and reset().

◆ m_pickup_layer

int mkfit::CombCandidate::m_pickup_layer
private

Definition at line 412 of file TrackStructures.h.

Referenced by beginBkwSearch(), importSeed(), operator=(), and pickupLayer().

◆ m_seed_origin_index

int mkfit::CombCandidate::m_seed_origin_index = -1
private

Definition at line 416 of file TrackStructures.h.

Referenced by importSeed(), operator=(), and seed_origin_index().

◆ m_state

SeedState_e mkfit::CombCandidate::m_state
private

Definition at line 411 of file TrackStructures.h.

Referenced by beginBkwSearch(), importSeed(), operator=(), setState(), and state().

◆ m_trk_cands

trk_cand_vec_type mkfit::CombCandidate::m_trk_cands
private