150 likes | 363 Views
Analysis with Geant4 and AIDA. Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson. What is AIDA?. AIDA = Abstract Interfaces for Data Analysis. Analysis Tool 1. AIDA. User Code (e.g. Geant 4). Analysis Tool 2. Why AIDA?. Goal
E N D
Analysis with Geant4 and AIDA Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson
What is AIDA? • AIDA = Abstract Interfaces for Data Analysis Analysis Tool 1 AIDA User Code (e.g. Geant 4) Analysis Tool 2
Why AIDA? • Goal • Provide the user with a powerful set of interfaces which can be used regardless of which underlying analysis tool they are using. • Advantages • The user will only need to learn one set of interfaces even if they use more than one tool. • By pooling the experiences of several different development teams we will be able to develop a more complete solution to the data analysis problem. • Different analysis tools built using AIDA will be able to interoperate, for example by exchanging objects in a common storage format (initially XML). • Currently two versions of the AIDA interfaces exist, • one for Java • one for C++ • The two interfaces are as identical as the underlying languages will permit.
Who is AIDA? • Many people have contributed • Key Players • Guy Barrand (LAL) • Mark Dönszelmann (CERN/SLAC) • Tony Johnson (SLAC) • Andreas Pfeiffer (CERN) • Tools Represented • Anaphne/LHC++/Lizard, GAUDI, FreeHEP, JAS, Open Scientist, COLT, WIRED
What does AIDA currently support? • Histograms (1D, 2D and 3D) • Filling; Data Extraction; Arithmetic; Slices; Projections • Clouds (unbinned histograms) (1D, 2D and 3D) • Rebinnable histograms; scatterplot; unbinned fits. • N-Tuples (with varying types of columns) • Filling; Data Extraction; Filters; Evaluators; Projections • Functions and Fitting (still needs work) • Plotter • Display of Histograms, Clouds, Functions; Regions, Overlays • Trees • Folders; storage/persistency (.aida, database…) • XML Persistency (.aida files)
What AIDA Compliant Tools exist? • Current Version of AIDA is 2.2.1 • Tools • C++ • Open Scientist 8.0 http://www.lal.in2p3.fr/OpenScientist/ • Anaphne http://anaphe.web.cern.ch/anaphe/ • AIDA-JNI 1.0 http://java.freehep.org/lib/freehep/doc/aida/ • Java • JAIDA http://java.freehep.org/lib/freehep/doc/aida/ • XML • AIDA DIM for JAS http://jas.freehep.org/ • JAS Tuple Explorer http://jas.freehep.org/Documentation/TupleExplorer • All tools do not yet support all features • More contributors/implementers welcome
AIDA with Geant4 • AIDA allows Geant4 examples to illustrate analysis techniques with choosing a single analysis tool • The T01 tutorial has been set up to use AIDA for analysis • By default links with a dummy implementation of AIDA • Switching to a real AIDA implementation is easy, just set environment variables and relink • source setup-analysis # (or source setup-analysis.csh) • make • ../../bin/$G4SYSTEM/T01app novis.mac
Simple GUI build into JAIDA T01 also creates a T01.aida file which can be analyzed offline.
Adding to T01 Analysis • T01AnalysisManager - This class is a simple wrapper around the AIDA factories used to create Histograms, Plotters and Tuples. You should not need to modify this class, but you may want to take a look at it to understand what it is doing. The useful methods it defines are: • static T01AnalysisManager* getInstance() - Get the (singleton) instance of T01AnalysisManager • IHistogramFactory* getHistogramFactory() - Used for creating histograms • ITupleFactory* getTupleFactory() - Used for create tuples • ICloudFactory* getCloudFactory()- Used for creating clouds (unbinned histograms) • IPlotter* createPlotter() - Create a Plotter (used for displaying histograms and clouds) • T01EventAction - This is where the user defined analysis is performed. After reading the AIDA Users Guide the code here should be fairly self explanatory. A good exercise would be to add you own histograms and display them using the plotter, or add your own columns to the Tuple.
Future GUI/Analysis/Visualization • Currently • Visualization • GUI • Analysis • Are separate categories within Geant4 • This makes sense for G4 designers • But perhaps not for users • We hope to combine AIDA/GAG/Wired/JAS to form unified UI
Geant 4 menu. Used to start G4 executable Command Arguments Currently Available Commands G4 Output
Available Histograms Histos update in real time
Conclusions • Look at T01 source code • T01AnalysisManager • T01EventAction • AIDA Users Guide • On CD, or at: http://aida.freehep.org/lib/doc/UsersGuide/index.shtml • AIDA Web Site • http://aida.freehep.org/