CVS for Magic Software Development


Introduction

More than one software developer are involved in the progress of Software for the MAGIC telescope. Because the developers are distributed all over Europe, a version control system is needed. There exists more than one possibility of such version control systems, but for the beginning we take CVS ( Concurrent Versions System ).

CVS is a version control system, which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc., like RCS or SCCS. Unlike the simpler systems, CVS does not just operate on one file at a time or one directory at a time, but operates on hierarchical collections of directories consisting of version controlled files. CVS helps to manage releases and to control the concurrent editing of source files among multiple authors. CVS allows triggers to enable/log/control various operations and works well over a wide area network.

CVS keeps a single copy of the master sources. This copy is called the source ``repository''; it contains all the information to permit extracting previous software releases at any time based on either a symbolic revision tag, or a date in the past.

For CVS updates, more information on documentation,  software related to CVS, development of CVS, and more, see:
             http://www.cyclic.com
             http://www.loria.fr/~molli/cvs-index.html
 



Repository

The single copy of the master source for all MAGIC software is held in the repository on the alpha cluster in Max-Planck-Institut für Physik in Munich. As a developer you must declare the
environment variable

setenv   CVSROOT  /hd60/CvsRepository/         for tcsh (use the syntax of your shell)
 

All the Software is inside the directory. The structure of the sub directories is following one:
 
 
MagicSoft CvsDoku
Simulation Corsika mmcs
Detector Reflector
include-GENERAL
include-CORSIKA
include-MC
include-Classes
Analysis



 

Detail of subdirectories in the repository


MagicSoft

In this directory of the cvs-repository you find all software that is developed for MAGIC using CVS.
This directory contain four sub directories, CvsDoku, Simulation, Analysis and include-Classes.
 

CvsDoku

In this directory of the cvs-repository you find some html pages like the one you are looking at the moment. This documentation is written as a guideline for MAGIC developers using the CVS tool. Also the documentation for CVS usage is using CVS!!

Simulation
For MAGIC a lot of programs were developed to simulate the behavior of Air Showers, the Mirrors and the Camera. All this things you need for simulation is inside this directory.
 

Corsika
All things needed for the simulation of AirShowers. All this simulation are based on the CORSIKA program of the KASCADE group in Karlsruhe.
 

Detector
 Every thing that is needed to transfer the simulated events to the common raw data forrmat. There are a lot of different tools inside this directory, mainly based on the work of Jose Carlos Gonzales.
 

Reflector
 Here you find the source code of the reflector program. This is written to read the CORSIKA (mmcs) output. With this data you can simulate the behaviour of the MAGIC mirrors. But to compile and run the program some other subdirectories are needed.

include-CORSIKA
Here you can find a implementation to read the CORSIKA output. This classes are needed by the reflector program.

include-MC
Here you can find a implementation to write and read the output of the reflector program. This classes are needed by the reflector and the camera program.

include-GENERAL
Here you can find some header file that are needed by reflector and camera. For example the declaration of the runlib is found here.
 

include-Classes

In this directory you can find all Classes (C++ and hopefully OOP ) that are used for simulation and for analysis. An example is the RawDataFormat used in the Analysis and the Camera programs.

Analysis

In this directory you can find all Programs to analyze data of MAGIC. Here you will find tools to look on single Events, to calculate the Hillas parameters and to find the periodicity of one special source. (But all this is still under construction!!!! Here the must development is needed in the future!!!)