Skip to content

Commit dc77e2c

Browse files
committed
Ultimate rebase
1 parent bed2672 commit dc77e2c

6 files changed

Lines changed: 53 additions & 39 deletions

File tree

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,14 @@ class TrackerTraitsGPU : public TrackerTraits
3232

3333
// void computeLayerCells() final;
3434
void adoptTimeFrame(TimeFrame* tf) override;
35-
void initialiseTimeFrame(const int iteration, const TrackingParameters& trackingParams) override;
35+
void initialiseTimeFrame(const int iteration) override;
3636
void computeLayerTracklets(const int iteration) final;
3737
void computeLayerCells(const int iteration) override;
38+
void setBz(float) override;
39+
void findCellsNeighbours(const int iteration) override;
40+
void findRoads(const int iteration) override;
41+
void findTracks() override;
42+
void extendTracks(const int iteration) override;
3843
// void refitTracks(const std::vector<std::vector<TrackingFrameInfo>>& tf, std::vector<TrackITSExt>& tracks) override;
3944

4045
// TimeFrameGPU information forwarding

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

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -249,21 +249,21 @@ GPUg() void computeLayerCellsKernel(
249249
} // namespace gpu
250250

251251
template <int NLayers>
252-
void TrackerTraitsGPU<NLayers>::initialiseTimeFrame(const int iteration, const TrackingParameters& trackingParams)
252+
void TrackerTraitsGPU<NLayers>::initialiseTimeFrame(const int iteration)
253253
{
254-
mTimeFrameGPU->initialise(iteration, trackingParams, NLayers);
254+
mTimeFrameGPU->initialise(iteration, mTrkParams[iteration], NLayers);
255255
setIsGPU(true);
256256
}
257257

