]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/README
bugfix: component base class overrode data type of output blocks (introduced with...
[u/mrichter/AliRoot.git] / HLT / README
index 8336e4f0362fb489c69db4b4e5b9fe9985777e65..eb86adcd6c3f81f6db7cae3b0cfc97a5083ab17a 100644 (file)
@@ -1,6 +1,9 @@
 Package: ALICE HLT
 
 Package: ALICE HLT
 
-This package implements the ALICE High Level Trigger analysis framework.
+This package implements the ALICE High Level Trigger analysis framework
+and analysis component libraries. All files are property of and copyright
+by the ALICE HLT Project unless stated differently.
+
 All contributions are under the terms of the 
 GNU General Public License as published by the Free Software 
 Foundation. Also see files AUTHORS and THANKS.
 All contributions are under the terms of the 
 GNU General Public License as published by the Free Software 
 Foundation. Also see files AUTHORS and THANKS.
@@ -8,17 +11,19 @@ Foundation. Also see files AUTHORS and THANKS.
 This packages is maintained by Matthias.Richter@ift.uib.no
 Comments, bug reports, suggestions welcome! 
 
 This packages is maintained by Matthias.Richter@ift.uib.no
 Comments, bug reports, suggestions welcome! 
 
-TOC
-===
-1. Overview
-2. Requirements
-3. Setting up a version retrieved from CVS
-4. Modifying a distributed package
-5. Installation
-6. Documentation
-7. Further information
-8. Reporting bugs/Asking for support
-9. Committing to the AliRoot CVS
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++ TOC
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++ 1. Overview
++ 2. Requirements
++ 3. Setting up a version retrieved from CVS
++ 4. Modifying a distributed package
++ 5. Installation
++ 6. Documentation
++ 7. Further information
++ 8. Reporting bugs/Asking for support
++ 9. Committing to the AliRoot CVS
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 1. Overview
 ===========
 
 1. Overview
 ===========
@@ -26,22 +31,22 @@ This package provides a compilation of shared libraries of the ALICE
 HLT project and is intended for stand-alone compilation, i.e. not as part 
 of the AliRoot compilation. 
 
 HLT project and is intended for stand-alone compilation, i.e. not as part 
 of the AliRoot compilation. 
 
-- BASE: The base library (libHLTbase.so) provides the common interface for HLT 
-processing components, the binding into the ALICE offline project AliRoot
-and a pure C interface to the HLT on-line framework (Publisher/Subscriber
-framework)
+ - \b BASE: The base library (libHLTbase.so) provides the common interface for
+   HLT processing components, the binding into the ALICE offline project
+   AliRoot and a pure C interface to the HLT on-line framework 
+   (Publisher/Subscriber framework)
+
+ - \b SampleLib: The sample library contains examples for component 
+   implementation and a tutorial.
 
 
-- SampleLib: The sample library contains examples for component 
-implementation and a tutorial.
+ - \b TPCLib: The HLT code for the TPC
+ - \b TPCLib/OnlineDisplay: HLT visualization code for the TPC
 
 
-- TPCLib: The HLT code for the TPC
-- TPCLib/OnlineDisplay: HLT visualization code for the TPC
+ - \b PHOS: The HLT code for PHOS
 
 
-Currently, the the package is not included to the standard AliRoot
-compilation, but will be part of it.
+ - \b TRD: The HLT code for TRD
 
 
-The old stand-alone build system is still available. Check the README
-file in the doc folder.
+ - \b MUON: The HLT code for MUON
 
 2. Requirements
 ===============
 
 2. Requirements
 ===============
@@ -64,7 +69,8 @@ Skip this section if you have started from the tar ball.
 
 A version checked out from CVS requires a few steps to set up the Makefiles.
 Go to the directory and run
 
 A version checked out from CVS requires a few steps to set up the Makefiles.
 Go to the directory and run
-autoreconf -i -f
+
+  autoreconf -i -f
 
 Then continue with the package configuration described in the 'Installation'
 section.
 
 Then continue with the package configuration described in the 'Installation'
 section.
@@ -73,7 +79,8 @@ section.
 ==================================
 If you are going the modify a distributed package you might need to re-make 
 the GNU build system by running
 ==================================
 If you are going the modify a distributed package you might need to re-make 
 the GNU build system by running
- autoreconf -f -i
+
+  autoreconf -f -i
 
 Please notify the authors about bug fixes/corrections/extensions you made if
 you consider them worth to be merged into the project.
 
 Please notify the authors about bug fixes/corrections/extensions you made if
 you consider them worth to be merged into the project.
@@ -83,70 +90,152 @@ section.
 
 5. Installation
 ===============
 
 5. Installation
 ===============
-NOTE: The Makefiles which are in repository are part of the old build system.
-Now, the Makefile.am templates are valid.
-
 Package build relies on the GNU triplet configure, make and make install.
 In order to keep the development directory clean, it is recommended to
 use a separate build directory. 
 
 Package build relies on the GNU triplet configure, make and make install.
 In order to keep the development directory clean, it is recommended to
 use a separate build directory. 
 
+\b NOTE: Autotools creates the Makefiles from templates. All \b changes have to
+be done to the \b Makefile.am templates.
+
+It is recommended to read the complete section before the build process.
+
+5.1 For the impatiant user
+--------------------------
+
   mkdir build
   cd build
   ../configure
   make
   make install
 
   mkdir build
   cd build
   ../configure
   make
   make install
 
-You should redirect the output of the make into a file.
-The default install directories are set to the current directory ($PWD).
+5.2 Installation directory
+--------------------------
+The default install directory is set to the current directory ($PWD). To
+override the default directory use the option 
+  --prefix=<dir>. 
+More information can be obtained from the configure script by running it with
+option --help. All binary libraries will be installed under
+  <prefix>/lib.
+
+If the directory is equal to $ALICE_ROOT, the libraries will be installed under
+  <prefix>/lib/tgt_<arch>
+as used for AliRoot. This is a custom extension in
+order to adapt to the specific AliRoot installation directories.
+
+5.3 For the AliRoot user
+------------------------
+To install all libraries in the AliRoot lib dir:
+
+  mkdir build
+  cd build
+  ../configure --prefix=$ALICE_ROOT
+  make
+  make install
+
+5.4 Package options
+-------------------
+Some important options (all options are on by default):
+
+  --disable-sample           # disable compilation the sample library
+  --disable-util             # disable compilation the util library
+  --disable-tpc              # disable compilation the TPC library
+  --disable-phos             # disable compilation the PHOS library
+  --disable-trd              # disable compilation the TRD library
+  --disable-dimuon           # disable compilation the MUON library
+  --disable-aliroot-logging  # disable logging
+  --disable-strict           # disable strict coding conventions and
+                               compilation flags
+
+All detector libraries (including sample and util lib) require AliRoot,
+compilation is disabled if no working AliRoot version was found. This can
+occur even if an AliRoot version is set up correctly since the configure
+script checks for the usability of the AliRoot libraries (mainly STEER and
+the ones it depends on). If new dependencies are introduced, the check
+might fail.
 
 
-To override the default prefix use
---prefix=<dir>           
+Compilation of detector libraries can be forced by the switch
 
 
-Some important options:
---enable-logging  # Enable/Disable logging (default enabled)
---enable-sample   # Compile the sample library
---enable-tpc      # Compile the TPC library
+  --enable-detector, e.g. --enable-phos
 
 
-Note: You can have several build directories with different configure options,
-but using the same source code. 
+Compilation can also be forced by typing 'make' in the detector
+sub-directory.
+Debugging (default disabled)
+
+  --enable-debug             # enable debugging: symbols & messages
+
+Optimization (default -O2)
+
+  --disable-optimization     # disable compiler optimization
+  --enable-optimization<=l>  # enable compiler optimization level l
+
+5.5 External packages
+---------------------
+PubSub framework: the TPC online display needs the HOMER interface, which
+is currently part of the PubSub framework. It is planned to integrate it
+into AliRoot.<br>
+If the TPC online display is not necessary one can skip this option.
+
+  --with-pubsub=<dir>        # the top dir of the HLT PubSub framework
+
+5.6 Final remarks/further information 
+-------------------------------------
+\b Note: You can have several build directories with different configure
+options, but using the same source code. 
 
 If you need further information on the GNU build system, execute from the 
 top directory:
 
 If you need further information on the GNU build system, execute from the 
 top directory:
-./configure --help | less
+
+  ./configure --help | less
 
 
 6. Documentation
 ================
 
 
 6. Documentation
 ================
-Documentation is generated from the source code at compile time if 
-doxygen is installed on the machine. From the build directory, open
-doc/html/index.html with a web browser.
+Documentation is build as part of the build process if \b doxygen is installed.
+The documentation can be opended from the
+  doc/html/
+sub-folder of your build directory. E.g with a web browser like firefox
+(assuming you are in the build directory):<br>
+  firefox file://`pwd`/doc/html/index.html
+
+A special target can be used to make a tar ball out of the documentation (again
+provided you are in the build directory):<br>
+  (cd doc && make tar-ball)
+
+On-line documentation is available at
+  http://web.ift.uib.no/~kjeks/doc/alice-hlt/
 
 7. Further information
 ======================
 A wiki with detailed information is set up at
 
 7. Further information
 ======================
 A wiki with detailed information is set up at
-http://www.kip.uni-heidelberg.de/wiki/HLT
+  http://www.kip.uni-heidelberg.de/wiki/HLT
 
 8. Reporting bugs/Asking for support
 ====================================
 Please include the following information into your request:
 
 8. Reporting bugs/Asking for support
 ====================================
 Please include the following information into your request:
-- config.log from your build directory
-- output of the make process. Note: Redirect BOTH the stdout and stderr
-  channel to a log file. Redirection depends on the shell you are using:
-    bash: make 2>&1 | tee make.log 
-    csh: make |& tee make.log
-  The 'tee' command just duplicates the output.
-- history of the commands you are using for compilation
-  history > history.log
+ - config.log from your build directory
+ - output of the make process. Note: Redirect BOTH the stdout and stderr
+   channel to a log file. Redirection depends on the shell you are using:     <br>
+    bash: make 2>&1 | tee make.log                                            <br>
+    csh: make |& tee make.log                                                 <br>
+   The 'tee' command just duplicates the output.
+ - history of the commands you are using for compilation
+   history > history.log
 
 9. Committing to the AliRoot CVS
 ================================
 For development of HLT analysis code check out a HEAD version from the 
 
 9. Committing to the AliRoot CVS
 ================================
 For development of HLT analysis code check out a HEAD version from the 
-repository and implement your code. For committing do:
-1. cvs update
-2. correct merging conflicts
-3. compile and test your code again
-4. send the whole HLT module except the build sub-directories to
-   Matthias.Richter@ift.uib.no
-5. you will get a notification when the code is committed, right after that you
-   must either do another cvs update or check out the complete module again in
-   order to have the right CVS information
+repository and implement your code. 
+
+For committing do:
+ - 1. make sure that the code changes are correct                    <br><tt>
+      cvs diff | less                                                </tt><br>
+      \b Remember to restore all temporary changes you made (e.g. log level)
+ - 2. cvs update
+ - 3. correct merging conflicts
+ - 4. compile and test your code again
+ - 5. send the whole HLT module except the build sub-directories to
+      Matthias.Richter@ift.uib.no
+ - 6. you will get a notification when the code is committed, right after that
+      you must either do another cvs update or check out the complete module
+      again in order to have the right CVS information.