The uDST production root directory

Aus HERMESwiki
Version vom 28. Oktober 2011, 16:13 Uhr von Caro (Diskussion _ Beiträge) (added category)
(Unterschied) ← Nächstältere Version _ Aktuelle Version (Unterschied) _ Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Section 4: Organization of the uDST production root directory

The code and the external input files for each uDST production are organized into subdirectories according to their function. These subdirectories are:

picture of the structure

The following subsection discuss the items in each of these subdirectories:

(1) udst_source_code -
(a) udst_maker :

the source code for the uDST production program situated in three subdirectories:

include - the include files for the udst_maker code.
newddl_97 - the ddl files, including the udst ddl, for all tables (except thoses containing slow data) used by the udst_maker code.
source - the source files for the udst_maker code.
NOTE: Although the executeable code resides in the /source subdirectory, it should not be referred directly by any scripts. Instead, all scripts should it indirectly via the symlink in the /bin directory. In this way, the choice of uDST production can be changed without modifying any scripts.
(b) event_checker :

the source code for the event checker program. As one of the preprocessing steps in the uDST production scheme, this code is used to detect any event-level data quality problems. When executed on all the hrc.devents files in a fill, this HANNA-frame code produces an ASCII file called event_checker_file with a list of the anomolies detected in the event data for the fill. This file is later read by the uDST production program and used to set data quality bits. The code is contained in two subdirectories:

include - the include files for the event_checker code.
source - the source files for the udst_maker code.
NOTE: Although the executeable code resides in the /source subdirectory, it should not be referred directly by any scripts. Instead, all scripts should it indirectly via the symlink in the /bin directory. In this way, the choice of uDST production can be changed without modifying any scripts.
(c) nano_semi : the source code for producing the semi-inclusive nano DSTs. In one of the nano-DST passes, this HANNA-frame code is executed on the uDSTs and filters out the events which are useful for semi-inclusive analysis.
(2) gms_preprocessing -

the source code and scripts for preprocessing the information from the GMS into the format expected by the uDST production program. This preprocessing determines the number of dead blocks in the top calo, bottom calo, top H2, bottom H2, and lumi for each burst according the gms information in the deaddets.dat files. The output from this preprocessing step is written into the gms_deaddets.dat file. This file is then read in by the udst_maker code and used to fill the g1CaloDead and g1H2LumiDead fields of the g1Quality table.

the preprocessing is performed by two pieces of code. The codes are stored in the two sub-directories to this directory and are:

gms_stripper - the source code for the program which processes the information in a single deaddets.dat file. The later data file contains the output from the GMS code executed by the main production.
prepare_gms_deaddets.sh -

the script, executed during a uDST production by the [production_scripts.html#execute_uDST_preprocessors.sh execute_uDST_preprocessors.sh] shell script via a symlink in the /bin directory, runs the gms_stripper code on the deaddets.dat file for each run in a fill and produces the gms_deaddets.dat file.

(3) runlists -

the runlists from the various groups. This directory contains a single subdirectory for each group. These group subdirectories are:

beam -

the beam polarimeter data quality ([runlist.html#runlist.beam tpoldq.dat]) and the source for the "best" beam polarization information ([runlist.html#runlist.beam info_source.fill]). The former file provides the entry for the iBeam field of the g1Quality table. The later file provides the source for the rPol, rPolErr, rPolSystErr fields in the g1Beam table.

target -

the target data quality ([runlist.html#runlist.target runlist]) and the source for the "best" target polarization and alpha information. ([runlist.html#runlist.target info_source.fill]). The former file contains the offline data quality analysis of target parameters and is presently used to fill the the iGasType field of the g1Quality table. The later

trd -

the trd data quality information file ([runlist.html#runlist.trd trd_goodlist.dat]) from which the iTRDdq field of the g1Quality table is filled.

cerenkov -

the cerenkov data quality information file ([runlist.html#runlist.cerenkov cerenkov_goodlist.dat]) from which the bCereDQ field of the g1Quality table is filled.

calo_thresh -

the calorimeter threshold information is contained in the ([runlist.html#runlist.calo_thresh calo_thresh.lst.formatted]) file. This information is used to fill the rCaloThresh field of the g1Quality table.

(4) hv_preprocessing -

the source code and scripts which, as described in the [hv_preprocessing.html hv processing documentation], are used to preprocess the CAEN HV trip information so that it is properly synchronized with the event data.

(5) hv_info - this directory contains the CAEN HV channel to detector mapping file (hvtodets.map) determined from Walter's CAEN.doc.
(6) g1links - the symlinks to all of the production inclusive g1-uDSTs.
(7) smlinks - the symlinks to all of the production semi-inclusive sm-uDSTs.
(8) pdlinks - the symlinks to all of the production PID pd-uDSTs.
(9) scripts -

the production scripts for the uDST production. The main scripts are:

[production_scripts.html#handle_uDSTproduction handle_uDSTproduction]

- the main script executed by the daemon to produce will produce a fill's worth of uDSTs. When executed, the current working directory should be the directory in which the uDST production will be done.

[production_scripts.html#setup_production setup_production]

- this script, executed by the handle_uDSTproduction script, creates the symlinks to all of the files needed by the uDST production.

[production_scripts.html#execute_uDST_preprocessors.sh execute_uDST_preprocessors.sh]

- this script, executed by the handle_uDSTproduction script after the setup_production script, collects and generates the data quality information for the runs in a fill. This information is stored in a series of ASCII files that are later read by the uDST production program.

[production_scripts.html#do_production do_production]

- this script, executed by the handle_uDSTproduction script after the execute_uDST_preprocessor.sh script, creates the uDSTs by running the preprocessors and then uDST production program.

[production_scripts.html#prepare_runlist.sh prepare_runlist.sh]

- this script, executed by the execute_uDST_preprocessors.sh script, creates the runlist data quality file for the fill.

[production_scripts.html#prepare_burstbounds.sh prepare_burstbounds.sh]

- this script, executed by the execute_uDST_preprocessors.sh script, uses the GMS deaddets.dat files to determine the burst boundaries for the runs in the fill.

[production_scripts.html#wipe_production wipe_production]

- this script is executed by the daemon to remove a fill from disk.
(10) config -

this subdirectory contains the [udstd_files.html#fill.conf fill.conf] and the [udstd_files.html#disk.conf disk.conf] configuration files which direct the daemon. The former file contains the information about about each fill handled by the production and the later file contains the information for each production disk used by the production.

(11) operation -

the symlinks to the production directory for all of the produced fills. These symlinks are stored in subdirectories called /udst and /nano_?? in order to separate the production directories for each DST type. These symlinks have the following format:

fill.fill number.uDST type
where:

the fill number is taken from column 2 and the uDST type is taken from column 6 of the fill's entry in the [udstd_files.html#fill.conf fill.conf] file.

(12) bin -

the common directory with the executable codes, including the [section1.html daemon] and the [udstd_files.html#udst.conf udst.conf] file. For most other executable codes, this directory has a symlink to the code instead of the actual code.

(13) taping - the taping scripts.