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