arXiv:0809.0840v2 [cs.CE] 9 Feb 2009
ANL-HEP-CP-08-53
HEP data analysis using jHepWork and Java
S. Chekanov
HEP Division, Argonne National Laboratory, 9700 S.Cass Avenue, Argonne, IL 60439 USA
Abstract
A role of Java in high-energy physics (HEP) and recent progress in develop-
ment of a platform-independent data-analysis framework, jHepWork, is dis-
cussed. The framework produces professional graphics and has many libraries
for data manipulation.
1 Introduction
Nowadays, the advantages of Java over C++ seem overwhelming. Being the most popular open-source
programing language
1
, Java retains the C++ syntax, but significantly simplifies the language. This is
(incomplete) list of advantages of Java over C++: 1) Java is multiplatform with the philosophy of write
once, run anywhere”; 2) Better structured, clean, efficient, simpler (no pointers); 3) Stable, robust and
well supported: Java programs written (or compiled) many years from now can be compiled (or exe-
cuted) without modifications even today. This is true even for JAVA source code with graphic widgets.
In contrast, C++ programs always require continues time-consuming maintenance in order to follow
the development of C++ compilers and graphic desktop environment; 4) Java has reflection technology,
which is not present in C++. The reflection allows an application to discover information about created
objects, thus a program can design itself at runtime. In particular, this is considered to be essential for
building ”intelligent” programs making decisions at runtime; 5) Free intelligent IDEs, which are abso-
lutely necessary for large software projects
2
; 6) Automatic garbage collection, i.e. a programmer does
not need to perform memory management; 7) Extensive compile-time and run-time checking; 8) Pro-
grams written in Java can be embedded to the Web. This is important for distributed analysis environment
(Java webstart, plugins, applets), especially when HEP data analysis tools are not localized in one single
laboratory but scattered over the Web.
The importance of Java in HEP data analysis has been recognized since establishing the FreeHEP
Java library and producing a first version of JAS (Java analysis studio) [1]. Presently, many elements
of the grid software are written in Java. At LHC, Java is used for event displays and several other
areas. While C++ language is remaining to be the main programming language at LHC, it lacks many
features existing in Java, which makes the entire LHC software environment tremendously complicated
and difficult to handle by the end users. The lack of robustness and backward compatibility of C++ free
compilers leads to various HEP-supported ”scientific” flavors of Linux, with different architecture (32 bit
or 64), which are all tightened to particular libraries and hardware. For example, the main computational
platform for ATLAS is Scientific Linux 4.6. It will be used for future data taking, however, even now
it is several generations behind the main-stream Linux modern distributions (Fedora, Ubuntu, Suse etc)
and cannot be easily installed on modern laptops. Currently, the HEP community is required to support
the entire computing chain, from hardware and operating systems, to the end-user programs, rather
1
According to SourceForge.net and Freshmeat.net statistics, the number of open-source applications written in Java exceeds
those written in C++.
2
For example, the total number of lines of source code in ATLAS software is far higher than hundreds of thousands lines.