Scripting Language:
A python interface will be added using these items in the design process.
(3 man months needed)
-
full featured scripting language
-
analysis tool's object model
-
extract data from events
-
express complex mathematical expressions
-
debugging facilities
-
interface the scripting language to dynamically linked compiled high level
languages
User Control:
The Python interface will provide those.
-
control functions
-
Mathematical operations
-
Results of analysis available to users
-
command line recall and interacive command line editing.
Data Selection:
The Python interface will provide those.
-
program selection criteria using extracted data
-
display selection criteria as text
Input/Output:
-
support its own object I/O format: YES
-
allow its own format object files to be read or written from compiled programs.:
YES
-
read or write object files in foreign formats: Can easily
be added.
-
write selected event objects to one or more output streams:
YES
-
object definition language and/or be able to define new object formats
programmatically: YES
-
read events in one format, convert and write them out in a different format:
YES
-
virtual streaming: Yes with very little work (thanks
to the efficiency of random access)
Numeric and Mathematical Functionality:
Additionnals high level functionnality can be provided by Python's add-ons.
-
accurate and precise numerical functionality, including double precision.:
YES
-
Analysis capabilities applied to fetched data as well as subsequent renditions:
YES
-
Functions operating on multiple data sets: Yes from C,
Not yet from GUI (will be added in GUI upgrade)
-
fit, parameterize, and calculate statistical quantities from data:
YES
-
user control of fitting algorithms. : YES (Minuit)
Offline Compatibility:
All of those will be available for both Python and C.
-
tailor the sequence of mathematical operations
-
ability to include external software in their analysis.
-
functionality of the analysis package linked into user defined code.
Prototyping:
-
prototyping of simple versions which can later be expanded upon. : may
need to translate Python to C
-
Prototyped sequences contain the full interface of an arbitrarily complex
version. : Yes