150 likes | 170 Views
P & AIDA. Vincenzo Innocente CERN/EP. Architecture Overview. Data Browser. Generic analysis Tools. GRID. Distributed Data Store & Computing Infrastructure. Analysis job wizards. LCG tools. Exp.Frameworks. POOL SEAL. GEANT4. ROOT. Detector/Event Display. External tools.
E N D
P & AIDA Vincenzo Innocente CERN/EP Vincenzo Innocente CERN/EP
Architecture Overview Data Browser Generic analysis Tools GRID Distributed Data Store & Computing Infrastructure Analysis job wizards LCG tools Exp.Frameworks POOL SEAL GEANT4 ROOT Detector/Event Display External tools DataSet wizards Software development and installation Coherent set of basic tools and mechanisms Consistent User Interface
LCG Physicist Interfaces • The LCG Application Architecture Blueprint identified the need for a consistent set of interfaces and tools by which physicists will directly use the software. • Areas to be covered are • interactivity (the "physicist's desktop"), • analysis tools, • visualization, • distributed analysis, • grid portals.
Project Overview • Physicist Interface (PI) started in mid Nov’02 • Review with experiments to define workplan • Project proposal to SC2 end Jan’03 • Five working areas identified • Analysis Services • Analysis Environment • Pool & Grid PI • Event & Detector Visualization • Infrastructures & Documentation • Not all items have same priority: • Analysis Services first
Work packages details • WP 1 – Analysis Services • AIDA interfaces: revision and evaluation • Implementation: existing C++ native & new ROOT-based. • New “AIDA” developer level interfaces for SEAL and POOL components: whiteboard, collections... • Blueprint compliant analysis toolset • first release 0.1.0, May 2003, latest update: 0.2.1 • WP 2 – Analysis Environment • Basic interactive analysis application: based on SEAL with python binding, plugin manager, distributed interfaces • Visualization services: interactive canvas, Model-Document-View • Bridge to and from ROOT: interoperability at cint prompt, etc. • in collaboration with SEAL, POOL
Work packages details • WP 3 – POOL & GRID Interfaces • Collections & Metadata • File Catalog and Replicas (both local and remote) • Job Wizard (preparation, submission, validation) • Job Helpers (monitoring, error recovery, resource discovery) • in the Requirements & Analysis Phase (RTAG launched by SC2) • WP 4 – Event Display and Detector Visualization • HepVis: review, adjust, extend (to cover LCG and Geant4 needs) • Integrate into interactive analysis environment • Geant4 visualization application • In collaboration with the experiments (aim for common product at a later stage) • WP 5 – Infrastructure (SPI)
Analysis Services • AIDA • Review, adapt, extend Interface to Data Analysis • Root implementation of AIDA • Provide an implementation of the Interfaces to Data Analysis, as defined by AIDA, based on Root. • AIDA interface to SEAL and POOL services • Use SEAL and POOL to provide AIDA with services such as plugin manager, object whiteboard and persistency. • Blueprint compliant Analysis tool set • Statistics analysis tools based on AIDA interface • Mainly external contributions
PI Analysis Services SEAL PI_AIDA POOL AIDA Analysis object Manipulator Analysis Tools Open Scientist Root JAS Anaphe
The Goals • Interoperability • Project Root 2D histogram on Anaphe 1d histogram • Use Anaphe fitter in OpenScientist • Use OpenScientist plotter with any AIDA histogram • Exchange histograms between ROOT (C++) and Jas (Java) • Extensions • Generic manipulator such as projectors, rebinners, etc • Build and manipulate aggregate of objects (CANs) • Interface to external applications • Store AIDA histograms in POOL (connected to experiment specific data) • Display AIDA histograms using HippoDraw or EXCEL • Framework to develop complex analysis tools • Statistical comparison of data-sets • Modelling parametric fit problems using a MonteCarlo approach
Milestone 1: AIDA Proxy layer • “Value semantics” for AIDA objects • Implemented using the “Proxy” pattern, very easy ! • Based only on AIDA Interfaces no dependency on a given implementation • Initially “hiding” of AIDA object management, later: use of SEAL whiteboard • Keeping the functionality and signatures of AIDA • “re-shuffling” of factory methods to object ctors • Use of SEAL plugin mechanism to select implementation • Examples on how to use with web-docs • Will be basis for user-review and further evaluation • Any feedback will be propagated to AIDA team
AIDA_Proxy in more detail • Proxy to IHistogram1D namespace pi_aida { class Histogram1D : public AIDA::IHistogram1D { public: // Constructor following the factory-create method (example) Histogram1D(std::string title, int nBins, double xMin, double xMax); // as an example the fill method: bool fill ( double x, double weight = 1. ) { if (rep == 0) return 0; else return rep-> fill ( x , weight ); } // other methods are also mostly inlined … private: AIDA::IHistogram1D * rep; }; }
Latest Release: 0.2.1 • dynamic implementation loading: • AnalysisServices/AIDA_Proxy is a proxy of the AIDA interfaces. It uses now the SEAL PluginManager to choose at runtime the corresponding implementation of the AIDA interfaces. • ROOT implementation and ROOT I/O • AnalysisServices/AIDA_Root provides an AIDA implementation for Root Histograms. Available now only for 1D Histograms and Profiles (1D). • XML I/O • AnalysisServices/AIDA_Proxy implements Proxy_Store, which gives the user the possibility to write AIDA objects (all types of Histograms, plus DataPointSets and Tuples) in a compressed XML file following a format specified by AIDA. (AIDA XML format) • configuration • based on SEAL_0_3_1.
Further plans • Intergration with other frameworks/implementations • hippoDraw – visualisation – done for 1D histograms! • experimental frameworks • fitting: use minuit C++ from SEAL • Interoperability via “developer level” Interfaces • SEALs object plugin manager, whiteboard • POOL persistency • Design “Canned ANalysis” objects (CANs) • Container to hold various “related” AIDA objects • Histo(s) for data, Histo(s) for MC, Fit(s) to either ... • Ability to manage them in a consistent form • Closer look to real-life use-case first • User involvement essential!
User Review of AIDA • Enhance AIDA • ErrorPropagation Functor to allow correct (and/or user specified) treatment of error propagation in profile histos and DataPointSetsReview • Review of AIDA (Proxies) by users in the experiments • Need feedback on what exists now ! • Questions to be answered: • Are the interfaces complete ? • What features would you like to add/change ? • Are the methods and signatures clear enough ? • What are the specific needs (use-cases) for the CANs ? • … • We hope answers will come this week…
Summary • PI projects aims to provide the physicist with a consistent interface to analysis software • Work started on high priority items such as analysis services based on AIDA • First release in May • Review of AIDA in progress • Goal: provide a fully consistent interface and a set of low level tools that satisfy the requirements of both end-users and developers on high-level tools • RTAG on the interface to GRID and data-storage services will start soon • Lower priority items (such as Visualization) waiting for contribution by the experiments