@@ -83,7 +83,20 @@ GPUconstexpr() float mPadWidth[NREGIONS] = {.4f, .6f, .6f};
8383
8484constexpr float TPC_LENGTH = 250 .f - 0 .275f ;
8585constexpr float FACTOR_T2Z = 250 .f / 1024 .f; // Used in compression, must remain constant at 250cm, 1024 time bins!
86- #endif // clang-format on
86+ #endif
87+
88+ GPUconstexpr () float mSectorAngle [o2::tpc::constants::MAXSECTOR][2 ] = {{0x1 .63a1a8p-3f , 0x1 .f838b8p -1f }, {0x1p-1f , 0x1 .bb67aep -1f }, {0x1 .8836fap-1f , 0x1 .491b76p-1f }, {0x1 .e11f64p -1f , 0x1 .5e3a88p-2f }, {0x1p+0f , 0x1 .1a6264p-54f }, {0x1 .e11f64p -1f , -0x1 .5e3a88p-2f },
89+ {0x1 .8836fap-1f , -0x1 .491b76p-1f }, {0x1p-1f , -0x1 .bb67aep -1f }, {0x1 .63a1a8p-3f , -0x1 .f838b8p -1f }, {-0x1 .63a1a8p-3f , -0x1 .f838b8p -1f }, {-0x1p-1f , -0x1 .bb67aep -1f }, {-0x1 .8836fap-1f , -0x1 .491b76p-1f },
90+ {-0x1 .e11f64p -1f , -0x1 .5e3a88p-2f }, {-0x1p+0f , -0x1 .a79394p -53f }, {-0x1 .e11f64p -1f , 0x1 .5e3a88p-2f }, {-0x1 .8836fap-1f , 0x1 .491b76p-1f }, {-0x1p-1f , 0x1 .bb67aep -1f }, {-0x1 .63a1a8p-3f , 0x1 .f838b8p -1f },
91+ {0x1 .63a1a8p-3f , 0x1 .f838b8p -1f }, {0x1p-1f , 0x1 .bb67aep -1f }, {0x1 .8836fap-1f , 0x1 .491b76p-1f }, {0x1 .e11f64p -1f , 0x1 .5e3a88p-2f }, {0x1p+0f , 0x1 .60fafcp-52f }, {0x1 .e11f64p -1f , -0x1 .5e3a88p-2f },
92+ {0x1 .8836fap-1f , -0x1 .491b76p-1f }, {0x1p-1f , -0x1 .bb67aep -1f }, {0x1 .63a1a8p-3f , -0x1 .f838b8p -1f }, {-0x1 .63a1a8p-3f , -0x1 .f838b8p -1f }, {-0x1p-1f , -0x1 .bb67aep -1f }, {-0x1 .8836fap-1f , -0x1 .491b76p-1f },
93+ {-0x1 .e11f64p -1f , -0x1 .5e3a88p-2f }, {-0x1p+0f , -0x1 .ee2c2ep -52f }, {-0x1 .e11f64p -1f , 0x1 .5e3a88p-2f }, {-0x1 .8836fap-1f , 0x1 .491b76p-1f }, {-0x1p-1f , 0x1 .bb67aep -1f }, {-0x1 .63a1a8p-3f , 0x1 .f838b8p -1f }};
94+
95+ GPUconstexpr () float mSectorAlpha [o2::tpc::constants::MAXSECTOR] = {0x1 .65718ep-3f , 0x1 .0c152ap-1f , 0x1 .becdf2p -1f , 0x1 .38c35cp+0f , 0x1 .921fcp+0f , 0x1 .eb7c24p +0f , 0x1 .226c44p+1f , 0x1 .4f1a76p+1f , 0x1 .7bc8a6p+1f ,
96+ -0x1 .7bc8a6p+1f , -0x1 .4f1a76p+1f , -0x1 .226c44p+1f , -0x1 .eb7c24p +0f , -0x1 .921fcp+0f , -0x1 .38c35cp+0f , -0x1 .becdf2p -1f , -0x1 .0c152ap-1f , -0x1 .65718ep-3f ,
97+ 0x1 .65718ep-3f , 0x1 .0c152ap-1f , 0x1 .becdf2p -1f , 0x1 .38c35cp+0f , 0x1 .921fcp+0f , 0x1 .eb7c24p +0f , 0x1 .226c44p+1f , 0x1 .4f1a76p+1f , 0x1 .7bc8a6p+1f ,
98+ -0x1 .7bc8a6p+1f , -0x1 .4f1a76p+1f , -0x1 .226c44p+1f , -0x1 .eb7c24p +0f , -0x1 .921fcp+0f , -0x1 .38c35cp+0f , -0x1 .becdf2p -1f , -0x1 .0c152ap-1f , -0x1 .65718ep-3f };
99+ // clang-format on
87100} // namespace gputpcgeometry_internal
88101
89102class GPUTPCGeometry
@@ -119,13 +132,16 @@ class GPUTPCGeometry
119132 GPUd () static constexpr float PadWidth(int32_t row) { return (gputpcgeometry_internal::mPadWidth [GetRegion (row)]); }
120133#endif
121134
135+ GPUd () static constexpr float Row2X (uint32_t row) { return (gputpcgeometry_internal::mX [row]); }
122136 GPUd () static constexpr float NRegions () { return gputpcgeometry_internal::NREGIONS; }
123137 GPUd () static constexpr float TPCLength () { return gputpcgeometry_internal::TPC_LENGTH; }
124- GPUd () static constexpr float Row2X (int32_t row) { return (gputpcgeometry_internal::mX [row]); }
125- GPUd () static constexpr float PadHeight (int32_t row) { return (gputpcgeometry_internal::mPadHeight [GetRegion (row)]); }
126- GPUd () static constexpr float PadHeightByRegion (int32_t region) { return (gputpcgeometry_internal::mPadHeight [region]); }
127- GPUd () static constexpr float PadWidthByRegion (int32_t region) { return (gputpcgeometry_internal::mPadWidth [region]); }
128- GPUd () static constexpr uint8_t NPads (int32_t row) { return gputpcgeometry_internal::mNPads [row]; }
138+ GPUd () static constexpr float PadHeight (uint32_t row) { return (gputpcgeometry_internal::mPadHeight [GetRegion (row)]); }
139+ GPUd () static constexpr float PadHeightByRegion (uint32_t region) { return (gputpcgeometry_internal::mPadHeight [region]); }
140+ GPUd () static constexpr float PadWidthByRegion (uint32_t region) { return (gputpcgeometry_internal::mPadWidth [region]); }
141+ GPUd () static constexpr uint8_t NPads (uint32_t row) { return gputpcgeometry_internal::mNPads [row]; }
142+ GPUd () static constexpr float SectorSin (uint32_t sector) { return gputpcgeometry_internal::mSectorAngle [sector][0 ]; }
143+ GPUd () static constexpr float SectorCos (uint32_t sector) { return gputpcgeometry_internal::mSectorAngle [sector][1 ]; }
144+ GPUd () static constexpr float SectorAlpha (uint32_t sector) { return gputpcgeometry_internal::mSectorAlpha [sector]; }
129145
130146 GPUd () static constexpr float LinearPad2Y (uint32_t sector, uint32_t row, float pad)
131147 {
0 commit comments