next up previous contents
Next: Monitoring and Calibration Up: Executables Previous: Pre-Processing

Processing

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.


next up previous contents
Next: Monitoring and Calibration Up: Executables Previous: Pre-Processing
Elton Smith
10/8/1999