ATLAS Software Kaushik De University of Texas At Arlington based on a tutorial by P. Calafiura (LBNL) LHC Computing Workshop, Ankara May 2, 2008
References Workbook Wiki: Glossary: ATLAS Code LXR indexer: cvs repository: Doxygen summary: computing/links/nightlyDocDirectory/allpackages.html computing/links/nightlyDocDirectory/allpackages.html
Platform and Releases ATLAS software certified on linux SLC4 with gcc 3.4.x in 32 bits mode Also built in native 64 bits and with gcc 4.1 Port to Mac OS long-standing low priority goal No Windows version planned Regular developer and production releases next production release, being validated latest developer, being validated latest production “cache” (bugfix patched release, distributed to Tier Xs)
Code Distribution Each release, and many nightly builds can be installed on your laptop using pacman distribution kits Mainly geared towards grid production and running existing code Usable for code development ngAtlasSoftware
CMT Configuration Management Tool Used for almost everything Build releases Setup work environment Compile and install your code, jo files,... Generate documentation Create distribution kits
AtlasLogin Standard environment setup CMT package takes care of setting up core cmt environment ● $CMT..CONFIG,..PATH,..PROJECTPATH ● Differ per release, and per workspace ● Define lookup for rest of environment setup ● CMT project, part of releases and kit Centrally maintained (lots of work) Reasonably customizable Easy to use! > setup ,dbg
Important envars (1) $CMTCONFIG Determined by platform, compiler, and dbg or opt. Defines library selection and compiler/linker options $CMTPATH Search path for finding packages. $CMTPROJECTPATH Search path for finding projects cmt show path As envars above can change on-the-fly Bootstrap Settings
Important envars (2) $JOBOPTSEARCHPATH For athena.py to find job options files $DATAPATH For PathResolver to find data files $PATH For shell to find binaries $LD_LIBRARY_PATH For dld.so to find libraries $PYTHONPATH For python to find modules Final Settings
Athena in a nut shell Athena is based on LHCb's GAUDI
Job Options Use python scripts to configure Global job properties Verbosity, inputs, outputs, no of evts to process,... Hierarchy of JobProperties containers jobproperties.CaloCellFlags.doLArCellEmMisCalib() Detector tasks Digitize InDet, Reconstruct Pixel, skip LAr,... Gaudi Components (Algs, Tools, Services) via Configurables, python classes mirroring C++ Set component properties, see doc, default values
Selected Top-level Job Options HelloWorld elloWorldOptions.py elloWorldOptions.py elloWorldOptions.py Job Options Examples (more advanced) Digitization (and pileup) leup10_perfmon.py leup10_perfmon.py leup10_perfmon.py RecExCommon (standard offline reco) e/RecExCommon_topOptions.py RecExCommission (combined cosmic reco) ecExCommission_topOptions.py AODtoDPD (primary DPD maker)
Job Transformations Python scripts used to run production tasks More complex than job options scripts Variable configuration (e.g. Input files) Validate results, produce report Flexible framework helps writing them Many ready to use Event Generators G4 simulation, digitization/pileup Reconstruction