DMelt:IO/9 Other file formats

From jWork.ORG
Jump to: navigation, search
Limitted access. Reguest membership or login to this link first if you are already a member
Contents
ROOT/AIDA/Matlab/Excel
Reading ROOT files

DataMelt supports reading files created by the ROOT data-analysis program implemented in C++. There are several ways to read ROOT file but the easiest is to use the jhplot.io.FileRoot class. You can list all objects inside ROOT files, navigate inside the ROOT files and extract histograms and graphs (TGraph) objects. Below is a simple example showing how to do this:

 
from java.awt import Color
from jhplot  import *
from jhplot.io  import *

file="Example.root"
Web.get("http://jwork.org/dmelt/examples/data/"+file)

# local location of ROOT file
# it is in "macros/examples/data" Set this manually if run without DataMelt IDE
#file=SystemDir+fSep+"macros"+fSep+"examples"+fSep+"data"+fSep+"Example.root"

# location of ROOT file
rfr = FileRoot( file )
print "number of histograms=",rfr.getNKeys()
print "ROOT version=",rfr.getVersion()
print "ROOT version=",rfr.getTitle()
print "No of histograms=",rfr.toString()

# get ROOT histograms 
h1 = rfr.getH1D("mainHistogram")
h2 = rfr.getH1D("totalHistogram") 
# create canvas 1x1
c1 = HPlot("Canvas",600,400,1, 1)
c1.setGTitle("Show ROOT histograms from Example.root")
c1.visible(1)
c1.setMarginLeft(90)

c1.setRange(0, -4, 4)
# set autorange for Y
c1.setAutoRange(1,1)

h1.setColor(Color.blue)
c1.draw(h1)

h2.setColor(Color.red)
c1.draw(h2)

c1.setNameX("Xaxis")
c1.setNameY("Yaxis")
c1.setName("Canvas title")
c1.update()


# export to some image (png,eps,pdf,jpeg...)
# c1.export(Editor.DocMasterName()+".png");


Note that the method get() returns a ROOT objects. In case TH1 ROOT histograms, it will return H1D histograms ready to plot on DataMelt canvas. In case of TH2 ROOT histograms, it will return H2D DataMelt histogram. It can also create P1D objects by reading TGraph ROOT object.

Reading AIDA files

You can read AIDA objects using the classes jhplot.io.FileAida Here is a simile example showing how to read an AIDA file and plot Clouds and histograms:

<jcode lang="python" > dmelt 90533913.py </code>

The output of this script is shown below.

DMelt example: Reading AIDA file and accessing histograms

See the example "io_read_root.py" for ROOT-file examples.


Plotting AIDA or ROOT objects using browser

One can open AIDA or ROOT files using HPlotJa browser. In the DataMelt IDE, go to "Tools-HplotJa". Then, in the HplotJa, create an empty pad (pads), as "Options->Draw pad". Then, open ROOT or AIDA file as "File-Open data". You will see a ObjectBrowser. Select any object, such as histograms or cloud. With the mouse (right button), click on the selected object and press "Draw".


ASCII, Gauss, Matlab, Excel data formats

DataMelt can read data (timeseries) in variety of formats, such as ASCII, Gauss, Matlab, Excel. Data can be modified, showed as tables/ One can plot such data and perform a statistical analysis.

More information on this topic is in DMelt books