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