Skip to content

Commit 505fe26

Browse files
cbmswdavidrohr
authored andcommitted
TPC Splines: bugfixes in spline merging
1 parent c93b25a commit 505fe26

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

Detectors/TPC/calibration/src/TPCFastSpaceChargeCorrectionHelper.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1103,7 +1103,7 @@ void TPCFastSpaceChargeCorrectionHelper::mergeCorrections(
11031103
for (int iu = 0; iu < gridU.getNumberOfKnots(); iu++) {
11041104
double u = gridU.getKnot(iu).u;
11051105
for (int iv = 0; iv < gridV.getNumberOfKnots(); iv++) {
1106-
double v = gridV.getKnot(iu).u;
1106+
double v = gridV.getKnot(iv).u;
11071107
int knotIndex = spline.getKnotIndex(iu, iv);
11081108
float P[nKnotPar3d];
11091109

GPU/TPCFastTransformation/Spline2DSpec.h

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -382,8 +382,8 @@ class Spline2DSpec<DataT, YdimT, 0>
382382
const auto nYdim4 = nYdim * 4;
383383

384384
DataT *S = P,
385-
*R = P + nYdim,
386-
*Q = P + nYdim * 2,
385+
*Q = P + nYdim,
386+
*R = P + nYdim * 2,
387387
*W = P + nYdim * 3;
388388

389389
const DataT& u = u1;
@@ -425,28 +425,6 @@ class Spline2DSpec<DataT, YdimT, 0>
425425
}
426426
}
427427

428-
// Derivative R = dS / du
429-
// R = dRdSl * (dSdSd * A[0] + dSdDd * A[1]) + dRdDl * (dSdSd * A[2] + dSdDd * A[3]) +
430-
// dRdSr * (dSdSd * A[4] + dSdDd * A[5]) + dRdDr * (dSdSd * A[6] + dSdDd * A[7]) +
431-
// dRdSl * (dSdSu * B[0] + dSdDu * B[1]) + dRdDl * (dSdSu * B[2] + dSdDu * B[3]) +
432-
// dRdSr * (dSdSu * B[4] + dSdDu * B[5]) + dRdDr * (dSdSu * B[6] + dSdDu * B[7]);
433-
434-
{
435-
DataT a[8] = {dRdSl * dSdSd, dRdSl * dSdDd, dRdDl * dSdSd, dRdDl * dSdDd,
436-
dRdSr * dSdSd, dRdSr * dSdDd, dRdDr * dSdSd, dRdDr * dSdDd};
437-
DataT b[8] = {dRdSl * dSdSu, dRdSl * dSdDu, dRdDl * dSdSu, dRdDl * dSdDu,
438-
dRdSr * dSdSu, dRdSr * dSdDu, dRdDr * dSdSu, dRdDr * dSdDu};
439-
440-
// R = sum a[i]*A[i] + b[i]*B[i]
441-
442-
for (int32_t dim = 0; dim < nYdim; dim++) {
443-
R[dim] = 0;
444-
for (int32_t i = 0; i < 8; i++) {
445-
R[dim] += a[i] * A[nYdim * i + dim] + b[i] * B[nYdim * i + dim];
446-
}
447-
}
448-
}
449-
450428
// Derivative Q = dS / dv
451429
// Q = dSdSl * (dQdSd * A[0] + dQdDd * A[1]) + dSdDl * (dQdSd * A[2] + dQdDd * A[3]) +
452430
// dSdSr * (dQdSd * A[4] + dQdDd * A[5]) + dSdDr * (dQdSd * A[6] + dQdDd * A[7]) +
@@ -469,6 +447,28 @@ class Spline2DSpec<DataT, YdimT, 0>
469447
}
470448
}
471449

450+
// Derivative R = dS / du
451+
// R = dRdSl * (dSdSd * A[0] + dSdDd * A[1]) + dRdDl * (dSdSd * A[2] + dSdDd * A[3]) +
452+
// dRdSr * (dSdSd * A[4] + dSdDd * A[5]) + dRdDr * (dSdSd * A[6] + dSdDd * A[7]) +
453+
// dRdSl * (dSdSu * B[0] + dSdDu * B[1]) + dRdDl * (dSdSu * B[2] + dSdDu * B[3]) +
454+
// dRdSr * (dSdSu * B[4] + dSdDu * B[5]) + dRdDr * (dSdSu * B[6] + dSdDu * B[7]);
455+
456+
{
457+
DataT a[8] = {dRdSl * dSdSd, dRdSl * dSdDd, dRdDl * dSdSd, dRdDl * dSdDd,
458+
dRdSr * dSdSd, dRdSr * dSdDd, dRdDr * dSdSd, dRdDr * dSdDd};
459+
DataT b[8] = {dRdSl * dSdSu, dRdSl * dSdDu, dRdDl * dSdSu, dRdDl * dSdDu,
460+
dRdSr * dSdSu, dRdSr * dSdDu, dRdDr * dSdSu, dRdDr * dSdDu};
461+
462+
// R = sum a[i]*A[i] + b[i]*B[i]
463+
464+
for (int32_t dim = 0; dim < nYdim; dim++) {
465+
R[dim] = 0;
466+
for (int32_t i = 0; i < 8; i++) {
467+
R[dim] += a[i] * A[nYdim * i + dim] + b[i] * B[nYdim * i + dim];
468+
}
469+
}
470+
}
471+
472472
// cross-derivative W = (dS)^2 / du / dv
473473
// W = dRdSl * (dQdSd * A[0] + dQdDd * A[1]) + dRdDl * (dQdSd * A[2] + dQdDd * A[3]) +
474474
// dRdSr * (dQdSd * A[4] + dQdDd * A[5]) + dRdDr * (dQdSd * A[6] + dQdDd * A[7]) +

0 commit comments

Comments
 (0)