17from ROOT 
import TCanvas, TFile, TProfile, TNtuple, TH1F, TH2F
 
   18from ROOT 
import gROOT, gBenchmark, gRandom, gSystem
 
   22c1 = 
TCanvas( 
'c1', 
'Dynamic Filling Example', 200, 10, 700, 500 )
 
   26c1.GetFrame().SetBorderMode( -1 )
 
   33hfile = gROOT.FindObject( 
'py-hsimple.root' )
 
   36hfile = 
TFile( 
'py-hsimple.root', 
'RECREATE', 
'Demo ROOT file with histograms' )
 
   39hpx    = 
TH1F( 
'hpx', 
'This is the px distribution', 100, -4, 4 )
 
   40hpxpy  = 
TH2F( 
'hpxpy', 
'py vs px', 40, -4, 4, 40, -4, 4 )
 
   41hprof  = 
TProfile( 
'hprof', 
'Profile of pz versus px', 100, -4, 4, 0, 20 )
 
   42ntuple = 
TNtuple( 
'ntuple', 
'Demo ntuple', 
'px:py:pz:random:i' )
 
   47gBenchmark.Start( 
'hsimple' )
 
   51rannor, rndm = gRandom.Rannor, gRandom.Rndm
 
   54histos = [ 
'hpx', 
'hpxpy', 
'hprof', 
'ntuple' ]
 
   56   exec(
'%sFill = %s.Fill' % (name,name))
 
   59px_ref, py_ref = ctypes.c_double(), ctypes.c_double()
 
   61for i 
in range( 25000 ):
 
   63   rannor( px_ref, py_ref )
 
   75   ntuple.Fill( px, py, pz, random, i )
 
   78   if i 
and i%kUPDATE == 0:
 
   85      if gSystem.ProcessEvents():            
 
   90   exec(
'del %sFill' % name)
 
   93gBenchmark.Show( 
'hsimple' )
 
Option_t Option_t SetFillColor
A ROOT file is composed of a header, followed by consecutive data records (TKey instances) with a wel...
1-D histogram with a float per channel (see TH1 documentation)}
2-D histogram with a float per channel (see TH1 documentation)}
A simple TTree restricted to a list of float variables only.