73 def __init__(self, ID: str, run: WorkflowRun, type: WorkflowType, steps: list[str], setup: TestSetup, extra_args: str = "") -> None:
74 if "maxEvents" not in extra_args:
75 extra_args += " --maxEvents 20"
76
77 if "jobNumber" not in extra_args and run is WorkflowRun.Run3 and type is WorkflowType.FullSim:
78 extra_args += " --jobNumber 5"
79
80 input_argument = ""
81 if "inputEVNTFile" not in extra_args and "inputHITSFile" not in extra_args:
82 if type is WorkflowType.HitsFilter:
83 input_argument = f"--inputHITSFile {input_HITS_unfiltered[run]}"
84 elif type is WorkflowType.HitsMerge:
85 input_argument = f"--inputHITSFile {input_HITS[run]}"
86 else:
87 input_argument = f"--inputEVNTFile {input_EVNT[run]}"
88
89 threads = 0
90 threads_argument = '--multithreaded'
91 if setup.custom_threads is not None:
92 threads = setup.custom_threads
93 if threads <= 0:
94 threads_argument = ''
95
96 if type is WorkflowType.HitsMerge:
97 self.command = \
98 (f"ATHENA_CORE_NUMBER={threads} HITSMerge_tf.py {threads_argument} --AMIConfig {ID}"
99 f" {input_argument} --outputHITS_MRGFile myHITS.pool.root"
100 f" --imf False {extra_args}")
101 elif type is WorkflowType.HitsFilter:
102 self.command = \
103 (f"ATHENA_CORE_NUMBER={threads} FilterHit_tf.py {threads_argument} --AMIConfig {ID}"
104 f" {input_argument} --outputHITS_FILTFile myHITS.pool.root"
105 f" --imf False {extra_args}")
106 else:
107 self.command = \
108 (f"ATHENA_CORE_NUMBER={threads} Sim_tf.py {threads_argument} --AMIConfig {ID}"
109 f" {input_argument} --outputHITSFile myHITS.pool.root"
110 f" --imf False {extra_args}")
111
112 self.output_checks = [
113 FrozenTier0PolicyCheck(setup, "HITS", 10),
114 MetadataCheck(setup, "HITS"),
115 ]
116
117 super().__init__(ID, run, type, steps, setup)
118
119