<CODE>TRACKER</CODE> for Water Cherenkov Detectors.

Tracker

The program TRACKER is a particle tracking Monte Carlo which uses GEANT to track all manner of particles through IMB3, BeamTest and SuperK detectors. It includes a custom light tracking package which provides a detailed simulation of the response of the detector to light produced by relativistic particles. Data can be written in a variety of formats. The most prominent are the IMB mine format, and the SuperK Interim format.

This document is divided into a number of sections. After you are familiar with TRACKER you can skip to the section on options, environment variables, or the kinematics file.

You may also want to see the change log or the to do list.

How to get TRACKER

TRACKER lives on //hepxvt.ps.uci.edu/superk. There is not a good way to get the source yet, but I'll try to set up some way to get it over the web soon.

Requirements

Compiling TRACKER

Unix

The fortran code is quite portable, unfortunately I have done very little work to make to compilation proceedures portable. I'm afraid that many system dependencies have slipped into the make files. At UCI it runs on DecStations, and hp700's.

Here is a thumbnail sketch of what needs to be done.

VMS

The situation is better on VMS. To build TRACKER on VMS you need the command file build_tracker. Copy it to the directory that will hold the source and executables, then run build_tracker.com (e.g. $ @build_tracker.com). It will generate the source files and compile them.

By now all of the source files and object files exist in the current directory. When build_tracker was running it generated a file tracker.lnk which will link TRACKER with GEANT. It also generated the file cernlib.opt which you will need to edit to reflect the location of cernlib. To link tracker run tracker.lnk (e.g. $ @tracker.lnk).

The only thing left to do is to set TRKHOME in tracker.com so that it points to the directory containing the executable.

Running TRACKER

TRACKER is meant to be run from the command line. For unix a typical command line might look like:


% tracker -O=interim electron.kin electron.mc91
 
For VMS this becomes something like:


$ @tracker.com
$ tracker "-O=interim" electron.kin electron.mc91

Options

This is an incomplete list of the options provided by TRACKER. There are several options that are meant for debugging the code that I have not documented, mainly because their meaning changes as the debugging needs change. Be careful on VMS. You must enclose options in double quotes since TRACKER is case sensitive.

-k=<filename>
Read the event kinematics from the file name. This can also be set as the first parameter to the TRACKER command. Default: The kinematics are read from stdin.
-o=<filename>
Set the output file name. This can also be set as the second parameter to TRACKER. Default: Set by the kinematics file.
-S
Save the mc stack in a separate file.
-O=<format>
Set the output format. The formats are:
-O=imb
Write the data in the IMB mine format.
-O=raw
A raw list of tubes and times.
-O=skam
Write the data in the SuperK format. Currently this is the same as the interim format.
-O=interim
Write the data in the interim format.
The following options over-ride default values set in the DETECTOR_DATA file.

-w[1-9]=<value>
Set the wave-shifter to PMT coupling for tube type [1-9] to <value>.
-P=<value>
Set the Plexiglas cutoff to <value>.
-T=<value>
Set the maximum cpu time of the run.
-c=<value>
Set the water clarity.
-e[1-9]=<value>
Set the collection efficiency for tube type [1-9] to <value>.
-a=<value>
Set the anomalous scattering.
-r=<value>
Set the anomalous Rayleigh scattering.

Environment or Logical Variables.

TRACKER uses logicals and environment variables to control a few of it's functions. The environment variables used are:

DETECTOR_DATA
Set this to override the default detector file. This must be set on VMS since there is no default detector file.

The Kinematics File

TRACKER has no mechanisms to generate event kinematics. The program was structured this way since the generation of event kinematics and the tracking of particles in the detector are completely different problems that have almost nothing in common. By separating the generation of event kinematics from the tracking of particles multiple models of primary interactions can be developed and easily compared using the same particle tracking simulation. This allows the interaction models to be easily compared.

Event kinematics are fed to TRACKER via kinematics file. A kinematics file is just a text file that contains event descriptions. There is an added bonus that a kinematics file is (almost) human readable. For example here is a simple file that generates a single electron of 0.5 GeV going straight down from the center of the detector:


** electron.kin begin **
  Tell TRACKER I want the output in electron.mc91
$ FILE electron.mc91
  Tell TRACKER I want the vertex at x=0, y=0 and z=0.
$ VERTEX 0.0 0.0 0.0
  Tell TRACKER I want an electron going down with 0.5 GeV of total
energy.
$ PARTICLE 3 0.5 0.0 0.0 -1.0
  Tell TRACKER to list what is being generated.
$ LIST
  Tell TRACKER to generate the event.
$ TRACK
  All done now.
$ END
** electron.kin **

TRACKER only pays attention to the lines that have a "$" as the first non-space character. Any line that does not begin with a "$" is passed onto the log file. This allows the kinematics program to pass comments on through TRACKER. The following is a list of commands that TRACKER recognizes.

Kinematics Directives.

$ CLOSE
Close the current output file name, and the mcstack file if one is open (See the option "-S").
$ END
Tell TRACKER that this is the end of the kinematics file. This is required if the kinematics are being read from stdin. That's really important so I'm going to repeat it. If the kinematics is being read from stdin then the last command MUST be "$END" or TRACKER will hang forever waiting for input. If the kinematics are being read from a file then the end of file has the same effect as "$END".
$ FILE filename
Open a new output file. The standard extension is mc91 for IMB3 format data. There is no standard extension for SuperK format data yet, for that matter there is no SuperK format. TRACKER does nothing to enforce the file extensions. For unix systems TRACKER keeps a version number to prevent output files from overwriting each other. TRACKER always produces an rzdat file, which has a name and version based on filename.
$ LIST
List the current vertices and particle kinematics.
$ PARTICLE ipart GeV dx dy dz
$ INCOMING ipart GeV dx dy dz wt
$ OUTGOING ipart GeV dx dy dz id
Define a particle. PARTICLE defines a particle which will be simulated by the tracking code and generate Cerenkov light. INCOMING, and OUTGOING are ignored by TRACKER and are used to pass kinematic information to the output file. The basic parameters are: the GEANT particle id "ipart", the total energy of the particle in GeV and the direction of the particle (not normalized).

INCOMING and OUTGOING are used to specify the particles which participate in the primary interaction, ie the initial and final states of the Feynman diagram for this particular interaction. INCOMING specifies the incoming particle. The fifth parameter is used to pass the weight of the particle so that TRACKER results can be re-weighted to account for other primary fluxes. OUTGOING specifies the outgoing particles before any nuclear corrections. The fifth parameter is used to specify the interaction channel that generated the particles.

$ TRACK
Flag that the kinematics of an event has been completely defined. This is required. After a TRACK directive the next event begins in the kinematic file.
$ VERTEX X Y Z ?T?
Define a vertex for the following particles. A vertex must be defined before any particles are defined. The fourth parameter is optional and specifies the starting time for the following particles. The starting time is zero by default.

I've found a bug! Now what?

I'm sure there are *many* bugs left to be found. Please send a patch for the affected routines or documentation. If you make any improvements please send them along too. See the TO-DO list below for a few critical things that need to be done. If you find a bug please don't just report that X doesn't work. The best way to send a bug fix is as a diff between the broken and fixed files.

This code is maintained by:

cmcgrew@uci.edu
 
  $Id: tracker.html,v 1.2 1994/10/03 19:18:32 superk Exp $

  $Log: tracker.html,v $
# Revision 1.2  1994/10/03  19:18:32  superk
# Made the history of this file visible from the reader.
#
# Revision 1.1  1994/10/03  19:06:34  superk
# Initial revision
#