Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions GPU/GPUTracking/DataTypes/GPUTPCGeometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,12 @@ class GPUTPCGeometry // TODO: Make values constexpr
return (slice >= GPUCA_NSLICES / 2) ? -u : u;
}

GPUd() float LinearPad2YC(int32_t slice, int32_t row, float pad) const
{
const float u = (pad - 0.5f * (mNPads[row] - 1)) * PadWidth(row);
return (slice >= GPUCA_NSLICES / 2) ? -u : u;
}

GPUd() static float LinearTime2Z(int32_t slice, float time)
{
const float v = 250.f - time * FACTOR_T2Z; // Used in compression, must remain constant at 250cm!
Expand All @@ -139,6 +145,12 @@ class GPUTPCGeometry // TODO: Make values constexpr
return u / PadWidth(row) + 0.5f * mNPads[row];
}

GPUd() float LinearY2PadC(int32_t slice, int32_t row, float y) const
{
const float u = (slice >= GPUCA_NSLICES / 2) ? -y : y;
return u / PadWidth(row) + 0.5f * (mNPads[row] - 1); // unbiased version of LinearY2Pad
}

GPUd() static float LinearZ2Time(int32_t slice, float z)
{
const float v = (slice >= GPUCA_NSLICES / 2) ? -z : z;
Expand Down
2 changes: 1 addition & 1 deletion GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -669,7 +669,7 @@ GPUd() bool GPUTPCGMTrackParam::AttachClustersPropagate(const GPUTPCGMMerger* GP
if (dodEdx && iRow + step == toRow) {
float yUncorrected, zUncorrected;
Merger->GetConstantMem()->calibObjects.fastTransformHelper->InverseTransformYZtoNominalYZ(slice, iRow, mP[0], mP[1], yUncorrected, zUncorrected);
uint32_t pad = CAMath::Float2UIntRn(Merger->Param().tpcGeometry.LinearY2Pad(slice, iRow, yUncorrected));
uint32_t pad = CAMath::Float2UIntRn(Merger->Param().tpcGeometry.LinearY2PadC(slice, iRow, yUncorrected));
if (pad >= Merger->Param().tpcGeometry.NPads(iRow) || (Merger->GetConstantMem()->calibObjects.dEdxCalibContainer && Merger->GetConstantMem()->calibObjects.dEdxCalibContainer->isDead(slice, iRow, pad))) {
dodEdx = false;
}
Expand Down
2 changes: 1 addition & 1 deletion GPU/GPUTracking/SliceTracker/GPUTPCTrackletConstructor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ GPUdic(2, 1) void GPUTPCTrackletConstructor::UpdateTracklet(int32_t /*nBlocks*/,
(void)found;
#if defined(GPUCA_HAVE_O2HEADERS) && !defined(__OPENCL1__)
if (!found && tracker.GetConstantMem()->calibObjects.dEdxCalibContainer) {
uint32_t pad = CAMath::Float2UIntRn(tracker.Param().tpcGeometry.LinearY2Pad(tracker.ISlice(), iRow, yUncorrected));
uint32_t pad = CAMath::Float2UIntRn(tracker.Param().tpcGeometry.LinearY2PadC(tracker.ISlice(), iRow, yUncorrected));
if (pad < tracker.Param().tpcGeometry.NPads(iRow) && tracker.GetConstantMem()->calibObjects.dEdxCalibContainer->isDead(tracker.ISlice(), iRow, pad)) {
r.mNMissed--;
rowHit = CALINK_DEAD_CHANNEL;
Expand Down
Loading