Jas4pp — A data-analysis framework for physics and detector studies,☆☆,

https://doi.org/10.1016/j.cpc.2021.107857Get rights and content

Abstract

This paper describes the Jas4pp framework for exploring physics cases and for detector-performance studies of future particle collision experiments. Jas4pp is a multi-platform Java program for numeric calculations, scientific visualization in 2D and 3D, storing data in various file formats and displaying collision events and detector geometries. It also includes complex data-analysis algorithms for function minimization, regression analysis, event reconstruction (such as jet reconstruction), limit settings and other libraries widely used in particle physics. The framework can be used with several scripting languages, such as Python/Jython, Groovy and JShell. Several benchmark tests discussed in the paper illustrate significant improvements in the performance of the Groovy and JShell scripting languages compared to the standard Python implementation in C. The improvements for numeric computations in Java are attributed to recent enhancements in the Java Virtual Machine.

Program summary

Program title: Jas4pp

CPC Library link to program files: https://doi.org/10.17632/jzvddk26cy.1

Developer’s repository link: https://atlaswww.hep.anl.gov/asc/jas4pp/

Licensing provisions: GNU General Public License 3

Programming language: Java, Jython, Groovy

Nature of problem: Develop a platform-independent data-analysis framework for high-energy and nuclear physics (HEP and NP) with a support of fast dynamically-typed scripting languages, comprehensive data-visualisation and I/O libraries.

Solution method: The solution adopted here is to use Java and the scripting languages integrated with Java VM.

Additional comments: All 3rd party Java libraries included with this program are licensed by GPLv3, GNU Lesser General Public License (LGPL) or by other licenses compatible with the GPLv3 license, and adhere to Mendeley Data approved open-source software licenses. These licenses files are includes with the program.

Introduction

Software frameworks are central to physics analysis and detector-performance studies in particle collision experiments. In the past decades such analysis frameworks have included PAW (“Physics Analysis Work station”) [1] implemented in C/Fortran, ROOT [2] written in C++, and Jas3 (“Java Analysis Studio”) [3] implemented in Java. The latter program was developed at the SLAC National Accelerator Laboratory. It was used for the SiD detector concept [4] of the International Linear Collider (ILC) project [5], and then it was extended to a more versatile package with downloadable plugins for various projects beyond high-energy physics (HEP) experiments. For example, such Java libraries are used in reconstruction, calibration, monitoring and physics analysis of the CLAS12 and HPS experiments [6], [7] in the experimental Hall B at Thomas Jefferson National Accelerator Facility (Jefferson Lab).

With an increased interest in other future HEP projects, such as CLIC [8], the high-energy LHC (HE-LHC), and pp colliders of the European initiative, FCC-hh [9] and the Chinese initiative (CEPC [10] and SppC [11] experiments), it becomes apparent that sustainable software packages with easy deployment by end-users are important. Jas3 was one of the most promising packages to satisfy the above-mentioned sustainability requirement since it was written in Java. This programming language has been exceptionally successful in business and enterprise computing since the compilation of Java source code into bytecode makes it ideal for distributed applications. As any Java application, Jas3 requires low maintenance and does not have platform-specific installation issues.

In 2016, a program called Jas4pp (“Jas for particle physics”) based on Jas3 was created at the Argonne National Laboratory (ANL) to accomplish physics and detector performance studies using a SiD-derived reconstruction software for the HepSim [12] repository. As a Java application, Jas4pp runs on any platform with Java installed, including Linux, MacOS and Windows OS. The time of deployment of Jas4pp is compatible with the time needed to download this program to a local computer since there are no platform-specific installation requirements.

This paper gives an introduction to the Jas4pp program. It will discuss multiple use cases, basic examples that illustrate its use and where to find the needed documentation. Section 4 will discuss several benchmarks to illustrate the performance of Java and dynamically-typed programming languages included with Jas4pp. The Appendix of this paper illustrates several advanced examples with data analysis in particle physics.

Section snippets

Main features of Jas4pp

In terms of the software libraries for data analysis in particle physics, Jas4pp goes much beyond the PAW and ROOT programs. Jas4pp contains a full stack of physics and detector-related libraries integrated with several programming languages.

The core part of Jas4pp is the package called Jas3 (Java Analysis Studio) [13] developed at SLAC. It is a flexible Java platform for data analysis that can be configured via plugins for different experiments. Jas3 is based on JAIDA [14], a Java

Running Jas4pp

Jas4pp runs on any operating system that supports the Java Virtual Machine (JVM) and has been explicitly tested on Linux, MacOS and Windows 10. Typically, 4 GB of RAM is sufficient. Jas4pp (version 1.5 released in October 2020) requires Java SE Development Kit 8 (JDK 8) and above. Jas4pp was also tested with OpenJDK 9 and 14.

After downloading the Jas4pp compressed tar file from the official web site [25], the program should be extracted to the directory “jas4pp”. To start the GUI editor shown

Benchmarks

