ATLAS Offline Software
Loading...
Searching...
No Matches
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>
17#include <EventLoop/Algorithm.h>
27#include <sstream>
28
29//
30// method implementations
31//
32
33namespace 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::optStreamAliases = "nc_EventLoop_StreamAliases";
42 const std::string Job::optMaxEvents = "nc_EventLoop_MaxEvents";
43 const std::string Job::optSkipEvents = "nc_EventLoop_SkipEvents";
44 const std::string Job::optWorkerConfigFile = "nc_EventLoop_WorkerConfigFile";
45 const std::string Job::optFilesPerWorker = "nc_EventLoop_FilesPerWorker";
46 const std::string Job::optEventsPerWorker = "nc_EventLoop_EventsPerWorker";
47 const std::string Job::optWorkerPostClosedOutputsExecutable = "nc_EventLoop_WorkerPostClosedOutputsExecutable";
48 const std::string Job::optSubmitFlags = "nc_EventLoop_SubmitFlags";
49 const std::string Job::optCondorConf = "nc_EventLoop_CondorConf";
50 const std::string Job::optCacheLearnEntries = "nc_EventLoop_CacheLearnEntries";
51 const std::string Job::optD3PDPerfStats = "nc_EventLoop_D3PDPerfStats";
52 const std::string Job::optD3PDReadStats = "nc_EventLoop_D3PDReadStats";
53 const std::string Job::optXAODPerfStats = "nc_EventLoop_XAODPerfStats";
54 const std::string Job::optXAODReadStats = "nc_EventLoop_XAODReadStats";
55 const std::string Job::optD3PDCacheMinEvent = "nc_EventLoop_D3PDCacheMinEvent";
56 const std::string Job::optD3PDCacheMinEventFraction = "nc_EventLoop_D3PDCacheMinEventFraction";
57 const std::string Job::optD3PDCacheMinByte = "nc_EventLoop_D3PDCacheMinByte";
58 const std::string Job::optD3PDCacheMinByteFraction = "nc_EventLoop_D3PDCacheMinByteFraction";
59 const std::string Job::optPerfTree = "nc_EventLoop_PerfTree";
60 const std::string Job::optXAODInput = "nc_EventLoop_XAODInput";
61 const std::string Job::optXAODSummaryReport = "nc_xaod_summary_report";
62 const std::string Job::optPrintPerFileStats = "nc_print_per_file_stats";
63 const std::string Job::optDisableMetrics = "nc_disable_metrics";
64 const std::string Job::optResetShell = "nc_reset_shell";
65 const std::string Job::optLocalNoUnsetup = "nc_local_no_unsetup";
66 const std::string Job::optNumParallelProcs = "nc_num_parallel_processes";
67 const std::string Job::optBackgroundProcess = "nc_background_process";
68 const std::string Job::optOutputSampleName = "nc_outputSampleName";
69 const std::string Job::optGridDestSE = "nc_destSE";
70 const std::string Job::optGridSite = "nc_site";
71 const std::string Job::optGridExcludedSite = "nc_excludedSite";
72 const std::string Job::optGridNGBPerJob = "nc_nGBPerJob";
73 const std::string Job::optGridMemory = "nc_memory";
74 const std::string Job::optGridMaxCpuCount = "nc_maxCpuCount";
75 const std::string Job::optGridNFiles = "nc_nFiles";
76 const std::string Job::optGridNFilesPerJob = "nc_nFilesPerJob";
77 const std::string Job::optGridNJobs = "nc_nJobs";
78 const std::string Job::optGridMaxFileSize = "nc_maxFileSize";
79 const std::string Job::optGridMaxNFilesPerJob = "nc_maxNFilesPerJob";
80 const std::string Job::optGridNEventsPerJob = "nc_nEventsPerJob";
81 const std::string Job::optGridExpress = "nc_express";
82 const std::string Job::optGridNoSubmit = "nc_noSubmit";
83 const std::string Job::optGridMergeOutput = "nc_mergeOutput";
84 const std::string Job::optGridAddNthFieldOfInDSToLFN = "nc_addNthFieldOfInDSToLFN";
85 const std::string Job::optGridWorkingGroup = "nc_workingGroup";
86 const std::string Job::optGridPrunShipAdditionalFilesOrDirs = "nc_prunShipAdditionalFilesOrDirs";
87 const std::string Job::optGridPrunNRetrySubmitToGrid = "nc_prunNRetrySubmitToGrid";
88 const std::string Job::optGridShowCmd = "nc_showCmd";
89 const std::string Job::optGridCpuTimePerEvent = "nc_cpuTimePerEvent";
90 const std::string Job::optGridMaxWalltime = "nc_maxWalltime";
91 const std::string Job::optGridAvoidVP = "nc_avoidVP";
92 const std::string Job::optGridReporting = "nc_gridReporting";
93 const std::string Job::optBatchSharedFileSystem = "nc_sharedFileSystem";
94 const std::string Job::optBatchSlurmExtraConfigLines = "nc_SlurmExtraConfig";
95 const std::string Job::optBatchSlurmWrapperExec = "nc_SlurmWrapperExec";
96 const std::string Job::optBatchSetupCommand = "nc_BatchSetupCommand";
97 const std::string Job::optDockerImage = "nc_DockerImage";
98 const std::string Job::optDockerOptions = "nc_DockerOptions";
99 const std::string Job::optBatchConfigFile = "nc_BatchConfigFile";
100 const std::string Job::optBatchSetupFile = "nc_BatchSetupFile";
101 const std::string Job::optTmpDir = "nc_tmpDir";
102 const std::string Job::optRootVer = "nc_rootVer";
103 const std::string Job::optCmtConfig = "nc_cmtConfig";
104 const std::string Job::optGridDisableAutoRetry = "nc_disableAutoRetry";
105 const std::string Job::optOfficial = "nc_official";
106 const std::string Job::optVoms = "nc_voms";
107
111 const std::string Job::optCacheSize = "nc_cache_size";
112
113 const std::string Job::optRetries = SH::MetaNames::openRetries();
115
116 const std::string Job::optUserFiles = "nc_EventLoop_UserFiles";
117
119 "nc_resMemPerEventIncrease";
121 "nc_virtMemPerEventIncrease";
122 const std::string Job::optMemResidentIncreaseLimit = "nc_resMemAbsIncrease";
123 const std::string Job::optMemVirtualIncreaseLimit = "nc_virtMemAbsIncrease";
124 const std::string Job::optMemFailOnLeak = "nc_failOnMemLeak";
125
126
127 const std::string Job::histogramStreamName = "HISTOGRAM";
128
129
130 void swap (Job& a, Job& b)
131 {
132 swap (a.m_sampleHandler, b.m_sampleHandler);
133 a.m_jobConfig.swap (b.m_jobConfig);
134 swap (a.m_output, b.m_output);
135 }
136
137
138
139 void Job ::
140 testInvariant () const
141 {
142 RCU_INVARIANT (this);
143 }
144
145
146
147 Job ::
148 Job ()
149 {
151
152 RCU_NEW_INVARIANT (this);
153 }
154
155
156
157 Job ::
158 Job (const Job& that)
160 that.m_sampleHandler)),
161 m_output (that.m_output),
162 m_options (that.m_options),
164 {
165 RCU_NEW_INVARIANT (this);
166 }
167
168
169
170 Job ::
171 ~Job ()
172 {
174 }
175
176
177
178 Job& Job ::
179 operator = (const Job& that)
180 {
181 // no invariant used
182 Job tmp (that);
183 swap (*this, tmp);
184 return *this;
185 }
186
187
188
189 const SH::SampleHandler& Job ::
190 sampleHandler () const
191 {
192 RCU_READ_INVARIANT (this);
193 return m_sampleHandler;
194 }
195
196
197
198 void Job ::
199 sampleHandler (const SH::SampleHandler& val_sampleHandler)
200 {
202 m_sampleHandler = val_sampleHandler;
203 }
204
205
206
207 void Job ::
208 algsAdd (std::unique_ptr<IAlgorithmWrapper> val_algorithm)
209 {
210 using namespace msgEventLoop;
211
213 RCU_REQUIRE_SOFT (val_algorithm != nullptr);
214
215 ANA_CHECK_THROW (m_jobConfig.addAlgorithm (std::move (val_algorithm)));
216 }
217
218
219
220 void Job ::
221 algsAdd (std::unique_ptr<Algorithm> val_algorithm)
222 {
223 using namespace msgEventLoop;
224
226 RCU_REQUIRE_SOFT (val_algorithm != nullptr);
227
228
229 std::string myname = val_algorithm->GetName();
230 if (myname.empty() || algsHas (myname))
231 {
232 if (myname.empty())
233 myname = "UnnamedAlgorithm";
234 bool unique = false;
235 for (unsigned iter = 1; !unique; ++ iter)
236 {
237 std::ostringstream str;
238 str << myname << iter;
239 if (!algsHas (str.str()))
240 {
241 myname = str.str();
242 unique = true;
243 }
244 }
245 if (strlen (val_algorithm->GetName()) > 0)
246 ANA_MSG_WARNING ("renaming algorithm " << val_algorithm->GetName() << " to " << myname << " to make the name unique");
247 val_algorithm->SetName (myname.c_str());
248 if (val_algorithm->GetName() != myname)
249 {
250 std::ostringstream message;
251 message << "failed to rename algorithm " << val_algorithm->GetName() << " to " << myname;
252 RCU_THROW_MSG (message.str());
253 }
254 }
255
256 val_algorithm->sysSetupJob (*this);
257 algsAdd (std::make_unique<AlgorithmWrapper> (std::move (val_algorithm)));
258 }
259
260
261
262 void Job ::
263 algsAdd (Algorithm *alg_swallow)
264 {
265 algsAdd (std::unique_ptr<Algorithm> (alg_swallow));
266 }
267
268
269
270 void Job ::
271 algsAdd (const AnaAlgorithmConfig& config)
272 {
273 // no invariant used
274 if (config.useXAODs())
275 useXAOD ();
276 algsAdd (std::make_unique<AnaAlgorithmWrapper> (config));
277 }
278
279
280
281 void Job ::
282 algsAdd (const AnaReentrantAlgorithmConfig& config)
283 {
284 // no invariant used
285 algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (config));
286 }
287
288
289
290 void Job ::
291 algsAdd (const asg::AsgServiceConfig& config)
292 {
293 // no invariant used
294 algsAdd (std::make_unique<AsgServiceWrapper> (config));
295 }
296
297
298
299 void Job ::
300 algsAdd (const EL::PythonConfigBase& config)
301 {
302 // no invariant used
303 useXAOD ();
304 if (config.componentType() == "AnaAlgorithm")
305 algsAdd (std::make_unique<AnaAlgorithmWrapper> (AnaAlgorithmConfig (config)));
306 else if (config.componentType() == "AnaReentrantAlgorithm")
307 algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (AnaReentrantAlgorithmConfig (config)));
308 else if (config.componentType() == "AsgTool")
309 algsAdd (std::make_unique<AsgToolWrapper> (asg::AsgToolConfig (config)));
310 else if (config.componentType() == "AsgService")
311 algsAdd (std::make_unique<AsgServiceWrapper> (asg::AsgServiceConfig (config)));
312 else
313 RCU_THROW_MSG ("unknown component type: \"" + config.componentType() + "\"");
314 }
315
316
317
318 void Job ::
319 algsAddClone (const Algorithm& alg)
320 {
321 // no invariant used
322 algsAdd (dynamic_cast<Algorithm*>(alg.Clone()));
323 }
324
325
326
327 bool Job ::
328 algsHas (const std::string& name) const
329 {
330 RCU_READ_INVARIANT (this);
331 return m_jobConfig.getAlgorithm (name) != nullptr;
332 }
333
334
335
336 void Job ::
337 startNewAlgSequence ()
338 {
340 m_jobConfig.startNewAlgSequence ();
341 }
342
343
344
346 outputBegin ()
347 {
348 RCU_READ_INVARIANT (this);
349 return ( m_output.size() ? &m_output[0] : nullptr );
350 }
351
352
353
355 outputBegin () const
356 {
357 RCU_READ_INVARIANT (this);
358 return ( m_output.size() ? &m_output[0] : nullptr );
359 }
360
361
362
364 outputEnd ()
365 {
366 RCU_READ_INVARIANT (this);
367 return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
368 }
369
370
371
373 outputEnd () const
374 {
375 RCU_READ_INVARIANT (this);
376 return ( m_output.size() ? &m_output[m_output.size()] : nullptr );
377 }
378
379
380
381 void Job ::
382 outputAdd (const OutputStream& val_output)
383 {
385 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());
386 m_output.push_back (val_output);
387 }
388
389
390
391 bool Job ::
392 outputHas (const std::string& name) const
393 {
395 for (outputIter iter = outputBegin(),
396 end = outputEnd(); iter != end; ++ iter)
397 {
398 if (iter->label() == name)
399 return true;
400 }
401 return false;
402 }
403
404
405
406 void Job ::
407 useXAOD ()
408 {
410
411 options()->setBool (Job::optXAODInput, true);
412 }
413
414
415
417 options ()
418 {
419 RCU_READ_INVARIANT (this);
420 return &m_options;
421 }
422
423
424
425 const SH::MetaObject *Job ::
426 options () const
427 {
428 RCU_READ_INVARIANT (this);
429 return &m_options;
430 }
431
432
433
434 const JobConfig& Job ::
435 jobConfig () const noexcept
436 {
437 RCU_READ_INVARIANT (this);
438 return m_jobConfig;
439 }
440}
#define RCU_INVARIANT(x)
Definition Assert.h:201
#define RCU_DESTROY_INVARIANT(x)
Definition Assert.h:235
#define RCU_CHANGE_INVARIANT(x)
Definition Assert.h:231
#define RCU_REQUIRE2_SOFT(x, y)
Definition Assert.h:155
#define RCU_NEW_INVARIANT(x)
Definition Assert.h:233
#define RCU_REQUIRE_SOFT(x)
Definition Assert.h:153
#define RCU_READ_INVARIANT(x)
Definition Assert.h:229
#define ANA_MSG_WARNING(xmsg)
Macro printing warning messages.
#define ANA_CHECK_THROW(EXP)
check whether the given expression was successful, throwing an exception on failure
static Double_t a
#define RCU_THROW_MSG(message)
Definition PrintMsg.h:58
an object that can create a AnaAlgorithm
an object that can create a AnaReentrantAlgorithm
the job configuration that is independent of driver and dataset
Definition JobConfig.h:45
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:413
static const std::string optGridShowCmd
Definition Job.h:474
static const std::string optSubmitDirMode
the submit-dir mode (allowed values: "no-clobber", "overwrite", "unique", "unique-link")
Definition Job.h:200
static const std::string optBatchSharedFileSystem
description: batch-specific options rationale: these options are for configuring batch drivers
Definition Job.h:517
static const std::string optEventsPerWorker
description: the name of the option for selecting the number of events per batch job.
Definition Job.h:279
EL::JobConfig m_jobConfig
the JobConfig object we use
Definition Job.h:626
SH::MetaObject * options()
description: the list of options to the job guarantee: no-fail postcondition: result !...
Definition Job.cxx:417
static const std::string optMemFailOnLeak
Failure behaviour of the code when a "significant memory leak" is found.
Definition Job.h:595
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:230
static const std::string optGridPrunNRetrySubmitToGrid
Will retry N-times submission of job to the grid in case of failure to submit job Sometimes submittin...
Definition Job.h:488
static const std::string optGridReporting
whether to use grid reporting even when not running on the grid
Definition Job.h:498
static const std::string optCmtConfig
Definition Job.h:492
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:351
static const std::string optGridExcludedSite
Definition Job.h:459
static const std::string optDockerOptions
any extra options we may want to pass to docker
Definition Job.h:532
static const std::string optGridMergeOutput
Definition Job.h:471
static const std::string optAlgorithmTimer
a boolean flag for whether to add a timer for the algorithms
Definition Job.h:210
SH::MetaObject m_options
Definition Job.h:622
static const std::string optWorkerConfigFile
a python configuration file that will be executed on the worker
Definition Job.h:251
static const std::string optBatchSetupCommand
This overrides the asetup command if you need to use a custom one.
Definition Job.h:525
static const std::string optGridExpress
Definition Job.h:469
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:208
void useXAOD()
effects: register this job to use XAODs guarantee: strong failures: out of memory II failures: EventS...
Definition Job.cxx:407
static const std::string optMemResidentIncreaseLimit
The minimal resident memory increase necessary to trigger an error.
Definition Job.h:573
static const std::string optXAODPerfStats
description: the name of the option for turning on XAODPerfStats.
Definition Job.h:361
static const std::string optD3PDCacheMinEvent
description: these options configure the D3PDReader TTreeCache settings.
Definition Job.h:381
const OutputStream * outputIter
Definition Job.h:148
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:370
static const std::string optCondorConf
description: the name of the option for supplying extra parameters for condor systems
Definition Job.h:307
static const std::string optXAODSummaryReport
the option to turn on/off the xAOD summary reporting at the end of the job
Definition Job.h:403
static const std::string optGridMaxWalltime
Definition Job.h:476
static const std::string optBatchConfigFile
the job submission configuration file (used by some drivers that need more complex configuration)
Definition Job.h:536
static const std::string optGridNEventsPerJob
Definition Job.h:468
static const std::string optRetriesWait
Definition Job.h:504
static const std::string optCacheLearnEntries
description: this option allows to configure the number of tree entries used for learning cache behav...
Definition Job.h:332
OutputStream * outputMIter
description: the list of output datasets used guarantee: no-fail / strong failures(3): out of memory ...
Definition Job.h:147
static const std::string optCacheSize
description: this option allows to configure the TTreeCache size for this job.
Definition Job.h:317
SH::SampleHandler m_sampleHandler
description: members directly corresponding to accessors
Definition Job.h:618
static const std::string optGridCpuTimePerEvent
Definition Job.h:475
static const std::string optSubmitFlags
description: the name of the option for supplying extra submit parameters to batch systems rationale:...
Definition Job.h:301
static const std::string optAlgorithmMemoryMonitor
a boolean flag for whether to add a memory monitor for the algorithms
Definition Job.h:215
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:523
static const std::string optFilesPerWorker
description: the name of the option for selecting the number of files per batch job.
Definition Job.h:264
static const std::string optXAODInput
the option to select whether our input is xAODs
Definition Job.h:398
static const std::string optD3PDPerfStats
description: the name of the option for turning on D3PDPerfStats.
Definition Job.h:342
std::vector< EL::OutputStream > m_output
Definition Job.h:620
static const std::string optMemResidentPerEventIncreaseLimit
The minimal per-event resident memory increase for triggering an error.
Definition Job.h:555
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:440
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:425
bool algsHas(const std::string &name) const
returns: whether we have the algorithm with the given name guarantee: no-fail
Definition Job.cxx:328
static const std::string optGridWorkingGroup
Definition Job.h:473
outputMIter outputEnd()
Definition Job.cxx:364
static const std::string optD3PDCacheMinByteFraction
Definition Job.h:384
static const std::string optDockerImage
this is the name of the docker image, when using docker with a supported batch driver
Definition Job.h:529
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:482
static const std::string optMemVirtualIncreaseLimit
The minimal virtual memory increase necessary to trigger an error.
Definition Job.h:581
static const std::string optGridSite
Definition Job.h:458
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:520
static const std::string optD3PDCacheMinEventFraction
Definition Job.h:382
static const std::string optVoms
Definition Job.h:495
static const std::string optGridAvoidVP
Definition Job.h:477
static const std::string optMemVirtualPerEventIncreaseLimit
The minimal per-event virtual memory increase for triggering an error.
Definition Job.h:565
static const std::string optD3PDCacheMinByte
Definition Job.h:383
static const std::string optGridNFilesPerJob
Definition Job.h:464
static const std::string optWorkerPostClosedOutputsExecutable
Optionnal executable to be provided by the user that will be called, by the worker,...
Definition Job.h:291
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:238
static const std::string optTmpDir
Definition Job.h:490
Job()
effects: standard default constructor guarantee: strong failures: low level errors I
Definition Job.cxx:148
static const std::string optRetries
these options are defined in SH::MetaNames
Definition Job.h:503
static const std::string optGridMemory
Definition Job.h:461
static const std::string optUniqueDateFormat
the date-format to use when generating unique submission directory names
Definition Job.h:205
static const std::string optStreamAliases
an option for stream aliases
Definition Job.h:222
static const std::string optGridNJobs
Definition Job.h:465
static const std::string optGridDisableAutoRetry
Definition Job.h:493
static const std::string optGridNoSubmit
Definition Job.h:470
static const std::string optGridMaxFileSize
Definition Job.h:466
static const std::string optGridAddNthFieldOfInDSToLFN
Definition Job.h:472
static const std::string optBackgroundProcess
the option to do processing in a background process in PROOF
Definition Job.h:445
static const std::string optGridNFiles
Definition Job.h:463
static const std::string optDisableMetrics
description: the option to turn off collection of performance data
Definition Job.h:418
static const std::string optOfficial
Definition Job.h:494
static const std::string optGridMaxNFilesPerJob
Definition Job.h:467
static const std::string optLocalNoUnsetup
the option not to unsetup the environment in LocalDriver
Definition Job.h:430
static const std::string optFactoryPreload
a boolean flag for whether to perform a component factory preload
Definition Job.h:219
outputMIter outputBegin()
Definition Job.cxx:346
static const std::string histogramStreamName
the name of the histogram output stream
Definition Job.h:606
static const std::string optOutputSampleName
the output sample name
Definition Job.h:450
static const std::string optUserFiles
a list of files that need to be available within the worker job
Definition Job.h:510
static const std::string optGridNGBPerJob
Definition Job.h:460
static const std::string optBatchSetupFile
the job submission setup file.
Definition Job.h:541
static const std::string optPerfTree
description: the option to turn on the performance tree in PROOF.
Definition Job.h:393
bool outputHas(const std::string &name) const
returns: whether we have an output with the given name guarantee: no-fail
Definition Job.cxx:392
static const std::string optGridMaxCpuCount
Definition Job.h:462
static const std::string optRemoveSubmitDir
description: the name of the option for overwriting the submission directory.
Definition Job.h:194
static const std::string optGridDestSE
description: grid-specific options rationale: these are named so as to correspond to prun equivalents...
Definition Job.h:457
static const std::string optRootVer
Definition Job.h:491
const std::string & label() const
description: the label for this output dataset.
the base class for the python configuration of any asg::AsgComponent
A class that manages meta-data to be associated with an object.
Definition MetaObject.h:56
A class that manages a list of Sample objects.
an object that can create a AsgService
an object that can create a AsgTool
This module defines the arguments passed from the BATCH driver to the BATCH worker.
void swap(Job &a, Job &b)
effects: standard swap guarantee: no-fail
Definition Job.cxx:130
void check_root_version()
effects: check whether we are using a consistent root version guarantee: strong failures: version mis...
static const std::string & openRetries()
the number of retries for opening a file
Definition MetaNames.cxx:23
static const std::string & openRetriesWait()
the amount of time (in seconds) to wait when doing retries
Definition MetaNames.cxx:40