547.ppt - Overview of AIDA by suchenfz

VIEWS: 10 PAGES: 20

									AIDA                       Introduction           http://aida.freehep.org
Abstract Interfaces for Data Analysis


    “The goal of the AIDA project is to define abstract
    interfaces for common physics analysis objects, such as
    histograms, ntuples, fitters. The adoption of these
    interfaces makes it easier for developers and users to
    select and use different tools without having to learn
    new interfaces or change their code. In addition it is
    possible to exchange data (objects) between AIDA
    compliant applications through a standard XML format.”




Massimiliano Turri, SLAC       CHEP, La Jolla, 24-28 March 2003             1
AIDA                           Features
Abstract Interfaces for Data Analysis

          Only pure virtual methods for analysis objects
           AIDA defines behavior, analysis tool provides
            implementation

          Object factories
           independence of user code from AIDA implementation
           easy to switch implementations
               IAnalysisFactory af = IAnalysisFactory.create();




Massimiliano Turri, SLAC        CHEP, La Jolla, 24-28 March 2003   2
AIDA                          Advantages
Abstract Interfaces for Data Analysis
           Use same code with any AIDA-compliant analysis tool.


                                         A                 Analysis tool 1

           User code                     I
           (e.g. GEANT4)                 D
                                                           Analysis tool 2
                                         A


           Used for experiment’s code, e.g. reconstruction or
           individual user’s analysis
             User needs to learn only one set of interfaces.

           Interoperability of analysis tools.
Massimiliano Turri, SLAC          CHEP, La Jolla, 24-28 March 2003           3
AIDA                       Speaking of GRID…                             GRID

Abstract Interfaces for Data Analysis
                                                                         Node
                                                            GRID-land
                                                                             AIDA
                                                          GRID
                                                                        Analysis
                                                          Node
                                                                        Objects
                                                              AIDA

            Distributed data analysis:                   Analysis
               GRID enabled AIDA implementation.
                                                         Objects
        

              No need for user to change code.

            Many places within the GRID where abstract interfaces
            could be adopted.
              AIDA working group may be a good model to follow




Massimiliano Turri, SLAC          CHEP, La Jolla, 24-28 March 2003                  4
AIDA                          History
Abstract Interfaces for Data Analysis

           Initial idea formed at HepVis-99 workshop at
           Orsay.
           Informal AIDA discussions at CERN in 2000
           AIDA workshops:
            January 2001 - Paris/Orsay
            April 2001 - Boston (preceding HepVis 2001)
            June 2002 – CERN
           Informal meetings
            e.g. during Geant4 meetings and V.C.




Massimiliano Turri, SLAC      CHEP, La Jolla, 24-28 March 2003   5
AIDA Organization and Developers
Abstract Interfaces for Data Analysis
           Open source project

           No formal collaboration/author list
             currently an informal CERN-LAL-SLAC effort

           Interfaces are designed by discussion and (eventual)
           consensus
             Takes some time, but result is well though out and robust

           Past and present contributors:
             Guy Barrand, Pavel Binko, Grzegorz Chwajol, Mark
              Donszelmann, Wolfgang Hoschek, Tony Johnson, Emmanuel
              Medernach, Dino Ferrero Merlino, Lorenzo Moneta, Jakub
              Moscicki, Ioannis Papadopoulos, Andreas Pfeiffer, Max Sang,
              Victor Serbo, Max Turri


Massimiliano Turri, SLAC         CHEP, La Jolla, 24-28 March 2003         6
AIDA                              Status
Abstract Interfaces for Data Analysis

           AIDA Version 3.0 (Oct 2002) second end-user
           release.
            AIDA 2.2 first end-user release

           Interfaces available in C++ and Java
            automatically generated with AID (see FreeHEP Java Libraries talk)
                easy to add more languages




Massimiliano Turri, SLAC          CHEP, La Jolla, 24-28 March 2003          7
AIDA
Abstract Interfaces for Data Analysis




             Interfaces Overview




Massimiliano Turri, SLAC   CHEP, La Jolla, 24-28 March 2003   8
AIDA                           IHistogram
Abstract Interfaces for Data Analysis
       Histograms           fixed and variable width binning
                            filling

                            access to overall statistics (entries, mean, rms)

                            bin information (center, entries, height, error)

                            arithmetic (add, multiply, divide)

                            projections

                            slices




Massimiliano Turri, SLAC       CHEP, La Jolla, 24-28 March 2003            9
AIDA                           ICloud
Abstract Interfaces for Data Analysis
       Histograms
       Clouds               unbinned histograms
                            scatter plots

                            auto-conversion to histograms




Massimiliano Turri, SLAC       CHEP, La Jolla, 24-28 March 2003   10
AIDA                           IProfile
Abstract Interfaces for Data Analysis
       Histograms
       Clouds
       Profiles             fill 1D and 2D profile plots
                            access to bin statistics (height, mean , rms)

                            access to overall statistics (entries, mean rms)

                            scaling




