STAR   Computing  
Learning to Use Root for STAR
Offline Software using ROOT in STAR Maintained by G. Van Buren and K. Turner
Comments/Questions/Suggestions?
Send them to gene@bnl.gov

Search the online Root documentation

The path to using Root for STAR is different for people with various degrees of knowledge about using C++, Root itself, and the packages which have already been developed for STAR computing. Not only is code development to be done in C++, but Root's interface language is even based on C (CINT), so it is imperative that the user have some knowledge of C. Whichever path you need to take in Learning to Use Root for STAR, I hope you will find the stepping stones you need below...

  1. Learning to Use C/C++
  2. Learning to Use Root
  3. Using Root for STAR
    1. Introduction
    2. Going from StAF to Root
    3. How Root for STAR Runs
    4. STAR Software Bulletin Board
or see Tutorials:
  1. Basics of the STAR computing environment
  2. Learning to Use Root - 2/10/99
    (and C++ basics)
  3. Root for STAR - 2/10/99
    Tables, datasets, and makers - useful for those working on reconstruction software (note, makel has been replaced with cons - see general Tutorials web page)
  4. STAR Maker Schema - 4/8/99
    More on makers and datasets
  5. BFC & QA - 2/10/99
    Info about how Big Full Chain works and how to add Quality Assurance Histograms
  6. How to read DSTs produced from bfc.C - 5/26/99
    - Kathy Turner
  7. StEvent Tutorial
  8. Analysis Basics - 10/8/99

Further info on ROOT in STAR - (Valerie's page)

Once you've become a Root user in STAR, you may find the Root for STAR web page a better springboard from which to find documentation about STAR offline software.




Learning to Use C/C++

If you already know C++, then you should move on. Otherwise, you may need to brush up on your C++, or even the more basic fundamentals of the C programming language. While there are many good books on the subject, I found a reasonably paced tutorial online:


Learning to Use Root

I list below some resources available for learning Root online, each with some descriptive remarks about what you can find and learn at the site:


Using Root for STAR

Introduction:

For STAR analysis, ROOT is generally run in an interactive mode. We save a series of commands in a macro, run the macro, and get any output data (in files or histograms) that we want. The macro takes care of loading in the necessary code libraries, initializing your routines, and then looping over the events in a file and calling event processing routines, which we call Makers. Makers are run in an orderly fashion by placing them in a Chain of Makers. Sometimes, these Makers work with data which is stored in tables, and sometimes they work with data which is stored in the StEvent data architecture. Tables are generally data structures which have been carried on from the days before Root was used in STAR, and are still commonplace in code run during reconstruction. StEvent is an object oriented data model and is at this point available downstream of the reconstruction (at the analysis stage, or at the end of the reconstruction stage). If you are doing analysis only, it is likely that you will only need to learn the StEvent model. Now that you have a picture of the STAR working environment for Root, it is time to learn the details of Root programming.

Going from StAF to Root:

If you already know StAF, then you will undoubtedly want to learn how Root does what StAF did. An important aspect to recognize is that all StAF analysis modules and tables still exist (and thrive!) in Root. They have been merely "wrapped" in C++ classes which have become standardized for Root. For example, StAF table classes like table_name_st are wrapped by Root C++ classes named St_table_name, and similarly for the analysis modules. Analysis modules associated with producing one dataset are now called from within one class associated with that dataset. This class is called a Maker, and is discussed in the next secion.

Some of the basic structures are described in Valery Fine's web page:

A few basic parallels are also drawn in StAF to Root. Further details about migrating to Root can be learned in the next section.

How Root for STAR Runs:

STAR Software Bulletin Board:

If you have a question whose answer may seem obscure, or simply a "feature" of Root for STAR, then this is the place to look. Some good tricks might be found here also.

Accessing ROOT files at RCF via HTML