Downloading, building and running DigiSim - Java Version
The instructions presented below have been
tested within Fedora Linux environments, using g++ version 3.3
or Sun's Java version 1.5. If you try to use DigiSim in
other environments, please tell us about your experience, good or bad.
The java version
of DigiSim is part of the org.lcsim
framework, so the download and build instructions are basically the
ones provided in the LCSim website.
Only a quick summary is presented here:
- # download and install Sun's Java Development Kit 1.5 or later,
see java website for details
- # download and build Maven 1.0.2, see maven website for details.
More recent versions are significantly different than 1.0.2.
- # download GeomConverter
- export CVSROOT=:pserver:anonymous@cvs.freehep.org:/cvs/lcd
- cvs login (use your e-mail as the password)
- cvs checkout GeomConverter
- # build GeomConverter
- cd GeomConverter
- maven jar:install
- cd ..
- # download and build LCSim
- cvs checkout lcsim
- cd lcsim
- maven jar:install
- cd ..
- # building the API documentation using Javadoc
- cd GeomConverter
- maven site
- cd ../lcsim
- maven site
- cd ..
Please note that all maven commands are issued from the top directory
of each package, where the project configuration files project.xml and
project.properties are located. The API documents can then be
consulted pointing your browser to the local file
target/docs/apidocs/index.html.
Running DigiSim / Java
There are two distinct ways of running the java version of DigiSim:
(1) Running in standalone mode, saving the output file with raw hits
and digitized hits for further processing; and
(2) Running DigiSim as a driver, from inside JAS3, as a preprocessor to
your favourite analysis or reconstruction drivers.
Each of these running modes has its own pros and cons. For
instance, JAS3 GUI is very intuitive and friendly, its event browser
and event display features are very helpful to use the drivers as
plugins to build complicated reconstruction chains, but making sure one
is using the right jars and source code is not always obvious to the
uninitiated. Running in standalone mode is more convenient for
running remotely over slow connections, and the user might want more
control over an special environment, by tuning the CLASSPATH of a
single session without changing the overall
setup. Moreover, the standalone steps can be saved in a
script for a faster startup. I personally prefer running long
jobs outside of the graphical environment, and use JAS only to look at
the plots and produce nice figures.
Running DigiSim/Java in Standalone mode
After building the lcsim jar file
following the instructions above, one can run DigiSim standalone by
typing:
- source addjars.sh
~/.maven/repository # once per session, defines the
CLASSPATH to enable the use of the LCSim framework
- ln -sf /path/to/some/data.slcio inputfile
- java org.lcsim.digisim.DigiSimMain
Alternatively to the next-to-last step, one can edit DigiSimMain.java
source code and replace "inputfile" with a specific file name. I
find the use of symbolic links very convenient here. An output
file, digisim.slcio, contains all the raw hits and digitized hits
collections, according to the configuration file used. Note that
by default, DigiSim uses a configuration file based on the detector
name, so that data files based on e.g. SDJan03 geometry will use the
configuration file SDJan03.steer
by default.
Note: Please note that "inputfile" is currently hardwired in the source
code of DigiSimMain class, despite the line "LCIOInputFiles inputfile"
present in the configuration file. That line affects only
the C++ version of DigiSim, not the Java version.
Running DigiSim/Java from inside JAS3
DigiSim can be run from inside
JAS3, using this driver: DigiSimExample.java.
Open this file in JAS3, compile it and load
it. You may want to load your favourite analysis or
reconstruction drivers here as well. Then open an input LCIO
data file to be digitized, and run some events one by one.
You may want to open the LCSim event browser and look at some raw data
(RawCalorimeterHit class) or some digitized data (CalorimeterHit
class). Then rewind the data source and run over all events.
Note: Be sure to select org.lcsim plugin when you open the input data
file. If no dialog box opens at this point, make sure you have
lcsim.jar file loaded, by checking that the LCSim event browser is
available from View menu.