Athena is based on the common Gaudi framework that is used by ATLAS, LHCb and FCC.
Athena code is hosted in the CERN
GitLab service
where the repository owned by the atlas
user plays a special
role as the repository from which all production releases
will be built. In the ATLAS development workflow this
repository is also the merge target for developments from
individual users or groups. This repository includes a number of different branches (defined as “an independent line of development”) being actively committed to at any given time, which may be synchronized to varying degrees (either manually or via automated procedures) depending on their purpose. There is much more information about
the development workflow in the ATLAS
git development tutorial.
While the athena repository contains any and all code that could be built
into an ATLAS software release, each release itself generally only
consists of a consistent subset of the code base. Each particular
build flavour is called a project and is steered from a particular
subdirectory of the Projects
directory.
The Athena
project is a complete build of almost
everything in the repository. When a particular Athena project is built the build result encodes the
project name. Thus, independent of any release number, AthSimulation
is
built from different code than AthAnalysisBase
.
The main projects are:
Project | Purpose |
Athena | Reconstruction and Derivation production* |
AthGeneration | For event generation |
AthSimulation | For full Geant4 simulation |
AthAnalysisBase | Athena based analysis |
AnalysisBase | Non-athena ROOT based analysis |
DetCommon | For reading trigger configuration when e.g. configuring L1 Hardware |
Not all projects will exist, or be functional, in any particular
branch of the Athena repository. It should also be noted that although
the Athena
project will be capable of running most workflows it may not represent the latest validated release for all purposes (in particular Event Generation).
* NB While both reconstruction and Derivation use the Athena
project, they may be based on different code branches. Reconstruction will normally be run from a branch which is operating under Frozen Tier 0 policy
i.e. in which changes to job output in the AOD
files are tightly controlled. Derivations on the other hand are expected to change more frequently, since they can be quickly reproduced from AOD
, and so these run from the development branch, i.e. main
(formerly master
). Concretely this means that for example that AOD
files produced in 22.0,Athena
releases will be used to produce DAOD
files in 23.0,Athena
releases.