diff --git a/InnerDetector/InDetValidation/InDetTrackPerfMon/CMakeLists.txt b/InnerDetector/InDetValidation/InDetTrackPerfMon/CMakeLists.txt index 893c4ee2895c890b916a9c3dbabeb27d0f6e64d0..e6c3f25e85d70894bb38abf5da8edd49b67fe716 100644 --- a/InnerDetector/InDetValidation/InDetTrackPerfMon/CMakeLists.txt +++ b/InnerDetector/InDetValidation/InDetTrackPerfMon/CMakeLists.txt @@ -32,7 +32,7 @@ atlas_add_component( InDetTrackPerfMon # Install files from the package: atlas_install_python_modules( python/*.py ) -#atlas_install_joboptions( share/*.py share/*.txt ) -#atlas_install_runtime( share/*.xml share/*.xsd) atlas_install_data( data/* ) atlas_install_runtime( scripts/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( test/test*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( test/test*.sh ) diff --git a/InnerDetector/InDetValidation/InDetTrackPerfMon/data/offlTrkAnaConfig.json b/InnerDetector/InDetValidation/InDetTrackPerfMon/data/offlTrkAnaConfig.json new file mode 100644 index 0000000000000000000000000000000000000000..db940250da754a09ed1c3e6823561cee72ccc8e3 --- /dev/null +++ b/InnerDetector/InDetValidation/InDetTrackPerfMon/data/offlTrkAnaConfig.json @@ -0,0 +1,9 @@ +{ + "TrkAnaOffl1" : { + "enabled" : true, + "TestType" : "Offline", + "RefType" : "Truth", + "MatchingType" : "TruthMatch", + "SubFolder" : "TrkAnaOffl1/" + } +} diff --git a/InnerDetector/InDetValidation/InDetTrackPerfMon/scripts/runIDTPM.py b/InnerDetector/InDetValidation/InDetTrackPerfMon/scripts/runIDTPM.py index 82b3d7f3dd5171a6e5d5ffdaecdf7e763ca6856a..b747fc720f6e1c13659b011a03aaadd39aa137fc 100755 --- a/InnerDetector/InDetValidation/InDetTrackPerfMon/scripts/runIDTPM.py +++ b/InnerDetector/InDetValidation/InDetTrackPerfMon/scripts/runIDTPM.py @@ -10,7 +10,7 @@ def GetCustomAthArgs() : IDTPMparser.add_argument( "--maxEvents", help="Limit number of events. Default: all input events", default=-1, type=int ) IDTPMparser.add_argument( "--debug", help="Enable debugging messages", action="store_true", default=False ) IDTPMparser.add_argument( "--dirName", help="Main directory name for storing plots", default="InDetTrackPerfMonPlots/" ) - IDTPMparser.add_argument( "--outputFileName", help='Name of output file', default="myIDTPM_out" ) + IDTPMparser.add_argument( "--outputFilePrefix", help='Name of output file', default="myIDTPM_out" ) IDTPMparser.add_argument( "--writeAOD_IDTPM", help="Write output file for reprocessing", action="store_true", default=False ) IDTPMparser.add_argument( "--trkAnaCfgFile", help='File with track analysis setup (.json format)', default='Default' ) IDTPMparser.add_argument( "--unpackTrigChains", help="Run each configured trigger chain in a separate track analysis", action="store_true", default=False ) @@ -33,10 +33,10 @@ for path in MyArgs.inputFileNames.split( ',' ): flags.Input.Files += glob( path ) ## Outputs -flags.PhysVal.OutputFileName = MyArgs.outputFileName + '.HIST.root' +flags.PhysVal.OutputFileName = MyArgs.outputFilePrefix + '.HIST.root' flags.addFlag( 'Output.doWriteAOD_IDTPM', MyArgs.writeAOD_IDTPM ) flags.addFlag( 'Output.AOD_IDTPMFileName', - MyArgs.outputFileName + '.AOD_IDTPM.pool.root' ) + MyArgs.outputFilePrefix + '.AOD_IDTPM.pool.root' ) ## Set output log level if MyArgs.debug: diff --git a/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_IDTPM_RDOtoOfflTrkAna_build.sh b/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_IDTPM_RDOtoOfflTrkAna_build.sh new file mode 100755 index 0000000000000000000000000000000000000000..1f1f7b5db1b720ab212441f1d2811e312199c43c --- /dev/null +++ b/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_IDTPM_RDOtoOfflTrkAna_build.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# art-description: Test to trasform RDO->AOD and then run IDTPM for an Offline TrackAnalysis +# art-input: mc21_14TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.RDO.e8481_s4149_r14700 +# art-type: build +# art-include: main/Athena +# art-output: *.root + +input_RDO=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/RDO/ATLAS-P2-RUN4-03-00-00/mc21_14TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.RDO.e8481_s4149_r14700/RDO.33629020._000047.pool.root.1 + +nEvents=15 + +run () { + name="${1}" + cmd="${@:2}" + echo "Running ${name}..." + time ${cmd} + rc=$? + echo "art-result: $rc ${name}" + if [ $rc != 0 ]; then + exit $rc + fi + return $rc +} + +run "Reconstruction" \ + Reco_tf.py --CA \ + --inputRDOFile ${input_RDO} \ + --outputAODFile AOD.root \ + --steering doRAWtoALL \ + --maxEvents ${nEvents} \ + --preInclude InDetConfig.ConfigurationHelpers.OnlyTrackingPreInclude + +run "IDTPM" \ + runIDTPM.py \ + --inputFileNames AOD.root \ + --outputFilePrefix myIDTPM \ + --trkAnaCfgFile InDetTrackPerfMon/offlTrkAnaConfig.json \ + --writeAOD_IDTPM \ + --maxEvents ${nEvents} \ + --debug diff --git a/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_trigAna_IDTPM_RDOtoTrkAna_build.py b/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_trigAna_IDTPM_RDOtoTrkAna_build.py new file mode 100755 index 0000000000000000000000000000000000000000..9126bdfdaed8f3d3bdc966afd2ad178a45440e8c --- /dev/null +++ b/InnerDetector/InDetValidation/InDetTrackPerfMon/test/test_trigAna_IDTPM_RDOtoTrkAna_build.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +# +# art-description: Test to trasform RDO->AOD and then run IDTPM for an Offline TrackAnalysis +# art-type: build +# art-include: main/Athena +# art-output: *.root + +from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps + +maxEvents = 15 + +## RDO->AOD +rdo2aod = ExecStep.ExecStep() +rdo2aod.type = 'Reco_tf' +rdo2aod.input = 'ttbar_pu200_Run4' # defined in TrigValTools/share/TrigValInputs.json +rdo2aod.max_events = maxEvents +rdo2aod.args = ' --CA' +rdo2aod.args += ' --outputAODFile AOD.pool.root' +rdo2aod.args += ' --steering doRAWtoALL' +rdo2aod.args += ' --preInclude InDetConfig.ConfigurationHelpers.OnlyTrackingPreInclude' + +## IDTPM TrkAnalysis +aod2trkana = ExecStep.ExecStep( 'IDTPM' ) +aod2trkana.type = 'other' +aod2trkana.input = '' +aod2trkana.max_events = -1 +aod2trkana.required = True +aod2trkana.depends_on_previous = True +aod2trkana.executable = 'runIDTPM.py' +aod2trkana.args = ' --inputFileNames AOD.pool.root' +aod2trkana.args += ' --outputFilePrefix myIDTPM' +aod2trkana.args += ' --trkAnaCfgFile InDetTrackPerfMon/offlTrkAnaConfig.json' +aod2trkana.args += ' --writeAOD_IDTPM' +aod2trkana.args += ' --debug' + +## Define test +test = Test.Test() +test.art_type = 'build' +test.exec_steps = [ rdo2aod, aod2trkana ] +test.check_steps = CheckSteps.default_check_steps( test ) + +import sys +sys.exit( test.run() ) +