Podd (the Hall A C++ Analyzer) Frequently Asked Questions
02 Dec 2005
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 just changed one header file, why is compilation so slow?
A: ROOT needs to build a dictionary in order to use Podd's classes;
this dictionary is rebuilt in entirety whenever a header file for
one of those classes is changed. Depending upon you machine, this
could take a minute or two.
--------------------------------------------------------------------
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.