Hi Xavier,
Thanks for sending this interesting evaluation of the Users Guide.
Being back from FNAL, I have to catch up with my mail and I will answer
with more details later.
I just want to warn readers who have never seen this manual that:
- the version of the manual you received from me was printed for
the CERN School of Computing in September. This manual is just
a very preliminary version not to be distributed at a large scale.
We gave it to a few people to get feedback, but the manual is not in a shape
to be distributed to thousands of people.
- We are currently working on the manual. There are several changes
with respect to the version you have.
- Suzanne Panacek will announce the manual at the end of this month, once
we have corrected several mistakes and implemented a few more chapters.
We will post the corresponding PDF file on our web site.
- Meanwhile, please, do not ask me or roottalk where you can pick the manual.
Rene Brun
GENTIT Francois-Xavier DAPNIA wrote:
>
> To the authors of the new ROOT documentation,
>
> Thanks to René Brun, I had the chance to read a pre-release of the new
> ROOT documentation and here are my comments about it.
> First of all, it is clear that it is a huge improvment as compared to
> what was available before. Reading it, I have found that in the past I
> missed plenty of interesting features. So first of all , be insure that I
> am very satisfied with this new documentation. If what follows contains
> more critics than compliments, it is not because I do not recognise that
> giant step forward, it is because criticism is a more efficient way of
> getting things improved.
>
> So here are my comments, for every chapter :
>
> (1) - Chapter 1 Introduction. : Ok keep it as it is.
> (2) - Chapter 2 Getting Started : Ok keep it as it is.
> (3) - Chapter 3 A little C++ : It is a good idea to place such a
> chapter here. On the other hand, it is extremely difficult here to find the
> right middle between too short introduction and writing a book on C++. I
> think you are too close to the first case. To my mind, a user knowing
> nothing about C++ will not understand what you mean by inheritance. A
> definition of "Stack" and "Heap" would also be useful. You use these
> concepts without defining them. You should also end this chapter with
> recommended books on C++.
> (4) - Chapter 4 CINT the C++ Interpreter. This chapter is very good
> until you come to the point of "compiling a script". To my mind, ACLiC is
> a very strange extension to ROOT. If you have come to the point where your
> script are becoming too slow to execute, it means ( at least to my opinion
> ) that you have done the mistake of leaving in CINT things that you should
> have compiled and linked with ROOT. ACLiC looks to me as something for
> people in a hurry, not having time to do things properly. If I am wrong, it
> means at least that this chapter was not clever enough to make me
> understand why. If I am right, I think that ACLiC should not be explained
> here, but in an appendix.
> (5) - Chapter 5 Extending ROOT with your code This chapter is not
> clear enough about the following point : there are 2 ways of extending ROOT
> with user classes :
> (A) - either one builds an entirely new ROOT, containing the user
> classes in addition. This requires a main program, which is not documented
> in this chapter.
> (B) - either one builds a .so (or .dll) library, which has then to be
> loaded through gSystem.Load("xxx.so");
> I am not sure of what follows, but at least it is what I have experienced
> with ROOT : Point (B) is only working if one does not define global
> variables. I have never succeeded in doing a .so or .dll in case my code
> contained global variables. If it is true, this chapter should explain why.
> If it is not true, there is something that I missed in the way to define
> global variables for which I found nothing in this chapter.
> (6) - Collection Classes To my opinion, it is the
> chapter which requires the biggest effort to improve. It contains too much
> information about internal working which is of interest only for those
> interesting in understanding the code, and not enough information about the
> interest for the user to use collection classes. It should begin by an
> explanation about why the "array" construct of C++ is not sufficient. It
> should explain why ROOT is so rich in different collection classes (for
> instance, I confess that until now, I have only used TObjArray, and that I
> was hoping in reading this chapter that I would find interest in the
> other collection classes, but it was not the case, except for the
> TClonesArray class, for which unfortunatly many things remained unclear to
> me, I come to this point later ).
> Points unclear to me :
> - for TList, why including a previous and a next pointer, since TIter
> does the job ?
> - why not include the operator[] to all collection classes ?
> - for TCloneArray, it is said that they have fixed length, and in the
> example given, they are used for storing tracks, something which by no mean
> has fixed length ! There are short tracks and there are long tracks ! Does
> it mean that one reserves always the memory for the longest possible track
> ? it seems awful and surely I missed something.
> Besides of this, the chapter terminates abruptly and give no explanation
> about THashList, TOrdCollection ?
> (7) - Chapter 7 Histograms and Fitting Excellent chapter. Perhaps should
> be placed sooner ?
> (8) - Chapter 8 Input/Output Excellent chapter.
> (9) - Chapter 9 Graphics and Interaction with the user: it is the best
> chapter of the book. Reading it, I profoundly regret to not having it with
> me 2 years ago !
> (10)- Chapter 10 Trees An other excellent chapter. You
> should emphasize much more the remark at the end of page 195 : ROOT does
> not support splitting an object that has pointers as data members. I felt
> several times into this and in that case, ROOT crashes wildly without any
> warning message.
> (..) I have not yet read the last chapters
>
> To finish, some regrets or puzzles:
> - Why nothing about 3D ? Coming to this point, the status of ROOT about
> 3D to-day seems strange : Why is it possible to do such a complicated thing
> as moving in 3D an object like a TGTRA and impossible to simply define such
> simple objects like a 3d line ?
> - I was extremely surprised looking at the drawing of page 140. Here we
> can see ROOT working inside a MacIntosh window !!! Have you installed ROOT
> on Mac without making any publicity about that ???
>
> F.X. Gentit
> DAPNIA/SPP CEN Saclay
> tel : 01 69 08 30 38 fax : 01 69 08 64 28
> web : http://home.cern.ch/~gentit/
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:35 MET