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)