STACEE Logo

This page is a general receptacle for information and software that I have developed and made available to the STACEE project. For a general overview of the STACEE project, check out the Official STACEE web page at UCLA. Note that, in cases where I feel the data and/or information are still proprietary, the links have been disabled.


I have run across an interesting idea for STACEE Code documentation. There exist a number of documentation programs that take special comments from each function and compile them into an HTML document. One distribution, doxygen, comes standard with RedHat 8.0, and appears to work well.

I have found this kind of documentation to be a really helpful tool-even for my own software, so I've begun including it in the code I write. Interested parties are encouraged to take a peek at my current online docs (start with the Compound List link). You can get to class-specific pages as well from the software table below.

One really good use for this system might be for STACEE banks documentation. This would be really easy to do, and has the advantage that the documentation and code are maintained in the same place, but the documentation is much more easy to read than piling through comments and code from header and source files. To demonstrate how easy all this is, I fixed up a piece of stoff.h and parsed it with doxygen. Take a look at the resulting Example STACEE Banks Documentation. Check out my QuickStart Guide for info on how to get doxygen working.

 

STACEE Software (docs)

Package name
Version
Description
Waveform Class
2.30
A C++ class for working with analog waveforms. This is the foundation of my work on Data-based software padding. The majority of the class is not specific to STACEE FADC data, but there is a function that will read the FADC data into the class. This leaves the class with enough generality to be used in a variety of other applications as well (eg, simulation). Online documentation located here. (last updated 06/09/03)
Discriminator Class
1.02
A C++ class to emulate a discriminator. It operates on a Waveform object and can return timestamps for each time it fires, or another Waveform object representing the output discriminator trace. Complete documentation located here. (last updated 06/09/03)
Killer Class
1.01
A C++ class for time-based suppression of events or channels from a run. Online documentation located here. (last updated 05/02/03)
FadcTrim Class
1.01
A C++ class to supply the proper FADC Trims for a given channel and run number in the STACEE data set. This class is a workaround for getting the FadcOffsets for each channel, which are generated by Pass0, but not written to the data stream. Online documentation located here. (last updated 05/02/03)
AnalogTrig Class
1.11
A C++ class for forming analog triggers much like those used for in the STACEE-32 trigger. This model is an alternative to the MADDOG trigger, currently in use on STACEE-64. Online documentation located here. (last updated 06/09/03)
Data Padding Class
2.01
A C++ class for implementing data-based software padding In this case, data-based padding is distinguished from simulation-based padding in that the extra signal added to the DIGI waveforms is taken from the data itself instead of a simulated wave form. Online documentation located here.
Random Number Class
1.00
A C++ class containing random number generators. This is essentially a C++ wrapper on some of the routines from Numerical Recipes in C. Online documentation located here. (last updated 05/02/03)
Astro Class
1.01
A C++ class for doing basic astronomical calculations as they apply to the STACEE project (though it may be reconfigured for any other venue). Many (if not all) of the algorithms in this class come from the Astronomical Almanac, published by the US Naval Observatory. Online documentation located here. (last updated 05/02/03)
Histogram Class
1.00
A simple C++ class for producing histograms. Online documentation located here. (last updated 05/03/03)
Sim Control
4.20
A suite of PERL scripts that cue and manage the STACEE simulation chain. These scripts are very helpful in executing and managing large-scale projects on many different machines. The higher level control scripts use moccarun, which is now included in this package as well. You can still get the older simcontrol version for now (if you really want it).

 

STACEE Documentation

