The ROOT distribution kit includes a program called h2root that you can use to convert your HBOOK/PAW histograms or ntuples files into ROOT files. To use this program, you type the shell script command:
h2root hbookfile rootfileIf you do not specify the second parameter, a file name is automatically generated for you. If hbookfile is of the form file.hbook, then the ROOT file will be called file.root.
This program converts HBOOK histograms into ROOT objects of the class TH1F. HBOOK profile histograms are converted into ROOT profile histograms (see class TProfile). HBOOK row-wise and column-wise ntuples are automatically converted to ROOT Trees(see TTree). Some HBOOK column-wise ntuples may not be fully converted in case one of the columns is an array with fix dimensions(eg. var[6]) or is a multi-dimensional array.
HBOOK integer identifiers are converted into ROOT named objects by prefixing the integer identifier with the letter "h" if the identifier is a positive integer and by "h_" if it is a negative integer identifier.
In case of row-wise or column-wise ntuples, each column is converted to a branch of a Tree.
Note that h2root is able to convert HBOOK files containing several levels of sub-directories.
Once you have converted your file, you can look at it and draw histograms or process ntuples using the ROOT interactive module. An example of session is shown below:
TFile f("hbookconverted.root"); // this connects the file hbookconverted.root h10.Draw(); //display histogram named h10 (was HBOOK id 10) h30.Draw("var"); //display column "var" from ntuple h30
You can also use the ROOT browser (see TBrowser) to inspect this file.
The chapter How to read a Tree explains two ways to read a Tree. ROOT version 1.0 will include a new function TTree::MakeCode to automatically generate the code for a skeleton analysis function. With ROOT version 0.90, you can generate this skeleton function by executing the macro MakeCode.
In case one of the ntuple columns has a variable length (eg. px(ntrack)), h.Draw("px") will histogram the px column for all tracks in the same histogram. h.Draw("px[0]") is not implemented in version 0.90. Use the macro quoted above to generate the skeleton function and create/fill the relevant histogram yourself.