ATLAS Offline Software
Job.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 //
7 // includes
8 //
9 
10 #include <EventLoop/Job.h>
11 
12 #include <memory>
16 #include <EventLoop/MessageCheck.h>
17 #include <EventLoop/Algorithm.h>
21 #include <EventLoop/OutputStream.h>
22 #include <RootCoreUtils/Assert.h>
24 #include <RootCoreUtils/ThrowMsg.h>
27 #include <sstream>
28 
29 //
30 // method implementations
31 //
32 
33 namespace EL
34 {
35  const std::string Job::optRemoveSubmitDir = "nc_EventLoop_RemoveSubmitDir";
36  const std::string Job::optSubmitDirMode = "nc_EventLoop_SubmitDirMode";
37  const std::string Job::optUniqueDateFormat = "nc_EventLoop_UniqueDateFormat";
38  const std::string Job::optAlgorithmTimer = "nc_EventLoop_AlgorithmTimer";
39  const std::string Job::optAlgorithmMemoryMonitor = "nc_EventLoop_AlgorithmMemoryMonitor";
40  const std::string Job::optFactoryPreload = "nc_EventLoop_FactoryPreload";
41  const std::string Job::optMaxEvents = "nc_EventLoop_MaxEvents";
42  const std::string Job::optSkipEvents = "nc_EventLoop_SkipEvents";
43  const std::string Job::optWorkerConfigFile = "nc_EventLoop_WorkerConfigFile";
44  const std::string Job::optFilesPerWorker = "nc_EventLoop_FilesPerWorker";
45  const std::string Job::optEventsPerWorker = "nc_EventLoop_EventsPerWorker";
46  const std::string Job::optWorkerPostClosedOutputsExecutable = "nc_EventLoop_WorkerPostClosedOutputsExecutable";
47  const std::string Job::optSubmitFlags = "nc_EventLoop_SubmitFlags";
48  const std::string Job::optCondorConf = "nc_EventLoop_CondorConf";
49  const std::string Job::optCacheLearnEntries = "nc_EventLoop_CacheLearnEntries";
50  const std::string Job::optD3PDPerfStats = "nc_EventLoop_D3PDPerfStats";
51  const std::string Job::optD3PDReadStats = "nc_EventLoop_D3PDReadStats";
52  const std::string Job::optXAODPerfStats = "nc_EventLoop_XAODPerfStats";
53  const std::string Job::optXAODReadStats = "nc_EventLoop_XAODReadStats";
54  const std::string Job::optD3PDCacheMinEvent = "nc_EventLoop_D3PDCacheMinEvent";
55  const std::string Job::optD3PDCacheMinEventFraction = "nc_EventLoop_D3PDCacheMinEventFraction";
56  const std::string Job::optD3PDCacheMinByte = "nc_EventLoop_D3PDCacheMinByte";
57  const std::string Job::optD3PDCacheMinByteFraction = "nc_EventLoop_D3PDCacheMinByteFraction";
58  const std::string Job::optPerfTree = "nc_EventLoop_PerfTree";
59  const std::string Job::optXAODInput = "nc_EventLoop_XAODInput";
60  const std::string Job::optXaodAccessMode = "nc_EventLoop_XaodAccessMode";
61  const std::string Job::optXaodAccessMode_branch = "branch";
62  const std::string Job::optXaodAccessMode_class = "class";
63  const std::string Job::optXaodAccessMode_athena = "athena";
64  const std::string Job::optXAODSummaryReport = "nc_xaod_summary_report";
65  const std::string Job::optPrintPerFileStats = "nc_print_per_file_stats";
66  const std::string Job::optDisableMetrics = "nc_disable_metrics";
67  const std::string Job::optResetShell = "nc_reset_shell";
68  const std::string Job::optLocalNoUnsetup = "nc_local_no_unsetup";
69  const std::string Job::optNumParallelProcs = "nc_num_parallel_processes";
70  const std::string Job::optBackgroundProcess = "nc_background_process";
71  const std::string Job::optOutputSampleName = "nc_outputSampleName";
72  const std::string Job::optGridDestSE = "nc_destSE";
73  const std::string Job::optGridSite = "nc_site";
74  const std::string Job::optGridExcludedSite = "nc_excludedSite";
75  const std::string Job::optGridNGBPerJob = "nc_nGBPerJob";
76  const std::string Job::optGridMemory = "nc_memory";
77  const std::string Job::optGridMaxCpuCount = "nc_maxCpuCount";
78  const std::string Job::optGridNFiles = "nc_nFiles";
79  const std::string Job::optGridNFilesPerJob = "nc_nFilesPerJob";
80  const std::string Job::optGridNJobs = "nc_nJobs";
81  const std::string Job::optGridMaxFileSize = "nc_maxFileSize";
82  const std::string Job::optGridMaxNFilesPerJob = "nc_maxNFilesPerJob";
83  const std::string Job::optGridNEventsPerJob = "nc_nEventsPerJob";
84  const std::string Job::optGridExpress = "nc_express";
85  const std::string Job::optGridNoSubmit = "nc_noSubmit";
86  const std::string Job::optGridMergeOutput = "nc_mergeOutput";
87  const std::string Job::optGridAddNthFieldOfInDSToLFN = "nc_addNthFieldOfInDSToLFN";
88  const std::string Job::optGridWorkingGroup = "nc_workingGroup";
89  const std::string Job::optGridPrunShipAdditionalFilesOrDirs = "nc_prunShipAdditionalFilesOrDirs";
90  const std::string Job::optGridShowCmd = "nc_showCmd";
91  const std::string Job::optGridCpuTimePerEvent = "nc_cpuTimePerEvent";
92  const std::string Job::optGridMaxWalltime = "nc_maxWalltime";
93  const std::string Job::optGridAvoidVP = "nc_avoidVP";
94  const std::string Job::optGridReporting = "nc_gridReporting";
95  const std::string Job::optBatchSharedFileSystem = "nc_sharedFileSystem";
96  const std::string Job::optBatchSlurmExtraConfigLines = "nc_SlurmExtraConfig";
97  const std::string Job::optBatchSlurmWrapperExec = "nc_SlurmWrapperExec";
98  const std::string Job::optBatchSetupCommand = "nc_BatchSetupCommand";
99  const std::string Job::optDockerImage = "nc_DockerImage";
100  const std::string Job::optDockerOptions = "nc_DockerOptions";
101  const std::string Job::optBatchConfigFile = "nc_BatchConfigFile";
102  const std::string Job::optBatchSetupFile = "nc_BatchSetupFile";
103  const std::string Job::optTmpDir = "nc_tmpDir";
104  const std::string Job::optRootVer = "nc_rootVer";
105  const std::string Job::optCmtConfig = "nc_cmtConfig";
106  const std::string Job::optGridDisableAutoRetry = "nc_disableAutoRetry";
107  const std::string Job::optOfficial = "nc_official";
108  const std::string Job::optVoms = "nc_voms";
109 
113  const std::string Job::optCacheSize = "nc_cache_size";
114 
115  const std::string Job::optRetries = SH::MetaNames::openRetries();
117 
118  const std::string Job::optUserFiles = "nc_EventLoop_UserFiles";
119 
120  const std::string Job::optMemResidentPerEventIncreaseLimit =
121  "nc_resMemPerEventIncrease";
122  const std::string Job::optMemVirtualPerEventIncreaseLimit =
123  "nc_virtMemPerEventIncrease";
124  const std::string Job::optMemResidentIncreaseLimit = "nc_resMemAbsIncrease";
125  const std::string Job::optMemVirtualIncreaseLimit = "nc_virtMemAbsIncrease";
126  const std::string Job::optMemFailOnLeak = "nc_failOnMemLeak";
127 
128 
129  const std::string Job::histogramStreamName = "HISTOGRAM";
130 
131 
132  void swap (Job& a, Job& b)
133  {
134  swap (a.m_sampleHandler, b.m_sampleHandler);
135  a.m_jobConfig.swap (b.m_jobConfig);
136  swap (a.m_output, b.m_output);
137  }
138 
139 
140 
141  void Job ::
142  testInvariant () const
143  {
144  RCU_INVARIANT (this);
145  }
146 
147 
148 
150  Job ()
151  {
153 
154  RCU_NEW_INVARIANT (this);
155  }
156 
157 
158 
160  Job (const Job& that)
161  : m_sampleHandler ((RCU_READ_INVARIANT (&that),
162  that.m_sampleHandler)),
163  m_output (that.m_output),
164  m_options (that.m_options),
165  m_jobConfig (that.m_jobConfig)
166  {
167  RCU_NEW_INVARIANT (this);
168  }
169 
170 
171 
173  ~Job ()
174  {
175  RCU_DESTROY_INVARIANT (this);
176  }
177 
178 
179 
181  operator = (const Job& that)
182  {
183  // no invariant used
184  Job tmp (that);
185  swap (*this, tmp);
186  return *this;
187  }
188 
189 
190 
192  sampleHandler () const
193  {
194  RCU_READ_INVARIANT (this);
195  return m_sampleHandler;
196  }
197 
198 
199 
200  void Job ::
201  sampleHandler (const SH::SampleHandler& val_sampleHandler)
202  {
203  RCU_CHANGE_INVARIANT (this);
204  m_sampleHandler = val_sampleHandler;
205  }
206 
207 
208 
209  void Job ::
210  algsAdd (std::unique_ptr<IAlgorithmWrapper> val_algorithm)
211  {
212  using namespace msgEventLoop;
213 
214  RCU_CHANGE_INVARIANT (this);
215  RCU_REQUIRE_SOFT (val_algorithm != nullptr);
216 
217  ANA_CHECK_THROW (m_jobConfig.addAlgorithm (std::move (val_algorithm)));
218  }
219 
220 
221 
222  void Job ::
223  algsAdd (std::unique_ptr<Algorithm> val_algorithm)
224  {
225  using namespace msgEventLoop;
226 
227  RCU_CHANGE_INVARIANT (this);
228  RCU_REQUIRE_SOFT (val_algorithm != nullptr);
229 
230 
231  std::string myname = val_algorithm->GetName();
232  if (myname.empty() || algsHas (myname))
233  {
234  if (myname.empty())
235  myname = "UnnamedAlgorithm";
236  bool unique = false;
237  for (unsigned iter = 1; !unique; ++ iter)
238  {
239  std::ostringstream str;
240  str << myname << iter;
241  if (!algsHas (str.str()))
242  {
243  myname = str.str();
244  unique = true;
245  }
246  }
247  if (strlen (val_algorithm->GetName()) > 0)
248  ANA_MSG_WARNING ("renaming algorithm " << val_algorithm->GetName() << " to " << myname << " to make the name unique");
249  val_algorithm->SetName (myname.c_str());
250  if (val_algorithm->GetName() != myname)
251  {
252  std::ostringstream message;
253  message << "failed to rename algorithm " << val_algorithm->GetName() << " to " << myname;
254  RCU_THROW_MSG (message.str());
255  }
256  }
257 
258  val_algorithm->sysSetupJob (*this);
259  algsAdd (std::make_unique<AlgorithmWrapper> (std::move (val_algorithm)));
260  }
261 
262 
263 
264  void Job ::
265  algsAdd (Algorithm *alg_swallow)
266  {
267  algsAdd (std::unique_ptr<Algorithm> (alg_swallow));
268  }
269 
270 
271 
272  void Job ::
274  {
275  // no invariant used
276  if (config.useXAODs())
277  useXAOD ();
278  algsAdd (std::make_unique<AnaAlgorithmWrapper> (config));
279  }
280 
281 
282 
283  void Job ::
285  {
286  // no invariant used
287  algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (config));
288  }
289 
290 
291 
292  void Job ::
294  {
295  // no invariant used
296  algsAdd (std::make_unique<AsgServiceWrapper> (config));
297  }
298 
299 
300 
301  void Job ::
303  {
304  // no invariant used
305  useXAOD ();
306  if (config.componentType() == "AnaAlgorithm")
307  algsAdd (std::make_unique<AnaAlgorithmWrapper> (AnaAlgorithmConfig (config)));
308  else if (config.componentType() == "AnaReentrantAlgorithm")
309  algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (AnaReentrantAlgorithmConfig (config)));
310  else if (config.componentType() == "AsgTool")
311  algsAdd (std::make_unique<AsgToolWrapper> (asg::AsgToolConfig (config)));
312  else if (config.componentType() == "AsgService")
313  algsAdd (std::make_unique<AsgServiceWrapper> (asg::AsgServiceConfig (config)));
314  else
315  RCU_THROW_MSG ("unknown component type: \"" + config.componentType() + "\"");
316  }
317 
318 
319 
320  void Job ::
321  algsAddClone (const Algorithm& alg)
322  {
323  // no invariant used
324  algsAdd (dynamic_cast<Algorithm*>(alg.Clone()));
325  }
326 
327 
328 
329  bool Job ::
330  algsHas (const std::string& name) const
331  {
332  RCU_READ_INVARIANT (this);
333  return m_jobConfig.getAlgorithm (name) != nullptr;
334  }
335 
336 
337 
339  outputBegin ()
340  {
341  RCU_READ_INVARIANT (this);
342  return ( m_output.size() ? &m_output[0] : nullptr );
343  }
344 
345 
346 
348  outputBegin () const
349  {
350  RCU_READ_INVARIANT (this);
351  return ( m_output.size() ? &m_output[0] : nullptr );
352  }
353 
354 
355 
357  outputEnd ()
358  {
359  RCU_READ_INVARIANT (this);
360  return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
361  }
362 
363 
364 
366  outputEnd () const
367  {
368  RCU_READ_INVARIANT (this);
369  return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
370  }
371 
372 
373 
374  void Job ::
375  outputAdd (const OutputStream& val_output)
376  {
377  RCU_CHANGE_INVARIANT (this);
378  RCU_REQUIRE2_SOFT (!outputHas (val_output.label()), ("trying to create two output streams with the label " + val_output.label() + "\nplease make sure that every output stream has a unique label").c_str());
379  m_output.push_back (val_output);
380  }
381 
382 
383 
384  bool Job ::
385  outputHas (const std::string& name) const
386  {
387  RCU_CHANGE_INVARIANT (this);
388  for (outputIter iter = outputBegin(),
389  end = outputEnd(); iter != end; ++ iter)
390  {
391  if (iter->label() == name)
392  return true;
393  }
394  return false;
395  }
396 
397 
398 
399  void Job ::
400  useXAOD ()
401  {
402  RCU_CHANGE_INVARIANT (this);
403 
404  options()->setBool (Job::optXAODInput, true);
405  }
406 
407 
408 
410  options ()
411  {
412  RCU_READ_INVARIANT (this);
413  return &m_options;
414  }
415 
416 
417 
419  options () const
420  {
421  RCU_READ_INVARIANT (this);
422  return &m_options;
423  }
424 
425 
426 
428  jobConfig () const noexcept
429  {
430  RCU_READ_INVARIANT (this);
431  return m_jobConfig;
432  }
433 }
EL::Job::optFilesPerWorker
static const std::string optFilesPerWorker
description: the name of the option for selecting the number of files per batch job.
Definition: Job.h:256
EL::Job::optCondorConf
static const std::string optCondorConf
description: the name of the option for supplying extra parameters for condor systems
Definition: Job.h:299
EL::Job::optMaxEvents
static const std::string optMaxEvents
description: the name of the option used for setting the maximum number of events to process per samp...
Definition: Job.h:222
EL::Job::optPerfTree
static const std::string optPerfTree
description: the option to turn on the performance tree in PROOF.
Definition: Job.h:385
EL::Job::optGridAddNthFieldOfInDSToLFN
static const std::string optGridAddNthFieldOfInDSToLFN
Definition: Job.h:475
EL::Job::jobConfig
const JobConfig & jobConfig() const noexcept
the JobConfig object we are wrapping
Definition: Job.cxx:428
EL::Job::options
SH::MetaObject * options()
description: the list of options to the job guarantee: no-fail postcondition: result !...
Definition: Job.cxx:410
EL::JobConfig::getAlgorithm
const IAlgorithmWrapper * getAlgorithm(std::string_view name) const noexcept
get the algorithm with the given name, or nullptr if there is no algorithm with that name
EL::Job::optGridExcludedSite
static const std::string optGridExcludedSite
Definition: Job.h:462
SGout2dot.alg
alg
Definition: SGout2dot.py:243
EL::Job::optBatchSharedFileSystem
static const std::string optBatchSharedFileSystem
description: batch-specific options rationale: these options are for configuring batch drivers
Definition: Job.h:513
EL::Job::Job
Job()
effects: standard default constructor guarantee: strong failures: low level errors I
Definition: Job.cxx:150
EL::Job::optXaodAccessMode
static const std::string optXaodAccessMode
description: the option to select the access mode for xAODs.
Definition: Job.h:397
EL::Job::swap
friend void swap(Job &a, Job &b)
effects: standard swap guarantee: no-fail
Definition: Job.cxx:132
EL::Job::optD3PDReadStats
static const std::string optD3PDReadStats
description: the name of the D3PDPerfStats object produced as I gather it, as well as the name of the...
Definition: Job.h:343
SH::MetaObject
A class that manages meta-data to be associated with an object.
Definition: MetaObject.h:56
EL::Job::optDockerImage
static const std::string optDockerImage
this is the name of the docker image, when using docker with a supported batch driver
Definition: Job.h:525
CheckRootVersion.h
EL::Job::optPrintPerFileStats
static const std::string optPrintPerFileStats
description: the option to turn on printing of i/o statistics at the end of each file rationale: whil...
Definition: Job.h:416
EL::OutputStream
Definition: OutputStream.h:34
EL::Job::optGridNEventsPerJob
static const std::string optGridNEventsPerJob
Definition: Job.h:471
EL::Job::algsHas
bool algsHas(const std::string &name) const
returns: whether we have the algorithm with the given name guarantee: no-fail
Definition: Job.cxx:330
EL::Job::optRemoveSubmitDir
static const std::string optRemoveSubmitDir
description: the name of the option for overwriting the submission directory.
Definition: Job.h:189
Job.h
EL::Job::m_jobConfig
EL::JobConfig m_jobConfig
the JobConfig object we use
Definition: Job.h:622
EL::Job::optD3PDCacheMinEventFraction
static const std::string optD3PDCacheMinEventFraction
Definition: Job.h:374
PythonConfigBase.h
EL::Job::optGridMaxNFilesPerJob
static const std::string optGridMaxNFilesPerJob
Definition: Job.h:470
EL::Job::~Job
~Job()
effects: standard destructor guarantee: no-fail
Definition: Job.cxx:173
OutputStream.h
EL::Job::optMemResidentPerEventIncreaseLimit
static const std::string optMemResidentPerEventIncreaseLimit
The minimal per-event resident memory increase for triggering an error.
Definition: Job.h:551
EL::OutputStream::label
const std::string & label() const
description: the label for this output dataset.
EL::swap
void swap(Job &a, Job &b)
effects: standard swap guarantee: no-fail
Definition: Job.cxx:132
EL::Job::optXaodAccessMode_class
static const std::string optXaodAccessMode_class
Definition: Job.h:399
EL::Job::optUserFiles
static const std::string optUserFiles
a list of files that need to be available within the worker job
Definition: Job.h:506
EL::Job::optFactoryPreload
static const std::string optFactoryPreload
a boolean flag for whether to perform a component factory preload
Definition: Job.h:214
EL::AnaAlgorithmConfig
an object that can create a AnaAlgorithm
Definition: AnaAlgorithmConfig.h:29
Assert.h
MetaNames.h
EL::Job::m_output
std::vector< EL::OutputStream > m_output
Definition: Job.h:616
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
MessageCheck.h
SH::MetaObject::setBool
void setBool(const std::string &name, bool value)
set the meta-data boolean with the given name
EL::Job::optGridMemory
static const std::string optGridMemory
Definition: Job.h:464
EL::Job::optDisableMetrics
static const std::string optDisableMetrics
description: the option to turn off collection of performance data
Definition: Job.h:421
EL::Job::optGridNFiles
static const std::string optGridNFiles
Definition: Job.h:466
ReweightUtils.message
message
Definition: ReweightUtils.py:15
EL::Job::optD3PDCacheMinByteFraction
static const std::string optD3PDCacheMinByteFraction
Definition: Job.h:376
EL::Job::optXAODSummaryReport
static const std::string optXAODSummaryReport
the option to turn on/off the xAOD summary reporting at the end of the job
Definition: Job.h:406
EL::Job::optGridMaxFileSize
static const std::string optGridMaxFileSize
Definition: Job.h:469
EL::Job::optXAODInput
static const std::string optXAODInput
the option to select whether our input is xAODs
Definition: Job.h:390
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
EL::Job::m_options
SH::MetaObject m_options
Definition: Job.h:618
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
EL::Job::m_sampleHandler
SH::SampleHandler m_sampleHandler
description: members directly corresponding to accessors
Definition: Job.h:614
EL::Job::algsAddClone
void algsAddClone(const Algorithm &alg)
add a clone of the given algorithm
Definition: Job.cxx:321
ANA_CHECK_THROW
#define ANA_CHECK_THROW(EXP)
check whether the given expression was successful, throwing an exception on failure
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:339
AsgToolWrapper.h
EL::Job::optBatchSetupCommand
static const std::string optBatchSetupCommand
This overrides the asetup command if you need to use a custom one.
Definition: Job.h:521
AlgorithmWrapper.h
EL::Job::optRetriesWait
static const std::string optRetriesWait
Definition: Job.h:500
EL::Job::optGridShowCmd
static const std::string optGridShowCmd
Definition: Job.h:477
EL::Job::optGridDisableAutoRetry
static const std::string optGridDisableAutoRetry
Definition: Job.h:489
asg::AsgToolConfig
an object that can create a AsgTool
Definition: AsgToolConfig.h:22
EL::Algorithm
Definition: Algorithm.h:22
AnaAlgorithmWrapper.h
RCU_REQUIRE_SOFT
#define RCU_REQUIRE_SOFT(x)
Definition: Assert.h:153
EL::Job::optGridNoSubmit
static const std::string optGridNoSubmit
Definition: Job.h:473
EL::Job::optGridDestSE
static const std::string optGridDestSE
description: grid-specific options rationale: these are named so as to correspond to prun equivalents...
Definition: Job.h:460
EL::Job::optGridSite
static const std::string optGridSite
Definition: Job.h:461
EL::PythonConfigBase
the base class for the python configuration of any asg::AsgComponent
Definition: PythonConfigBase.h:36
EL::Job::optCacheSize
static const std::string optCacheSize
description: this option allows to configure the TTreeCache size for this job.
Definition: Job.h:309
EL::Job::optWorkerConfigFile
static const std::string optWorkerConfigFile
a python configuration file that will be executed on the worker
Definition: Job.h:243
EL::Job::optResetShell
static const std::string optResetShell
description: the option to reset the shell on the worker nodes rationale: this is currently only used...
Definition: Job.h:428
EL::Job::optD3PDCacheMinByte
static const std::string optD3PDCacheMinByte
Definition: Job.h:375
Algorithm.h
EL::Job::optGridNFilesPerJob
static const std::string optGridNFilesPerJob
Definition: Job.h:467
EL::Job::optBatchSlurmWrapperExec
static const std::string optBatchSlurmWrapperExec
Append a command before the main executable is called This is useful is you want to execute the comma...
Definition: Job.h:519
EL::Job::optXAODPerfStats
static const std::string optXAODPerfStats
description: the name of the option for turning on XAODPerfStats.
Definition: Job.h:353
EL::Job::optGridPrunShipAdditionalFilesOrDirs
static const std::string optGridPrunShipAdditionalFilesOrDirs
Enables to ship additional files to the tarbal sent to the grid Should be a list of comma separated p...
Definition: Job.h:485
EL::Job::optWorkerPostClosedOutputsExecutable
static const std::string optWorkerPostClosedOutputsExecutable
Optionnal executable to be provided by the user that will be called, by the worker,...
Definition: Job.h:283
EL::Job::optGridNGBPerJob
static const std::string optGridNGBPerJob
Definition: Job.h:463
EL::Job::optRetries
static const std::string optRetries
these options are defined in SH::MetaNames
Definition: Job.h:499
AnaReentrantAlgorithmWrapper.h
ANA_MSG_WARNING
#define ANA_MSG_WARNING(xmsg)
Macro printing warning messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:292
EL::Job::outputAdd
void outputAdd(const OutputStream &val_output)
Definition: Job.cxx:375
SH::MetaNames::openRetriesWait
static const std::string & openRetriesWait()
the amount of time (in seconds) to wait when doing retries
Definition: MetaNames.cxx:40
EL::Job::optD3PDCacheMinEvent
static const std::string optD3PDCacheMinEvent
description: these options configure the D3PDReader TTreeCache settings.
Definition: Job.h:373
EL::Job::optGridWorkingGroup
static const std::string optGridWorkingGroup
Definition: Job.h:476
EL::Job::optGridExpress
static const std::string optGridExpress
Definition: Job.h:472
EL
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Definition: AlgorithmWorkerData.h:24
EL::Job::optNumParallelProcs
static const std::string optNumParallelProcs
the option to specify the number of parallel jobs in LocalDriver (0 = number of hardware cores) (defa...
Definition: Job.h:443
EL::Job::operator=
Job & operator=(const Job &that)
effects: standard assignment operator returns: *this guarantee: strong failures: out of memory II
Definition: Job.cxx:181
EL::Job::optVoms
static const std::string optVoms
Definition: Job.h:491
EL::Job::optCacheLearnEntries
static const std::string optCacheLearnEntries
description: this option allows to configure the number of tree entries used for learning cache behav...
Definition: Job.h:324
EL::Job::optMemFailOnLeak
static const std::string optMemFailOnLeak
Failure behaviour of the code when a "significant memory leak" is found.
Definition: Job.h:591
EL::Job::optSubmitFlags
static const std::string optSubmitFlags
description: the name of the option for supplying extra submit parameters to batch systems rationale:...
Definition: Job.h:293
EL::Job::outputHas
bool outputHas(const std::string &name) const
returns: whether we have an output with the given name guarantee: no-fail
Definition: Job.cxx:385
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
EL::Job::optD3PDPerfStats
static const std::string optD3PDPerfStats
description: the name of the option for turning on D3PDPerfStats.
Definition: Job.h:334
EL::Job::optDockerOptions
static const std::string optDockerOptions
any extra options we may want to pass to docker
Definition: Job.h:528
RCU_INVARIANT
#define RCU_INVARIANT(x)
Definition: Assert.h:201
EL::Job::optAlgorithmTimer
static const std::string optAlgorithmTimer
a boolean flag for whether to add a timer for the algorithms
Definition: Job.h:205
EL::Job::optBatchSlurmExtraConfigLines
static const std::string optBatchSlurmExtraConfigLines
The content of this string will be executed in the job script on the worker node before the main exec...
Definition: Job.h:516
EL::JobConfig::addAlgorithm
::StatusCode addAlgorithm(std::unique_ptr< IAlgorithmWrapper > &&val_algorithm)
add an algorithm
EL::Job::optOfficial
static const std::string optOfficial
Definition: Job.h:490
EL::Job::optMemResidentIncreaseLimit
static const std::string optMemResidentIncreaseLimit
The minimal resident memory increase necessary to trigger an error.
Definition: Job.h:569
EL::Job::optGridMergeOutput
static const std::string optGridMergeOutput
Definition: Job.h:474
EL::Job::optBackgroundProcess
static const std::string optBackgroundProcess
the option to do processing in a background process in PROOF
Definition: Job.h:448
EL::Job::histogramStreamName
static const std::string histogramStreamName
the name of the histogram output stream
Definition: Job.h:602
SH::MetaNames::openRetries
static const std::string & openRetries()
the number of retries for opening a file
Definition: MetaNames.cxx:23
EL::Job::optAlgorithmMemoryMonitor
static const std::string optAlgorithmMemoryMonitor
a boolean flag for whether to add a memory monitor for the algorithms
Definition: Job.h:210
EL::Job::optBatchConfigFile
static const std::string optBatchConfigFile
the job submission configuration file (used by some drivers that need more complex configuration)
Definition: Job.h:532
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MetaFields.h
ThrowMsg.h
EL::JobConfig
the job configuration that is independent of driver and dataset
Definition: JobConfig.h:39
EL::Job::optXaodAccessMode_branch
static const std::string optXaodAccessMode_branch
Definition: Job.h:398
asg::AsgServiceConfig
an object that can create a AsgService
Definition: AsgServiceConfig.h:25
EL::Job::optCmtConfig
static const std::string optCmtConfig
Definition: Job.h:488
EL::Job::algsAdd
void algsAdd(std::unique_ptr< IAlgorithmWrapper > val_algorithm)
description: the list of algorithms used guarantee: no-fail / strong failures: out of memory II invar...
Definition: Job.cxx:210
EL::Job::optTmpDir
static const std::string optTmpDir
Definition: Job.h:486
EL::Job::optGridMaxWalltime
static const std::string optGridMaxWalltime
Definition: Job.h:479
RCU_REQUIRE2_SOFT
#define RCU_REQUIRE2_SOFT(x, y)
Definition: Assert.h:155
RCU::check_root_version
void check_root_version()
effects: check whether we are using a consistent root version guarantee: strong failures: version mis...
Definition: CheckRootVersion.cxx:31
EL::Job::outputBegin
outputMIter outputBegin()
Definition: Job.cxx:339
a
TList * a
Definition: liststreamerinfos.cxx:10
RCU_DESTROY_INVARIANT
#define RCU_DESTROY_INVARIANT(x)
Definition: Assert.h:235
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
EL::Job::optXaodAccessMode_athena
static const std::string optXaodAccessMode_athena
Definition: Job.h:400
EL::Job::outputEnd
outputMIter outputEnd()
Definition: Job.cxx:357
EL::Job::testInvariant
void testInvariant() const
effects: test the invariant of this object guarantee: no-fail
Definition: Job.cxx:142
EL::Job::useXAOD
void useXAOD()
effects: register this job to use XAODs guarantee: strong failures: out of memory II failures: TEvent...
Definition: Job.cxx:400
EL::Job::sampleHandler
const SH::SampleHandler & sampleHandler() const
description: the sample handler used guarantee: no-fail / strong failures: out of memory II
Definition: Job.cxx:192
EL::Job::optGridCpuTimePerEvent
static const std::string optGridCpuTimePerEvent
Definition: Job.h:478
RCU_CHANGE_INVARIANT
#define RCU_CHANGE_INVARIANT(x)
Definition: Assert.h:231
EL::Job::optGridAvoidVP
static const std::string optGridAvoidVP
Definition: Job.h:480
EL::Job::optRootVer
static const std::string optRootVer
Definition: Job.h:487
EL::Job::optOutputSampleName
static const std::string optOutputSampleName
the output sample name
Definition: Job.h:453
EL::Job::optGridNJobs
static const std::string optGridNJobs
Definition: Job.h:468
SH::SampleHandler
A class that manages a list of Sample objects.
Definition: SampleHandler.h:60
str
Definition: BTagTrackIpAccessor.cxx:11
EL::Job::optSubmitDirMode
static const std::string optSubmitDirMode
the submit-dir mode (allowed values: "no-clobber", "overwrite", "unique", "unique-link")
Definition: Job.h:195
EL::Job::optGridMaxCpuCount
static const std::string optGridMaxCpuCount
Definition: Job.h:465
RCU_THROW_MSG
#define RCU_THROW_MSG(message)
Definition: PrintMsg.h:58
EL::Job::optSkipEvents
static const std::string optSkipEvents
description: the name of the option used for skipping a certain number of events in the beginning rat...
Definition: Job.h:230
EL::Job
Definition: Job.h:51
EL::Job::optMemVirtualPerEventIncreaseLimit
static const std::string optMemVirtualPerEventIncreaseLimit
The minimal per-event virtual memory increase for triggering an error.
Definition: Job.h:561
EL::AnaReentrantAlgorithmConfig
an object that can create a AnaReentrantAlgorithm
Definition: AnaReentrantAlgorithmConfig.h:29
EL::Job::optUniqueDateFormat
static const std::string optUniqueDateFormat
the date-format to use when generating unique submission directory names
Definition: Job.h:200
RCU_READ_INVARIANT
#define RCU_READ_INVARIANT(x)
Definition: Assert.h:229
EL::Job::optBatchSetupFile
static const std::string optBatchSetupFile
the job submission setup file.
Definition: Job.h:537
EL::Job::optMemVirtualIncreaseLimit
static const std::string optMemVirtualIncreaseLimit
The minimal virtual memory increase necessary to trigger an error.
Definition: Job.h:577
EL::Job::optXAODReadStats
static const std::string optXAODReadStats
description: the name of the XAODPerfStats object produced as I gather it, as well as the name of the...
Definition: Job.h:362
EL::Job::optEventsPerWorker
static const std::string optEventsPerWorker
description: the name of the option for selecting the number of events per batch job.
Definition: Job.h:271
EL::Job::optGridReporting
static const std::string optGridReporting
whether to use grid reporting even when not running on the grid
Definition: Job.h:494
AsgServiceWrapper.h
RCU_NEW_INVARIANT
#define RCU_NEW_INVARIANT(x)
Definition: Assert.h:233
EL::Job::optLocalNoUnsetup
static const std::string optLocalNoUnsetup
the option not to unsetup the environment in LocalDriver
Definition: Job.h:433