- added TPCLib to doxygen docu, code corrections according to documentation and effC++
[u/mrichter/AliRoot.git] / HLT / README
1 Package: ALICE HLT
2
3 This package implements the ALICE High Level Trigger analysis framework.
4 All contributions are under the terms of the 
5 GNU General Public License as published by the Free Software 
6 Foundation. Also see files AUTHORS and THANKS.
7
8 This packages is maintained by Matthias.Richter@ift.uib.no
9 Comments, bug reports, suggestions welcome! 
10
11 TOC
12 ===
13 1. Overview
14 2. Requirements
15 3. Setting up a version retrieved from CVS
16 4. Modifying a distributed package
17 5. Installation
18 6. Documentation
19 7. Further information
20 8. Reporting bugs/Asking for support
21 9. Committing to the AliRoot CVS
22
23 1. Overview
24 ===========
25 This package provides a compilation of shared libraries of the ALICE
26 HLT project and is intended for stand-alone compilation, i.e. not as part 
27 of the AliRoot compilation. 
28
29 - BASE: The base library (libHLTbase.so) provides the common interface for HLT 
30 processing components, the binding into the ALICE offline project AliRoot
31 and a pure C interface to the HLT on-line framework (Publisher/Subscriber
32 framework)
33
34 - SampleLib: The sample library contains examples for component 
35 implementation and a tutorial.
36
37 - TPCLib: The HLT code for the TPC
38 - TPCLib/OnlineDisplay: HLT visualization code for the TPC
39
40 Currently, the the package is not included to the standard AliRoot
41 compilation, but will be part of it.
42
43 The old stand-alone build system is still available. Check the README
44 file in the doc folder.
45
46 2. Requirements
47 ===============
48 The package needs both ROOT and AliRoot. Both must be set up in the
49 usual way (ROOTSYS, ALICE_ROOT, library locations evtl. specified in
50 LD_LIBRARY_PATH, ...). Actually, the BASE and SampleLib modules are
51 not dependend on AliRoot. The TPCLib does.
52
53 To set up a version retrieved from CVS, autoconf 2.57, automake 1.6
54 ,and libtool 1.4 or higher versions are required. Thats the versions
55 which come with the Scientific Linux CERN 3. The same applies if
56 you want to change the Makefiles.
57
58 If your GNU build tools are too old, ask the maintainers for a distributed
59 package.  
60
61 3. Setting up a version retrieved from CVS
62 ==========================================
63 Skip this section if you have started from the tar ball.
64
65 A version checked out from CVS requires a few steps to set up the Makefiles.
66 Go to the directory and run
67 autoreconf -i -f
68
69 Then continue with the package configuration described in the 'Installation'
70 section.
71
72 4. Modifying a distributed package
73 ==================================
74 If you are going the modify a distributed package you might need to re-make 
75 the GNU build system by running
76  autoreconf -f -i
77
78 Please notify the authors about bug fixes/corrections/extensions you made if
79 you consider them worth to be merged into the project.
80
81 Then continue with the package configuration described in the 'Installation'
82 section.
83
84 5. Installation
85 ===============
86 NOTE: The Makefiles which are in repository are part of the old build system.
87 Now, the Makefile.am templates are valid.
88
89 Package build relies on the GNU triplet configure, make and make install.
90 In order to keep the development directory clean, it is recommended to
91 use a separate build directory. 
92
93   mkdir build
94   cd build
95   ../configure
96   make
97   make install
98
99 You should redirect the output of the make into a file.
100 The default install directory is set to the current directory ($PWD). To
101 override the default directory use the option --prefix=<dir>           
102 All binary libraries will be installed under <prefix>/lib. If the directory
103 id eaual to $ALICE_ROOT, the libraries will be installed under 
104 <prefix>/lib/tgt_<arch> as used for AliRoot.
105
106 Some important options:
107 --enable-logging  # Enable/Disable logging (default enabled)
108 --enable-sample   # Compile the sample library
109 --enable-tpc      # Compile the TPC library
110 --enable-phos      # Compile the PHOS library
111
112 Note: You can have several build directories with different configure options,
113 but using the same source code. 
114
115 If you need further information on the GNU build system, execute from the 
116 top directory:
117 ./configure --help | less
118
119
120 6. Documentation
121 ================
122 Documentation is generated from the source code at compile time if 
123 doxygen is installed on the machine. From the build directory, open
124 doc/html/index.html with a web browser.
125
126 7. Further information
127 ======================
128 A wiki with detailed information is set up at
129 http://www.kip.uni-heidelberg.de/wiki/HLT
130
131 8. Reporting bugs/Asking for support
132 ====================================
133 Please include the following information into your request:
134 - config.log from your build directory
135 - output of the make process. Note: Redirect BOTH the stdout and stderr
136   channel to a log file. Redirection depends on the shell you are using:
137     bash: make 2>&1 | tee make.log 
138     csh: make |& tee make.log
139   The 'tee' command just duplicates the output.
140 - history of the commands you are using for compilation
141   history > history.log
142
143 9. Committing to the AliRoot CVS
144 ================================
145 For development of HLT analysis code check out a HEAD version from the 
146 repository and implement your code. 
147
148 For committing do:
149 1. make sure that the code changes are correct
150    cvs diff | less
151    remember to restore all temporary changes you made (e.g. log level default)
152 2. cvs update
153 3. correct merging conflicts
154 4. compile and test your code again
155 5. send the whole HLT module except the build sub-directories to
156    Matthias.Richter@ift.uib.no
157 6. you will get a notification when the code is committed, right after that you
158    must either do another cvs update or check out the complete module again in
159    order to have the right CVS information