Nevis ROOT Web Links

This a page of reference links. It's meant as a companion page to the ROOT Tutorial that I teach every year at Nevis Labs.

The following links will give you a start as you search the web for information on UNIX, ROOT, and C++.

UNIX

ROOT

C++ references

(thanks to Segev Benzvi)

Tutorial at cplusplus.com
This starts from the basics, so it is appropriate for beginners. It also seems to be a fairly complete language reference, excluding the STL of course. A pretty good place to start.
C/C++ Reference
This is a bare-bones list of the functions and members available in the standard C and C++ libraries. This would be a handy reference once the students got comfortable with the language.

Reference books

(the links point to Amazon)

Books on C++

C++ Primer Plus
I still refer to this book frequently for C++ syntax information. This is the best C++ tutorial and reference that I've seen.
The C++ Programming Language
The "official" C++ language specification. If I can't find the answer to some technical C++ question is the primer, I look here.
STL Tutorial and Reference Guide
When you want to program in C++, there are really three "languages" you have to learn. The first is C++ itself; that's covered by the two books above. The second is the Standard Template Library, a collection of C++ templates that's rapidly becoming part of the standard language. I also refer to this book frequently.
Design Patterns
The third "language" you have to learn is that of design patterns, that is, the common techniques that are used to solve problems in object-oriented programming. If you hang around a group of C++ programmers, you'll hear them discuss the "strategy pattern," the "factory pattern," the "singleton pattern," and so on. This book defines what those terms mean.
Generic Programming and the STL
There are two techniques I know of to promote code re-usability. One is object-oriented programming, a topic discussed in some of the above books. The other is "generic programming," a technique that is independent of object-oriented programming. This book explores topics in generic programming (which I wish I understood better than I presently do).
Scientific and Engineering C++
This is the standard C++ book recommended for scientists. To be honest, I never found it all that useful compared to the books above. I mention it to be complete.

Python

Learning Python
If you're using ROOT via Pyroot, you'll want to learn the Python programming language. This book is pretty good, though some sections are more of a reference than a tutorial.

Books on Statistics

Data Reduction and Error Analysis for the Physical Sciences
The "bible" of basic statistics for scientists. The second edition introduced a number of typographical errors; I hope these have been fixed in the third edition.
Techniques for Nuclear and Particle Physics Experiments
Once you know statistics, you have to learn how to apply them in physics experiments. If you get this book, keep it well-hidden. Your colleagues will "borrow" it, and you'll never see it again.
Statistics
The two books above are graduate-level texts. This book covers statistics from a basic level (it's intended for the social sciences). I like this book because it covers statistics topics from the very basics, starting with the box model. I feel it's important to have at least one reference that covers the assumptions that underlie statistics formulae; that way, you can judge when those assumptions no longer apply.

Send e-mail to Bill Seligman
Back to the ROOT Tutorial page
Up to the Nevis home page.