How to Convert HBOOK/PAW Files to ROOT Files?
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 rootfile
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.