CMS 3D CMS Logo

gpuVertexFinder.h
Go to the documentation of this file.
1 #ifndef RecoTracker_PixelVertexFinding_plugins_gpuVertexFinder_h
2 #define RecoTracker_PixelVertexFinding_plugins_gpuVertexFinder_h
3 
4 #include <cstddef>
5 #include <cstdint>
6 
14 
15 namespace gpuVertexFinder {
16 
19 
20  __global__ void init(VtxSoAView pdata, WsSoAView pws) {
23  }
24 
25  template <typename TrackerTraits>
26  class Producer {
28 
29  public:
31  bool useDensity,
32  bool useDBSCAN,
33  bool useIterative,
34  bool doSplitting,
35  int iminT, // min number of neighbours to be "core"
36  float ieps, // max absolute distance to cluster
37  float ierrmax, // max error to be "seed"
38  float ichi2max // max normalized distance to cluster
39  )
45  minT(iminT),
46  eps(ieps),
47  errmax(ierrmax),
48  chi2max(ichi2max) {}
49 
50  ~Producer() = default;
51 
52  ZVertexSoADevice makeAsync(cudaStream_t stream, const TkSoAConstView &tracks_view, float ptMin, float ptMax) const;
53  ZVertexSoAHost make(const TkSoAConstView &tracks_view, float ptMin, float ptMax) const;
54 
55  private:
56  const bool oneKernel_;
57  const bool useDensity_;
58  const bool useDBSCAN_;
59  const bool useIterative_;
60  const bool doSplitting_;
61 
62  int minT; // min number of neighbours to be "core"
63  float eps; // max absolute distance to cluster
64  float errmax; // max error to be "seed"
65  float chi2max; // max normalized distance to cluster
66  };
67 
68 } // namespace gpuVertexFinder
69 
70 #endif // RecoTracker_PixelVertexFinding_plugins_gpuVertexFinder_h
ZVertexSoAHost make(const TkSoAConstView &tracks_view, float ptMin, float ptMax) const
ZVertexSoADevice makeAsync(cudaStream_t stream, const TkSoAConstView &tracks_view, float ptMin, float ptMax) const
uint32_t const *__restrict__ TkSoAView< TrackerTraits > tracks_view
PixelVertexWSSoALayout<>::View PixelVertexWorkSpaceSoAView
#define __global__
Definition: cudaCompat.h:19
int init
Definition: HydjetWrapper.h:66
VtxSoAView WsSoAView float ptMin
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
ZVertexSoAHeterogeneousLayout<>::View ZVertexSoAView
__device__ WsSoAView & pws
VtxSoAView WsSoAView float float ptMax
gpuVertexFinder::workSpace::PixelVertexWorkSpaceSoAView WsSoAView
Producer(bool oneKernel, bool useDensity, bool useDBSCAN, bool useIterative, bool doSplitting, int iminT, float ieps, float ierrmax, float ichi2max)
__host__ __device__ void init(PixelVertexWorkSpaceSoAView &workspace_view)
TrackSoAConstView< TrackerTraits > TkSoAConstView
typename TrackSoA< TrackerTraits >::template TrackSoALayout<>::ConstView TrackSoAConstView
__host__ __device__ void init(ZVertexSoAView &vertices)
zVertex::ZVertexSoAView VtxSoAView