aed03f43c3652fc43a51102217e6fdbed9e75987
[u/mrichter/AliRoot.git] / RALICE / history.txt
1 //*CMZ :  1.00/02 04/07/97  16.48.20  by  Nick van Eijndhoven (UU/CERN)
2 //*-- Author :    Nick van Eijndhoven (UU/CERN)   04/07/97
3 //////////////////////////////////////////////////////////////////////////
4 //                        History of updates                            //
5 //////////////////////////////////////////////////////////////////////////
6 04-jul-1997 NvE First release of the package
7 11-jul-1997 NvE Class Invmass added to /GENUTILS and directories /PHYSICS
8                 and /TRACKING created to hold Jet and Track classes resp.
9 15-aug-1997 NvE Pilot patch *RALICE removed and automatic installation
10                 now completely performed by pure CMZ commands in the
11                 INSTALL macro.
12 12-sep-1997 NvE Signal of central cluster module and position in user
13                 coordinates for all modules introduced in the Calorimetry
14                 package.
15                 Also all "float vec[]" replaced by "float* vec" in the
16                 Lorbo class for stylistic reasons.
17 20-sep-1997 NvE Name of member function "getc()" of Calorimeter changed to
18                 "get_c()" to avoid clash with native C function.
19                 Also protection added in Calorimeter::group() against cases
20                 where no modules fired.
21 23-sep-1997 NvE Macro "install" modified to also enable automatic installation
22                 of a G++ or ROOT loadable shared library 'ralice.sl'.
23 24-sep-1997 NvE Class "Calorimeter" optimized by introduction of pointers
24                 for the Module matrix instead of an indexed array.
25 26-sep-1997 NvE Directory /ROOT added to hold the universal ROOT dictionaries
26                 (dict.h and dict.cc) as generated by "rootcint" for all the
27                 classes of this RALICE package.
28                 This will allow automatic installation of the RALICE library
29                 without running "rootcint".
30 30-sep-1997 NvE 2-body decay added to class Track and invokation of "delete []"
31                 only performed in case the object exists in the destructors
32                 of the Calorimeter, Jet and Track classes.
33 02-oct-1997 NvE Installation for MSVC++ added into macro "install" and several
34                 "return 0.;" statements added in some "Sample" member functions.
35                 The latter caused MSVC++ compiler errors.
36                 Also 'int ..=fabs(int..)' changed to 'int ..=int(fabs(int..))'
37                 in "Cluster::Add()" to prevent G++ warning.
38 03-oct-1997 NvE The above code is now ANSI compatible, but MSVC++ 5.0 still
39                 gives an error when comp. extensions are switched off (flag /Za).
40                 The reason is probably an incorrect implementation of the ANSI
41                 type conversion rules in MSVC++. To satisfy MSVC++ for the moment
42                 the code in in "Cluster::Add()" has been changed to
43                 'int ..=int(fabs(double(int..)))' so that at least a Microsoft
44                 compatible RALICE.DLL can be produced. As soon as G++ is able
45                 to produce Microsoft compatible dll's the support for MSVC++
46                 will be dropped for ralice.cmz.
47                 Message to all : USE G++ AS COMPILATION STANDARD !
48                 Also CMZ standard adopted to include a "$" in the DECK names
49                 which contain KEEP definitions.
50 13-oct-1997 NvE Compiler directive for g++ changed in "flogon" and "install"
51                 to provide warning for each non-ANSI C++ statement.
52                 Also ROOT libs linked with g++ in "install" in case of
53                 ROOT loadable shared library creation.
54                 Unused variables removed in "Calorimeter::add_ring" and
55                 "Track::decay".
56 14-oct-1997 NvE Strict ANSI requirements dropped for ROOT loadable lib creation
57                 to avoid many harmless warnings from rootcint generated code.
58                 Class "Random" added to /GENUTILS and /ROOT updated accordingly.
59 14-oct-1997 NvE Class "Random" extended with user definable distribution and
60                 /ROOT updated accordingly.
61 19-oct-1997 NvE Class "Random" extended with vector facility for user
62                 defined dist. and also bug fixed. /ROOT updated accordingly.
63 27-oct-1997 NvE Class "Random" optimised for user definable distribution and
64                 /ROOT updated accordingly.
65 10-dec-1997 NvE Creation of MSVC++ loadable library introduced in "install".
66 12-dec-1997 NvE Keep and Deck in /ROOT given unique names to enable loading
67                 of this package together with other packages.
68 20-jan-1998 NvE New ralicedict produced because of new ROOT 1.03/09 version.
69 23-mar-1998 NvE Macro "install" modified to support HP-CC.
70                 Multiple usage of for-loop index names removed to satisfy HP-CC
71                 compiler (although the original code was ANSI C++).
72                 Cluster data just reset to 'empty cluster' in case of cluster
73                 'creation' or 'start' for edge module or no-signal module.
74 31-mar-1998 NvE Array index bug fixed in class Jet.
75 03-apr-1998 NvE Jet and Invmass classes optimised by using pointers and
76                 compiler options /GD and /DWIN32 introduced for msvc++
77                 in order to optimize for windows DLL's and ensure correct
78                 pre-processing in RConfig.h for ROOT library creation.
79 13-apr-1998 NvE ROOTCINT processing implemented in $KUMACS/INSTALL and
80                 contents of /ROOT updated accordingly.
81                 Class Vertex added to /TRACKING and classes Track and Jet
82                 protected against modifying of returned addresses.
83 14-apr-1998 NvE "rm .def" removed for Unix systems in $KUMACS/INSTALL since
84                 on Unix no .def file is created by ROOTCINT.
85 17-apr-1998 NvE Return type Track& changed to Track* in the get_trk()
86                 member functions of the Jet and Vertex classes.
87 21-apr-1998 NvE Classes Track, Vertex, Jet, Lorbo and Invmass derived from
88                 TObject to enable ROOT I/O.
89                 $KUMACS/FLOGON and $KUMACS/INSTALL updated accordingly.
90 26-apr-1998 NvE Classes Module, Cluster and Calorimeter derived from TObject
91                 to enable ROOT I/O.
92                 Functionality of class Calorimeter has also been extended to
93                 enable re-clustering of original Module signals.
94 28-apr-1998 NvE Decay produced Tracks in class Track stored also into TObjArray
95                 to allow direct I/O.
96 03-jun-1998 NvE MSVC++ compiler option /DWIN32 removed in $KUMACS/INSTALL
97                 because of bug fix in ROOT version 2.00.
98                 Printout of version number introduced in $KUMACS/FLOGON and
99                 DOC section updated for new email and www address.
100 17-aug-1998 NvE New ALICE coding conventions adopted and automatic marking
101                 of 'edge modules' introduced in class AliCalorimeter.
102                 The automatic treatment of edge modules required new member-
103                 functions EdgeUp() and EdgeDown() in class AliModule.
104 19-aug-1998 NvE Call to LoadMatrix() added in AliCalorimeter::Group()
105                 to correctly treat different event sizes (i.e. empty events)
106                 when reading data from input file(s).
107 25-aug-1998 NvE AliCalorimeter::GetModule() introduced to provide quick
108                 access to all 'fired' modules.
109 27-aug-1998 NvE GetSignal() and GetClusteredSignal() of AliModule now
110                 return 0 in case the module was marked as dead.
111                 Because of the above, protection against row=col=0
112                 introduced in AliCalorimeter::Group().
113                 To enable access of modified calorimeter module data via
114                 AliCalorimeter::GetModule() after reading in, the "fModules"
115                 elements are updated in AliCalorimeter::LoadMatrix().
116 16-sep-1998 NvE Correct deletion of the module matrix introduced in the
117                 AliCalorimeter destructor and AliCalorimeter::LoadMatrix().
118 16-oct-1998 NvE New ALICE coding conventions adopted. This resulted in
119                 modifications in /$KUMACS and /ROOT (.cxx extension instead of .cc)
120                 and /HEADERS (public class area in front of private).
121                 #include <iostream.h> added in AliCluster (thanks to A.Zvyagin).
122 19-oct-1998 NvE Protections agains crazy row,col numbers introduced in
123                 AliCalorimeter (thanks to E. van der Pijll).
124 22-oct-1998 NvE Bug fixed in setting edge values in SetDead() and SetAlive()
125                 of AliCalorimeter (thanks to E. van der Pijll).
126                 Also row and column dispersion introduced in AliCluster.
127 24-oct-1998 NvE Memberfunctions DrawModules() and DrawClusters() introduced
128                 in AliCalorimeter.
129                 Also AliRandom derived from TObject to enable ROOT I/O.
130 26-oct-1998 NvE DrawModules() and DrawClusters() histogram axes defined such
131                 that the X and Y axis corresponds to columns and rows resp.
132                 in AliCalorimeter. This view matches the 'common sense'.
133 06-nov-1998 NvE SetDirectory(0) invoked for the histos created in
134                 DrawModules() and DrawClusters() to suppress global character
135                 of the histo pointer.
136 16-nov-1998 NvE New class AliMath implemented in /GENUTILS and /ROOT
137                 updated accordingly.
138 23-jan-1999 NvE New class AliSignal implemented and AliCalorimeter extended
139                 to contain veto signal information.
140 25-jan-1999 NvE Most of the private areas modified into protected areas to enable
141                 the use of inheritance.
142                 Also support for veto signal information introduced in AliCluster.
143 04-feb-1999 NvE Cluster array for internal use removed in AliCalorimeter; now only
144                 the "TObjArray* fClusters" is used for performance optimalisation.
145 06-feb-1999 NvE New class AliPosition implemented for universal position handling
146                 and AliSignal, AliCluster and AliVertex all derived from AliPosition.
147                 AliModule inherits from AliSignal and arguments of SetPosition()
148                 and GetPosition() in AliCalorimeter updated to match the AliSignal
149                 inheritance of AliModule. 
150 11-mar-1999 NvE All types changed to Int_t, Float_t etc... in order to guarantee
151                 portability of all data within the ROOT framework.
152 12-mar-1999 NvE Default destructors added in AliInvmass, AliLorbo and AliSample.
153 30-mar-1999 NvE New base class Ali3Vector introduced for universal 3D vector handling
154                 and AliPosition derived from it.
155                 In AliSignal::Reset() memberfunction call introduced instead of setting
156                 datamembers; this enhances flexibility for base class development.
157 01-apr-1999 NvE "car" introduced as default frame for Ali3Vector::Print().
158 03-apr-1999 NvE New base class Ali4Vector introduced for universal handling of
159                 Lorentz 4-vectors.
160                 Also class AliBoost introduced to perform Lorentz boosts on Ali4Vector
161                 objects. This class will replace the old AliLorbo.
162                 Memberfunction Print() renamed to Info() for Ali3Vector, Ali4Vector
163                 and AliBoost to prevent clash with TObject::Print().
164 05-apr-1999 NvE Functionality of Ali3Vector and Ali4Vector extended with += etc...
165 06-apr-1999 NvE Class AliTrack derived from Ali4Vector and updated accordingly.
166                 Also class AliJet modified by deriving it from AliTrack. 
167 08-apr-1999 NvE Class AliVertex derived from AliJet and updated accordingly.
168                 Also recursive printing facilities List() and ListAll() introduced
169                 for AliTrack, AliJet and AliVertex.
170 09-apr-1999 NvE Obsolete classes AliLorbo and AliInvmass removed.
171                 A new AliInvmass class is planned to provide invariant mass reconstruction
172                 functionality to serve e.g. di-lepton and pi0 studies.
173 16-apr-1999 NvE New class AliInvmass introduced for invariant mass and comb. bkg. reconstruction.
174 21-apr-1999 NvE AliBoost::SetGamma() introduced for enhanced accuracy in boost parameters.
175 27-apr-1999 NvE AliModule and AliCluster classes renamed to AliCalmodule and AliCalcluster resp.
176                 in view of future general Aliroot base classes AliModule and AliCluster.
177 28-jun-1999 NvE Ali4Vector casting changed in AliVertex::Add() and some explicit type conversions
178                 added and an unused variable removed in AliInvmass to prevent g++ errors/warnings
179                 (thanks to Eugene van der Pijll).
180 23-sep-1999 NvE Errors and error propagation introduced in Ali3Vector in view of track
181                 reconstruction/extrapolation development.
182                 Also AliPosition and AliSignal updated accordingly by introducing the
183                 SetPositionErrors(), SetSignalErrors() and Get memberfunctions.
184                 Note : Errors (propagation) not yet fully implemented in Ali4Vector and
185                        AliBoost. 
186 24-sep-1999 NvE In Ali4Vector internally the Lorentz invariant (x^mu x_mu) is now stored
187                 instead of the scalar part x^0. This will yield better precision and
188                 e.g. automatically conserves the particle identity (mass) in elastic
189                 collisions. 
190 08-oct-1999 NvE GetResultError() introduced in Ali3Vector to provide error information
191                 on results obtained from operations which yield a scalar.
192                 Examples are the error on the norm (GetNorm) and the dotproduct (Dot).
193 13-oct-1999 NvE Errors and error propagation fully implemented in Ali4Vector.
194 15-oct-1999 NvE Algorithms for error calculations optimised for accuracy in Ali3Vector
195                 and Ali4Vector.
196                 Also particle mass datamember removed from AliTrack, since this is now
197                 automatically handled via the SetInvariant()/GetInvariant() memberfunctions
198                 of Ali4Vector.
199 16-oct-1999 NvE Storage of multiple signal values (with errors) implemented in AliSignal
200                 and AliCalmodule updated accordingly.
201                 All documentation moved from the .h files into the .cxx files and also
202                 Copyright and cvs logs introduced.
203                 Html documentation generated for all classes using the ROOT automatic
204                 documentation generator facility.
205 18-oct-1999 NvE Classes Ali3VectorObj, Ali4VectorObj and AliPositionObj introduced.
206 20-oct-1999 NvE AliTrack::AddSignal() & co. added to enable relating AliSignals to a certain
207                 AliTrack object in view of track reconstruction development.
208                 Also memberfunction Info() added to AliSignal.
209 24-oct-1999 NvE Full error propagation implemented in AliBoost and obsolete memberfunction
210                 AliBoost::SetGamma() removed.
211 25-oct-1999 NvE Undefined "dtheta2" fixed in Ali3Vector::GetErrors() thanks to Rene Brun.
212 29-oct-1999 NvE Compress() invoked for TObjArray fModules after removal of a single module
213                 in AliCalorimeter::Reset().
214                 Begin- and endpoint introduced for AliTrack.
215 30-oct-1999 NvE Pointer handling introduced instead of object copying in AliCalorimeter::Sortm
216                 to enhance speed. Also AliCalorimeter::GetModule(row,col) introduced.
217                 Array creation moved out of default constructor of AliSignal to comply with
218                 ROOT I/O requirements.
219 31-oct-1999 NvE AliCalmodule::GetSignal() removed; the AliSignal memberfunction is used
220                 instead and AliCalorimeter::GetSignal() takes care of the dead modules. 
221                 AliCalcluster::Start updated accordingly.
222                 New memberfunctions GetVetoLevel() and HasVetoHit() introduced 
223                 for AliCalcluster. 
224 18-jan-2000 NvE AliCalorimeter updated to remove memory leak and to enable event mixing.
225                 Module and position pointers and various attributes (like edge values etc...)
226                 are now saved in separate matrices for the complete calorimeter. 
227                 AliCalmodule and AliCalcluster updated accordingly and also cleaned up
228                 a little to remove unneeded datamembers. 
229 03-mar-2000 NvE AliCalorimeter::SetSignal() updated to provide position for new modules
230                 and AliCalorimeter::AddSignal() updated to invoke AliCalorimeter::SetSignal()
231                 in case of new modules instead of having duplicate code.
232                 (Thanks to Eugene van der Pijll).
233 12-mar-2000 NvE Computation of Integer Order Modified Bessel functions I_n(x) and K_n(x)
234                 introduced in class AliMath.
235                 Also already existing AliMath facilities converted to Double_t handling
236                 to enhance flexibility.
237 06-jun-2000 NvE AliMath::K() etc... renamed to AliMath::BesselK() etc... for clarity.
238 07-jun-2000 NvE Vertex linking of AliVertex::Add(AliVertex&) made more sophisticated
239                 by introduction of automatic generation of connecting track.
240 26-jan-2001 NvE File RALICELinkDef.h updated to allow the automatic schema evolution
241                 as introduced in ROOT 3.00/05. 
242 27-may-2001 NvE New class AliEvent introduced and RALICELinkDef.h & co. updated accordingly.
243                 Also RALICELinkDef.h changed back to old schema evolution (i.e. "+" removed)
244                 because of problems with I/O in ROOT 3.00/06 w.r.t. multiple inheritance. 
245 29-may-2001 NvE Position reset added in AliVertex::Reset().
246 01-jun-2001 NvE Memberfunctions Add() renamed explicitly to AddTrack(), AddJet() and
247                 AddVertex() in AliJet and AliVertex.
248 03-jun-2001 NvE Treatment of masshypotheses introduced in AliTrack.
249 04-jun-2001 NvE CVS Log text and keyword replaced by Id in .cxx files and C++ comment
250                 indicator /* ... */ replaced by // in the Id record of the .h files
251                 to prevent problems.
252 06-jun-2001 NvE CVS Date keyword introduced in 'Modified' field in .cxx files so that
253                 the modification date is updated automatically in the html docs.
254 09-jun-2001 NvE Script mklibs.bat modified to match its new location in the SCRIPTS
255                 subdirectory and file RALICEHeaders.h moved back to the RALICE
256                 directory again to enable universal installation scripts.
257                 Also name AliEvent.cxx added in Makefile.
258 11-jun-2001 NvE ResultError correctly set in GetMomentum() of AliTrack and AliJet.
259 12-jun-2001 NvE Error calculation improved for spherical and cylindrical coord.
260                 in Ali3Vector::GetErrors().
261 13-jun-2001 NvE Memberfunctions GetVecTrans() and GetVecLong() introduced for
262                 Ali3Vector and Ali4Vector.
263                 Also GetScaTrans(), GetScaLong() and GetPseudoRapidity() introduced
264                 for Ali4Vector to provide a basis for e.g. E_trans and E_long calc.
265                 Memberfunctions GetPt(), GetPl(), GetEt(), GetEl() and GetMt()
266                 introduced for AliTrack and AliJet.
267                 For AliTrack there is an additional GetMt(j) to provide the Mt
268                 value for the jth mass hypothesis.                
269 14-jun-2001 NvE Memberfunction GetRapidity() introduced for AliTrack and AliJet
270                 and accuracy improved in Ali3Vector::GetPseudoRapidity().
271 27-jun-2001 NvE Overloaded memberfunction names Add(AliJet*) and Add(AliVertex*) corrected
272                 into AddJet(AliJet*) and AddVertex(AliVertex*) in class AliVertex.
273 29-jun-2001 NvE TrackCopy mode introduced in AliJet.
274 02-jul-2001 NvE Misplaced statement corrected in AliJet::SetNtinit().
275 03-jul-2001 NvE Protections added in AliJet::GetTrack() and AliVertex::GetVertex() and
276                 VertexCopy introduced in AliVertex.
277                 Naming facility introduced in AliCalorimeter in order to identify
278                 different calorimeter systems in an event structure.
279                 Storage of jets introduced in AliVertex on the same footing as the
280                 storage of (secondary) vertices.
281 04-jul-2001 NvE Storage of calorimeters introduced in AliEvent and ResetVertices()
282                 added to AliVertex.
283 05-jul-2001 NvE Clone() facility used in AddTrack() etc... of AliEvent & co. instead of
284                 "new" in the case of TrackCopy etc... This in order to enable 'permanent'
285                 AliTrack etc... storage in AliEvent & co.
286                 Also (Ali4Vector&) casting stmt. in AliVertex::ResetVertices() changed
287                 to make it ANSI compatible for all compilers/platforms.  
288 09-jul-2001 NvE Support for impact points and user identifier introduced in AliTrack.
289                 Also user identifier facility introduced for AliJet and AliVertex.
290 12-jul-2001 NvE Memberfunction GetDistance() introduced for AliPosition and support for
291                 point of closest approach introduced in AliTrack.
292 24-jul-2001 NvE Support for Chi2 and NDF information of track fit introduced in AliTrack.
293 01-dec-2001 NvE SetOwner() introduced for certain TObjArray's in AliCalcluster, AliEvent,
294                 AliInvmass, AliJet, AliTrack and AliVertex to adapt to the new memory
295                 management of ROOT 3.01 (and later) in case of reading trees.
296 06-dec-2001 NvE Memory usage optimised for AliVertex & co. and memory leak due to
297                 cloning solved.
298 07-dec-2001 NvE ClassDef() and ClassImp() statements introduced for AliSample.
299 17-dec-2001 NvE Copy constructor and Init() memberfunction introduced for AliTrack & co.
300 14-jan-2002 NvE New schema evolution activated via the "+" behind the classnames
301                 in RALICELinkDef.h. Note that the new schema evolution only works
302                 correctly for ROOT version 3.02/07 and later.
303 14-feb-2002 NvE Support for name tag introduced in AliSignal to indicate the kind of signal.
304                 Missing comment lines added in SetName() and GetName() of AliCalorimeter and AliSignal.
305 19-mar-2002 NvE AliVertex::Draw() introduced to enable 3D event display. 
306 25-apr-2002 NvE Projectile and target specifications introduced in AliEvent.
307 26-apr-2002 NvE AddVetoSignal(AliSignal) introduced in AliCalorimeter and AliCalcluster
308                 to provide more flexibility and allow automatic calculation of
309                 hit association confidence level based on position uncertainties.
310 29-apr-2002 NvE Memberfunction GetNvalues() and copy constructor introduced in AliSignal.
311 25-jun-2002 NvE Memberfunction SetOwner() introduced in AliJet, AliVertex and AliEvent to allow
312                 to set ownership of "added objects" in the case of reading data from a file.
313                 In this way possible memory leaks can always be prevented.
314                 Also automatic extrapolation and confidence level calculation of associated
315                 veto hits introduced in AliCalorimeter and AliCalcluster.
316 28-oct-2002 NvE "Riostream.h" introduced to replace the standard C++ includes and 
317                 static_cast<int> introduced in AliVertex::Draw to prevent a warning
318                 message for the new gcc compiler version.
319 25-nov-2002 NvE User defined particle id code introduced in AliTrack.
320 27-nov-2002 NvE New class AliCollider introduced and RALICEHeaders.h and RALICELinkdef.h
321                 updated accordingly.
322 29-nov-2002 NvE Typo corrected in AliCollider.cxx.
323 30-nov-2002 NvE Vertex position errors based on fResolution introduced in AliCollider.cxx.
324 02-dec-2002 NvE Facility for user defined projectile and target particle ID introduced in
325                 AliEvent and projectile/target information provided in the AliCollider created
326                 event structure.
327 11-dec-2002 NvE Copyright notice added into AliCollider.h and AliCollider.cxx.
328                 Also small (integer division) modification made in AliCollider.cxx
329                 to prevent an innocent warning of the g++ compiler under Linux.
330 08-jan-2003 NvE Delete statements for fMatrix[i] and fPositions[i] added in the dtor of
331                 AliCalorimeter to fix a memory leak.
332 09-jan-2003 NvE Different modes introduced for AliCalorimeter::Reset() to prevent memory
333                 leaks in reading back AliCalorimeter objects from a data file.
334                 Also unnecessary "LoadMatrix()" statement removed in AliCalorimeter::Reset().
335                 Irrelevant cout statement removed from AliEvent constructor.
336 01-feb-2003 NvE Memberfunction Info() renamed to Data() in various classes in order to
337                 prevent problems w.r.t. TObject::Info due to probable root/cint bug. 
338 03-feb-2003 NvE File "gcclib" added to subdirectory "scripts" to provide Ralice installation
339                 script for Linux machines using gcc.
340                 Class AliObjMatrix introduced.
341 08-feb-2003 NvE Class AliSignal modified such that the maximum number of signal slots is
342                 handled completely dynamically at runtime.
343                 Memberfunctions SetSignal() and AddSignal() of class AliCalmodule declared
344                 virtual to enable inheritance.
345 09-feb-2003 NvE Class AliCalcluster derived from AliSignal to enable automatic signal setting
346                 for various rings of modules around the cluster center.
347 10-feb-2003 NvE Class AliSignal modified such that also signals without errors can be stored.
348                 This may minimise memory occupation and output file size. 
349 18-feb-2003 NvE Memberfunction ShowCalorimeters() introduced in AliEvent to display an overview of all
350                 available calorimeter systems.
351                 Date/time format changed and ShowCalorimeters() invoked in AliEvent::HeaderData().
352 08-mar-2003 NvE Compiler option /GR introduced for MSVC++ in mklibs.bat to explicitly enable
353                 the C++ RTTI. This prevents a warning when creating shared libraries
354                 using the "old streamer method" (i.e. NO "+" behind the class names
355                 in the Linkdef file).
356 10-mar-2003 NvE AliPosition datamembers of AliTrack changed into AliPositionObj* to enable
357                 minimisation of memory occupation and output file size in case a track
358                 has not all attributes set.
359 13-mar-2003 NvE Memberfunction SetZero() introduced for Ali3Vector and Ali4Vector.
360 20-mar-2003 NvE Statement #include "Riostream.h" moved from header file into implementation file
361                 for all classes and MSVC compiler option /Za replaced by /Ze in order to prevent
362                 ANSI compliant compiler problems.
363 15-apr-2003 NvE Waveform histogram introduced in AliSignal.
364 29-apr-2003 NvE Memberfunction MakeCopy introduced for AliSignal and AliCalmodule.
365                 This memberfunction enables automatic creation of new objects of the
366                 correct type depending on the argument type, a feature which may be very useful
367                 for containers like AliCalorimeter when adding objects in case the
368                 container owns the objects. This feature allows e.g. AliCalorimeter
369                 to store either AliCalmodule objects or objects derived from AliCalmodule,
370                 provided these derived classes also have a proper MakeCopy memberfunction. 
371 17-jun-2003 NvE All TString objects "s" replaced by "s.Data()" in cout statements to comply
372                 with MSVC++7.NET compiler and allow mixing with MSVC++6 libraries.
373                 The classes in which these modifications were made are Ali3Vector, Ali4Vector,
374                 AliSignal and AliEvent. 
375 20-jun-2003 NvE Copy constructor introduced for nearly all classes and also all destructors
376                 explicitly declared virtual.
377 11-jul-2003 NvE Functionality of AliObjMatrix extended by enabling removal of objects and
378                 introduction of a linear object array for fast looping over the stored objects.
379 15-aug-2003 NvE Usage of TMCParticle removed from AliCollider; only Pythia intrinsic functionality
380                 is used.
381 01-sep-2003 NvE Explicit initialisation of TObject() introduced in default constructor of AliObjMatrix.
382 16-sep-2003 NvE Parent track pointer introduced for AliTrack.
383                 Functionality of AliSignal extended and support for gains and offsets introduced.
384                 Gain datamember removed from AliCalmodule.
385 17-sep-2003 NvE Memberfunction AddTrack with second argument "copy" of AliJet moved into the
386                 "protected" area to avoid confusion among users.
387                 The user has now only access to the AddTrack memberfunction with only the track
388                 (pointer) as argument.
389 23-sep-2003 NvE New classes AliAttrib and AliAttribObj introduced to centralise the handling of
390                 name, gain, offset, edge and dead value attributes for a certain slot.
391                 Classes AliSignal and AliCalmodule updated accordingly.
392 28-sep-2003 NvE Facility for automatic gain etc... correction introduced in AliSignal::GetSignal().
393 30-sep-2003 NvE New version of AliCalorimeter introduced, making use of AliObjMatrix and AliAttribObj
394                 and supporting full treatment of module gains, offsets etc...
395                 Also class AliCalcluster updated to take gain etc... correction into account.
396 02-oct-2003 NvE Memberfunction Load() moved from Ali3VectorObj and Ali4VectorObj to Ali3Vector
397                 and Ali4Vector respectively. This allows to use this memberfunction also in
398                 all the derived classes (e.g. AliPosition, AliSignal, AliTrack, etc...).
399                 Therefore the Load() memberfunction has been removed from AliPositionObj.
400 03-oct-2003 NvE Typos fixed in AliCalorimeter.cxx.
401                 Also memberfunction MakeCopy introduced in class AliCalorimeter.
402 07-oct-2003 NvE Arguments of SetSignal and AddSignal memberfunctions of AliCalmodule corrected
403                 to comply with the corresponding virtual functions of AliSignal.
404                 AliCalorimeter modified accordingly.
405 09-oct-2003 NvE Argument of all MakeCopy memberfunctions removed to obey the ANSI C++ rules for
406                 virtual functions and to prepare for a common base class.
407                 Due to the fact that not all compilers seem to accept the standard ANSI rule
408                 that a virtual function is allowed to differ in return type from the corresponding
409                 virtual function in the base class, the MakeCopy() memberfunctions have all been
410                 given a return type of TObject*.
411                 Also AliAttrib::Data renamed to AliAttrib::List to prevent violation of ANSI virtual
412                 function rules and class AliSignal updated accordingly. 
413                 Memberfunction ResetPosition() moved from AliSignal to AliPosition.
414                 Explicitly declared all memberfunctions virtual in the derived classes in case
415                 the corresponding memberfunctions were also declared virtual in the base class.
416                 Various memberfunctions which were declared virtual but were actually not meant
417                 to be overridden declared as non-virtual in various low-level classes like
418                 Ali3Vector, Ali4Vector, AliPosition etc...
419 13-oct-2003 NvE Argument 'npt' of AliCollider::MakeEvent also made optional.
420 24-oct-2003 NvE Private memberfunction Dump of AliTrack and AliVertex renamed to Dumps in order
421                 not to override the Dump memberfunction of TObject.
422                 Also definition of AliVertex::Draw slightly modified to comply with the standard
423                 ANSI virtual function rules concerning TObject::Draw.
424                 Invokation of ClassName() used in printout of AliSignal::Data to make the output
425                 information more generic. 
426 25-oct-2003 NvE Memberfunction AddCalorimeter of AliEvent replaced by memberfunction AddDevice
427                 to make the functionality more generic.
428                 To comply with the enhanced flexibility of AliEvent::AddDevice the class
429                 AliCalorimeter has been derived from TNamed and the MakeCopy() memberfunction
430                 has been replaced by Clone() to override the default one of TNamed.
431                 The specific GetName and SetName memberfunctions of AliCalorimeter have been removed.
432 26-oct-2003 NvE Class AliSignal derived from TNamed and MakeCopy() memberfunction replaced by Clone()
433                 like was done for AliCalorimeter.
434                 The latter was also done for AliCalmodule and AliAttribObj.
435 29-oct-2003 NvE Obsolete include of AliCalorimeter.h removed from AliEvent header file.
436 11-nov-2003 NvE Double_t dum=GetScalar() replaced by e[0]=GetScalar() in Ali4Vector.cxx to prevent
437                 a warning for the gcc compiler (thanks to Thomas Burgess).
438                 AliJet derived from TNamed instead of TObject to allow identification via name.
439 12-nov-2003 NvE fDaytime datamember of AliEvent changed from TDatime to TTimeStamp in order to
440                 obtain nanosecond precision. Setting of date and time via a TDatime argument is
441                 still supported to provide backward compatibility.
442 13-nov-2003 NvE Invokation of AliAttrib memberfunction Data() replaced by List() in the example
443                 in AliAttrib.cxx (was just a typo; thanks Adam Bouchta).
444                 Also test on pointer value introduced in AliAttrib::GetSlotIndex to prevent
445                 crash when first slot is empty (thanks to Adam Bouchta).
446 21-nov-2003 NvE Variable names of type "const" started with the character "k" in various
447                 memberfunctions of AliMath in order to comply with the strict Alice
448                 coding conventions.
449 22-nov-2003 NvE Support for various computation modes introduced in AliMath::Prob.
450 23-nov-2003 NvE New memberfunctions GetBetaVector(), GetBeta() and GetGamma() introduced in Ali4Vector.
451 03-dec-2003 NvE Message removed from AliEvent::GetDevice in case there are no devices present.
452 05-dec-2003 NvE Memberfunction SetStable introduced in AliCollider for the user's convenience.
453 08-dec-2003 NvE AliTrack derived from TNamed to enhance labeling flexibility and also specific
454                 Clone memberfunction introduced to enable storage of derived objects in AliJet & co.
455                 Also specific Clone memberfunctions introduced for AliJet, AliVertex and AliEvent and
456                 for the already existing specific Clone memberfunctions the default argument was set
457                 to the empty string "".
458 15-dec-2003 NvE Datamembers fNdec and fNsig removed from AliTrack since these data are now retrieved
459                 directly from the corresponding arrays.
460                 Support for hypothesis probability introduced in AliTrack and old mass hypothesis
461                 machinery extended to provide now full track hypotheses.
462 18-dec-2003 NvE Support for object references from the various signal slots introduced in AliSignal.
463                 Since this is mainly intended for "backward references" to AliTrack objects,
464                 the AliTrack class has been slightly updated for this to provide pointer consistency
465                 in case the corresponding AliTrack object is deleted.
466 19-dec-2003 NvE Slight modification in AliVertex.h and AliAttribObj.cxx to prevent gcc compiler
467                 warning concerning an unused variable.
468 22-dec-2003 NvE Event selection introduced in AliCollider.
469 24-dec-2003 NvE Some cosmetics in printout of AliVertex, AliEvent and AliCollider.
470                 Support for spectator tracks introduced in AliCollider.
471 28-dec-2003 NvE Facility introduced in AliCollider to set minimal momentum for spectator tracks
472                 to be stored. 
473 06-feb-2004 NvE "char* name" changed to "const char* name" in all specific Clone memberfunctions
474                 to prevent compiler warnings on Sun.
475                 Memberfunction Set() of TTimeStamp used in AliEvent instead of setting the date/time
476                 via the TTimeStamp constructor. This is only possible with ROOT version 3.10/02 or later,
477                 since for earlier versions the TTimeStamp::Set memberfunctions were erroneously declared
478                 private. 
479 11-feb-2004 NvE In script "gcclib" the option -Wno-long-long added to prevent warnings from the usage
480                 of type "long long" in Rtypes.h
481 12-feb-2004 NvE In AliCollider::MakeEvent the statement "char* name" was replaced by "char name[16]" to
482                 comply with TPythia6 convention. Also the hardcoded values of the p and n masses have
483                 been replaced by masses obtained from the Pythia system via a call to GetPMAS(). 
484                 Because of a bug in TPythia6 the function Pymass() couldn't be used directly.
485 13-feb-2004 NvE AliCollider::GetPyname introduced to provide a correctly stripped character string
486                 for the particle names. The name returned by TPythia6::Pyname contains trailing
487                 characters due to an incorrect stripping process.
488                 AliCollider::MakeEvent was updated accordingly to make use of this new memberfunction.
489 04-mar-2004 NvE Functionality of AliObjMatrix extended to provide the number of references and
490                 (row,col) indices of all the occurrences of the stored objects.
491                 Also an additional memberfunction AliObjMatrix::RemoveObject introduced to allow more
492                 flexibility in specifying objects to be removed. 
493 09-mar-2004 NvE Additional memberfunction AliObjMatrix::RemoveObject renamed to RemoveObjects to prevent
494                 confusion and ambiguity in usage.
495                 Linking facility of AliSignal extended by enabling multiple links to a specific signal slot.
496                 Also call to AliSignal::ResetLink changed to AliSignal::ResetLinks() in the dtor
497                 of AliTrack to adopt the extended AliSignal linking facility and output in 
498                 AliTrack::ListAll() limited to only the referring signal slots to prevent long output lists.
499 12-mar-2004 NvE Additional "cout << endl;" in front of AliCollider initialisation message in order to always
500                 have the initialisation message starting on a new line. On some systems the fortran
501                 carriage control of the pure Pythia doesn't get treated correctly.
502 04-apr-2004 NvE SetMass() invoked from AliTrack::Set3Momentum to get also the energy properly initialised.
503 09-apr-2004 NvE Support for specification of unit scale introduced in AliPosition.
504 19-apr-2004 NvE Memberfunction GetPrimed introduced for Ali3Vector.
505 04-may-2004 NvE Various memberfunctions declared "const" to satisfy the strict Alice coding rules
506                 and also to allow better compiler optimisation.
507 12-may-2004 NvE Track reference-point introduced in AliTrack.
508 02-jun-2004 NvE Memberfunction GetUnprimed introduced for Ali3Vector.
509 17-jun-2004 NvE New class AliHelix introduced and "macgcclib" added to create ralice libs on MAC.
510 24-jun-2004 NvE Coefficient kp7 changed from 7.4e-5 to 7.4e-6 in AliMath::BesselK0 to correct typo
511                 (thanks Josh de Bever).
512                 Typos corrected (i.e. abs() replaced by fabs() in several places) in AliHelix
513                 to satisfy the Intel compiler (thanks Fons Rademakers).
514 25-jun-2004 NvE Protection introduced in AliSignal::GetNlinks.
515 29-jun-2004 NvE New class AliDevice introduced.
516                 New memberfunctions and datamembers introduced in AliEvent to support investigation
517                 and ordering of hits of various (classes of) devices.
518 01-jul-2004 NvE AliCalorimeter derived from AliDevice to extend functionality (e.g. allow definition
519                 of sets of calorimeters and investigate all the hits of a certain set via the
520                 AliEvent structure). To prevent matrix swapping restrictions, the memberfuctions
521                 SetSwapMode and GetSwapMode of AliCalorimeter have been renamed to SetMatrixSwapMode
522                 and GetMatrixSwapMode, respectively. 
523                 Examples in the AliEvent.cxx documentation updated accordingly. 
524                 Backward links reset for non-owned hits in AliDevice destructor.
525 06-jul-2004 NvE AliCalorimeter hit I/O only via the linear array to decrease filesize on disk
526                 and improve I/O speed.
527                 Internal temp. arrays used for hit sorting in AliDevice and AliEvent and array
528                 pointers returned instead of the arrays themselves. This will provide more
529                 flexibility in usage. 
530                 Sorting and clustering procedures in AliCalorimeter modified to use TObjArray pointers
531                 to enable direct use of the AliDevice linear sorting facility.
532                 Default for AliDevice changed such that now all registered hits are by default owned
533                 by the AliDevice object.
534 06-oct-2004 NvE Full support for data access via slotname specification introduced in AliAttrib and AliSignal.
535 07-oct-2004 NvE Docs of AliAttrib and AliSignal updated for new data access via slotname specification.
536 12-oct-2004 NvE Display facility introduced in AliDevice and device backward linking updated for
537                 new "owning device" in AliSignal.
538 13-oct-2004 NvE Hit investigation facilities extended in AliDevice and AliEvent.
539 15-oct-2004 NvE Optimisation of MC parameters for nucleus-nucleus and astrophysics processes introduced
540                 in AliCollider. Also facilities added to provide full user control.
541 26-nov-2004 NvE Printout of UniqueID added in AliSignal::Data() and AliEvent::ShowDevices() in view of
542                 addressing specific signals or devices during data analysis.
543                 Memberfunction GetIdHit introduced in AliDevice and AliEvent and AliJet::GetIdTrack
544                 optimised for speed.
545                 Memberfunction GetIdDevice introduced in AliEvent.
546 27-nov-2004 NvE Protection for j<1 introduced in AliSignal::SetWaveform().
547                 The waveforms in AliSignal have now become completely decoupled from signal slots,
548                 so support for setting waveforms by specifying a slotname has been removed. 
549                 Printout info in AliSignal::Data() and AliSignal::List() improved and memberfunctions
550                 ListWaveform() and GetWaveformIndex() introduced in AliSignal.
551 28-nov-2004 NvE User definable status word introduced in AliDevice to allow indication of different
552                 versions of readout electronics etc... 
553 29-nov-2004 NvE Additional sub-directories (e.g. wa98) introduced which contain Ralice implementations
554                 to serve data analysis efforts for various experiments.
555 01-dec-2004 NvE Install scripts like e.g. "gcclib" renamed to "gcclib.sh" etc... in /scripts.
556                 The old scripts (i.e. without the .sh extension) will be deleted in due time.
557 12-jan-2005 NvE Bug fix in AliAttrib::GetSlotIndex() by exiting as soon as matching name is found.
558 20-jan-2005 NvE Modification in AliSignal::GetNwaveforms() to return last index instead of array
559                 size to take into account the fact that a TObjArray always gets a default size
560                 of 16 when reading data from a file.
561                 Also the standard ROOT file libNew.lib is now automatically renamed to libNew.lix
562                 in the Ralice windows installation script mklibs.bat to prevent linking with
563                 this libNew.lib which is inconsistent with the binary ROOT executable release.
564 09-feb-2005 NvE New class AliTimestamp introduced to support timestamp information for
565                 astrophysical research (i.e. Julian dates etc...) without the restrictions
566                 of class TTimeStamp.
567 10-feb-2005 NvE AliEvent modified such that it is derived from AliTimestamp.
568                 This will allow events to be synchronised with astrophysical phenomena without
569                 the restrictions imposed by TTimeStamp.
570                 All existing user functions have been kept to provide full backward compatibility
571                 in usage. However, a side effect of the new structure is that when reading data files
572                 containing the old event structures, the original date/time stamp information is lost and
573                 replaced by the date/time at the moment of reading the data.
574                 This implies that to restore the original event date/time, the data files have to
575                 be re-created. This I/O backward incompatibility could not be avoided in the
576                 effort of eliminating the TTimeStamp restrictions.
577 04-mar-2005 NvE Installation scripts named amdgcclib.sh introduced in all /scripts directories to enable
578                 shared library creation on AMD 64 (Athlon and Opteron) machines.
579 31-mar-2005 NvE AliObjMatrix derived from TNamed instead of from TObject to allow specification of
580                 a name and title for this class.
581 13-apr-2005 NvE New memberfunctions SetFitDetails and GetFitDetails introduced in AliTrack
582                 to enable a versatile facility to store details of various fit procedures
583                 for a certain track. This new facility is based on the original idea of Adam Bouchta.
584                 Destructor of AliSignal modified to remove the corresponding AliSignal instance
585                 first from all related tracks before deleting the link matrix area.
586 14-apr-2005 NvE Functionality of ShowDevices extended in AliEvent. Also memberfunction HeaderData() modified
587                 to prevent long output lists when many devices (and/or tracks) are present.
588                 New memberfunction ShowTracks introduced in AliJet and memberfunction Data() updated.
589 18-apr-2005 NvE New memberfunction GetTracks introduced in AliJet to provide various track selections.
590 19-apr-2005 NvE Memberfunctions GetNtracks and GetTracks of AliJet extended in functionality.
591 20-apr-2005 NvE Id of owning device added to the output of AliSignal::Data().
592 10-may-2005 NvE Support for timestamps introduced in AliTrack and AliPosition.
593                 Memberfunction GetX introduced in Ali3Vector for easy component access.
594                 Picosecond support and calculation of time difference introduced in AliTimestamp 
595                 to enable investigation of both very short (i.e. time of flight analysis in
596                 particle physics experiments) and very long (i.e. astrophysical phenomena)
597                 time intervals.
598 17-may-2005 NvE Functionality of AliTimestamp extended w.r.t. treatment of time intervals and
599                 accuracy bug fixed in the calculation of time difference.
600 19-may-2005 NvE AliTimestamp* pointer arguments supported in AliTimestamp::GetDifference for convenience
601                 when investigating e.g. TOF or trigger times for tracks and/or hits in analysing
602                 AliEvent structures.
603                 Also GetMJD() invoked in GetDifference to ensure to always have updated Julian parameters.
604 22-may-2005 NvE Class AliMath extended to provide full distribution functions of several standard
605                 distributions (e.g. Binomial, Poisson, Gauss) and key statistics (e.g. Chi-squared,
606                 Student's T, F-test) in view of analysis using Bayesian logic.
607                 The various distributions are provided as TF1 objects.
608                 In addition, functions to provide the P-values of the various key statistics are also
609                 introduced to allow a classical frequentist analysis as well.
610 25-may-2005 NvE Declaration of unused variable pi removed in AliMath::StudentDist and explicit double
611                 specification of integer first argument to pow() in AliMath::FratioPvalue in order
612                 to prevent messages from the gcc compiler (thanks Dipo, Philippe and Peter).
613 02-jun-2005 NvE Bug fix in copy ctor of AliPosition and beginpoint etc... setting of AliTrack.
614                 In AliTrack all points are now set after first deleting the existing AliPositionObj
615                 object instead of using the Ali3Vector::Load() memberfunction. 
616                 The bug arose because of the extension of AliPosition with the possibility to
617                 store an AliTimestamp. This made AliPosition differ from Ali3Vector w.r.t. datamembers.
618                 Also "cout << endl;" introduced after the Pylist() call in AliCollider in order to
619                 separate the Pythia event listing from subsequent output due to the mis-interpretation
620                 of Fortran carriage-control characters on some systems.
621 17-jun-2005 NvE New class AliJob introduced to provide a flexible (physics) analysis environment.
622                 Bug (forgotten ps transfer in AliTimestamp::SetTJD) fixed (thanks Federico Carminati).
623 22-jun-2005 NvE Specific job folder recursively removed from the generic AliJob folder environment
624                 in the AliJob destructor before actually deleting the specific job folder itself. 
625                 Also main object pointer updated in case of a match with removal of object(s) from
626                 the specific job environment.
627 23-jun-2005 NvE Creation of specific job folder made optionally in AliJob.
628 24-jun-2005 NvE Selection/overruling of specific job folder creation introduced in AliJob::ExecuteJob
629                 and the AliJob (derived) instance explicitly removed from the ListOfTasks to prevent
630                 ROOT crashing when closing after execution.
631 02-aug-2005 NvE Support for explicit (de)calibration functions introduced in AliAttrib.
632 03-aug-2005 NvE AliSignal::GetSignal has been extended to support various (de)calibration facilities.
633                 Printout is now also provided in AliSignal::List when only calibration data exist
634                 for AliDevice (or derived) objects.
635 05-aug-2005 NvE Typos fixed in AliAttrib::GetCalFunction and AliAttrib::GetDecalFunction which
636                 erroneously always returned a null pointer.
637 10-aug-2005 NvE AliSignal::GetSignal extended with mode=8 to support dead flag of parent device
638                 in conjunction with the dead flag of the signal itself.
639 07-oct-2005 NvE Support for the extended AliSignal::GetSignal (de)calibration facilities
640                 introduced in memberfunctions SortHits, GetExtremes, Displayhits and SortDevices
641                 of classes AliDevice and AliEvent.
642                 Note : For DisplayHits this new signal correction mode replaces the marker style
643                        specification parameter. 
644                 Also new memberfunction GetDevices introduced in AliEvent.
645 11-oct-2005 NvE SetMJD invoked at the end of AliTimestamp::Add instead of just updating the
646                 various datamembers. In this way the TTimeStamp parameters are brought in sync
647                 with the (modified) AliTimestamp values. 
648 20-oct-2005 NvE Directory /macros introduced and ROOT macro makedocs.cc added in /macros
649                 to provide a generic method to auto-create the html class documentation
650                 on all supported platforms.
651                 For further details see /macros/makedocs.cc.
652 24-oct-2005 NvE Protection introduced in AliJet::AddTrack to prevent multiple storage of
653                 the same track in case no private copy of the track is made.
654                 Memberfunction GetOpeningAngle introduced in Ali3Vector and Ali4Vector.
655 25-oct-2005 NvE Support introduced for user selectable angular units (rad or deg) in Ali3Vector,
656                 Ali4Vector and all derived classes.
657 27-oct-2005 NvE Memberfunction GetX to access individual vector components also introduced
658                 for Ali4Vector.
659                 Also memberfunction SortJets introduced in AliVertex.
660                 Misleading comment modified in AliDevice.cxx.