Skip to content

Commit fa3dd7b

Browse files
committed
ITS: redefine seeding vertex label
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent 92f5466 commit fa3dd7b

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

Detectors/ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,25 @@ class VertexerTraits
101101
virtual bool usesMemoryPool() const noexcept { return true; }
102102
void setMemoryPool(std::shared_ptr<BoundedMemoryResource>& pool) { mMemoryPool = pool; }
103103

104-
template <typename T = o2::MCCompLabel>
105-
static std::pair<T, float> computeMain(const bounded_vector<T>& elements)
104+
static std::pair<o2::MCCompLabel, float> computeMain(const bounded_vector<o2::MCCompLabel>& elements)
106105
{
107-
T elem;
106+
// we only care about the source&event of the tracks, not the trackId
107+
auto composeVtxLabel = [](const o2::MCCompLabel& lbl) -> o2::MCCompLabel {
108+
return {o2::MCCompLabel::maxTrackID(), lbl.getEventID(), lbl.getSourceID(), lbl.isFake()};
109+
};
110+
std::unordered_map<o2::MCCompLabel, size_t> frequency;
111+
for (const auto& element : elements) {
112+
++frequency[composeVtxLabel(element)];
113+
}
114+
o2::MCCompLabel elem{};
108115
size_t maxCount = 0;
109-
for (auto& element : elements) {
110-
size_t count = std::count(elements.begin(), elements.end(), element);
116+
for (const auto& [key, count] : frequency) {
111117
if (count > maxCount) {
112118
maxCount = count;
113-
elem = element;
119+
elem = key;
114120
}
115121
}
116-
return std::make_pair(elem, static_cast<float>(maxCount) / elements.size());
122+
return std::make_pair(elem, static_cast<float>(maxCount) / static_cast<float>(elements.size()));
117123
}
118124

119125
protected:

Detectors/ITSMFT/ITS/tracking/src/VertexerTraits.cxx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -506,18 +506,18 @@ void VertexerTraits::computeVertices(const int iteration)
506506

507507
if (beamDistance2 < nsigmaCut && o2::gpu::GPUCommonMath::Abs(mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[2]) < mVrtParams[iteration].maxZPositionAllowed) {
508508
atLeastOneFound = true;
509-
vertices.emplace_back(o2::math_utils::Point3D<float>(mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[0],
510-
mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[1],
511-
mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[2]),
512-
mTimeFrame->getTrackletClusters(rofId)[iCluster].getRMS2(), // Symm matrix. Diagonal: RMS2 components,
513-
// off-diagonal: square mean of projections on planes.
514-
mTimeFrame->getTrackletClusters(rofId)[iCluster].getSize(), // Contributors
515-
mTimeFrame->getTrackletClusters(rofId)[iCluster].getAvgDistance2()); // In place of chi2
509+
auto& vertex = vertices.emplace_back(o2::math_utils::Point3D<float>(mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[0],
510+
mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[1],
511+
mTimeFrame->getTrackletClusters(rofId)[iCluster].getVertex()[2]),
512+
mTimeFrame->getTrackletClusters(rofId)[iCluster].getRMS2(), // Symm matrix. Diagonal: RMS2 components,
513+
// off-diagonal: square mean of projections on planes.
514+
mTimeFrame->getTrackletClusters(rofId)[iCluster].getSize(), // Contributors
515+
mTimeFrame->getTrackletClusters(rofId)[iCluster].getAvgDistance2()); // In place of chi2
516516

517517
if (iteration) {
518-
vertices.back().setFlags(Vertex::UPCMode);
518+
vertex.setFlags(Vertex::UPCMode);
519519
}
520-
vertices.back().setTimeStamp(mTimeFrame->getTrackletClusters(rofId)[iCluster].getROF());
520+
vertex.setTimeStamp(mTimeFrame->getTrackletClusters(rofId)[iCluster].getROF());
521521
if (mTimeFrame->hasMCinformation()) {
522522
bounded_vector<o2::MCCompLabel> labels(mMemoryPool.get());
523523
for (auto& index : mTimeFrame->getTrackletClusters(rofId)[iCluster].getLabels()) {

0 commit comments

Comments
 (0)