132 self.setup()
133
134 import ROOT
135 ROOT.xAOD.Init().ignore()
136 self.readSamples()
137 self.flags.lock()
138 self.printFlags()
139
140 self.job = ROOT.EL.Job()
141 self.job.sampleHandler(self.sampleHandler)
142 self.job.options().setDouble(ROOT.EL.Job.optFilesPerWorker, 100)
143 self.job.options().setDouble(ROOT.EL.Job.optMaxEvents, self.flags.Exec.MaxEvents)
144 self.job.options().setString(ROOT.EL.Job.optSubmitDirMode, 'unique-link')
145 self.job.options().setDouble(ROOT.EL.Job.optSkipEvents, self.flags.Exec.SkipEvents)
146
147 for alg in self.makeAlgSequence():
148 self.job.algsAdd(alg)
149 if self.args.merge_output_files:
150 self.job.options().setString(ROOT.EL.Job.optStreamAliases, "ANALYSIS=" + ROOT.EL.Job.histogramStreamName)
151 else:
152 self.job.outputAdd(ROOT.EL.OutputStream('ANALYSIS'))
153
154 if self.args.run_perf_stat:
155 self.job.options().setBool(ROOT.EL.Job.optXAODPerfStats, 1)
156 if self.args.algorithm_timers:
157 self.job.options().setBool(ROOT.EL.Job.optAlgorithmTimer, 1)
158 if self.args.algorithm_memory_monitoring:
159 self.job.options().setBool(ROOT.EL.Job.optAlgorithmMemoryMonitor, 1)
160
161 driver = ROOT.EL.DirectDriver() if self.args.direct_driver else ROOT.EL.ExecDriver()
162 self.driverSubmit(driver)
163
164 if self.args.dump_full_config:
165 self._dumpFullConfig()
166 exitCode = self.getExitCode()
167
168 if self.args.work_dir is None:
169 self.moveOutputFiles()
170
171 sys.exit(exitCode)