Wiki » History » Revision 15

« Previous | Revision 15/29 (diff) | Next »
Rogers, Chris, 23 February 2012 12:10


A multiparticle tracking postprocessor library for accelerator physicsists. You've got your favourite tracking code running, what now? This package is a post-processor for taking beam data to calculate beam emittance, Twiss functions, etc. Also includes bindings to plotting packages ROOT and matplotlib, and a whole lot more!

Download and Installation

You can download the latest version from the code repository hosted on sourceforge. This is mirrored on launchpad.

Installation instructions are in the README file, but you probably have to do something like:

tar -xzf xboa-<version>.tar.gz
cd xboa-<version>
python build
sudo python install

At the moment only Linux is supported, but windows support would be pretty easy to implement if there was demand.


When doing any physics analysis beyond the most basic, one really wants to be able to manipulate the analysis in various ways. For any detailed analysis, physicists will want to make cuts and calculate different variables in different ways. For this reason x-boa really provides just a library of physics analysis functions. Examples of how to use it are provided, but once physicists get going they can really push the analysis however they like.

There are several example scripts in the directory xboa-<version>/xboa/examples that are good to start with. They take you through the steps required to load particle tracking data, access it, make plots and manipulate it in various ways. Reference documentation is in the directory xboa-<version>/doc. Browse the example script code at:

Example 1
Example 2
Example 3
Example 4

There is also a script that almost clones the functionality of the ecalc9f code developed by Greg Penn and Rick Fernow:



Documentation is generated by the installation process, or available inline from the python command line by doing

import xboa.Bunch

Three modules are available
  • Common contains some useful general purpose routines including general plotting routines
  • Hit provides the interface to individual monte carlo Hits (e.g. particles traversing some output plane)
  • Bunch provides interface to operations on groups of particles (e.g. moment and Twiss parameter calculation)

Updated by Rogers, Chris over 12 years ago · 15 revisions