Run II Physics Analysis Software Requirements
Checklist : ROOT
DATA ACCESS
-
Access rates (online): ????
-
upports shared memory option
-
supports sockets
-
Access rates (offline) : 5-6 MBytes/sec
demonstrated on Linux/Pentium w/o serious optimization
-
Serial vs random access: supports both
modes
-
Granularity of access:
leaf of the tree
-
Foreign Input and Output Formats:
-
h2root (PAW ntuple --> ROOT tree)
-
g2hroot: conversion of GEANT3 hit banks into ROOT format
-
Specialized output formats: several
standard objects:
-
ROOT Tree (ntuple),
-
ROOT histogram
-
ROOT containers (TClonesArray, for example)
DATA ANALYSIS
Scripting Language: C/C++ interpreted language
(CINT)
-
full featured scripting language : YES
-
available, its major weakness is the opposite side of its strongest
advantage C++ is much more difficult to interpret than other languages
like Python or Java, so not all the features of C++ are supported
at the interactive level
-
analysis tool's object model :
-
data are stored in the external files in ROOT Trees,
-
primary interface: command line (interactive scripts, shared libraries)
-
GUI interface / GUI builder
-
extract data from events :
-
express complex mathematical expressions : YES
-
scripting language is C+(+), so all the math is
available (TMath class)
-
debugging facilities: YES
-
CINT supports primitive level of debugging, one can
step through the interpreted code
-
insert cout/printf statements
-
interface the scripting language to dynamically linked compiled high
level languages
-
TSystem::Load(char* filename) loads in an arbitrary
shared library. An interface should be provided though. Automatic tool
for generating the interfaces (rootcint) exists
User Control:
-
control functions: YES
-
interface to operating system
-
Mathematical operations: YES
-
Results of analysis available to users: YES
-
ROOT file
-
.ps, .eps, .gif, .C (ROOT macro)
-
command line recall and interactive command line editing: YES
Data Selection:
-
program selection criteria using extracted data: YES
-
display selection criteria as text : YES
-
normally stored in CINT scripts
Input/Output:
-
support its own object I/O format: YES
-
non-templated object format, objects are supposed to be derived from the
base class TObject
-
allow its own format object files to be read or written from compiled
programs: YES
-
read or write object files in foreign formats: YES
-
write selected event objects to one or more output streams: YES
-
supported, several output files may be opened at a time:
TFile f1("a.root","RECREATE")
TFile f2("b.root","RECREATE")
-
object definition language and/or be able to define new object formats
programmatically: YES
- interpreted language it C++
-
read events in one format, convert and write them out in a different
format: YES
-
virtual streaming: YES
Numeric and Mathematical Functionality:
-
accurate and precise numerical functionality, including double precision:
YES
- all math operations implemented in double precision
-
Analysis capabilities applied to fetched data as well as subsequent
renditions
-
Functions operating on multiple data sets
-
fit, parameterize, and calculate statistical quantities from data :
YES
- uses MINUIT for fitting (the package tested and polished
by the HEP community
over the decades
- all the functionality of HBOOK package including histogram fitting
is already available
-
user control of fitting algorithms: YES
- MINUIT has an extensive interactive interface
- source codes are available
Offline Compatibility:
-
tailor the sequence of mathematical operations : YES
-
ability to include external software in their analysis: YES
-
also export CINT scripts into offline code
-
functionality of the analysis package linked into user defined code:
YES
Prototyping:
-
prototyping of simple versions which can later be expanded upon: YES
-
Prototyped sequences contain the full interface of an arbitrarily complex
version: YES
-
prototyped methods could be immediately used in the
offline code
DATA PRESENTATION
-
GUI builder is available,
-
simple graphics editor
Presentation quality graphical output: YES
-
TPostscript class (.ps, .eps)
-
.GIF format
Formal publication of graphical output: YES
-
LaTeX interface is coming
USABILITY
-
Batch vs. interactive processing: YES
-
wnteractive session: >root
-
batch mode
: > root -b script
-
Sharing data structures: YES
-
Shared access by several clients: YES
-
Parallel processing (using distinct data streams):
YES
-
Debugging and profiling:
-
debugging of the scripts
-
profiling of the compiled code
-
Modularity (user code): YES
-
Modularity (system code): YES
-
Access to source code: YES
-
Robustness: to be improved
-
Web based documentation: YES
-
Use of standards:
-
Portability: YES
-
all UNIX flavours
-
Windows (95/NT)
-
Mac OS
-
Scalability: YES
-
based on the consideration of scalability CDF has decided
to write event data in ROOT format
-
Performance: better than HBOOK
-
User Friendliness: to be improved
-
this is our first experience with large scale
C++ product