91 auto preClusterROFs = pc.
inputs().
get<gsl::span<ROFRecord>>(
"preclusterrofs");
92 auto preClusters = pc.
inputs().
get<gsl::span<PreCluster>>(
"preclusters");
104 std::array<bool, 5> requestStation{
105 trackerParam.requestStation[0],
106 trackerParam.requestStation[1],
107 trackerParam.requestStation[2],
108 trackerParam.requestStation[3],
109 trackerParam.requestStation[4]};
113 clusterROFs.reserve(preClusterROFs.size());
116 int nFilteredRofs = 0;
117 int nFilteredPreClusters = 0;
118 for (
const auto& preClusterROF : preClusterROFs) {
123 clusterROFs.emplace_back(preClusterROF.getBCData(),
clusters.size(), 0, preClusterROF.getBCWidth());
127 nFilteredPreClusters += preClusterROF.getNEntries();
130 auto clusterOffset =
clusters.size();
131 mClusterFinder.
reset();
133 for (
const auto& preCluster : preClusters.subspan(preClusterROF.getFirstIdx(), preClusterROF.getNEntries())) {
135 auto preclusterDigits =
digits.subspan(preCluster.firstDigit, preCluster.nDigits);
136 auto firstClusterIdx = mClusterFinder.
getClusters().size();
139 auto tStart = std::chrono::high_resolution_clock::now();
141 auto tEnd = std::chrono::high_resolution_clock::now();
142 mTimeClusterFinder += tEnd - tStart;
144 if (mAttachInitalPrecluster) {
146 writeClusters(preclusterDigits, firstClusterIdx,
clusters, usedDigits);
150 if (!mAttachInitalPrecluster) {
152 writeClusters(
clusters, usedDigits);
156 clusterROFs.emplace_back(preClusterROF.getBCData(), clusterOffset,
clusters.size() - clusterOffset,
157 preClusterROF.getBCWidth());
162 errorMap.forEach([&clusterErrors](
Error error) {
163 clusterErrors.emplace_back(error);
165 mErrorMap.
add(errorMap);
167 LOGP(info,
"Found {:4d} clusters from {:4d} preclusters (out of {:4d}) in {:2d} filtered ROFs (out of {:2d})",
168 clusters.size(), nFilteredPreClusters, preClusters.size(), nFilteredRofs, preClusterROFs.size());