Podd version 1.6-beta3
18 January 2017
The Hall A software team is pleased to present the third beta release
of version 1.6 of the C++ analysis software Podd. This version
contains many significant improvements motivated by the long
experience with version 1.5. This is still an unstable release, i.e. not
all features have yet been frozen.
Version 1.6 is not binary compatible nor fully source-compatible with
the previous release 1.5. Several parts of the programming interface
have changed. As a result, libraries and plug-ins for version 1.5
will have to be recompiled and, in some cases, minor source code
changes may be necessary.
As much as possible, the bug fixes as well as some of the additional
functionality of this release will be) backported to version 1.5. We
plan to support version 1.5 for several years into the future because
many earlier Hall A experiments have spent considerable effort on
developing complex libraries for this release. They should not be
forced to upgrade. For new development, however, version 1.6 is
The main improvements in this release are the modular decoder, the
unbundled EVIO library, and a partial rewrite of the VDC reconstruction code.
Additionally, all analysis classes now use the new
database API that was introduced in version 1.5 and has been
generalized since then.
Compared to Release 1.5,
the following features have been added:
- All analysis objects (detectors, spectrometers, etc.)
that are part of the core analyzer now use the
database API, which reads database files in key/value format.
This means that existing fixed-format databases for these detectors etc.
must be converted to the new free-format key/value style.
Release 1.6 includes a conversion
program, dbconvert, that automates this task as much as possible.
Please see the documentation for details.
- The EVIO subsystem
is loaded from an external shared library. This brings support for the latest
version of EVIO (currently 4.4.6) and permits updating of EVIO without having to
rebuild the core analyzer. If EVIO is not installed on the user's system, the
analyzer build system will attempt to download and install it automatically.
- The decoder has been rewritten to support drivers for front-end hardware as
plug-ins. New decoding routines for new hardware can be added easily via user-written
shared libraries. Documentation can be found
- The new decoder makes the processing of different event or trigger types
configurable via "event type handler" plug-ins.
- Preliminary support is available for JLab 12 GeV pipelined electronics
(FADC250, F1TDC, etc.)
- The generic hardware channel decoder, THaDecData has been completely
rewritten, using an object-oriented design.
- The track reconstruction of the VDCs of the Hall A HRS spectrometers has been
partly rewritten. Known bugs have been fixed. The reconstruction of multi-cluster
events should be greatly improved.
- The VDC efficiency calculation code has been moved from THaDecData
into a standalone physics module, VDCeff.
- Many limitations of the formula and test package have been removed.
It is now possible to define formulas and tests on variable-sized arrays,
including std::vector global variables.
- Explicit support for simulation input data has been added, simplifying the
handling of Monte Carlo truth data (base class Podd::SimDecoder).
- There is experimental support for building the analyzer with the scons
build system. Users will have to install scons version 2.1 or greater themselves.
- Support for ROOT 6 and current compilers.
- Compatibility fixes for Mac OS X. The analyzer has been tested on OS X 10.6
(Snow Leopard) through 10.12 (Sierra) with the matching command line tools
for Xcode. A full installation of Xcode is not required.
- Miscellaneous minor bug fixes.
Version 1.6 is neither source-compatible nor binary-compatible with version 1.5 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.
The following platforms have been explicitly tested:
- Linux with gcc/g++ 4 or higher; or Mac OS X 10.6 or higher with Apple's
command line tools for Xcode (providing gcc/g++ or clang/clang++).
Both 32-bit and 64-bit platforms are supported.
- ROOT 5.10 or higher, including ROOT 6. Version 6.08 stongly recommended.
- GNU make
- Reasonably powerful hardware (2GHz CPU, 1GB RAM).
Less will work, but it won't be fun.
Most other recent Unix-like installations should work as well.
- RedHat Enterprise Linux 5, 6 and 7
- Fedora 14 through 25
- Ubuntu 12.04 LTS (Precise)
- Mac OS X 10.6 through 10.12
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 can be found in the "examples" and "examples/BPM" subdirectories.
Further documentation is available in the "docs" subdirectory and
at the project home page.
Special thanks to Robert Michaels, Steve Wood, Ed Brash and everyone else
who made valuable contributions to this version.
Contact: Ole Hansen <firstname.lastname@example.org>
Last modified: Wed Jan 18 15:45 EST 2017