
The Starting Point for Phobos Software/Analysis
S. Manly
and the Phobos software group
last modified: 12/10/98
Introduction
This document is intended as a starting place for people who want to learn
how to do analysis with Phobos data. It is an evolving document. It will grow as I run
into troubles and solve them during my own odyssey. I am including tips and comments that
I receive from others as well. You can contribute too! Tell me about your problems,
solutions, etc. as you make progress and I will include relevant information in this file.
Some of the basic questions (with answers)
What language is used for Phobos code?
C++. The usual style of your average fortran-trained
physicist is to find one example job, jump in, and start writing code. Beware: C++ syntax,
style, program flow, etc., is VERY different from fortran. The documentation of ROOT
and PhAT (packages used for Phobos analysis) will make MUCH more sense if you've taken the
trouble to learn a bit about C++ first.
Beginners in object-oriented computing will benefit from a very nice, clear introductory
article entitled
Object-Oriented
Computing - What's the Big Deal? . Here you will find some very useful links and
references for object-oriented beginners. Mark Baker discovered this link in the
CERNLIB newsletter, which has an article
about object-oriented programming with some more useful references at the bottom. .
What software packages are relevant for
Phobos work?
ROOT: said to stand for "Rene's object oriented
toys". This is a class library aimed for use in high energy and nuclear physics
(a class is a C++ 'structure' that contains data, functions, other classes, etc., the
business end of C++). It constitutes a framework with all the functionality one
needs to do analysis on large data sets in an efficient way, and includes CINT (written by
Masaharo Goto) which interprets most C++ code. The ROOT project is led by Rene Brun
(of PAW fame). This is his idea of what one needs to do current/near future analyses in
HEP and nuclear physics. Root is a shell that can interpret C++ (and custom) commands. It
also allows you to run scripts that are part of the ROOT class library or are user written
to do analysis, IO, graphics, etc.
PhAT: pronounced "fat" - Phobos Analysis Toolkit. PhAT is the Phobos specific class library. Some might include many Phobos specific scripts (sorta like "subroutines" to fortran fans) in PhAT.
Where do I find out more about ROOT?
Check out the web pages at http://root.cern.ch
In particular, http://root.cern.ch/root/Availability.html
gives pointers to ROOT overview and tutorial files that are useful to a beginner.
There are several other helpful documents easily reached from pointers in http://root.cern.ch/root/Publications.html
.
Steve Beach: The
Root Cheat Sheet
Mark Pollack: The
PHENIX ROOT tutorials (The emphasis of these tutorials is on histogramming)
Andy Haas: An
introduction to Root
David d'Enterria: Conversion
table from PAW to Root
Laurent Aphecetche: A
conversion program from Root to Hbook
Once you get going "root howto's", "root class categories", "root
classes and members" are useful.
Where do I find out more about Phat?
Check out the main PhAT web page . It is useful to print out (for those of you who don't use paper anymore, it's the flimsy white stuff you see covering the desks of your older colleagues) "C++ Class and Members Reference" and the list of "Example macros". But, the place to start is "PhAT documentation"! If you are in the process of becoming somewhat C++/ROOT literate, this will be useful. If you are not, you should spend some time learning a bit about ROOT and C++. We are in the process of creating heavily documented jobs that will serve as a starting place for beginning users ... see below.
What platforms are supported?
Root runs on numerous platforms. See http://root.cern.ch/root/Availability.html
.
PhAT currently supports Linux, DEC Unix (OSF1), SunOS (Intel and SPARC).
How do I get an account at RHIC computing?
Go to the RCF web page and click on "new user accounts". As of 7/21 you will be told to telnet to rcf.rhic.bnl.gov and login as "newuser" (hit return for password). Follow instructions. Mark Baker is your contact.
How do I find a data sample to analyze?
Use the Phobos data tracker database. As of 12/7/98, it is of limited utility to a true beginner, but hopefully that will change. The intent is to soon supply a small file of full ROOT events with PhAT. Or, if not with PhAT, then somewhere easily accessible to YOU.
How do I find a pristine working version of PhAT?
Well, you can try running PhAT at BNL, where there is a version on rlnx03 that is SUPPOSED to work. Check out the instructions on how to do this. You can also download a snapshot of PhAT (you'll also need ROOT).
What is this SSH crap?
SSH stands for Secure SHell. It is what security-conscious system managers will force you to use instead of straight telnet. It's trivial to use if it is set up on your computer(s) ... just type "ssh computer-where-you-want-to-go". If it is the first time you've done it to that particular computer you may get a message that asks you if you know what you are doing and "do you want to continue?" Say "yes" and move on. Yes, you will have to type "yes". If you want to know more about ssh, check out this document at MIT or this document at BNL.
Example programs
The software group is in the midst of putting together several
heavily documented example programs. A good place for beginners to start is the
macro "phat_example.C". It is in the Phat distribution (see
$PHATHOME/phat/macros/phat_example.C). Also, see Don McLeod's note on Phatloop. More is coming soon!
Tips for new users
You can find information about the general setup for PhAT in the"Readme" file that comes in the main PhAT directory. It is useful to take the time to create root.setup and phat.setup files that define things appropriately. These files and root and phat must be run from the Unix Cshell, which you can reach by typing "tcsh" if you aren't in it to begin with.
PhAT does have to be linked/compiled with Root (as does any user class that you produce) The "Readme" file in the main PhAT directory tells you how to do this.
If you have things set up properly and type "root", the ROOT environment shell will pop up and you can play with root examples and jobs .... BUT YOU CAN'T RUN PHAT! You must type "phat" instead of "root" to start things off properly. If you type "phat", the ROOT environment will pop up and you will be linked to PhAT classes and WILL be able to run PhAT jobs.
When all else fails, type "tcsh" and try it again. Root/PhAT use the Unix TC shell. To learn more about Unix "shells" check out this document by a University of Rochester Phobos student (John Vernaleo).
Other useful websites:
http://www.rhic.bnl.gov/RCF/ - General RCF web
page
http://www.rhic.bnl.gov/ - General RHIC web page
http://www.bnl.gov/ - General BNL web page