ROOT
6.18/05
Reference Guide
tutorials
pyroot
demo.py
Go to the documentation of this file.
1
## \file
2
## \ingroup tutorial_pyroot
3
## To run, do an "execfile( '<path-to>/demo.py' )" or "python <path-to>/demo.py"
4
##
5
## \macro_code
6
##
7
## \author Wim Lavrijsen
8
9
import
os, sys
10
import
ROOT
11
12
# To run, do an "execfile( '<path-to>/demo.py' )" or "python <path-to>/demo.py"
13
14
# enable running from another directory than the one where demo.py resides
15
workdir = os.path.dirname( sys.argv[0] )
16
if
workdir:
17
os.chdir( workdir )
18
19
# This macro generates a Controlbar menu.
20
# To execute an item, click with the left mouse button.
21
# To see the HELP of a button, click on the right mouse button.
22
23
ROOT.gStyle.SetScreenFactor(1)
# if you have a large screen, select 1.2 or 1.4
24
25
bar = ROOT.TControlBar(
'vertical'
,
'Demos'
, 10, 10 )
26
27
# The callbacks to python work by having CINT call the python interpreter through
28
# the "TPython" class. Note the use of "raw strings."
29
bar.AddButton(
'Help on Demos'
,
r'TPython::Exec( "execfile( \'demoshelp.py\' )" );'
,
'Click Here For Help on Running the Demos'
)
30
bar.AddButton(
'browser'
,
r'TPython::Exec( "b = ROOT.TBrowser()" );'
,
'Start the ROOT browser'
)
31
bar.AddButton(
'framework'
,
r'TPython::Exec( "execfile( \'framework.py\' )" );'
,
'An Example of Object Oriented User Interface'
)
32
bar.AddButton(
'first'
,
r'TPython::Exec( "execfile( \'first.py\' )" );'
,
'An Example of Slide with Root'
)
33
bar.AddButton(
'hsimple'
,
r'TPython::Exec( "execfile( \'hsimple.py\' )" );'
,
'Creating histograms/Ntuples on file'
,
"button"
)
34
bar.AddButton(
'hsum'
,
r'TPython::Exec( "execfile( \'hsum.py\' )" );'
,
'Filling Histograms and Some Graphics Options'
)
35
bar.AddButton(
'formula1'
,
r'TPython::Exec( "execfile( \'formula1.py\' )" );'
,
'Simple Formula and Functions'
)
36
bar.AddButton(
'surfaces'
,
r'TPython::Exec( "execfile( \'surfaces.py\' )" );'
,
'Surface Drawing Options'
)
37
bar.AddButton(
'fillrandom'
,
r'TPython::Exec( "execfile( \'fillrandom.py\' )" );'
,
'Histograms with Random Numbers from a Function'
)
38
bar.AddButton(
'fit1'
,
r'TPython::Exec( "execfile( \'fit1.py\' )" );'
,
'A Simple Fitting Example'
)
39
bar.AddButton(
'multifit'
,
r'TPython::Exec( "execfile( \'multifit.py\' )" );'
,
'Fitting in Subranges of Histograms'
)
40
bar.AddButton(
'h1draw'
,
r'TPython::Exec( "execfile( \'h1draw.py\' )" );'
,
'Drawing Options for 1D Histograms'
)
41
bar.AddButton(
'graph'
,
r'TPython::Exec( "execfile( \'graph.py\' )" );'
,
'Example of a Simple Graph'
)
42
bar.AddButton(
'gerrors'
,
r'TPython::Exec( "execfile( \'gerrors.py\' )" );'
,
'Example of a Graph with Error Bars'
)
43
bar.AddButton(
'tornado'
,
r'TPython::Exec( "execfile( \'tornado.py\' )" );'
,
'Examples of 3-D PolyMarkers'
)
44
bar.AddButton(
'shapes'
,
r'TPython::Exec( "execfile( \'shapes.py\' )" );'
,
'The Geometry Shapes'
)
45
bar.AddButton(
'geometry'
,
r'TPython::Exec( "execfile( \'geometry.py\' )" );'
,
'Creation of the NA49 Geometry File'
)
46
bar.AddButton(
'na49view'
,
r'TPython::Exec( "execfile( \'na49view.py\' )" );'
,
'Two Views of the NA49 Detector Geometry'
)
47
bar.AddButton(
'file'
,
r'TPython::Exec( "execfile( \'file.py\' )" );'
,
'The ROOT File Format'
)
48
bar.AddButton(
'fildir'
,
r'TPython::Exec( "execfile( \'fildir.py\' )" );'
,
'The ROOT File, Directories and Keys'
)
49
bar.AddButton(
'tree'
,
r'TPython::Exec( "execfile( \'tree.py\' )" );'
,
'The Tree Data Structure'
)
50
bar.AddButton(
'ntuple1'
,
r'TPython::Exec( "execfile( \'ntuple1.py\' )" );'
,
'Ntuples and Selections'
)
51
bar.AddButton(
'rootmarks'
,
r'TPython::Exec( "execfile( \'rootmarks.py\' )" );'
,
'Prints an Estimated ROOTMARKS for Your Machine'
)
52
bar.AddSeparator()
# not implemented
53
bar.AddButton(
'make ntuple'
,
r'TPython::Exec( "execfile( \'mrt.py\' )" );'
,
'Convert a text file to an ntuple'
)
54
55
bar.Show()
56
57
ROOT.gROOT.SaveContext()
58
59
60
## wait for input to keep the GUI (which lives on a ROOT event dispatcher) alive
61
if
__name__ ==
'__main__'
:
62
rep =
''
63
while
not
rep
in
[
'q'
,
'Q'
]:
64
rep = raw_input(
'enter "q" to quit: '
)
65
if
1 < len(rep):
66
rep = rep[0]