diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc index 5a86ece3590f6..41c1c03fbed01 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc @@ -177,7 +177,10 @@ PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuplesAsync(TrackingRecH float bfield, cudaStream_t stream) const { PixelTrackHeterogeneous tracks(cms::cuda::make_device_unique(stream)); - + + if (0 == hits_d.nHits()) + return tracks; + auto* soa = tracks.get(); CAHitNtupletGeneratorKernelsGPU kernels(m_params); @@ -204,6 +207,9 @@ PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuplesAsync(TrackingRecH PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuples(TrackingRecHit2DCPU const& hits_d, float bfield) const { PixelTrackHeterogeneous tracks(std::make_unique()); + if (0 == hits_d.nHits()) + return tracks; + auto* soa = tracks.get(); assert(soa); @@ -215,9 +221,6 @@ PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuples(TrackingRecHit2DC kernels.launchKernels(hits_d, soa, nullptr); kernels.fillHitDetIndices(hits_d.view(), soa, nullptr); // in principle needed only if Hits not "available" - if (0 == hits_d.nHits()) - return tracks; - // now fit HelixFitOnGPU fitter(bfield, m_params.fit5as4_); fitter.allocateOnGPU(&(soa->hitIndices), kernels.tupleMultiplicity(), soa);