Processing the data involves taking a file of BOS banks produced by the on-line data aquisition system and producing a file containing higher level information, such as four-vectors. This job is performed by a program called a1c and as such, it is the engine for the reconstruction scheme. To do this a1c reads an input file of BOS banks, obtains the necessary calibration constants to properly analyze these banks and produces a file of BOS banks containing various reconstruction banks. The ouput from a1c is then used as input for various monitoring and calibrations programs.
a1c is controlled by command line options and a single environment variable, $CLAS_PARMS map database files which contain the calibration constants. To obtain a list of the command line options for a1c type:
a1c -h
a1c contains a large number of command line options, most options in a1c relate to controlling which banks or events are contained in the output file, and not in the way in which those banks are created. This reflects the design philosophy for a1c, in that for production processing there should be only one correct way to produce any given bank and that way is the default in a1c. The most commonly used flag in a1c is the -o<output_file> flag. This flag specifies the name of the file of reconstruced BOS banks produced by a1c.
Two flags of particular importance for a1c are the bitwise process flags and drop flags. The bitwise process flag indicates to a1c which software packages will be turned on during its operation. To use the bitwise process flag, one gives the -P argument followed by a bit pattern. Below is the excerpt from the a1c command line help relating to the process flag.
[-P#] Bitwise Process flags, as defined below:
0x1 Hit-based tracking (HBTR)
0x2 Time-of-Flight (SC)
0x4 Hit-based particle id (HBID)
0x8 Electromagnetic Calorimeter (EC)
0x10 Cerenkov Counter (CC)
0x20 Time-based tracking (TBTR)
0x40 CALL bank analysis (CL01)
0x80 Time-based particle id (TBID, PART)
0x100 Simple Event Builder analysis (SEB)
0x200 LAC analysis
0x400 Tagger analysis
0x800 Start Counter analysis
0x1000 Construct TRKS from HBID
0x2000 Construct TRKS from TBID (re-does TB)
0x4000 Construct RGLK bank(build region 1 track bank)
For example: HBTR + HBID + TBTR: -P0x25
Default: 0xFFFF
To turn on a particular package one must turn on its associated bit, so for example
if one wanted to process a data file turning on only hit based tracking and time-of-flight
analysis one would use the bitwise process flag of -P0x3 the 0x indicates that it
is a hexidecimal number, and the three just comes from simple arithmatic (0x1 + 0x2 = 0x3).
The bitwise drop flag removes from the output banks various banks and
uses a bit pattern in a similiar fashon to the process flags.
What follows is an excerpt from the command line help about the -D flag.
[-D#] Bitwise Drop flags, as defined below:
0x1 Drop RC00->16 Banks
0x2 Drop DC0 Bank
0x4 Drop DC1 Bank
0x8 Drop HBLA Bank
0x10 Drop TBLA Bank
0x20 Drop HBTB Bank
0x40 Drop SC Banks
0x80 Drop EC Banks
0x100 Drop HBID Bank
0x200 Drop CL01 Bank
0x400 Drop SEB Banks
0x800 Drop TBID,PART Bank
0x1000 Drop HDPL Bank
0x2000 Drop LAC Banks
0x4000 Drop CC Banks
0x8000 Drop ST Banks
0x10000 Drop DHCL Banks
For example: RC0-16 + DC0 + DC1 + HBLA: -D0xf
Default: 0x0
So for example if one wished to drop the HBLA and TBLA banks from the output stream on would use the flag -D0x18 ( 0x8 + 0x10 = 0x18).
Additional flags of general interest are the -r<bank_list> flag which can be used to drop an arbitrary list of banks and the -s<options> flag which can be used to intruct a1c to write out only events with a specified number of hit based tracks.
An example of the operation of a1c using the process flags and drop flags
used for general electron processing is shown below.:
a1c -o<output_file> -se -D0xf3cd -P0x3fb <input_file>
The location of the source code for a1 is in packages/utilities/a1. In addition a web page documenting some of the options available in a1c is accessable from the Jefferson Lab off-line web pages.