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 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 of 1e38?

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: 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.

Updated by Ole Hansen over 6 years ago · 1 revisions