diff --git a/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt b/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
index 6032f1506bd86b840ea50134eb3c26d2bcc47515..7905b91e9b90b33d783f8d3a4d3517988eae1e19 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
+++ b/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
@@ -13,4 +13,10 @@ atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/TrigInDetValidation_RTT_*.py )
 atlas_install_runtime( test/TrigInDetValidation_TestConfiguration.xml share/TrigInDetValidation_RTT_*.py TIDAbuild )
 
-atlas_install_scripts( scripts/TIDA*.py )
+atlas_install_scripts( scripts/TIDA*.py test/test*.py POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-ignore=ATL902 )
+
+# Unit test for python test scripts:
+atlas_add_test( TrigValSteeringUT
+                SCRIPT trigvalsteering-unit-tester.py ${CMAKE_CURRENT_SOURCE_DIR}/test
+                PROPERTIES TIMEOUT 300
+                POST_EXEC_SCRIPT nopost.sh )
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_ibl_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_ibl_pu40.py
new file mode 100755
index 0000000000000000000000000000000000000000..8ea0f6fbf893dbc645b15ccdbd8eb75c5360ea59
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_ibl_pu40.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_Zmumu_IBL_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.recon.RDO.e3601_s2576_s2132_r7143
+# art-input-nfiles: 4
+# art-athena-mt: 4
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+
+from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps
+
+chains = [
+    'HLT_mu6_idperf_L1MU6',
+    'HLT_mu24_idperf_L1MU20'
+]
+
+preexec_trig = ';'.join([
+    'doEmptyMenu=True',
+    'doMuonSlice=True',
+    'selectChains='+str(chains)
+])
+
+preexec_reco = ';'.join([
+    'pass' # TODO: figure out a working set of options to disable parts of reco
+    # 'from RecExConfig.RecFlags import rec',
+    # 'rec.doForwardDet=False',
+    # 'rec.doEgamma=False',
+    # 'rec.doMuonCombined=False',
+    # 'rec.doJetMissingETTag=False',
+    # 'rec.doTau=False'
+])
+
+preexec_all = ';'.join([
+    'from TriggerJobOpts.TriggerFlags import TriggerFlags',
+    'TriggerFlags.AODEDMSet.set_Value_and_Lock(\\\"AODFULL\\\")',
+])
+
+rdo2aod = ExecStep.ExecStep()
+rdo2aod.type = 'Reco_tf'
+rdo2aod.input = ''  # specified in inputRDOFile below
+rdo2aod.max_events = 100 # TODO: 2000 events
+rdo2aod.threads = 1 # TODO: change to 4
+rdo2aod.concurrent_events = 1 # TODO: change to 4
+rdo2aod.perfmon = False
+rdo2aod.args = '--inputRDOFile=$ArtInFile --outputAODFile=AOD.pool.root --steering="doRDO_TRIG"'
+rdo2aod.args += ' --preExec "RDOtoRDOTrigger:{:s};" "all:{:s};" "RAWtoESD:{:s};" "ESDtoAOD:{:s};"'.format(
+    preexec_trig, preexec_all, preexec_reco, preexec_reco)
+
+test = Test.Test()
+test.art_type = 'grid'
+test.exec_steps = [rdo2aod]
+test.check_steps = CheckSteps.default_check_steps(test)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py
index 1c1d8c2cb5b11bef7ff33be6883a58aa2b567b9c..88351701d8ad734a763a7d2d4f1c51cc826e9e25 100644
--- a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py
+++ b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/Common.py
@@ -17,10 +17,11 @@ from AthenaCommon.Utils.unixtools import FindFile
 trigvalsteering_logging_level = logging.INFO
 
 # Dictionary of required prefixes identifying a package, see ATR-19735
-package_prefix_dict = {'TriggerTest':      'trig_',
-                       'TrigP1Test':       'trigP1_',
-                       'TrigAnalysisTest': 'trigAna_',
-                       'TrigUpgradeTest':  'trigUpgr_'}
+package_prefix_dict = {'TriggerTest':         'trig_',
+                       'TrigP1Test':          'trigP1_',
+                       'TrigAnalysisTest':    'trigAna_',
+                       'TrigUpgradeTest':     'trigUpgr_',
+                       'TrigInDetValidation': 'trigID_'}
 
 # Log file with all art-result statements
 art_result_summary = 'art-result-summary.log'