| Revision History | ||
|---|---|---|
| Revision 1.1.1 | October 2008 | wlav |
| Minor fixes in the text. | ||
| Revision 1.1 | June 2006 | wlav |
| Updates for ROOT production release 5.12. | ||
| Revision 0.1 -- 1.0 | June 2004 -- December 2005 | wlav |
| Details removed. | ||
Abstract
![]() | Note |
|---|---|
The document describes |
The python programming language is a popular, open-source, dynamic language
with an interactive interpreter.
Its interoperability with other programming languages, both for extending
python as well as embedding it, is excellent and many existing third-party
applications and libraries have therefore so-called "python bindings."
PyROOT provides python bindings for ROOT: it enables cross-calls from
ROOT/CINT into python and vice versa, the intermingling of the two
interpreters, and the transport of user-level objects from one interpreter to
the other.
PyROOT enables access from ROOT to any application or library that itself
has python bindings, and it makes all ROOT functionality directly
available from the python interpreter.
Table of Contents
It is assumed that the reader has a working knowledge of both ROOT and
python.
If not, then their respective websites
(http://root.cern.ch and
http://www.python.org, respectively) offer sufficient
introductory material not to repeat it here.
This document starts out by setting the stage with an
overview of what
PyROOT enables you, in general terms, to do.
The overview can be read like an executive summary: it is self-contained,
sufficient for a rough understanding, and all the details are taken care of in
subsequent parts of the text.
The article then moves on to some practical details: how to obtain, compile,
and setup PyROOT
(see Section 3, “Installation”),
as well as how to use it in your python sessions and scripts.
With the basics covered, there are several sections that address the boundary
cases of the bindings, and how they have been resolved with, hopefully, the
minimum amount of surprises and gotcha's.
These sections are required reading if you plan to write more complicated
scripts or want to do more than running simple interactive sessions.
The article concludes with
recipes on how to
work with certain ROOT specific features, and how to perform common ROOT
tasks in python.
These recipes double as reference material.
A glossary and a
brief
bibliography
are provided as well.