Document
Description
Unix Primer This is the most recent version of my UNIX/LINUX primer for the STACEE group. It is a bare-bones kickstart guide to using UNIX systems
ST note 03_05 Field Brightness Asymmetries: A First Look   Systematic differences in the on- and off-source field brightness of a given observing target results in a false signal (or deficit) due to the promotion of sub-threshold cosmic-ray showers. This note is an analysis of the current effort to understand this effect on a general level (previous efforts concentrated on a single source). In addition, one possible padding algorithm designed to minimize the promotion effect is described, and its effects on both control and source data are presented.
ST note 03_02 A Short History of the STACEE-64 Crab   Summary of our STACEE-64 Crab observations and the evolution of our sensitivity. The entire Crab data set is divided into four "observing epochs," each of which represents a distinct and relatively stable detector configuration. Cumulative significances, inferred gamma-ray rates, and significance distributions are presented for each epoch, followed by a short concluding discussion of our Crab enigma.
ST note 02_16 Corsika STACEE Users Manual   This note serves as a users manual for the STACEE version of the Corsika air-shower simulator. Included are instructions on how to obtain, build, and run Corsika, as well as an introduction to the software tools available to read its output.
ST note 02_13 The Corsika STACEE Data Format   Details my work with improving the photon packing in the STACEE output option for Corsika. This note serves the dual purpose of summarizing the current state of the STACEE output option of the Corsika package, as well as proposing changes in that format. The updated packing and decoding algorithms suggested in this note would allow us to improve the quality of data coming from the air-shower simulation with no increase in the typical file size.
ST note 02-01 Light Curve Analysis for Markarian 421   Details some of my work with the Markarian 421 light curve from our 2001 observations with the STACEE-48 detector. I present various corrections to the raw curve based on simulated detector performance, and examine how dependent they are on assumptions made about the source spectrum. There is also a multi-wavelength curve combining RXTE, STACEE, and Whipple data.
ST note 01_05 Analysis of the NPMT Statistic   A discussion of my work with the NPMT statistic as it applies to the Markarian 421 and HIP 80460 data set from early 2001. This note is an amplification/formalization of my presentation at the McGill meeting in October, 2001. The issue of the observed "low-threshold" bump is addressed, and two models for this feature are suggested and evaluated. Also discussed are the prospects for using the NPMT cut to reduce the effect of the stars in the field of view of Markarian 421.
ST note 01_04 Markarian 421 and HIP 80460 Run Cuts   This note is an outline of the specific run cuts suggested for STACEE observations of Markarian 421 and the star HIP 80460 between January and June of 2001. The details and motivation for this algorithm appear in ST note 01-03.
ST note 01_03 Markarian 421 Run Cut Algorithm   This note is a discussion of the current state of the run level analysis for the Markarian 421 data taken between January and June of 2001. It outlines the algorithm used to generate quality factors and discusses the confidence in these indicators. Actual run cuts and their consequences are also briefly discussed.
ST note 00_07 Introduction to the Hermes Electronics Simulator   This note is a brief and preliminary discussion of the STACEE electronics simulator, Hermes. Key elements of this simulation have already been tested, and yield reasonable results. The current incarnation attempts to package these algorithms in a program that is standardized and readily usable by the STACEE collaboration. This note is intended to serve as a basic users manual for the Hermes electronics simulator. A more detailed account of the algorithms involved is left for another note. Information in this note should be current as of the version 2.1 release.
ST note 00_03 STACEE-48 Electronics Hardware   This note describes the proposed electronics hardware configuration for the STACEE-48 detector.

 

Archive of Dated or Obsolete Postings

