ROOT Version 1.03 Release Notes
//________________________________________________________________________
//
//::> VERSION 1.03/09 16/12/97 17.53.37
//
// 16/12/1997 16.59.42 by Rene Brun & Fons Rademakers
//
- The main feature of this new version is a general CLEANUP of most
ROOT classes. The complete Root system can now be compiled with NO WARNINGS
on all supported platforms. The compiler option "-w" has been removed.
On Linux, the option -Wall is now the default.
We strongly encourage our users to also compile with the option warnings
activated.
During this cleanup operation, we found some inconsistencies in a few classes.
The following changes are not backward compatible:
TDirectory::Read has been renamed TDirectory::ReadAll
TDirectory::Write has a new signature.
TKey::Read has been renamed TKey::ReadObj.
TMatrix::Clear has been renamed TMatrix::Zero.
- Following this cleanup, you must regenerate the dictionaries
for your classes. In particular, the copy constructor of TCollection is
now private. We did this to prevent people from accidentally copying or
assigning collections. In the old version there was no correct copy ctor
for collections and naive usage of passing collections around could cause
unexpected behaviour.
- All ROOT specific DEFINEs have been renamed to R__oldname
AIX -> R__AIX
ALPHA -> R__ALPHA
B64 -> R__B64
BYTESWAP -> R__BYTESWAP
GNU -> R__GNU
HPUX -> R__HPUX
I386 -> R__I386
INT16 -> R__INT16
LINUX -> R__LINUX
MAC -> R__MAC
MKLINUX -> R__MKLINUX
MWERKS -> R__MWERKS
SGI -> R__SGI
SOLARIS -> R__SOLARIS
SUN -> R__SUN
UNIX -> R__UNIX
- Fix a problem in TMath::Atan2(y,x). When x=0 returns pi/2 and not 0.
(thanks Ping Yeh).
- Remove list of global functions from the list of browsable objects
in TROOT.
- Change TGaxis::PaintAxis to support tickmarks on the negative side of the axis.
TAxis::SetTickLength accepts now negative values.
- Change TColor::SetRGB to always call TGXW::SetRGB.
- Several changes in TGraph::PaintGraph. Minimum and Maximum were not
read correctly in TGraph::Streamer.
- Implement option "B"ound in TGraph::Fit.
- Modify TGraph::GetHistogram. Returns pointer to
1- TH1F histogram used to draw axis when option "A" given in Draw.
2- TH1F histogram hframe when TPad::DrawFrame is called instead.
- Optimisation of TGraphErrors to clip correctly error bars
in case of LogY scale.
- Implement TPolyMarker::SavePrimitive.
- Changes in TNode::DistancetoPrimitive.
- Modify TBranch::Print. The ouput of TTree::Print shows only two lines
per branch. Format optimized.
- TBranchClones constructor issues a warning in case the class referenced
by the TClonesArray contains pointers.
- TBranchObject constructor calls TClass::BuildRealData if necessary.
In the old version, this task was left to TBranch::Fill.
- A few protections added in h2root. In case of a 2-D array in a CWN,
the maximum of a leafcount was not correctly set, giving possible problems
when reading the Tree (thanks Laurent Mirabito for an example).
//
// 05/12/1997 17.18.35 by Rene Brun
//
- Delete TNamed::Draw. Uses now TObject::Draw.
- Fix a memory leak in TLeafObject::FillBasket.
When a TBranchObject has a branch with a null pointer, Root creates a Zombie
object. This zombie was not deleted.
- Modify TPad::PaintBox to accept a new fill style (range [3020,3099]).
TPave, TBox objects filled with these styles have the same fill style
as [3010,3019] but use the object color instead of black.
- Modify TBranchObject constructor to always create a TLeafObject.
- Modify TBranch::Streamer to reinitialize global gBranch after reading
all branches of a branch and before reading all leaves of a branch.
With these modifications, one can call a member function of the top level
object. For example in the $ROOTSYS/test/Event program, one can do:
Root > T.Draw("event.GetNtrack()")
where event is the name of the top level branch.
- Modify TGraph constructor to initialize the default values
for the graph maximum and minimum in case the constructor is called
with null x and y arrays. This case happens when a canvas containing
a TGraph object is saved as a macro.
- In TTree::Branch and TLeaf::TLeaf implement changes to support
static arrays data members in case of the top level object.
This functionality was already implemented for TBranchclones only.
- Fix problem in TPadOpenGLView::MoveModelView.
A TStopWatch was systematically created twice.
- Support for positive and negative tick marks size in class TGaxis.
- Fix a problem in TGraph::Streamer (thanks M.Woudstra).
When a TGraph object was written to a file, the maximum/minimum
for the Y scale were not correctly saved.
- Changes in TPad::CreateNewPave. When the corners of the pave
are the same pixel, artificially make a pave with 10 pixels.
- Changes in TGaxis::Paint.
Give possibility to specify a negative label offset.
- Fix a problem in TGraphErrors::Paint.
In case of log scale and if the value of the error in Y was larger
than Y itself, than the error bar was not drawn.
- Modify h2root to take into account a nasty case with Hbook.
You had an Hbook error message when creating the file (too many records).
Hbook file should have been created with a bigger LRECL.
h2root will try to recover.
- Fix a problem in TNode::DistancetoPrimitive.
In case one single node with no sons was drawn, it was not possible
to rotate this node.
- Change maximum size of a local array (member name+value+title)
in TObject::Dump from 250 to 350.
- Change definition of local variable nwh from char to unsigned char
in TString::ReadBuffer. This removes a limitation to 127 chars
for keys in a directory.
//________________________________________________________________________
//
//::> VERSION 1.03/08 24/11/97 17.21.27
//
// 24/11/1997 16.48.50 by Fons Rademakers
//
- Fixed the copy ctor and operator= for a number of classes
(a.o. TObject, TNamed, TH1, TH2, TArray, TUrl, TInetAddres).
- Made copy ctor and operator= private for TCollection baseclass.
- Split the global operator new(size_t), operator(size_t,void*)
and operator delete(void*) from the TStorage class. These three global
operators are now in their own shared library libNew.so. You can
now link your applications without the libNew.so to not have
ROOT's memory checking new/delete. Note, however, that without
ROOT's new/delete you will not be able to use the shared memory
features of TMapFile. The distributed root executable module itself
is always linked with libNew.so (source of the root main program
is now included in the $ROOTSYS/include directory so you can relink
your own root module without new/delete if desired).
- Introduction of TMatrix, TVector and utility classes. Physics specific
vectors (TVector3, TVector4, TLorentzVector) will come in the next
version. Also more linear algebra operations using TMatrix will come
later. For a full description of the matrix classes see:
http://root.cern.ch/root/html/TMatrix.html#TMatrix:description
And for some test programs see $ROOTSYS/test/vmatrix.cxx and vvector.cxx.
- TTree::SetBranchStatus, fix in setting status for single attribute
of object in a TClonesArray.
//
// 14/11/1997 10.30.35 by Rene Brun
//
- Two new functions in TChain to merge Root files.
TChain::Merge(const Text_t *name)
Merge all files in this chain into a new file
TChain::Merge(TFile *file, Int_t basketsize, Option_t *option)
Merge all files in this chain into a new file
if option ="C" is given, the compression level for all branches
in the new Tree is set to the file compression level.
By default, the compression level of all branches is the
original compression level in the old Trees.
if (basketsize > 1000, the basket size for all branches of the
new Tree will be set to basketsize.
- Modify all header files of the geometry package to declare all
destructors virtual.
- Protect TPad::Editor in case the corners of TPavexxx or TDiamond
are identical.
- Fix a problem in TCanvas::Build. The pointer fContextMenu was not
initialized in some cases.
- Implement new member function TPad::RedrawAxis.
Redrawing axis may be necessary in case of superimposed histograms
when one or more histograms have a fill color
- Add TVirtualPad::Divide. We had only TPad::Divide.
With this change, one can do
gPad->Divide(2,2)
where gPad is a global always pointing to the current pad.
- Modify TDirectory::Browse to also browse objects (histograms) only
defined in memory.
- Modify TObject::Inspect. Data member names and values are painted
always in black color (to avoid problems with Netscape).
- Implement new function TBranchObject::UpdateAddress.
This function is called by TTree::Fill when the Tree consists
of one single super branch (a TBranchObject) and the object referenced
by this branch is at a different address than in the previous fill.
This situation happens when for example a new Event object
is created and deleted inside the Event loop.
TBranchObject has a new data member fOldObject.
- Modify class TTree and TBranchClones.
Change calling sequence for TBranchClones constructor to be consistent
with the other branch constructors.
For all cases of branch, the address of the pointer is given.
In the case of a ClonesArray, it was the pointer that was given.
- Fix a problem in TBranchClones in case a TTree contains more than
one branch with a TClonesArray referencing the same class.
(many thanks to Andre Schungel).
This change has also required a new function TLeaf::SetLeafCount.
- Implement new set of functions in TStyle to set/get the definition
of line styles. This info is only used by PostScript currently.
See TStyle::SetLineStyleString for more information.
- Protect TCanvas::MakeDefCanvas in case the default canvas
already exists. If c1 exists, c1_1 will be created,
If 5 canvases already exist, then c1_6 will be created,
- Rewrite TClonesArray destructor. Really deletes now all objects in
the clonesarray.
- In TContextMenu::Execute, sets the current pad to the pad where
the mouse was clicked before excution the action.
- Renormalize rootmarks
//
//________________________________________________________________________
//
//::> VERSION 1.03/07 08/11/97 13.37.55
//
//
- Implement new member functions in TH1 class to return integral of bins:
-- TH1::Integral()
returns integral of all bins (work for 1-D, 2-D and 3-D histograms)
-- TH1::Integral(Int_t binx1, Int_t binx2)
for 1-D histograms, return integral in range [binx1,binx2].
-- TH1::Integral(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2)
for 2-D histograms, return integral in range [binx1,binx2],[biny1,biny2].
-- TH1::Integral(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Int_t binz1, Int_t binz2)
for 3-D histograms, return integral in range [binx1,binx2],[biny1,biny2],[binz1,binz2].[binx1,binx2].
- Implement TH1::Fill(Float_t x, Float_t y, Float_t z, Stat_t w).
This function should be used instead of TH3x::Fill to fill
a 3-D histogram.
Modify TH1::Fill(Float_t x, Float_t y, Stat_t w) to automatically
invoke the 3-D Fill function with a weight=1 in case of a 3-d
histogram.
- First attempt to compile Root with gcc under AIX (thanks pasha Murat).
Files $kumacs/globals and root_libs modified accordingly.
Not yet tested.
- Fix a bug in TH1::ProjectionY (thanks Torsten Henkel)
The projection along Y had NX bins instead of NY bins.
- In TLeafObject::FillBasket and TLeafObject::ReadBasket implement support
for NULL pointers.
In case a TBranchObject references a NULL pointer, FillBasket creates
a Zombie object of the class. When ReadBasket reads an object, it checks
if it is a Zombie object and delete it.
- Modify TGraph::PaintGraph. In case option "A" is specified,
the pad range and axis are automatically updated. If a point has been modified
and is outside the current range, the new range will be automatically
computed. (thanks Reiner Rohlfs and Wolgang Korsch).
- Activate TGraph::SetOption. This function was dummy before.
- Protect TTree::SetBranchAddress in case of an invalid branch name
and prints an error message.
- Protect class TWin32ListViewCrtl in case a class IsaFolder and
there is nothing to browse.
- g2root implemented on Linux and AIX.
(thanks to Laurent Aphecetche)
- Protection in THtml class (Fons). Problem reported by Jim White.
- Protect TTreeFormula::DefinedVariable in case of very long expressions.
(Thanks to Patrice Lebrun for providing a test example).
- Implement two new functions in TMinuit class;
TMinuit::SetMaxIterations(Int_t maxiter=500)
Int_t TMinuit::GetMaxIterations();
- Modify TH1::Fit to call TMinuit::GetMaxIterations.
In the previous implementation, the maximum number of iterations
was hardwired in TH1::Fit with a value of 500.
To modify this value, before a fit, do:
gMinuit->SetMaxIterations(myMaxIter);
- Modify $TObjPtr.
g++ under AIX requires function Compare to be declared inline
despite the fact that it is really given as inline in the include.
- changes in TButton::ExecuteEvent. In case of WindowsNT, one must
execute all the ButtonUp functions in the main Thread.
- Modify macro root_dll for WindowsNT.
Creation of Root_Pythia.dll requires $PYTHIA/Pythia.lib.
- Modify macro MaheDistWindows.
By default, do not export Pythia library.
The library is renamed .tmp before making the tar file
and again renamed .dll after tar.
- Fix a problem in TTree::Draw when drawing an array element.
The new version forces reading of the branch count in this case.
This modification implied a new function GetValuepointer in
all TLeaf classes.
- Fix a problem in TGaxis::Paint when drawing an axis for which the
wmin,wmax values have no connection at all with the current pad range.
(thanks to Reiner Rohlfs).
- Take into accounts non-persistent data members in split mode.
A data member is declared persistent by default.
To make a data member non-persistent, use the character "!"
as the first character in the comment field of this member.
- Modify TBranchClones::TBranchClones to take into account
objects in a TClonesArray having subobjects. For example
a Track object could have two ThreeVector objects inside.
//________________________________________________________________________
//
//::> VERSION 1.03/06 27/10/97 18.11.42
//
//
// 27/10/1997 18.00.26 by Rene Brun
//
- TTree::Branch modified to enable the creation of a branch in case
a data member is a static array of basic types.
(Thanks to Gordon Watts for providing a simple test program).
- Implement TF2::GetRange with 6 return parameters.
This function is called from TH1::Fit. With this new function
one can now fit a 2-d or 3-d histogram with a range specified.
- Improvements in TCanvas::SaveSource. Take into account screen factor.
//
// 24/10/1997 16.46.55 by Fons Rademakers
//
- New version of CINT from Masa Goto intoduced (version )
- Improvements in TClonesArray::ExapandCreate and TClonesArray::RemoveAt.
- Redone all TArrayX classes. They now inherit from a common TArray
class. Since TArray does not inherit from TObject it contains a
private interface to TBuffer (via the statics ReadArray() and
WriteArray()) so we can now also save pointers to TArray objects,
which was not possible before (only embedded arrays could be streamed).
Also added a number of new methods for the array classes, like:
- copy constructor
- assignment operator
- Adopt() method (allows array to adopt any existing primitive array
without having to make a copy)
- AddAt() like in TObjArray
- At() line in TObjArray
- operator[] like in TObjArray
last three methods also perform range checking. For the rest the
TArrayX classes are backward compatible (also for I/O).
- Rootcint understands a new option in the LinkDef.h. In case the
class name is trailed by a ! rootcint will not generate the
operator>>() method. This is necessary because the default generated
method for non TObject derived classes is not correct (prints error
message instead of reading object). Example:
#pragma link C++ class TArray!;
#pragma link C++ class TArrayC-!;
//________________________________________________________________________
//
//::> VERSION 1.03/05 16/10/97 15.40.07
//
// 15/10/1997 17.28.10 by Rene Brun
//
- Implement TGraphErrors::GetErrorX (in addition to GetErrorY).
Fix a problem in TGraphErrors header. GetEX and GetEY were returning
wrong values.
- In h2root, change default buffer size from 32000 to 8000 bytes
when converting CWNs.
- New function TStyle::Browse. This gives the possibility to automatically
set a style from the browser.
- new class TSystemDirectory (implemented by Christian Bormann, IKF Franckfurt).
Changes in TSystemFile.
Thanks to these changes, the current working directory can be browsed.
- Changes in TContextMenu to use TVirtualPad instead of TPad/TCanvas.
With this change, using a contextmenu does not force linking
with the graphics libraries.
- Protection added in TH1::PaintHist. The log of a variable was computed
in case of non-log scale.
- Change in TBranch::Browse. In case different branches contain leaves
with the same name, the browser was always drawing the first occurence found.
- Mods in TBranchClones::Streamer. The branch address is now computed
when reading the branch definition from the file. Previous implementation
assumed that the offset of data members with respect to the object pointer
was identical on all machines.
- Mods in TBranchObject::SetAddress. The branch address is now recomputed
Previous implementation assumed that the offset of data members with
respect to the object pointer was identical on all machines.
- several changes in the TPythia and TMCParticle classes.
//
// 15/10/1997 17.28.10 by Fons Rademakers
//
- several improvements in rootd. Ported to all supported systems.
Rootd can also be configured for anonymous usage (like anonymous
ftp). To setup rootd to accept anonymous logins do the following
(while being logged in as root):
- Add the following line to /etc/passwd:
rootd:*:71:72:Anonymous rootd:/var/spool/rootd:/bin/false
where you may modify the uid, gid (71, 72) and the home directory
to suite your system.
- Add the following line to /etc/group:
rootd:*:72:rootd
where the gid must match the gid in /etc/passwd.
- Create the directories:
mkdir /var/spool/rootd
mkdir /var/spool/rootd/tmp
chmod 777 /var/spool/rootd/tmp
To make writeable directories for anonymous do, for example:
mkdir /var/spool/rootd/pub
chown rootd:rootd /var/spool/rootd/pub
That's all.
Several remarks:
- you can login to an anonymous server either with the names
"anonymous" or "rootd".
- the passwd should be of type user@host.do.main. Only the @ is
enforced for the time being.
- in anonymous mode the top of the file tree is set to the rootd
home directory, therefore only files below the home directory
can be accessed.
- anonymous mode only works when the server is started via inetd.
- new function TCint::Calc.
Directly execute an executable statement (e.g. "func()", "3+5", etc.
however not declarations, like "Int_t x;").
- New functions in TClonesArray (Compress, RemoveAt, Remove and Sort).
An entry in a clonesarray can be removed and a garbage collection
can be triggered via Compress.
Similar functions in TObjArray.
- Modify macro globals and install_test.
globals include uptodate compiler options for hpux/g++.
install_test includes root/macros in the distribution kit.
- Changes in TMath. Hyperbolic functions now inline.
//________________________________________________________________________
//
//::> VERSION 1.03/04 01/10/97 08.37.28
//
//
// 30/09/1997 18.16.10 by Rene Brun
//
- Changes in the installation procedures.
By default the patch EG (Event Generators interface) is compiled.
The new patches VENUS and PYTHIA are compiled if the corresponding
options are set before running the installation procedure.
- The patch Venus includes an interface to the Venus event generator.
- The patch Pythia includes an interface to the Pythia event generator.
- The shared libraries libEG.so, libEGVenus.so and libEGPythia.so
are part of the distribution kit (except under AIX).
//
// 30/09/1997 17.48.23 by Fons Rademakers
//
- TApplication: the macros specified as program arguments will
only be executed the first time Run() is called. Second or
more calls to Run() will not re-execute the start-up macros.
- TRint: raw terminal mode will only be set when calling Run()
and not directly by the TRint ctor. Leaving Run() will unset
raw mode. This allows easier embedding of ROOT eventloop.
- TCollection: the Remove() method now returns pointer to
removed object or 0 when object was not found in collection.
This allows easy detection if removed pointer was really in
collection.
- TUnixSystem: fix bug in dispatching of Async timer event.
- TEnv: resource values surrounded by $() will be expanded to
shell environment value. For example:
Root.DynamicPath: .:~/rootlibs:$(LD_LIBRARY_PATH)
will be expanded to:
Root.DynamicPath: .:~/rootlibs:/user/rdm/root/lib:/usr/local/lib
- TMath: Sign() functions now behave like the Fortran intrinsic
SIGN funtions.
//
// 29/09/1997 18.33.46 by Rene Brun
//
- TStyle improvements.
The following new functions are available in the TStyle class:
- TStyle::SetFrameBorderMode
- TStyle::SetCanvasBorderSize
- TStyle::SetCanvasBorderMode
- TStyle::SetPadBorderSize
- TStyle::SetPadBorderMode
- TStyle::SetPadBottomMargin
- TStyle::SetPadTopMargin
- TStyle::SetPadLeftMargin
- TStyle::SetPadRightMargin
- TStyle::SetTitleXOffset
- TStyle::SetTitleXFont
- TStyle::SetTitleXSize
- TStyle::SetTitleYOffset
- TStyle::SetTitleYFont
- TStyle::SetTitleYSize
- Changes in class TROOT.
By default, the ROOT constructor creates two styles:
- "Default"
- "Plain" with all fancy 3-d effects and colors removed.
New styles can be created by invoking the TStyle constructor
or by making a clone of an existing style. Example
TStyle *mystyle = gStyle->Clone();
this statement will create a clone/copy of the current style.
If you intend to work all the time with a given style (eg,Plain), add
the following statement in your rootlogon.C file:
gROOT->SetStyle("Plain");
- New function TROOT::SetStyle(const char *stylename).
This function looks for an already defined style named stylename
and sets it as the current style.
- New function TROOT::ForceStyle(Bool_t force)
If this function is called, then when reading objects from a file
their attributes will be replaced by the corresponding ones in the
current style.
Note that object attributes are set in the object constructor or by
calling functions such as:
TAttLine::SetLineColor
TAttFill::SetFillColor, etc..
- New function TCanvas::UseCurrentStyle and TPad::UseCurrentStyle.
These two functions may be invoked from the command line or the
canvas/pad context menu respectively.
When invoking these functions, all objects in the canvas/pad will see
their attributes replaced by the corresponding attributes in the
current style.
- Changes in TGraph::DistancetoPrimitive (thanks Wolfgang Korsch).
When a graph/grapherrors has an associated fitted function,
DistancetoPrimitive gives preference to the function when the mouse
is far from the graph points.
- New CINT 5.13/28 version introduced.
- Changes in rootcint in case a class contains several static arrays.
The code generated for Streamer defines the loop index R__i outside
the loop.
- Changes in getline.
- Protection in TMotifBrowser.
- Changes in TBranch, TBranchClones and TBasket.
Remove unnecessary delete of TBaskets. New function TBasket::DropBaskets.
- Changes in $TPadOpenGLView. Change from protected to public
some member functions.
- New function TClonesArray::Compress. This function compress entries
in a clonesarray(it removes all entries with null pointers).
//
//________________________________________________________________________
//
//::> VERSION 1.03/03 10/09/97 08.33.38
//
//
// 09/09/1997 16.47.04 by Rene Brun
//
- Protection in Widgets/Iconbox. Remove code freeing pixmaps.
Prior to this change, a TBrowser could not be deleted.
- Protect TPad::Draw in case fPixmapID = -1. This may happen when
the DrawClone item is selected on a pad.
- In TContextMenu:: , the current pad is correctly restored before
executing the action item.
With this change, one can now DrawClone a pad.
- Introduce new Thread patch. Implementation by Victor Perevoztchikov.
- Improve output quality (mainly Postscript) when drawing error bars.
(change size of BASEMARKER in TGraphErrors::paint).
- Many changes in patch META by Piotr Golonka. The Root dictionary
includes additional info when special comments are given in the adta member
or member functions.
- Allow leading and trailing blanks in TTree::Draw for the expressions
to be processed, including the name of the user-defined histogram.
- Merge with Piotr Golonka's new version of context menu
and dialog boxes.
- Implement a few changes in mmconfig, mmapsup and mvalloc
(thanks Damir Buskulic) for the implementation under MkLinux.
//________________________________________________________________________
//
//::> VERSION 1.03/02 03/09/97 19.16.09
//
//
// 03/09/1997 15.40.40 by Fons Rademakers
//
- TNetFile fully implemented. Its functionality is as follows:
A TNetFile is like a normal TFile except that it reads and writes
its data via a rootd server (for more on the rootd daemon see the
source files ROOTD_*.cxx). TNetFile file names are in standard URL
format with protocol "root". The following are valid TNetFile URL's:
root://hpsalo/files/aap.root
root://hpbrun.cern.ch/root/hsimple.root
root://pcna49a:5151/~na49/data/run821.root
root://pcna49d.cern.ch:5050//v1/data/run810.root
The only difference with the well known httpd URL's is that the root
of the remote file tree is the user's home directory. Therefore an
absolute pathname requires a // after the host or port specifier
(see last example). Further the expansion of the standard shell
characters, like ~, $, .., are handled as expected.
TNetFile (actually TUrl) uses 432 as default port for rootd.
Connecting to a rootd requires the remote user id and password.
TNetFile allows three ways for you to provide your login:
1) Setting it globally via the static functions:
TNetFile::SetUser() and TNetFile::SetPasswd()
2) Getting it from the ~/.netrc file (same file as used by ftp)
3) Command line prompt
The different methods will be tried in the order given above.
On machines with AFS rootd will authenticate using AFS.
The rootd daemon lives in the directory $ROOTSYS/bin. It can be
started either via inetd or by hand from the command line (no need
to be super user). For more info about rootd see the web page:
http://root.cern.ch/root/NetFile.html.
- Rootd daemon now fully implemented. Its functionality is as follows:
Root remote file server daemon.
This small server is started either by inetd when a client requests
a connection to a rootd server or by hand (i.e. from the command
line). The rootd server works with the ROOT TNetFile class. It
allows remote access to ROOT database files in either read or
write mode. By default TNetFile assumes port 432 (which requires
rootd to be started as root). To run rootd via inetd add the
following line to /etc/services:
rootd 432/tcp
and to /etc/inetd.conf:
rootd stream tcp nowait root /user/rdm/root/bin/rootd rootd -i
Force inetd to reread its conf file with "kill -HUP <pid inetd>".
You can also start rootd by hand running directly under your private
account (no root system priviliges needed). For example to start
rootd listening on port 5151 just type:
rootd -p 5151
Notice: no & is needed. Rootd will go in background by itself.
Rootd arguments:
-i says we were started by inetd
-p port# specifies a different port to listen on
-d level level of debug info written to syslog
0 = no debug (default)
1 = minimum
2 = medium
3 = maximum
- TFile::Open() new static method. Depending on the file name it either
returns a TFile, TNetFile or a TWebFile. In case a TNetFile url is
given a local TFile will be returned in case the local hostname and
the hostname in the url are the same. Typical usage:
TFile *f1 = TFile::Open("local/file.root");
TFIle *f2 = TFile::Open("root://pcna49a.cern.ch/data/file.root", "new");
TFIle *f3 = TFile::Open("http://root.cern.ch/~rdm/root/hsimple.root");
//
// 02/09/1997 16.07.48 by Rene Brun
//
- Protect TObject::Execute in case a canvas has not yet been created.
- Implement new options in TNode::SetVisibility. The following visibility
options are provided:
vis = 3 node is drawn and its sons are drawn
vis = 2 node is not drawn but its sons are drawn
vis = 1 (default) node is drawn
vis = 0 node is not drawn
vis = -1 node is not drawn. Its sons are not drawn
vis = -2 node is drawn. Its sons are not drawn
vis = -3 Only node leaves are drawn
vis = -4 Node is not drawn. Its immediate sons are drawn
The macro tutorials/na49visible has been modified accordingly.
- Macro tutorials/rootmarks modified to renormalize rootmarks to current
results on an HP735. Root version number is printed.
- Improve TGraph::Fit. An algorithm has been introduced to make
an estimation of the errors at point of a graph.
- New member functions TGraph::GetErrorY and TGraphErrors::GetErrorY.
- Fix a problem in TH1::PaintFrame when drawing with option "cont".
(The TFrame object cannot be created in this case).
This was producing a corrupted picture on Postscript.
- Implement TButton::Paint (calling TPad::Paint).
With this change TButton objects can also be painted on Postscript.
- Modify installation procedure under Windows. The Root version number
is now automatically generated in the MakeDist,etc files.
- Add new functions (CosH,SinH,TanH,AcosH,AsinH,AtanH) in class TMath. On Unix, these
functions call the standard C functions. Code introduced for Windows.
//________________________________________________________________________
//
//::> VERSION 1.03/01 22/08/97 12.48.47
//
//
// 22/08/1997 11.37.51 by Rene Brun
//
- Fix a bug in TBranch::GetEvent (Thanks Valerio Filippini).
One must call TBuffer::ResetMap for each event.
- Implement new function TTree::CloneTree(Int-t nevents).
This function is useful to make a copy of an existing Tree
with a subset of the original entries. If nevents=0, no events are copied.
- Implement functions TTree::Reset and corresponding TBranch::Reset.
TTree::Reset resets all entries of an existing Tree.
- New function TPad::DrawFrame.
This function us useful to draw an empty frame in a given range.
It sets the pad range automatically from the limits given in the parameters.
It draws the x and y axis.
Example:
gPad->DrawFrame(-2,0,10,1000)
draws a new frame with x in range [-2,10] and y in range [0,1000]
- Optimisation of TF1::Paint in case of log x axis.
In case of a log x axis, the intermediate histogram is created
using variable bin size. The corresponding bin edges are computed
by dividing log(x) in fNpx bins (fNpx can be set via TF1::SetNpx).
This new algorithms solves the old problem of drawing functions
with many decades along X (thanks to Thomas Kraemerkaempe for reporting).
TF1::DistancetoPrimitive and TF1::ExecuteEvent works correctly
for log axis.
- Changes in TH1::distancetoPrimitive and TH1::ExecuteEvent in case
of log axis.
- Improvements in TDrawPanelHist::ExecuteEvent in case of log scales.
- Clean function TGraph::PaintGrapHist.
Remove obsolete code corresponding to old optionZ.
- Protect TContextMenu::Execute in case the object currently in
the context menu is deleted.
- Modify TGX11::SetColor.
X11 colors are only initialized when they are effectively used.
This should speed up the creation of the first Root canvas on
some Unix systems.
This function is not called anymore from TColor::SetRGB on Unix.
- Small fix in h2root. Swap (Int_t and UInt_t) cases.
- Modify TMotifCanvas and TWin32Canvas to clear the pad/canvas
without clicking on the pad when the "Clear Pad" item is selected
in the canvas "View" menu.
- CINT version 5.13.21 introduced.
- Generate all dictionaries. Slight format change in the G__ routines.
- New patch ROOTD (root daemon).
- new class TNetfile.
- Several changes in the PostScript class.
TPostScript::Open uses now the information set by gStyle->SetPaperSize.
The code previously in TPad::Print to recalculate the size of
the Postscript paper in function of the canvas/pad size has been
moved in TPostScript::Open.
The EPS files also use correctly the info set by gStyle->SetPaperSize.
- TPolyline::Streamer and TPolyMarker::Streamer are now operational.
(arrays of x and y points were not saved in the previous versions).
- Several changes in TCanvas::Streamer and TPad::Streamer.
Thanks to these changes, one can now save a complete canvas in a Root file.
TCanvas::Draw has been rewritten to take into account the case where
a canvas object is read from a file and drawn. For example, the
following sequence is now working:
Root > TFile f("canvas.root","NEW");
Root > c1.Write(); // current canvas c1 is saved on file canvas.root.
then in a following session , when can do:
Root > TFile f("canvas.root");
Root > c1.Draw();
You get the original canvas with all its attributes.
- New member function TVirtualPad::SaveAs.
The implementation in TPad::SaveAs replaces the functions of TPad::Print.
TPad::SaveAs supports the new option .root to save a canvas/pad
in a root file.
The functions TCanvas::Print (2 forms) have been deleted.
TPad::Print is kept for backward compatibility and calls TPad::SaveAs.
- New menu option "SaveAs canvas.root" in the FILE menu.
Changes in TMotifCanvas and TWin32Canvas.
- New member functions TObject::Clone and TObject::DrawClone.
TObject::Clone makes a copy of an object via the Streamer functions
eg: TH1F *hnew = h->Clone();
TObject::DrawClone makes a clone of an object and draws it.
DrawClone can be accessed interactively via the object context menu
to draw a copy of an object.
- Mods in TTree::MakeCode. The code generated in case a leave is a static array
was not correct.
Note that MakeCode still does not process correctly the case of branches
with multiple leaves.
//
//________________________________________________________________________
//
//::> VERSION 1.03/00 11/08/97 11.02.57
//
- Modify TH1::PaintFrame. Remove the TFrame object from the pad (if it exists).
It may happen that one changes the DrawOption (via the contextmenu).
In case the new draw option invokes a 3-d view (lego, surf), the previous
TFrame object must be removed from the pad list.
- Change class TAxis. Add two new data members fFirst and fLast.
These new members are used to store the current first and last bin
to be used in the display.
Previous version used the fUniqueID member from TObject to store
the catenated info first+last with 16 bits each.
This 16 bits introduced a limitation to a maximum of 32000 bins
that can be displayed.
TAxis::Streamer moved from G__Base to Axis.
Cint_base modified to not generate TAxis::Streamer.
- Modify TGraph::PaintGraph to take into account minimum and maximum
limits along y (set via fHistogram->SetMaximum).
- Clip errors for points outside the y range in TGraphErrors::Paint.
- Fix a problem in TF1::DistancetoPrimitive (thanks Andrew Sonnenscheim).
Problem apparent only on Alpha/Unix caused by call to EvalPar without
calling InitPar first.
- In TGraph::Fit, do not assume that xmin and xmax are the first
and last point respectively. Min and max are correctly computed by looping
on all data points. With this change, a TGraph object may contain
unordered data points and be fitted (thanks S.G. Voropaev).
- Help reorganized. New sequence $HelpText and corresponding changes
in all Motif classes where help is referenced.
- Optimize TGaxis::PaintAxis in case of Log axis.
- Take into account logz scale when drawing a 2-d histogram with option "col"
Use a log axis to show the color scale.
- Changes in TH1::GetSumOfWeights to support 2-d and 3-d histograms.
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.