14 printf(
"MkFitter alignment check:\n");
24 for (
int i = 0;
i <
NN; ++
i) {
31 for (
int hi = 0;
hi < end_hit; ++
hi) {
40 for (
int hi = 0;
hi < end_hit; ++
hi) {
51 const std::vector<HitVec>& layerHits,
61 for (
int i = beg;
i <
end; ++
i, ++itrack) {
79 const Hit&
hit = layerHits[
hi][hidx];
87 const std::vector<LayerOfHits>& layerHits,
97 for (
int i = beg;
i <
end; ++
i) {
113 const Hit&
hit = layerHits[hlyr].refHit(hidx);
124 const std::vector<HitVec>& layerHits,
134 for (
int i = beg;
i <
end; ++
i) {
135 int itrack =
i - beg;
152 for (
int i = beg;
i <
end; ++
i) {
153 const int hidx =
tracks[
i].getHitIdx(
hi);
154 const Hit&
hit = layerHits[
hi][hidx];
171 const int iI = inputProp ?
iP :
iC;
174 for (
int i = beg;
i <
end; ++
i, ++itrack) {
200 const int iI = inputProp ?
iP :
iC;
203 for (
int i = beg;
i <
end; ++
i, ++itrack) {
223 const std::vector<Track>&
tracks,
224 const std::vector<HitVec>& layerHits,
233 for (
int i = beg;
i <
end; ++
i) {
258 const Hit&
hit = layerHits[
hi][hidx];
284 for (
int i = beg;
i <
end; ++
i, ++itrack) {
315 for (
int i = 0;
i < N_proc; ++
i) {
324 if (hidx < 0 || hlyr < 0) {
327 mhp.
addInput(layersohits[hlyr][hidx]);
348 for (
int i = beg;
i <
end; ++
i, ++itrack) {
364 const int iO = outputProp ?
iP :
iC;
367 for (
int i = beg;
i <
end; ++
i, ++itrack) {
int getHitIdx(int posHitIdx) const
int getHitLyr(int posHitIdx) const
const SVector6 & parameters() const
void addInput(const D &item)
void copyIn(idx_t n, const T *arr)
void outputTracks(std::vector< Track > &tracks, int beg, int end, int iCP) const
MPlexHV m_msPar[Config::nMaxTrkHits]
void kalmanUpdate(const MPlexLS &psErr, const MPlexLV &psPar, const MPlexHS &msErr, const MPlexHV &msPar, MPlexLS &outErr, MPlexLV &outPar, const int N_proc)
void addInput(const T &item)
int countInvalidHits(int itrack, int end_hit) const
void inputSeedsTracksAndHits(const std::vector< Track > &seeds, const std::vector< Track > &tracks, const std::vector< HitVec > &layerHits, int beg, int end)
void inputTracksAndHitIdx(const std::vector< Track > &tracks, int beg, int end, bool inputProp)
const SMatrixSym66 & errors() const
void inputTracksForFit(const std::vector< Track > &tracks, int beg, int end)
constexpr std::array< uint8_t, layerIndexSize > layer
void fitTracksWithInterSlurp(const std::vector< HitVec > &layersohits, int N_proc)
void slurpInTracksAndHits(const std::vector< Track > &tracks, const std::vector< HitVec > &layerHits, int beg, int end)
static const PropagationConfig & get_default()
void align_check(const char *pref, void *adr)
void outputFittedTracksAndHitIdx(std::vector< Track > &tracks, int beg, int end, bool outputProp) const
void pack(TM &mplex, int base_offset)
constexpr Matriplex::idx_t NN
void propagateTracksToHitR(const MPlexHV &par, const int N_proc, const PropagationFlags pf, const MPlexQI *noMatEffPtr=nullptr)
void copyOut(idx_t n, T *arr) const
const HitOnTrack * getHitsOnTrackArray() const
int countValidHits(int itrack, int end_hit) const
auto const & tracks
cannot be loose
void pack(TMerr &err, TMpar &par)
MPlexQHoT m_HoTArr[Config::nMaxTrkHits]
char data[epos_bytes_allocation]
void copyIn(idx_t n, const T *arr)
void copyOut(idx_t n, T *arr) const
MPlexHS m_msErr[Config::nMaxTrkHits]
void inputTracksAndHits(const std::vector< Track > &tracks, const std::vector< HitVec > &layerHits, int beg, int end)
HitOnTrack getHitOnTrack(int posHitIdx) const