ATLAS Offline Software
Loading...
Searching...
No Matches
RunWorkflowTests_Run3.py
Go to the documentation of this file.
1#!/usr/bin/env python
2# Copyright (C) 2002-2026 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, get_standard_performance_checks, \
7 run_tests, run_checks, run_summary
8from WorkflowTestRunner.StandardTests import DataOverlayPreparationTest, DerivationTest, GenerationTest, OverlayTest, DataOverlayTest, PileUpTest, QTest, SimulationTest
9from WorkflowTestRunner.Test import WorkflowRun, WorkflowType
10
11
12def main():
13 name = "Run3Tests"
14 run = WorkflowRun.Run3
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 if "inputEVNT_PreFile" in options.extra_args:
27 tests_to_run.append(GenerationTest(f"gen{dsid}", run, WorkflowType.Generation, ["afterburn"], setup, options.extra_args))
28 else:
29 tests_to_run.append(GenerationTest(f"gen{dsid}", run, WorkflowType.Generation, ["generate"], setup, options.extra_args))
30 elif options.simulation:
31 if not options.workflow or options.workflow is WorkflowType.FullSim:
32 ami_tag = "s4006" if not options.ami_tag else options.ami_tag
33 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.FullSim, ["EVNTtoHITS"], setup, options.extra_args + " --conditionsTag 'default:OFLCOND-MC21-SDR-RUN3-07' --geometryVersion 'default:ATLAS-R3S-2021-03-02-00'"))
34 if options.workflow is WorkflowType.AF3:
35 ami_tag = "a913" if not options.ami_tag else options.ami_tag
36 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.AF3, ["EVNTtoHITS"], setup, options.extra_args))
37 if options.workflow is WorkflowType.HitsMerge:
38 ami_tag = "s4007" if not options.ami_tag else options.ami_tag
39 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.HitsMerge, ["HITSMerge"], setup, options.extra_args))
40 if options.workflow is WorkflowType.HitsFilter:
41 ami_tag = "s4008" if not options.ami_tag else options.ami_tag
42 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.HitsFilter, ["FilterHitTf"], setup, options.extra_args))
43 elif options.overlay:
44 if not options.workflow or options.workflow is WorkflowType.MCOverlay:
45 ami_tag = "d1759" if not options.ami_tag else options.ami_tag
46 tests_to_run.append(OverlayTest(ami_tag, run, WorkflowType.MCOverlay, ["Overlay"], setup, options.extra_args + " --runNumber 601229 --conditionsTag 'default:OFLCOND-MC23-SDR-RUN3-08'"))
47 if not options.workflow or options.workflow is WorkflowType.DataOverlay:
48 ami_tag = "d2029" if not options.ami_tag else options.ami_tag
49 tests_to_run.append(DataOverlayTest(ami_tag, run, WorkflowType.DataOverlay, ["Overlay"], setup, options.extra_args + " --runNumber 601229 --postInclude \"default:PyJobTransforms.UseFrontier\""))
50 if not options.workflow or options.workflow is WorkflowType.DataOverlayChain:
51 ami_tag = "d2030" if not options.ami_tag else options.ami_tag
52 tests_to_run.append(DataOverlayTest(ami_tag, run, WorkflowType.DataOverlayChain, ["EVNTtoRDO"], setup, options.extra_args + " --runNumber 603398 --postInclude \"default:PyJobTransforms.UseFrontier\""))
53 elif options.pileup:
54 if setup.parallel_execution:
55 log.error("Parallel execution not supported for pile-up workflow")
56 exit(1)
57 if not options.workflow or options.workflow is WorkflowType.PileUpPresampling:
58 ami_tag = "d1919" if not options.ami_tag else options.ami_tag
59 tests_to_run.append(PileUpTest(ami_tag, run, WorkflowType.PileUpPresampling, ["HITtoRDO"], setup, options.extra_args))
60 if not options.workflow or options.workflow is WorkflowType.MCPileUpReco:
61 tests_to_run.append(QTest("q455", run, WorkflowType.MCPileUpReco, ["Overlay", "RDOtoRDOTrigger", "RAWtoALL"], setup, options.extra_args))
62 if options.workflow is WorkflowType.MinbiasPreprocessing:
63 ami_tag = "d2008" if not options.ami_tag else options.ami_tag
64 tests_to_run.append(DataOverlayPreparationTest(ami_tag, run, WorkflowType.MinbiasPreprocessing, ["BStoRDO"], setup, options.extra_args))
65 elif options.derivation:
66 test_id = "MC_PHYS" if not options.ami_tag else options.ami_tag
67 test_id = f"{test_id}_{run.value}"
68 tests_to_run.append(DerivationTest(test_id, run, WorkflowType.Derivation, ["Derivation"], setup, options.extra_args))
69 else:
70 if not options.workflow or options.workflow is WorkflowType.MCReco:
71 ami_tag = "q454" if not options.ami_tag else options.ami_tag
72 tests_to_run.append(QTest(ami_tag, run, WorkflowType.MCReco, ["HITtoRDO", "RDOtoRDOTrigger", "RAWtoALL"], setup, options.extra_args))
73 if not options.workflow or options.workflow is WorkflowType.DataReco:
74 ami_tag = "q449" if not options.ami_tag else options.ami_tag
75 tests_to_run.append(QTest(ami_tag, run, WorkflowType.DataReco, ["RAWtoALL", "DQHistogramMerge"], setup, options.extra_args))
76 if options.workflow is WorkflowType.DataOverlayReco:
77 ami_tag = "q458" if not options.ami_tag else options.ami_tag
78 tests_to_run.append(QTest(ami_tag, run, WorkflowType.DataOverlayReco, ["RAWtoALL"], setup, options.extra_args))
79
80 # Define which perfomance checks to run
81 performance_checks = get_standard_performance_checks(setup)
82
83 # Define and run jobs
84 run_tests(setup, tests_to_run)
85
86 # Run post-processing checks
87 all_passed = run_checks(setup, tests_to_run, performance_checks)
88
89 # final report
90 run_summary(setup, tests_to_run, all_passed)
91
92
93if __name__ == "__main__":
94 main()
95
void run_tests()