ATLAS Offline Software
Namespaces | Classes | Typedefs | Functions
EL Namespace Reference

This module defines the arguments passed from the BATCH driver to the BATCH worker. More...

Namespaces

 Detail
 

Classes

class  Algorithm
 
class  AlgorithmMemoryWrapper
 an IAlgorithmWrapper that adds a memory monitor to an algorithm More...
 
class  AlgorithmTimerWrapper
 an IAlgorithmWrapper that adds a timer to an algorithm More...
 
struct  AlgorithmWorkerData
 all the external components an algorithm needs before initialization (in EventLoop) More...
 
class  AlgorithmWrapper
 an IAlgorithmWrapper for AnaAlgorithm More...
 
class  AlgSelect
 
class  AnaAlgorithm
 the (new) base class for EventLoop algorithms More...
 
class  AnaAlgorithmConfig
 an object that can create a AnaAlgorithm More...
 
class  AnaAlgorithmWrapper
 an IAlgorithmWrapper for AnaAlgorithm More...
 
class  AnaReentrantAlgorithm
 the base class for EventLoop reentrant algorithms More...
 
class  AnaReentrantAlgorithmConfig
 an object that can create a AnaReentrantAlgorithm More...
 
class  AnaReentrantAlgorithmWrapper
 an IAlgorithmWrapper for AnaReentrantAlgorithm More...
 
class  AsgServiceWrapper
 an IAlgorithmWrapper for AsgService More...
 
class  AsgToolWrapper
 an IAlgorithmWrapper for AsgTool More...
 
class  BatchDriver
 the base class for all drivers running on batch systems More...
 
struct  BatchJob
 
struct  BatchSample
 
struct  BatchSegment
 
class  CondorDriver
 a Driver to run on Condor batch systems More...
 
class  DirectDriver
 a Driver that runs directly inside the submission job itself More...
 
class  Driver
 the base class for the various EventLoop drivers that allow to run jobs on different backends More...
 
class  DuplicateChecker
 
struct  EventRange
 a range of events in a given file More...
 
class  ExecDriver
 a Driver for running batch jobs locally as a new process More...
 
class  GEDriver
 a Driver for running on GE batch systems More...
 
class  IAlgorithmWrapper
 a wrapper around a generic algorithm for use within EventLoop More...
 
class  IFilterWorker
 the interface to the filter functions in the algorithm sequence More...
 
class  IHistogramWorker
 the interface to histogram storage on the worker More...
 
class  ITreeWorker
 The interface to TTree storage on the worker. More...
 
class  IUnitTestTool
 the interface for UnitTestTool More...
 
class  IWorker
 the interface for algorithms to access IWorker More...
 
class  Job
 
class  JobConfig
 the job configuration that is independent of driver and dataset More...
 
class  KubernetesDriver
 a Driver to run on Kubernetes More...
 
class  LLDriver
 a Driver for running on IBM Load Leveler batch systems More...
 
class  LocalDriver
 a Driver for running batch jobs locally for testing purposes More...
 
class  LSFDriver
 a Driver for running on LSF batch systems More...
 
class  MetricsSvc
 
class  NTupleSvc
 
class  OutputStream
 
class  PrunDriver
 a Driver to submit jobs via prun More...
 
class  PythonConfigBase
 the base class for the python configuration of any asg::AsgComponent More...
 
class  SlurmDriver
 a Driver for running on SLURM batch systems More...
 
class  SoGEDriver
 a Driver for running on SoGE(?) batch systems More...
 
class  TorqueDriver
 a Driver for running on Torque batch systems More...
 
struct  UnitTest
 
class  UnitTestAlg
 
class  UnitTestAlg1
 
class  UnitTestAlg2
 
class  UnitTestAlg3
 Algorithm capable of leaking a set amount of memory per event. More...
 
class  UnitTestAlg4
 Algorithm testing file metadata access. More...
 
class  UnitTestAlg5
 
class  UnitTestAlg6
 
class  UnitTestAlg7
 a AnaAlgorithm for testing the configuration on the worker node More...
 
class  UnitTestAlgXAOD
 
struct  UnitTestConfig
 a class describing how to run the jobs for driver unit tests More...
 
class  UnitTestFixture
 
class  UnitTestSkim
 
struct  UnitTestTool
 a tool used to unit test AnaToolHandle More...
 
class  VomsProxySvc
 
class  WhiteBoardSvc
 
class  Worker
 
class  WorkerConfig
 

Typedefs

typedef ::StatusCode StatusCode
 StatusCode definition for legacy code. More...
 

Functions

void processEmptyFiles (const std::string &submitdir, const Job &job)
 check the output of the given (completed) job, rerun all (empty) files that did not get a fileExecute() and merge in the outputs More...
 
void swap (Job &a, Job &b)
 effects: standard swap guarantee: no-fail More...
 
