RecoilUtils
Page maintainer: Andreas
| This page is considered done. It been reviewed by Alberto. There may be missing elements, but they are all flagged and the text has no errors. |
The RecoilUtils are an extension to Hanna++ that provide several libraries that can be either used interactively within ROOT or linked to your program.
Installation
The RecoilUtils are based on Hanna++, so it is assumed that you have a working installation of Hanna++ and all environment variables are set up correctly.
Getting ready to build
Please add the following environment variables:
$> export RECOILUTILS=$<some_path>/RecoilUtils $> export PATH=$RECOILUTILS/bin:$PATH $> export LD_LIBRARY_PATH=$RECOILUTILS/lib:$LD_LIBRARY_PATH $> export PYTHONPATH=$RECOILUTILS/lib:$PYTHONPATH
Getting the sources
The RecoilUtils sources are available via CVS on lebowski.desy.de. To check out the latest version do the following:
$> cd <some_path> $> export CVSROOT=:pserver:cvs@lebowski.desy.de:/public $> cvs login (Logging in to cvs@lebowski.desy.de) CVS password: cvs $> cvs -z3 checkout -P RecoilUtils U RecoilUtils/... U ...
Compiling
To compile the RecoilUtils do the following:
$> cd <some_path>/RecoilUtils $> ./configure $> make
The configure script knows the following options:
- --justroot
Only compile ROOT part
Disable ADAMO/DAD part - --withgeant
Compile Geant4 part (experimental) - --withogl
Compile ed3d with OpenGL support - --withqt
Compile Qt widgets and applications
Staying up to date
To keep your RecoilUtils source directory up to date, do a cvs update once in a while (this will not work if you have downloaded a tarball):
$> cd <some_path>/RecoilUtils $> cvs update -dP $> make
Under normal circumstances it should be enough to just run make after you updated the sources. If you experience problems you can try a make dictclean followed by make which will regenerate the dictionaries. In case this does not help you will have to recompile by running make clean followed by make. To update to a different version of the RecoilUtils do the following:
$> cd <some_path>/RecoilUtils $> cvs update -r <rev> $> make
Where <rev> is a revision of the sources. A list of revisions can be found on the Hanna++ Releases page. To update to the HEAD revision (the latest version) of Hanna++ do the following:
$> cd <some_path>/RecoilUtils $> cvs update -A $> make
Macro Path
RecoilUtils comes with a bunch of macros. To use them without having to specify the absolute path to the macro, add the following line to the file .rootrc in your home directory: Unix.*.Root.MacroPath: .:$RECOILUTILS/Macros:
ACLiC support
To make ACLic aware of the additional include path change the following lines in the file .rootrc in your home directory:
Unix.*.Root.IncludePath: -I$ROOTSYS/include -I$HANNAPLUSPLUS/include -I$RECOILUTILS/include ACLiC.IncludePaths: -I$ROOTSYS/include -I$HANNAPLUSPLUS/include -I$RECOILUTILS/include
Hanna++ HRC framework extension
The class Recoil is derived from the Hanna++ HRC framework class HRC and provides additional abstraction layers between data and the analyzer. For each event all data objects such as raw hits (TdataXYZRec), hits, cluster and spacepoints are filled into additional container classes depending on their dgDETS number. The additional containers are accessible via the class Recoil and the intermediate classes RecoilSi, RecoilSciFi and RecoilPhoton. Each of these classes has itself a list of sensors RecoilSiSensor (in case of the recoil silicon) of layers (in case of the SciFi or Photon detector). Each RecoilSiSensor, RecoilSciFiLayer or RecoilPhotonLayer has its own list of raw hits, clusters and spacepoints.
Extension Libraries
For all of the following libraries additional inforamtion is provided in the doxygen generated class documentation
- RUCommon
Library with additional classes and namespaces.
- HermesRoot
Library with classes representing the slow control information. Use these classes to read slow control information form the slowlogs converted to ROOT format. For 2006/07 data the converted slowlogs can be found in /group02/rcoilgrp/DATA/root/SLOW/
- RDConfig
Interface classes to the various recoil detector related configuration files
- Gen
An easy to use event generator library that can produce output suitable for HMC. Please see the example event generators which are part of RecoilUtils and can be found in the Generator subdirectory for details (e.g. SiliconBGGenerator and TraceGenerator).
- XMas
Various math extensions
The Recoil 3D Event Display
Please see the dedicated page on the Recoil Detector event display ED3D