diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
index 71f3aa911236a4cc42c74dd555a229f650f1b497..ffb90908cb75b923bfee7019eb5016522dd18a92 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/python/MTCalibPebConfig.py
@@ -91,6 +91,7 @@ class MTCalibPebHypoOptions:
         self.NumBurnCycles = 0
         self.BurnTimeRandomly = True
         self.Crunch = False
+        self.CheckDataConsistency = False
         self.ROBAccessDict = rob_access_dict
         self.TimeBetweenROBReqMillisec = 0
         self.PEBROBList = []
@@ -168,6 +169,7 @@ def make_hypo_tool(name, options=default_options):
     hypo_tool.NumBurnCycles             = options.NumBurnCycles
     hypo_tool.BurnTimeRandomly          = options.BurnTimeRandomly
     hypo_tool.Crunch                    = options.Crunch
+    hypo_tool.CheckDataConsistency      = options.CheckDataConsistency
     hypo_tool.ROBAccessDict             = options.ROBAccessDict
     hypo_tool.TimeBetweenROBReqMillisec = options.TimeBetweenROBReqMillisec
     hypo_tool.PEBROBList                = options.PEBROBList
diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
index caddc643a3195c0d1eb61e30db64de61c02790dd..808441e7d502ebe066cf82dce29fd807cbb7b897 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/share/MTCalibPeb.py
@@ -21,6 +21,7 @@ MTCalibPebConfig.default_options.BurnTimePerCycleMillisec = get_opt('BurnTimePer
 MTCalibPebConfig.default_options.NumBurnCycles = get_opt('NumBurnCycles', 10)
 MTCalibPebConfig.default_options.BurnTimeRandomly = get_opt('BurnTimeRandomly', True)
 MTCalibPebConfig.default_options.Crunch = get_opt('Crunch', False)
+MTCalibPebConfig.default_options.CheckDataConsistency = get_opt('CheckDataConsistency', False)
 MTCalibPebConfig.default_options.ROBAccessDict = get_opt('ROBAccessDict', MTCalibPebConfig.rob_access_dict)
 MTCalibPebConfig.default_options.TimeBetweenROBReqMillisec = get_opt('TimeBetweenROBReqMillisec', 0)
 MTCalibPebConfig.default_options.PEBROBList = get_opt('PEBROBList', [])
diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.cxx
index 082c838133d6d86e44cc542c7aa7aa9a1eedbdd0..f9f4fa51719847ab241d6e8d64d6336700888ff2 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.cxx
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.cxx
@@ -229,8 +229,22 @@ StatusCode MTCalibPebHypoTool::decide(const MTCalibPebHypoTool::Input& input) co
       IROBDataProviderSvc::VROBFRAG robFragments;
       m_robDataProviderSvc->getROBData(input.eventContext, robs, robFragments, name()+"-GET");
       ATH_MSG_DEBUG("Number of ROBs retrieved: " << robFragments.size());
-      if (!robFragments.empty())
+      if (!robFragments.empty()) {
         ATH_MSG_DEBUG("List of ROBs found: " << std::endl << format(robFragments));
+      }
+      if (m_checkDataConsistency.value()) {
+        for (const IROBDataProviderSvc::ROBF* rob : robFragments) {
+          try {
+            if (!rob->check_rob() || !rob->check_rod()) {
+              ATH_MSG_ERROR("Data consistency check failed");
+            }
+          }
+          catch (const std::exception& ex) {
+            ATH_MSG_ERROR("Data consistency check failed: " << ex.what());
+          }
+          ATH_MSG_DEBUG("Data consistency check passed for ROB 0x" << std::hex << rob->rob_source_id() << std::dec);
+        }
+      }
     }
     if (instr.type == ReqType::COL) {
       // Event building
diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.h b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.h
index 9852ace6ad51eaf9f7af93a1e9926814a6faa784..44dd8e207415b83109e9397d3658656015904be5 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.h
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoTool.h
@@ -84,6 +84,10 @@ private:
     this, "Crunch", false,
     "Crunch CPU instead of sleeping"
   };
+  Gaudi::Property<bool> m_checkDataConsistency {
+    this, "CheckDataConsistency", false,
+    "Perform consistency checks for all retrieved ROB data"
+  };
   Gaudi::Property<std::map<std::string,std::vector<uint32_t> > > m_robAccessDictProp {
     this, "ROBAccessDict", {},
     "Dictionary of prefetch/retrieve operations with given ROB IDs. The value is a vector of ROB IDs. "