diff --git a/Detectors/TPC/calibration/SpacePoints/src/TrackResiduals.cxx b/Detectors/TPC/calibration/SpacePoints/src/TrackResiduals.cxx index d3db11daf9e87..b49fb22b41c8f 100644 --- a/Detectors/TPC/calibration/SpacePoints/src/TrackResiduals.cxx +++ b/Detectors/TPC/calibration/SpacePoints/src/TrackResiduals.cxx @@ -133,10 +133,12 @@ void TrackResiduals::setZ2XBinning(const std::vector& binning) mZ2XBinsDH.clear(); mZ2XBinsDI.clear(); mZ2XBinsCenter.clear(); + const float maxZ2X = SpacePointsCalibConfParam::Instance().maxZ2X; + LOGP(info, "Using maxZ2X {} for setZ2XBinning", maxZ2X); for (int iBin = 0; iBin < nBins; ++iBin) { - mZ2XBinsDH.push_back(.5f * (binning[iBin + 1] - binning[iBin]) * mMaxZ2X); + mZ2XBinsDH.push_back(.5f * (binning[iBin + 1] - binning[iBin]) * maxZ2X); mZ2XBinsDI.push_back(.5f / mZ2XBinsDH[iBin]); - mZ2XBinsCenter.push_back(binning[iBin] * mMaxZ2X + mZ2XBinsDH[iBin]); + mZ2XBinsCenter.push_back(binning[iBin] * maxZ2X + mZ2XBinsDH[iBin]); LOGF(info, "Bin %i: center (%.3f), half bin width (%.3f)", iBin, mZ2XBinsCenter.back(), mZ2XBinsDH.back()); } } diff --git a/Detectors/TPC/calibration/src/TPCFastSpaceChargeCorrectionHelper.cxx b/Detectors/TPC/calibration/src/TPCFastSpaceChargeCorrectionHelper.cxx index 5a26dabaa2db5..fa2f8434f80ee 100644 --- a/Detectors/TPC/calibration/src/TPCFastSpaceChargeCorrectionHelper.cxx +++ b/Detectors/TPC/calibration/src/TPCFastSpaceChargeCorrectionHelper.cxx @@ -497,7 +497,7 @@ std::unique_ptr TPCFastSpaceChargeCorrect double yMax = rowX * trackResiduals.getY2X(iRow, trackResiduals.getNY2XBins() - 1); double zMin = rowX * trackResiduals.getZ2X(0); double zMax = rowX * trackResiduals.getZ2X(trackResiduals.getNZ2XBins() - 1); - double zOut = zMax; + double zOut = std::min(zMax, (double)geo.getTPCzLength()); // clamp to physical TPC extent to avoid negative spline scale info.gridMeasured.set(yMin, spline.getGridX1().getUmax() / (yMax - yMin), // y zMin, spline.getGridX2().getUmax() / (zMax - zMin), // z zOut, geo.getTPCzLength()); // correction scaling region