One function provided by ANALYSIS_CONTROL is the ability to redefine without relinking the effect of a filter decision on the data path. The package allows for the possibility of event filtering to occur at many stages within the job. Each module can in fact make a decision about the event. This decision consists of a logical variable, which tells whether the event is "good" or "bad." In addition, the module can provide up to 128 integer words (4096 bits) that categorize the event. These integer words are expected to be a bit pattern, analogous to the online trigger mask, and shall hereafter be referred to as the module's "Tag Bits," since they are meant to tag the reason(s) why the event was accepted or rejected by the module. These Tag Bits will be included in the data stream for the event and therefore will appear on the output file.
Using the FILTER command, the user can specify inside their program whether they wishes to ignore the filter decisions made by an individual module or change the type of decision made using the /SPECIFY qualifier. There are two types of decisions SELECT and VETO. SELECT is the default and means that processing will continue if the filter declares this to be a "good" event. A VETO decision means that processing will continue if the filter declares this to be a "bad" event, this feature is useful for users who want to study filter efficiencies and create a sample of events that fail a given filter.
In the absence of any FILTER commands whatsoever,
the default condition is to keep and continue to analyze all events
regardless of any filter decision. By specifying:
FILTER MYANL1 ON
The user tells ANALYSIS_CONTROL to stop processing events if
the module MYANL1 says the event is "bad." If however, the sequence of
commands:
FILTER/SPECIFY MYANL1 VETO
FILTER MYANL1 ON
was given ANALYSIS_CONTROL will stop processing events if the module MYANL1 says the event is "good."