ROOT
6.07/01
Reference Guide
ROOT Home Page
Main Page
Tutorials
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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: To see the output, click begin_html <a href="gif/demos.gif" >here</a> end_html
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]