NTupleSvcgetNTupleSvc (IWorker *worker, const std::string &outputStream, const std::string &treeName="")
 effects: get the skimming algorithm for the given output for this worker guarantee: strong failures: formula service not configured requires: worker != 0 requires: !outputStream.empty() postcondition: result != 0 More...
 
WhiteBoardSvcgetWhiteBoardSvc (IWorker *worker)
 effects: get the whiteboard service for this worker guarantee: strong failures: formula service not configured requires: worker != 0 requires: !outputStream.empty() postcondition: result != 0 More...
 
 TEST_P (UnitTestFixture, empty_eventCount)
 
 TEST_P (UnitTestFixture, empty_callbacks)
 
 TEST_P (UnitTestFixture, empty_fileExecuted)
 
 TEST_P (UnitTestFixture, single_eventCount)
 
 TEST_P (UnitTestFixture, single_callbacks)
 
 TEST_P (UnitTestFixture, single_fileExecuted)
 
 TEST_P (UnitTestFixture, multi_eventCount)
 
 TEST_P (UnitTestFixture, multi_callbacks)
 
 TEST_P (UnitTestFixture, multi_fileExecuted)
 
 TEST_P (UnitTestFixture, multi_out_empty)
 

Detailed Description

This module defines the arguments passed from the BATCH driver to the BATCH worker.

This module defines a base class for classes that implement an interface to a white board service.

This module defines an algorithm used for unit tests of the skimming algorithm.

This module provides a lot of global definitions, forward declarations and includes that are used by all modules.

This module defines a class that describes everything that needs to be known about an output dataset.

Author
Nils Krumnack

The interface provided in this class is intended for experts only. The module is considered to be in the pre-alpha stage.

Author
Nils Krumnack
Attila Krasznahorkay
Nils Krumnack
Morten Dam Joergensen mdj@n.nosp@m.bi.d.nosp@m.k 2012

The interface provided in this module is intended for the general user. The module is considered to be in the pre-alpha stage.

Author
Romain Bouquet

As such it doesn't fall into the user vs. expert classification.

The interface provided in this module is intended for the experts only. The module is considered to be in the pre-alpha stage.

Typedef Documentation

◆ StatusCode

StatusCode definition for legacy code.

This typedef is solely here to be picked up by all the code that follows the old recommendations. At some point we may deprecate using this, but certainly not before release 22, as this has been used in all of our instructions for user code.

Definition at line 22 of file PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h.

Function Documentation

◆ getNTupleSvc()

NTupleSvc* EL::getNTupleSvc ( IWorker worker,
const std::string &  outputStream,
const std::string &  treeName = "" 
)

effects: get the skimming algorithm for the given output for this worker guarantee: strong failures: formula service not configured requires: worker != 0 requires: !outputStream.empty() postcondition: result != 0

◆ getWhiteBoardSvc()

WhiteBoardSvc* EL::getWhiteBoardSvc ( IWorker worker)

effects: get the whiteboard service for this worker guarantee: strong failures: formula service not configured requires: worker != 0 requires: !outputStream.empty() postcondition: result != 0

◆ processEmptyFiles()

void EL::processEmptyFiles ( const std::string &  submitdir,
const Job job 
)

check the output of the given (completed) job, rerun all (empty) files that did not get a fileExecute() and merge in the outputs

This is primarily for the PROOF driver, which can't process empty files as part of the normal operation.

Guarantee
basic
Failures
i/o errors
job errors
events found in empty files

Definition at line 182 of file EmptyFileHandler.cxx.

184  {
185  SH::SampleHandler shReprocess = makeReprocessSamples (submitdir);
186 
187  if (shReprocess.size() > 0)
188  {
189  std::string mysubmitdir = submitdir + "/emptyFiles";
190  Job myjob = job;
191  myjob.sampleHandler (shReprocess);
192 
193  DirectDriver driver;
194  driver.submit (myjob, mysubmitdir);
195 
196  mergeHists (submitdir, mysubmitdir, shReprocess);
197  for (auto output = job.outputBegin(),
198  end = job.outputEnd(); output != end; ++ output)
199  {
200  mergeNtuple (submitdir + "/output-" + output->label(),
201  mysubmitdir + "/output-" + output->label());
202  }
203  }
204  }

◆ swap()

void EL::swap ( Job a,
Job b 
)

effects: standard swap guarantee: no-fail

Definition at line 132 of file Job.cxx.

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  }

◆ TEST_P() [1/10]

EL::TEST_P ( UnitTestFixture  ,
empty_callbacks   
)

Definition at line 276 of file UnitTestFixture.cxx.

277  {
278  TH1 *callbacks = getCallbacks ("empty");
279  EXPECT_EQ (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_FIRST));
280  EXPECT_EQ (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_OTHER));
281  EXPECT_EQ (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_INITIALIZE));
282  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_INITIALIZE));
283  EXPECT_EQ (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_EXECUTE));
284  EXPECT_EQ (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FILE_EXECUTE));
285  EXPECT_EQ (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FINALIZE));
286  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_FINALIZE));
287  }

