Podd version 1.4
17 July 2006
The Hall A software team is pleased to present version 1.4 of the
C++ analysis software Podd. This version is largely a maintenance release;
it includes various corrections and smaller improvements that have
accumulated since the release of version 1.3 in June 2004.
The main structural improvement is in the decoder. The decoder
interface is now an abstract base class, and the actual implementation
can be chosen by the user. In this version, a standard CODA file decoder
is provided, and an alternative frontend interface to simulation data (VDCsim)
is available in a separate
package.
The most current beam helicity code is available as a
separate plug-in.
The older THaHelicity class is still available as before, but expect
its functionality to change in the next release.
What's new
Compared to Release 1.3, the following features have been added:
- Improved support for split CODA input files.
- Improved support for split ROOT output files.
- Support for writing arbitrary ROOT objects to the ROOT output file
(e.g. TLorentzVector).
- Support for writing the non-event data from analysis objects (detectors, apparatuses,
physics modules) to the ROOT output file, for example to document calibration and
geometry parameters used for the analysis.
- Support for "F1" and CAEN 767 TDCs.
- Support for G0 helicity scheme. Improved handling of helicity data.
- Improved scaler package with more functionality
(see the online
scaler documentation).
- BPM and raster calibration scripts are supplied.
- The Chi^2 of the cluster track fitting in the HRS VDCs is calculated.
- Track intercepts and pathlengths are calculated for all tracks at all detector
positions.
- More calculated kinematics variables available as global variables from
kinematics physics modules.
- Support for new prescale event type.
- Fix for incorrectly calculated HRS VDC plane spacings. This may require
re-optimization of matrix elements since it affects the calculated V-slopes.
- Support for gcc4 and 64-bit environments.
Compatibility
Version 1.4 is mostly source-compatible with version 1.3, but
not binary-compatible. The one known source code incompatibility occurs
in the THaDetector class hierarchy: The member variables fDetector and
fApparatus have been changed from simple pointers to TRef objects.
Classes that formerly accessed these pointers directly should now use calls
to the GetDetector() and GetApparatus() member functions. For example,
replace
TString name = fApparatus->GetName();
with
TString name = GetApparatus()->GetName();
Modules developed for version 1.3 must be modified like this, but will then still work
with version 1.3 or earlier. Of course, all modules need to be recompiled for use
with version 1.4.
The only module that is known to have been affected by this change is the RICH library.
The RICH code has been patched in CVS.
NOTE: ROOT 5.08/00 contains a bug in the TFormula code that causes Podd's test
and output packages to crash "mysteriously" under certain circumstances. Please avoid
using this version of ROOT and upgrade to ROOT 5.10/00 instead.
System requirements
- Linux with gcc/g++; or Solaris with the Sun Workshop compiler.
- ROOT 3.02 or higher. CAUTION: Do not use ROOT 5.08/00! (see above).
- GNU make
- Decent hardware (at least 300MHz CPU, 256MB RAM). Compilation of the
dictionary takes forever unless your CPU speed is at least 1GHz.
The following platforms have been explicitly tested:
- RedHat Enterprise Linux 3WS with default compiler (gcc 3.2.3)
and ROOT 4.04/02 and ROOT 5.10/00.
- RedHat Linux 9 with default compiler (gcc 3.2.2) and ROOT 5.10/00.
Most other recent Linux and Solaris installations should work as well.
Other Unix platforms require (probably fairly simple) changes to the Makefiles.
Building and installing the program
Please see docs/install.html
Running the program / How to analyze data
Please see docs/quickstart.html and
the main documentation page.
Example Scripts
Example scripts can be found in the "examples" and "examples/BPM" subdirectories.
Documentation
Further documentation is available in the "docs" subdirectory and
at the project home page.
Credits
Special thanks to Rob Feuerbach, Robert Michaels, Bodo Reitz,
Ken Rossato (summer student), and Amy Orsborn (summer student) who contributed
significantly to this version.
Ole Hansen <ole@jlab.org>
Last modified: Mon Jul 17 14:20:11 EDT 2006