Re: [ROOT] New ROOT documentation

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Oct 23 2000 - 14:57:49 MEST


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