Skip to content
Snippets Groups Projects
Commit 2f900f24 authored by Johannes Elmsheuser's avatar Johannes Elmsheuser Committed by Melissa Yexley
Browse files

Add xAODCheckerTRFPlots.py to check PHYS/LITE file integrity

parent 6aacc67e
No related branches found
No related tags found
2 merge requests!707402024-04-19: merge of 24.0 into main,!67647Online Event Displays to CA
......@@ -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=$?
......
......@@ -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=$?
......
......@@ -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=$?
......
......@@ -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=$?
......
......@@ -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=$?
......
......@@ -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=$?
......
#!/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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment