Hall A C++ Analyzer Frequently Asked Questions

18 June 2003

Building and Installing
~~~~~~~~~~~~~~~~~~~~~~~
--------------------------------------------------------------------
Q: Why is building and startup so slow on ifarml1/2/3?

A: Because disk space on iframl1/2/3 is located on busy file servers.
   Things get a bit faster if you work on the local scratch disk 
   /local/scratch, but not much.  To get the speed you deserve, 
   move to your own standalone desktop machine or the Hall A counting 
   house machines.  You will be surprised.

--------------------------------------------------------------------
Q: I get bizarre compilation warnings like

      THaDecDict.C: In function `int G__THaUsrstrutils_Dictionary_2_1 
      (G__value *, const char *, G__param *, int)':
      THaDecDict.C:603: warning: value computed is not used

   What does this mean?

A: This seems to occur with ROOT 3.02 only. It seems to be a problem
   with the code generated automatically by rootcint. The compiled
   analyzer appears to work fine. Either ignore the warning or switch
   to a newer ROOT.

--------------------------------------------------------------------
Q: The source used to compile fine, but then I switched to a different
   version of ROOT/gcc/Linux, moved stuff around, etc., and now I get a
   bizarre error like

     Creating dependencies for src/THaVDCCluster.C
     make: *** No rule to make target `src/THaVDCLookupTTDConv.h', 
         needed by `src/THaVDCHit.d'.  Stop.

A: Dependency files (.d) are out of date. To clean things up, do this:

   % find . -name '*.d' -exec rm {} \;
   % make realclean

   Then rebuild the analyzer.

--------------------------------------------------------------------
Q: I get warnings about undefined symbols and/or my analyzer crashes
   with an inexplicable segmentation fault.  What could be going on?

A: C++ is very sensitive to the exact form of function prototypes
   (signatures). It is possible that some object code in your current
   build directory are out of sync with the version of ROOT you are
   using. (This could happen, for example, if your system administrator
   upgraded ROOT.) Try

   % make realclean; make

   before believing the problem.  If the error persists, it is
   possible that you are using a very recent version of ROOT that is
   not source-compatible with the analyzer.  This can happen as the
   result of "improvements" to ROOT.  It is usually easy to fix.
   Contact the developers.

--------------------------------------------------------------------
Q: How do I get the latest CVS version?

A: Do this at your own risk. The CVS version may sometimes not even
   compile, and likely will contain untested and undocumented features.

   setenv CVS_RSH ssh
   cvs -d :ext:cvs.jlab.org:/group/halla/analysis/cvs checkout analyzer

   If you want a specific version or branch, add "-r tag" after "checkout",
   for instance

   cvs -d :ext:cvs.jlab.org:/group/halla/analysis/cvs checkout -r Release-100 analyzer

--------------------------------------------------------------------
Q: How do I build the analyzer on a non-Linux Unix platform?

A: Currently only Solaris with the Sun Workshop compiler is officially 
   supported. (This is the environment on ifarms1.) To switch to
   Solaris, simply change the definition of "ARCH" in the top-level
   Makefile from "linuxegcs" to "solarisCC5".

   On other platforms (e.g. Tru64, IRIX, HP-UX), you must add
   appropriate compiler names and flags in the ARCH section of
   all the Makefiles. You will need ROOT compiled on your system,
   and you need to compile the analyzer with the same compiler that
   was used to compile your ROOT.

   We will add official support for other Unix platforms as time
   permits and demand justifies.


Running the Analyzer
~~~~~~~~~~~~~~~~~~~~

--------------------------------------------------------------------
Q: Where is the database?

A: The calibration and optics database currently reside under the directory
   pointed to by the DB_DIR environment variable (primary) or analyzer/DB
   directory (fallback) directory, organized with date-based granularity.

   In general, a separate dated directory is needed for each configuration
   (detector map and calibration set). Each detector system has its own file
   which contains the detector's CRATE/SLOT/CHANNEL map, geometry, placement
   and alignment data, as well as calibration constants. The files are
   fairly well commented, and you are referrred to them for more information.	

   Tools are being written such that the Analyzer can perform calibrations
   natively, but at the moment the constants are copied from ESPACE
   databases and reformatted. A MySql database is also implemented, but is
   still undergoing refinement.

--------------------------------------------------------------------
Q: Why are there these very large values (greater than 1.e30)?

A: These are due to "undefined" values being used in the calculation that
   could not be circumvented. You will want to cut these entries from your
   results.

--------------------------------------------------------------------
Q: ESPACE can do XXX. How do I do it in the analyzer?

A: There are a number of items that ESPACE can do that the analyzer is
   not yet capable of. However, this list is shrinking, and the
   flexibility of the analyzer we believe greatly out-weighs this
   temporary short-coming.

   A document is being built to help ESPACE users "migrate" to using
   the Analyzer, showing what variables or commands must be used to
   recover the same items in ESPACE.

--------------------------------------------------------------------
Q: Why is the display behaving poorly after quitting the analyzer/ROOT?

A: ROOT doesn't always return the terminal to a sane state. Use the "reset"
   command to regain control of the screen.