1 #include <cuda_runtime.h> 22 #undef PIXVERTEX_DEBUG_PRODUCE 51 : onGPU_(conf.getParameter<
bool>(
"onGPU")),
52 gpuAlgo_(conf.getParameter<
bool>(
"oneKernel"),
53 conf.getParameter<
bool>(
"useDensity"),
54 conf.getParameter<
bool>(
"useDBSCAN"),
55 conf.getParameter<
bool>(
"useIterative"),
56 conf.getParameter<
int>(
"minT"),
57 conf.getParameter<double>(
"eps"),
58 conf.getParameter<double>(
"errmax"),
59 conf.getParameter<double>(
"chi2max")),
60 ptMin_(conf.getParameter<double>(
"PtMin")),
61 ptMax_(conf.getParameter<double>(
"PtMax"))
78 desc.add<
bool>(
"onGPU",
true);
79 desc.add<
bool>(
"oneKernel",
true);
80 desc.add<
bool>(
"useDensity",
true);
81 desc.add<
bool>(
"useDBSCAN",
false);
82 desc.add<
bool>(
"useIterative",
false);
84 desc.add<
int>(
"minT", 2);
85 desc.add<
double>(
"eps", 0.07);
86 desc.add<
double>(
"errmax", 0.01);
87 desc.add<
double>(
"chi2max", 9.);
89 desc.add<
double>(
"PtMin", 0.5);
90 desc.add<
double>(
"PtMax", 75.);
93 auto label =
"pixelVerticesCUDA";
104 auto const*
tracks = ctx.get(*hTracks).get();
117 #ifdef PIXVERTEX_DEBUG_PRODUCE 118 auto const& tsoa = *
tracks;
123 for (int32_t it = 0; it <
maxTracks; ++it) {
124 auto nHits = tsoa.nHits(it);
130 std::cout <<
"found " <<
nt <<
" tracks in cpu SoA for Vertexing at " <<
tracks << std::endl;
131 #endif // PIXVERTEX_DEBUG_PRODUCE
T getParameter(std::string const &) const
ZVertexHeterogeneous makeAsync(cudaStream_t stream, TkSoA const *tksoa, float ptMin, float ptMax) const
PixelVertexProducerCUDA(const edm::ParameterSet &iConfig)
edm::EDPutTokenT< ZVertexCUDAProduct > tokenGPUVertex_
#define DEFINE_FWK_MODULE(type)
edm::EDPutTokenT< ZVertexHeterogeneous > tokenCPUVertex_
edm::EDGetTokenT< cms::cuda::Product< PixelTrackHeterogeneous > > tokenGPUTrack_
void produceOnGPU(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produceOnCPU(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const
void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
auto const & tracks
cannot be loose
void add(std::string const &label, ParameterSetDescription const &psetDescription)
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
~PixelVertexProducerCUDA() override=default
ZVertexHeterogeneous make(TkSoA const *tksoa, float ptMin, float ptMax) const
edm::EDGetTokenT< PixelTrackHeterogeneous > tokenCPUTrack_
const gpuVertexFinder::Producer gpuAlgo_