Download presentation
Presentation is loading. Please wait.
Published bySamantha Foster Modified over 10 years ago
1
http://lcgapp.cern.ch/project/pi/ Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003
2
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN DataSet wizards Detector/Event Display Data Browser Analysis job wizards Generic analysis Tools Exp.Frameworks ROOT LCGtools GRID GEANT4 POOLSEAL Distributed Data Store & Computing Infrastructure Externaltools Architecture Overview Consistent User Interface Coherent set of basic tools and mechanisms Software development and installation
3
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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. The interfaces should cover interactivity (the "physicist's desktop"), analysis tools, visualization, distributed analysis, grid portals.
4
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN Project Overview Physicist Interface (PI) started in mid Nov02 (Vincenzo Innocente) Review with experiments to define workplan Project proposal to SC2 end Jan03 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
5
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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.0 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
6
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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)
7
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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
8
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERNAIDA AIDA – Abstract Interfaces for Data Analysis Started in late 1999 (HepVis Workshop) Open collaboration, presently active teams from – Anaphe – JAS – OpenScientist Version 3.0 since Oct. 2002 – User level interfaces – Pointers to objects with factories LCG Physicist Interfaces (PI) Project Provides value semantics layer on top of AIDA 3.0 Same methods, just differently arranged – E.g., factory methods in constructors
9
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERNAIDA
10
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN PI Analysis Services AIDA PI_AIDA RootAnaphe Open Scientist POOL SEAL Analysis Tools Experimental Frameworks JAS
11
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN The Goals Interoperability Project Root 2D histogram on Anaphe 1d histogram Use Anaphe fitter in OpenScientist Exchange histograms between ROOT (C++) and Jas (Java) Interface to external applications Store AIDA histograms in POOL (connected to experiment specific data) Display AIDA histograms using EXCEL Framework to develop complex analysis tools Statistical comparison of data-sets Modeling parametric fit problems using a MonteCarlo approach
12
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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
13
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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; }; }
14
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN Example: Histogram #include #include "AIDA_Proxy/AIDA_Proxy.h" #include "AIDA/AIDA.h int main( int, char** ) { // Creating a histogram pi_aida::Histogram1D h1( "Example histogram.", 50, 0, 50 ); // Filling the histogram with random data std::srand( 0 ); for ( int i = 0; i < 1000; ++i ) { h1.fill( 50 * static_cast ( std::rand() ) / RAND_MAX ); } // Printing some statistical values of the histogram std::cout << "Mean:" << h1.mean() << std::endl; std::cout << "RMS:" << h1.rms() << std::endl; // Printing the contents of the histogram const AIDA::IAxis& xAxis = h1.axis(); for ( int iBin = 0; iBin < xAxis.bins(); ++iBin ) { std::cout << h1.binMean( iBin ) << " " << h1.binEntries( iBin ) << " " << h1.binHeight( iBin ) << std::endl; } return 0; }
15
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN Example: Fitting a histogram // create and fill the histogram … // Creating the function which is going to be fitted with the histogram data pi_aida::Function gaussFun("G"); // set parameters to starting values gaussFun.setParameter("mean", 50.); gaussFun.setParameter("sigma", 10.); gaussFun.setParameter("amp", 10.); // Creating the fitter (ChiSquare by default) pi_aida::Fitter fitter; // or: fitter(UnbinnedML) // Perform the fit AIDA::IFitResult& fitResult = *( fitter.fit( h1, gaussFun ) ); // Print the fit results std::cout << "Fit result : chi2 / ndf : " << fitResult.quality() << " / " << fitResult.ndf() << std::endl; for ( unsigned int i = 0; i < par.size(); ++i ) { std::cout << fitResult.fittedParameterNames()[i] << " = " << fitResult.fittedParameters()[i] << " +/- " << fitResult.errors()[i] << std::endl; }
16
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN Latest Release: 0.2.0 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_0.
17
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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... Gather user-requirements first
18
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN 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 ? … AIDA Workshop this week at CERN
19
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERNSummary 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 Workshop at CERN this week 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
20
1 GrdPP Meeting, July, 2003 Jakub Moscicki, CERN More Information PI homepage: http://lcgapp.cern.ch/project/pi documentation, CVS browser examples talks...
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.