# Presentation: 504462

## ROOT at Fermilab

- Recommended for Physics Analysis for RUN II
- Will be used for CDF I/O (Robert Kennedy)
- More than just a PAW replacement
- Philippe Canal, Suzanne Panacek, Peter Malzacher, Elaine Lyons

**Notes:**
Refer to previous talk.

Robert Kennedy is currently working full time on development the CDFEvent Data Model. He has been helping in testing some of new or missing features of ROOT.

It is an Object Oriented Framework that provides amongst other things:
	hierarchical object database
	advanced statistical analysis tools
	visualization tools
	C++ interpreter.
Philippe Canal: 75%
Suzanne Panacek: 50%
Peter Malzacher: Visiting scientist, 100%
Elaine Lyons: Here for the summer 100%

## Concerns and Recommendations

- Creating an on-going collaboration with the ROOT development team
- General robustness and testing procedures
- CINT friendliness and support of standard C++
- Building procedures and Code availability (cvs repository)
- Documentation
- Dependencies between modules

**Notes:**
Fully functional but concerns regarding our environment and development need.  ROOT still development project not yet production. As seen later in the later those points have been at least partially addressed.

The first and probably most important step toward addressing this concern was to send somebody (me) spend a week at CERN.
 Mention that Fermilab sent someone (me) to CERN to work with Rene and Fons and that this was an important  part in forming a successful collaboration 
[We want the committee to be aware of and perhaps even endorse the concept
 of sending people to CERN!!]

Collaboration exist and work well
Makefile are available, cvs repository to come (summer?)
Test have been added, robustness have made a couple of quantum leaps (byte-count and fix to the de-coupling between command line and GUI)
CINT continually improving both message reporting and support for C++.  See further. Masa is EXTREMELY responsive.
 Fermilab is producing is a User Guide.

## Workshop Results

- Attended by all major US experiments
- Opened communication
- Clarified needs for improvements in ROOT
- Opened path to collaboration
- New workshop planned for next year
- Fermilab and ROOT team phone conferences

**Notes:**
STL container and strings
Robust and stable I/O system
includes request for enhancement simplification to the tree interface
Multi-thread support
SQL interface
Rootification of CLHEP and other libraries

Robustness and Stabilization of file format
Robustness of rootcint and interpreter
Better coupling of GUI and command line interface
Better error recovery mechanism
Add STL container and string to the streamer code.
Robustness and ease of use of the Tree
Forward compatibility (add byte-count)
Add an EventID concept for fast non-sequential access to Trees
NT GUI Support

## Workshop Top 5 List

- STL container and strings
- Robust and stable I/O system
- includes request for enhancement simplification to the tree interface
- Multi-thread support
- SQL interface
- Rootification of CLHEP and other libraries

**Notes:**
Robust and stable I/O:
	include addition of a quick way to access an event knowing only it ID and not its serial number in a tree.
	Include adding some more interface to allow for switching from
file to file. 

Other libraries includes CODE, EPIC, Mathlib

## Tasks Repartition

- Root Team
- Improvement in I/O sub-systems
- Robustness and error recovery in interpreter
- Graphical Interface
- Fermilab
- Improvement in parsing, script compilation, physical coupling
- CLHEP interfacing
- User Guide

**Notes:**
Robustness and Stabilization of file format
Robustness of rootcint and interpreter
Better coupling of GUI and command line interface
Better error recovery mechanism
Add STL container and string to the streamer code.
Robustness and ease of use of the Tree
Forward compatibility (add byte-count)
Add an EventID concept for fast non-sequential access to Trees
NT GUI Support

Solve the macro limitation of rootcint
Improve physical de-coupling of ROOT libraries
Rootification of part of the CLHEP library
Help in setting up the ROOT cvs repository
On the fly compilation of Root macro
ROOT User Guide
Help with self-describing format
Improve ROOT’s automatic documentation tools

## Fulfilled Requests

- STL support both from cint and root
- Namespace support
- I/O robustness improved
- Makefile for all the Run II platforms
- Test Harness has been introduced
- Cint is continually improving
- Better coverage of standard C++
- Better error message and error recovery

## Successful Collaborations

- Fixed pre-processors limitation in cint
- Writing a script compiler
- Various bug fixes
- Interfacing CLHEP with ROOT
- Reducing Physical Coupling

## Local Support

- Importing & Building new release for CDF and 	D0 environments (KCC compilation, KITS)
- Developing a User Guide
- Help for new users and developers (design, etc.)
- Tutorials and users education
- Exploring other needs (e.g. interaction with Java)

## Current Developments

- Very short term
- Complete support for STL classes and namespace
- Physical coupling reduction
- Medium term needs
- EventId to indirectly access entries in Trees
- Mechanism to handle open/close in file

## Conclusion

- Successful Collaboration
- Progress toward robustness
- Good response to CDF’s requirements