124 "nc_resMemPerEventIncrease";
126 "nc_virtMemPerEventIncrease";
137 swap (
a.m_sampleHandler, b.m_sampleHandler);
138 a.m_jobConfig.swap (b.m_jobConfig);
139 swap (
a.m_output, b.m_output);
145 testInvariant ()
const
163 Job (
const Job& that)
184 operator = (
const Job& that)
195 sampleHandler ()
const
213 algsAdd (std::unique_ptr<IAlgorithmWrapper> val_algorithm)
215 using namespace msgEventLoop;
226 algsAdd (std::unique_ptr<Algorithm> val_algorithm)
228 using namespace msgEventLoop;
234 std::string myname = val_algorithm->GetName();
235 if (myname.empty() ||
algsHas (myname))
238 myname =
"UnnamedAlgorithm";
240 for (
unsigned iter = 1; !unique; ++ iter)
242 std::ostringstream
str;
243 str << myname << iter;
250 if (strlen (val_algorithm->GetName()) > 0)
251 ANA_MSG_WARNING (
"renaming algorithm " << val_algorithm->GetName() <<
" to " << myname <<
" to make the name unique");
252 val_algorithm->SetName (myname.c_str());
253 if (val_algorithm->GetName() != myname)
255 std::ostringstream message;
256 message <<
"failed to rename algorithm " << val_algorithm->GetName() <<
" to " << myname;
261 val_algorithm->sysSetupJob (*
this);
262 algsAdd (std::make_unique<AlgorithmWrapper> (std::move (val_algorithm)));
270 algsAdd (std::unique_ptr<Algorithm> (alg_swallow));
290 algsAdd (std::make_unique<AnaReentrantAlgorithmWrapper> (
config));
309 if (
config.componentType() ==
"AnaAlgorithm")
311 else if (
config.componentType() ==
"AnaReentrantAlgorithm")
313 else if (
config.componentType() ==
"AsgTool")
315 else if (
config.componentType() ==
"AsgService")
333 algsHas (
const std::string& name)
const
381 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());
388 outputHas (
const std::string& name)
const
394 if (iter->label() == name)
431 jobConfig ()
const noexcept
#define RCU_DESTROY_INVARIANT(x)
#define RCU_CHANGE_INVARIANT(x)
#define RCU_REQUIRE2_SOFT(x, y)
#define RCU_NEW_INVARIANT(x)
#define RCU_REQUIRE_SOFT(x)
#define RCU_READ_INVARIANT(x)
#define RCU_THROW_MSG(message)
an object that can create a AnaAlgorithm
an object that can create a AnaReentrantAlgorithm
the job configuration that is independent of driver and dataset
static const std::string optPrintPerFileStats
description: the option to turn on printing of i/o statistics at the end of each file rationale: whil...
static const std::string optGridShowCmd
static const std::string optSubmitDirMode
the submit-dir mode (allowed values: "no-clobber", "overwrite", "unique", "unique-link")
static const std::string optBatchSharedFileSystem
description: batch-specific options rationale: these options are for configuring batch drivers
static const std::string optEventsPerWorker
description: the name of the option for selecting the number of events per batch job.
EL::JobConfig m_jobConfig
the JobConfig object we use
SH::MetaObject * options()
description: the list of options to the job guarantee: no-fail postcondition: result !...
static const std::string optMemFailOnLeak
Failure behaviour of the code when a "significant memory leak" is found.
static const std::string optMaxEvents
description: the name of the option used for setting the maximum number of events to process per samp...
static const std::string optGridPrunNRetrySubmitToGrid
Will retry N-times submission of job to the grid in case of failure to submit job Sometimes submittin...
static const std::string optGridReporting
whether to use grid reporting even when not running on the grid
static const std::string optCmtConfig
static const std::string optD3PDReadStats
description: the name of the D3PDPerfStats object produced as I gather it, as well as the name of the...
static const std::string optGridExcludedSite
static const std::string optDockerOptions
any extra options we may want to pass to docker
static const std::string optGridMergeOutput
static const std::string optAlgorithmTimer
a boolean flag for whether to add a timer for the algorithms
static const std::string optWorkerConfigFile
a python configuration file that will be executed on the worker
static const std::string optBatchSetupCommand
This overrides the asetup command if you need to use a custom one.
static const std::string optGridExpress
void algsAdd(std::unique_ptr< IAlgorithmWrapper > val_algorithm)
description: the list of algorithms used guarantee: no-fail / strong failures: out of memory II invar...
void useXAOD()
effects: register this job to use XAODs guarantee: strong failures: out of memory II failures: TEvent...
static const std::string optMemResidentIncreaseLimit
The minimal resident memory increase necessary to trigger an error.
static const std::string optXAODPerfStats
description: the name of the option for turning on XAODPerfStats.
static const std::string optD3PDCacheMinEvent
description: these options configure the D3PDReader TTreeCache settings.
const OutputStream * outputIter
static const std::string optXAODReadStats
description: the name of the XAODPerfStats object produced as I gather it, as well as the name of the...
static const std::string optCondorConf
description: the name of the option for supplying extra parameters for condor systems
static const std::string optXaodAccessMode_athena
static const std::string optXAODSummaryReport
the option to turn on/off the xAOD summary reporting at the end of the job
static const std::string optGridMaxWalltime
static const std::string optBatchConfigFile
the job submission configuration file (used by some drivers that need more complex configuration)
static const std::string optGridNEventsPerJob
static const std::string optXaodAccessMode
description: the option to select the access mode for xAODs.
static const std::string optRetriesWait
static const std::string optCacheLearnEntries
description: this option allows to configure the number of tree entries used for learning cache behav...
OutputStream * outputMIter
description: the list of output datasets used guarantee: no-fail / strong failures(3): out of memory ...
static const std::string optCacheSize
description: this option allows to configure the TTreeCache size for this job.
SH::SampleHandler m_sampleHandler
description: members directly corresponding to accessors
static const std::string optGridCpuTimePerEvent
static const std::string optSubmitFlags
description: the name of the option for supplying extra submit parameters to batch systems rationale:...
static const std::string optAlgorithmMemoryMonitor
a boolean flag for whether to add a memory monitor for the algorithms
static const std::string optBatchSlurmWrapperExec
Append a command before the main executable is called This is useful is you want to execute the comma...
static const std::string optFilesPerWorker
description: the name of the option for selecting the number of files per batch job.
static const std::string optXAODInput
the option to select whether our input is xAODs
static const std::string optD3PDPerfStats
description: the name of the option for turning on D3PDPerfStats.
std::vector< EL::OutputStream > m_output
static const std::string optMemResidentPerEventIncreaseLimit
The minimal per-event resident memory increase for triggering an error.
static const std::string optNumParallelProcs
the option to specify the number of parallel jobs in LocalDriver (0 = number of hardware cores) (defa...
static const std::string optResetShell
description: the option to reset the shell on the worker nodes rationale: this is currently only used...
bool algsHas(const std::string &name) const
returns: whether we have the algorithm with the given name guarantee: no-fail
static const std::string optGridWorkingGroup
static const std::string optD3PDCacheMinByteFraction
static const std::string optDockerImage
this is the name of the docker image, when using docker with a supported batch driver
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...
static const std::string optMemVirtualIncreaseLimit
The minimal virtual memory increase necessary to trigger an error.
static const std::string optGridSite
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...
static const std::string optD3PDCacheMinEventFraction
static const std::string optVoms
static const std::string optGridAvoidVP
static const std::string optMemVirtualPerEventIncreaseLimit
The minimal per-event virtual memory increase for triggering an error.
static const std::string optD3PDCacheMinByte
static const std::string optGridNFilesPerJob
static const std::string optWorkerPostClosedOutputsExecutable
Optionnal executable to be provided by the user that will be called, by the worker,...
static const std::string optSkipEvents
description: the name of the option used for skipping a certain number of events in the beginning rat...
static const std::string optTmpDir
Job()
effects: standard default constructor guarantee: strong failures: low level errors I
static const std::string optRetries
these options are defined in SH::MetaNames
static const std::string optGridMemory
static const std::string optUniqueDateFormat
the date-format to use when generating unique submission directory names
static const std::string optStreamAliases
an option for stream aliases
static const std::string optGridNJobs
static const std::string optGridDisableAutoRetry
static const std::string optGridNoSubmit
static const std::string optGridMaxFileSize
static const std::string optGridAddNthFieldOfInDSToLFN
static const std::string optBackgroundProcess
the option to do processing in a background process in PROOF
static const std::string optGridNFiles
static const std::string optDisableMetrics
description: the option to turn off collection of performance data
static const std::string optOfficial
static const std::string optGridMaxNFilesPerJob
static const std::string optLocalNoUnsetup
the option not to unsetup the environment in LocalDriver
static const std::string optFactoryPreload
a boolean flag for whether to perform a component factory preload
static const std::string optOtherMetaDataTreeNamePattern
Pattern for other MetaData tree name in input xAODs Can be useful for augmented file reading or exclu...
static const std::string optXaodAccessMode_branch
static const std::string optXaodAccessMode_class
outputMIter outputBegin()
static const std::string histogramStreamName
the name of the histogram output stream
static const std::string optOutputSampleName
the output sample name
static const std::string optUserFiles
a list of files that need to be available within the worker job
static const std::string optGridNGBPerJob
static const std::string optBatchSetupFile
the job submission setup file.
static const std::string optPerfTree
description: the option to turn on the performance tree in PROOF.
bool outputHas(const std::string &name) const
returns: whether we have an output with the given name guarantee: no-fail
static const std::string optGridMaxCpuCount
static const std::string optRemoveSubmitDir
description: the name of the option for overwriting the submission directory.
static const std::string optGridDestSE
description: grid-specific options rationale: these are named so as to correspond to prun equivalents...
static const std::string optRootVer
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 a list of Sample objects.
an object that can create a AsgService
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
void check_root_version()
effects: check whether we are using a consistent root version guarantee: strong failures: version mis...