Podd version 1.5
28 April 2008
The Hall A software team is pleased to present version 1.5 of the
C++ analysis software Podd. This version contains many significant
improvements that were driven by the experience with analyzing
recent experiments in Hall A as well as the requirements
of the complex BigBite spectrometer tracking code.
Several parts of the programming interface in this release have changed
compared to Podd version 1.4. As a result, plug-ins for version 1.4 will have
to be recompiled. In some cases, source code changes will be necessary.
However, most of the bug fixes as well as some of the additional functionality of
this release have been (or will shortly be) backported to version 1.4. We plan to
support version 1.4 for several years into the future because many earlier
Hall A experiments have spent considerable effort on developing complex libraries.
They should not be forced to upgrade. For new development, however, version 1.5
should be used.
The main improvements in this release are the database system, which now
supports a much more user-friendly free file format and additional data
types, and the helicity classes, which have been restructured and integrated
into Podd. The old THaHelicty class has been replaced with
a new version which performs a reasonable default action for standard
polarization experiments.
What's new
Compared to Release 1.4,
the following features have been added (as of patch version 1.5.12):
- Expanded database capabilities (arrays, strings, free format files). Database
reader functions no longer need to be written by hand using cumbersome raw I/O
calls, but can be reduced to the definition of a database request
(DBRequest structure) followed by a call to THaAnalysisObject::LoadDB.
- Support for "reference channels" in detector maps.
- Restructured and fully-integrated helicity classes (user classes THaHelicity,
THaADCHelicity, and THaG0Helicity).
- Intelligent handling of split CODA raw data files (continuation segments).
- Improved scaler code (helicity sorting).
- Speed improvements in writing the output ROOT file.
- Ability to sort multiple HRS tracks (rare) by Chi2/ndof of the track fit
(THaHRS::SetTrSorting()). This redefines the meaning of the "golden track" in the HRS,
probably for the better.
- Ability to use arbitrary crate map database files (THaAnalyzer::SetCrateMapFileName())
- Run-time configurable verbosity of decoder messages.
- Preliminary support for JLab 250 MHz Flash ADC (non-pipelined "window raw data" mode).
- Support for large CODA input files (> 2GB).
- Support for current versions of ROOT and gcc/g++.
- Miscellaneous minor bug fixes.
Compatibility
Version 1.5 is neither source-compatible nor binary-compatible with version 1.4 and
prior releases. Plug-ins and user libraries will need to be recompiled and possibly
changed. Please contact the developers if you need to do this and run into problems.
System requirements
- Linux with gcc/g++ 3.2 or higher; or Solaris with the Sun Workshop 5 compiler.
- ROOT 5.10 or higher. 5.18 or higher recommended.
- GNU make
- Reasonably powerful hardware (2GHz CPU, 1GB RAM). Less will work, but it won't be fun.
The following platforms have been explicitly tested:
- RedHat Enterprise Linux 3 and 5 with default compilers (gcc/g++ 3.2.3 and 4.1.2)
and ROOT 5.10 through 5.24.
- Fedora 6, 9, and 11 with default compilers (gcc/g++ 4.1.2 through 4.4.1)
and ROOT 5.16 through 5.24.
Most other recent Linux and Solaris installations should work as well.
Other Unix platforms require (probably fairly simple) changes to the Makefiles.
An unofficial port to Mac OS X exists. Please contact the developers for details.
Building and installing the software
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 Robert Michaels and Jin Huang, who made valuable contributions
to this version.
Contact: Ole Hansen <ole@jlab.org>
Last modified: Fri Dec 11 19:33:37 EST 2009