1 #include <cuda_runtime.h>
22 #undef PIXVERTEX_DEBUG_PRODUCE
50 : onGPU_(conf.getParameter<bool>(
"onGPU")),
51 gpuAlgo_(conf.getParameter<bool>(
"oneKernel"),
52 conf.getParameter<bool>(
"useDensity"),
53 conf.getParameter<bool>(
"useDBSCAN"),
54 conf.getParameter<bool>(
"useIterative"),
55 conf.getParameter<int>(
"minT"),
56 conf.getParameter<double>(
"eps"),
57 conf.getParameter<double>(
"errmax"),
58 conf.getParameter<double>(
"chi2max")),
59 ptMin_(conf.getParameter<double>(
"PtMin"))
76 desc.
add<
bool>(
"onGPU",
true);
77 desc.
add<
bool>(
"oneKernel",
true);
78 desc.
add<
bool>(
"useDensity",
true);
79 desc.
add<
bool>(
"useDBSCAN",
false);
80 desc.
add<
bool>(
"useIterative",
false);
82 desc.
add<
int>(
"minT", 2);
83 desc.
add<
double>(
"eps", 0.07);
84 desc.
add<
double>(
"errmax", 0.01);
85 desc.
add<
double>(
"chi2max", 9.);
87 desc.
add<
double>(
"PtMin", 0.5);
90 auto label =
"pixelVerticesCUDA";
91 descriptions.
add(label, desc);
101 auto const*
tracks = ctx.get(*hTracks).get();
114 #ifdef PIXVERTEX_DEBUG_PRODUCE
115 auto const& tsoa = *
tracks;
120 for (int32_t it = 0; it <
maxTracks; ++it) {
121 auto nHits = tsoa.nHits(it);
127 std::cout <<
"found " << nt <<
" tracks in cpu SoA for Vertexing at " <<
tracks << std::endl;
128 #endif // PIXVERTEX_DEBUG_PRODUCE
PixelVertexProducerCUDA(const edm::ParameterSet &iConfig)
edm::EDPutTokenT< ZVertexCUDAProduct > tokenGPUVertex_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
edm::EDPutTokenT< ZVertexHeterogeneous > tokenCPUVertex_
edm::EDGetTokenT< cms::cuda::Product< PixelTrackHeterogeneous > > tokenGPUTrack_
void produceOnCPU(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const
auto const & tracks
cannot be loose
ZVertexHeterogeneous make(TkSoA const *tksoa, float ptMin) const
ptMin_(conf.getParameter< double >("ptMin"))
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
bool get(ProductID const &oid, Handle< PROD > &result) const
void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
ZVertexHeterogeneous makeAsync(cudaStream_t stream, TkSoA const *tksoa, float ptMin) const
void produceOnGPU(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const
OrphanHandle< PROD > emplace(EDPutTokenT< PROD > token, Args &&...args)
puts a new product
T getParameter(std::string const &) const
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
edm::EDGetTokenT< PixelTrackHeterogeneous > tokenCPUTrack_
const gpuVertexFinder::Producer gpuAlgo_