Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup

The SLIC full simulator program requires the setup of 8 different software packages, not counting the required build tools.  This guide is a step-by-step walkthrough covering package and tool installation.

...



It presumes nothing except a working Windows machine (2000, XP) with internet access.  Therefore, you may only need to use parts of this installation guide if you have some of the external dependencies already installed.

h1.

...

Preliminaries

Cygwin

...

 Preliminaries

h2. Cygwin

# Download [www.cygwin.com/setup.exe|Cygwin Installer] from the [www.cygwin.com

...

|Homepage].
# Double-click on it and click *Next*.

...


# Select *Install from Internet* and click *Next*.

...


# Enter your preferred *Root Directory* and click *Next*.

...


# Enter your preferred *Local Package Directory*, which can be the same as the *Root Directory*, and then click *Next*.

...


# Select *Direct Connection*, if it is not already, click *Next*.

...


# Select a site from the *Available Download Sites*.  Servers inside your country will probably be fastest.  I use [ftp://ftp.sunsite.utk.edu].

...


# Click *Next*.

...


# In the *Cygwin Setup - Select Packages* window, you need to make sure that the following tools are selected by clicking in the corresponding box under the *New* column until you see a version number.

...


## Required packages.

...


*** Devel -> cvs

...


*** Devel -> gcc-core

...


*** Devel -> gcc-g++

...


*** Devel -> make

...


*** Base -> gzip

...


*** Base -> tar

...


## Tool for downloading package tarballs and zip files.

...


*** Web -> wget

...


## If you want to use Geant4's OpenGL drivers, you need to install X Windows, too.  I believe these two packages should give you all the required X11 dependencies.

...


*** X11 -> xorg-x11-base

...


*** X11 -> xorg-x11-xwin

...


# Click *Next* after you have selected the packages.

...


# Cygwin will now automatically download and install all the selected packages.  It might take awhile, so now is the time to go get some coffee.

...


# If desired, select *Create icon on Desktop* or *Add icon to Start Menu*, and click *Finish*.

...



h3. Testing the Cygwin Command Line Tools

...



# Select *Start Menu -> Cygwin -> Cygwin Bash Shell

...

*
# Check that the following commands do not result in a _command not found_ message.

...


** *cvs*
** *gcc*
** *g++

...

Warning

Throughout this guide, I assume you are using bash or at least another sh compatible shell. Please don't try to use csh or something equally hideous.

Work Area

We will install all packages into a common work area.

...

*
** *tar*
** *wget*
** *make*
# If a command was not found, rerun the Cygwin setup to select the missing package, making sure to select *Keep* on the *Cygwin Setup - Select Packages* screen so that all the packages are not reinstalled.

{warning}
Throughout this guide, I assume you are using *bash* or at least another *sh* compatible shell.  Please don't try to use *csh* or something equally hideous.
{warning}

h2. Work Area

We will install all packages into a common work area.

# From the Cygwin shell, create a work directory for SLIC and its external dependencies.
{noformat}
cd /cygdrive/c
mkdir sim
cd sim

...

{noformat}
# Create the file *setup.sh* with the following contents.  (We will be adding to this file as the installation proceeds.)

...


{noformat

...

}
#!/bin/sh
export sim_work=/cygdrive/c/sim

...

{noformat}
# Source the script to setup the work dir.
{noformat}
source setup.sh
{noformat}

...

{tip
}
Throughout the guide, any time a line is added to *setup.sh*, it is presumed that you also set this up in the current environment.  Probably the easiest way to do this is adding to the script first and then (re)sourcing it.

Java

Java is required for installing LCIO.

...


{tip}

h2. Java

Java is required for installing LCIO.

# Install an appropriate JDK from [http://java.sun.com/] with a minimum version of 1.4.2.

...


# In your *setup.sh*, set JAVA_HOME and JDK_HOME to the Java installation area.

...


{noformat

...

}
export JAVA_HOME=/cygdrive/c/java/jdk1.4.2/
export JDK_HOME=${JAVA_HOME}
{noformat}

...

{warning
}
The above JAVA_HOME location is an example only.  You need to replace it with the correct path to your JDK.

{warning}

h2. Proceed!

...



You are now ready to begin the package installations.

...

Tip

Leave your Cygwin window open, as you will be using it throughout the installation.

Package Installations

CLHEP

...



{tip}
Leave your Cygwin window open, as you will be using it throughout the installation.
{tip}

h1. Package Installations

h2. CLHEP

There are installation instructions for version 1.9 and up [http://wwwasd.web.cern.ch/wwwasd/lhc

...

\+\+/clhep/INSTALLATION/newCLHEP-install.html].

...


But you should not need them to setup the package.

...



# Create a working directory for CLHEP and go into it.

...


{noformat

...

}
mkdir clhep
cd clhep

...

{noformat}
# Download the CLHEP tarball.
{noformat}
wget http://cern.ch/clhep/clhep-1.9.2.0.tgz

...


{noformat}
# Unzip to your work directory.
{noformat}
tar zxvf clhep-1.9.2.0.tgz

...

{noformat}
# Change to CLHEP directory.
{noformat}
cd 1.9.2.0/CLHEP

...

{noformat}
# Run *configure*.  (Takes a long time!)

...