Massimiliano Turri, SLAC       CHEP, La Jolla, 24-28 March 2003           11
AIDA                       IDataPointSet
Abstract Interfaces for Data Analysis
       Histograms
       Clouds
       Profiles
       Data Point Sets
                              sets of n-dimensional points with errors
                              add, remove, get points

                              scaling of values and errors

                              full mathematical arithmetic (+-*/)

                              simple error propagation




Massimiliano Turri, SLAC         CHEP, La Jolla, 24-28 March 2003         12
AIDA                            ITuple
Abstract Interfaces for Data Analysis
          Histograms
          Clouds
          Profiles
          Data Point Sets
          Ntuples            fill and retrieve data
            Evaluators      support folder-like structure

            Filters         projections to histograms, clouds and profiles

                              of “evaluated” quantities with “filtering”
                             chaining, merging




Massimiliano Turri, SLAC        CHEP, La Jolla, 24-28 March 2003          13
AIDA                            IPlotter
Abstract Interfaces for Data Analysis
          Histograms
          Clouds
          Profiles
          Data Point Sets
          Ntuples
            Evaluators
            Filters
          Plotting           create plot area, regions
                             control styles (title, text, markers, lines etc.)




Massimiliano Turri, SLAC        CHEP, La Jolla, 24-28 March 2003              14
AIDA                             IFitter
Abstract Interfaces for Data Analysis
          Histograms
          Clouds
          Profiles
          Data Point Sets
          Ntuples
                                fitting to all the data storage types
             Evaluators
                            
      
                                IFitResult result = fitter.fit(data, function)
            Filters         change fit method (2,max. Likelihood, etc)
          Plotting           change optimizer (Minuit, etc)

                             control parameters (bounds, fix, step, etc.)
          Fitter
                             set constraints

                             create scans and contours

                             use function’s analytical gradient




Massimiliano Turri, SLAC         CHEP, La Jolla, 24-28 March 2003                15
AIDA                            IFunction
Abstract Interfaces for Data Analysis
          Histograms
          Clouds
          Profiles
          Data Point Sets
          Ntuples
            Evaluators
            Filters
          Plotting           create scripted or built-in functions
          Fitter             access/change parameter’s values

                             evaluate function and its gradient
          Functions          support of PDFs (normalized functions over a range)




Massimiliano Turri, SLAC         CHEP, La Jolla, 24-28 March 2003             16
AIDA                            ITree
Abstract Interfaces for Data Analysis
          Histograms
          Clouds
          Profiles
          Data Point Sets
          Ntuples
            Evaluators
            Filters
          Plotting
          Fitter
          Functions
          IO                 storage for analysis objects
                             XML interchange format standard (.aida files)

                             no APIs; storage is application specific




Massimiliano Turri, SLAC        CHEP, La Jolla, 24-28 March 2003          17
AIDA                         Example code
Abstract Interfaces for Data Analysis
 IAnalysisFactory      aF        =   IAnalysisFactory.create();
 ITree                 tree      =   aF.createTreeFactory().create();
 IHistogramFactory     histF     =   aF.createHistogramFactory( tree );
 IFitFactory           fitF      =   aF.createFitFactory();
 IFitter               fitter    =   fitF.createFitter("Chi2");
 IPlotter              plotter   =   aF.createPlotterFactory().create("Plot");

 IHistogram1D gaussHist     = histF.createHistogram1D("gaussHist",
                                               "Gaussian Histogram",100,-5,5);

 Random r = Random();
 for (i=0; i<10000; i++)
   gaussHist.fill(r.nextGaussian());

 IFitResult chi2Fit = fitter.fit(gaussHist,"g");

 plotter.createRegions();
 plotter.region(0).plot( gaussHist );
 plotter.region(0).plot( chi2Fit.fittedFunction() );

 plotter.show();

Massimiliano Turri, SLAC              CHEP, La Jolla, 24-28 March 2003       18
AIDA                       Tools and Users
Abstract Interfaces for Data Analysis
         Three implementations are available within:
          Anaphe/Lizard (C++)
                http://anaphe.web.cern.ch/anaphe
            Open Scientist (C++)
                http://www.lal.in2p3.fr/OpenScientist
            JAIDA/JAS (Java) + AIDA-JNI 3.0 (C++)
                http://java.freehep.org/lib/freehep/doc/aida

           GEANT4 adopted AIDA for analysis
             Advanced examples use AIDA
             See Geant4 workshop held in Feb. 2002
                http://geant4.slac.stanford.edu/UsersWorkshop



Massimiliano Turri, SLAC        CHEP, La Jolla, 24-28 March 2003   19
AIDA                                Outlook
Abstract Interfaces for Data Analysis
           AIDA has:
             a comprehensive set of interfaces for data analysis
             three separate implementations

           AIDA needs:
             feedback

           AIDA news:
             LHC Computing Grid (LCG) Application Area adopted the AIDA
              interfaces in the context of their Architectural Blueprint
                collaborate with the AIDA team to further develop the interfaces

             LCG PI (Physicist Interface) project
              http://lcgapp.cern.ch/project/pi/ started on a "value-semantic" layer
              based on the AIDA interfaces
                AIDA 4.0 ?




Massimiliano Turri, SLAC             CHEP, La Jolla, 24-28 March 2003               20

								
To top