In the past, three histogram packages are in use within CDF. As of version_9.03 of Analysis_Control HBOOK is the only supported package. HBOOK is the latest CERN histograming package. Output files produced in A_C can be viewed and manipulated with PAW (another popular CERN product). This is mainly a batch oriented package however the user may choose to link in the HPLOT package and interactively view histograms through the module's talk-to entry point (as is done for some online consumers). Another package, YHIST, was developed primarily for use in an interactive graphics environment (used by other consumers) and offers compatibility with the YBOS data management package in use throughout CDF. The other package, HBOOK3 was available for backwards compatibility. Because of this the user can specify from within BUILD_JOB whether he wants HBOOK, or YHIST to be initialised. (The default is to initialise HBOOK, and it should be left this way unless the user really wants to link a run 1 online consumer.) BUILD_JOB will also allow the user to specify the size of the storage space associated with each histogram package. ANALYSIS_CONTROL then provides a means of enabling, disabling, clearing, deleting and writing (on demand) histograms on a module by module basis, from inside the executable image. HBOOK files are used for temporary storage buffers if N-tuples are booked. For this reason you must open the file before you book the N-tuples and begin analysis. You can then write to them at any time. For YHIST, histograms are output as a volume and folder (which can later be examined using the YHIST display program).
In order to use the histogram manipulation features in ANALYSIS_CONTROL, the module's author must do the following things:
HISTAT = ANGHAC()
HISTAT will give a value of .TRUE. if the histograms for the module are both booked and enabled and a value of .FALSE. otherwise. A similar logical function ANGHBO tells whether the histograms for the module have been booked.
STATUS = ANPHST(HISTAT) or
STATUS = ANALYSIS_PUT_HIST_STATUS(HISTAT)
where HISTAT is .TRUE. if the module has just booked its own histograms and .FALSE. if the module has just deleted its histograms.