Next: Adding Banks to
Up: Some Advanced Features
Previous: Multiple Parameter Sets
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:
- 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.
- 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.)
- 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.
- 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: Adding Banks to
Up: Some Advanced Features
Previous: Multiple Parameter Sets
sexton@fnal.gov