CMS 3D CMS Logo

CAStructures.h
Go to the documentation of this file.
1 #ifndef RecoTracker_PixelSeeding_plugins_CAStructures_h
2 #define RecoTracker_PixelSeeding_plugins_CAStructures_h
3 
7 
8 namespace caStructures {
9 
10  // types
11  // using typename TrackerTraits::hindex_type = uint32_t; // FIXME from siPixelRecHitsHeterogeneousProduct
12  // using typename TrackerTraits::tindex_type = uint32_t; // for tuples
13  // using typename TrackerTraits::cindex_type = uint32_t; // for cells
14 
15  template <typename TrackerTraits>
17 
18  template <typename TrackerTraits>
20 
21  template <typename TrackerTraits>
23 
24  template <typename TrackerTraits>
26 
27  template <typename TrackerTraits>
29 
30  template <typename TrackerTraits>
31  using TupleMultiplicityT = cms::cuda::OneToManyAssoc<typename TrackerTraits::tindex_type,
32  TrackerTraits::maxHitsOnTrack + 1,
33  TrackerTraits::maxNumberOfTuples>;
34 
35  template <typename TrackerTraits>
36  using HitToTupleT = cms::cuda::OneToManyAssoc<typename TrackerTraits::tindex_type,
37  -1,
38  TrackerTraits::maxHitsForContainers>; // 3.5 should be enough
39 
40  template <typename TrackerTraits>
41  using TuplesContainerT = cms::cuda::OneToManyAssoc<typename TrackerTraits::hindex_type,
42  TrackerTraits::maxNumberOfTuples,
43  TrackerTraits::maxHitsForContainers>;
44 
45  template <typename TrackerTraits>
46  struct OuterHitOfCellT {
47  OuterHitOfCellContainerT<TrackerTraits>* container;
48  int32_t offset;
49  constexpr auto& operator[](int i) { return container[i - offset]; }
50  constexpr auto const& operator[](int i) const { return container[i - offset]; }
51  };
52 
53 } // namespace caStructures
54 
55 #endif
cms::alpakatools::SimpleVector< CellNeighborsT< TrackerTraits > > CellNeighborsVectorT
Definition: CAStructures.h:18
cms::alpakatools::SimpleVector< CellTracksT< TrackerTraits > > CellTracksVectorT
Definition: CAStructures.h:21
OuterHitOfCellContainerT< TrackerTraits > * container
Definition: CAStructures.h:44
constexpr auto const & operator[](int i) const
Definition: CAStructures.h:50
cms::alpakatools::VecArray< uint32_t, TrackerTraits::maxCellsPerHit > OuterHitOfCellContainerT
Definition: CAStructures.h:24
cms::alpakatools::OneToManyAssocRandomAccess< typename TrackerTraits::tindex_type, TrackerTraits::maxHitsOnTrack+1, TrackerTraits::maxNumberOfTuples > TupleMultiplicityT
Definition: CAStructures.h:29
cms::alpakatools::VecArray< typename TrackerTraits::tindex_type, TrackerTraits::maxCellTracks > CellTracksT
Definition: CAStructures.h:15
cms::alpakatools::OneToManyAssocRandomAccess< typename TrackerTraits::tindex_type, TrackerTraits::maxNumberOfHits, TrackerTraits::maxHitsForContainers > HitToTupleT
Definition: CAStructures.h:35
constexpr auto & operator[](int i)
Definition: CAStructures.h:49
cms::alpakatools::OneToManyAssocRandomAccess< typename TrackerTraits::hindex_type, TrackerTraits::maxNumberOfTuples, TrackerTraits::maxHitsForContainers > TuplesContainerT
Definition: CAStructures.h:40
cms::alpakatools::VecArray< typename TrackerTraits::cindex_type, TrackerTraits::maxCellNeighbors > CellNeighborsT
Definition: CAStructures.h:12