Re: [Notice] Recently GPL'ed software from CERN
> Jordi Burguet Castell <firstname.lastname@example.org> writes:
> > "The CERN Program Library is a large collection of general purpose
> > libraries and modules maintained and offered in both source and object
> > code form on the CERN central computers. The two most popular
> > applications based on CERNLIB are PAW and GEANT 3.21. Most of these
> > programs were developed at CERN and are therefore oriented towards the
> > needs of a physics research laboratory that is general mathematics, data
> > analysis, detectors simulation, data-handling etc... applicable to a
> > wide range of problems."
> Could be interesting. What are the characteritics of the major
> applications using this library?
The relicensing was done only recently. Previously, distribution was limited
to educational and research institutions which could claim some connection
(however tenuous) to the CERN labratory, which meant just about every
university and physics labratory you can think of. I've been using it for
about six or seven years, but it's much older than that. (But continuously
updated, of course.)
CERN decided to court the open source community by releasing it under a
modified GPL, but I and others on the linux-hep mailing list successfully
lobbied for a change to full GPL.
CERNLIB is huge. If this gets packaged for Debian (and I would *love* to
see someone package this) it's going to need to be broken into many
subpackages. The subset of CERNLIB that I have installed (most devel
libraries, header files, and binary executables. I don't have source
or object files.) weighs in at about 100MB.
What cernlib offers varies widely. It has very sophisticated histogram
handling routines. If you want to take data and put it into histograms,
make plots of those histogram, fit the histogram to functions, compare
histogram, whatever you can even think of wanting to do with a histogram,
nothing does this better than CERNLIB/PAW.
On the other hand, there's also code for detector modeling. You can
describe the geometry using a kind of CSG language not too unlike what's
used in PovRay or other such programs (at least conceptually) and assign
material properties to the components of the detector and then do physics
simulations of how the detector responds.
There's also a graphics package which can take these CSG descriptions and
render these object discription into an image of the device. (It's a three
dimensional image, which can be rotated to any angle, have sections removed,
sliced for cross sections, whatever you want.) The emphasis is on producing
technical drawings more than pretty pictures you might get from something
The graphics package also contains drawing primatives and can be used to
build just about any sort of data display system. Graphics can be rendered
into X, Postscript, ASCII, or several other formats.
All of the code is completely platform independent. It works on all
Unices, Windows, DOS, Mac, VMS, etc.
There's data management code. If you want to create a binary data format
which is extensible, compact, and portable, there are a lot of code for
There's KUIP (Kit for a User Interface Package) which handles user interfaces.
If you want to hack together an interactive shell with a heirarchical
command structure and online help, KUIP is a quick way to do that.
There's a large number of things I've also forgotten about. It's a lot of
The biggest problem with the code is that it's very Fortrany. You can
interface with C/C++, but the mindset that went into designing the APIs
and user interface was definitely a Fortran one. If you like Fortran,
though, you'll be at home with this code.
To UNSUBSCRIBE, email to email@example.com
with a subject of "unsubscribe". Trouble? Contact firstname.lastname@example.org