ROOT Version 2.20 Release Notes
//________________________________________________________________________
//
//::> VERSION 2.20/00 27/11/98 15.33.28
//
//
// 26/11/1998 16.51.11 by Rene Brun
//
- Implement ZOOM on axis. Implement TAxis::ExecuteEvent.
To zoom along an axis, click with the left mouse button at the position
where you want to start zooming and release the button where you
want to end zooming.
If the button is released outside the axis range, unzooming is applied
in the corresponding proportions.
Note that the mouse may be released outside the pad or even canvas range
if one wants to unzoom by a large factor.
Zoom is effective for all kind of plots in 1, 2 or 3-D.
- A simple modification in TDirectory::ReadKeys adding IMPORTANT functionality
to Root in general (thanks Philippe Canal for the suggestion).
It is interesting to call this function in the following situation.
Assume another process1 is connecting this directory in Update mode
-Process1 is adding/updating objects in this directory
-You want to see the latest status from process1.
Example Process1:
obj1.Write();
obj2.Write();
gDirectory->SaveSelf();
Example Process2
gDirectory->ReadKeys();
obj1->Draw();
This is an efficient way (without opening/closing files) to view
the latest updates of a file being modified by another process
as it is typically the case in a data acquisition system.
- Protect TH1::Draw when trying to draw a temporary histogram already
existing in the pad. This solves problems like:
ntuple->Draw("px"); // this generates temporary histogram htemp
htemp->Draw(); // in old code, this statement was deleting htemp
- Fix a problem in TTree::DefinedVariable affecting the behaviour
of TTree::Draw when mixing queries involving arrays with indices
smaller than 10 and indices greater than 10.
(thanks Ludger Janauschek for reporting this problem).
- Protect TNtuple::Streamer when reading very old Root files (written
before January 97). Old TNtuples had one single branch.
//
// 23/11/1998 18.04.39 by Fons Rademakers
//
- TTF fonts fully implemented. The TTF handling part in ROOT
is implemented in class TGX11TTF which inherits from TGX11
and only overrides a few text routines (like DrawText()).
The loading of the FreeType $ROOTSYS/ttf/libttf.so and the ROOT
libGX11TTF.so is only triggered when you've installed the
TTF package in you $ROOTSYS directory. Installing this
package will create the sub-directory ttf/ containing the lib,
include and fonts directories. The binary ttf package can be
downloaded for each platform from the ROOT web site. Of course
source is also available.
The FreeType libttf.so "only" contains functions to create a
pixmap (for anti-aliasing) or bitmap of a certain character,
for a certain font at a certain size. In the ROOT TGX11TTF class
all higher level logic, like font caching, character caching,
string composition, background transparency, color allocation
for smoothing, etc., etc. is handled.
//
// 22/11/1998 16.56.54 by Rene Brun
//
- Implement the following new functions in class TMath:
Double_t TMath::Erf(Double_t x)
Double_t TMath::Erfc(Double_t x)
Double_t TMath::Gamma(Double_t z)
Double_t TMath::Gamma(Double_t a,Double_t x)
Double_t TMath::GamCf(Double_t a,Double_t x)
Double_t TMath::GamSer(Double_t a,Double_t x)
Double_t TMath::LnGamma(Double_t z)
Double_t TMath::Prob(Double_t chi2,Int_t ndf)
These new functions have been adapted to the Root coding style
from original functions implemented by Nick Van Eijndhoven based
on the book "Numerical recipees". See class TMath for more details.
- Correct comments in TH1::SetBins (thanks Philippe Kanal).
- Fix a problem in TChain::Merge in case the TTree does not reference
any objects, but only simple structures as for example in TTrees
generated by h2root (thanks Patrice Lebrun for reporting).
- Add SGI/EGCS and ALPHA/EGCS in $kumacs/globals and test/Makefile.
(thanks to Pasha Murat).
//
// 14/11/1998 18.27.14 by Rene Brun
//
- Changes in TCanvas::Streamer to support write/read of a canvas
from a Root file when running in batch mode.
The Canvas parameters were not correcly saved in the file due to a
side-effect of TCanvas::GetTopX that modifies the members
fWindowWidth and fWindowHeight.
Also fBatch must be set equal to gROOT->IsBatch in Streamer read mode.
//
// 13/11/1998 18.47.45 by Fons Rademakers
//
- TGX11: fix in RequestString and RequestLocator to not turn off
mouse motion and keyboard event. This caused the canvas to stop
handling mouse motion events after using the editor to edit
text strings.
- TPad: fix in PaintBox when drawing pattern backgrounds. Regression
was introduced during implementation of transparency in the same
routine.
- TMatrix: in ResizeTo don't use ReAlloc that verifies previous size
because in some cases we don't know any more the previous size
(like after a small reduction in size when there is no realloc done).
//
// 12/11/1998 20.14.39 by Fons Rademakers
//
- TRint: new method SetPrompt(). Using this method you can change
the standard root[] prompt. Like:
root [0] ((TRint*)gROOT->GetApplication())->SetPrompt("aap> ")
aap>
- TList: new method Remove(TobjLink lnk*). If the lnk is known objects
can be removed without makeing a linear search first. This method
was also added to THashList.
- TCanvas: create a default TApplication object in case it does not
yet exist at the time the first canvas is created. This guarantees
that certain service performed by TApplication have been performed
(like the allocation of the color table).
//
// 12/11/1998 13.52.35 by Rene Brun
//
- Extend size of internal TMinuit arrays (dimension kMAXDIM increased to 100).
- Modify $kumacs/vhtml macro.
Add new macro $kumacs/vhtmldev generating automatically the html file
describing the current Changelog.
//
// 10/11/1998 19.15.04 by Fons Rademakers
//
- THashList: corrected a case where in Delete() and Clear() objects
could be deleted twice. Involves also small change in THashTable
and TList.
- TDirectory: added some garbage collector clauses for extra protection
during cleanup.
- Started integration of TrueType library for X11. We use the TT render
engine from http://www.freetype.org/. The TT renderer will be used via
the class TGX11TTF. This class inherits from TGX11 and overrides only
the TGX11 text render functions. This class will be in its own shared
library. When this library is loaded it replaces the current gGXW (iff
it points to a TGX11 object) with a pointer to a TGX11TTF object.
From that moment on all fonts will be rendered using TT fonts. See
here the beauty of OO, C++ and dynamic linking.
- TGX11: made several text related method virtual. See above.
- TGXW: added the method HasTTFonts(), returns kTRUE if TGX11TTF is
loaded and active.
- TAttText: add case for TT fonts.
- TDataMember: create getter and setter interpreter call func environment
only when needed and not in the ctor. Save a lot of space.
- TRootGLViewer: handle expose event, like for TRootCanvas and
TRootEmbeddedCanvas.
- TClonesArray: cleanup TObjectTable when deleting or shrinking (i.e.
recuperating space) a clones array. Before TObjecTable could contain
invalid entries after the deletion of a clones array.
//
// 11/11/1998 17.11.49 by Rene Brun
//
- Implement the following new functions in class TMath:
TMath::Gaus(Double_t x, Double_t mean=0, Double_t sigma=1)
TMath::Landau(Double_t x, Double_t mean=0, Double_t sigma=1)
The Landau function is a C++ implementation of the function DENLAN
in CERNLIB (G110).
- Implement new function TRandom::Landau.
This function returns a random number following a Landau distribution.
- new keywords "landau", "xlandau", "ylandau", "xylandau" in TFormula.
One can create functions using inline formula referencing these keywords.
Example:
TF1 f1("f1","landau",-5,25);
f1.SetParameters(100,0,1);
f1.Draw();
- Modify TH1::Fit to automatically initialize parameters
for a landau fit.
Example:
TH1F h1("h1","test landau",100,-5,25);
h1.Fillrandom("f1");
h1.Fit("landau");
- New button "landau" in TFitPanel.
- Modify tutorial hsum.C to show an example of TRandom::Landau.
- Implement support for both Alpha/Unix CXX version 5 and 6 in
$kumacs/globals and test/Makefile.
- Fix a problem in TTreeFormula::GetNdata. When fNodes[i] < 0
there is no need to compute a pointer to the leaf i.
This problem was appearing in TTreeFormula when called
by TTree::Scan. Thanks to Mike Beddo for reporting.
- In TCutG::SavePrimitive, add a few more statements to the generated
code when saving a TCutG:
-Reference to the original Tree
-Setting of the VarX and VarY expressions.
//
// 10/11/1998 18.16.18 by Rene Brun
//
- Modify TH1::FitSlicesY and TH1::FitSlicesZ to save the initial
parameters settings and reinitialize the fitting function with
the saved parameters before each new slice fit.
- Modify TH1::Build to not delete a previous histogram with the same name
as the histogram being created. The old histogram is simply removed
from the list of objects in the current directory.
//
// 09/11/1998 18.46.02 by Rene Brun
//
- Change most functions of TMinuit to be virtual. This gives the
possibility to derive a class from TMinuit.
- Merge with Valery's version and Fons's version.
- Extensions in test suite "stress". stress tested on all machines.
Implementation of new ROOTMARKS.
- Optimization in TGaxis::PaintAxis. In case of log axis, the algorithm
positioning the power of 10 exponent in case of logarithmic axis
has been improved.
- Mods in TH1::UseCurrentStyle. Additional attributes are taken into account.
In particular, axis attributes.
//
// 08/11/1998 12.35.34 by Rene Brun
//
- Some changes in data member declarations in classes TFile, TSlave
TNetFile and TProof.
Data members counting I/O transactions are now declared Double_t
instead of UInt_t. This
in the corresponding classes.
Root server ROOTD also changed accordingly.
//
// 05/11/1998 18.57.57 by Rene Brun
//
- Modify TClass::BuildRealData and TTree::Branch to set the Zombie
flag for the temporary object created to build the dictionary.
A user can test (IsZombie()) in the object destructor.
- Modify program test/Event, adding a new static function Reset.
This function is called by the stress program.
- Update deck makemklinux in install directory (thanks Damir Buskulic).
- Update $kumacs/global flags for Alpha/CXX. CXX version 6 is now the default.
Same in test/Makefile.
//
// 05/11/1998 16.13.26 by Rene Brun
//
- Add a new test program called "stress" in test directory.
This program can be compiled with the native compiler or interpreted.
To compile it, do:
make stress
stress to run it
To run with the interpreter, cd to $ROOTSYS/test
Root > .x stress.cxx(100)
The program stress is a collection of test programs executed sequentially
and testing most of the facets of the Root system.
The execution of stress ranges from a few tens of seconds on fast systems
to a few minutes. The execution time is used as a benchmark.
We expect to add more test programs to the stress test suite.
- The introduction of "stress" has required changes in test/Makefile
and test/MakefileWin32.
- Fix a problem in TTree::Draw (AIX and SGI only).
In case of a command like: tree->Draw(">>eventlist","x,0")
the internal variable varexp was not correctly initialized.
- Due to a bug in VisualC++ for the mathematical operator pow
replace all references to TMath::Power(x,2).
This solves in particular a long standing problem in TH1::GetRMS
under Windows.
- In test program vmatrix, replace long by double in TMath::Power.
//
// 05/11/1998 15.09.36 by Fons Rademakers
//
- TCanvas: GetWindowTopX() and GetWindowTopY() now return the exact
position of the canvas on the screen. A TCanvas can now be restored
on the same position as when it was saved.
//
// 04/11/1998 18.06.20 by Rene Brun
//
- Fix a bug in TEventList::Add. The first time a new list was added to
an existing list, the size fSize and the current number of elements fN
were not set.
- Add additional comments in the documentation of classes TCutG and
TEventList explaining how to get a pointer to these objects.
- Modify TH1::PaintTitle and TH1::PaintStat to use gStyle->GetTextFont()
when drawing the title and stats TPaveText. The font 62 was hardwired.
- Fix a problem in TFormula::Streamer (read part).
The array fExpr was created with zero length in case fNoper=0.
This case could appear when a TF1 object referencing an interpreted
CINT function was saved into a file and read again. The effect
was only visible later in the TFormula destructor and only under HP-UX 9.
//
// 04/11/1998 16.45.20 by Fons Rademakers
//
- TGX11: fixed WriteGIF. Works now also on X servers with more than
8 planes. Only the used colors in the image are put in the colormap
(used to be the full colormap, therefore > 8 planes did not work).
If there are more than 256 colors used in the image than we should
use the GIFquantize() routine to reduce the colormap. The routine
is there, only has to be interfaced. The routine ImgPickPalette()
in X11_imgpickpalette() has been removed and replaced by
TGX11::ImgPickPalette().
//
// 03/11/1998 08.40.24 by Rene Brun
//
- Fix a precision problem in TLego.
Instead of testing on 0, test on kEpsil. On Linux with gcc optimized,
the side effect was to generate large Postscript files when the Lego/Surf
options were used.
//
// 02/11/1998 18.20.17 by Fons Rademakers
//
- TRootEmbeddedCanvas: forgot to update after changing TRootCanvas
and TGX11. Handles now also expose events for X servers without
backing store.
- TPad: override SetFillStyle() to map style 0 to 4000 (transparancy).
This allows setting of transparent mode via TAttFillDialog as can
be done for non-pad boxes (like TPaves, etc.).
//
// 01/11/1998 18.56.47 by Fons Rademakers
//
- TPad: implemented transparent pads. A pad is made transparent by
setting its fill style (using SetFillStyle()) in the range 4000-4100.
Where 4000 is fully transparent and 4100 fully opaque. All magic
is done in the method PaintBox() using the new (private) methods
CopyBackgroundPixmaps() and CopyBackgroundPixmap(). Transparent pads
need to always be updated if anything in the canvas is changed
or moved. This is handled in PaintModified().
- TAttFill: new method IsTransparent(). Returns true is fill style is
in the range 4000-4100.
- TCanvas: fixed bug showing on X servers without backing store.
After closing of a TCanvas the FeedBackMode() was not set false
and therefore the X drawing mode in GX11 could remain in kInvert
mode instead of being reset to kCopy. This results in a wrong
refresh of the remaining canvases.
- TRootCanvas: added in the Options menu the items "Move Opaque" and
"Resize Opaque". Also corrected default setting of the check marks
of some option menu items.
//
// 02/11/1998 10.14.28 by Rene Brun
//
- Protection in TDirectory destructor when called from the TROOT destructor.
- Minor change in TF1::Fit to call SET PRINT before SET ERR.
When working in Quiet mode, no messages are printed.
- Minor change in TFile::Write. Do not print anymore the message
TFile Writing ...
To get the message, set the global gDebug to 1.
- Modify comments in TFormula constructor.
//
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.