1 #ifndef RecoTracker_PixelSeeding_plugins_HelixFitOnGPU_h 2 #define RecoTracker_PixelSeeding_plugins_HelixFitOnGPU_h 15 using Matrix3x4d = Eigen::Matrix<double, 3, 4>;
16 using Map3x4d = Eigen::Map<Matrix3x4d, 0, Eigen::Stride<3 * stride, stride> >;
18 using Map6x4f = Eigen::Map<Matrix6x4f, 0, Eigen::Stride<6 * stride, stride> >;
22 using Matrix3xNd = Eigen::Matrix<double, 3, N>;
24 using Map3xNd = Eigen::Map<Matrix3xNd<N>, 0, Eigen::Stride<3 * stride, stride> >;
29 using Map6xNf = Eigen::Map<Matrix6xNf<N>, 0, Eigen::Stride<6 * stride, stride> >;
31 using Map4d = Eigen::Map<Vector4d, 0, Eigen::InnerStride<stride> >;
33 template <auto Start, auto End, auto Inc,
class F>
36 f(std::integral_constant<decltype(Start), Start>());
37 rolling_fits<Start + Inc, End, Inc>(
f);
43 template <
typename TrackerTraits>
63 uint32_t maxNumberOfTuples,
64 cudaStream_t cudaStream);
84 #endif // RecoTracker_PixelSeeding_plugins_HelixFitOnGPU_h Eigen::Matrix< double, 3, 4 > Matrix3x4d
Eigen::Map< Matrix3x4d, 0, Eigen::Stride< 3 *stride, stride > > Map3x4d
typename TrackSoA< TrackerTraits >::HitContainer Tuples
Eigen::Matrix< float, 6, 4 > Matrix6x4f
TupleMultiplicity< TrackerTraits > const *__restrict__ tupleMultiplicity
constexpr uint32_t stride
Eigen::Matrix< float, 6, N > Matrix6xNf
constexpr void rolling_fits(F &&f)
Eigen::Map< Vector4d, 0, Eigen::InnerStride< stride > > Map4d
Eigen::Map< Matrix3xNd< N >, 0, Eigen::Stride< 3 *stride, stride > > Map3xNd
void launchRiemannKernelsOnCPU(const HitConstView &hv, uint32_t nhits, uint32_t maxNumberOfTuples)
TrackingRecHitSoAView< TrackerTraits > HitView
Eigen::Map< Matrix6x4f, 0, Eigen::Stride< 6 *stride, stride > > Map6x4f
static constexpr uint32_t maxNumberOfConcurrentFits_
void setBField(double bField)
HelixFitOnGPU(float bf, bool fitNas4)
void launchRiemannKernels(const HitConstView &hv, uint32_t nhits, uint32_t maxNumberOfTuples, cudaStream_t cudaStream)
Eigen::Matrix< double, 3, N > Matrix3xNd
Eigen::Map< Matrix6xNf< N >, 0, Eigen::Stride< 6 *stride, stride > > Map6xNf
void launchBrokenLineKernelsOnCPU(const HitConstView &hv, uint32_t nhits, uint32_t maxNumberOfTuples)
TrackSoAView< TrackerTraits > OutputSoAView
TupleMultiplicity const * tupleMultiplicity_
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::ConstView TrackingRecHitSoAConstView
void allocateOnGPU(TupleMultiplicity const *tupleMultiplicity, OutputSoAView &helix_fit_results)
typename TrackSoA< TrackerTraits >::template TrackSoALayout<>::View TrackSoAView
TrackingRecHitSoAConstView< TrackerTraits > HitConstView
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::View TrackingRecHitSoAView
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
void launchBrokenLineKernels(const HitConstView &hv, uint32_t nhits, uint32_t maxNumberOfTuples, cudaStream_t cudaStream)
reco::TrackSoAView< TrackerTraits > OutputSoAView
constexpr uint32_t maxNumberOfConcurrentFits