Subsections
jHepWork is a full-featured object-oriented data analysis framework for scientists.
Jython macros are used to plot data, 1D and 2D histograms, perform fit, etc.
The program includes many tools for interactive scientific plots in 2D and 3D.
Data structures and data manipulation methods integrated with Java and JAIDA classes
combines remarkable power with a very clear syntax.
Programs written with jHepWork are usually very short due to high-level constructs.
jHepWork has two major components:
a) A powerful text editor which supports many programming
languages: C/C++, PYTHON, JAVA, PHP, FORTRAN and many more. It is also specially designed for editing LaTeX files. It has several unique features, such as:
- The only Java-based editor with on-fly spell checking;
- Color syntax highlighting for many programming language.
This is the only editor with color syntax highlighting for all classes of ROOT data-analysis framework;
- Multiple clipboards and Eclipse-like multiple bookmarks;
- File browser;
- Multi-document support;
- Jython code completion. Help on Java/Jython classes while you are working with the editor;
- A document structure viewer for fast navigation;
- Extensive configurability
In addition, it has extensive LaTeX support: a structure viewer, build-in Bibtex manager (JabRef) and LatexTools.
b) Data analysis tools, which are:
- Enhanced console for BeanShell and Jython with syntax highlighting and built-in macro
language for custom commands. Macros written for jEdit textArea can be easily adapted;
- A scientific plotting program with a full graphic user interface (GUI), written in Java;
- FreeHEP libraries for histogramming and other tasks.
As JAS packagehttp://jas.freehep.org/jas3/,
jHepWork uses the same FreeHEP
libraries for histograms (based on JAIDA). The classes written for jHepWork were
written keeping in mind simplicity of numerous high-level constructs enabling you to write programs that are significantly shorter than programs written
using JAS. At the same time, you can also use the same
FreeHEP libraries, thus the same code written using JAS should also
run. Here are the main differences with JAS:
- More powerful text editor (JAS has a very primitive text editor, which does not have even syntax highlighting!);
- More powerful plotting program to display plots. Using JAS, it is impossible (or very difficult) to produce plots of good quality (i.e. good enough to include into scientific papers). jHepWork includes jHPlot program (my rewrite of JPlot) to display plots. Look at snapshots. With jHepWork you can even use Greek symbols, subscripts etc for the labels!
- As was mentioned, programs written in jHepWork are shorted due to several enhancements
and simpler class names (no java factories, now syntax is similar to ROOT when python is
used);
- jHepWork is a pure java program, therefore, it is easier to maintain than JAS (JAS contains shared libraries which depend on the platform). In fact, it's a bit a challenge to compile JAS!. jHepWork can be compiled using the standard ANT script.
The same jar files should work an any platform;
- jHepWork includes high-level constructions for data manipulations, calculations
of systematical errors and visualization (plots, tables, spreadsheet, file input/output)
which have no analogy in JAS/ROOT.
jHepWork is licensed by the GNU General Public License (GPL). Read jeHEP and jHPLOT License Terms and Conditions.
As JAS, jHepWork is a multi-platform package. It does not require compilation, installation
and has a build-in help for accessible methods. Jython scripts can be compiled
to jar libraries without any modification (unlike ROOT or PAW). In ROOT, in order to
compile a script, you should write a proper C++ code which is by a factor 3 longer
then the equivalent jython script. Finally, it is better suited for distributed analysis
environment via the Internet, since jython scripts can be embedded to the WEB.