Software Package Directory Structure

Domains are the highest level of directory structure for packages (under $STAR/pams) and refer usually to a particular function or subsystem; e.g. there are domains for TPC, SVT, EMC, GSTAR.

Packages live under domains and contain the software for a particular function; e.g. a domain may have packages for geometry, simulation, tracking.

Modules are the actual parts of the software executed from STAF. They are contained in a package (may be more than 1) and may perform different tasks leading to the full functionality of the package.

Each domain contains the following directory substructure:

    pams/domain/idl      table IDL file definitions for all packages
               /inc      include or header files used by more than one package
               /kumac    kumac files for all the packages
               /packages directory for each package

A package exists in the repository as a directory under a domain and contains

As an example, the files in the tpc/tfs package is shown below (as of 7/98). There are 2 modules (tfs_filt and tfs_g2t) with source code and module idl files. There are also other source codes called from the modules. The way to find the modules (as opposed to other source code) is to list the idl files and look for the source code of the same name.

    pams/tpc/tfs/README - information
                 doc  - subdirectory with documents
                 tfs_displ_event.F - associated source
                 tfs_filt.c   - Module source
                 tfs_filt.idl - Module idl
                 tfs_g2t.F    - Module source
                 tfs_g2t.idl  - Module idl
                 tfs_g2t_hit_rd.F - associated source
                 tfs_gen_padres.F - associated source
                 tfs_hit_smear.F - associated source
                 tfs_hit_sort.F - associated source
                 tfs_ini.F - associated source
                 tfs_tpchit_merge.F - associated source

STAR Collaboration Meeting 7/98                     Kathy Turner, BNL                     Offline Software Tutorials