143 self.setup()
144
145 import ROOT
146 ROOT.xAOD.Init().ignore()
147 self.readSamples()
149 self.printFlags()
150
151 self.job = ROOT.EL.Job()
152 self.job.sampleHandler(self.sampleHandler)
153 self.job.options().setDouble(ROOT.EL.Job.optFilesPerWorker, 100)
154 self.job.options().setDouble(ROOT.EL.Job.optMaxEvents, self.flags.Exec.MaxEvents)
155 self.job.options().setString(ROOT.EL.Job.optSubmitDirMode, 'unique-link')
156 self.job.options().setDouble(ROOT.EL.Job.optSkipEvents, self.flags.Exec.SkipEvents)
157
158 for alg in self.makeAlgSequence():
159 self.job.algsAdd(alg)
160 if self.args.merge_output_files:
161 self.job.options().setString(ROOT.EL.Job.optStreamAliases, "ANALYSIS=" + ROOT.EL.Job.histogramStreamName)
162 else:
163 self.job.outputAdd(ROOT.EL.OutputStream('ANALYSIS'))
164
165 if self.args.run_perf_stat:
166 self.job.options().setBool(ROOT.EL.Job.optXAODPerfStats, 1)
167 if self.args.algorithm_timers:
168 self.job.options().setBool(ROOT.EL.Job.optAlgorithmTimer, 1)
169 if self.args.algorithm_memory_monitoring:
170 self.job.options().setBool(ROOT.EL.Job.optAlgorithmMemoryMonitor, 1)
171
172 driver = ROOT.EL.DirectDriver() if self.args.direct_driver else ROOT.EL.ExecDriver()
173 self.driverSubmit(driver)
174
175 if self.args.dump_full_config:
176 self._dumpFullConfig()
177 exitCode = self.getExitCode()
178
179 if self.args.work_dir is None:
180 self.moveOutputFiles()
181
182 sys.exit(exitCode)
virtual void lock()=0
Interface to allow an object to lock itself when made const in SG.
int run(int argc, char *argv[])