//*CMZ : 1.00/02 04/07/97 16.48.20 by Nick van Eijndhoven (UU/CERN) //*-- Author : Nick van Eijndhoven (UU/CERN) 04/07/97 ////////////////////////////////////////////////////////////////////////// // History of updates // ////////////////////////////////////////////////////////////////////////// 04-jul-1997 NvE First release of the package 11-jul-1997 NvE Class Invmass added to /GENUTILS and directories /PHYSICS and /TRACKING created to hold Jet and Track classes resp. 15-aug-1997 NvE Pilot patch *RALICE removed and automatic installation now completely performed by pure CMZ commands in the INSTALL macro. 12-sep-1997 NvE Signal of central cluster module and position in user coordinates for all modules introduced in the Calorimetry package. Also all "float vec[]" replaced by "float* vec" in the Lorbo class for stylistic reasons. 20-sep-1997 NvE Name of member function "getc()" of Calorimeter changed to "get_c()" to avoid clash with native C function. Also protection added in Calorimeter::group() against cases where no modules fired. 23-sep-1997 NvE Macro "install" modified to also enable automatic installation of a G++ or ROOT loadable shared library 'ralice.sl'. 24-sep-1997 NvE Class "Calorimeter" optimized by introduction of pointers for the Module matrix instead of an indexed array. 26-sep-1997 NvE Directory /ROOT added to hold the universal ROOT dictionaries (dict.h and dict.cc) as generated by "rootcint" for all the classes of this RALICE package. This will allow automatic installation of the RALICE library without running "rootcint". 30-sep-1997 NvE 2-body decay added to class Track and invokation of "delete []" only performed in case the object exists in the destructors of the Calorimeter, Jet and Track classes. 02-oct-1997 NvE Installation for MSVC++ added into macro "install" and several "return 0.;" statements added in some "Sample" member functions. The latter caused MSVC++ compiler errors. Also 'int ..=fabs(int..)' changed to 'int ..=int(fabs(int..))' in "Cluster::Add()" to prevent G++ warning. 03-oct-1997 NvE The above code is now ANSI compatible, but MSVC++ 5.0 still gives an error when comp. extensions are switched off (flag /Za). The reason is probably an incorrect implementation of the ANSI type conversion rules in MSVC++. To satisfy MSVC++ for the moment the code in in "Cluster::Add()" has been changed to 'int ..=int(fabs(double(int..)))' so that at least a Microsoft compatible RALICE.DLL can be produced. As soon as G++ is able to produce Microsoft compatible dll's the support for MSVC++ will be dropped for ralice.cmz. Message to all : USE G++ AS COMPILATION STANDARD ! Also CMZ standard adopted to include a "$" in the DECK names which contain KEEP definitions. 13-oct-1997 NvE Compiler directive for g++ changed in "flogon" and "install" to provide warning for each non-ANSI C++ statement. Also ROOT libs linked with g++ in "install" in case of ROOT loadable shared library creation. Unused variables removed in "Calorimeter::add_ring" and "Track::decay". 14-oct-1997 NvE Strict ANSI requirements dropped for ROOT loadable lib creation to avoid many harmless warnings from rootcint generated code. Class "Random" added to /GENUTILS and /ROOT updated accordingly. 14-oct-1997 NvE Class "Random" extended with user definable distribution and /ROOT updated accordingly. 19-oct-1997 NvE Class "Random" extended with vector facility for user defined dist. and also bug fixed. /ROOT updated accordingly. 27-oct-1997 NvE Class "Random" optimised for user definable distribution and /ROOT updated accordingly. 10-dec-1997 NvE Creation of MSVC++ loadable library introduced in "install". 12-dec-1997 NvE Keep and Deck in /ROOT given unique names to enable loading of this package together with other packages. 20-jan-1998 NvE New ralicedict produced because of new ROOT 1.03/09 version. 23-mar-1998 NvE Macro "install" modified to support HP-CC. Multiple usage of for-loop index names removed to satisfy HP-CC compiler (although the original code was ANSI C++). Cluster data just reset to 'empty cluster' in case of cluster 'creation' or 'start' for edge module or no-signal module. 31-mar-1998 NvE Array index bug fixed in class Jet. 03-apr-1998 NvE Jet and Invmass classes optimised by using pointers and compiler options /GD and /DWIN32 introduced for msvc++ in order to optimize for windows DLL's and ensure correct pre-processing in RConfig.h for ROOT library creation. 13-apr-1998 NvE ROOTCINT processing implemented in $KUMACS/INSTALL and contents of /ROOT updated accordingly. Class Vertex added to /TRACKING and classes Track and Jet protected against modifying of returned addresses. 14-apr-1998 NvE "rm .def" removed for Unix systems in $KUMACS/INSTALL since on Unix no .def file is created by ROOTCINT. 17-apr-1998 NvE Return type Track& changed to Track* in the get_trk() member functions of the Jet and Vertex classes. 21-apr-1998 NvE Classes Track, Vertex, Jet, Lorbo and Invmass derived from TObject to enable ROOT I/O. $KUMACS/FLOGON and $KUMACS/INSTALL updated accordingly. 26-apr-1998 NvE Classes Module, Cluster and Calorimeter derived from TObject to enable ROOT I/O. Functionality of class Calorimeter has also been extended to enable re-clustering of original Module signals. 28-apr-1998 NvE Decay produced Tracks in class Track stored also into TObjArray to allow direct I/O. 03-jun-1998 NvE MSVC++ compiler option /DWIN32 removed in $KUMACS/INSTALL because of bug fix in ROOT version 2.00. Printout of version number introduced in $KUMACS/FLOGON and DOC section updated for new email and www address. 17-aug-1998 NvE New ALICE coding conventions adopted and automatic marking of 'edge modules' introduced in class AliCalorimeter. The automatic treatment of edge modules required new member- functions EdgeUp() and EdgeDown() in class AliModule. 19-aug-1998 NvE Call to LoadMatrix() added in AliCalorimeter::Group() to correctly treat different event sizes (i.e. empty events) when reading data from input file(s). 25-aug-1998 NvE AliCalorimeter::GetModule() introduced to provide quick access to all 'fired' modules. 27-aug-1998 NvE GetSignal() and GetClusteredSignal() of AliModule now return 0 in case the module was marked as dead. Because of the above, protection against row=col=0 introduced in AliCalorimeter::Group(). To enable access of modified calorimeter module data via AliCalorimeter::GetModule() after reading in, the "fModules" elements are updated in AliCalorimeter::LoadMatrix(). 16-sep-1998 NvE Correct deletion of the module matrix introduced in the AliCalorimeter destructor and AliCalorimeter::LoadMatrix(). 16-oct-1998 NvE New ALICE coding conventions adopted. This resulted in modifications in /$KUMACS and /ROOT (.cxx extension instead of .cc) and /HEADERS (public class area in front of private). #include added in AliCluster (thanks to A.Zvyagin). 19-oct-1998 NvE Protections agains crazy row,col numbers introduced in AliCalorimeter (thanks to E. van der Pijll). 22-oct-1998 NvE Bug fixed in setting edge values in SetDead() and SetAlive() of AliCalorimeter (thanks to E. van der Pijll). Also row and column dispersion introduced in AliCluster. 24-oct-1998 NvE Memberfunctions DrawModules() and DrawClusters() introduced in AliCalorimeter. Also AliRandom derived from TObject to enable ROOT I/O. 26-oct-1998 NvE DrawModules() and DrawClusters() histogram axes defined such that the X and Y axis corresponds to columns and rows resp. in AliCalorimeter. This view matches the 'common sense'. 06-nov-1998 NvE SetDirectory(0) invoked for the histos created in DrawModules() and DrawClusters() to suppress global character of the histo pointer. 16-nov-1998 NvE New class AliMath implemented in /GENUTILS and /ROOT updated accordingly. 23-jan-1999 NvE New class AliSignal implemented and AliCalorimeter extended to contain veto signal information. 25-jan-1999 NvE Most of the private areas modified into protected areas to enable the use of inheritance. Also support for veto signal information introduced in AliCluster. 04-feb-1999 NvE Cluster array for internal use removed in AliCalorimeter; now only the "TObjArray* fClusters" is used for performance optimalisation. 06-feb-1999 NvE New class AliPosition implemented for universal position handling and AliSignal, AliCluster and AliVertex all derived from AliPosition. AliModule inherits from AliSignal and arguments of SetPosition() and GetPosition() in AliCalorimeter updated to match the AliSignal inheritance of AliModule. 11-mar-1999 NvE All types changed to Int_t, Float_t etc... in order to guarantee portability of all data within the ROOT framework. 12-mar-1999 NvE Default destructors added in AliInvmass, AliLorbo and AliSample. 30-mar-1999 NvE New base class Ali3Vector introduced for universal 3D vector handling and AliPosition derived from it. In AliSignal::Reset() memberfunction call introduced instead of setting datamembers; this enhances flexibility for base class development. 01-apr-1999 NvE "car" introduced as default frame for Ali3Vector::Print(). 03-apr-1999 NvE New base class Ali4Vector introduced for universal handling of Lorentz 4-vectors. Also class AliBoost introduced to perform Lorentz boosts on Ali4Vector objects. This class will replace the old AliLorbo. Memberfunction Print() renamed to Info() for Ali3Vector, Ali4Vector and AliBoost to prevent clash with TObject::Print(). 05-apr-1999 NvE Functionality of Ali3Vector and Ali4Vector extended with += etc... 06-apr-1999 NvE Class AliTrack derived from Ali4Vector and updated accordingly. Also class AliJet modified by deriving it from AliTrack. 08-apr-1999 NvE Class AliVertex derived from AliJet and updated accordingly. Also recursive printing facilities List() and ListAll() introduced for AliTrack, AliJet and AliVertex. 09-apr-1999 NvE Obsolete classes AliLorbo and AliInvmass removed. A new AliInvmass class is planned to provide invariant mass reconstruction functionality to serve e.g. di-lepton and pi0 studies. 16-apr-1999 NvE New class AliInvmass introduced for invariant mass and comb. bkg. reconstruction. 21-apr-1999 NvE AliBoost::SetGamma() introduced for enhanced accuracy in boost parameters. 27-apr-1999 NvE AliModule and AliCluster classes renamed to AliCalmodule and AliCalcluster resp. in view of future general Aliroot base classes AliModule and AliCluster. 28-jun-1999 NvE Ali4Vector casting changed in AliVertex::Add() and some explicit type conversions added and an unused variable removed in AliInvmass to prevent g++ errors/warnings (thanks to Eugene van der Pijll).