What would you pay for this amazing product? $500? Too much! What would you say if I said you could get it for amazingly low, low price of free? Read on.
|reco_minos||The main program. Users modify the size of the /PAWC/ common and define the GAFKey_Types that trigger calls to reco_event or reco_notevt. Then a call is made to reco_minos_loop which handles everything else.|
|reco_init||called once before any GAF files have been read, but after zebra and hbook have been intialized. Book global histograms (run and file independent) here. Define FFREAD data cards in this routine.|
|reco_hist||called once before any GAF files have been read, but after the FFREAD has been processed. Book histograms that depend of FFREAD data card input values; perform any other FFREAD dependent calculations.|
|reco_notevt||called after reading a 'not event' record. Typically this will be a geometry (GAFKey_Type='GEOM') record.|
|reco_new_run||called every time a event is read in where the run number changes.|
|reco_event||called for every record classified as an 'event' that passes run/event cuts. Currently, only GAFKey_Type='GEVT' records contain event-like information.|
|reco_end_run||called every time a 'run number' sequence would end (including last event) Do not use the GAFKey value (since it corresponds to the next run); the old run number is passed as an argument.|
|reco_finish||called at the conclusion of all GAF record processing. Typically one would print out any counters and write out histograms.|
Users can modify the name of the gaf file or gaf file list without recompiling and linking, by specifying the environmental variable RECO_GAF_LIST (UNIX only, sorry VMS). The default filename is reco_minos.gaf_list.
The list is currently processed sequentially, each gaf file taken in turn. Future enhancements may include the ability to simultaneously use multiple input files (for mixing data samples (be sure that they use the same geometry though!)) and the ability to tag a file as endless (rewind upon EOF).
Lines from the list file are processed as follows. Everything from a ! onwards is treated as a comment and ignored. Blank lines (including those created by a ! in the first column) are ignored. The last line must have a trailing return or it may be ignored (operating systems vary in their treatment). Lead blanks are ignored; fields are separated by blanks (not tabs, yet). The first field is taken to be the filename. The existance of this file is checked using the FORTRAN inquire statement. Further processing of alleged files that don't exist is skipped.
Following the filename are six optional fields that affect the handling of events in that file. They must occur in this order, using * as a placeholder for the default ("huge" represents a very large integer).
|mx_nevt_tot||huge||limit on total # evt to processed (including previous files) |
while processing this file
|mx_nevt_file||huge||limit on # evt in this file to process|
|irunlo||0||accept no evt w/ run # lower than this|
|irunhi||huge||accept no evt w/ run # greater than this|
|ievtlo||0||accept no evt w/ event # lower than this|
|ievthi||huge||accept no evt w/ event # greater than this|
cvs -d firstname.lastname@example.org:/usr/local/cvsroot checkout reco_minosThis creates a directory with the reco_minos code including example user routines. The linking process depends on being able to access the gminos and util libraries for the definitions of the ADAMO "objects" (ESets) and support routines. These need not be in your area (ie. every user does not have to have a private version of them) but can be shared by users at a common site. This can be achieved by properly defining the setenv environmental variables to point at the common library areas.