next up previous contents
Next: Adding Banks to Up: Some Advanced Features Previous: Multiple Parameter Sets

Calibration Consumers

The ANALYSIS_CONTROL framework is used for calibration consumer processes as well as offline analysis. In this enviroment, however, there are additional requirements placed on the system:

  1. Only a subset of the online consumer processes are automatically fired up by RUN_CONTROL. In the case of calibration, this means the consumer framework must make sure that the calibration data is taken only once the correct run has started.

  2. Some calibration tasks can act on several different input banks (corresponding to different detector components). It is useful to have a general way of specifying that only a subset of the specified banks should actually be examined. (The desire to handle this problem in a unified manner is driven by our belief that at some future date the online calibration tasks will be driven by RUN_CONTROL. Uniformity in implementation at this stage will make such future enhancements much easier.)

  3. Calibration consumers are likely to write calibration database files in their end run entrypoint routines. A mechanism to disable the writing of such files is desirable for program debugging. The calibration user needs the ability to enable and disable the code that compares the current calibration data with a reference file to create a bad channel list and the code that displays to the terminal the results of the calibration.

  4. In addition, these calibration files should be written whenever the specified number of events are processed. Since the writing of database files will be done from the endrun entrypoint of the calibration module, it is necessary that this entrypoint be called at the end of event processing, even if no endrun record is encountered.
Because of these requirements, a special calibration command exists in ANALYSIS_CONTROL. This command replaces BEGIN and CONTINUE and has as a required parameter the range of runs for which analysis should be performed. In addition, it allows the user to specify whether database files should be written (using the optional qualifier /[NO]TMP), to specify an input banklist (using the optional qualifier /BANKLIST=<text>), to turn on or off the checking against a reference file (/[NO]CHECKREF) and to enable or disable display activities (/[NO]VIEW). The program performs the appropriate endrun activities whenever the requested number of events has been analysed. Note: switching between analysis and calibration versions of the software does not require relinking the code. In order to access the TMP, BANKLIST, REF and VIEW information filled by the CALIBRATE command, functions have been provided:

STATUS = ANGTMP(TMPON) or

STATUS = ANALYSIS_GET_WRITE_TMP(TMPON)

returns the logical variable TMPON, which is .TRUE. if a calibration database temporary file should be written and .FALSE. if no file should be written. Similarly, ANGVEW(VIEW) and ANGCHR(CHKREF) perform the same function for the view and checkref flags respectively. If the code author provides a Character*4 array BNKLST(NDIM), then the function:

STATUS = ANGCBK(NDIM,NUSED,BNKLST) or

STATUS = ANALYSIS_GET_CALIB_BANKS(NDIM,NUSED,BNKLST)

returns in that array a list of the banks to be calibrated. NUSED is the number of banks returned. If the dimension of BNKLST is not large enough, then the routine will return the status ANLSTR (list truncated).


next up previous contents
Next: Adding Banks to Up: Some Advanced Features Previous: Multiple Parameter Sets



sexton@fnal.gov