Skip to content

Commit 6d13038

Browse files
committed
Fix and clean up SiPixelPhase2DigiToCluster
1 parent 12b7b95 commit 6d13038

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
4444

4545
const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
4646
const edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> pixelDigiToken_;
47-
48-
device::EDPutToken<SiPixelDigisSoACollection> digiPutToken_;
49-
device::EDPutToken<SiPixelClustersSoACollection> clusterPutToken_;
50-
51-
Algo Algo_;
52-
47+
const device::EDPutToken<SiPixelDigisSoACollection> digiPutToken_;
48+
const device::EDPutToken<SiPixelClustersSoACollection> clusterPutToken_;
5349
const SiPixelClusterThresholds clusterThresholds_;
54-
uint32_t nDigis_ = 0;
5550

51+
Algo algo_;
52+
uint32_t nDigis_ = 0;
5653
std::optional<SiPixelDigisSoACollection> digis_d_;
5754
};
5855

@@ -88,18 +85,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
8885

8986
const TrackerGeometry* geom_ = &iSetup.getData(geomToken_);
9087

91-
uint32_t nDigis = 0;
88+
nDigis_ = 0;
9289
for (const auto& det : input) {
93-
nDigis += det.size();
90+
nDigis_ += det.size();
9491
}
92+
digis_d_ = SiPixelDigisSoACollection(nDigis_, iEvent.queue());
9593

96-
if (nDigis == 0)
94+
if (nDigis_ == 0)
9795
return;
9896

99-
nDigis_ = nDigis;
10097
SiPixelDigisHost digis_h(nDigis_, iEvent.queue());
10198

102-
nDigis = 0;
99+
uint32_t nDigis = 0;
103100
for (const auto& det : input) {
104101
unsigned int detid = det.detId();
105102
DetId detIdObject(detid);
@@ -116,22 +113,20 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
116113
++nDigis;
117114
}
118115
}
116+
assert(nDigis == nDigis_);
119117

120-
digis_d_ = SiPixelDigisSoACollection(nDigis, iEvent.queue());
121118
alpaka::memcpy(iEvent.queue(), digis_d_->buffer(), digis_h.buffer());
122-
Algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d_->view(), nDigis_);
119+
algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d_->view(), nDigis_);
123120
}
124121

125122
void SiPixelPhase2DigiToCluster::produce(device::Event& iEvent, device::EventSetup const& iSetup) {
126123
if (nDigis_ == 0) {
127-
SiPixelClustersSoACollection clusters_d{pixelTopology::Phase2::numberOfModules, iEvent.queue()};
128-
SiPixelDigisSoACollection digis_d_zero{0, iEvent.queue()};
129-
iEvent.emplace(digiPutToken_, std::move(digis_d_zero));
130-
iEvent.emplace(clusterPutToken_, std::move(clusters_d));
124+
iEvent.emplace(digiPutToken_, std::move(*digis_d_));
125+
iEvent.emplace(clusterPutToken_, pixelTopology::Phase2::numberOfModules, iEvent.queue());
131126
} else {
132-
digis_d_->setNModules(Algo_.nModules());
127+
digis_d_->setNModules(algo_.nModules());
133128
iEvent.emplace(digiPutToken_, std::move(*digis_d_));
134-
iEvent.emplace(clusterPutToken_, Algo_.getClusters());
129+
iEvent.emplace(clusterPutToken_, algo_.getClusters());
135130
}
136131
digis_d_.reset();
137132
}

0 commit comments

Comments
 (0)