3 template <
typename TrackerTraits>
6 uint32_t maxNumberOfTuples) {
9 #ifdef BROKENLINE_DEBUG 14 auto tkidGPU = std::make_unique<typename TrackerTraits::tindex_type[]>(maxNumberOfConcurrentFits_);
19 auto fast_fit_resultsGPU =
20 std::make_unique<double[]>(maxNumberOfConcurrentFits_ *
sizeof(
riemannFit::Vector4d) /
sizeof(
double));
22 for (uint32_t
offset = 0;
offset < maxNumberOfTuples;
offset += maxNumberOfConcurrentFits_) {
24 kernel_BLFastFit<3, TrackerTraits>(tuples_,
30 fast_fit_resultsGPU.get(),
35 kernel_BLFit<3, TrackerTraits>(tupleMultiplicity_,
41 fast_fit_resultsGPU.get());
43 riemannFit::rolling_fits<4, TrackerTraits::maxHitsOnTrack, 1>(
44 [
this, &hv, &tkidGPU, &hitsGPU, &hits_geGPU, &fast_fit_resultsGPU, &
offset](
auto i) {
45 kernel_BLFastFit<4, TrackerTraits>(tuples_,
51 fast_fit_resultsGPU.get(),
56 kernel_BLFit<4, TrackerTraits>(tupleMultiplicity_,
62 fast_fit_resultsGPU.get());
67 riemannFit::rolling_fits<4, TrackerTraits::maxHitsOnTrackForFullFit, 1>(
68 [
this, &hv, &tkidGPU, &hitsGPU, &hits_geGPU, &fast_fit_resultsGPU, &
offset](
auto i) {
69 kernel_BLFastFit<i, TrackerTraits>(tuples_,
75 fast_fit_resultsGPU.get(),
80 kernel_BLFit<i, TrackerTraits>(tupleMultiplicity_,
86 fast_fit_resultsGPU.get());
89 static_assert(TrackerTraits::maxHitsOnTrackForFullFit < TrackerTraits::maxHitsOnTrack);
93 kernel_BLFastFit<TrackerTraits::maxHitsOnTrackForFullFit, TrackerTraits>(tuples_,
99 fast_fit_resultsGPU.get(),
100 TrackerTraits::maxHitsOnTrackForFullFit,
101 TrackerTraits::maxHitsOnTrack - 1,
104 kernel_BLFit<TrackerTraits::maxHitsOnTrackForFullFit, TrackerTraits>(tupleMultiplicity_,
110 fast_fit_resultsGPU.get());
Eigen::Matrix< float, 6, N > Matrix6xNf
Eigen::Matrix< double, 3, N > Matrix3xNd
void launchBrokenLineKernelsOnCPU(const HitConstView &hv, uint32_t nhits, uint32_t maxNumberOfTuples)
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::ConstView TrackingRecHitSoAConstView