Skip to content

Commit 1987e31

Browse files
committed
GPU: Use <array> instead of GPUCommonArray for CUDA / ROCm, not yet for OpenCL...
1 parent 23390a1 commit 1987e31

File tree

33 files changed

+156
-150
lines changed

33 files changed

+156
-150
lines changed

Common/DCAFitter/include/DCAFitter/DCAFitterN.h

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ class DCAFitterN
110110
using MatSymND = o2::math_utils::SMatrix<double, N, N, o2::math_utils::MatRepSym<double, N>>;
111111
using MatStdND = o2::math_utils::SMatrix<double, N, N, o2::math_utils::MatRepStd<double, N>>;
112112
using TrackCoefVtx = MatStd3D;
113-
using ArrTrack = o2::gpu::gpustd::array<Track, N>; // container for prongs (tracks) at single vertex cand.
114-
using ArrTrackCovI = o2::gpu::gpustd::array<TrackCovI, N>; // container for inv.cov.matrices at single vertex cand.
115-
using ArrTrCoef = o2::gpu::gpustd::array<TrackCoefVtx, N>; // container of TrackCoefVtx coefficients at single vertex cand.
116-
using ArrTrDer = o2::gpu::gpustd::array<TrackDeriv, N>; // container of Track 1st and 2nd derivative over their X param
117-
using ArrTrPos = o2::gpu::gpustd::array<Vec3D, N>; // container of Track positions
113+
using ArrTrack = std::array<Track, N>; // container for prongs (tracks) at single vertex cand.
114+
using ArrTrackCovI = std::array<TrackCovI, N>; // container for inv.cov.matrices at single vertex cand.
115+
using ArrTrCoef = std::array<TrackCoefVtx, N>; // container of TrackCoefVtx coefficients at single vertex cand.
116+
using ArrTrDer = std::array<TrackDeriv, N>; // container of Track 1st and 2nd derivative over their X param
117+
using ArrTrPos = std::array<Vec3D, N>; // container of Track positions
118118

