RecoilUtils

Aus HERMESwiki
Version vom 14. Mai 2009, 14:27 Uhr von Delaossa (Diskussion _ Beiträge)
(Unterschied) ← Nächstältere Version _ Aktuelle Version (Unterschied) _ Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Page maintainer: Andreas

Checked.png 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