Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,20 @@ class VertexerTraitsGPU : public VertexerTraits
{
public:
VertexerTraitsGPU();
~VertexerTraitsGPU() override;
~VertexerTraitsGPU() = default;
void initialise(const TrackingParameters&, const int iteration = 0) override;
void adoptTimeFrame(TimeFrame*) override;
void computeTracklets(const int iteration = 0) override;
void computeTrackletMatching(const int iteration = 0) override;
void computeVertices(const int iteration = 0) override;
void updateVertexingParameters(const std::vector<VertexingParameters>&, const TimeFrameGPUParameters&) override;

// Hybrid
void initialiseHybrid(const TrackingParameters& pars) override { VertexerTraits::initialise(pars); }
void initialiseHybrid(const TrackingParameters& pars, const int iteration = 0) override { VertexerTraits::initialise(pars, iteration); }
void computeTrackletsHybrid(const int iteration = 0) override { VertexerTraits::computeTracklets(iteration); }
void computeTrackletMatchingHybrid(const int iteration = 0) override { VertexerTraits::computeTrackletMatching(iteration); }
void computeVerticesHybrid(const int iteration = 0) override { VertexerTraits::computeVertices(iteration); }
void adoptTimeFrameHybrid(TimeFrame* tf) override { VertexerTraits::adoptTimeFrame(tf); }
void computeTrackletsHybrid() override { VertexerTraits::computeTracklets(); }
void computeTrackletMatchingHybrid() override { VertexerTraits::computeTrackletMatching(); }
void computeVerticesHybrid() override { VertexerTraits::computeVertices(); }

void updateVertexingParameters(const std::vector<VertexingParameters>&, const TimeFrameGPUParameters&) override;

void computeVerticesHist();

Expand Down
4 changes: 0 additions & 4 deletions Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,6 @@ VertexerTraitsGPU::VertexerTraitsGPU()
setIsGPU(true);
}

VertexerTraitsGPU::~VertexerTraitsGPU()
{
}

void VertexerTraitsGPU::initialise(const TrackingParameters& trackingParams, const int iteration)
{
mTimeFrameGPU->initialise(0, trackingParams, 3, &mIndexTableUtils, &mTfGPUParams);
Expand Down
16 changes: 10 additions & 6 deletions Detectors/ITSMFT/ITS/tracking/include/ITStracking/Vertexer.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,12 @@ class Vertexer
void findTrivialMCTracklets();
template <typename... T>
void validateTracklets(T&&... args);
void validateTrackletsHybrid();
template <typename... T>
void validateTrackletsHybrid(T&&... args);
template <typename... T>
void findVertices(T&&... args);
void findVerticesHybrid();
template <typename... T>
void findVerticesHybrid(T&&... args);
void findHistVertices();

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

inline void Vertexer::validateTrackletsHybrid()
template <typename... T>
inline void Vertexer::validateTrackletsHybrid(T&&... args)
{
mTraits->computeTrackletMatchingHybrid();
mTraits->computeTrackletMatchingHybrid(std::forward<T>(args)...);
}

inline void Vertexer::findVerticesHybrid()
template <typename... T>
inline void Vertexer::findVerticesHybrid(T&&... args)
{
mTraits->computeVerticesHybrid();
mTraits->computeVerticesHybrid(std::forward<T>(args)...);
}

template <typename... T>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ class VertexerTraits
virtual void adoptTimeFrame(TimeFrame* tf);
virtual void updateVertexingParameters(const std::vector<VertexingParameters>& vrtPar, const TimeFrameGPUParameters& gpuTfPar);
// Hybrid
virtual void initialiseHybrid(const TrackingParameters& trackingParams) { initialise(trackingParams); };
virtual void computeTrackletsHybrid() { computeTracklets(); };
virtual void computeTrackletMatchingHybrid() { computeTrackletMatching(); };
virtual void computeVerticesHybrid() { computeVertices(); };
virtual void initialiseHybrid(const TrackingParameters& trackingParams, const int iteration = 0) { initialise(trackingParams, iteration); };
virtual void computeTrackletsHybrid(const int iteration = 0) { computeTracklets(iteration); };
virtual void computeTrackletMatchingHybrid(const int iteration = 0) { computeTrackletMatching(iteration); };
virtual void computeVerticesHybrid(const int iteration = 0) { computeVertices(iteration); };
virtual void adoptTimeFrameHybrid(TimeFrame* tf) { adoptTimeFrame(tf); };

void computeVerticesInRof(int,
Expand Down
17 changes: 11 additions & 6 deletions Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,17 @@ float Vertexer::clustersToVerticesHybrid(std::function<void(std::string s)> logg
{
float total{0.f};
TrackingParameters trkPars;
trkPars.PhiBins = mTraits->getVertexingParameters()[0].PhiBins;
trkPars.ZBins = mTraits->getVertexingParameters()[0].ZBins;
total += evaluateTask(&Vertexer::initialiseVertexerHybrid, "Hybrid Vertexer initialisation", logger, trkPars);
total += evaluateTask(&Vertexer::findTrackletsHybrid, "Hybrid Vertexer tracklet finding", logger);
total += evaluateTask(&Vertexer::validateTrackletsHybrid, "Hybrid Vertexer adjacent tracklets validation", logger);
total += evaluateTask(&Vertexer::findVerticesHybrid, "Hybrid Vertexer vertex finding", logger);
TimeFrameGPUParameters tfGPUpar;
mTraits->updateVertexingParameters(mVertParams, tfGPUpar);
for (int iteration = 0; iteration < std::min(mVertParams[0].nIterations, (int)mVertParams.size()); ++iteration) {
logger(fmt::format("ITS Hybrid seeding vertexer iteration {} summary:", iteration));
trkPars.PhiBins = mTraits->getVertexingParameters()[0].PhiBins;
trkPars.ZBins = mTraits->getVertexingParameters()[0].ZBins;
total += evaluateTask(&Vertexer::initialiseVertexerHybrid, "Hybrid Vertexer initialisation", logger, trkPars, iteration);
total += evaluateTask(&Vertexer::findTrackletsHybrid, "Hybrid Vertexer tracklet finding", logger, iteration);
total += evaluateTask(&Vertexer::validateTrackletsHybrid, "Hybrid Vertexer adjacent tracklets validation", logger, iteration);
total += evaluateTask(&Vertexer::findVerticesHybrid, "Hybrid Vertexer vertex finding", logger, iteration);
}
printEpilog(logger, total);
return total;
}
Expand Down