Moore's Law: formulated by Gordon Moore of Intel in the early 70's - the processing power of a microchip doubles every 18 months; corollary, computers become faster and the price of a given level of computing power halves every 18 months. (well ! Not true anymore, see later)
Gilder's Law: proposed by George Gilder, prolific author and prophet of the new technology age - the total bandwidth of communication systems triples every twelve months. New developments seem to confirm that bandwidth availability will continue to expand at a rate that supports Gilder's Law.
Metcalfe's Law: attributed to Robert Metcalfe, originator of Ethernet and founder of 3COM: the value of a network is proportional to the square of the number of nodes; so, as a network grows, the value of being connected to it grows exponentially, while the cost per user remains the same or even reduces.
I/O subsystem (zebra) for all structures including geometry.
Used by many experiments. Still a reference!!!
Fluka Fluka
Originally developed by safety protection group at CERN (stevenson) + aarnio + ranft) 1985 ?
Reengineered by A.Ferrari &co: Rubbia project 1990
Probably the best for Physics processes
Simple geometry
The reference for radiation/shielding
Written in fortran77
Interfaced with VMC (TFluka) and G4 (Flugg)
Geant4
Started in 1994
Originally a flagship project for the move to C++
A huge investment in manpower
About 600000 lines of C++
Validation process in Atlas, CMS and LHCb
Physics processes getting better and better
But still many limitations
Poor interpreter (small subset callable from python)
No I/O interface (geometry cannot yet be made persistent)
Batch style graphics
The Virtual MC (1998)
Virtual Monte Carlo and ROOT Geometry
The ROOT geometry package (TGeo) can be used in detector simulation, reconstruction, graphics, etc.
TGeant3
Used in production – native GEANT3
New: TGeant3TGeo – interface to G3 using TGeo geometry
No modification required in the user code
Validated by Alice
Same speed or faster than TGeant3
TGeant4
Used for Geant4 physics validation – G4 native geometry built after g3tog4 conversion
No interface yet between G4 and ROOT geometry
But Andrei Gheata actively working on it (expected this spring)
TFluka
Old geometry interface using G4 geometry vis FLUGG
Currently a fully validated geometry interface based on TGeo
Validated by the Fluka team
At least 2 times slower than TGeant3
The VMC framework is currently used by Alice, Opera, Minos, NA48b,Hades, CBM and may be STAR.
PAW: a long saga
First version (Jan 1985) by a committee
Must use GKS
GUI based on VT100 functionality
No ntuples
June 1985: developers “abolish” the committee
Higz: GKS + X11
Row wise ntuples, then ColumnWiseNtuples (1986)
Frozen in 1994, but still maintained by ROOT team
Crisis: 1992 1999
Why not F90 after F77?
In 1989,90,91 assumption was F90
Some work invested in I/O with F90 (to support derived types). We could not solve this problem, because no formal way to parse the F90 module descriptors.
In 1992 many forces pushing towards OO
CHEP Annecy, web, Next
Crisis in Dec 1992 (at least in IT software group)
1/3 in favour of f90
1/3 in favour of commercial solutions
1/3 in favour of C++
1993,1994,1995
ZOO, NextPaw, Geant3.5 proposals rejected
ZOO: Zebra in the OO world
NextPaw: Paw evolution ->C->C++
Geant3.5: Implement geometry package in C++
Geant4 proposal (June 1994)
RD45/Objectivity project (fall 1994)
ROOT project starts (in NA49) (Jan 1995)
1996
ROOT chooses the CINT interpreter
We had been attracted by Java (Object base class, many common ideas).
Work on object persistency based on the dictionary information (introspection).
Design of ROOT Trees (split mode). Comparison with Objectivity
LHC++ project starts (against ROOT)
see Jamie’s talk
1997->2000
Getting experience with OO (professional developers).
Most users lost in f77->C++
First signs of problems with Objectivity in Babar
FNAL RUN II chooses ROOT
But C++ seen as a temporary solution waiting for efficient Java at the horizon 2003.
ROOT : automatic I/O based on dictionary, automatic schema evolution.
Problems with commercial systems
Licensing
Deployment
Vendor is late to follow with compilers & OS
Difficult to request new functionality
Difficult to get good people to do support and maintenance. Programmers want to develop code.
Data Analysis Software
1960: Do it yourself
1968: SUMX
Histograms and data blocks described in input file. SUMX is the master.
1973: HBOOK
Histogram library. User controls the event loop and the selection.
1985: PAW
Interactive histograms/fitting. Ntuples
1995: ROOT
Same as PAW + persistency for C++ objects. C++ interpreter