1 #ifndef RecoTracker_MkFitCore_src_MkFinder_h 2 #define RecoTracker_MkFitCore_src_MkFinder_h 23 class IterationParams;
24 class IterationLayerConfig;
27 #if defined(DUMPHITWINDOW) or defined(DEBUG_BACKWARD_FIT) 55 const std::vector<bool> *ihm);
64 const std::vector<int> &idxs,
78 const std::vector<UpdateIndices> &idxs,
84 const std::vector<std::pair<int, IdxChi2List>> &idxs,
92 std::vector<Track> &
tracks,
const std::vector<int> &idxs,
int beg,
int end,
bool outputProp)
const;
95 const int iO = outputProp ?
iP :
iC;
100 std::vector<Track> &
tracks,
const std::vector<int> &idxs,
int beg,
int end,
bool outputProp)
const {
101 const int iO = outputProp ?
iP :
iC;
102 for (
int i = beg, imp = 0;
i <
end; ++
i, ++imp) {
113 const float invpt,
const float theta,
float &min_dq,
float &max_dq,
float &min_dphi,
float &max_dphi);
124 std::vector<std::vector<TrackCand>> &tmp_candidates,
139 void copyOutParErr(std::vector<CombCandidate> &seed_cand_vec,
int N_proc,
bool outputProp)
const;
153 bool chiDebug =
false);
158 bool chiDebug =
false);
239 int &n_tot_hits =
m_NHits(mslot, 0, 0);
248 }
else if (
index == -1) {
260 }
else if (
index == -2) {
284 #if defined(DUMPHITWINDOW) or defined(DEBUG_BACKWARD_FIT) int nInsideMinusOneHits() const
const HitOnTrack * endHitsOnTrack() const
void copy_in(const Track &trk, const int mslot, const int tslot)
static constexpr int MPlexHitIdxMax
const SVector6 & parameters() const
const IterationLayerConfig * m_iteration_layer_config
void setNOverlapHits(int n)
const HitOnTrack * m_HoTArr[NN]
void copy_out(Track &trk, const int mslot, const int tslot) const
void copyIn(idx_t n, const T *arr)
void outputTracksAndHitIdx(std::vector< Track > &tracks, int beg, int end, bool outputProp) const
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)
int nTailMinusOneHits() const
void setLastCcIndex(int i)
void setNInsideMinusOneHits(int n)
void selectHitIndices(const LayerOfHits &layer_of_hits, const int N_proc)
void setNFoundHits(int n)
void bkFitPropTracksToPCA(const int N_proc)
SMatrixSym66 & errors_nc()
void inputTracksAndHits(const std::vector< CombCandidate > &tracks, const LayerOfHits &layer_of_hits, const std::vector< UpdateIndices > &idxs, int beg, int end, bool inputProp)
void add_hit(const int mslot, int index, int layer)
void resizeHits(int nHits, int nFoundHits)
const SMatrixSym66 & errors() const
void setNTailMinusOneHits(int n)
void copy_out(TrackCand &trk, const int mslot, const int tslot) const
int nInsideMinusOneHits() const
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)
int num_all_minus_one_hits(const int mslot) const
void outputNonStoppedTracksAndHitIdx(std::vector< Track > &tracks, const std::vector< int > &idxs, int beg, int end, bool outputProp) const
constexpr Matriplex::idx_t NN
TrackBase::Status m_TrkStatus[NN]
LH
angular window limits for traco
CombCandidate * combCandidate() const
MPlexQI m_NTailMinusOneHits
void copyOut(idx_t n, T *arr) const
void setup(const PropagationConfig &pc, const IterationParams &ip, const IterationLayerConfig &ilc, const std::vector< bool > *ihm)
TrackCand * m_TrkCand[NN]
std::vector< Track > TrackVec
CombCandidate * m_CombCand[NN]
HitOnTrack * beginHitsOnTrack_nc()
auto const & tracks
cannot be loose
void bkFitFitTracks(const EventOfHits &eventofhits, const SteeringParams &st_par, const int N_proc, bool chiDebug=false)
void setCombCandidate(CombCandidate *cc)
void updateWithLoadedHit(int N_proc, const FindingFoos &fnd_foos)
void bkFitOutputTracks(TrackVec &cands, int beg, int end, bool outputProp)
void bkFitFitTracksBH(const EventOfHits &eventofhits, const SteeringParams &st_par, const int N_proc, bool chiDebug=false)
void copyIn(idx_t n, const T *arr)
const HitOnTrack * beginHitsOnTrack() const
void copyOutParErr(std::vector< CombCandidate > &seed_cand_vec, int N_proc, bool outputProp) const
int num_inside_minus_one_hits(const int mslot) const
void findCandidatesCloneEngine(const LayerOfHits &layer_of_hits, CandCloner &cloner, const int offset, const int N_proc, const FindingFoos &fnd_foos)
void copyOut(idx_t n, T *arr) const
void copy_in(const TrackCand &trk, const int mslot, const int tslot)
MPlexQI m_NInsideMinusOneHits
HitOnTrack bestHitLastHoT(int itrack) const
const std::vector< bool > * m_iteration_hit_mask
float getHitSelDynamicChi2Cut(const int itrk, const int ipar)
const HoTNode * m_HoTNodeArr[NN]
UpdateIndices(int si, int ci, int hi)
WSR_Result m_XWsrResult[NN]
void getHitSelDynamicWindows(const float invpt, const float theta, float &min_dq, float &max_dq, float &min_dphi, float &max_dphi)
Geom::Theta< T > theta() const
SVector6 & parameters_nc()
constexpr int nMaxTrkHits
int nTailMinusOneHits() const
void outputTrackAndHitIdx(Track &track, int itrack, bool outputProp) const
void addBestHit(const LayerOfHits &layer_of_hits, const int N_proc, const FindingFoos &fnd_foos)