13 name = "Run3Tests"
14 run = WorkflowRun.Run3
15
16
17 log = setup_logger(name)
18 parser = setup_parser()
19 options = parser.parse_args()
20 setup = get_test_setup(name, options, log)
21
22
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 if not options.workflow or options.workflow is WorkflowType.FullSim:
29 ami_tag = "s4006" if not options.ami_tag else options.ami_tag
30 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'"))
31 if options.workflow is WorkflowType.AF3:
32 ami_tag = "a913" if not options.ami_tag else options.ami_tag
33 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.AF3, ["EVNTtoHITS"], setup, options.extra_args))
34 if options.workflow is WorkflowType.HitsMerge:
35 ami_tag = "s4007" if not options.ami_tag else options.ami_tag
36 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.HitsMerge, ["HITSMerge"], setup, options.extra_args))
37 if options.workflow is WorkflowType.HitsFilter:
38 ami_tag = "s4008" if not options.ami_tag else options.ami_tag
39 tests_to_run.append(SimulationTest(ami_tag, run, WorkflowType.HitsFilter, ["FilterHitTf"], setup, options.extra_args))
40 elif options.overlay:
41 if not options.workflow or options.workflow is WorkflowType.MCOverlay:
42 ami_tag = "d1759" if not options.ami_tag else options.ami_tag
43 tests_to_run.append(OverlayTest(ami_tag, run, WorkflowType.MCOverlay, ["Overlay"], setup, options.extra_args + " --runNumber 601229 --conditionsTag 'default:OFLCOND-MC23-SDR-RUN3-08'"))
44 if not options.workflow or options.workflow is WorkflowType.DataOverlay:
45 ami_tag = "d2029" if not options.ami_tag else options.ami_tag
46 tests_to_run.append(DataOverlayTest(ami_tag, run, WorkflowType.DataOverlay, ["Overlay"], setup, options.extra_args + " --runNumber 601229 --postInclude \"default:PyJobTransforms.UseFrontier\""))
47 if not options.workflow or options.workflow is WorkflowType.DataOverlayChain:
48 ami_tag = "d2030" if not options.ami_tag else options.ami_tag
49 tests_to_run.append(DataOverlayTest(ami_tag, run, WorkflowType.DataOverlayChain, ["EVNTtoRDO"], setup, options.extra_args + " --runNumber 603398 --postInclude \"default:PyJobTransforms.UseFrontier\""))
50 elif options.pileup:
51 if setup.parallel_execution:
52 log.error("Parallel execution not supported for pile-up workflow")
53 exit(1)
54 if not options.workflow or options.workflow is WorkflowType.PileUpPresampling:
55 ami_tag = "d1919" if not options.ami_tag else options.ami_tag
56 tests_to_run.append(PileUpTest(ami_tag, run, WorkflowType.PileUpPresampling, ["HITtoRDO"], setup, options.extra_args))
57 if not options.workflow or options.workflow is WorkflowType.MCPileUpReco:
58 tests_to_run.append(QTest("q455", run, WorkflowType.MCPileUpReco, ["Overlay", "RDOtoRDOTrigger", "RAWtoALL"], setup, options.extra_args))
59 if options.workflow is WorkflowType.MinbiasPreprocessing:
60 ami_tag = "d2008" if not options.ami_tag else options.ami_tag
61 tests_to_run.append(DataOverlayPreparationTest(ami_tag, run, WorkflowType.MinbiasPreprocessing, ["BStoRDO"], setup, options.extra_args))
62 elif options.derivation:
63 test_id = "MC_PHYS" if not options.ami_tag else options.ami_tag
64 test_id = f"{test_id}_{run.value}"
65 if 'mtDerivation' in options.extra_args:
66 tests_to_run.append(DerivationTestMT(test_id, run, WorkflowType.Derivation, ["Derivation"], setup, options.extra_args))
67 else:
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
81 performance_checks = get_standard_performance_checks(setup)
82
83
84 run_tests(setup, tests_to_run)
85
86
87 all_passed = run_checks(setup, tests_to_run, performance_checks)
88
89
90 run_summary(setup, tests_to_run, all_passed)
91
92