diff --git a/algo/detectors/sts/HitfinderChain.cxx b/algo/detectors/sts/HitfinderChain.cxx
index 14e9737386996fec412a4758f18b56ac103cfe1b..6741b561c3c95fda017f1bfae08ecd538370d946 100644
--- a/algo/detectors/sts/HitfinderChain.cxx
+++ b/algo/detectors/sts/HitfinderChain.cxx
@@ -378,8 +378,8 @@ sts::HitfinderChain::DigiMap sts::HitfinderChain::CountDigisPerModules(gsl::span
   xpu::scoped_timer t_("Count Digis By Module");
   xpu::t_add_bytes(digis.size_bytes());
 
-  int nModules     = fPars->setup.modules.size();
-  int nModuleSides = nModules * 2;
+  size_t nModules     = fPars->setup.modules.size();
+  size_t nModuleSides = nModules * 2;
   DigiMap digiMap;
   digiMap.nDigisPerModule.resize(nModuleSides);
 
@@ -456,14 +456,14 @@ void sts::HitfinderChain::FlattenDigis(gsl::span<const CbmStsDigi> digis, DigiMa
 
   const auto& modules = fPars->setup.modules;
 
-  int nModules         = modules.size();
-  int nModuleSides     = nModules * 2;
+  size_t nModules      = modules.size();
+  size_t nModuleSides  = nModules * 2;
   int nChannelsPerSide = fPars->setup.nChannels / 2;
   xpu::h_view pDigisFlat(fHitfinder.digisPerModule);  // Final input copied the GPU
 
   xpu::h_view pMdigiOffset(fHitfinder.digiOffsetPerModule);
   pMdigiOffset[0] = 0;
-  for (int m = 1; m < nModuleSides + 1; m++) {
+  for (size_t m = 1; m < nModuleSides + 1; m++) {
     pMdigiOffset[m] = pMdigiOffset[m - 1] + digiMap.nDigisPerModule.at(m - 1);
   }
 
@@ -757,7 +757,7 @@ void sts::HitfinderChain::EnsureClustersSane(gsl::span<ClusterIdx> hClusterIdx,
     for (int i = 0; i < nClusters; i++) {
       auto& cidx = clusterIdx[i];
 
-      if (cidx.fIdx < 0 || size_t(cidx.fIdx) >= fHitfinder.maxClustersPerModule) {
+      if ((int) cidx.fIdx < 0 || size_t(cidx.fIdx) >= fHitfinder.maxClustersPerModule) {
         L_(fatal) << "Cluster " << i << " of module " << m << " has invalid index " << cidx.fIdx;
         std::abort();
       }