CKMGEANT is available for SGI platforms (IRIX6) and Linux, and has been tested on fsgi01 and fnppd as well as on San Luis Potosi computers. Other flavours and machines are possible too. Please contact Jurgen on how to install it. Some instructions on installation are given below.
An online HTML manual for GEANT can be found at the CERN site: here. Other CERNLIB documentation, such as a KUIP manual and a PAW manual, can be found here.
We use the CVS code development platform for concurrent development at different institutions. The use of CVS is discussed below. In brief, you can checkout the latest modifications to the code, modify it yourself, and then check it back in. Periodically a new official version is released when enough modifications have been made.
Usage of the Monte Carlo is possible on different levels of complexity, described in detail here. To go to a higher complexity, make sure to read and understand the lower complexity first.
 
The current version of ckmgeant is called v5_1, and was released on
September 8, 2003.
List of changes to version v5_1.
List of changes to version v5_0.
List of changes to version v4_2.
List of changes to version v4_1.
List of changes to version v4_0.
List of changes to version v3_9.
List of changes to version v3_7.
List of changes to version v3_6.
List of changes to version v3_5.
List of changes to version v3_4.
List of changes to version v3_3.
List of changes to version v3_2.
List of changes to version v3_1.
List of changes to version v3_0.
At this point, all code for the current release can be accessed via the environment variable CKMGEANT_DIR. The fortran source files are in $CKMGEANT_DIR/src, the libraries are in $CKMGEANT_DIR/lib, and this file is in $CKMGEANT_DIR/doc. The common blocks which show the data structure are in include files in the subdirectory $CKMGEANT_DIR/include. Beam input files (on fsgi03/fnppd) can be found in the directory ~ckm/geant/beam_at_detector/.
To run ckmgeant, simply copy $CKMGEANT_DIR/examples/ckminit.kumac into your area, modify
it if you wish (as discussed below), and type
   
Command                  Description of parameters 
-------                  ------------------------- 
KINE itype ipart      Describes how initial particle is generated
                     itype=-2: start given particle at given location with
                               given momentum and smear initial angle  (must
                               give additional 8 parameters as follows:
                                KINE -2 99 -24.5 0 -1450. 0 0 22.0 .001 .001
                               where the parameters are 3 vertex numbers, 3
                               momentum values and the last two numbers are 
                               the smear angles in mrad)
                           -1: same as -2, but no angle smearing (must give 
                               additional 6 parameters)
                            0: can use arbitrary input file; the structure of the
                               input file is # of input particles, followed by
                               that number of lines, each line containing:
                                  IPART XVTX YVTX ZVTX PX PY PZ
                            1: use beamfile as input (if ipart=0, use particle 
                               type in file, otherwise use the given particle
                               type)
                            2: use randomly generated beam with given particle 
                                type
DECAY_POS lowz hiz    Gives limits on decay position.  Will loop inside program
                           and force the decay within these limits.
SWIT num value        Switches performance level, track drawing, debugging:
                      SWIT 1 0 - maximum performance 
                      SWIT 1 1 - secondaries' kinematics are saved, particle 
                            trajectories are memorized; both can be viewed then 
                            with CONTROL/KINE and DXYZ commands correspondingly. 
                      SWIT 1 2 - the same as previous + trajectories are drawn in
                            a graphics window. 
                      SWIT 2 n - use to dump RICH internals at different levels. (use
                            SWIT 2 100 if you want drawing of RICH photons+lots of output)
                      SWIT 3 1 - events are dumped interactively 
        
BEAMFILE filename     Determines what beamfile to use, if you have KINE 1
OUTPUTFILE filename   Determines what output file to write.
 
OUTPUT_MODE mode(4)   Determines what output gets written (if 0, don't write out).  This
                      switch has the following format:
*                      n:   1   2   3   4   5   6   7   8   9  10  11
*               detector:  ALL GEN UMS KRC KEA BIV VVS STR PRC FVS MVS
             OUTPUT_MODE    1   0   0   0   0   0   0   0   0   0   0
                   
KRCH_GAS              Selects the Kaon RICH gas
                      Parameters: 
                          Gas'Kaon RICH Gas' C D=CF4 R=CF4,N2 
        
KRCH_PRES             Change the value of pressure of Kaon Rich Gas (atm) 
                      Parameters: 
                          KPRESSURE'Radiator pressure' R D=0.68 R=0.:3. 
        
PRCH_PRES             Change the value of pressure of Pion Rich Gas (atm) 
                      Parameters: 
                          PPRESSURE'Radiator pressure' R D=1. R=0.:3. 
You can either checkout the whole package (with cvs checkout ckmgeant) or sub-packages only; at this time we have "driver" (general code) "bin" (contains the general makefiles), "examples" (contains ckminit.kumac and batch.kumac, some kumacs to plot, and uu-routines) "rich" (kaon rich and pion rich codes), "vvs" (everything about the vacuum veto system), "straw" (obvious), "fvs" (forward veto), "keat" (obvious) "mvs" (muon veto), "ums" (upstream magnetic spectrometer), "bivs" (beam interaction veto), "btsm" (beam time stamp module), "cvp" (conversion veto plan), "driver" (general init and steering routines), "etp" (exit time plane), "hvs" (hole veto), "utility" (general utility routines) "scripts" (contains scripts to build a new version) and "ups" (used by the setup command). For analysing the output, we have the "read" sub-packages, which is not fully supported anymore. "unpack" reads and digitizes the output to real data format, and "digi" is the trigger and analysis sub-packages. "display" is an older version of the display routines. To add a new package, you need to be an expert. The checkout command should only be used once for the whole package or for every sub-package. If you do not like to use a sub-package (or even the whole package) you should type cvs release -d package_name
    You should edit the routines (or add new ones) in the directories the 
    checkout command generates. 
    To check if your routines compile, go to a different directory (for
 example where you "played" with the previous chapter) and make a symbolic
 link (with ln -s) to your changed routine and add it to
 the GNUmakefile. Compiling the code in the a different directory will
 help you keep the cvs directories clean.
   After you are sure that your changes are
    correct and without bugs, you can commit this code. A good sequence
of commands to do this would be: 
Since version v2.1, to install it on any computer, tar files are available. They are located on fnppd/fsgi03 in ~ckm/ckmgeant/ with obvious names. To compile and link, you need also cern and geant installed on your computer.
If you like to be able to follow easily new version, a installation script via cvs is provided. For the first installation, cvs checkout scripts and edit make_ckmgeant_versions to add information. execute this script and you will have the libraries installed on your computer. After this you have either to declare the version to ups (if you use setup) or set the environment variable CKMGEANT_DIR and source setup.sh.