"SfR Fresh" - the SfR Freeware/Shareware Archive 
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 //________________________________________________________________________
2 //
3 //::> VERSION 2.24/05 16/05/2000 16.07.27
4 //
5 //
6 // 16/05/2000 16.03.14 by Rene Brun
7 //
8 - This version should be the last version maintained with CMZ.
9 Next version will be maintained by CVS.
10
11 - Modify TF1::IntegralMultiple. The maximum number of points maxpts
12 has been increased to improve the result. Thanks Regis Terrier.
13 //
14 // 16/05/2000 12.04.12 by Fons Rademakers
15 //
16 - THtml: fix in way pathnames of source files are found. If pathname
17 contains a path (i.e. / (or \ on win32)) then after prepending a
18 source dir prefix this file is looked for. If not found the path
19 is stripped off and the source search path is used (old behaviour).
20 //
21 // 16/05/2000 11.58.00 by Masaharu Goto
22 //
23 * 5.14.38 5 May 2000
24 *-1306, ctor call for class object as static data member, t377.cxx, t380.cxx
25 * 1307, global namespace, using directive and function call, t382.h/cxx
26 * 1308, pointer to reference conversion bug fix, t383.cxx
27 * 1309, #pragma link C++ function A::B(); t384.h
28 * 1310, f(int (**)()); t385.h
29 * 1311, namespace{class{enum{}}} bug fix, t386.h
30 * 1312, N::A a; N::f(a); f(a); 3.4.2, t387.cxx, review needed
31 * 1313, #pragma link C++ function A::B(); with function template, t384.h
32 * 1314, Assume CINTSYSDIR from GetModuleFileName(),Win32
33 //
34 // 15/05/2000 23.20.31 by Rene Brun
35 //
36 - Add a new parameter nentries to TChain::Add
37 void TChain::Add(const char *name, Int_t nentries=-1)
38 if nentries < 0, the file is connected and the tree header read in memory
39 to get the number of entries.
40 if (nentries >= 0, the file is not connected, nentries is assumed to be
41 the number of entries in the file. In this case, no check is made that
42 the file exists and the Tree existing in the file. This second mode
43 is interesting in case the number of entries in the file is already stored
44 in a run data base for example.
45
46 - Add a new branch constructor to TTree:
47 Int_t Branch(TList *list, Int_t bufsize=32000);
48 This new function creates one branch for each element in the list.
49 Two cases are supported:
50 list[i] is a TObject*: a TBranchObject is created with a branch name
51 being the name of the object.
52 list[i] is a TClonesArray*: A TBranchClones is created.
53 if list[i]->TestBit(TClonesArray::kNoSplit) is 1, the TClonesArray
54 is not split.
55 if list[i]->TestBit(TClonesArray::kForgetBits) is 1 and the TClonesArray
56 is split, then no branches are created for the fBits and fUniqueID
57 of the TObject part of the class referenced by the TClonesArray.
58 The function returns the total number of branches created.
59
60 - Add a new member function in class TObjLink.
61 TObject **GetObjectRef()
62 The function returns the address of the object referenced by TObjLink.
63 This new function was necessary for the implementation of the new TTree::Branch
64 constructor described above.
65
66 - Modify TBranchClones constructor to add a new parameter splitlevel.
67 Modify TTree::Branch for TClonesArray to not create branches for the TObject
68 part (fBits and fUniqueID) if the splitlevel is > 1.
69
70 - Add new enum list in TClonesArray.h. The following options are defined:
71 enum {
72 kForgetBits = BIT(0), // Do not create branches for fBits, fUniqueID
73 kNoSplit = BIT(1) // array not split by TTree::Branch
74 };
75
76 - A few changes from Damir Buskulic and Jiri Masik for Linuxppc in
77 rootd, root daemon, proofd and Makefile.linuxdeb2.
78
79 - Extend kMAXFOUND from 50 to 200 in TFormula.
80 The previous value of 50 was a bit short when TFormula is used by TTreeFormula
81 and many cuts are defined.
82
83 - Modify TTreePlayer::MakeClass to change the name of the variable for the loop
84 index from j to jentry.
85
86 - Merge with Fons and Valery's versions
87 //
88 // 13/05/2000 18.56.36 by Rene Brun
89 //
90 - Mods in TTreePlayer::MakeCode when generating the pointer name in case
91 of a TBranchObject.
92 //
93 // 11/05/2000 16.11.27 by Fons Rademakers
94 //
95 - TBranch: fEntryBuffer was not initialized.
96
97 - vvector: corrected a test case.
98 //
99 // 11/05/2000 07.20.41 by Rene Brun
100 //
101 - protection added in TBranchClones constructor in case the Tree is created
102 in memory (no file open) (thanks Gene Van Buren).
103
104 - Merge with Valery's version of May10.
105
106 - Add two fixes reported by Masa in CINT_Infunc.
107
108 - Add minor changes reported by Damir Buskiluc when compiling with gcc 2.05
109 under ppcLinux.
110
111 - fix some problems with strings (backslask escaping ") in some strings
112 in tutorials Ifit and Shared.
113 //
114 // 09/05/2000 19.40.35 by Fons Rademakers
115 //
116 - tutorials/rootalias.C: use gSystem->GetName() to distinguish
117 between unix and win32 (instead of cmz +IF conditionals).
118 //
119 // 08/05/2000 19.40.35 by Fons Rademakers
120 //
121 - TGMimeTypes: fixed win32 case.
122
123 - TFormula: introduced #pragma for win32 case.
124
125 - TTUBE, TTUBS: #ifdef's cleaned up.
126 //
127 // 07/05/2000 17.11.56 by Fons Rademakers
128 //
129 - New abstract class TInspectorImp. This interface class is used
130 via the TGuiFactories to create and object inspector window. Currently
131 this is only used for the Win32 implementation (the X11 version uses
132 a normal TCanvas). The introduction was needed to remove the last
133 Win32 graphics dependency from TWinNTSystem (to be able to build
134 libCore.dll seperately from libWin32.dll). For the introduction of this
135 class changes were made in: TObject, TSystem, TWinNTSystem, TGuiFactory,
136 and TWin32GuiFactory.
137
138 - rootcint: fix for Win32.
139
140 - TGToolTip: corrected comments.
141
142 //________________________________________________________________________
143 //
144 //::> VERSION 2.24/04 05/05/2000 14.08.29
145 //
146 //
147 // 05/05/2000 12.58.00 by Masaharu Goto
148 //
149 * 5.14.36 9 Apr 2000
150 * - , minor fix in VC++ and BC++ setup
151 * - , turned on G__CONSTNESSFLAG
152 * 1293, bug fix to 1290, risk3, t364.cxx
153 * 1294, SetGlobalcomp() changed by Philippe Canal
154 * - , G__STRUCTPVAR -> divided as 1.2 due to size reason
155 * - , ifunc.c C++ comment error
156 * 1295, G__free_friendtag() problem only with rootcint,,
157 * 1296, static member in nested class, t370.cxx, risk3
158 * 1297, nested ClassDef,
159 * 1298, ImplFileLine support
160 *
161 * 5.14.37 29 Apr 2000
162 * 1299, overload matching for pointer to function, t373.cxx
163 * 1300, Check $LINES, $COLUMNS for G__more_pause(), risk1
164 * 1301, Bug fix for PHIL0, null fp, t372.h, risk3
165 * - , DataMbr.h/cxx, errno -> errnum fix
166 * 1302, 1290 bug fix, infinit loop, t376.cxx
167 * 1303, bug fix from Philippe Canal,
168 * 1304, workaround for Philippe's problem, bad3.cxx, t377.cxx
169 * 1305, Win32, ifstream::open(), t375.cxx, bug fix
170 //
171 // 05/05/2000 09.42.44 by Rene Brun
172 //
173 - Implement support for operator "*" in TCut. File Tree_LinkDef modified.
174 Examples of use:
175 Root > TCut c1 = "x<1"
176 Root > TCut c2 = "y<0"
177 Root > TCut c3 = c1&&c2
178 Root > ntuple.Draw("x", c1)
179 Root > ntuple.Draw("x", c1||"x>0")
180 Root > ntuple.Draw("x", c1&&c2)
181 Root > ntuple.Draw("x", "(x+y)"*(c1&&c2))
182
183 //________________________________________________________________________
184 //
185 //::> VERSION 2.24/03 04/05/2000 08.40.02
186 //
187 //
188 // 04/05/2000 8.48.59 by Rene Brun
189 //
190 - minor typos fixed.
191
192 - Rename global functions H() to R__H().
193 //
194 // 03/05/2000 08.13.47 by Rene Brun
195 //
196 - Import latest version from Fons and implement a few changes from Philippe
197 in BASE_System and CINT_loadfile.
198
199 //
200 // 03/05/2000 01.35.47 by Philippe Canal
201 //
202
203 - Addition of a new option for TSystem::CompileMacro and Change in
204 Semantic of the '+' and '++' options for .L, .x and .X.
205
206 Both .L MyFunc.C++ and .L MyFunc.C+ now keep the shared library at the
207 end of the ROOT session.
208 If the shared library already exist, .L MyFunc.C+ will only recompile it
209 if the macro file is newer than the shared library. However it does not
210 detect whether any of the files included by the macro has been changed
211 more recently than the shared library.
212
213 .L MyFunc.C++ always recompiles the shared library.
214
215 TSystem::CompileMacro(const char *filename, Option_t * opt)
216 The second argument can now be any combination of the letter 'k' and 'f'
217 with the following meaning:
218
219 k : keep the shared library after the session end.
220 f : force recompilation.
221 //
222 // 02/05/2000 19.15.59 by Rene Brun
223 //
224 - Merge with latest versions from Philippe and valery.
225 //
226 // 02/05/2000 19.01.23 by Philippe Canal
227 //
228 - The macro ClassDef and ClassImp have been upgraded to be able to handle
229 classes inside namespaces and to handle nested classes (classes defined
230 inside other classes).
231
232 In order to use this upgrade, you just have to enclose your class inside
233 a namespace and to make sure that the ClassImp macro is also used inside
234 the same namespace:
235
236 #include "TObject.h"
237 namespace MyProject {
238 class MyClass : public TObject {
239 public:
240 MyClass();
241 int Loop();
242 ClassDef( MyClass, 1 ) // This is a class inside a namespace
243 };
244 };
245
246 And in the implementation file
247
248 #include "MyClass.h"
249
250 namespace MyProject {
251 ClassImp( MyClass )
252
253 MyClass::MyClass() {
254 // Body of the constructor
255 }
256
257 int MyClass::Loop() {
258 // Body of the Loop
259 }
260 };
261
262 Once this is done, when refering in root to this class using a string
263 (for example to define a TClonesArrays, a Branch in a Tree, or on the
264 root prompt), you have to always use the fully qualified name. There
265 isn't yet an equivalent to 'using namespace MyProject;' for ROOT.
266 For example to define a TClonesArray of MyClass objects:
267
268 TClonesArray * o = new TClonesArray("MyProject::MyClass");
269
270 IMPORTANT WARNING:
271
272 This change is only transparent for classes for which a dictionary is
273 produced! If you need to use a class with ClassDef and ClassImp but do
274 NOT want to generate a dictionary file for it, you HAVE TO use the macro
275 ClassImp2 instead of ClassImp! In our example above you would write in
276 the implementation file:
277
278 #include "MyClass.h"
279 namespace MyProject {
280 ClassImp2(MyProject, MyClass )
281
282 MyClass::MyClass() {
283 // Body of the constructor
284 }
285
286 int MyClass::Loop() {
287 // Body of the Loop
288 }
289 };
290
291 If your classes do not belong to a namespace just omit the first
292 argument:
293
294 #include "MyClass_not_in_namespace.h"
295 ClassImp2(,MyClass_not_in_namespace)
296 MyClass_not_in_namespace::MyClass_not_in_namespace() {
297 // Body of the constructor
298 }
299
300 int MyClass_not_in_namespace::Loop() {
301 // Body of the Loop
302 }
303 IMPORTANT WARNING 2:
304
305 ClassDef and ClassImp for namespaces and nested classes is
306 NOT yet fully implemented for templated classes.
307 //
308 // 02/05/2000 08.40.13 by Rene Brun
309 //
310 - Add a new static function to class TH1.
311 static void AddDirectory(Bool_t add=kTRUE)
312 By default (fAddDirectory = kTRUE), histograms are automatically added
313 to the list of objects in memory.
314 Note that an histogram can be removed from its support directory
315 by calling h->SetDirectory(0) or h->SetDirectory(dir) to add it
316 to the list of objects in the directory dir.
317
318 //
319 // 01/05/2000 22.08.01 by Rene Brun
320 //
321 - Activate option DATE in TStyle:
322 New data members, fDateX, fDateY and fAttDate.
323 New member functions SetDateX, SetDateY, GetAttDate.
324 void TStyle::SetOptDate(Int_t mode)
325 if mode is non null, the current date/time will be printed in the canvas.
326 The position of the date string can be controlled by:
327 mode = 1 (default) date is printed in the bottom/left corner.
328 mode = 2 date is printed in the bottom/right corner.
329 mode = 3 date is printed in the top/right corner.
330 The date position can also be controlled by:
331 gStyle->SetDateX(x); x in NDC
332 gStyle->SetDateY(y); y in NDC
333
334 The date text attributes can be changed with:
335 gStyle->GetAttDate()->SetTextFont(font=62);
336 gStyle->GetAttDate()->SetTextSize(size=0.025);
337 gStyle->GetAttDate()->SetTextAngle(angle=0);
338 gStyle->GetAttDate()->SetTextAlign(align=11);
339 gStyle->GetAttDate()->SetTextColor(color=1);
340
341 The current date attributes can be obtained via:
342 gStyle->GetAttDate()->GetTextxxxx();
343 When the date option is active, a text object is created when the pad
344 paint its list of primitives. The text object is named "DATE".
345 The DATE attributes can also be edited interactively (position
346 and attributes) via the normal context menu.
347
348 //
349 // 30/04/2000 10.16.21 by Rene Brun
350 //
351 - Change name of variable errno to errn in DataMbr.h and in
352 G__DataMemberInfo::ValidArrayIndex. errno is a reserved keyword.
353 Problem was apparent with VC++ and AIX/xlC.
354
355 - Comment most ClassDef & ClassImp in WIN32 directory. A side-effect
356 of the changes in the ClassDef/ClassImp macros forces the dictionary
357 for all classes including these macros.
358 //
359 // 29/04/2000 12.37.58 by Rene Brun
360 //
361 - Add new member functions in TGeometry and TNode to transform master
362 to local coordinate system(thanks to Robert Hatcher).
363 TGeometry/TNode provided Local2Master coordinate transformations, but not
364 the reverse. In case of some data of object positions in global coordinates
365 but trying to build a truly hierarchical structure (thus the need for
366 "placement" relative to local coordinates) this was an impediment.
367 void TGeometry::Master2Local(Double_t *master, Double_t *local);
368 void TGeometry::Master2Local(Float_t *master, Float_t *local);
369 void TNode::Master2Local(Double_t *master, Double_t *local);
370 void TNode::Master2Local(Float_t *master, Float_t *local);
371
372 - Add fix from Masa in CINT_ifunc.c to appear in CINT 5.14.37.
373 This fix a problem with function overloading. the same code can now
374 be used with the compiler or the interpreter when calling TF1 functions.
375
376 - Modify test program stress to take advantage of the changes in CINT_ifunc.
377
378 - Modify h2root to support boolean data types from Hbook. Instead of using
379 unsigned integers, the new code uses unsigned chars.
380
381 - Modify print format in TTree::Show in case of a TLeafB. print up
382 to 10 variables on the same line.
383
384 //
385 // 28/04/2000 18.17.48 by Rene Brun
386 //
387 - Remove a limitation in THistPainter::PaintAxis preventing to set
388 a negative number of divisions on the Y axis. A negative number of divisions
389 may be specified to force a precise number of primary divisions on an axis.
390
391 - Implement support for regular expressions in TDirectory::Delete.
392 One can now do gDirectory->Delete("foo*")
393
394 - Modify TROOT::ls to call TDirectory::ls
395
396 - in TCutG constructor, remove a possible TCutG with the same name
397 in the list of special objects. stress7 can now be executed more than once.
398
399 - Add compiler option -Wp,-H10000 to the list of CINT compiler options
400 for HP-UC CC compiler to prevent a limitation of CC when compiling CINT_var.
401
402 - Change tolerance in stress/stress16 from 10 bytes to 20 bytes.
403 //
404 // 28/04/2000 16.58.41 by Fons Rademakers
405 //
406 - TGTextEntry: fix in SetFont() to correctly modify the graphics
407 contexts. Before SetFont() changed the default GC used by many
408 widgets.
409
410 - guitest.cxx: show example for TGTextEntry::SetFont.
411
412 - TROOT: use preprocessor symbols __DATE__ and __TIME__ to get
413 the date/time of compilation instead of CMZ symbols in preparation
414 of move to CVS.
415 //
416 // 27/04/2000 15.54.53 by Rene Brun
417 //
418 - Modify test program stress/stress1 to be able to run it with CINT.
419
420 - Modify code generated by TTreePlayer::MakeClass to generate special code
421 for TChains. Also generate new member function Cut.
422
423 - Changes in TH2, TH3, TProfile2D include files to avoid warning messages
424 under AIX and HP-UX.
425
426 - Modify CINT function IFUNC to avoid a compiler problkem under AIX.
427 the C function IFUNC contained a C++ style comment.
428
429 - Merge with Fons and Philippe's versions.
430 //
431 // 26/04/2000 12.15.54 by Fons Rademakers
432 //
433 - TObjArray: IsEmpty() correctly returns kTRUE in case TObjArray
434 is empty (idem for TClonesArray).
435
436 - rootcint: mods by Philippe for support of namespaces.
437
438 - Rtypes.h: mods in the ClassDef and ClassImp macros for namespace
439 support.
440 //
441 // 25/04/2000 17.56.34 by Rene Brun
442 //
443 - Merge with Philippe Canal's version.
444
445 - Implement support for branches with names ending with "."
446 in TTree::MakeClass.
447 //
448 // 25/04/2000 15.13.17 by Philippe Canal
449 //
450
451 Phillippe implemented a way for the user to fill a tree directly from a
452 TBuffer or TMessage;
453 This only work for branches that contain a non-split object.
454 Using this features makes the files non-readable by previous version of
455 root (2.24/02 and below).
456
457 To use this features, you need to have something like:
458
459 TBuffer * pointerToMyBuffer;
460 .....
461 myBranch->SetBufferAddress( pointerToMyBuffer );
462
463 And when myTree->Fill() is called, the data is copied from MyBuffer.
464 The amount of data copied is determined either by the current offset of
465 the buffer if it is not null or by the maximum size of the buffer.
466
467 Here are three valid usages examples
468
469 1. TBuffer * buf = new TBuffer(TBuffer::kWrite, bufsize);
470 branch->SetBufferAddress(buf);
471
472 buf->Reset();
473 buf->SetWriteMode();
474 event->Streamer(*buf);
475 buf->SetReadMode();
476
477 tree->Fill();
478
479 2. TBuffer * buf = new TBuffer(TBuffer::kWrite, bufsize);
480 branch->SetBufferAddress(buf);
481
482 char * data;
483 int nbyte = Copy_Data_From_Somewhere(data);
484 buf->SetBuffer(data,nbytes);
485
486 tree->Fill();
487
488 3. TMessage *mess;
489 Int_t messlen;
490
491 do {
492 messlen = s->Recv(mess);
493 } while ( messlen == 0 );
494
495 branch->SetBufferAddress(mess);
496
497 tree->Fill()
498
499 The extra information needed to correctly read the file created using this
500 features is stored at the end of each basket (using this features) just
501 after the array containing the entries offset within the basket.
502
503 //
504 // 23/04/2000 22.30.47 by Rene Brun
505 //
506 - Fix a problem in TBranchObject::SetAddress in case of a branchobject
507 in split mode and the branch name is of the forme "name." and one of
508 the sub branches members is a TClonesArray. The TClonesArray branch name
509 was not correctly encoded. Solution was to use the same logic already
510 used for other data member types.
511 (thanks Christian Holm Christensen for reporting this problem)
512
513 - Sasha Vanyashin has reduced further the byte swapping overhead on linux
514 by introducing asm routines bswapcpy32 and bswapcpy16 (similar to memcpy)
515 in TBuffer.
516 //
517 // 21/04/2000 21.54.54 by Rene Brun
518 //
519 - Fix a bug in TH2::FillRandom and TH3FillRandom. These functions were
520 correct only in the case where the x range and the y range were identical.
521 (thanks Laurent APHECETCHE).
522
523 - Implement support for histogram min/max in TLego::SurfaceFunction.
524 With this change, one can now do TH1::Draw("surf") on a histogram
525 where a min/max have been specified.
526
527 //
528 // 19/04/2000 18.32.19 by Fons Rademakers
529 //
530 - TPad: fix in Print() so a pad can be saved to gif, before
531 the complete canvas was always saved.
532
533 //
534 // 19/04/2000 11.24.25 by Rene Brun
535 //
536 - In TBranchClones::GetEntry, add a statement to clear the TClonesArray
537 before reading a new event. In case of split mode, the number of entries
538 in the array was not updated (thanks Thorsten Glebe for reporting).
539
540 - Merge with Valery's version.
541 This includes a protection in the THtml class and a new version
542 of the STAR classes.
543 //
544 // 18/04/2000 17.45.49 by Fons Rademakers
545 //
546 - Changes in several files related to the imminent move to CVS.
547 //
548 // 18/04/2000 10.36.20 by Rene Brun
549 //
550 - Activate option to write a TClonesArray in non-split mode
551 in TTree::Branch (TClonesArray flavour).
552
553 - Add a new tutorials tcl.C. This tutorial illustrate how to use a
554 TClonesArray in various mode: split, no-split.
555 The tutorials also shows how to run with the interpreter or
556 the script compiler.
557 //
558 // 16/04/2000 23.08.00 by Rene Brun
559 //
560 - Optimize code in TBasket, TBranch and TBuffer. Several functions declared
561 non virtual.
562
563 - In TRootBrowser::IconBoxAction Chdir has to been called after
564 obj->Browse because Browse assume that the current directory is the
565 one where to find the object while Chdir actually change the directory.
566 (from Philippe Canal).
567
568 - New class TProfile2D (2-dim profile histograms).
569 Same functionality as class TProfile for 1-dim histograms.
570
571 - Optimize TArrayC,S,I,F,L,D replacing implicit loop to set array
572 elements to 0 by a call to memset.
573 //
574 // 15/04/2000 19.07.24 by Rene Brun
575 //
576 - IMPORTANT ADDITION TO THE HISTOGRAMING PACKAGE
577 ==============================================
578 Two new global functions have been added to TH1.h
579 TH1 *R__H(Int_t hid);
580 TH1 *R__H(const char *hname);
581 The first function R__H returns a pointer to a histogram with a name
582 corresponding to the encoding of "h" and the integer hid.
583 For example, if the histogram with name "h23" exists in the current
584 directory (either memory or disk), R__H(23) returns a pointer to
585 this histogram. if hid is a negative integer (eg -23), R__H(-23) returns
586 a pointer to the histogram with name "h_23".
587 The second function H returns a pointer to the histogram with name hname.
588 eg: R__H("h23").
589 The main advantage of these two functions is that they can be called
590 anywhere in the user's code without using global pointers for each
591 histogram.
592 These two functions provide also an easier access to histograms converted
593 from Hbook files.
594 These functions have however a severe performance penalty.
595 Using R__H(10)->Fill(x) is on average 6 times slower than h->Fill(x) !
596 R__H(const char *hname) finds the address of the histogram hname in
597 the hashlist of objects in memory corresponding to the current file.
598 If no object is found in memory, hname is searched in the list of objects
599 in the current directory on disk.
600 R__H(Int_t hid) converts hid into hname and then proceeds like R__H(const char *hname).
601
602 //
603 // 15/04/2000 11.58.37 by Philippe Canal
604 //
605 - Some files similar to those produced by h2root, can have simple
606 type AND branches that contain more than one leaf and have no reason to
607 contain a leaf with the same name. Those files currently core dumps the
608 TChain::Merge mechanism because the fill address of the new tree is not reset
609 properly after a change of file.
610 //
611 // 14/04/2000 12.24.20 by Rene Brun
612 //
613 - Rename functions in TPaveStats;
614 GetFormatFit -----> GetFitFormat
615 GetFormatStat -----> GetStatFormat
616 SetFormatFit -----> SetFitFormat
617 SetFormatStat -----> SetStatFormat
618 The TPaveStats fFitFormat and fStatFormat are now initialized
619 from the TStyle permanent parameters.
620
621 - New functions in TStyle:
622 GetFitFormat, GetStatFormat, SetFitFormat, SetStatFormat
623
624 - Introduce a new function in TProfile:
625 TH1D *TProfile::ProjectionX(const char* name="_px", const char *option="e")
626
627 Similarly to TH2::ProjectionX, this new function fills the profile projection
628 along X. It creates a TH1D histogram. if the option "e" is specified
629 the histogram has the profile error bars.
630
631 - Add new static functions in TVirtualFitter:
632 TVirtualFitter::SetMaxIterations(Int_t maxiter=5000);
633 TVirtualFitter::SetPrecision(Double_t prec=1e-6);
634 TVirtualFitter::GetMaxIterations();
635 TVirtualFitter::GetPrecision();
636 The SetPrecision function can be used to set a fit relative_precision.
637 The default value for relative_precision is 1e-6.
638
639 - TH1::Fit and TGraph::Fit have been modified to take advantage of
640 the new TVirtualFitter functions. Because TMinuit precision is an absolute
641 precision, an estimation of the final sum of squares of residuals (sumw2)
642 is computed in these two functions. The precision requested from TMinuit
643 is sumw2*relative_precision. The new algorithm should give in general
644 a better fit precision.
645
646 - Minor change in TBtInnerNode constructor to bypass a compiler bug
647 with gcc2.95 (thanks Matthew D. Langston).
648 //
649 // 14/04/2000 11.48.54 by Fons Rademakers
650 //
651 TExMap: implemented Streamer().
652 //
653 // 13/04/2000 19.19.49 by Rene Brun
654 //
655 - Modify AA_ARCHS to add one line for solarisgcc.
656
657 - Modify TH1::Copy to set the TAxis parents.
658
659 - Add missing file basic.dat in $ROOTSYS/tutorials.
660
661 - Modify tutorial exec1.C. logic was broken since the changes in gPad.
662
663 - In RConfig.h, define __i486__ only if not already defined. This is to avoid
664 a long list of warnings on Debian systems.
665
666 - Modify the comments in class TButton example. add missing backslash
667 in front of ".
668
669 - Improvement in TTreePlayer::Scan (thanks Jiri Masik).
670 When one scans a tree and interrupts it via q key and <CR>,
671 the q is read by getchar but the <CR> remains unread in the stream.
672 Any subsequent Scan scrolls two screens without prompting as the new
673 getchar is reading the last <CR>.
674
675 //________________________________________________________________________
676 //
677 //::> VERSION 2.24/02 07/04/2000 08.52.32
678 //
679 //
680 // 07/04/2000 08.45.56 by Rene Brun
681 //
682 - Merge with Fons and Valery's latest versions.
683 //
684 // 06/04/2000 16.06.22 by Fons Rademakers
685 //
686 - TDatime: new ctor taking a SQL compatible time string.
687
688 - TEnv: made most member functions virtual to allow overriding.
689 Also a fix in GetValue() to correctly return negative integers.
690
691 - TStopWatch: made the new Counter() an const inline function.
692
693 - TRootEmbeddedCanvas: extension to allow the embedding of a custom,
694 TCanvas derived, canvas. See ctor for extensive example.
695
696 - rootcint: small cleanup of Philippe's code.
697
698 - TRint: added a noLogo arg to ctor. Setting it to kTRUE will not
699 print the standard logo. This allows for custom a logo in a TRint
700 derived class.
701
702 - TGLBContainer: InsertEntry() now correctly inserts a new entry at the
703 head of the list if the parameter afterID is set to -1. Fix by
704 Reiner Rohlfs.
705
706 - TUnixSystem: in dtor reset signals to handlers that were active
707 before the TUnixSystem object was created. This was needed in an
708 app that also uses Oracle OCI. Fix provided by Fedor Ratnikov.
709
710 - TClonesArray: made several method virtual and made the data members
711 protected. Denis Bertini (Hades/GSI).
712
713 - TObjArray: made the datamembers protected. Denis Bertini (Hades/GSI).
714
715 - importcint: updated CINT import macro for new STL includes.
716 //
717 // 06/04/2000 13.23.49 by Valery Fine(fine@bnl.gov)
718 //
719 - WinNTSystem::DirName - bug fixed (Thanks V.Onuchin)
720
721 - ZIP inflate function Writedata: logic has been modified
722 //
723 // 05/04/2000 08.36.47 by Rene Brun
724 //
725 - Fix a problem in TH2::ProfileY (thanks Gerco Onderwater).
726 When creating a profile along the y-axis from a 2D histo, the number of bins
727 in the profile are incorrect (as a matter of fact, the number of bins on the
728 x-axis of the original 2d histo is used).
729
730 - Remove a memory leak in TCint::UpdateListOfTypes.
731 The leak was apparent when running the THtml class.
732
733 - Implement new function "fmod" in TFormula and TTreeFormula.
734 one can do: t.Draw("x","fmod(y,0.5)>0.2")
735
736 - Protection added in TLeafObject::GetMethodCall (thanks Philippe Canal).
737 a TMethodCall was created by passing a null pointer as argument. However
738 the code from this constructor (and/or functions called from within) assumes
739 an argument list.
740
741 //
742 // 04/04/2000 15.07.50 by Rene Brun
743 //
744 - A small change in TPostScript::Initialize (Thanks Olivier Couet).
745 When including ps or eps files in PowerPoint, some horizonthal lines
746 were appearing in the picture. This problem is due to a bug in PowerPoint
747 that does always closes all the open paths. To circumvent this problem,
748 an additional "newpath" statement is now generated when opening
749 a new picture.
750 //
751 // 03/04/2000 12.44.10 by Rene Brun
752 //
753 - Add new tutorial gaxis.C
754
755 - Fix a problem in THistPainter::PaintInit in case of log scale along X.
756 Must check that the selected last bin is not greater than the number of bins.
757 Problem was apparent in case of variable bin size histograms.
758
759 - Merge with Valery's version. This version fixes a problem in TPGON::FillTableOfCoSin
760 Protections in TWinNtSystem and TTabCom.
761
762 //________________________________________________________________________
763 //
764 //::> VERSION 2.24/01 31/03/2000 12.19.07
765 //
766 //
767 // 31/03/2000 12.11.55 by Rene Brun
768 //
769 - The following functions from the ZIP package have been renamed to avoid
770 clashes between ROOT and external packages using modified versions of
771 the original ZIP package. The old names are now prefixed with R__.
772 (thanks to Ursula Berthon to help understanding the problem).
773 This is the new list of the ZIP functions:
774 R__ReadByte
775 R__WriteData
776 R__build_bl_tree
777 R__build_tree
778 R__compress_block
779 R__fill_window
780 R__flush_outbuf
781 R__gen_bitlen
782 R__gen_codes
783 R__init_block
784 R__longest_match
785 R__pqdownheap
786 R__scan_tree
787 R__send_all_trees
788 R__send_tree
789 R__set_file_type
790
791 - Implement TEventList::SetName. TEventList is a TNamed.
792 TNamed::SetName must be overloaded in TEventList because TEventList objects
793 like TH1s and TTrees are inserted into a THashList. Changing the name
794 of one of these objects implies recomputing the hashlist.
795
796 - Merge with Valery's version.
797 Valery has introduced a new function TStopwatch::Counter counting
798 the number of start/stops.
799 Cleanup of STAR code to follow the ROOT coding style.
800 //
801 // 28/03/2000 12.39.19 by Rene Brun
802 //
803 - Improve functions TPolyMarker3D::PaintH3 and TMarker3DBox::PaintH3
804 to take into account the current axis ranges (set via TAxis::SetRange).
805
806 - minor change in tutorial graph.C. Add the statement c1->Modified() at
807 the end of the macro.
808
809 - Slight modification (Philippe Canal) in the destructor for TClass to avoid
810 accessing deleted memory.
811 Sometime ago the TList destructor was changed from strictly not deleting
812 the object it is holding to checking via GetObject()->TestBit(kCanDelete)
813 if it should delete the object or not. The consequence is that while
814 deleting fAllPubMethod and fAllPubData, eventhough it was not deleting the
815 object a second time, it was still accessing them. Thus the deletion of
816 these two list have to be done before the deletion of the objects in it.
817
818 - Modify TGraph::GetXaxis and GetYaxis to use TGraph::GetHistogram
819 rather than fHistogram.
820
821 - Modify the globals kumac for KCC on SGI, removing --no-exceptions.
822 same change in the makefile and root-config.
823
824 - Add new macro hadd.C in the list of tutorials. This macro can be used
825 to merge histogram files.
826 //
827 // 23/03/2000 09.59.30 by Rene Brun
828 //
829 - Minor change in root-config for HP-UX CC compiler. +Z option added
830 in the list of compiler options.
831
832 - The following set of Bessel functions has been added in class TMath.
833 origin from Nick van Eijndhoven and based on Numerical Recipes.
834
835 Double_t BesselI(Int_t n,Double_t x); // Compute integer order modified Bessel function I_n(x)
836 Double_t BesselK(Int_t n,Double_t x); // Compute integer order modified Bessel function K_n(x)
837 Double_t BesselI0(Double_t x); // Compute modified Bessel function I_0(x)
838 Double_t BesselK0(Double_t x); // Compute modified Bessel function K_0(x)
839 Double_t BesselI1(Double_t x); // Compute modified Bessel function I_1(x)
840 Double_t BesselK1(Double_t x); // Compute modified Bessel function K_1(x)
841
842 - Bug corrected in TH3::Project3D. When looping on the bins, the current
843 value for the bin error was obtained after filling the bin. It should be
844 obtained before filling the bin. (Thanks Angela Biselli for reporting).
845
846 //
847 // 21/03/2000 11.07.07 by Rene Brun
848 //
849 - Modify TFile::Init to read the file title. The file title was written
850 to the file but never read in when the file was reconnected.
851 //
852 // 20/03/2000 10.26.46 by Rene Brun
853 //
854 - Fix code generation in TTreePlayer::MakeClass and MakeCode in case
855 of variable length two dim arrays (Thanks Philippe Canal).
856
857 - Protection in TF1::GetRandom (when the parabola becomes flat).
858 Thanks Federico Carminati.
859
860 - Add library -lnsl in installation of h2root, g2root for Linux.
861 This is required on RH6.1 with the new version of CERNLIB.
862
863 - Add possibility to close a TCutG with a double click in TPad::createNewPolyLine
864
865 - Merge with valery's version including changes for TPadView3D (moved to BASE)
866
867 //
868 // 16/03/2000 08.11.07 by Rene Brun
869 //
870 - In TMinuit destructor remove the TMinuit object from gROOT->GetListofSpecials().
871 Also reset gMinuit=0 if gMinuit=this.
872
873 //
874 // 15/03/2000 16.55.10 by Fons Rademakers
875 //
876 - TString: can now specify which character to strip in Strip().
877
878 - mmalloc, mfree, mmprivate: changed "struct list" to "struct mmlist"
879 to avoid possible clash with STl list class (fix by pcanal).
880 //
881 // 11/03/2000 16.04.06 by Rene Brun
882 //
883 - Changes in include Bytes.h to support an optimized byte swapping code
884 on Linux machines (thanks to Sasha Vanyashin ).
885 The Bytes.h uses asm macros from the #include <byteswap.h>
886 This is a part of the GNU C library: /usr/include/byteswap.h and
887 /usr/include/bits/byteswap.h. To get the most of the macros one has to use
888 the compiler switches higher then i386 (e.g., -march=pentiumpro -mpentiumpro),
889 since the default gcc copmpiler settings are just the i386.
890 Because the byteswap.h is missing on many Linux systems, a copy of
891 this include is provided in Byteswap.h
892
893 - Fix a problem in TMethodCall::ReturnType to take into account
894 the Root data types Float_t, Int_t, etc in addition to the basic types.
895 (thanks Gene Van Buren)
896
897 - New functionality added to class TLatex (Marthe Brun)
898 #left(, #right) to draw parenthesis with a size corresponding
899 to the block between parenthesis.
900 Support for Upper and Lower indices in front of a letter (useful for
901 chemical elements). try for example {}_{3}^{7}Li.
902 Use this new functions in tutorial latex.C.
903 Better vertical aligment of Greek characters
904 //
905 // 10/03/2000 10.47.26 by Philippe canal
906 //
907 - New version of rootcint. This new version is now able to automatically
908 generate the Streamer functions for classes containing pointers to basic types
909 in the following case.
910 Int_t fN; //Number of array elements
911 Int_t *fType; //[fN] array of fN integers
912 Float_t *fX; //[3*fN] array of 3*fN floats
913
914 - Extensions to TSystem such that the following will nicely work:
915 root> .L stress.cxx
916 root> stress(); // will interpret
917 root> .L stress.cxx
918 root> stress(); // will interpret a new version
919 root> .L stress.cxx++
920 root> stress(); // will execute compiled code
921 root> .L stress.cxx++ // does not re-compiled if stress.cxx is NOT newer.
922 root> stress(); // will execute new compiled code
923
924 //
925 // 08/03/2000 14.57.15 by Rene Brun
926 //
927 - In TVirtualFitter destructor, reset fgFitter and fgMaxpar to 0.
928 This is necessary in case a previous fitter was created with a number
929 of parameters maxpar, then deleted and a new fitter created with
930 less parameters. (case shown by Nicolas Produit)
931 //
932 // 07/03/2000 16.50.31 by Rene Brun
933 //
934 - Modify CINT/libstrm deck header to add -KCC.
935 Modify importcint to add -kCC when importing libstrm.
936
937 - Add comments in TNamed::SetName, TNamed::SetObject to mention that
938 if an object is a member of a THashList, the THashList must be
939 rehashed after the SetName.
940 Comment also added to the THashList constructors.
941 //
942 // 06/03/2000 08.43.09 by Rene Brun
943 //
944 - Update a wrong comment in tutorial Ifit (mnhelp("*") instead of mnhelp("*",0).
945 (thanks Ben Kilminster).
946
947 - Modify test programs Tetris and hworld to replace references to gPad
948 by TVirtualPad::Pad().
949
950 - Merge with Valery's new version. This new version includes several changes
951 in the STAR classes + support for double-click on WindowsNT.
952 //
953 // 05/03/2000 16.11.09 by Rene Brun
954 - Declare the TTree::Branch functions to be virtual (Fred Gray request).
955 //
956 //
957 // 04/03/2000 16.34.54 by Rene Brun
958 //
959 - Fix a clipping problem in TGraph::PaintGraph in case of option Bar.
960 Add SetBit(kClipFrame) in default TGraph constructor.
961 (thanks Anton Fokin).
962 //
963 // 03/03/2000 19.02.17 by Fons Rademakers
964 //
965 - TDatime: allow 100 - 199 as years (100 is returned by Linux's gmtime
966 for the year 2000).
967
968 - TMatrix, TVector: print errors when two matrices or vectors are not
969 compatible instead of silently doing nothing.
970
971 - TGSlider: fixed two case of && which should be & in DoDraw() for TGVSlider
972 and TGHSlider. Found by Yun-Ha Shin.
973 //
974 // 02/03/2000 10.10.41 by Rene Brun
975 //
976 - In TChain::SetBranchAddress and TChain::SetBranchStatus,
977 set fTreeNumber = -1 to force TChain::LoadEntry to be executed
978 at the next call to TChain::GetEntry. This statement is necessary
979 in case a user calls one of these two functions after a first pass
980 to the files in the chain. (thanks Goetz Gaycken)
981
982 - Add new function int() to TFormula::Analyze, TFormula::Eval
983 and to TTreeFormula::Eval
984 //
985 // 01/03/2000 17.27.39 by Rene Brun
986 //
987 - Important change in histogram classes
988 =====================================
989 - All histogram classes are derived from the base class TH1
990
991 TH1
992 ^
993 |
994 |
995 |
996 -----------------------------------------------------
997 | | | | | |
998 | | TH1C TH1S TH1F TH1D
999 | | |
1000 | | |
1001 | TH2 TProfile
1002 | |
1003 | |
1004 | ------------------------------
1005 | | | | |
1006 | TH2C TH2S TH2F TH2D
1007 |
1008 TH3
1009 |
1010 |
1011 ------------------------------
1012 | | | |
1013 TH3C TH3S TH3F TH3D
1014
1015 The TH*C classes also inherit from the array class TArrayC.
1016 The TH*S classes also inherit from the array class TArrayS.
1017 The TH*F classes also inherit from the array class TArrayF.
1018 The TH*D classes also inherit from the array class TArrayD.
1019
1020 This change is backward compatible. Previous style histograms
1021 can be read by the new version.
1022 //
1023 // 29/02/2000 20.23.34 by Fons Rademakers
1024 //
1025 - TVirtualPad: R__Pad() now static member TVirtualPad::Pad().
1026 //
1027 // 29/02/2000 08.35.28 by Rene Brun
1028 //
1029 - Implement copy constructor of TParticle
1030 //
1031 // 28/02/2000 09.39.18 by Rene Brun
1032 //
1033 - Add new classes TSpline, TSpline3 and TSpline5 (from Federico Carminati)
1034 Add new tutorial spline.C
1035
1036 - Implement a new TF1 constructor
1037 TF1::TF1(const char *name, Float_t xmin, Float_t xmax, Int_t npar)
1038 where name is the name of a preloaded CINT function
1039
1040 - New code in TBranchClones::Streamer to automatically create
1041 the TClonesArray if the support pointer contains a null address
1042 (thanks to Marian Ivanov).
1043
1044 - Merge with Valery's version:
1045 additions in TROOT::GetClass to take into account typedefed classes.
1046 new versions of STAR classes
1047 //
1048 // 23/02/2000 19.09.59 by Rene Brun
1049 //
1050 - Rename C function mem_read to R__mem_read in the ZIP Bits.c file.
1051 This name clashes with a similar name in one library used by ISDC.
1052 Thanks Nicolas Produit for investigating.
1053
1054 - Many thanks to Marco van Leeuwen for reporting a problem with TGraph::Fit
1055 when fitting with a polynomial. The problem has been fixed in TGraph::LeastSquareFit.
1056 The last data point was ignored by this function computing the initial
1057 value of parameters.
1058 //
1059 //
1060 // 22/02/2000 08.22.57 by Rene Brun
1061 //
1062 - Protection added in TCanvas::RunAutoExec. The global gPad may be null
1063 in some cases (eg, when a TDialogCanvas object is deleted by a button
1064 inside the canvas itself).
1065
1066 -In TTreePlayer::DrawSelect, disable the bit kCanRebin for histograms
1067 (1-d, 2-d and 3-d) when the option "same" is specified.
1068
1069 - In TH1::GetStats, forgot to preset to 0 the last element of the array stats.
1070 This was given a problem on Alpha/Unix machines.
1071
1072 - Regenerate the G__Meta dictionary to remove new code generated by the
1073 new version of CINT. Correction reported to Masa.
1074
1075 - Several changes received from Valery Fine in the new STAR package and also in
1076 the Win32 GUI.
1077
1078 //
1079 // 18/02/2000 17.47.15 by Rene Brun
1080 //
1081 - A change in the functions TF1::Integral, also, TF2 and TF3.
1082 All parameters promoted from Float_t to Double_t.
1083 (thanks Rutger van der Eijk )
1084
1085 - Thanks to Romain.Holzmann@gsi.de for fixing a problem in TTreeFormula.
1086 "I have noticed a problem when using a graphical cut TCutG in a TTree::Draw()
1087 selection in case the selection applies to a pair of variables (x:y) of which
1088 one at least is stored in a TClonesArray:
1089 Indeed, in the TTreePlayer::EntryLoop(...) method the flag SelectMultiple is
1090 not set properly in this case, so that only the first entry of the TClonesArray
1091 is tested and the result of fSelect->EvalInstance(0) is used for ALL entries
1092 of the array, i.e. either all x:y pairs are accepted or all are rejected!
1093 The problem seems to come from the TTreeFormula constructor which does not
1094 set TTreeFormula::fMultiplicity (?) for the case of a graphical cut."
1095 //
1096 // 17/02/2000 19.28.15 by Masaharu Goto
1097 //
1098 - New CINT 5.14.31 7 Feb 2000 (previous version in ROOT was 5.14.25)
1099 5.14.26 8 Dec 1999
1100 1242, #pragma link C++ namespace, risk1, t298.h
1101
1102 5.14.27 19 Dec 1999
1103 1243, #pragma link C++ defined_in tagname; risk1, t299.h
1104 1244, default template arg, get typenum at the first instantiation, risk2
1105 1245, prompt \ newline escape, risk2, t301.cxx
1106 1246, p = new scope::ctor(); bug fix, risk2
1107 1247, gROOT->Macro("f.c") in loop, 1168 side effect, risk3
1108 1248, fix to 1219, 1225, pointer to function argument, risk2
1109 1249, f(void (*p)()=0); bug fix, risk 2, t307.h
1110 1250, 'explicit' support, risk4, t308.cxx,
1111 1251, compiled default ctor in bytecode loop, bug fix. risk2, t310.h/cxx
1112 - , G__NOMATHLIB switch, risk1
1113 1252, 1.0 + obj; buf fix, risk1, t309.cxx
1114 1253, tempbuf display,
1115 1254, A& a=A(x); temp object lifetime bug fix, risk4, t312.cxx
1116 1255, UInt_t -1 display bug fix, risk2
1117 -1256, n=0;for(i=0;i<n;i++); bytecode, risk5, t313.cxx
1118 BUG FOUND, intprt_cint infinit loop, CINT simple.cxx
1119 1257, pragma link C++ class A*-; supported risk3, t315.h
1120
1121 5.14.28 5 Jan 2000
1122 /1258, const and non-const member function override, risk3, t316.h
1123 /1259, constness flag for G__value
1124 /1260, func overload matching with object constness
1125 Note: constness checking is implemented by 1258-1260. There are several
1126 problems and this feature is not activated unless G__CONSTNESSFLAG
1127 is explicitly defined in platform/dependency file.
1128 - DLL/sharedlib binary incompatibility
1129 - STL container's const_iterator begin/end can not be compiled
1130 1261, #pragma include_noerr "f1" #on_error "f2"
1131 1262, A*** x; bug fix, risk3, t317.h
1132
1133 5.14.29 17 Jan 2000
1134 -1263, 1240 fix, implicit conv + derived to base conv, t321.cxx, not done
1135 1264, more than 10 class object member , risk2, c:/src/err/MyDlg.cpp
1136 1265, operator-> support t323.cxx
1137 1266, void (*p2f)(int&); bug fix t326.cxx, t325.cxx
1138 1267, G__ClassInfo::New(int n); added, risk2
1139 1268, compiled exception catching, t332.h/.cxx, risk4
1140
1141 5.14.30 30 Jan 2000
1142 1269, static member function flag missing, t333.h , risk2
1143 1270, exception in bytecode, t332.h/.cxx, risk5
1144 1271, auto loading of std header in DLL, t332.h/.cxx, risk4
1145 1272, #pragma link postprocess file action; t335.h/.cxx t335post.cxx, risk3
1146
1147 5.14.31 7 Feb 2000
1148 1273, function only macro smart unloading, risk4, t336.cxx
1149 G__set_smartload() added
1150 1274, A f() { return B(); }, risi3, t338.cxx
1151 - , auto_ptr added in stl/_memory, t340.cxx
1152 1275, template<class T> class A{template<class Y> A(Y& x){}};, risk2,t340.h
1153 - , auto_ptr support, t343.cxx t342.cxx, t345.cxx
1154 1240 -> G__WORKAROUND000209_1
1155 //
1156 // 17/02/2000 18.40.43 by Fons Rademakers
1157 //
1158 - Secure rootd deamon
1159 ===================
1160 Rootd now supports secure authentication by using the SRP package
1161 from Stanford (http://srp.stanford.edu/srp/). SRP, Secure Remote
1162 Passwords, uses a so called "asymmetric key exchange protocol"
1163 in which no passwords are ever send over the wire. To quickly
1164 read about the main features of SRP look at:
1165 http://jafar.stanford.edu/srp/advantages.html
1166 To build rootd with libsrp.a you've to do the following:
1167 - get the SRP source (ftp://srp.stanford.edu/pub/srp/srp-1.5.0.tar.gz)
1168 - get the gmp source (ftp://srp.stanford.edu/pub/srp/gmp-2.0.2.tar.gz)
1169 This is not needed when you are on a recent Linux machine where
1170 libgmp.so exists in /usr/lib.
1171 - Build the gmp and SRP libs (./configure;make;[make install])
1172 - Check the rootd Makefile and set the SRP variable to where you
1173 installed the SRP source.
1174 - Build rootd
1175 - Get the package ftp://root.cern.ch/root/srputils.tar.gz
1176 - Untar, check that the variable SRP is set correctly in the Makefile
1177 and make and make install. This produces the utilities rtconf,
1178 rpasswd and the library libSRPAuth.so.
1179 - To setup the SRP passwd file on the remote node do:
1180 - rtconf
1181 A key of 512 bit is good enough (creates the file
1182 $HOME/.srootdpass.conf)
1183 - rpasswd
1184 Give a passwd for rootd (creates the file $HOME/.srootdpass)
1185 - On the local site you need to get only libSRPAuth.so and put it
1186 in $ROOTSYS/lib.
1187 - Now when creating a TNetFile object via TFile::Open("root://....")
1188 libSRPAuth.so will be loaded if it exits and the secure login
1189 protocol will be used. Note that other rootd trafic is not encrypted.
1190
1191 - TRint, rootx: changed option -p (to popdown the slpash screen) to -splash
1192 to prevent any accidental usage.
1193
1194 - TCut: fixed behaviour of operator!().
1195
1196 - TROOT: added check in GetClass() for fClasses==0.
1197
1198 - Threads: updates in the thread package, but this is still work in progres.
1199 //
1200 // 17/02/2000 15.35.35 by Rene Brun
1201 //
1202 - Add new install Makesolarisgcc (thanks Michal Lijowski).
1203
1204 - Minor changes in TGX11 (change Text_t to char) to make new Sun CC5 happy.
1205 Similar minor change in TView : Replace TMath::Atan(1) by its value.
1206
1207 - Modify TAttext to show function SetTextAngle in the context menu.
1208
1209 - Add new function TEventList::SetDelta.
1210
1211 - Change comment in TF1::Derivative.
1212
1213 - Minor change in TH1::GetBarOffset and GetBarWidth. Cast result to Float_t
1214 to avoid a warning with one compiler.
1215
1216 - In TTreePlayer::MakeClass, generate the code for the class destructor.
1217 Delete the current file in the destructor.
1218
1219 - One change in TCint (Win32 only).
1220 //
1221 // 14/02/2000 12.24.01 by Rene Brun
1222 //
1223 - Add the following functions overridden TNamed::SetObject
1224 TH1::SetObject(const char *name, const char *title)
1225 TNode::SetObject(const char *name, const char *title)
1226 TTree::SetObject(const char *name, const char *title)
1227 Because instances of these 3 classes are automatically added to the current
1228 directory (a THashList), it is necessary to recompute the hashtable.
1229 This was already done by the SetName functions of these classes.
1230 //________________________________________________________________________
1231 //
1232 //::> VERSION 2.24/00 14/02/2000 10.13.26
1233 //
1234 //
1235 // 01/02/2000 16.35.57 by Rene Brun
1236 //
1237 - Add new attributes fTitleColor and fTitleFont in TAttAxis.
1238 Same in helper class TGaxis.
1239 The necessary changes to introduce the new attributes have been made in
1240 THistPainter::PaintAxis and in class TAxis3D.
1241
1242 - Protection added to TRotmatrix in case a TGeometry object dose not exist.
1243 When this is the case, a default TGeometry object is created.
1244
1245 - Changes in TTreePlayer::TakeEstimate to support option "goff" when
1246 generating 3-d histograms.
1247