Summary of agreed conventions for software
(Note added in 2004: tools and responsible persons have changed)
This note is a summary of the conclusions written down in the first draft note 'Software development for the MAGIC Telescope' of 25 Feb 1999, updated after the third meeting on MAGIC software development, held 17-18 March 2000 in Hinterriss.
Programming language
: the body of programs will be in C++. Locally, some parts can be in bare C, parts in Java are not excluded. The object-oriented approach will be used, with ROOT conventions and classes preferred. Programming conventions are described in a separate note (by T.Bretz).
Operating system
: the main operating system is Linux. A systematic parallel Windows NT version is not considered. No specific version of Linux is recommended, although SUSE is used by most collaborators.
Source code management
: all source code will be collected in a repository under CVS (Concurrent Version System). All available versions are to be sufficiently tested and documented. The repository is kept at MPI Munich, access is through H.Kornmayer. Responsible for software are: D.Petry for Control, J.Cortina for Data Acquisition, H.Kornmayer for Event Analysis and for Monte Carlo.
Data storage
: data (including raw data) are stored as objects in a data base under the ROOT tool. Some performance measurements on ROOT for storing at high bandwidth are still outstanding.
Documentation:
all programs are documented in-line, the ROOT auto-documentation is recommended. Summary and overview documents (extracted from programs or written independently) are made available via the Web, and given a MAGIC-TDAS number (trigger-data acquisition-analysis software). It is suggested to provide notes in Latex and to generate html using Latex2html. A tool providing a standard header is available on the web (http://hegra1.mppmu.mpg.de/MAGIC/private/software/tools/tools.html). If you don't use this guidance, remember that date and author are important parts of any documentation!! TDAS numbers are allocated by J.C.Gonzalez or T.Coarasa, responsible for some screening of the notes' content are: D.Petry for Control, J.Cortina for Data Acquisition, H.Kornmayer for Event Analysis and Monte Carlo.