Recsis

From CLONWiki
Revision as of 21:11, 18 October 2007 by Boiarino (talk | contribs)
Jump to navigation Jump to search

The CLAS reconstruction and analysis package (RECSIS) has been modified to read data from the CLAS event transfer (ET) system so users can perform full-fledged track reconstruction and other complex analyses during data acquisition on a down-scaled subset of the incoming data. The capability of reading the ET system is part of the standard RECSIS so that users performing offline analyses can quickly and easily generate a version of their code that can be used during data collection.

Send questions, complaints, flames, and such to gilfoyle@jlab.org.

Building RECSIS

The following procedure describes how to get started using the RECSIS_ONLINE package that is an adaptation of RECSIS to the online environment. It enables the user to perform track reconstruction on a downscaled fraction of the incoming data.

For example to build release-4-17 do following:

cd /usr/local/clas/offline/clas/builds
mkdir release-4-17
cd release-4-17
setenv CVSROOT /u/group/clas/clas_cvs
cvs co online_source




Develop your own version of RECSIS on the JLAB Computer Center machines. Suppose for the moment your recsis source, libraries, and binaries are stored in /net/fs1/home/jojo/test

and you have checked out and modified the user library.


Log into your account on one of the counting house Suns(clon00-clon03) and setup the environment. The following commands can be placed in your .cshrc file. For a sample .cshrc file, log into the CLON cluster and look at the file gilfoyle/.cshrc. source /net/fs2/group/clas/builds/PRODUCTION/packages/cms/jlab.cshrc source /apps/smartsockets/rtinit.csh setenv CLAS_RTIPC_LIB /apps/smartsockets/ss52/lib/sun4_solaris

The first command gets the CLAS environment. The second sets up the inter-process communication package and the third points to the location of a proprietary library. You may also want to set the CVS environment variable TOP_DIR. For our example we do the following.

setenv TOP_DIR /net/fs1/home/jojo/test

Finally, set another environment variable so you can connect to the ET system. This has historically been called clasprod , but you might ask the shift leader what name has been given to the ET session..

setenv ET_SESSION clasprod


Change directory to the area where your version of RECSIS is stored (the user area for our example). If you don't have versions of your libraries for the Sun, make them now. cd /net/fs1/home/jojo/test/user make lib


Now make the RECSIS_ONLINE executable with the following command. make exe ONLINE=yes

You should see the executable 'user_online' in the area '../bin/SunOS'. This command links your recsis libraries with the appropriate online libraries instead of the default dummy libraries.


Edit your tcl input file (e.g. , init.tcl) and include the lines shown below to enable reading of the ET system. set read_et $true setc ipc_name "csis"

To turn off the ET system reading simple set this tcl variable to zero (or $false) and enter the name of a data file (e.g., with the inputfile command). By default read_et=0 or read_et=$false so data is NOT read from the ET system unless you request it. If you do request ET system reading, it overrides reading the data from a file. The second variable defines the unique name of the process so the InterProcess Communication (IPC) system can monitor the data acquisition. More discussion of the tcl parameters associated with reading data from the ET system is below. A sample tcl initialization file is in Appendix B.


Now run RECSIS_ONLINE with the following command (for our example). ../bin/SunOS/user_online -t init.tcl

You will the usual RECSIS output plus some new messages proclaiming the startup of the IPC (InterProcess Communication software) and the connection to the ET system. All the usual RECSIS commands should work.