Before the introduction of the just-in-time (JIT) compiler, Java was only interpreted and not compiled, and thus programs implemented in Java were slow compared to C/C++. Since the introduction of JIT, the performance of the Java Virtual Machine (JVM) has improved over the years. Even though there are several aspects of Java that are very appealing for the purposes of physics analysis software there is still a reservation in the physics community whether Java can be used for writing analysis

Usage of Jas4pp

As mentioned in the introduction, Jas3 was extensively used for the SiD detector concept [4] of the ILC project. Jas4pp still maintains the required libraries for analysis of collision events created by the ILC community. In particular, Jas4pp natively reads the “miniDST” events in the LCIO file format used for e+e studies. Such examples are available from the Jas4pp web page.

Jas4pp has also been used in several other detector studies focused on future experiments. For example, it was used for

Supported data formats

Similar to Jas3, Jas4pp fully supports the LCIO [21] I/O library developed for ILC studies. Some examples of reading LCIO files using Jython code can be found in Appendix A.2 (and in the following sections).

There are many data formats used for storing experimental data by different experiments. Usually the file format changes from the data acquisition stage to final data summary tapes (DST) output for physics analysis. This can represent some challenges when data is translated from one format

Documentation

The Jas4pp package includes example codes implemented in Java, Groovy and Jython. Examples dealing with 2D/3D data visualization can be found from the “Welcome” screen of the Jas4pp editor. More complex examples are located in the directory “examples” of the Jas4pp installation directory.

The API documentation of the main Java classes included with Jas4pp can be accessed from the web site [25] of this project.

Jas4pp libraries can be used in combination with any advanced integrated development

Summary

This paper describes the Jas4pp framework [25] designed for physics and detector studies of current and future particle-collision experiments. Although this framework has been used in several studies dealing with physics and detector performance studies, there are no publications describing this program. This paper is the first overview of the main features of Jas4pp.

Several examples given in this paper illustrate the simplicity of this program for data analysis when using the Jython and Groovy

CRediT authorship contribution statement

S.V. Chekanov: Conception or design of the work, Acquisition, analysis, or interpretation of data, Writing - original draft, Writing - review & editing. G. Gavalian: Conception or design of the work, Acquisition, analysis, or interpretation of data, Writing - original draft, Writing - review & editing. N.A. Graf: Conception or design of the work, Acquisition, analysis, or interpretation of data, Writing - original draft, Writing - review & editing.

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments

We thank Marco Lucchini for help with debugging the Jas4pp program. We gratefully acknowledge the computing resources provided on a high-performance computing cluster operated by the Laboratory Computing Resource Center at Argonne National Laboratory. The submitted manuscript has been created by UChicago Argonne, LLC, Operator of Argonne National Laboratory (“Argonne”). Argonne, a U.S. Department of Energy Office of Science laboratory, is operated under Contract No. DE-AC02-06CH11357. The U.S.

References (43)

  • BockR.

    Comput. Phys. Comm.

    (1987)
  • AntchevaI.

    Comput. Phys. Comm.

    (2009)
  • BurkertV.

    Nucl. Instrum. Methods Phys. Res. A

    (2020)
  • BaltzellN.

    Nucl. Instrum. Methods Phys. Res. A

    (2017)
  • AllisonJ.

    Nucl. Instrum. Methods Phys. Res. A

    (2016)
  • ChekanovS. et al.

    Comput. Phys. Comm.

    (2017)
  • ChekanovS.V.

    Nucl. Instrum. Methods A

    (2019)
  • BallaminutA.

    Comput. Phys. Comm.

    (2001)
  • ChekanovS. et al.

    Comput. Phys. Comm.

    (2014)
  • JohnsonA.

    A java-based analysis environment JAS

    (1996)
  • AbramowiczH.

    The International Linear Collider Technical Design Report - Volume 4: DetectorsTech. Rep. ILC-REPORT-2013-040

    (2013)
  • BehnkeT.

    The international linear collider technical design report - volume 1: Executive summary

    (2013)
  • LinssenL. et al.

    Physics and Detectors at CLIC: CLIC Conceptual Design ReportCERN Yellow Reports: Monographs

    (2012)
  • BenediktM.

    The Global Future Circular Colliders EffortCERN-ACC-SLIDES-2016-0016. Presented at P5 Workshop on the Future of High Energy Physics

    (2013)
  • CEPC Conceptual Design Report: Volume 2 - Physics & DetectorIHEP-CEPC-DR-2018-02, IHEP-EP-2018-01, IHEP-TH-2018-01

    (2018)
  • TangJ.

    Concept for a future super proton-proton collider

    (2015)
  • ChekanovS.V.

    Adv. High Energy Phys.

    (2015)
  • JAS3. Java analysis studio

    (2020)
  • DonszelmannM. et al.

    J. Phys. Conf. Ser.

    (2008)
  • CacciariM. et al.

    J. High Energy Phys.

    (2008)
  • CacciariM. et al.

    Eur. Phys. J.

    (2012)
  • ANL-HEP-164101, SLAC-PUB-17569.

    ☆☆

    The review of this paper was arranged by Prof. Z. Was.

    This paper and its associated computer program are available via the Computer Physics Communication homepage on ScienceDirect (http://www.sciencedirect.com/science/journal/00104655)

    View full text