diff --git a/Tools/TrfTestsARTPlots/test/test_trf_mc20_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_mc20_phys_physlite_ca.sh
index bd10b73ac2345765db5f9fd917f53555d4478627..a0d8975a5271a85d241557bfdc22cc2ae6b5930a 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_mc20_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_mc20_phys_physlite_ca.sh
@@ -39,6 +39,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/test_trf_mc21_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_mc21_phys_physlite_ca.sh
index fbf244c21046d55cda1c51ad71f59f5d83e88308..fc15dca88ec15b64c4bd34aaeaa2f4a5058887c6 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_mc21_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_mc21_phys_physlite_ca.sh
@@ -38,6 +38,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/test_trf_q442_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_q442_phys_physlite_ca.sh
index 28a9ff37834f2d9ba600c16d6b516a4e88a25fd4..4df444289ec30ebf54f429b86e634aeb9df1bef5 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_q442_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_q442_phys_physlite_ca.sh
@@ -48,6 +48,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/test_trf_q443_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_q443_phys_physlite_ca.sh
index 72bbd9007b6e95ffeb87269aad3b02643acad55e..18fadde9665db7e2e674dccf055f145fb878860f 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_q443_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_q443_phys_physlite_ca.sh
@@ -66,6 +66,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/test_trf_q445_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_q445_phys_physlite_ca.sh
index 505843899a857199cecd36a78f35854297aba68c..654653cd4887068cf368491dcabcf15bca795498 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_q445_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_q445_phys_physlite_ca.sh
@@ -52,6 +52,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/test_trf_q449_phys_physlite_ca.sh b/Tools/TrfTestsARTPlots/test/test_trf_q449_phys_physlite_ca.sh
index fd09ba9aa123779d0cc60b7126b7b65349fa235c..1f7489964a75887e0b4df015ed3f17cf14ea21de 100755
--- a/Tools/TrfTestsARTPlots/test/test_trf_q449_phys_physlite_ca.sh
+++ b/Tools/TrfTestsARTPlots/test/test_trf_q449_phys_physlite_ca.sh
@@ -49,6 +49,15 @@ checkxAOD DAOD_PHYSLITE.art.pool.root | tee -a xaod_sizes.log
 rc2=$?
 echo "art-result: ${rc2} checkxAOD" 
 
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYS.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYS.art.pool.root
+rcchecker1=$?
+echo "art-result: ${rcchecker1} xAODCheckerTRFPlots PHYS"
+echo "============ xAODCheckerTRFPlots.py DAOD_PHYSLITE.art.pool.root"
+xAODCheckerTRFPlots.py --inputFiles DAOD_PHYSLITE.art.pool.root
+rcchecker2=$?
+echo "art-result: ${rcchecker2} xAODCheckerTRFPlots PHYSLITE"
+
 echo "============ xAODHist DAOD_PHYSLITE.art.pool.root"
 xAODHist.py --analysis --outputHISTFile hist_physlite_latest.root DAOD_PHYSLITE.art.pool.root 
 rc3=$?
diff --git a/Tools/TrfTestsARTPlots/test/xAODCheckerTRFPlots.py b/Tools/TrfTestsARTPlots/test/xAODCheckerTRFPlots.py
new file mode 100755
index 0000000000000000000000000000000000000000..ff6f5be764ff5447156108a047911bf554ba332f
--- /dev/null
+++ b/Tools/TrfTestsARTPlots/test/xAODCheckerTRFPlots.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+
+import subprocess
+import argparse
+import sys
+
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--inputFiles', type=str, nargs='+')
+    args = parser.parse_args()
+
+    if len(sys.argv) < 2:
+        parser.print_help()
+        sys.exit(1)
+
+    processOutput = subprocess.Popen(["xAODChecker"]+args.inputFiles,universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.DEVNULL)
+    problemCounts = {}
+    linePair = []
+    lines = [line for line in processOutput.stdout]
+    for line in lines:
+        if "ERROR" not in line:
+            continue
+        if len(linePair)==2:
+            errorMessage = linePair[0][1].replace("\n","")
+            splitErrorMessage = errorMessage.split()
+            errorType = splitErrorMessage[0]
+            if (errorType == '252'):
+                errorMessage = ' '.join([splitErrorMessage[1],'(X) !=',splitErrorMessage[4],' (Y)'])
+            else:
+                errorMessage = ' '.join([splitErrorMessage[i] for i in range(1,len(splitErrorMessage))])
+            name = linePair[1][1].split()[5]
+            if name not in problemCounts.keys():
+                problemCounts[name] = {errorMessage:1}
+            else:
+                if errorMessage not in problemCounts[name].keys():
+                    problemCounts[name][errorMessage] = 1
+                else:
+                    problemCounts[name][errorMessage] += 1
+            linePair.clear()
+        if len(linePair)!=2:
+            linePair.append(line.split("TFileChecker.cxx:"))
+            continue
+    print("=" * 80)
+    print("Number of impacted events and error message type for each container:")
+    print("-" * 80)
+    for typeName in problemCounts.keys():
+        print(typeName.replace("\"",""))
+        for errorMessage in problemCounts[typeName].keys():
+            print("\t",problemCounts[typeName][errorMessage],'\t\t',errorMessage)
+    print("=" * 80)
+
+    if len(problemCounts)>0:
+        return 1
+    else:
+        return 0
+
+if __name__ == "__main__":
+    ret = main()
+    sys.exit(ret)