When event reconstruction is done on the main stream CDF data tapes, it is likely that only a subset of all events will be completely analyzed. One possible production scenario is to incorporate filtering routines provided by the various physics analysis groups into a single executable image and to reconstruct all events that pass one or more of the filters. (The reason for doing this within a single program is that there is likely to be significant overlap between the physics filters and it is inefficient to reconstruct the same events more than once.) This possibility puts two requirements on the analysis driver. First, since several physics analyses are being done in parallel, it makes sense to write several output files: one containing the events selected by each physics group. Second, since the different analysis will share some (but not necessarily all) reconstruction code, the package must be able to handle multiple analysis paths concurrently. If a module is needed by two analysis paths, this module should be run only once per event, even if that event passes the both paths' event filters.
ANALYSIS_CONTROL provides the capability for multiple analysis
paths and multiple output streams. Additional paths can be specified
with the USE_MODULES and FILTER commands.
For example, the series of commands:
USE_MODULES/PATH=1 MYANL1 STANDARD1 MYANL2
USE_MODULES/PATH=2 YOURANL1 STANDARD1 YOURANL2 STANDARD2
FILTER/PATH=1 MYANL1 ON
FILTER/PATH=2 YOURANL2 ON
set up two analysis paths. The first path runs modules MYANL1, and then
runs STANDARD1 and MYANL2 only if MYANL1 said the event was good. The second
path runs YOURANL1 and then runs STANDARD1 (unless it has already been
run in path 1) and YOURANL2. STANDARD2 is only executed if YOURANL2 also
said the event was good.
If the user wishes to specify that the events that make it through the
first path are written to one file (called OUTPUT1.YBS)
and the events that make it through either the second OR third path are
written to another (called OUTPUT2.YBS) , he can give the following commands:
OUTPUT/STREAM=1 FILEOUTPUT1.YBS
OUTPUT/STREAM=1 SELECT EVENT/PATH=1
OUTPUT/STREAM=2 FILEOUTPUT2.YBS
OUTPUT/STREAM=2 SELECT EVENT/PATH=(2,3)
If the user wishes to specify that events that pass filter YOURANL2 are
written to stream one, and the logical AND of a set of filters, MYANL1
and YOURANL2, are written to stream two, he can give the following commands:
OUTPUT/STREAM=1 FILEOUTPUT1.YBS
OUTPUT/STREAM=1 SELECT EVENT/FILTER=YOURANL2
OUTPUT/STREAM=2 FILEOUTPUT2.YBS
OUTPUT/STREAM=2 SELECT EVENT/FILTER=(MYANL1,YOURANL2)