Position of the Joint Project Run II Steering Committee with Respect to the Pasrec Recommendations Summary and Conclusions ------------------------ The Physics Analysis Software Recommendations Working Group (PASREC) completed its initial report and made recommendations for the Physics Analysis Tools to be supported for Run II. The Steering Committee acknowledges the efforts of this working group as well as the two previous working groups (PASFRG and PASSUMA) and thanks the members for their hard work that led to the final report. In acceptance of the recommendations from PASREC, we have started negotiations with CERN towards the goal of having ROOT be a supported package for physics analysis by CDF and D0 for Run II. We give details of the basis for these negotiations below. We will also be proceeding to understand where and how an initial prototype project using commercial analysis tools can be best established and continuing discussions with CERN on collaboration with LHC analysis tool development. Recommendation with respect to ROOT ---------------------------------------------------------- The Steering Committee agrees that ROOT today provides the overall functionality needed for final physics analyses and it is for such applications that it would receive support. It is not a requirement to support ROOT fully integrated into the reconstruction or first pass analysis frameworks, nor is it a requirement to support full physics analyses done using the scripting interface. However, it is clear that there are several areas of significance to CDF and D0 use of such a tool where ROOT lacks long term robustness and maintainability as well as the full functionality required. The Computing Division Management, together with the Run II Steering Committee and Fermilab management are therefore proceeding to: - establish that ROOT will be a usable, supported, and maintainable physics analysis product for Run II and ensure that the manpower needed to achieve this can be supplied; - define where ROOT does not currently meet the needs of D0 and CDF and the priorities to have these deficiencies addressed; - start discussions with the ROOT development team to develop a mutually acceptable plan to address the needed functional changes and additions; - start negotiations with CERN for the legal use, building and distribution of the ROOT sources throughout Run II for the duration of the need to use the software. It will take time to come to an agreement for collaboration acceptable to Fermilab and CERN management, CDF and D0, and the ROOT team. It is conceivable that part of this agreement could include commitment of manpower from Fermilab on the joint support and further development of the product to support the needs of analysis of Run II data. However, this agreement needs to be worked out before we can adopt ROOT as a supported physics analysis package for Run II. In the interim period we expect that CDF and D0 will continue to evaluate and prototype their analyses using ROOT. In recognition of this the Computing Division is assigning a person to work with the experiments to build ROOT locally for the Fermilab Run II specific platforms and compilers (KAI C++ on IRIX 6.2, OSF1 and Linux) and make these versions available on KITS. This person will act as a technical liaison between the Fermilab users and the ROOT team and will help coordinate with the ROOT team on Fermilab issues, although users of ROOT will continue to use the usual mechanisms for support via the ROOT support mail aliases. In addition to any use of ROOT for physics analysis, both D0 and CDF have adopted parts of the ROOT system in other areas of their offline software: D0 are using CINT to parse their persistent classes as part of the experiments D0OM I/O mechanism (but without using CINT in its role as a full C++ language interpreter); CDF are using ROOT I/O as their event persistency format. D0 have already made enhancements to CINT to accommodate their data model, which have been fed back to the CINT developer for inclusion in the standard release. CDF will need to continue to work closely with the ROOT development team to integrate ROOT I/O into the production framework. Both experiments can be expected to work out further agreed upon changes and additions to meet their specific needs. We anticipate including an understanding of the separate support and compatability issues for these uses as part of our overall discussions. The Steering Committee has identified the following priorities for successful use of ROOT for Run II A) Commitment to a stable, robust system for the Run II experiments well before data taking. This needs to be addressed specifically as follows: There must be the ability to have some measure of guaranteed response to bugs and problem reports. Given the large amount of data that D0 and CDF expect to store in the ROOT data format, Fermilab needs to have ongoing participation in discussions and decisions on any changes that will affect the I/O and other interfaces to ROOT and the kernel of the software. Special consideration is required to provide backward compatability in the implementation of any such changes. In support of the Run II experiment commissioning and data taking phases we will require short term stability of the system as well as compatability of interfaces and data formats for the longer term. B) A well defined, maintained, published, implemented and stable interface between CINT and the ROOT kernel. Both CDF and D0 have a requirement to define and use a language to describe their data model, to generate header files and database mappings, and use existing experiment code within the ROOT system. CINT - the ROOT C++ interpreter - supports insufficient syntax and functionality to meet this need. The Steering Committee believes that the manpower needed to extend or rewrite CINT at Fermilab would be excessive. Our requirement, therefore, is for ROOT to be decoupled from CINT with a well defined and maintained interface, and/or the implementation of the data dictionary interface with the ROOT kernel to be made abstract. Given that this is the case, we can plan to develop a separate or additional layer to meet our needs for data description and interfacing with ROOT. C) Easy and timely mechanisms for the incorporation of and access to fixes and additions to the ROOT code needed by Fermilab users. The ROOT source code and build structure is currently based on CMZ. Fermilab is collaborating with the ROOT team to develop scripts to take a regular (nightly if necessary) snapshot of the source code and load it into cvs to allow building and distribution of the software locally for the compilers and operating systems supported for Run II. The Fermilab support team will need access to the root sources through cvs to be ongoing throughout the use of the product for Run II. The main source repository will need to be in cvs if we are to contribute code and fixes to the product; and eventually we will require write access. In any event, CDFand D0 will need fixes to be available as part of the local product at Fermilab in a timely fashion.