◆ TEST_P() [2/10]

EL::TEST_P ( UnitTestFixture  ,
empty_eventCount   
)

Definition at line 269 of file UnitTestFixture.cxx.

270  {
271  EXPECT_EQ (eventCount ("empty"), 0u);
272  }

◆ TEST_P() [3/10]

EL::TEST_P ( UnitTestFixture  ,
empty_fileExecuted   
)

Definition at line 291 of file UnitTestFixture.cxx.

292  {
293  checkFileExecuted ("empty");
294  }

◆ TEST_P() [4/10]

EL::TEST_P ( UnitTestFixture  ,
multi_callbacks   
)

Definition at line 334 of file UnitTestFixture.cxx.

335  {
336  TH1 *callbacks = getCallbacks ("multi");
337  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_FIRST));
338  EXPECT_LE (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_OTHER));
339  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_INITIALIZE));
340  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_INITIALIZE));
341  EXPECT_EQ (100000, callbacks->GetBinContent (1 + UnitTestAlg1::CB_EXECUTE));
342  EXPECT_EQ (10, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FILE_EXECUTE));
343  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FINALIZE));
344  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_FINALIZE));
345  }

◆ TEST_P() [5/10]

EL::TEST_P ( UnitTestFixture  ,
multi_eventCount   
)

Definition at line 327 of file UnitTestFixture.cxx.

328  {
329  EXPECT_EQ (eventCount ("multi"), 100000u);
330  }

◆ TEST_P() [6/10]

EL::TEST_P ( UnitTestFixture  ,
multi_fileExecuted   
)

Definition at line 349 of file UnitTestFixture.cxx.

350  {
351  checkFileExecuted ("multi");
352  }

◆ TEST_P() [7/10]

EL::TEST_P ( UnitTestFixture  ,
multi_out_empty   
)

Definition at line 356 of file UnitTestFixture.cxx.

357  {
359  sh.load (getJob() + "/output-out_empty");
360  SH::Sample *sample = sh.get ("multi");
361  ASSERT_TRUE (sample != nullptr);
362 
363  for (auto fileName : sample->makeFileList())
364  {
365  std::unique_ptr<TFile> file (TFile::Open (fileName.c_str(), "READ"));
366  }
367  }

◆ TEST_P() [8/10]

EL::TEST_P ( UnitTestFixture  ,
single_callbacks   
)

Definition at line 305 of file UnitTestFixture.cxx.

306  {
307  TH1 *callbacks = getCallbacks ("single");
308  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_FIRST));
309  EXPECT_LE (0, callbacks->GetBinContent (1 + UnitTestAlg1::CB_CHANGE_INPUT_OTHER));
310  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_INITIALIZE));
311  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_INITIALIZE));
312  EXPECT_EQ (10000, callbacks->GetBinContent (1 + UnitTestAlg1::CB_EXECUTE));
313  EXPECT_EQ (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FILE_EXECUTE));
314  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_FINALIZE));
315  EXPECT_LE (1, callbacks->GetBinContent (1 + UnitTestAlg1::CB_HIST_FINALIZE));
316  }

◆ TEST_P() [9/10]

EL::TEST_P ( UnitTestFixture  ,
single_eventCount   
)

Definition at line 298 of file UnitTestFixture.cxx.

299  {
300  EXPECT_EQ (eventCount ("single"), 10000u);
301  }

◆ TEST_P() [10/10]

EL::TEST_P ( UnitTestFixture  ,
single_fileExecuted   
)

Definition at line 320 of file UnitTestFixture.cxx.

321  {
322  checkFileExecuted ("single");
323  }
atn_test_sgProducerConsumerDataPool_jobOptions.end
end
Definition: atn_test_sgProducerConsumerDataPool_jobOptions.py:25
SH::SampleHandler::size
std::size_t size() const
the number of samples contained
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
FullCPAlgorithmsTest_eljob.driver
driver
Definition: FullCPAlgorithmsTest_eljob.py:157
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
FullCPAlgorithmsTest_eljob.sh
sh
Definition: FullCPAlgorithmsTest_eljob.py:98
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
RCU::Shell
Definition: ShellExec.cxx:28
file
TFile * file
Definition: tile_monitor.h:29
SH::MetaObject::swap
void swap(MetaObject &a, MetaObject &b)
standard swap
SH::Sample
a base class that manages a set of files belonging to a particular data set and the associated meta-d...
Definition: Sample.h:54
merge.output
output
Definition: merge.py:17
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
a
TList * a
Definition: liststreamerinfos.cxx:10
SH::SampleHandler
A class that manages a list of Sample objects.
Definition: SampleHandler.h:60
test_interactive_athena.job
job
Definition: test_interactive_athena.py:6