258258
template <int NLayers>
259259
void TrackerTraitsGPU<NLayers>::computeLayerTracklets(const int iteration)
260260
{
261-
const Vertex diamondVert({mTrkParams.Diamond[0], mTrkParams.Diamond[1], mTrkParams.Diamond[2]}, {25.e-6f, 0.f, 0.f, 25.e-6f, 0.f, 36.f}, 1, 1.f);
261+
const Vertex diamondVert({mTrkParams[iteration].Diamond[0], mTrkParams[iteration].Diamond[1], mTrkParams[iteration].Diamond[2]}, {25.e-6f, 0.f, 0.f, 25.e-6f, 0.f, 36.f}, 1, 1.f);
262262
gsl::span<const Vertex> diamondSpan(&diamondVert, 1);
263263
size_t bufferSize = mTimeFrameGPU->getConfig().tmpCUBBufferSize;
264264

265265
for (int rof0{0}; rof0 < mTimeFrameGPU->getNrof(); ++rof0) {
266-
gsl::span<const Vertex> primaryVertices = mTrkParams.UseDiamond ? diamondSpan : mTimeFrameGPU->getPrimaryVertices(rof0); // replace with GPU one
266+
gsl::span<const Vertex> primaryVertices = mTrkParams[iteration].UseDiamond ? diamondSpan : mTimeFrameGPU->getPrimaryVertices(rof0); // replace with GPU one
267267
std::vector<Vertex> paddedVertices;
268268
for (int iVertex{0}; iVertex < mTimeFrameGPU->getConfig().maxVerticesCapacity; ++iVertex) {
269269
if (iVertex < primaryVertices.size()) {
@@ -276,7 +276,7 @@ void TrackerTraitsGPU<NLayers>::computeLayerTracklets(const int iteration)
276276
for (int iLayer{0}; iLayer < NLayers - 1; ++iLayer) {
277277
const dim3 threadsPerBlock{gpu::utils::host::getBlockSize(mTimeFrameGPU->getNClustersLayer(rof0, iLayer))};
278278
const dim3 blocksGrid{gpu::utils::host::getBlocksGrid(threadsPerBlock, mTimeFrameGPU->getNClustersLayer(rof0, iLayer))};
279-
const float meanDeltaR{mTrkParams.LayerRadii[iLayer + 1] - mTrkParams.LayerRadii[iLayer]};
279+
const float meanDeltaR{mTrkParams[iteration].LayerRadii[iLayer + 1] - mTrkParams[iteration].LayerRadii[iLayer]};
280280

281281
if (!mTimeFrameGPU->getClustersOnLayer(rof0, iLayer).size()) {
282282
LOGP(info, "Skipping ROF0: {}, no clusters found on layer {}", rof0, iLayer);
@@ -370,7 +370,7 @@ void TrackerTraitsGPU<NLayers>::computeLayerTracklets(const int iteration)
370370
371371
// Create tracklets labels, at the moment on the host
372372
if (mTimeFrameGPU->hasMCinformation()) {
373-
for (int iLayer{0}; iLayer < mTrkParams.TrackletsPerRoad(); ++iLayer) {
373+
for (int iLayer{0}; iLayer < mTrkParams[iteration].TrackletsPerRoad(); ++iLayer) {
374374
std::vector<o2::its::Tracklet> tracklets(mTimeFrameGPU->getTrackletSizeHost()[iLayer]);
375375
checkGPUError(cudaMemcpy(tracklets.data(), mTimeFrameGPU->getDeviceTrackletsAll(iLayer), mTimeFrameGPU->getTrackletSizeHost()[iLayer] * sizeof(o2::its::Tracklet), cudaMemcpyDeviceToHost), __FILE__, __LINE__);
376376
for (auto& trk : tracklets) {
@@ -395,7 +395,7 @@ void TrackerTraitsGPU<NLayers>::computeLayerTracklets(const int iteration)
395395
}
396396
397397
template <int NLayers>
398-
void TrackerTraitsGPU<NLayers>::computeLayerCells()
398+
void TrackerTraitsGPU<NLayers>::computeLayerCells(const int iteration)
399399
{
400400
size_t bufferSize = mTimeFrameGPU->getConfig().tmpCUBBufferSize;
401401
for (int iLayer{0}; iLayer < NLayers - 2; ++iLayer) {
@@ -471,6 +471,25 @@ void TrackerTraitsGPU<NLayers>::computeLayerCells()
471471
// // mChainRunITSTrackFit(*mChain, mPrimaryVertexContext->getRoads(), clusters, cells, tf, tracks);
472472
// }
473473
474+
template <int NLayers>
475+
void TrackerTraitsGPU<NLayers>::findCellsNeighbours(const int iteration){};
476+
477+
template <int NLayers>
478+
void TrackerTraitsGPU<NLayers>::findRoads(const int iteration){};
479+
480+
template <int NLayers>
481+
void TrackerTraitsGPU<NLayers>::findTracks(){};
482+
483+
template <int NLayers>
484+
void TrackerTraitsGPU<NLayers>::extendTracks(const int iteration){};
485+
486+
template <int NLayers>
487+
void TrackerTraitsGPU<NLayers>::setBz(float bz)
488+
{
489+
mBz = bz;
490+
mTimeFrameGPU->setBz(bz);
491+
}
492+
474493
template <int NLayers>
475494
int TrackerTraitsGPU<NLayers>::getTFNumberOfClusters() const
476495
{

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

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,6 @@ inline void Tracker::setParameters(const std::vector<TrackingParameters>& trkPar
105105
mTrkParams = trkPars;
106106
}
107107

108-
inline void Tracker::initialiseTimeFrame(int& iteration)
109-
{
110-
mTimeFrame->initialise(iteration, mTrkParams[iteration]);
111-
}
112-
113-
inline float Tracker::getBz() const
114-
{
115-
return mBz;
116-
}
117-
118108
template <typename... T>
119109
float Tracker::evaluateTask(void (Tracker::*task)(T...), const char* taskName, std::function<void(std::string s)> logger,
120110
T&&... args)

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

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ class TrackerTraits
5252
{
5353
public:
5454
virtual ~TrackerTraits() = default;
55-
virtual void initialiseTimeFrame(const int iteration, const TrackingParameters& trackingParams);
55+
virtual void adoptTimeFrame(TimeFrame* tf);
56+
virtual void initialiseTimeFrame(const int iteration);
5657
virtual void computeLayerTracklets(const int iteration);
5758
virtual void computeLayerCells(const int iteration);
5859
virtual void findCellsNeighbours(const int iteration);
@@ -61,12 +62,13 @@ class TrackerTraits
6162
virtual void extendTracks(const int iteration);
6263
virtual void findShortPrimaries();
6364
virtual void refitTracks(const int iteration, const std::vector<std::vector<TrackingFrameInfo>>&, std::vector<TrackITSExt>&);
65+
virtual void setBz(float bz);
6466
virtual bool trackFollowing(TrackITSExt* track, int rof, bool outward, const int iteration);
6567

6668
void UpdateTrackingParameters(const std::vector<TrackingParameters>& trkPars);
6769
TimeFrame* getTimeFrame() { return mTimeFrame; }
68-
void adoptTimeFrame(TimeFrame* tf) { mTimeFrame = tf; }
69-
void setBz(float bz);
70+
71+
void setIsGPU(const unsigned char isgpu) { mIsGPU = isgpu; };
7072
float getBz() const;
7173
void setCorrType(const o2::base::PropagatorImpl<float>::MatCorrType type) { mCorrType = type; }
7274
bool isMatLUT() const;
@@ -86,6 +88,13 @@ class TrackerTraits
8688
void setNThreads(int n);
8789
int getNThreads() const { return mNThreads; }
8890

91+
// TimeFrame information forwarding
92+
virtual int getTFNumberOfClusters() const;
93+
virtual int getTFNumberOfTracklets() const;
94+
virtual int getTFNumberOfCells() const;
95+
96+
float mBz = 5.f;
97+
8998
private:
9099
void traverseCellsTree(const int, const int);
91100
track::TrackParCov buildTrackSeed(const Cluster& cluster1, const Cluster& cluster2, const Cluster& cluster3, const TrackingFrameInfo& tf3, float resolution);
@@ -94,23 +103,12 @@ class TrackerTraits
94103
int mNThreads = 1;
95104
bool mApplySmoothing = false;
96105
o2::base::PropagatorImpl<float>::MatCorrType mCorrType = o2::base::PropagatorImpl<float>::MatCorrType::USEMatCorrNONE;
97-
float mBz = 5.f;
98106

99-
void UpdateTrackingParameters(const TrackingParameters& trkPar);
100-
TimeFrame* getTimeFrame() { return mTimeFrame; }
101-
102-
void setIsGPU(const unsigned char isgpu) { mIsGPU = isgpu; };
103-
104-
// TimeFrame information forwarding
105-
virtual int getTFNumberOfClusters() const;
106-
virtual int getTFNumberOfTracklets() const;
107-
virtual int getTFNumberOfCells() const;
108107
// virtual bool checkTFMemory(const int iteration);
109108

110109
protected:
111110
TimeFrame* mTimeFrame;
112111
std::vector<TrackingParameters> mTrkParams;
113-
114112
bool mIsGPU = false;
115113
o2::gpu::GPUChainITS* mChain = nullptr;
116114
FuncRunITSTrackFit_t mChainRunITSTrackFit;
@@ -136,14 +134,12 @@ inline const int4 TrackerTraits::getBinsRect(const Cluster& currentCluster, int
136134
return getBinsRect(layerIndex, currentCluster.phi, maxdeltaphi, z1, z2, maxdeltaz);
137135
}
138136

139-
inline void TrackerTraits::initialiseTimeFrame(const int iteration, const TrackingParameters& trackingParams)
137+
inline void TrackerTraits::initialiseTimeFrame(const int iteration)
140138
{
141-
mTimeFrame->initialise(iteration, trackingParams, 7);
139+
mTimeFrame->initialise(iteration, mTrkParams[iteration], 7);
142140
setIsGPU(false);
143141
}
144142

145-
inline void TrackerTraits::adoptTimeFrame(TimeFrame* tf) { mTimeFrame = tf; }
146-
147143
inline const int4 TrackerTraits::getBinsRect(const int layerIndex, float phi, float maxdeltaphi,
148144
float z1, float z2, float maxdeltaz)
149145
{

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,9 @@ void Tracker::clustersToTracks(std::function<void(std::string s)> logger, std::f
9999
mNumberOfRuns++;
100100
}
101101

102-
template <typename... T>
103-
void Tracker::initialiseTimeFrame(T&&... args)
102+
void Tracker::initialiseTimeFrame(int& iteration)
104103
{
105-
mTraits->initialiseTimeFrame(std::forward<T>(args)...);
104+
mTraits->initialiseTimeFrame(iteration);
106105
}
107106

108107
void Tracker::computeTracklets(int& iteration)

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,11 @@ int TrackerTraits::getTFNumberOfCells() const
10121012
return mTimeFrame->getNumberOfCells();
10131013
}
10141014

1015+
void TrackerTraits::adoptTimeFrame(TimeFrame* tf)
1016+
{
1017+
mTimeFrame = tf;
1018+
}
1019+
10151020
// bool TrackerTraits::checkTFMemory(const int iteration)
10161021
// {
10171022
// return mTimeFrame->checkMemory(mTrkParams[iteration].MaxMemory);

0 commit comments

Comments
 (0)