Introduction to Athena

Athena Basics

The ATLAS offline software (known as Athena) is built on the GAUDI framework, which organizes applications (ie generation, simulation, digitization, reconstruction, analysis, etc...) into series of algorithms which rely on various services for tasks such as input/output. Some important services include

  • StoreGate - The transient data storeage where algorithms store and retrieve data objects. This is the mechanism for communicating between algorithms.
  • Ntuple - Interface to ROOT or HBOOK.
  • POOL - A technology for persistifying (ie writing/reading from disk) data objects.
  • Database
  • Detector Store

Athena applications are managed through python (an interactive programming language) jobOptions files which allow users to load specific libraries of algorithms, specify the algorithm execution order, and configure each algorithm's behavior. In other words, a typical Athena application is defined by a jobOptions file which says:

  • Load these libraries
  • Read in this data
  • Run these algorithms in this order
  • Configure each algorithm in this way
  • Output this data

Athena Code Organization

The Athena source code is organized into packages and domains . For example the top level reconstruction package is Reconstruction/RecExample/RecExCommon . Each package is organized into several sub-directories (not all are necessary):

  • cmt : contains requirements + setup files. This is where you build your code. (See below)
  • <PackageName> : contains the C++ header files.
  • src : contains the C++ source files.
  • share : contains job option (.py) files.
  • run : where you run your jobs.
  • python : any additional python source.

Packages are stored/managed in CVS and are assigned versions by being tagged . For example Reconstruction/RecExample/RecExCommon/RecExCommon-00-02-87 .

Athena releases are build using a set of tags of packages. An interface called Tag Collector allows the hundreds of code developers on ATLAS to specify which versions of their packages are used in specific Athena releases.

Athena releases are assigned versions xx.y.z. Typically, y=0 releases are meant for general use or production, while y=1,2,3,... are development releases.

Athena Code Management

The development environment is managed by CMT, which provides the following functions:

  • Setup environment
  • Create make files
  • Build code

In each package CMT uses a requirement file to specify dependencies on other packages (and their versions) and details on how to build the package.

Setting up an Athena Release

Since CMT is rather flexible, there are lots of different ways of setting up Athena. Therefore you are likely to find multiple recipies on the web. We'll consider two approaches here:

  • You may create a personal CMT area in your home area and write a requirements file which specify where you wish to keep your different versions of athena releases. The instructions in the workbook outline this procedure, and also explain some of the basics Athena release distribution.

  • You may use my new-athena-release script to setup a new directory for each release. This script determines the proper cmt version and writes the appropriate requirements file into the directory. The install/usage directions for this script are given below. You'll find usage information for this and several other useful scripts at Athena Helper Scripts.

  1. Get your own copy of the scripts:

    cd ~
    tar -xvf /afs/

    This will untar several scripts into ~/bin. The scripts are self documented, so you may run them without arguments for help.

    I recommend adding ~/bin to your PATH so these scripts are easily available. Otherwise, you may simply specify the full path to these scripts whenever you need one.

    To add the scripts to your path, first check what shell you are using by typing "echo $SHELL". Then

    • if you use zsh, enter:

      touch ~/.zshrc ; echo 'export PATH=${PATH}:~/bin' >> ~/.zshrc

    • if you use tcsh, enter:

      touch ~/.tcshrc ; echo 'setenv PATH ${PATH}:~/bin' >> ~/.tcshrc

      Appropriately replace the "rc" file in the above commands if you are using a different shell. Now logout and login so you obtain your new PATH.

  2. Create a new release for yourself to use in the exercises:

    new-athena-release 10.0.1 My-10.0.1

    You will have to perform this step every time you want to use a new release (or start from scratch).

    Note: if you did not add the scripts to your PATH in the previous step, replace new-athena-release with ~/bin/new-athena-release.

  3. cd to your release, and setup

    cd ~/My-10.0.1
    source setup.[c]sh

    You'll have to perform this step every time you login.

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2006-01-12 - AmirFarbin
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback