Advanced Exercises

If you still haven’t finished the exercises in The Basics, The C++ Path, or The Python Path, then keep working on them. The following exercises are relevant to larger-scale analyses but may not be relevant to the work that you’ll be asked to do this summer.

If this class is your first exposure to programming, then these exercises are hard. The smart-aleck footnotes and xkcd cartoons aren’t going to change that. Don’t feel bound by the suggested times. Use the references to learn enough about programming to try to get the next exercise done by the end of the workshop.

You may notice that I don’t provide links to the ROOT classes I talk about in the following sections. That’s deliberate on my part. I want you to grow used to looking up topics in the ROOT web site (and elsewhere on the web), since that is what you’ll have to do for real programming tasks.

It’s your choice whether to do the exercises in C++ or Python. I’m going to discuss them in C++ terms, mainly because that’s my preferred programming language. Working with pyroot will pose its own set of challenges. You’ll learn something either way!

Before we get to the exercises, let’s consider some more advanced topics in ROOT.