Document/Package
Description
Photon Read Fix:  The current version of Corsika does not write the true particle energy to the data stream for hadronic events. These versions of the photon reading routines fix this problem for files generated from Corsika version 5946. Subsequent versions of STACEE Corsika will fix this problem at the source, and thus not need to be corrected. These versions of photon_read should allow such inherently correct data to pass unmolested. Note that there are two different versions of the photon_read files -- one for Sandfield and one for Elec.
Corsika Reader:  On December 20th, Corsika version 6.010 was officially released. This new version, aside from the usual fixes and improvements, has the capability to write out "Stacee Output". However, this output format seems to be the old (current) version, and not the new (proposed at McGill) version. In addition, the output routines generated by Corsika appear to contain an error that complicates compiling. Never the less, I have put together a C++ class to make reading this output relatively painless. This package contains the class, and an example file to demonstrate how to use it, and instructions on how to produce the correct Corsika configuration. I have also included a corrected stacee.c file - you can replace the one Corsika generates with this one to bypass the compiling problems.
Mrk421 ApJ Paper:  This is the current draft of the Mrk421 ApJL paper.
Mrk421 Run Cuts:  Here is the software and data files used to impose both sets of run cuts outlined in the STACEE note 01-04. The code is a C++ class called killer that parses a data file and flags events as good or no good according to that file. In addition to the software, I have also included data files for two different cuts for both Mrk 421 and HIP 80460 (four files in all).
Run Cut Algorithm:  This is the basic code for the run cut algorithm outlined in the STACEE note 01-03. It does not use STOFF directly. Instead, you need to make a `standardized' datafile with the `unpacker' package (also on this page). The code makes use of the minimization packages included in ROOT (in particular, it uses Minuit), so you also need to have ROOT installed on your system. The core of this code is the program l1chi, which calculates Chi^2/dof for a straight line fit to the time evolution of the L1 rates. l1chibatch.pl is a perl script that calls l1chi for each subcluster of each run in a dataset. The program l1cuts then looks at the output of l1chi, applies a cut on the reduced Chi^2, and outputs the results.
Bad Channels:  This file is a pair-matched bad_channels.dat file for the Markarian 421 and HIP 80460 data set. You should use this file if you want to be sure the same channels are killed in both on and off source runs of a single pair. For run pairings, see STACEE note 01-04.
Banks Documentation:  At the February meeting we talked about the need to improve the documentation on our Stacee data product. With this in mind, I've started a detailed description of the Stacee Banks quantities. The idea here is to merge the different sources of information (eg. header files to .doc files) into a verbose and easily readable central document. The ultimate goal is to produce a single complete reference that is complete enough that someone with very limited experience with Stacee can work with the data. This document is by no means complete, but it is a start. I encourage you to send me any corrections or contributions you can think of - this is quite a big project, and it requires input from a variety of people.
Stoff++:  The reading version of Stoff++ is up an running. It has been tested by several folks and appears stable. This is a C++ class that acts as a wrapper to the stacee_banks worker routines. This class is essentially a C++ replacement for all the files in the offline directory of the stacee_banks package. You should now be able to use stoff++ to read *any* STACEE data product that can be read with regular stoff.
Pass0 Batch:  I've found that trying to run pass0 on multiple files directly from stoff often results in a core dump (eg, RUNS 5070-5079 in the .rc file). I'm not entirely sure why this is, but I suspect it is because stoff is opening all the requested data files at the same time. To get around this problem, I've put together a script that executes pass0 on a set of data files by calling stoff separately for each file. The script is called makepass0. Executing the script with no command line arguments yields a small help message. The current version of this script will drive pass0 version 1.6.
Unpacker:  A little STOFF program that repacks STACEE data into a standard ASCII format. This format is understood by my `data' class, which may be included in some of my ``pre-stoff++'' software packages. This package also includes a perl script that allows the user to unpack large groups of datafiles with one command.
HV Smoothing:  The listed values for the HV on each tube is a good starting point, but one should use the LED system (or some other system) to make fine adjustments to these settings. This little utility reads in three input files (a pulseheight file that contains the current measured pulseheights, an hvfile that contains the current HV settings, and a gamma file that contains the current gamma factors for each tube), and produces a new hv file that should bring the tubes to the average pulse-height. If invoked without any command line arguments, the utility will give you a little help message.
LeCroy Delays:  The LeCroy delays we use need to be calibrated before they can be used with any confidence. The current method for calibration is to set and measure each delay. The results of this set of measurements are put into a lookup table, that is read in by the DAQ. Included here is the original code used to patch the DAQ so that it accepts input from the lookup table. Also included are two versions of the two lookup tables in use (one table for each camera). The first version is the actual table used by the DAQ to set the delays. The second is a postscript version that is more conducive to human review. WARNING: These tables were current as of 9/15/98, and do not contain any onsite adjustments.
Trims:  The process by which we calculate the various trims for the electronics is rather thick with simple and repetitive calculations. The volume of calculations necessary to create a full set of trims replaces the question "Did I make an error?", with "How many errors did I make?". To remedy this, here is a little utility that calculates trims and outputs the appropriate trims files for you. No more calculators!
Occupancy:  The following are occupancy plots for a simple simulation in which circular photon distributions are laid down on the heliostat array. Heliostats within the radius of the photon distribution are assumed to be hit, and those outside the radius are not hit. The trigger condition imposed is the standard 5/8 on the L1 and 3/4 on the L2. Each plot represents approximately 20,000 recorded events. Note that this does not assume anything about the secondary optics-only whether or not each heliostat is actually hit by the shower.
Stoff Doc Corrections:  There are some errors in the installation and usage guide for the Jan99 version of STOFF, as well as some points that were confusing to me. As a courtesy to those who may be having trouble installing and running STOFF, the attached file is my errata sheet for both stoff_install.doc and stoff_mini.doc, included in the January 1999 version of the offline package. This info applies to those running stoff on an SGI, so any problems or suggestions could be specific to that platform.
PMT Testing:  During the summer of 1998, we spent some time trying to improve the rise time of the PMT's. We determined that, while the rise time may be improved by about 0.1ns, that improvement is probably not worth the trouble. The attached postscript document outlines our procedures and results, as presented at the Chicago meeting in December of 1998.