{noformat

...

}
./configure --prefix=`cd ../..; pwd` --disable-shared

...

{noformat}
# Build the library and install it.  (Also takes a long time!)
{noformat}
make
make install

...

{noformat}
# Add the following to *$sim_work/setup.sh

...

*
{noformat

...

}
export CLHEP_BASE_DIR=$sim_work/clhep

...

{noformat}

Now that the CLHEP dependency is satisfied, you should be able to install Geant4.

...

Geant4

...



h2. Geant4

Geant4 is probably the most difficult application to install of SLIC's dependencies, because there are a lot of options.  I will describe a minimal installation procedure with OpenGL support.  You can always update the libraries later if you decide to change these settings.

...



# Return to the work dir, create a Geant4 work subdir and go into it.

...


{noformat

...

}
cd $sim_work
mkdir geant4
cd geant4

...


{noformat}
# Download the Geant4 tarball.
{noformat}
wget http://geant4.cern.ch/geant4/source/source/geant4.7.0.p01.tar.gz

...


{noformat}
# Unzip it.

...


{noformat

...

}
tar zxvf geant4.7.0.p01.tar.gz

...


{noformat}
# Setting the following variables in *$sim_work/setup.sh* should allow you to compile _without running the ./Configure script_.

...


{noformat

...

}
G4INSTALL=${sim_wrk}/geant4/geant4.7.0.p01
G4SYSTEM=WIN32-g++
OGLHOME=/usr/X11R6

...


{noformat}
# Go into the Geant4 install dir.
{noformat}
cd geant4.7.0.p01

...

{noformat}
# Build the libraries.  These will be placed at *$G4INSTALL/lib/WIN32-g++*.  (Maybe you should let this run overnight!)

...


{noformat

...

}
make

...


{noformat}
# Build the physics list libraries.  These will go into *$G4INSTALL/lib/plists/WIN32-g++*.

...


{noformat

...

}
cd ../physics_lists/hadronic
make
cd ../electromagnetic
make
{noformat}

...

{warning
}
The default Geant4 library settings for WIN32 are global and static.  You may choose other settings, but this could require changes in installation settings "down the line" that I may not mention.

LCPhys

...


{warning}

h2. LCPhys

# Go back to the work dir.
{noformat}
cd $sim_wrk

...

{noformat}
# Checkout the physics list from CVS.
{noformat}
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd checkout LCPhys

...

{noformat}
# Assuming that the environment from the Geant4 installation is still in place, you can build this like any other physics list.
{noformat}
cd LCPhys
make

...


{noformat}
# Set the LCPhys variable in *setup.sh*.

...


{noformat

...

}
LCPHYS_BASE=$sim_wrk/LCPhys

...

LCIO

...


{noformat}

h2. LCIO

LCIO actually has a very nice manual [http://lcio.desy.de/v01-04/doc/manual_html/manual.html].  Thanks, Frank!

...



It has a whole section on installation [http://lcio.desy.de/v01-04/doc/manual_html/manual.html#SECTION00030000000000000000].

...

Warning

LCIO requires a working Java SDK.

I will still walk you through the basic procedure.

...



{warning}
LCIO requires a working Java SDK.
{warning}

I will still walk you through the basic procedure.

# Go back to the work dir.
{noformat}
cd $sim_wrk

...

{noformat}
# Checkout LCIO from CVS.
{noformat}
cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcio checkout lcio

...

{noformat}
# Add these lines to your *setup.sh*.

...


{noformat

...

}
export LCIO=${sim_wrk}/lcio 
export PATH=$LCIO/tools:$LCIO/bin:$PATH

...

{noformat}
# Build the libraries using the bundled *aid* and *ant* tools.
{noformat}
ant aid cpp

...

Xerces

...

{noformat}

h2. Xerces

# Go back to the work dir, create a subdir for Xerces-C++, and go into it.

...


{noformat

...

}
cd $sim_wrk
mkdir xercesc
cd xercesc

...


{noformat}
# Download the Xerces tarball.
{noformat}
wget http://www.apache.org/dist/xml/xerces-c/xerces-c-src_2_6_0.tar.gz

...

{noformat}
# Unzip the tarball.
{noformat}
tar -zxvf xerces-c-src_2_6_0.tar.gz

...

{noformat}
# Set the temporary XERCESCROOT in the environment.
{noformat}
export XERCESCROOT=${sim_work}/xerces-c-src_2_6_0

...


{noformat}
# Go into the Xerces-C++ build area.

...


{noformat

...

}
cd xerces-c-src_2_6_0/src/xercesc

...


{noformat}
# Configure the build.
{noformat}
./runConfigure -pcygwin -cgcc -xg++ \
-minmem -nsocket -tnative -rpthread \
-P `cd ../..; pwd`

...

{noformat}
# Build and install it.
{noformat}
make
make install

...


{noformat}
# In *setup.sh*, set XERCESCROOT to the installation area.

...


{noformat

...

}
export XERCESCROOT=${sim_work}/xercesc

...

GDML

LCDD

SLIC

...


{noformat}

h2. GDML

GDML's CVS is not directly acessible, but a tarball is available through a WWW interface.

# Download a snapshot of the current CVS head 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 in ${sim_wrk}.

h2. LCDD

h2. SLIC

h1. Additional Resources