|
15 | 15 | #ifndef ALICEO2_track_PID_H_ |
16 | 16 | #define ALICEO2_track_PID_H_ |
17 | 17 |
|
| 18 | +#include "GPUCommonDef.h" |
18 | 19 | #include "GPUCommonRtypes.h" |
19 | 20 | #include "CommonConstants/PhysicsConstants.h" |
20 | 21 |
|
@@ -99,44 +100,46 @@ class PID |
99 | 100 | static constexpr ID NIDsTot = pid_constants::NIDsTot; ///< total number of defined IDs |
100 | 101 | static_assert(NIDsTot == LastExt + 1, "Incorrect NIDsTot, please update!"); |
101 | 102 |
|
102 | | - PID() = default; |
103 | | - PID(ID id) : mID(id) {} |
104 | | - PID(const char* name); |
105 | | - PID(const PID& src) = default; |
106 | | - PID& operator=(const PID& src) = default; |
| 103 | + GPUdDefault() PID() = default; |
| 104 | + GPUd() PID(ID id) : mID(id) {} |
| 105 | + GPUd() PID(const char* name); |
| 106 | + GPUdDefault() PID(const PID& src) = default; |
| 107 | + GPUdDefault() PID& operator=(const PID& src) = default; |
107 | 108 |
|
108 | | - ID getID() const { return mID; } |
109 | | - operator ID() const { return getID(); } |
| 109 | + GPUd() ID getID() const { return mID; } |
| 110 | + GPUd() operator ID() const { return getID(); } |
110 | 111 |
|
111 | | - float getMass() const { return getMass(mID); } |
112 | | - float getMass2Z() const { return getMass2Z(mID); } |
113 | | - int getCharge() const { return getCharge(mID); } |
| 112 | + GPUd() float getMass() const { return getMass(mID); } |
| 113 | + GPUd() float getMass2Z() const { return getMass2Z(mID); } |
| 114 | + GPUd() int getCharge() const { return getCharge(mID); } |
114 | 115 |
|
115 | | - static float getMass(ID id) { return pid_constants::sMasses[id]; } |
116 | | - static float getMass2(ID id) { return pid_constants::sMasses2[id]; } |
117 | | - static float getMass2Z(ID id) { return pid_constants::sMasses2Z[id]; } |
118 | | - static int getCharge(ID id) { return pid_constants::sCharges[id]; } |
| 116 | + GPUd() static float getMass(ID id) { return pid_constants::sMasses[id]; } |
| 117 | + GPUd() static float getMass2(ID id) { return pid_constants::sMasses2[id]; } |
| 118 | + GPUd() static float getMass2Z(ID id) { return pid_constants::sMasses2Z[id]; } |
| 119 | + GPUd() static int getCharge(ID id) { return pid_constants::sCharges[id]; } |
119 | 120 | #ifndef GPUCA_GPUCODE_DEVICE |
120 | | - const char* getName() const |
| 121 | + GPUd() const char* getName() const |
121 | 122 | { |
122 | 123 | return getName(mID); |
123 | 124 | } |
124 | | - static const char* getName(ID id) { return pid_constants::sNames[id]; } |
| 125 | + GPUd() static const char* getName(ID id) { return pid_constants::sNames[id]; } |
125 | 126 | #endif |
126 | 127 |
|
127 | 128 | private: |
128 | 129 | ID mID = Pion; |
129 | 130 |
|
130 | 131 | // are 2 strings equal ? (trick from Giulio) |
131 | | - inline static constexpr bool sameStr(char const* x, char const* y) |
| 132 | + GPUdi() static constexpr bool sameStr(char const* x, char const* y) |
132 | 133 | { |
133 | 134 | return !*x && !*y ? true : /* default */ (*x == *y && sameStr(x + 1, y + 1)); |
134 | 135 | } |
135 | 136 |
|
136 | | - inline static constexpr ID nameToID(char const* name, ID id) |
| 137 | +#ifndef GPUCA_GPUCODE_DEVICE |
| 138 | + GPUdi() static constexpr ID nameToID(char const* name, ID id) |
137 | 139 | { |
138 | | - return id > LastExt ? id : sameStr(name, sNames[id]) ? id : nameToID(name, id + 1); |
| 140 | + return id > LastExt ? id : sameStr(name, pid_constants::sNames[id]) ? id : nameToID(name, id + 1); |
139 | 141 | } |
| 142 | +#endif |
140 | 143 |
|
141 | 144 | ClassDefNV(PID, 2); |
142 | 145 | }; |
|
0 commit comments