--> J. Alcaraz (Febrruary 2008) This package is prepared to run on Linux and Mac OS X Tiger operating systems. A) CONFIGURATION STEP: ------------------ 1) Set the ROOTSYS variable. For instance: On sh or bash and "SLC4" or compatible: export ROOTSYS=/afs/cern.ch/exp/ams/Offline/root/Linux/progcc On csh or tcsh and "SLC4" or compatible: setenv ROOTSYS /afs/cern.ch/exp/ams/Offline/root/Linux/progcc IMPORTANT NOTE 0: At present, on CERN AFS we are using "progcc", which is a "gcc-like" ROOT version. IMPORTANT NOTE 1: if you have no AFS access, please follow the instructions in the file "README_install_Root", in order to install a suitable working package. IMPORTANT NOTE 2: Please use Root versions above v4. 2) To avoid potential problems (missing shared libraries at runtime), it is convenient to add $ROOTSYS/lib to the path for run-time libraries. For instance: On sh or bash: export LD_LIBRARY_PATH=$ROOTSYS/lib export DYLD_LIBRARY_PATH=$ROOTSYS/lib (only on Mac OS X) On csh or tcsh: setenv LD_LIBRARY_PATH $ROOTSYS/lib setenv DYLD_LIBRARY_PATH $ROOTSYS/lib (only on Mac OS X) 3) It is a good practice to include the previous two definitions into your .bashrc (on bash) or .tcshrc (on tcsh) shell initialization script. In this way they will be set automatically everytime you open a window. 4) ANOTHER IMPORTANT NOTE: whenever the $ROOTSYS directory is changed or the Root installation is updated, you MUST go to the "lib" directory and run: > make all_clean B) Computer details. ROOT details. Running modes: --------------------------------------------- The present "slc4" AMS Root version is 5.14/00i Mac OS X binary versions can be downloaded from the Root Home page (http://root.cern.ch). We think that any Linux computer with a RedHat version >= 7.3 and access to a gcc version 3.2 is well suited for an AMSRoot installation. The code was tested in the past on RedHat versions 7.3, 8.0, 9.0 and "Scientific Linux CERN" (SLC3) and more recently on SLC4. SLC4 is recommended for any future usage. ### AMS data can be analyzed in several modes: 1) Interpreted mode: CINT --> directory "cint" 2) Compiled with shared libraries mode: DYNAMIC --> directory "dynamic" 3) Compiled with static libraries mode: STATIC --> directory "static" 4) In parallel over several machines: TSELECTOR --> directory "tselector" 5) With a python script: PYTHON --> directory "python" ### AMS data can be visualized. Use "JScan" package in the "scan" subdirectory. See "scan/README" for details. ### AMS data can be browsed interactively. See directory "browser" for further details. The "Browser" does not work with Root versions below 4. The code is anyway prepared to work with almost any ROOT version in some of the running modes. In particular, almost any official ROOT version sitting on AFS is well suited to run in "intepreted" mode (CINT), in "compiled with shared libraries" mode (dynamic) or in parallel mode (tselector). Several pakackes and modes do not work with with versions below v4.01/02 (the "python" mode, "unfold" and "tracking" packages, for instance). To run in "static" mode, you will need to link with the static library "$ROOTSYS/lib/libRoot.a". Since all ROOT versions sitting in /afs/cern.ch/sw/root/... do not include this static library, you will be forced to: a) either use one of the versions in ROOTSYS=/afs/cern.ch/exp/ams/Offline/root/, .OR. b) install your own ROOT distribution from sources. See README_install_Root in this directory for details, .OR. c) copy into your machine a "libRoot.a" library consistent with your ROOT version, link to it and cross your fingers... C) BUILDING AMS LIBRARIES: ---------------------- The analysis examples in the distribution are prepared to build any missing AMS library in an automatic way. Nevertheless, you may want to build all libraries beforehand. This can be done as follows: > MakeAllLibs -> make ALL shared+static libraries (= cd lib; make all) > cd lib; make -> make shared+static AMSRoot libraries > cd lib; make shared -> build only the AMSRoot shared library > cd lib; make static -> build only the AMSRoot static library > cd lib; make clean -> clean all AMSRoot stuff > cd lib; make all -> make ALL shared+static libraries > cd lib; make all_shared -> build ALL shared libraries > cd lib; make all_static -> build ALL static libraries > cd lib; make all_clean -> clean ALL > cd lib; make utils -> make all utility libraries > cd lib; make utils_shared -> build all utility shared libraries > cd lib; make utils_static -> build all utility static libraries > cd lib; make utils_clean -> clean all utility libraries For every XXXXXX library (subdirectory of "lib"): > cd lib; make XXXXXX -> make shared+static "XXXXXX" libraries > cd lib; make XXXXXX_shared -> build only the "XXXXXX" shared library > cd lib; make XXXXXX_static -> build only the "XXXXXX" static library > cd lib; make XXXXXX_clean -> clean all "XXXXXX" stuff See "lib/README_to_add_a_alibrary" for details on how to add your own library to the AMSRoot distribution. D) Examples of usage: ----------------- > cd cint; cat README > root cint.C > root selec_entries.C > root my_tracks.C > ... > cd dynamic; cat README > run_dynamic > ... > cd my_analysis; cat README > make; RunIt > ... > cd static; cat README > run_static > ... > cd tselector; cat README > root run_MySelector1.C > root run_MySelector2.C > ... > cd python; cat README > python -i example.py > ... > cd browser; cat README > Browse ../files/test.root > ... > cd scan; cat README > make > jscan ../files/test.root > ... > cd XXXXXX; cat README > root YYYYYY.C > ... E) Documentation on ROOT classes: ----------------------------- - Text: see "lib/AMSRoot/root.h" to see the contents in each basic AMSRoot class and "lib/*/*.h" for the contents of each utility class. - Html: it requires the presence of the "DOXYGEN" package. If you do not have it, you can download it at: http://www.doxygen.org --> a) Create all documentation Web files with: > cd doc; make doc b) We recommend to start browsing from the index: > cd doc; mozilla file:$PWD/index.html F) Directories in the distribution: ------------------------------- - cint: Interpreted analysis using ROOT/Cint. See cint/README for details. - dynamic: Compiled analysis using shared libraries. See dynamic/README for details. - my_analysis: A more sophisticated analysis framework for a compiled analysis with shared libraries See my_analysis/README for details. - static: Compiled analysis using static libraries. See static/README for details. - tselector: Analysis using the TSelector class. See tselector/README for details. - browser: Browse in a fast way AMS Root files See browser/README for details. - scan: Scan a AMS Root file See scan/README for details. - files: directory containing root files for the examples - doc: directory for html documentation files - doc/config: directory containing the doxygen configuration files for the documentation - python: Analysis using Python. See python/README for details. - Finally, for any utility library "foo": * Directory "foo" contains examples of use. See foo/README for details. * Directory "lib/foo" contains the "Makefile" and any stuff necessary to create the AMS libraries.