https://github.com/root-project/root
Tip revision: a48bb7fe1e147de1fad7e8775a664518df516f81 authored by Unknown Author on 29 May 2006, 10:03:03 UTC
This commit was manufactured by cvs2svn to create tag 'v5-10-00e'.
This commit was manufactured by cvs2svn to create tag 'v5-10-00e'.
Tip revision: a48bb7f
hsimple.rb
#*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
#*-*
#*-* This program creates :
#*-* - a one dimensional histogram
#*-* - a two dimensional histogram
#*-* - a profile histogram
#*-* - a memory-resident ntuple
#*-*
#*-* These objects are filled with some random numbers and saved on a file.
#*-*
#*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
gROOT.Reset
# Create a new canvas.
c1 = TCanvas.new('c1', 'Dynamic Filling Example', 200, 10, 700, 500)
c1.SetFillColor(42)
c1.GetFrame.SetFillColor(21)
c1.GetFrame.SetBorderSize(6)
c1.GetFrame.SetBorderMode(-1)
# Create a new ROOT binary machine independent file.
# Note that this file may contain any kind of ROOT objects, histograms,
# pictures, graphics objects, detector geometries, tracks, events, etc..
# This file is now becoming the current directory.
hfile = gROOT.FindObject('hsimple.root')
hfile.Close if hfile
hfile = TFile.new( 'hsimple.root', 'RECREATE', 'Demo ROOT file with histograms' )
# Create some histograms, a profile histogram and an ntuple
hpx = TH1F.new('hpx', 'This is the px distribution', 100, -4, 4)
hpxpy = TH2F.new('hpxpy', 'py vs px', 40, -4, 4, 40, -4, 4 )
hprof = TProfile.new('hprof', 'Profile of pz versus px', 100, -4, 4, 0, 20)
ntuple = TNtuple.new('ntuple', 'Demo ntuple', 'px:py:pz:random:i')
# Set canvas/frame attributes (save old attributes)
hpx.SetFillColor(48)
gBenchmark = TBenchmark.new.Start('hsimple')
# Fill histograms randomly
rnd = TRandom.new.SetSeed
kUPDATE = 1000
25000.times do |i|
px = rnd.Gaus
py = rnd.Gaus
pz = px*px + py*py
random = rnd.Rndm(1)
hpx.Fill(px)
hpxpy.Fill(px, py)
hprof.Fill(px, pz)
ntuple.Fill(px, py, pz, random, i)
if i and i%kUPDATE == 0
hpx.Draw if i == kUPDATE
c1.Modified
c1.Update
next if gSystem.ProcessEvents
end
end
gBenchmark.Show('hsimple')
# Save all objects in this file
hpx.SetFillColor(0)
hfile.Write
hpx.SetFillColor(48)
c1.Modified
c1.Update
gApplication.Run