Project
Loading...
Searching...
No Matches
TrackerTraitsGPU.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
12
13#ifndef ITSTRACKINGGPU_TRACKERTRAITSGPU_H_
14#define ITSTRACKINGGPU_TRACKERTRAITSGPU_H_
15
20
21namespace o2
22{
23namespace its
24{
25
26template <int nLayers = 7>
28{
29 public:
30 TrackerTraitsGPU() = default;
31 ~TrackerTraitsGPU() override = default;
32
33 // void computeLayerCells() final;
34 void adoptTimeFrame(TimeFrame* tf) override;
35 void initialiseTimeFrame(const int iteration) override;
36 void computeLayerTracklets(const int iteration, int, int) final;
37 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
42 // Methods to get CPU execution from traits
43 void initialiseTimeFrameHybrid(const int iteration) override { initialiseTimeFrame(iteration); };
44 void computeTrackletsHybrid(const int iteration, int, int) override;
45 void computeCellsHybrid(const int iteration) override;
46 void findCellsNeighboursHybrid(const int iteration) override;
47
48 void extendTracks(const int iteration) override;
49
50 // TimeFrameGPU information forwarding
51 int getTFNumberOfClusters() const override;
52 int getTFNumberOfTracklets() const override;
53 int getTFNumberOfCells() const override;
54
55 private:
56 IndexTableUtils* mDeviceIndexTableUtils;
57 gpu::TimeFrameGPU<7>* mTimeFrameGPU;
59};
60
61template <int nLayers>
63{
64 mTimeFrameGPU = static_cast<gpu::TimeFrameGPU<nLayers>*>(tf);
65 mTimeFrame = static_cast<TimeFrame*>(tf);
66}
67} // namespace its
68} // namespace o2
69
70#endif
int getTFNumberOfClusters() const override
void findCellsNeighbours(const int iteration) override
void adoptTimeFrame(TimeFrame *tf) override
void findCellsNeighboursHybrid(const int iteration) override
void computeTrackletsHybrid(const int iteration, int, int) override
~TrackerTraitsGPU() override=default
void setBz(float) override
void initialiseTimeFrame(const int iteration) override
void initialiseTimeFrameHybrid(const int iteration) override
void computeLayerCells(const int iteration) override
void extendTracks(const int iteration) override
void findRoads(const int iteration) override
void computeLayerTracklets(const int iteration, int, int) final
void computeCellsHybrid(const int iteration) override
int getTFNumberOfTracklets() const override
int getTFNumberOfCells() const override
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::unique_ptr< GPUReconstructionTimeframe > tf