1 #ifndef RecoTracker_MkFitCore_src_MkFinder_h
2 #define RecoTracker_MkFitCore_src_MkFinder_h
22 class IterationParams;
23 class IterationLayerConfig;
26 #if defined(DUMPHITWINDOW) or defined(DEBUG_BACKWARD_FIT)
46 const std::vector<bool> *ihm);
55 const std::vector<int> &idxs,
68 const std::vector<std::pair<int, IdxChi2List>> &idxs,
76 std::vector<Track> &
tracks,
const std::vector<int> &idxs,
int beg,
int end,
bool outputProp)
const;
79 const int iO = outputProp ?
iP :
iC;
84 std::vector<Track> &
tracks,
const std::vector<int> &idxs,
int beg,
int end,
bool outputProp)
const {
85 const int iO = outputProp ?
iP :
iC;
86 for (
int i = beg, imp = 0;
i <
end; ++
i, ++imp) {
97 const float invpt,
const float theta,
float &min_dq,
float &max_dq,
float &min_dphi,
float &max_dphi);
108 std::vector<std::vector<TrackCand>> &tmp_candidates,
123 void copyOutParErr(std::vector<CombCandidate> &seed_cand_vec,
int N_proc,
bool outputProp)
const;
137 bool chiDebug =
false);
142 bool chiDebug =
false);
224 int &n_tot_hits =
m_NHits(mslot, 0, 0);
233 }
else if (index == -1) {
245 }
else if (index == -2) {
269 #if defined(DUMPHITWINDOW) or defined(DEBUG_BACKWARD_FIT)
void copy_out(TrackCand &trk, const int mslot, const int tslot) const
const SVector6 & parameters() const
int nTailMinusOneHits() const
void copy_in(const Track &trk, const int mslot, const int tslot)
static constexpr int MPlexHitIdxMax
const IterationLayerConfig * m_iteration_layer_config
int nInsideMinusOneHits() const
void setNOverlapHits(int n)
const HitOnTrack * m_HoTArr[NN]
HitOnTrack getLastHitOnTrack() const
void copyIn(idx_t n, const T *arr)
HitOnTrack m_HoTArrs[NN][Config::nMaxTrkHits]
void inputTracksAndHitIdx(const std::vector< Track > &tracks, int beg, int end, bool inputProp)
void bkFitInputTracks(TrackVec &cands, int beg, int end)
void copyOut(idx_t n, T *arr) const
void outputTracksAndHitIdx(std::vector< Track > &tracks, int beg, int end, bool outputProp) const
void setLastCcIndex(int i)
void setNInsideMinusOneHits(int n)
Geom::Theta< T > theta() const
void selectHitIndices(const LayerOfHits &layer_of_hits, const int N_proc)
auto const & tracks
cannot be loose
void setNFoundHits(int n)
void bkFitPropTracksToPCA(const int N_proc)
SMatrixSym66 & errors_nc()
void add_hit(const int mslot, int index, int layer)
void resizeHits(int nHits, int nFoundHits)
int nInsideMinusOneHits() const
void setNTailMinusOneHits(int n)
const IterationParams * m_iteration_params
constexpr std::array< uint8_t, layerIndexSize > layer
void findCandidates(const LayerOfHits &layer_of_hits, std::vector< std::vector< TrackCand >> &tmp_candidates, const int offset, const int N_proc, const FindingFoos &fnd_foos)
void setNMissingHits(int n)
const PropagationConfig * m_prop_config
void setup_bkfit(const PropagationConfig &pc)
void outputTrackAndHitIdx(Track &track, int itrack, bool outputProp) const
const SMatrixSym66 & errors() const
constexpr Matriplex::idx_t NN
TrackBase::Status m_TrkStatus[NN]
const HitOnTrack * beginHitsOnTrack() const
MPlexQI m_NTailMinusOneHits
void setup(const PropagationConfig &pc, const IterationParams &ip, const IterationLayerConfig &ilc, const std::vector< bool > *ihm)
CombCandidate * combCandidate() const
void updateWithLastHit(const LayerOfHits &layer_of_hits, int N_proc, const FindingFoos &fnd_foos)
TrackCand * m_TrkCand[NN]
std::vector< Track > TrackVec
CombCandidate * m_CombCand[NN]
HitOnTrack * beginHitsOnTrack_nc()
void bkFitFitTracks(const EventOfHits &eventofhits, const SteeringParams &st_par, const int N_proc, bool chiDebug=false)
void setCombCandidate(CombCandidate *cc)
HitOnTrack bestHitLastHoT(int itrack) const
void copyOutParErr(std::vector< CombCandidate > &seed_cand_vec, int N_proc, bool outputProp) const
void bkFitOutputTracks(TrackVec &cands, int beg, int end, bool outputProp)
void outputNonStoppedTracksAndHitIdx(std::vector< Track > &tracks, const std::vector< int > &idxs, int beg, int end, bool outputProp) const
void bkFitFitTracksBH(const EventOfHits &eventofhits, const SteeringParams &st_par, const int N_proc, bool chiDebug=false)
void copyIn(idx_t n, const T *arr)
int nTailMinusOneHits() const
void findCandidatesCloneEngine(const LayerOfHits &layer_of_hits, CandCloner &cloner, const int offset, const int N_proc, const FindingFoos &fnd_foos)
void copy_in(const TrackCand &trk, const int mslot, const int tslot)
MPlexQI m_NInsideMinusOneHits
const std::vector< bool > * m_iteration_hit_mask
int num_inside_minus_one_hits(const int mslot) const
float getHitSelDynamicChi2Cut(const int itrk, const int ipar)
const HoTNode * m_HoTNodeArr[NN]
int num_all_minus_one_hits(const int mslot) const
WSR_Result m_XWsrResult[NN]
const HitOnTrack * endHitsOnTrack() const
void getHitSelDynamicWindows(const float invpt, const float theta, float &min_dq, float &max_dq, float &min_dphi, float &max_dphi)
void copy_out(Track &trk, const int mslot, const int tslot) const
SVector6 & parameters_nc()
constexpr int nMaxTrkHits
void copyOut(idx_t n, T *arr) const
void addBestHit(const LayerOfHits &layer_of_hits, const int N_proc, const FindingFoos &fnd_foos)