...
This tutorial will show you how to process SLIC output files with the Pandora PFA New package, currently the best performing PFA algorithm, in order to produce Particle Flow Objects (PFOs) (also called ReconstructedParticles) for analysis. It covers building and installing a slic-specific frontend called slicPandora and all its dependencies. Then it will go through the steps for processing slic output using LCSim in order to prepare it for Pandora. Finally, it shows how to run slicPandora using these events. There is also a note on how to generate Pandora detector XML files from compact descriptions.
SlicPandora Build Procedures
Preliminaries
A Linux or Unix platform is assumed and the bash shell is used for all command-line instructions. The actual setup procedures have been tested on Redhat Enterprise Linux 5.5 (Tikanga).
You will need the standard GNU tools installed, e.g. Make, gcc/g++, etc.
The cvs and svn command-line tools are also required for obtaining project source codes.
The cmake tool must be installed, as it is used to build most of the dependencies.
Dependencies
The slicPandora package currently has the following dependencies.
Package | Version | Get It |
---|---|---|
slicPandora | head | SLAC cvs |
lcio | head | SLAC cvs |
PandoraPFANew | head | |
ROOT | 5.26 or greater | |
PandoraMonitoring | head | |
CMakeModules | head |
Quick Build Instructions
These commands can be executed to produce a working slicPandora, using a shell such as bash. Start by making a directory where Pandora will be built. The following commands should then be executed in order from this working directory.
...
No Format |
---|
# CMakeModules
svn co https://svnsrv.desy.de/public/ilctools/CMakeModules/trunk/ CMakeModules
export CMAKE_MODULE_PATH=`pwd`/CMakeModules
# Checkout PandoraPFANew.
svn co https://svnsrv.desy.de/public/PandoraPFANew/PandoraPFANew/trunk PandoraPFANew
export PandoraPFANew_HOME=`pwd`/PandoraPFANew
# PandoraMonitoring.
svn co https://svnsrv.desy.de/public/PandoraPFANew/PandoraMonitoring/trunk PandoraMonitoring
cd PandoraMonitoring
cmake -DROOT_HOME=$ROOTSYS -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DPandoraPFANew_HOME=$PandoraPFANew_HOME .
make
export PandoraMonitoring_HOME=`pwd`
cd ..
# LCIO
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co lcio
cd lcio
cmake -DINSTALL_DOC=off .
make
export LCIO_HOME=`pwd`
cd ..
# Build PandoraPFANew.
cd PandoraPFANew
cmake -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DPandoraMonitoring_HOME=$PandoraMonitoring_HOME -DROOT_HOME=$ROOTSYS .
make
cd ..
# slicPandora.
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co slicPandora
cd slicPandora
cmake -DROOT_HOME=$ROOTSYS -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DLCIO_HOME=$LCIO_HOME -DPandoraPFANew_HOME=$PandoraPFANew_HOME -DPandoraMonitoring_HOME=$PandoraMonitoring_HOME .
make
|
More detailed instructions are listed below.
Detailed Build Instructions
Preliminaries
A Linux or Unix platform is assumed and the bash shell is used for all command-line instructions. The actual setup procedures have been tested on Redhat Enterprise Linux 5.5 (Tikanga).
The cmake tool must be installed for building several of the packages.
You will need the standard GNU tools installed, e.g. Make, gcc/g++, etc.
The cvs and svn command-line tools are also required for obtaining project source codes.
Package Build Instructions
LCIO
Checkout the LCIO project from cvs.
No Format |
---|
cd /workdir
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co lcio
|
Building this project requires the CMake tool, the installation of which is not covered here. It additionally requires command-line GNU Make.
No Format |
---|
cd lcio
cmake .
make
|
The cvs head or last release tag should both work.
Set the LCIO environment variable.
No Format |
---|
export LCIO=`pwd`
|
This variable will be used by subsequent packages to locate LCIO and make a setup script.
CMakeModules
Checkout the head of CMakeModules, required by PandoraPFANew.
No Format |
---|
svn co https://svnsrv.desy.de/public/ilctools/CMakeModules/trunk/ CMakeModules
|
Make an environment variable that will be referenced later.
No Format |
---|
cd CMakeModules
export CMAKE_MODULE_PATH=`pwd`
|
This package does not need to be compiled. It just provides some CMake macros.
PandoraPFANew
Check out the version of Pandora that will be used. The example below shows how to checkout the head version.
No Format |
---|
svn co https://svnsrv.desy.de/public/PandoraPFANew/PandoraPFANew/trunk PandoraPFANew
|
Warning | ||
---|---|---|
| ||
Old versions of PandoraPFANew will not work, due to changes and additions to its API. It is recommended to use the last tagged version or the CVS head. |
Now we need to build another package before configuring Pandora.
PandoraMonitoring
Checkout the head version of PandoraMonitoring.
No Format |
---|
svn co https://svnsrv.desy.de/public/PandoraPFANew/PandoraMonitoring/trunk PandoraMonitoring
|
Now configure the build using cmake.
No Format |
---|
cmake -DROOT_HOME=/path/to/root -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DPandoraPFANew_HOME=/path/to/pandora .
|
Set the environment variable.
No Format |
---|
export PANDORAMONITORING=`pwd`
|
Technically, the monitoring package is optional, though it is quite useful for event and detector visualization.
PandoraPFANew Continued
Since Pandora has minimal external dependencies, it is straightforward to build. Only the CMakeModules must be located for the build and PandoraMonitoring, and the latter is optional.
No Format |
---|
cd PandoraPFANew
cmake -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DPandoraMonitoring_Home=/path/to/PandoraMonitoring .
make
|
If monitoring is not being used, this CMake command can be used instead.
No Format |
---|
cmake -DCMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DCMAKE_INSTALL_PREFIX=`pwd` BUILD_SHARED_LIBS=on .
|
Also, the Framework library needs to be built.
No Format |
---|
cd PandoraPFANew/Framework
cmake .
make
|
Set the environment variable.
No Format |
---|
cd PandoraPFANew
export PandoraPFANew_HOME=`pwd`
|
This will be referenced in the build of the next package.
If the release compiles successfully, you're now ready to setup the project that interfaces SLIC to Pandora.
slicPandora
Checkout the slicPandora project from cvs.
No Format |
---|
cd /workdir
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co slicPandora
cd slicPandora
|
The following should generate a setup script called mysetup.sh for setting up your runtime and compilation environment later.
No Format |
---|
./make_setup_script.sh
|
This setup script looks for the following environment variables to determine your Pandora setup.
package | variable | optional? |
---|---|---|
PandoraPFANew | PANDORAPFA | no |
LCIO | LCIO | no |
ROOT | ROOTSYS | yes |
PandoraMonitoring | PANDORAMONITORING | yes |
If ROOTSYS and PANDORAMONITORING are not defined in the environment, then visualization will be disabled.
Source the new setup script that was generated.
No Format |
---|
. mysetup.sh
|
Alternately, a Makefile can be generated with CMake, using the following command.
No Format |
---|
cmake -DPandoraPFANew_HOME=$PandoraPFANew_HOME -DLCIO_HOME=$LCIO_HOME CMAKE_MODULE_PATH=$CMAKE_MODULE_PATH -DROOT_HOME=$ROOTSYS
|
Now build the slicPandora project.
No Format |
---|
make
|
The slicPandora project should now be built successfully, if its dependencies are present and setup correctly. If compilation or linking errors occur, then check that LCIO and Pandora the dependencies were both installed successfully and that the setup script is pointing to the correct locations of these packages. If monitoring has been enabled, check that ROOT and PandoraMonitoring are configured and built successfully and that their environment variables are set.
Running Events
Steps
The essential steps to generating slicPandora events are as follows.
...