Run II Physics Analysis Software Requirements Checklist

DATA ACCESS

  1. Access rates (online):
  2. Access rates (offline): 3 times HBook.
  3. Serial vs random access: both are available.  (random is in log(N))
  4. Granularity of access: Column.  Size of column chunk customizable at creation (63K)
  5. Foreign Input and Output Formats: API is available for this.
  6. Specialized output formats: All information about objects are retrievable from API

DATA ANALYSIS

    Scripting Language:

    A python interface will be added using these items in the design process.  (3 man months needed)
     

  1. full featured scripting language
  2. analysis tool's object model
  3. extract data from events
  4. express complex mathematical expressions
  5. debugging facilities
  6. interface the scripting language to dynamically linked compiled high level languages
  7. User Control:

    The Python interface will provide those.
     

  8. control functions
  9. Mathematical operations
  10. Results of analysis available to users
  11. command line recall and interacive command line editing.
  12. Data Selection:

    The Python interface will provide those.
     

  13. program selection criteria using extracted data
  14. display selection criteria as text
  15. Input/Output:

     

  16. support its own object I/O format:    YES
  17. allow its own format object files to be read or written from compiled programs.:    YES
  18. read or write object files in foreign formats:    Can easily be added.
  19. write selected event objects to one or more output streams:    YES
  20. object definition language and/or be able to define new object formats programmatically:    YES
  21. read events in one format, convert and write them out in a different format:    YES
  22. virtual streaming:    Yes with very little work (thanks to the efficiency of random access)
  23. Numeric and Mathematical Functionality:

    Additionnals high level functionnality can be provided by Python's add-ons.
     

  24. accurate and precise numerical functionality, including double precision.:    YES
  25. Analysis capabilities applied to fetched data as well as subsequent renditions:    YES
  26. Functions operating on multiple data sets:    Yes from C, Not yet from GUI (will be added in GUI upgrade)
  27. fit, parameterize, and calculate statistical quantities from data:    YES
  28. user control of fitting algorithms. :    YES (Minuit)
  29. Offline Compatibility:

    All of those will be available for both Python and C.
     

  30. tailor the sequence of mathematical operations
  31. ability to include external software in their analysis.
  32. functionality of the analysis package linked into user defined code.
  33. Prototyping:

     

  34. prototyping of simple versions which can later be expanded upon. : may need to translate Python to C
  35. Prototyped sequences contain the full interface of an arbitrarily complex version. : Yes

DATA PRESENTATION

          The Graphical Interface need to be upgraded to handle column wise ntuples, operations on multiple histograms,  and improve the 'glue' between components (Histoscope, Nfit). (6 man months)
  1. Interactive visualization:     Yes
  2. Presentation quality graphical output:     Yes
  3. Formal publication of graphical output:     No, output postscript can be re-formatted from Adobe Illustrator.

USABILITY

  1. Batch vs. interactive processing:     Yes
  2. Sharing data structures:     Yes
  3. Shared access by several clients:  Yes (very good)
  4. Parallel processing (using distinct data streams):     Yes
  5. Debugging and profiling:     Yes (python and C)
  6. Modularity (user code):     Yes
  7. Modularity (system code):     Yes
  8. Access to source code:     Yes
  9. Robustness:     Good
  10. Web based documentation:  Yes
  11. Use of standards:     Yes
  12. Portability:     Pretty good (have been ported on all needed platforms)
  13. Scalability:     Good
  14. Performance:     Good
  15. User Friendliness:     Very Good