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
12 12-sep-1997 NvE Signal of central cluster module and position in user
13 coordinates for all modules introduced in the Calorimetry
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
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
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
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
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
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
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
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
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
196 Also particle mass datamember removed from AliTrack, since this is now
197 automatically handled via the SetInvariant()/GetInvariant() memberfunctions
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
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
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()
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
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
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
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
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
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
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
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.