| Linear Collider activities in Glasgow
<-- img style="width: 222; float: right" alt="ild.gif" src="https://ppes8.physics.gla.ac.uk/twiki/pub/LinearCollider/WebHome/ild.gif" title="ild.gif" height="169" --> |
| https://svnsrv.desy.de/viewvc/ilctools/ilcinstall/tags/?view=tar
into the temporary directory(soon to be replaced by an afs area) |
|
< < |
/data/atlas01/ILC |
> > |
/data/atlas01/ILC
|
| I then untarred the file: |
|
< < |
tar xvfz ilctools-tags.tar.gz |
> > |
tar xvfz ilctools-tags.tar.gz
|
|
I then went into the directory: |
|
< < |
/data/atlas01/ILC/tags
and removed all other tags except for the latest v01-14. |
> > |
/data/atlas01/ILC/tags
and removed all other tags except for the latest v01-14. |
|
(Using svn to check out this tag would have been a more sensible way - will do next time!) |
|
< < | Preparing for build - seperate packages to install |
> > |
Preparing for build - separate packages to install |
|
First we must prepare four packages that don't come automatically with the ilcsoft installation. |
|
< < | They are MySQL, Java, xerces-c and cernlib. MySQL was installed by sysadmin (Andy) as root |
> > | They are MySQL, Java, xerces-c and cernlib. MySQL was installed by sysadmin (Andy) as root |
|
privileges are necessary. Java is already installed on our network. So it was necessary to install
xerces-c and Cernlib. I installed them in the: |
|
< < |
/data/atlas01/ILC
directory. For xerces-c I did the following:
mkdir xerces-c |
> > |
/data/atlas01/ILC
directory. For xerces-c I did the following:
mkdir xerces-c
|
| And in this directory I: |
|
< < |
wget http://apache.mirror.rbftpnetworks.com//xerces/c/3/binaries/xerces-c-3.1.1-x86_64-linux-gcc-3.4.tar.gz |
> > |
wget http://apache.mirror.rbftpnetworks.com//xerces/c/3/binaries/xerces-c-3.1.1-x86_64-linux-gcc-3.4.tar.gz
|
| for 64 bit. And untarred. |
|
< < | For Cernlib I realised that the installation here (/usr/lib64/cernlib) did not have the inlcude
directories needed so I also went to /data/atlas01/ILC and created directory 2006b |
> > | For Cernlib I realised that the installation here (/usr/lib64/cernlib ) did not have the inlcude
directories needed so I also went to /data/atlas01/ILC and created directory 2006b/ |
| and in this directory I downloaded: |
|
< < |
wget http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2006b_x86_64-slc5-gcc41-opt/tar/cernlib.tar.gz_
and
wget http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2006b_x86_64-slc5-gcc41-opt/tar/include.tar.gz_ |
> > |
wget http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2006b_x86_64-slc5-gcc41-opt/tar/cernlib.tar.gz
wget http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2006b_x86_64-slc5-gcc41-opt/tar/include.tar.gz
|
| and untarred them. |
|
< < | Preparing release version file |
| |
|
< < | First of all I created a directory where the ilcsoft software packages will actually be installed |
> > | Preparing release version file |
| |
|
< < | into. This is called: /data/atlas01/ILC/ilcsoft |
> > | First of all I created a directory where the ilcsoft software packages will actually be installed
into. This is called /data/atlas01/ILC/ilcsoft |
|
It is now necessary to point to the above installations (MySQL etc.) in the release file that comes with |
|
< < | |
| the ilcsoft installer. To do this I went to file: |
|
< < |
/data/atlas01/ILC/v01-14/releases/v01-14/release-versions.py |
> > |
/data/atlas01/ILC/v01-14/releases/v01-14/release-versions.py
|
|
But I first tell this file where the ilcsoft install directory is by setting: |
|
< < |
ilcsoft_install_prefix = "/data/atlas01/ILC/ilcsoft/" |
> > |
ilcsoft_install_prefix = "/data/atlas01/ILC/ilcsoft/"
|
| I then added: |
|
< < |
MySQL_path = "/usr/"
Java_path = "/usr/java/latest/"
CERNLIB_path = "/data/atlas01/ILC/2006b/"
XERCESC_ROOT_DIR = "/data/atlas01/ILC/xerces-c/xerces-c-3.1.1-x86_64-linux-gcc-3.4/" |
> > |
MySQL_path = "/usr/"
Java_path = "/usr/java/latest/"
CERNLIB_path = "/data/atlas01/ILC/2006b/"
XERCESC_ROOT_DIR = "/data/atlas01/ILC/xerces-c/xerces-c-3.1.1-x86_64-linux-gcc-3.4/"
|
| to this file |
|
< < | Starting a full build for all packages |
| |
|
< < | The file at the centre of this build is called 'release-scratch.cfg' which can be found in
the same directory as the release-versions.py: /data/atlas01/ILC/v01-14/releases/v01-14/
This file has the list and order in which all packages must be installed. First of all it is |
> > | Starting a full build for all packages |
| |
|
< < | necessary to point to the release-version.py file from within this file: |
> > | The file at the centre of this build is called 'release-scratch.cfg' which can be found in the same directory as the release-versions.py: /data/atlas01/ILC/v01-14/releases/v01-14/ |
| |
|
< < | path_where_this_file_lives = "/data/atlas01/ILC/tags/v01-14/releases/v01-14" |
> > | This file has the list and order in which all packages must be installed. First of all it is necessary to point to the release-version.py file from within this file:
path_where_this_file_lives = "/data/atlas01/ILC/tags/v01-14/releases/v01-14"
|
|
Then do: |
|
> > |
./ilcsoft-install -p releases/v01-14/release-scratch.cfg -p (to check all is ok)
./ilcsoft-install -p releases/v01-14/release-scratch.cfg -I (to install)
|
| |
|
< < | ./ilcsoft-install -p releases/v01-14/release-scratch.cfg –p (to check all is ok)
./ilcsoft-install -p releases/v01-14/release-scratch.cfg –I (to install) |
| Problems to expect and fix: |
|
> > | |
| LCIO compilation problems
(1) Failed to find tools required to build lcio user manual - to fix this just turn off documentation |
| LCIO compilation problems
(1) Failed to find tools required to build lcio user manual - to fix this just turn off documentation |
|
< < | |
| installation. I did this for all pacakages by changing: |
|
< < | |
> > | |
| ilcsoft.envcmake["INSTALL_DOC"]="ON" to ilcsoft.envcmake["INSTALL_DOC"]="OFF" |
|
> > |
in /data/atlas01/ILC/v01-14/releases/v01-14/release-scratch.cfg , but it could be done at just a package level here:
/data/atlas01/ILC/ilcsoft/lcio/v02-01-02/CMakeLists.txt
|
| |
|
< < | in /data/atlas01/ILC/v01-14/releases/v01-14/release-scratch.cfg
but it could be done at just a package level here:
/data/atlas01/ILC/ilcsoft/lcio/v02-01-02/CMakeLists.txt
(2) We don't want fortran examples - and they cause problems in compilation |
> > | (2) We don't want Fortran examples - and they cause problems in compilation |
| anyway - so I commented out: |
|
< < | #MESSAGE( STATUS "BUILD_F77_TESTJOBS = ${BUILD_F77_TESTJOBS}" ) |
> > |
#MESSAGE( STATUS "BUILD_F77_TESTJOBS = ${BUILD_F77_TESTJOBS}" )
|
|
And: |
|
> > |
# fortran examples
#OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
#IF( BUILD_F77_TESTJOBS )
# ADD_SUBDIRECTORY( ./src/f77 f77 )
#ENDIF()
again in: /data/atlas01/ILC/ilcsoft/lcio/v02-01-02/CMakeLists.txt |
| |
|
< < | # fortran examples
#OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
#IF( BUILD_F77_TESTJOBS )
# ADD_SUBDIRECTORY( ./src/f77 f77 )
#ENDIF()
again in: /data/atlas01/ILC/ilcsoft/lcio/v02-01-02/CMakeLists.txt
(3) I also turned off the optional root dict build for LCIO |
> > | (3) I also turned off the optional root dict build for LCIO |
| ilcsoft.module("LCIO").envcmake['BUILD_ROOTDICT']='OFF' |
|
< < |
in /data/atlas01/ILC/v01-14/releases/v01-14/release-scratch.cfg |
> > |
in /data/atlas01/ILC/v01-14/releases/v01-14/release-scratch.cfg . |
|
Building Root Dict manually for certain packages |
|
< < | The Root Dict compilation does not work for some packages when |
> > | The Root Dict compilation does not work for some packages when |
| building using the main compilation script so it is necessary to do |
|
< < | |
| the following:
KALTEST: |
|
< < | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/KalTest/v01-05/build |
> > | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/KalTest/v01-05/build |
| # set up root (installed with ilcsoft) |
|
> > | source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
|
| |
|
< < | source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
When installed – can uncomment in release-scratch.cfg again. |
> > | When installed – can uncomment in release-scratch.cfg again. |
|
KALDET: |
|
< < | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg |
> > | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/KalDet/v01-09/build
source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
|
| |
|
< < | cd /data/atlas01/ILC/ilcsoft/KalDet/v01-09/build
source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
When installed – can uncomment in release-scratch.cfg |
> > | When installed – can uncomment in release-scratch.cfg |
|
LCFIPlus: |
|
< < | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/LCFIPlus/v00-05/build
source ../../../root/5.28.00f/bin/thisroot.sh |
> > | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/LCFIPlus/v00-05/build
source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
|
| |
|
< < | cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
make install
When installed – can uncomment in release-scratch.cfg but make sure not to reinstall. |
> > | When installed – can uncomment in release-scratch.cfg but make sure not to reinstall. |
|
BBQ: |
|
< < | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/bbq/v00-01-02/build |
> > | Comment out of /data/atlas01/ILC/tags/v01-14/releases/v01-14/release-scratch.cfg
cd /data/atlas01/ILC/ilcsoft/bbq/v00-01-02/build
source ../../../root/5.28.00f/bin/thisroot.sh
cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
|
| |
|
< < | source ../../../root/5.28.00f/bin/thisroot.sh |
> > | When installed – can uncomment in release-scratch.cfg but make sure not to reinstall. |
| |
|
< < | cmake -DILCUTIL_DIR=../../../ilcutil/ -DROOT_DIR=$ROOTSYS ..
When installed – can uncomment in release-scratch.cfg but make sure not to reinstall. |
| Installing a new tag for one package within ilcsoft suite |
|
< < | STILL TO BE COMPLETED: Mokka needs to be reinstalled because of problem: |
> > | STILL TO BE COMPLETED: Mokka needs to be reinstalled because of problem: |
|
http://forum.linearcollider.org/index.php?t=tree&th=780&goto=2237&rid=151&S=18debae024982841a2da6aff71fca849#msg_2237 |
|
> > | |
| Running a validation test for Mokka and Marlin installations |
|
< < | STILL TO BE COMPLETED: See https://svnsrv.desy.de/viewvc/marlinreco/ILDConfig/trunk/StandardConfig/current/README?view=markup
Running a Marlin processor example in your home area
Preparing the home area |
> > | STILL TO BE COMPLETED: See https://svnsrv.desy.de/viewvc/marlinreco/ILDConfig/trunk/StandardConfig/current/README?view=markup |
| |
|
< < | In this example we are building and running a Marlin processor called ExampleDSTAnalysis |
> > | Running a Marlin processor example in your home area |
| |
|
< < | (1) Make the directory named as you wish - for example: /home/tdoherty/ILCWork/Marlin/ExampleDSTAnalysis |
> > | Preparing the home area |
| |
|
< < | (2) In the ExampleDSTAnalysis directory create a build, src, include and lib directory - like: |
> > | In this example we are building and running a Marlin processor called ExampleDSTAnalysis. |
| |
|
< < | [tdoherty@ppepc144 ExampleDSTAnalysis]$ ls -lart total 908 drwxr-xr-x 3 tdoherty grid 77 Aug 3 15:12 include drwxr-xr-x 2 tdoherty grid 66 Aug 3 15:14 src drwxr-xr-x 3 tdoherty grid 121 Aug 3 15:17 lib drwxr-xr-x 5 tdoherty grid 4096 Aug 3 15:26 build |
> > | (1) Make the directory named as you wish - for example: /home/tdoherty/ILCWork/Marlin/ExampleDSTAnalysis |
| |
|
< < | (3) Place the source (ExampleDSTAnalysis.cc) code for your processor in the src directory and the header (ExampleDSTAnalysis.h) file in the include directory |
> > | (2) In the ExampleDSTAnalysis directory create build , src , include and lib directories - like:
[tdoherty@ppepc144 ExampleDSTAnalysis]$ ls -lart
total 908
drwxr-xr-x 3 tdoherty grid 77 Aug 3 15:12 include
drwxr-xr-x 2 tdoherty grid 66 Aug 3 15:14 src
drwxr-xr-x 3 tdoherty grid 121 Aug 3 15:17 lib
drwxr-xr-x 5 tdoherty grid 4096 Aug 3 15:26 build
|
| |
|
< < | (4) Copy the CMakeLists .txt file from the mymarlin example given with Marlin into the ExampleDSTAnalysis folder: |
> > | (3) Place the source (ExampleDSTAnalysis.cc ) code for your processor in the src directory and the header (ExampleDSTAnalysis.h ) file in the include/ directory |
| |
|
> > | (4) Copy the CMakeLists.txt file from the mymarlin example given with Marlin into the ExampleDSTAnalysis folder: |
| cp /data/atlas01/ILC/ilcsoft/Marlin/v01-03/examples/mymarlin/CMakeLists.txt . |
|
< < |
(5) Open up this file and just change the name of the project from mymarlin to ExampleDSTAnalysis
From PROJECT(mymarlin) to PROJECT(ExampleDSTAnalysis ) |
> > |
(5) Open up this file and just change the name of the project from mymarlin to ExampleDSTAnalysis: from PROJECT(mymarlin) to PROJECT(ExampleDSTAnalysis). |
|
(6) If your processor code requires ROOT then add: |
|
< < |
FIND_PACKAGE( ROOT REQUIRED ) |
> > |
FIND_PACKAGE( ROOT REQUIRED )
|
| and |
|
> > |
FOREACH( pkg ROOT )
IF( ${pkg}_FOUND )
INCLUDE_DIRECTORIES( ${${pkg}_INCLUDE_DIRS} )
ADD_DEFINITIONS( ${${pkg}_DEFINITIONS} )
ENDIF()
ENDFOREACH()
to CMakeLists.txt so that your C++ code can pull in ROOT header files. |
| |
|
< < | FOREACH( pkg ROOT ) IF( ${pkg}_FOUND ) INCLUDE_DIRECTORIES( ${${pkg}_INCLUDE_DIRS} ) ADD_DEFINITIONS( ${${pkg}_DEFINITIONS} ) ENDIF() ENDFOREACH()
to CMakeLists.txt so that your c++ code can pull in ROOT header files. |
| Building the processor |
|
< < | (1) First set up the ilcsoft software by running this script |
> > | (1) First set up the ilcsoft software by running this script |
| |
|
< < | ./data/atlas01/ILC/ilcsoft/init_ilcsoft.sh (2) cd into the build directory of this processor in your home area
cd build |
> > | ./data/atlas01/ILC/ilcsoft/init_ilcsoft.sh |
| |
|
> > | (2) cd into the build directory of this processor in your home area
cd build
|
| (3) Then: |
|
< < |
cmake -C $ILCSOFT/ILCSoft.cmake .. |
> > |
cmake -C $ILCSOFT/ILCSoft.cmake ..
|
| (4) And: |
|
> > |
make install
This should create library: lib/libExampleDSTAnalysis.so. |
| |
|
< < | make install
This should create library: lib/libExampleDSTAnalysis.so |
| Loading the processor into Marlin |
|
< < | (1) Point to the .so file
export MARLIN_DLL=$PWD/lib/libExampleDSTAnalysis.so
(2) Create the steering file. This steering file is used to tell Marlin in what |
> > | (1) Point to the .so file
export MARLIN_DLL=$PWD/lib/libExampleDSTAnalysis.so
|
| |
|
> > | (2) Create the steering file. This steering file is used to tell Marlin in what |
| order to run your processor with other standard processors. It is used |
|
< < | |
| to set some global variables aswell as the input stdio file and the output file |
|
< < |
name. You also need to point to the gear (geometry) file that was used to |
> > | name. You also need to point to the gear (geometry) file that was used to |
| create your input stdio file. Marlin automatically creates this file for you |
|
< < | |
| but you must edit the input/output files at least. The global variables will |
|
> > | be taken from your C++ code. To create the file just do: |
| |
|
< < | be taken from your c++ code. To create the file just do:
Marlin -x > mysteer.xml |
> > | Marlin -x > mysteer.xml |
| |
|
< < | (3) As mentioned you must edit the steering file to point to the input .stdio |
> > | (3) As mentioned you must edit the steering file to point to the input .stdio
and gear.xml file you are using for your analysis. |
| |
|
< < | and gear.xml file you are using for your analysis. |
| Running Marlin processor
Simply do: |
|
< < | Marlin mysteer.xml |
> > | Marlin mysteer.xml |
| |
|
< < |
|
| Datasets
|
| |
|
> > | |
|
|
|
< < | |
|
META FILEATTACHMENT |
attachment="clic_event.gif" attr="h" comment="clic_event" date="1344013306" name="clic_event.gif" path="clic_event.gif" size="13910" stream="clic_event.gif" tmpFilename="/usr/tmp/CGItemp32570" user="AidanRobson" version="1" |
META FILEATTACHMENT |
attachment="ild.gif" attr="h" comment="ild" date="1344013323" name="ild.gif" path="ild.gif" size="14210" stream="ild.gif" tmpFilename="/usr/tmp/CGItemp32479" user="AidanRobson" version="1" |
META FILEATTACHMENT |
attachment="gaede_ildsoft_chep09.pdf" attr="" comment="ILC Software Framework - Frank Gaede's CHEP 2009 talk" date="1344439388" name="gaede_ildsoft_chep09.pdf" path="gaede_ildsoft_chep09.pdf" size="2191024" stream="gaede_ildsoft_chep09.pdf" tmpFilename="/usr/tmp/CGItemp28471" user="DanProtopopescu" version="1" |
|