AnaAlgorithm is a new (Sept 2017) algorithm base class that is meant
to replace the existing algorithm class inside
as well as allow to run the same algorithms inside both EventLoop and
EventLoop is an ASG supported ROOT tool for handling optimized event looping and data management. If you are not using Athena, this is our recommendation of what you should be using. EventLoop integrates nicely into the ATLAS software infrastructure and provides some advanced features that will make your life easier in the long run. In the following pages we will give you instructions on how to setup a basic EventLoop job, and towards the end of the tutorial we will have more pages on how to use its more advanced features.
EventLoop is really the center piece of a whole infrastructure of tools that work together to execute your job. Most of these packages were designed so that they can be used by themselves, but together they form a fairly complete analysis infrastructure and they are very well integrated. For the tutorial we will mostly show you how to use them together, for instructions on how to use them by themselves as well as how to use any features not covered in the tutorial please consult the documentation of each tool.
Athena is the main software framework in ATLAS, used for the trigger, central production and derivation. While most users do not use it for analysis it can and is definitely used that way.
The main purpose of this tutorial section is to show you how to set up and use an Athena package in a way that is very similar to an EventLoop package, and more or less the same as the setup from the previous section on EventLoop. Most of the remaining sections of this tutorial are actually independent of whether you work in EventLoop or Athena, so you can work through the entire tutorial in Athena if you follow this section.
You can do this tutorial using either EventLoop or Athena. As such
you can set up either an
AnalysisBase or an
and work through the tutorial, but you have to pick one and stick to
it. You can not have both releases set up at the same time, and
trying to switch back and forth between them can lead to confusion if
you forget which release you are currently working with.
After you worked through the basics you can (if you want to) switch
between to the other release series to try that as well. For that you
should start a new shell (log in again), and create a new build
directory (e.g. call it
build2). It is perfectly safe to have
multiple build directories at the same time, as long as you only use
the build directory for the release you have currently set up. And
the way the tutorial is set up you should not have to modify any file
in the source area when you switch between releases (making this a
good way to check that your code runs in both releases).