diff --git a/algo/data/sts/ReadoutSetup.cxx b/algo/data/sts/ReadoutSetup.cxx
index a436569489f94cd865b39927338e2972cfc5b182..aa9f83c907b000eff7f0a45c8d416d2a72853b89 100644
--- a/algo/data/sts/ReadoutSetup.cxx
+++ b/algo/data/sts/ReadoutSetup.cxx
@@ -65,35 +65,39 @@ void sts::ReadoutMapping::Init(const ReadoutSetup& config)
 
   // Constructing the map (equipmentId, eLink) -> (module, ASIC within module)
   uint16_t numElinksPerComp = numCrobPerComp * numElinksPerCrob;
-  for (uint16_t comp = 0; comp < numComp; comp++) {
-    uint16_t equipment = config.components.at(comp).equipmentId;
+  for (uint16_t compIdx = 0; compIdx < numComp; compIdx++) {
+    const auto& component = config.components.at(compIdx);
+    uint16_t equipment    = component.equipmentId;
     fReadoutMapping[equipment].resize(numElinksPerComp);
-    for (uint16_t crob = 0; crob < numCrobPerComp; crob++) {
-      for (uint16_t elink = 0; elink < numElinksPerCrob; elink++) {
+    for (uint16_t crobIdx = 0; crobIdx < numCrobPerComp; crobIdx++) {
+      for (uint16_t elinkIdx = 0; elinkIdx < numElinksPerCrob; elinkIdx++) {
 
         int32_t moduleAddress = -1;
         uint16_t asicInModule = 0;
         bool isPulser         = false;
 
-        uint16_t elinkId = numElinksPerCrob * crob + elink;  // elink within component
-        int16_t feb      = config.elinks.at(elinkId).toFeb;  // FEB within CROB
+        uint16_t elinkId  = numElinksPerCrob * crobIdx + elinkIdx;  // elink within component
+        const auto& elink = config.elinks.at(elinkId);
+
+        int16_t feb = elink.toFeb;  // FEB within CROB
         if (feb != -1) {
-          int16_t module = config.components[comp].feb2module[crob][feb];         // Module index
-          isPulser       = config.components[comp].febIsPulser.at(crob).at(feb);  // Pulser flag
-
-          if (module != -1) {
-            assert(module < numModules);
-            moduleAddress      = config.modules.at(module).address;                     // Module address
-            bool moduleType    = config.modules.at(module).type;                        // 0 or 1
-            int16_t moduleSide = config.components.at(comp).feb2moduleSide[crob][feb];  // 0 or 1, -1 is inactive
-            int16_t febType    = (moduleType == 0 ? moduleSide : !moduleSide);          // 0 = FEB A, 1 = FEB B
-            uint32_t asicIndex = (febType == 0 ? config.elinks[elinkId].toAsicFebA : config.elinks[elinkId].toAsicFebB);
+          int16_t moduleIdx = component.feb2module[crobIdx][feb];         // Module index
+          isPulser          = component.febIsPulser.at(crobIdx).at(feb);  // Pulser flag
+
+          if (moduleIdx != -1) {
+            assert(moduleIdx < numModules);
+            const auto& module = config.modules.at(moduleIdx);
+            moduleAddress      = module.address;                                // Module address
+            bool moduleType    = module.type;                                   // 0 or 1
+            int16_t moduleSide = component.feb2moduleSide[crobIdx][feb];        // 0 or 1, -1 is inactive
+            int16_t febType    = (moduleType == 0 ? moduleSide : !moduleSide);  // 0 = FEB A, 1 = FEB B
+            uint32_t asicIndex = (febType == 0 ? elink.toAsicFebA : elink.toAsicFebB);
             uint32_t asicInFeb = asicIndex % numAsicsPerFeb;  // ASIC number within FEB
 
             asicInModule = (moduleSide == 1 ? asicInFeb : asicInFeb + numAsicsPerFeb);
           }
         }
-        fReadoutMapping[equipment][elink] = {moduleAddress, asicInModule, isPulser};
+        fReadoutMapping[equipment][elinkIdx] = {moduleAddress, asicInModule, isPulser};
 
       }  //# elink
     }    //# CROB