Warning | ||
---|---|---|
| ||
This page contains old instructions that are kept for reference purposes only. Please refer to the Simulation Software Distribution page for a much easier way of building slic and its dependencies. |
The SLIC full simulator program requires the setup of 8 different software packages, not counting the required build tools.
...
Tools
You need the following command line tools.
- cvs
- g++ (gcc 3.2 and 3.3 seem to work okay. I doubt that 3.4 works.)
- make
- gzip
- tar (that's the GNU version)
If your system is missing one of these, then you have serious problems anyways!you are missing one of these...are you sure that you're running Linux?
Any recent versions of these programs should do okay.
You also need a Java VM, for running ant.
- java (to run ant)
Also, wget is mighty useful Also, for retrieving files via http, wget is useful.
Work Area
The SLIC package and its dependencies will be installed into a common work area.
...
Info |
---|
Possibly some of these software packages already exist on your system. |
Tip |
---|
The same shell window should be used throughout the installation process in order to preserve the environment variables. |
Package Versions
Currently, the SLIC, LCDD, LCIO, GDML, and LCPhys CVS heads should all work fine together.
The following is a recent, tested configuration.
No Format |
---|
slic v1r12p0
lcio v1r5p0_slic
lcdd v1r8p2
lcphys v1r0p1
gdml 2.3.0
geant4 7.1.0
clhep 1.9.2.1
xerces 2.6.0
|
The Geant4 version must be 7.1.x or SLIC will not compile.
CLHEP
CLHEP has installation instructions (http://wwwasd.web.cern.ch/wwwasd/lhc\+\+/clhep/INSTALLATION/newCLHEP-install.html) for version 1.9 and up. But you should not need them to setup the package.
- Create a working directory for CLHEP and go into it.
No Format mkdir clhep cd clhep
- Download the CLHEP tarball.
No Format wget http://cern.ch/clhep/clhep-1.9.2.0.tgz
- Unzip to your work directory.
No Format tar -zxvf clhep-1.9.2.0.tgz
- Change to CLHEP directory.
No Format cd 1.9.2.0/CLHEP
- Configure the build. (This took 15-20 minutes on my machineNow go get some coffee.)
No Format ./configure --prefix=`cd ../..; pwd` --disable-shared
- Build the library and install it. (Also takes a long time!Get some more coffee.)
No Format make make install
- Add the following to setup.sh
No Format export CLHEP_BASE_DIR=$sim_work/clhep
...
Geant4 is probably the most difficult application to install of SLIC's dependencies, because there are a lot of options, it takes a long time, and it requires several different make commands. I will describe a minimal installation procedure with support for built-in UI and visualization drivers. You can always update the libraries later if you decide to change these settings.
Warning |
---|
Due to limitations of GDML, Geant4 must be compiled with granular libraries. This should be fixed soon. |
Info |
---|
These procedures are geared towards setting up a minimal Geant4 installation for SLIC. If you want a full Geant4 setup, I recommend running the Configure script. It will walk you through setting up a complete enviromentThe default Geant4 library settings for WIN32 are granular and static. You may choose other settings, but this could require changes in installation settings "down the line" that I may not mention. |
- Return to the work dir, create a Geant4 subdir and go into it.
No Format cd $sim_work mkdir geant4 cd geant4
- Download the Geant4 tarball.
No Format wget http://geant4.cern.ch/geant4/source/source/geant4.7.0.p011.tar.gz
- Unzip it.
No Format tar -zxvf geant4.7.0.p01.tar.gz
- Set the following variables in setup.sh. (You should not need to run Configure.)
No Format export G4INSTALL=${sim_work}/geant4/geant4.7.0.p011 export G4SYSTEM=Linux-g++ export G4LIB_USE_GRANULAR=1
- If you want to enable OpenGL-based visualization, set these variables, too.
No Format export G4VIS_BUILD_OPENGLX_DRIVER=1 export G4VIS_USE_OPENGLX=1 export OGLHOME=/usr
- Refer to the Application Guide Section on Enviroment Variables for additional enviroment variables that you might want to set.
- Go into the Geant4 base dir.
No Format cd geant4.7.0.p01 .1
- LCPhys requires that a special flag is set in order to use the latest Kaon model. At the end of config/architecture.gmk, insert the following line exactly as it appears below:
Hopefully, this hack will be remedied soon!No Format CPPFLAGS += -DG4BERTINI_KAON
- Build the libraries, which will be placed at $G4INSTALL/lib/WIN32Linux-g++. (This could take up to a few hours depending on your machine.)
No Format cd source make #
- Install the includes into *headers into the $G4INSTALL/include* directory.
No Format make includes
- Build the physics list libraries. These will go into the default location at $G4INSTALL/lib/plists/Linux-g++.
No Format cd ../physics_lists/hadronic make
Hopefully, Geant4 has been installed successfully, and you don't have too many more gray hairs! (Did you remember to set G4BERTINI_KAON? LCPhys won't work without it.)
LCPhys
SLIC requires a special physics list written by Dennis Wright for Linear Collider physics.
...
- Go back to the work dir.
No Format cd $sim_work
- Checkout LCIO from CVS.
No Format cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcio checkout lcio
- Add these lines to your setup.sh.
No Format export LCIO=${sim_work}/lcio export PATH=$LCIO/tools:$LCIO/bin:$PATH
- Build the libraries using the bundled aid and ant tools.
No Format cd $sim_work/lcio ant aid.generate cpp
Xerces-C++
- Go back to the work dir, create a subdir for Xerces-C++, and go into it.
No Format cd $sim_work mkdir xercesc cd xercesc
- Download the Xerces tarball.
No Format wget http://www.apache.org/dist/xml/xerces-c/xerces-c-src_2_6_0.tar.gz
- Unzip the tarball.
No Format tar -zxvf xerces-c-src_2_6_0.tar.gz
- Set XERCESCROOT for the build in your environment, only.
No Format export XERCESCROOT=${sim_work}/xercesc/xerces-c-src_2_6_0
- Go into the Xerces-C++ build area.
No Format cd xerces-c-src_2_6_0/src/xercesc
- Configure the build.
No Format runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread -P `cd ../../..; pwd`
- Build and install it.
No Format make make install
- In setup.sh, set XERCESCROOT to the installation area and add the DLL location to the PATH.
No Format export XERCESCROOT=${sim_work}/xercesc export LD_LIBRARY_PATH=$XERCESCROOT/bin:$PATHlib:$LD_LIBRARY_PATH
Tip |
---|
When rebuilding Xerces-C++, which you will probably not need to do once you get it working, XERCESCROOT needs to be set back to the Xerces-C++ source area rather than the installation base. |
...
- Download a snapshot of the current CVS head to sim_wrk using this link in your browser: http://simu.cvs.cern.ch/cgi-bin/simu.cgi/simu/GDML2/GDML2.tar.gz?tarball=1.
- Save the tarball to sim_wrk, which should be C:\sim.
- Unzip the tarball.
No Format tar -zxvf GDML2.tar.gz
- Change into the CPPGDML directory.
No Format cd GDML2/CPPGDML
- Set GDML_BASE and PLATFORM in setup.sh.
No Format export GDML_BASE=${sim_work}/GDML2/CPPGDML
- Configure the build.
No Format ./configure --enable-geant4-vis --enable-geant4-ui --with-geant4-libtype=granular shared-libs=no
- Build it.
No Format make
LCDD
- Go to the work dir and checkout LCDD.
No Format cd ${sim_work} cvs -d CVSROOT=:pserver:anonymous@cvs.freehep.org:/cvs/lcd checkout lcdd
- Go into the LCDD dir.
No Format cd lcdd
- Configure the build.
No Format ./configure
- Build the library.
No Format make
- Set the LCDD_BASE variable in setup.sh.
No Format export LCDD_BASE=${sim_work}/lcdd
...
Finally, you are ready to install the simulation "hub" package. After this, you will have a fully-featured Geant4 simulator on your Windows Linux machine.
- Go to the work dir and checkout SLIC.
No Format cd ${sim_work} cvs -d CVSROOT=:pserver:anonymous@cvs.freehep.org:/cvs/lcd checkout slic
- Go into the SLIC dir.
No Format cd slic
- Set the SLIC_BASE variable in setup.sh.
No Format export SLIC_BASE=${sim_work}/slic
- Configure the build.
No Format ./configure
- Build the binary.
No Format make all
...
No Format |
---|
#!/bin/sh # work area export sim_work=~/sim # clhep installation area export CLHEP_BASE_DIR=${sim_work}/clhep # geant4 export G4INSTALL=${sim_work}/geant4/geant4.7.0.p011 export G4SYSTEM=Linux-g++ # LCPhys export LCPHYS_BASE=${sim_work}/LCPhys # LCIO export LCIO=${sim_work}/lcio # if rebuilding LCIO export LD_LIBRARY_PATH=$LCIO/tools:$LCIO/bin:$PATH # Xerces-C++ installation area export XERCESCROOT=${sim_work}/xercesc export LD_LIBRARY_PATH=$XERCESCROOT/lib:$PATH$LD_LIBRARY_PATH # GDML export GDML_BASE=${sim_work}/GDML2/CPPGDML # LCDD export LCDD_BASE=${sim_work}/lcdd # SLIC export SLIC_BASE=${sim_work}/slic |
The above should be sufficient to "bootstrap" the environment for any future (re)builds of SLIC dependencies.
Running SLIC
To run SLIC once it is built, simply add the Xerces library location to your load path.
Then you can execute the binary from the SLIC_BASE directory.
No Format |
---|
export LD_LIBRARY_PATH=$XERCESCROOT/lib:$LD_LIBRARY_PATH
bin/Linux-g++/slic [args]
|
Tip | ||
---|---|---|
| ||
You should create a run script for your site, so that simply typing "slic" from the command line executes the simulator. A sample run script is found in $SLIC_BASE/scripts/run.sh. |
Done
...
.
That's it. Happy simulating!
See links in the next section for more information.
If you think this guide could be improved in any way, then please contact the author
Someday, I will get around to packaging all of this as RPMs to save everyone the hassle.
Happy simulating...