ATLAS Offline Software
Loading...
Searching...
No Matches
RunWorkflowTests_Run4.py
Go to the documentation of this file.
1#!/usr/bin/env python
2# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
4from sys import exit
5
6from WorkflowTestRunner.ScriptUtils import setup_logger, setup_parser, get_test_setup, \
7 run_tests, run_checks, run_summary
8from WorkflowTestRunner.StandardTests import DerivationTest, GenerationTest, PileUpTest, QTest, SimulationTest
9from WorkflowTestRunner.Test import WorkflowRun, WorkflowType
10from AthenaConfiguration.TestDefaults import defaultGeometryTags, defaultConditionsTags
11
12def main():
13 name = "RunUpgradeTests"
14 run = WorkflowRun.Run4
15
16 # Setup the environment
17 log = setup_logger(name)
18 parser = setup_parser()
19 options = parser.parse_args()
20 setup = get_test_setup(name, options, log)
21
22 # Define which tests to run
23 tests_to_run = []
24 if options.generation:
25 dsid = "421356" if not options.dsid else options.dsid
26 tests_to_run.append(GenerationTest(f"gen{dsid}", run, WorkflowType.Generation, ["generate"], setup, options.extra_args))
27 elif options.simulation:
28 tests_to_run.append(SimulationTest("s3761", run, WorkflowType.FullSim, ["EVNTtoHITS"], setup, f"{options.extra_args} --geometryVersion {defaultGeometryTags.RUN4}") )
29 elif options.overlay:
30 log.error("Overlay not supported yet")
31 exit(1)
32 elif options.pileup:
33 if setup.parallel_execution:
34 log.error("Parallel execution not supported for pile-up workflow")
35 exit(1)
36 if not options.workflow or options.workflow is WorkflowType.PileUpPresampling:
37 tests_to_run.append(PileUpTest("d1920", run, WorkflowType.PileUpPresampling, ["HITtoRDO"], setup, f"{options.extra_args} --digiSteeringConf StandardInTimeOnlyTruth --geometryVersion {defaultGeometryTags.RUN4} --conditionsTag default:{defaultConditionsTags.RUN4_MC}"))
38 if not options.workflow or options.workflow is WorkflowType.MCPileUpReco:
39 tests_to_run.append(QTest("q456", run, WorkflowType.MCPileUpReco, ["Overlay", "RAWtoALL"], setup, options.extra_args))
40 elif options.reco:
41 tests_to_run.append(QTest("q447", run, WorkflowType.MCReco, ["HITtoRDO", "RAWtoALL"], setup, f"{options.extra_args} --geometryVersion {defaultGeometryTags.RUN4}"))
42 elif options.derivation:
43 test_id = "MC_PHYS" if not options.ami_tag else options.ami_tag
44 test_id = f"{test_id}_{run.value}"
45 tests_to_run.append(DerivationTest(test_id, run, WorkflowType.Derivation, ["Derivation"], setup, options.extra_args))
46 else:
47 if setup.parallel_execution:
48 log.error("Parallel execution not supported for the default Phase-II workflow")
49 exit(1)
50 tests_to_run.append(SimulationTest("s3761", run, WorkflowType.FullSim, ["EVNTtoHITS"], setup, f"{options.extra_args} --geometryVersion {defaultGeometryTags.RUN4}"))
51 tests_to_run.append(QTest("q447", run, WorkflowType.MCReco, ["HITtoRDO", "RAWtoALL"], setup, f"{options.extra_args} --geometryVersion {defaultGeometryTags.RUN4} --inputHITSFile ../run_s3761/myHITS.pool.root"))
52
53 # Define which perfomance checks to run
54 # TODO: standard performance checks do not work, disable for now
55 # performance_checks = get_standard_performance_checks(setup)
56 performance_checks = []
57
58 # Define and run jobs
59 run_tests(setup, tests_to_run)
60
61 # Run post-processing checks
62 all_passed = run_checks(setup, tests_to_run, performance_checks)
63
64 # final report
65 run_summary(setup, tests_to_run, all_passed)
66
67
68if __name__ == "__main__":
69 main()