Skip to content

Commit c99385e

Browse files
mconcaschiarazampolli
authored andcommitted
Update the Hybrid interface to latest devs (#13383)
(cherry picked from commit 403e2e7)
1 parent 13829a0 commit c99385e

File tree

5 files changed

+31
-27
lines changed

5 files changed

+31
-27
lines changed

Detectors/ITSMFT/ITS/tracking/GPU/ITStrackingGPU/VertexerTraitsGPU.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,20 @@ class VertexerTraitsGPU : public VertexerTraits
4141
{
4242
public:
4343
VertexerTraitsGPU();
44-
~VertexerTraitsGPU() override;
44+
~VertexerTraitsGPU() = default;
4545
void initialise(const TrackingParameters&, const int iteration = 0) override;
4646
void adoptTimeFrame(TimeFrame*) override;
4747
void computeTracklets(const int iteration = 0) override;
4848
void computeTrackletMatching(const int iteration = 0) override;
4949
void computeVertices(const int iteration = 0) override;
50+
void updateVertexingParameters(const std::vector<VertexingParameters>&, const TimeFrameGPUParameters&) override;
5051

5152
// Hybrid
52-
void initialiseHybrid(const TrackingParameters& pars) override { VertexerTraits::initialise(pars); }
53+
void initialiseHybrid(const TrackingParameters& pars, const int iteration = 0) override { VertexerTraits::initialise(pars, iteration); }
54+
void computeTrackletsHybrid(const int iteration = 0) override { VertexerTraits::computeTracklets(iteration); }
55+
void computeTrackletMatchingHybrid(const int iteration = 0) override { VertexerTraits::computeTrackletMatching(iteration); }
56+
void computeVerticesHybrid(const int iteration = 0) override { VertexerTraits::computeVertices(iteration); }
5357
void adoptTimeFrameHybrid(TimeFrame* tf) override { VertexerTraits::adoptTimeFrame(tf); }
54-
void computeTrackletsHybrid() override { VertexerTraits::computeTracklets(); }
55-
void computeTrackletMatchingHybrid() override { VertexerTraits::computeTrackletMatching(); }
56-
void computeVerticesHybrid() override { VertexerTraits::computeVertices(); }
57-
58-
void updateVertexingParameters(const std::vector<VertexingParameters>&, const TimeFrameGPUParameters&) override;
5958

6059
void computeVerticesHist();
6160

Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ VertexerTraitsGPU::VertexerTraitsGPU()
9191
setIsGPU(true);
9292
}
9393

94-
VertexerTraitsGPU::~VertexerTraitsGPU()
95-
{
96-
}
97-
9894
void VertexerTraitsGPU::initialise(const TrackingParameters& trackingParams, const int iteration)
9995
{
10096
mTimeFrameGPU->initialise(0, trackingParams, 3, &mIndexTableUtils, &mTfGPUParams);

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,12 @@ class Vertexer
7272
void findTrivialMCTracklets();
7373
template <typename... T>
7474
void validateTracklets(T&&... args);
75-
void validateTrackletsHybrid();
75+
template <typename... T>
76+
void validateTrackletsHybrid(T&&... args);
7677
template <typename... T>
7778
void findVertices(T&&... args);
78-
void findVerticesHybrid();
79+
template <typename... T>
80+
void findVerticesHybrid(T&&... args);
7981
void findHistVertices();
8082

8183
template <typename... T>
@@ -153,14 +155,16 @@ void Vertexer::findTrackletsHybrid(T&&... args)
153155
mTraits->computeTrackletsHybrid(std::forward<T>(args)...);
154156
}
155157

156-
inline void Vertexer::validateTrackletsHybrid()
158+
template <typename... T>
159+
inline void Vertexer::validateTrackletsHybrid(T&&... args)
157160
{
158-
mTraits->computeTrackletMatchingHybrid();
161+
mTraits->computeTrackletMatchingHybrid(std::forward<T>(args)...);
159162
}
160163

161-
inline void Vertexer::findVerticesHybrid()
164+
template <typename... T>
165+
inline void Vertexer::findVerticesHybrid(T&&... args)
162166
{
163-
mTraits->computeVerticesHybrid();
167+
mTraits->computeVerticesHybrid(std::forward<T>(args)...);
164168
}
165169

166170
template <typename... T>

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ class VertexerTraits
6969
virtual void adoptTimeFrame(TimeFrame* tf);
7070
virtual void updateVertexingParameters(const std::vector<VertexingParameters>& vrtPar, const TimeFrameGPUParameters& gpuTfPar);
7171
// Hybrid
72-
virtual void initialiseHybrid(const TrackingParameters& trackingParams) { initialise(trackingParams); };
73-
virtual void computeTrackletsHybrid() { computeTracklets(); };
74-
virtual void computeTrackletMatchingHybrid() { computeTrackletMatching(); };
75-
virtual void computeVerticesHybrid() { computeVertices(); };
72+
virtual void initialiseHybrid(const TrackingParameters& trackingParams, const int iteration = 0) { initialise(trackingParams, iteration); };
73+
virtual void computeTrackletsHybrid(const int iteration = 0) { computeTracklets(iteration); };
74+
virtual void computeTrackletMatchingHybrid(const int iteration = 0) { computeTrackletMatching(iteration); };
75+
virtual void computeVerticesHybrid(const int iteration = 0) { computeVertices(iteration); };
7676
virtual void adoptTimeFrameHybrid(TimeFrame* tf) { adoptTimeFrame(tf); };
7777

7878
void computeVerticesInRof(int,

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,17 @@ float Vertexer::clustersToVerticesHybrid(std::function<void(std::string s)> logg
6060
{
6161
float total{0.f};
6262
TrackingParameters trkPars;
63-
trkPars.PhiBins = mTraits->getVertexingParameters()[0].PhiBins;
64-
trkPars.ZBins = mTraits->getVertexingParameters()[0].ZBins;
65-
total += evaluateTask(&Vertexer::initialiseVertexerHybrid, "Hybrid Vertexer initialisation", logger, trkPars);
66-
total += evaluateTask(&Vertexer::findTrackletsHybrid, "Hybrid Vertexer tracklet finding", logger);
67-
total += evaluateTask(&Vertexer::validateTrackletsHybrid, "Hybrid Vertexer adjacent tracklets validation", logger);
68-
total += evaluateTask(&Vertexer::findVerticesHybrid, "Hybrid Vertexer vertex finding", logger);
63+
TimeFrameGPUParameters tfGPUpar;
64+
mTraits->updateVertexingParameters(mVertParams, tfGPUpar);
65+
for (int iteration = 0; iteration < std::min(mVertParams[0].nIterations, (int)mVertParams.size()); ++iteration) {
66+
logger(fmt::format("ITS Hybrid seeding vertexer iteration {} summary:", iteration));
67+
trkPars.PhiBins = mTraits->getVertexingParameters()[0].PhiBins;
68+
trkPars.ZBins = mTraits->getVertexingParameters()[0].ZBins;
69+
total += evaluateTask(&Vertexer::initialiseVertexerHybrid, "Hybrid Vertexer initialisation", logger, trkPars, iteration);
70+
total += evaluateTask(&Vertexer::findTrackletsHybrid, "Hybrid Vertexer tracklet finding", logger, iteration);
71+
total += evaluateTask(&Vertexer::validateTrackletsHybrid, "Hybrid Vertexer adjacent tracklets validation", logger, iteration);
72+
total += evaluateTask(&Vertexer::findVerticesHybrid, "Hybrid Vertexer vertex finding", logger, iteration);
73+
}
6974
printEpilog(logger, total);
7075
return total;
7176
}

0 commit comments

Comments
 (0)