Skip to content

Commit 99eda7e

Browse files
Fix warnings
1 parent 0d77bb7 commit 99eda7e

5 files changed

Lines changed: 44 additions & 31 deletions

File tree

GPU/Common/MemLayout.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ struct wrapper<S, const_reference> : public S<const_reference> {
137137

138138
constexpr wrapper() = delete;
139139
constexpr wrapper(Base b) : Base{static_cast<Base&&>(b)} {}
140-
constexpr wrapper(wrapper<S, value> other) : Base(other.apply(AggregateConstructor<wrapper>{})) {}
141-
constexpr wrapper(wrapper<S, reference> other) : Base(other.apply(AggregateConstructor<wrapper>{})) {}
140+
constexpr wrapper(const wrapper<S, value>& other) : Base(other.apply(AggregateConstructor<wrapper>{})) {}
141+
constexpr wrapper(const wrapper<S, reference>& other) : Base(other.apply(AggregateConstructor<wrapper>{})) {}
142142

143143
constexpr wrapper<S, const_pointer> operator&() const { return Base::apply(GetPointer<wrapper<S, const_pointer>>{}); }
144144
};

GPU/GPUTracking/SectorTracker/GPUTPCBaseTrackParam.h

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,29 @@
2121
namespace o2::gpu
2222
{
2323

24-
struct Covariance {
25-
float m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14;
26-
constexpr operator float*() { return &m00; }
27-
constexpr operator const float*() const { return &m00; }
28-
constexpr float& operator[](int32_t i) { return *((&m00) + i); }
29-
constexpr const float& operator[](int32_t i) const { return *((&m00) + i); }
24+
namespace detail
25+
{
26+
27+
struct GPUTPCCovariance
28+
{
29+
float data[15];
30+
constexpr operator float*() { return data; }
31+
constexpr operator const float*() const { return data; }
32+
constexpr float& operator[](int32_t i) { return data[i]; }
33+
constexpr const float& operator[](int32_t i) const { return data[i]; }
3034
};
3135

32-
struct Parameters {
33-
float mY, mZ, mSinPhi, mDzDs, mQPt;
34-
constexpr operator float*() { return &mY; }
35-
constexpr operator const float*() const { return &mY; }
36-
constexpr float& operator[](int32_t i) { return *((&mY) + i); }
37-
constexpr const float& operator[](int32_t i) const { return *((&mY) + i); }
36+
struct GPUTPCParameter
37+
{
38+
float data[5]; // mY, mZ, mSinPhi, mDzDs, mQPt
39+
constexpr operator float*() { return data; }
40+
constexpr operator const float*() const { return data; }
41+
constexpr float& operator[](int32_t i) { return data[i]; }
42+
constexpr const float& operator[](int32_t i) const { return data[i]; }
3843
};
3944

45+
}
46+
4047
/**
4148
* @class GPUTPCBaseTrackParam
4249
*
@@ -95,9 +102,9 @@ struct GPUTPCBaseTrackParamSkeleton
95102
// This is neccessary for performance reasons!!!
96103
// Changes to Elements of this class therefore must also be applied to TrackletConstructor!!!
97104
F<float> mX; // x position
98-
F<Covariance> mC; // the covariance matrix for Y,Z,SinPhi,..
105+
F<detail::GPUTPCCovariance> mC; // the covariance matrix for Y,Z,SinPhi,..
99106
F<float> mZOffset; // z offset
100-
F<Parameters> mP; // 'active' track parameters: Y, Z, SinPhi, DzDs, q/Pt
107+
F<detail::GPUTPCParameter> mP; // 'active' track parameters: Y, Z, SinPhi, DzDs, q/Pt
101108
};
102109

103110
// Needed for sorting

GPU/GPUTracking/SectorTracker/GPUTPCTrack.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class GPUTPCTrackSkeleton
3636
MEMLAYOUT_APPLY_BINARY(GPUTPCTrackSkeleton, MEMLAYOUT_EXPAND(mFirstHitID), MEMLAYOUT_EXPAND(mNHits), MEMLAYOUT_EXPAND(mLocalTrackId), MEMLAYOUT_EXPAND(mParam))
3737

3838
//#if !defined(GPUCA_GPUCODE)
39+
// GPUTPCTrack() : mFirstHitID(0), mNHits(0), mLocalTrackId(-1), mParam() {}
3940
// ~GPUTPCTrackSkeleton() = default;
4041
//#endif //! GPUCA_GPUCODE
4142

GPU/GPUTracking/SectorTracker/GPUTPCTrackParam.cxx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,12 +305,12 @@ template <template <class> class F>
305305
GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToX(float x, float Bz, float maxSinPhi)
306306
{
307307
//* Transport the track parameters to X=x
308-
GPUTPCTrackLinearisation t0(*static_cast<MemLayout::wrapper<GPUTPCTrackParamSkeleton, F>*>(this));
308+
GPUTPCTrackLinearisation t0{{*this}};
309309
return TransportToX(x, t0, Bz, maxSinPhi);
310310
}
311311

312312
template <template <class> class F>
313-
GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, GPUTPCTrackLinearisation& GPUrestrict() t0, GPUTPCTrackFitParam& GPUrestrict() par, float Bz, float maxSinPhi)
313+
GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, GPUTPCTrackLinearisation& GPUrestrict() t0, detail::GPUTPCTrackFitParam& GPUrestrict() par, float Bz, float maxSinPhi)
314314
{
315315
//* Transport the track parameters to X=x taking into account material budget
316316

@@ -329,10 +329,10 @@ GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, GPUTP
329329
}
330330

331331
template <template <class> class F>
332-
GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, GPUTPCTrackFitParam& GPUrestrict() par, float Bz, float maxSinPhi)
332+
GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, detail::GPUTPCTrackFitParam& GPUrestrict() par, float Bz, float maxSinPhi)
333333
{
334334
//* Transport the track parameters to X=x taking into account material budget
335-
GPUTPCTrackLinearisation t0(*static_cast<MemLayout::wrapper<GPUTPCTrackParamSkeleton, F>*>(this));
335+
GPUTPCTrackLinearisation t0{{*this}};
336336
return TransportToXWithMaterial(x, t0, par, Bz, maxSinPhi);
337337
}
338338

@@ -341,7 +341,7 @@ GPUd() bool GPUTPCTrackParamSkeleton<F>::TransportToXWithMaterial(float x, float
341341
{
342342
//* Transport the track parameters to X=x taking into account material budget
343343

344-
GPUTPCTrackFitParam par;
344+
detail::GPUTPCTrackFitParam par;
345345
CalculateFitParameters(par);
346346
return TransportToXWithMaterial(x, par, Bz, maxSinPhi);
347347
}
@@ -440,7 +440,7 @@ GPUd() float GPUTPCTrackParamSkeleton<F>::ApproximateBetheBloch(float beta2)
440440
}
441441

442442
template <template <class> class F>
443-
GPUd() void GPUTPCTrackParamSkeleton<F>::CalculateFitParameters(GPUTPCTrackFitParam& par, float mass)
443+
GPUd() void GPUTPCTrackParamSkeleton<F>::CalculateFitParameters(detail::GPUTPCTrackFitParam& par, float mass)
444444
{
445445
//*!
446446

@@ -475,7 +475,7 @@ GPUd() void GPUTPCTrackParamSkeleton<F>::CalculateFitParameters(GPUTPCTrackFitPa
475475
}
476476

477477
template <template <class> class F>
478-
GPUd() bool GPUTPCTrackParamSkeleton<F>::CorrectForMeanMaterial(float xOverX0, float xTimesRho, const GPUTPCTrackFitParam& par)
478+
GPUd() bool GPUTPCTrackParamSkeleton<F>::CorrectForMeanMaterial(float xOverX0, float xTimesRho, const detail::GPUTPCTrackFitParam& par)
479479
{
480480
//------------------------------------------------------------------
481481
// This function corrects the track parameters for the crossed material.

GPU/GPUTracking/SectorTracker/GPUTPCTrackParam.h

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ namespace o2::gpu
2525

2626
class GPUTPCTrackLinearisation;
2727

28+
namespace detail
29+
{
30+
31+
struct GPUTPCTrackFitParam {
32+
float bethe, e, theta2, EP2, sigmadE2, k22, k33, k43, k44; // parameters
33+
};
34+
35+
}
36+
2837
/**
2938
* @class GPUTPCTrackParam
3039
*
@@ -39,10 +48,6 @@ class GPUTPCTrackParamSkeleton
3948
MEMLAYOUT_APPLY_UNARY(mParam, mSignCosPhi, mChi2, mNDF)
4049
MEMLAYOUT_APPLY_BINARY(GPUTPCTrackParamSkeleton, MEMLAYOUT_EXPAND(mParam), MEMLAYOUT_EXPAND(mSignCosPhi), MEMLAYOUT_EXPAND(mChi2), MEMLAYOUT_EXPAND(mNDF))
4150

42-
struct GPUTPCTrackFitParam {
43-
float bethe, e, theta2, EP2, sigmadE2, k22, k33, k43, k44; // parameters
44-
};
45-
4651
GPUd() MemLayout::wrapper<GPUTPCBaseTrackParamSkeleton, MemLayout::const_reference> GetParam() const { return mParam; }
4752
GPUd() void SetParam(MemLayout::wrapper<GPUTPCBaseTrackParamSkeleton, MemLayout::const_reference> v);
4853
GPUd() void InitParam();
@@ -112,17 +117,17 @@ class GPUTPCTrackParamSkeleton
112117

113118
GPUd() bool TransportToX(float x, float sinPhi0, float cosPhi0, float Bz, float maxSinPhi = GPUCA_MAX_SIN_PHI);
114119

115-
GPUd() bool TransportToXWithMaterial(float x, GPUTPCTrackLinearisation& t0, GPUTPCTrackFitParam& par, float Bz, float maxSinPhi = GPUCA_MAX_SIN_PHI);
120+
GPUd() bool TransportToXWithMaterial(float x, GPUTPCTrackLinearisation& t0, detail::GPUTPCTrackFitParam& par, float Bz, float maxSinPhi = GPUCA_MAX_SIN_PHI);
116121

117-
GPUd() bool TransportToXWithMaterial(float x, GPUTPCTrackFitParam& par, float Bz, float maxSinPhi = GPUCA_MAX_SIN_PHI);
122+
GPUd() bool TransportToXWithMaterial(float x, detail::GPUTPCTrackFitParam& par, float Bz, float maxSinPhi = GPUCA_MAX_SIN_PHI);
118123

119124
GPUd() static float ApproximateBetheBloch(float beta2);
120125
GPUd() static float BetheBlochGeant(float bg, float kp0 = 2.33f, float kp1 = 0.20f, float kp2 = 3.00f, float kp3 = 173e-9f, float kp4 = 0.49848f);
121126
GPUd() static float BetheBlochSolid(float bg);
122127
GPUd() static float BetheBlochGas(float bg);
123128

124-
GPUd() void CalculateFitParameters(GPUTPCTrackFitParam& par, float mass = 0.13957f);
125-
GPUd() bool CorrectForMeanMaterial(float xOverX0, float xTimesRho, const GPUTPCTrackFitParam& par);
129+
GPUd() void CalculateFitParameters(detail::GPUTPCTrackFitParam& par, float mass = 0.13957f);
130+
GPUd() bool CorrectForMeanMaterial(float xOverX0, float xTimesRho, const detail::GPUTPCTrackFitParam& par);
126131

127132
GPUd() bool Rotate(float alpha, float maxSinPhi = GPUCA_MAX_SIN_PHI);
128133
GPUd() bool Rotate(float alpha, GPUTPCTrackLinearisation& t0, float maxSinPhi = GPUCA_MAX_SIN_PHI);

0 commit comments

Comments
 (0)