119119
public:
120120
enum BadCovPolicy : uint8_t { // if encountering non-positive defined cov. matrix, the choice is:
@@ -158,7 +158,7 @@ class DCAFitterN
158158
GPUd() const auto getPCACandidatePos(int cand = 0) const
159159
{
160160
const auto& vd = mPCA[mOrder[cand]];
161-
return o2::gpu::gpustd::array<float, 3>{static_cast<float>(vd[0]), static_cast<float>(vd[1]), static_cast<float>(vd[2])};
161+
return std::array<float, 3>{static_cast<float>(vd[0]), static_cast<float>(vd[1]), static_cast<float>(vd[2])};
162162
}
163163

164164
///< return position of quality-ordered candidate in the internal structures
@@ -213,7 +213,7 @@ class DCAFitterN
213213

214214
GPUd() MatSym3D calcPCACovMatrix(int cand = 0) const;
215215

216-
o2::gpu::gpustd::array<float, 6> calcPCACovMatrixFlat(int cand = 0) const
216+
std::array<float, 6> calcPCACovMatrixFlat(int cand = 0) const
217217
{
218218
auto m = calcPCACovMatrix(cand);
219219
return {static_cast<float>(m(0, 0)), static_cast<float>(m(1, 0)), static_cast<float>(m(1, 1)), static_cast<float>(m(2, 0)), static_cast<float>(m(2, 1)), static_cast<float>(m(2, 2))};
@@ -364,39 +364,39 @@ class DCAFitterN
364364

365365
private:
366366
// vectors of 1st derivatives of track local residuals over X parameters
367-
o2::gpu::gpustd::array<o2::gpu::gpustd::array<Vec3D, N>, N> mDResidDx;
367+
std::array<std::array<Vec3D, N>, N> mDResidDx;
368368
// vectors of 1nd derivatives of track local residuals over X parameters
369369
// (cross-derivatives DR/(dx_j*dx_k) = 0 for j!=k, therefore the hessian is diagonal)
370-
o2::gpu::gpustd::array<o2::gpu::gpustd::array<Vec3D, N>, N> mD2ResidDx2;
370+
std::array<std::array<Vec3D, N>, N> mD2ResidDx2;
371371
VecND mDChi2Dx; // 1st derivatives of chi2 over tracks X params
372372
MatSymND mD2Chi2Dx2; // 2nd derivatives of chi2 over tracks X params (symmetric matrix)
373373
MatSymND mCosDif; // matrix with cos(alp_j-alp_i) for j<i
374374
MatSymND mSinDif; // matrix with sin(alp_j-alp_i) for j<i
375-
o2::gpu::gpustd::array<const Track*, N> mOrigTrPtr;
376-
o2::gpu::gpustd::array<TrackAuxPar, N> mTrAux; // Aux track info for each track at each cand. vertex
377-
CrossInfo mCrossings; // info on track crossing
378-
379-
o2::gpu::gpustd::array<ArrTrackCovI, MAXHYP> mTrcEInv; // errors for each track at each cand. vertex
380-
o2::gpu::gpustd::array<ArrTrack, MAXHYP> mCandTr; // tracks at each cond. vertex (Note: Errors are at seed XY point)
381-
o2::gpu::gpustd::array<ArrTrCoef, MAXHYP> mTrCFVT; // TrackCoefVtx for each track at each cand. vertex
382-
o2::gpu::gpustd::array<ArrTrDer, MAXHYP> mTrDer; // Track derivativse
383-
o2::gpu::gpustd::array<ArrTrPos, MAXHYP> mTrPos; // Track positions
384-
o2::gpu::gpustd::array<ArrTrPos, MAXHYP> mTrRes; // Track residuals
385-
o2::gpu::gpustd::array<Vec3D, MAXHYP> mPCA; // PCA for each vertex candidate
386-
o2::gpu::gpustd::array<float, MAXHYP> mChi2 = {0}; // Chi2 at PCA candidate
387-
o2::gpu::gpustd::array<int, MAXHYP> mNIters; // number of iterations for each seed
388-
o2::gpu::gpustd::array<bool, MAXHYP> mTrPropDone{}; // Flag that the tracks are fully propagated to PCA
389-
o2::gpu::gpustd::array<bool, MAXHYP> mPropFailed{}; // Flag that some propagation failed for this PCA candidate
375+
std::array<const Track*, N> mOrigTrPtr;
376+
std::array<TrackAuxPar, N> mTrAux; // Aux track info for each track at each cand. vertex
377+
CrossInfo mCrossings; // info on track crossing
378+
379+
std::array<ArrTrackCovI, MAXHYP> mTrcEInv; // errors for each track at each cand. vertex
380+
std::array<ArrTrack, MAXHYP> mCandTr; // tracks at each cond. vertex (Note: Errors are at seed XY point)
381+
std::array<ArrTrCoef, MAXHYP> mTrCFVT; // TrackCoefVtx for each track at each cand. vertex
382+
std::array<ArrTrDer, MAXHYP> mTrDer; // Track derivativse
383+
std::array<ArrTrPos, MAXHYP> mTrPos; // Track positions
384+
std::array<ArrTrPos, MAXHYP> mTrRes; // Track residuals
385+
std::array<Vec3D, MAXHYP> mPCA; // PCA for each vertex candidate
386+
std::array<float, MAXHYP> mChi2 = {0}; // Chi2 at PCA candidate
387+
std::array<int, MAXHYP> mNIters; // number of iterations for each seed
388+
std::array<bool, MAXHYP> mTrPropDone{}; // Flag that the tracks are fully propagated to PCA
389+
std::array<bool, MAXHYP> mPropFailed{}; // Flag that some propagation failed for this PCA candidate
390390
LogLogThrottler mLoggerBadCov{};
391391
LogLogThrottler mLoggerBadInv{};
392392
LogLogThrottler mLoggerBadProp{};
393393
MatSym3D mWeightInv; // inverse weight of single track, [sum{M^T E M}]^-1 in EQ.T
394-
o2::gpu::gpustd::array<int, MAXHYP> mOrder{0};
394+
std::array<int, MAXHYP> mOrder{0};
395395
int mCurHyp = 0;
396396
int mCrossIDCur = 0;
397397
int mCrossIDAlt = -1;
398398
BadCovPolicy mBadCovPolicy{BadCovPolicy::Discard}; // what to do in case of non-pos-def. cov. matrix, see BadCovPolicy enum
399-
o2::gpu::gpustd::array<FitStatus, MAXHYP> mFitStatus{}; // fit status of each hypothesis fit
399+
std::array<FitStatus, MAXHYP> mFitStatus{}; // fit status of each hypothesis fit
400400
bool mAllowAltPreference = true; // if the fit converges to alternative PCA seed, abandon the current one
401401
bool mUseAbsDCA = false; // use abs. distance minimization rather than chi2
402402
bool mWeightedFinalPCA = false; // recalculate PCA as a cov-matrix weighted mean, even if absDCA method was used
@@ -657,7 +657,7 @@ template <int N, typename... Args>
657657
GPUd() void DCAFitterN<N, Args...>::calcChi2Derivatives()
658658
{
659659
//< calculate 1st and 2nd derivatives of wighted DCA (chi2) over track parameters X, see EQ.Chi2 in the ref
660-
o2::gpu::gpustd::array<o2::gpu::gpustd::array<Vec3D, N>, N> covIDrDx; // tempory vectors of covI_j * dres_j/dx_i
660+
std::array<std::array<Vec3D, N>, N> covIDrDx; // tempory vectors of covI_j * dres_j/dx_i
661661

662662
// chi2 1st derivative
663663
for (int i = N; i--;) {
@@ -1175,13 +1175,13 @@ GPUd() o2::track::TrackParCov DCAFitterN<N, Args...>::createParentTrackParCov(in
11751175
{
11761176
const auto& trP = getTrack(0, cand);
11771177
const auto& trN = getTrack(1, cand);
1178-
o2::gpu::gpustd::array<float, 21> covV = {0.};
1179-
o2::gpu::gpustd::array<float, 3> pvecV = {0.};
1178+
std::array<float, 21> covV = {0.};
1179+
std::array<float, 3> pvecV = {0.};
11801180
int q = 0;
11811181
for (int it = 0; it < N; it++) {
11821182
const auto& trc = getTrack(it, cand);
1183-
o2::gpu::gpustd::array<float, 3> pvecT = {0.};
1184-
o2::gpu::gpustd::array<float, 21> covT = {0.};
1183+
std::array<float, 3> pvecT = {0.};
1184+
std::array<float, 21> covT = {0.};
11851185
trc.getPxPyPzGlo(pvecT);
11861186
trc.getCovXYZPxPyPzGlo(covT);
11871187
constexpr int MomInd[6] = {9, 13, 14, 18, 19, 20}; // cov matrix elements for momentum component
@@ -1210,18 +1210,18 @@ GPUd() o2::track::TrackPar DCAFitterN<N, Args...>::createParentTrackPar(int cand
12101210
const auto& trP = getTrack(0, cand);
12111211
const auto& trN = getTrack(1, cand);
12121212
const auto& wvtx = getPCACandidate(cand);
1213-
o2::gpu::gpustd::array<float, 3> pvecV = {0.};
1213+
std::array<float, 3> pvecV = {0.};
12141214
int q = 0;
12151215
for (int it = 0; it < N; it++) {
12161216
const auto& trc = getTrack(it, cand);
1217-
o2::gpu::gpustd::array<float, 3> pvecT = {0.};
1217+
std::array<float, 3> pvecT = {0.};
12181218
trc.getPxPyPzGlo(pvecT);
12191219
for (int i = 0; i < 3; i++) {
12201220
pvecV[i] += pvecT[i];
12211221
}
12221222
q += trc.getCharge();
12231223
}
1224-
const o2::gpu::gpustd::array<float, 3> vertex = {(float)wvtx[0], (float)wvtx[1], (float)wvtx[2]};
1224+
const std::array<float, 3> vertex = {(float)wvtx[0], (float)wvtx[1], (float)wvtx[2]};
12251225
return o2::track::TrackPar(vertex, pvecV, q, sectorAlpha);
12261226
}
12271227

Common/MathUtils/include/MathUtils/SMatrixGPU.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
#define ALICEO2_SMATRIX_GPU_H
2626

2727
#include "GPUCommonDef.h"
28-
#include "GPUCommonArray.h"
2928
#include "GPUCommonMath.h"
3029
#include "GPUCommonAlgorithm.h"
3130
#include "GPUCommonLogger.h"
3231
#ifndef GPUCA_GPUCODE_DEVICE
3332
#include <type_traits>
33+
#include <array>
3434
#endif
3535

3636
namespace o2::math_utils::detail
@@ -283,14 +283,14 @@ struct make_indices : make_indices_impl<0, indices<>, N> {
283283
};
284284

285285
template <int I0, class F, int... I>
286-
constexpr auto do_make(F f, indices<I...>) -> gpu::gpustd::array<int, sizeof...(I)>
286+
constexpr auto do_make(F f, indices<I...>) -> std::array<int, sizeof...(I)>
287287
{
288-
gpu::gpustd::array<int, sizeof...(I)> retarr = {f(I0 + I)...};
288+
std::array<int, sizeof...(I)> retarr = {f(I0 + I)...};
289289
return retarr;
290290
}
291291

292292
template <int N, int I0 = 0, class F>
293-
constexpr auto make(F f) -> gpu::gpustd::array<int, N>
293+
constexpr auto make(F f) -> std::array<int, N>
294294
{
295295
return do_make<I0>(f, typename make_indices<N>::type());
296296
}

Common/MathUtils/include/MathUtils/detail/basicMath.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@
1616
#ifndef MATHUTILS_INCLUDE_MATHUTILS_DETAIL_BASICMATH_H_
1717
#define MATHUTILS_INCLUDE_MATHUTILS_DETAIL_BASICMATH_H_
1818

19+
#include "GPUCommonDef.h"
20+
#include "GPUCommonMath.h"
21+
#include "CommonConstants/MathConstants.h"
22+
1923
#ifndef GPUCA_GPUCODE_DEVICE
2024
#include <cmath>
2125
#include <tuple>
26+
#include <array>
2227
#endif
23-
#include "GPUCommonArray.h"
24-
#include "GPUCommonDef.h"
25-
#include "GPUCommonMath.h"
26-
#include "CommonConstants/MathConstants.h"
2728

2829
namespace o2
2930
{
@@ -130,4 +131,4 @@ GPUdi() double log(double x)
130131
} // namespace math_utils
131132
} // namespace o2
132133

133-
#endif /* MATHUTILS_INCLUDE_MATHUTILS_DETAIL_BASICMATH_H_ */
134+
#endif /* MATHUTILS_INCLUDE_MATHUTILS_DETAIL_BASICMATH_H_ */

Common/MathUtils/include/MathUtils/detail/trigonometric.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@
1616
#ifndef MATHUTILS_INCLUDE_MATHUTILS_DETAIL_TRIGONOMETRIC_H_
1717
#define MATHUTILS_INCLUDE_MATHUTILS_DETAIL_TRIGONOMETRIC_H_
1818

19-
#ifndef GPUCA_GPUCODE_DEVICE
20-
#include <cmath>
21-
#include <tuple>
22-
#endif
23-
#include "GPUCommonArray.h"
2419
#include "GPUCommonDef.h"
2520
#include "GPUCommonMath.h"
2621
#include "CommonConstants/MathConstants.h"
2722
#include "MathUtils/detail/basicMath.h"
2823

24+
#ifndef GPUCA_GPUCODE_DEVICE
25+
#include <cmath>
26+
#include <tuple>
27+
#include <array>
28+
#endif
29+
2930
namespace o2
3031
{
3132
namespace math_utils
@@ -156,7 +157,7 @@ GPUhdi() std::tuple<T, T> rotateZInv(T xG, T yG, T snAlp, T csAlp)
156157
#endif
157158

158159
template <typename T>
159-
GPUhdi() void rotateZ(gpu::gpustd::array<T, 3>& xy, T alpha)
160+
GPUhdi() void rotateZ(std::array<T, 3>& xy, T alpha)
160161
{
161162
// transforms vector in tracking frame alpha to global frame
162163
T sin, cos;

DataFormats/Detectors/ITSMFT/ITS/include/DataFormatsITS/TrackITS.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,14 @@ class TrackITSExt : public TrackITS
170170
using TrackITS::TrackITS; // inherit base constructors
171171

172172
GPUh() TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2,
173-
o2::track::TrackParCov&& outer, o2::gpu::gpustd::array<int, MaxClusters> cls)
173+
o2::track::TrackParCov&& outer, std::array<int, MaxClusters> cls)
174174
: TrackITS(parCov, chi2, outer), mIndex{cls}
175175
{
176176
setNumberOfClusters(ncl);
177177
}
178178

179179
GPUh() TrackITSExt(o2::track::TrackParCov& parCov, short ncl, float chi2, std::uint32_t rof,
180-
o2::track::TrackParCov& outer, o2::gpu::gpustd::array<int, MaxClusters> cls)
180+
o2::track::TrackParCov& outer, std::array<int, MaxClusters> cls)
181181
: TrackITS(parCov, chi2, outer), mIndex{cls}
182182
{
183183
setNumberOfClusters(ncl);
@@ -205,13 +205,13 @@ class TrackITSExt : public TrackITS
205205
mIndex[layer] = idx;
206206
}
207207

208-
GPUh() o2::gpu::gpustd::array<int, MaxClusters>& getClusterIndexes()
208+
GPUh() std::array<int, MaxClusters>& getClusterIndexes()
209209
{
210210
return mIndex;
211211
}
212212

213213
private:
214-
o2::gpu::gpustd::array<int, MaxClusters> mIndex = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; ///< Indices of associated clusters
214+
std::array<int, MaxClusters> mIndex = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; ///< Indices of associated clusters
215215
ClassDefNV(TrackITSExt, 2);
216216
};
217217
} // namespace its

DataFormats/Reconstruction/include/ReconstructionDataFormats/DCA.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
#include "GPUCommonDef.h"
1616
#include "GPUCommonRtypes.h"
17-
#include "GPUCommonArray.h"
1817

1918
#ifndef GPUCA_GPUCODE_DEVICE
2019
#include <iosfwd>
20+
#include <array>
2121
#endif
2222

2323
/// \author ruben.shahoyan@cern.ch
@@ -67,7 +67,7 @@ class DCA
6767
private:
6868
float mY = 0.f;
6969
float mZ = 0.f;
70-
gpu::gpustd::array<float, 3> mCov; ///< s2y, syz, s2z
70+
std::array<float, 3> mCov; ///< s2y, syz, s2z
7171

7272
ClassDefNV(DCA, 1);
7373
};

DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackParametrization.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
#include "GPUCommonDef.h"
3030
#include "GPUCommonRtypes.h"
3131
#include "GPUCommonMath.h"
32-
#include "GPUCommonArray.h"
3332
#include "GPUROOTCartesianFwd.h"
3433

3534
#ifndef GPUCA_GPUCODE_DEVICE
@@ -39,6 +38,7 @@
3938
#include <cstring>
4039
#include <iosfwd>
4140
#include <type_traits>
41+
#include <array>
4242
#endif
4343

4444
#ifndef GPUCA_ALIGPUCODE // Used only by functions that are hidden on the GPU
@@ -128,9 +128,9 @@ class TrackParametrization
128128

129129
public:
130130
using value_t = value_T;
131-
using dim2_t = gpu::gpustd::array<value_t, 2>;
132-
using dim3_t = gpu::gpustd::array<value_t, 3>;
133-
using params_t = gpu::gpustd::array<value_t, kNParams>;
131+
using dim2_t = std::array<value_t, 2>;
132+
using dim3_t = std::array<value_t, 3>;
133+
using params_t = std::array<value_t, kNParams>;
134134

135135
struct yzerr_t { // 2 measurement with error
136136
dim2_t yz;
@@ -209,7 +209,7 @@ class TrackParametrization
209209
GPUd() math_utils::Point3D<value_t> getXYZGlo() const;
210210
GPUd() void getXYZGlo(dim3_t& xyz) const;
211211
GPUd() bool getPxPyPzGlo(dim3_t& pxyz) const;
212-
GPUd() bool getPosDirGlo(gpu::gpustd::array<value_t, 9>& posdirp) const;
212+
GPUd() bool getPosDirGlo(std::array<value_t, 9>& posdirp) const;
213213

214214
// methods for track params estimate at other point
215215
GPUd() bool getYZAt(value_t xk, value_t b, value_t& y, value_t& z) const;

DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackParametrizationWithError.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
3838
static_assert(std::is_floating_point_v<value_t>);
3939
#endif
4040

41-
using covMat_t = gpu::gpustd::array<value_t, kCovMatSize>;
41+
using covMat_t = std::array<value_t, kCovMatSize>;
4242
using MatrixDSym5 = o2::math_utils::SMatrix<double, kNParams, kNParams, o2::math_utils::MatRepSym<double, kNParams>>;
4343
using MatrixD5 = o2::math_utils::SMatrix<double, kNParams, kNParams, o2::math_utils::MatRepStd<double, kNParams, kNParams>>;
4444

4545
GPUhd() TrackParametrizationWithError();
4646
GPUd() TrackParametrizationWithError(value_t x, value_t alpha, const params_t& par, const covMat_t& cov, int charge = 1, const PID pid = PID::Pion);
4747
GPUd() TrackParametrizationWithError(const dim3_t& xyz, const dim3_t& pxpypz,
48-
const gpu::gpustd::array<value_t, kLabCovMatSize>& cv, int sign, bool sectorAlpha = true, const PID pid = PID::Pion);
48+
const std::array<value_t, kLabCovMatSize>& cv, int sign, bool sectorAlpha = true, const PID pid = PID::Pion);
4949

5050
GPUhdDefault() TrackParametrizationWithError(const TrackParametrizationWithError& src) = default;
5151
GPUdDefault() TrackParametrizationWithError(TrackParametrizationWithError&& src) = default;
@@ -57,7 +57,7 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
5757
using TrackParametrization<value_T>::set;
5858
GPUd() void set(value_t x, value_t alpha, const params_t& par, const covMat_t& cov, int charge = 1, const PID pid = PID::Pion);
5959
GPUd() void set(value_t x, value_t alpha, const value_t* par, const value_t* cov, int charge = 1, const PID pid = PID::Pion);
60-
GPUd() void set(const dim3_t& xyz, const dim3_t& pxpypz, const gpu::gpustd::array<value_t, kLabCovMatSize>& cv, int sign, bool sectorAlpha = true, const PID pid = PID::Pion);
60+
GPUd() void set(const dim3_t& xyz, const dim3_t& pxpypz, const std::array<value_t, kLabCovMatSize>& cv, int sign, bool sectorAlpha = true, const PID pid = PID::Pion);
6161
GPUd() const covMat_t& getCov() const;
6262
GPUd() value_t getSigmaY2() const;
6363
GPUd() value_t getSigmaZY() const;
@@ -77,7 +77,7 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
7777
GPUd() value_t getCovarElem(int i, int j) const;
7878
GPUd() value_t getDiagError2(int i) const;
7979

80-
GPUd() bool getCovXYZPxPyPzGlo(gpu::gpustd::array<value_t, kLabCovMatSize>& c) const;
80+
GPUd() bool getCovXYZPxPyPzGlo(std::array<value_t, kLabCovMatSize>& c) const;
8181

8282
GPUd() void print() const;
8383
GPUd() void printHexadecimal();

DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackUtils.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
#define INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKUTILS_H_
1919

2020
#include "GPUCommonRtypes.h"
21-
#include "GPUCommonArray.h"
2221

2322
#ifndef GPUCA_GPUCODE_DEVICE
23+
#include <array>
2424
#include <cmath>
2525
#endif
2626

@@ -39,11 +39,11 @@ template <typename value_T = float>
3939
GPUd() value_T BetheBlochSolidOpt(value_T bg);
4040

4141
template <typename value_T = float>
42-
GPUd() void g3helx3(value_T qfield, value_T step, gpu::gpustd::array<value_T, 7>& vect);
42+
GPUd() void g3helx3(value_T qfield, value_T step, std::array<value_T, 7>& vect);
4343

4444
//____________________________________________________
4545
template <typename value_T>
46-
GPUd() void g3helx3(value_T qfield, value_T step, gpu::gpustd::array<value_T, 7>& vect)
46+
GPUd() void g3helx3(value_T qfield, value_T step, std::array<value_T, 7>& vect)
4747
{
4848
/******************************************************************
4949
* *

0 commit comments

Comments
 (0)