AIDA (computing)
Encyclopedia
Abstract Interfaces for Data Analysis
(AIDA) is a set of defined interfaces and formats for representing common data analysis objects. The project was instigated and is primarily used by researchers in high-energy particle physics
.
As of 2011, the projects seems dormant, with last "recent news" on the project homepage dating from 2005.
The goals of the AIDA project are to define abstract interfaces
for common physics analysis objects, such as histograms, ntuples (or data trees
), fitters, I/O
etc. The importance of the interface concept is that a variety of different tools with different implementations can all support a uniform interface: this encourages modular design in data analysis packages and enables users to use their preferred implementation of a certain functionality without having to re-write existing code.
An additional benefit of AIDA is the specification of an XML
representation format for data objects, which can be written and read by AIDA-compliant applications. AIDA implementations exist for C++
, Java
and Python
.
Usage of AIDA interfaces can be found in the Geant4
examples.
Data analysis
Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...
(AIDA) is a set of defined interfaces and formats for representing common data analysis objects. The project was instigated and is primarily used by researchers in high-energy particle physics
Particle physics
Particle physics is a branch of physics that studies the existence and interactions of particles that are the constituents of what is usually referred to as matter or radiation. In current understanding, particles are excitations of quantum fields and interact following their dynamics...
.
As of 2011, the projects seems dormant, with last "recent news" on the project homepage dating from 2005.
The goals of the AIDA project are to define abstract interfaces
Abstraction layer
An abstraction layer is a way of hiding the implementation details of a particular set of functionality...
for common physics analysis objects, such as histograms, ntuples (or data trees
Tree (data structure)
In computer science, a tree is a widely-used data structure that emulates a hierarchical tree structure with a set of linked nodes.Mathematically, it is an ordered directed tree, more specifically an arborescence: an acyclic connected graph where each node has zero or more children nodes and at...
), fitters, I/O
I/O
I/O may refer to:* Input/output, a system of communication for information processing systems* Input-output model, an economic model of flow prediction between sectors...
etc. The importance of the interface concept is that a variety of different tools with different implementations can all support a uniform interface: this encourages modular design in data analysis packages and enables users to use their preferred implementation of a certain functionality without having to re-write existing code.
An additional benefit of AIDA is the specification of an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
representation format for data objects, which can be written and read by AIDA-compliant applications. AIDA implementations exist for C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
.
Usage of AIDA interfaces can be found in the Geant4
Geant4
Geant4 is a platform for "the simulation of the passage of particles through matter," using Monte Carlo methods. It is the successor of the GEANT series of software toolkits developed by CERN, and the first to use Object oriented programming . Its development, maintenance and user support are...
examples.
See also
- FreeHEPFreeHEPFreeHEP is an open source Java library designed to make programming high energy physics applications easier. While the name and main focus of the project is high energy physics, many self-contained APIs in the library are generic and suitable for non-physics applications.FreeHEP is distributed...
- Java Analysis StudioJava Analysis StudioJava Analysis Studio is an object oriented data analysis package developed for the analysis of particle physics data. The latest major version is JAS3.JAS3 is particularly notable for being a fully AIDA-compliant data analysis system...
- Geant4Geant4Geant4 is a platform for "the simulation of the passage of particles through matter," using Monte Carlo methods. It is the successor of the GEANT series of software toolkits developed by CERN, and the first to use Object oriented programming . Its development, maintenance and user support are...
- HippoDrawHippoDrawHippoDraw is a powerful object oriented statistical data analysis package written in C++, with user interaction via a Qt-based GUI and a Python scriptable interface...
- ROOTROOTROOT is an object-oriented program and library developed by CERN. It was originally designed for particle physics data analysis and contains several features specific to this field, but it is also used in other applications such as astronomy and data mining....
- OpenScientistOpenScientistOpenScientist is an integration of open source products working together to do scientific visualization and data analysis, in particular for high energy physics ....
External links
- AIDA home page
- AIDA-JNI — allows C++ programs to use any Java implementation of AIDA
- iAIDA — a C++ implementation of AIDA
- JAIDA — a Java implementation of AIDA
- PAIDA — a pure PythonPython (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
implementation of AIDA - Java Analysis Studio 3 — a Java-based data analysis system based on AIDA
- Hippodraw — a C++-based data analysis system with a Python interface which supports AIDA objects