11-jun-2001 NvE ResultError correctly set in GetMomentum() of AliTrack and AliJet.
[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.