File indexing completed on 2023-04-15 01:47:35
0001 #ifndef RecoTracker_PixelSeeding_plugins_CAStructures_h
0002 #define RecoTracker_PixelSeeding_plugins_CAStructures_h
0003
0004 #include "HeterogeneousCore/CUDAUtilities/interface/SimpleVector.h"
0005 #include "HeterogeneousCore/CUDAUtilities/interface/VecArray.h"
0006 #include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h"
0007
0008 namespace caStructures {
0009
0010
0011
0012
0013
0014
0015 template <typename TrackerTraits>
0016 using CellNeighborsT = cms::cuda::VecArray<typename TrackerTraits::cindex_type, TrackerTraits::maxCellNeighbors>;
0017
0018 template <typename TrackerTraits>
0019 using CellTracksT = cms::cuda::VecArray<typename TrackerTraits::tindex_type, TrackerTraits::maxCellTracks>;
0020
0021 template <typename TrackerTraits>
0022 using CellNeighborsVectorT = cms::cuda::SimpleVector<CellNeighborsT<TrackerTraits>>;
0023
0024 template <typename TrackerTraits>
0025 using CellTracksVectorT = cms::cuda::SimpleVector<CellTracksT<TrackerTraits>>;
0026
0027 template <typename TrackerTraits>
0028 using OuterHitOfCellContainerT = cms::cuda::VecArray<uint32_t, TrackerTraits::maxCellsPerHit>;
0029
0030 template <typename TrackerTraits>
0031 using TupleMultiplicityT = cms::cuda::OneToManyAssoc<typename TrackerTraits::tindex_type,
0032 TrackerTraits::maxHitsOnTrack + 1,
0033 TrackerTraits::maxNumberOfTuples>;
0034
0035 template <typename TrackerTraits>
0036 using HitToTupleT = cms::cuda::OneToManyAssoc<typename TrackerTraits::tindex_type,
0037 -1,
0038 TrackerTraits::maxHitsForContainers>;
0039
0040 template <typename TrackerTraits>
0041 using TuplesContainerT = cms::cuda::OneToManyAssoc<typename TrackerTraits::hindex_type,
0042 TrackerTraits::maxNumberOfTuples,
0043 TrackerTraits::maxHitsForContainers>;
0044
0045 template <typename TrackerTraits>
0046 struct OuterHitOfCellT {
0047 OuterHitOfCellContainerT<TrackerTraits>* container;
0048 int32_t offset;
0049 constexpr auto& operator[](int i) { return container[i - offset]; }
0050 constexpr auto const& operator[](int i) const { return container[i - offset]; }
0051 };
0052
0053 }
0054
0055 #endif