Skip to content

Commit 5dbb3b2

Browse files
committed
Define/use unbiased GPUTPCGeometry LinearY2PadC and LinearPad2YC
1 parent 98dc521 commit 5dbb3b2

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

GPU/GPUTracking/DataTypes/GPUTPCGeometry.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ class GPUTPCGeometry // TODO: Make values constexpr
127127
return (slice >= GPUCA_NSLICES / 2) ? -u : u;
128128
}
129129

130+
GPUd() float LinearPad2YC(int32_t slice, int32_t row, float pad) const
131+
{
132+
const float u = (pad - 0.5f * (mNPads[row] - 1)) * PadWidth(row);
133+
return (slice >= GPUCA_NSLICES / 2) ? -u : u;
134+
}
135+
130136
GPUd() static float LinearTime2Z(int32_t slice, float time)
131137
{
132138
const float v = 250.f - time * FACTOR_T2Z; // Used in compression, must remain constant at 250cm!
@@ -139,6 +145,12 @@ class GPUTPCGeometry // TODO: Make values constexpr
139145
return u / PadWidth(row) + 0.5f * mNPads[row];
140146
}
141147

148+
GPUd() float LinearY2PadC(int32_t slice, int32_t row, float y) const
149+
{
150+
const float u = (slice >= GPUCA_NSLICES / 2) ? -y : y;
151+
return u / PadWidth(row) + 0.5f * (mNPads[row] - 1); // unbiased version of LinearY2Pad
152+
}
153+
142154
GPUd() static float LinearZ2Time(int32_t slice, float z)
143155
{
144156
const float v = (slice >= GPUCA_NSLICES / 2) ? -z : z;

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ GPUd() bool GPUTPCGMTrackParam::AttachClustersPropagate(const GPUTPCGMMerger* GP
669669
if (dodEdx && iRow + step == toRow) {
670670
float yUncorrected, zUncorrected;
671671
Merger->GetConstantMem()->calibObjects.fastTransformHelper->InverseTransformYZtoNominalYZ(slice, iRow, mP[0], mP[1], yUncorrected, zUncorrected);
672-
uint32_t pad = CAMath::Float2UIntRn(Merger->Param().tpcGeometry.LinearY2Pad(slice, iRow, yUncorrected));
672+
uint32_t pad = CAMath::Float2UIntRn(Merger->Param().tpcGeometry.LinearY2PadC(slice, iRow, yUncorrected));
673673
if (pad >= Merger->Param().tpcGeometry.NPads(iRow) || (Merger->GetConstantMem()->calibObjects.dEdxCalibContainer && Merger->GetConstantMem()->calibObjects.dEdxCalibContainer->isDead(slice, iRow, pad))) {
674674
dodEdx = false;
675675
}

GPU/GPUTracking/SliceTracker/GPUTPCTrackletConstructor.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ GPUdic(2, 1) void GPUTPCTrackletConstructor::UpdateTracklet(int32_t /*nBlocks*/,
393393
(void)found;
394394
#if defined(GPUCA_HAVE_O2HEADERS) && !defined(__OPENCL1__)
395395
if (!found && tracker.GetConstantMem()->calibObjects.dEdxCalibContainer) {
396-
uint32_t pad = CAMath::Float2UIntRn(tracker.Param().tpcGeometry.LinearY2Pad(tracker.ISlice(), iRow, yUncorrected));
396+
uint32_t pad = CAMath::Float2UIntRn(tracker.Param().tpcGeometry.LinearY2PadC(tracker.ISlice(), iRow, yUncorrected));
397397
if (pad < tracker.Param().tpcGeometry.NPads(iRow) && tracker.GetConstantMem()->calibObjects.dEdxCalibContainer->isDead(tracker.ISlice(), iRow, pad)) {
398398
r.mNMissed--;
399399
rowHit = CALINK_DEAD_CHANNEL;

0 commit comments

Comments
 (0)