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
The single copy of the master source for all MAGIC software is held in the repository on a single (security reasons) linux computer in Max-Planck-Institut für Physik in Munich. As a remote developer you must declare the environment variable.
setenv CVSROOT :ext:pchegra4.mppmu.mpg.de:/CvsRepository for tcsh (use the syntax of your shell)
If you want access please inform
Harald Kornmayer in Munich. For more details about the structure
of the repository see here.
All developers should use CVS commands for further development. I set
up different projects of software development. Please take only the source
file from the repository which are necessary for the project you want to
work on. Please don't work on to much projects in parallel. If you are
planning to do bigger changes create your own development branch. But don't
wait to long with committing.
The software is separated in different software projects. This projects
are:
Mmcs (Magic Monte Carlo Simulation )It is obvious that some source code of a given directory is part of different projects. I.e. the directory include-MC is a part of the reflector and the camera project.
This is the adapted CORSIKA code for calculating air showers.Reflector
With this program you can track the cerenkov photons generated by Mmcs to the camera plane. So all the geometry of the telescope is inside this program.Camera
To change the information of the cerenkov photons to FADC counts you have to use the camera program. This program contains a lot of different other sources that are also used by the reflector or the Evita project.Evita (EVent Imaging Tool for Analysis)
To display one event use this nice Gui package........
All the Software is inside the directory. The structure of the sub directories
is following one:
MagicSoft | CvsDoku | |||||
Simulation | Corsika | Mmcs | ||||
Detector | Reflector | |||||
Camera | ||||||
include-GENERAL | ||||||
include-CORSIKA | ||||||
include-MC | ||||||
include-MTrigger | ||||||
Data | ||||||
lib | ||||||
include-Classes | ||||||
Analysis | ||||||
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.
CvsDokuIn 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.
Corsikainclude-Classes
All things needed for the simulation of Air Showers. 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 format. 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 behavior of the MAGIC mirrors. But to compile and run the program some other sub directories are needed.In this directory are all the files of the camera program. The camera program is calculating the response of each photo multiplier of the camera. At the end we get the number of ADC count for each time slice of each pixel. In the previous there were also some smaller calculations of the camera pixels in it.
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-MTrigger
Studies of the trigger behavior are very fundamental things. The simulation of the trigger is a part of the camera program. All the methods are put in the Classes (called MTRigger ) in this directory.Data
All the different data files for the simulation tools reflector and camera are in this directory. For example the geometry of the MAGIC telescope is stored in magic.def or the data of the focal points is stored in focal.dat.lib
Here you find the ranlib that is used by reflector and camera.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. The Classes are MRawPixel, MRawEvt, MRawMc .....
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!!!)