JuliaHEP 2025 Workshop

US/Eastern
Princeton

Princeton

Description

Welcome to the JuliaHEP workshop, the place for anyone interested in Julia for HEP community to be! From the curious to experts JuliaHEP is for you!

 

JuliaHEP at Princeton

We are delighted to announce that the JuliaHEP 2025 workshop will be held at Princeton. The event will be organised with two days of contributed talks, followed by one and a half days of a JuliaHEP training, hackathons, and birds of a feather sessions.

Scientific Organisation

  • Uwe Hernandez Acosta (Center for Advanced Systems Understanding)
  • Jerry Ling (Harvard University)
  • Pere Mato (CERN)
  • Alexander Moreno (Universidad Antonio Nariño)
  • Ianna Osborne (Princeton University)
  • Graeme A Stewart (CERN)

Local Organisation

  • Amy Androwski (Princeton University)
  • Andrea Rubinstein (Princeton University)
  • Ma. Florevel C. Fusin-Wischusen (Princeton University)
  • Maureen Carothers (Princeton University)
  • Peter Elmer (Princeton University)
  • Ianna Osborne (Princeton University)

Sponsors

CERNIRIS-HEP logonsf-logo-100.png
Support for this event has been provided by the Institute for Research and Innovation in High Energy Physics (IRIS-HEP) through NSF award PHY-2323298, the Initiative for Data-Driven Social Science (DDSS) at Princeton University, the Institute for Computational Science and Engineering of Princeton University, the Princeton University Physics Department and by the HEP Software Foundation (CERN/HSF).
Poster
Zoom Meeting ID
67486471851
Host
Graeme A Stewart
Alternative host
Pere Mato Vila
Passcode
05682688
Useful links
Join via phone
Zoom URL
    • 08:30 09:00
      Breakfast 30m
    • 09:00 10:00
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 09:00
        Welcome 15m
      • 09:15
        Julia in HEP: diff 2024 2025 30m

        In this talk I will review the advances in packages for high-energy physics in the Julia ecosystem since the last JuliaHEP in 2024. New packages, such as Minuit and HepMC3, have been wrapped, and many native packages have added new features. I shall look at progress for end-to-end FCC analysis in particular. I shall end with some discussion of what next steps would bring the most benefit to the JuliaHEP community.

        Speaker: Graeme A Stewart (CERN)
      • 09:45
        GPU for histogramming -- is it worth it in HEP? 15m

        In this talk, we demonstrate a GPU-friendly extension to the FHist.jl. Within the analysis computing ecosystem, moving to GPU has been a steady trend, however, since any event we select almost always goes to a histogram, it would be a huge bottleneck if histogramming requires moving data GPU -> CPU.

        We briefly discuss the design and implementation of GPU-backed histogram, and then show some benchmarks to inform the audience what kind of performance tradeoff is being made when you use GPU for histogramming.

        Speaker: Michael Steven Farrington (Harvard University (US))
    • 10:00 10:30
      Coffee Break 30m
    • 10:30 12:30
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 10:30
        Sparse modeling study to extract charmonium spectral functions from lattice QCD data at finite temperature 25m

        Charmonium spectral functions play an important role in studying properties of the hot and dense medium formed in relativistic heavy ion collisions since they carry important theoretical information on probes of the Quark-Gluon Plasma. However, obtaining the spectral function from the correlation function, which can be obtained from lattice QCD, is an ill-posed inverse problem. To address this problem, various techniques have been employed in lots of previous studies on extracting spectral functions from lattice QCD data. Sparse modeling (SpM) is one of such techniques, though it has not been widely applied.
        We present spectral functions extracted from Euclidean-time correlation functions by using SpM. This method solves inverse problems by considering only the sparseness of the solution we seek. To check applicability of the method, we firstly test it with mock data which imitate charmonium correlation functions. We show that the method can reconstruct the resonance peaks in the spectral functions. Then, we extract charmonium spectral functions from correlation functions obtained from quenched lattice QCD at temperatures below and above the critical temperature. We show that this method yields results like those obtained with MEM and other methods.

        Speaker: Junichi Takahashi (Meteorological College, Japan Meteorological Agency)
      • 10:55
        Julia Interfaces to the HepMC3 Event Record Library 15m

        HepMC3.jl provides a Julia interface to the HepMC3 C++ library, the standard for Monte Carlo event records in High Energy Physics (HEP). Leveraging C++ wrapping techniques (CxxWrap), the package grants direct access to the native HepMC3 library functions from within Julia. Aided by tools like WrapIt for generating Julia bindings to C++ headers, the package simplifies integration and accelerates development. Currently under active development, HepMC3.jl is progressing through key milestones: initial capabilities include reading HepMC3 ASCII files and accessing fundamental event, particle, and vertex data structures and their properties (like momentum, PDG ID). Development is now focusing on enabling event navigation (vertex relationships, decay chains), handling run-level information (cross-sections, weights), and implementing event modification and creation routines, followed by ASCII serialization. This talk will cover the current status, design choices, and ongoing work in HepMC3.jl, showcasing how it bridges the gap between established C++ tools and modern Julia analysis workflows, aiming to unlock seamless integration of standard event record handling in the Julia HEP ecosystem.

        Speaker: Divyansh Goyal (Guru Gobind Singh Indprastha University)
    • 12:30 13:30
      Lunch 1h
    • 13:30 15:00
      Talks: Tutorial Jadwin 10

      Jadwin 10

      Princeton

      • 13:30
        Hands-on session: Introduction to Julia for scientists 1h 30m

        Julia is a modern programming language designed for high-performance scientific computing, offering the ease of dynamic languages with the efficiency of low-level languages. This hands-on session introduces Julia to scientists with prior programming experience (e.g. Python, C++, Fortran), focusing on its unique features such as multiple dispatch, just-in-time (JIT) compilation, and efficient array operations.

        Participants will work through practical examples covering numerical computing, and data visualization, gaining insight into Julia’s syntax, package ecosystem, and performance advantages. By the end of the session, attendees will be equipped with the foundational skills needed to apply Julia effectively in their research.

        To get the most out of this session, please bring your laptop with Julia 1.11 installed. If you need help with that, feel free to contact us.

        Speaker: Anton Reinhard
    • 15:00 15:30
      Coffee Break 30m
    • 15:30 18:00
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 16:00
        Keynote talk - Stefan Karpinski 1h
    • 18:00 20:30
      Welcome Reception 2h 30m
    • 08:00 08:30
      Breakfast 30m
    • 08:30 10:00
      Talks Jadwin A09

      Jadwin A09

      Princeton

      • 08:30
        ROOT.jl one year after JuliaHEP 2024: an easier and more complete Julia interface to ROOT 30m

        After the major update of the ROOT.jl package restoring compatibility with recent Julia releases, which was presented last year, a new breakthrough has been achieved. The installation of the C++ framework, used as the backend, and the ROOT.jl binaries (shared libraries) are now integrated into the Julia package manager. All dependencies are now precompiled and installed automatically, when the ROOT.jl package is added to the Julia environment. This integration was envisaged six years ago but was on hold due to technical difficulties that have now been resolved. This full integration eases the installation of ROOT.jl and provides more robust management of library version compatibilities. In addition, more ROOT classes are now covered: the complete Geometry library has been added, and support for the Histogram library has been extended to cover all the classes. After introducing the challenges of integrating ROOT into the Julia package manager system and how they were solved, we will present the new features ROOT.jl is now providing. Finally, we will show how the package can be extended when a not-yet-covered ROOT class needs to be accessed.

        Speaker: Philippe Gras (Université Paris-Saclay (FR))
      • 09:00
        Miniut2.jl: A Modern Julia Interface for the Old Minuit Minimizer 30m

        We present Miniut2.jl, a revamped Julia interface for the Minuit2 minimizer, leveraging the latest version of CxxWrap and utilizing WrapIt to automate the generation of the wrapper library. This package provides users with access to a well-established, reliable, and efficient tool for robust minimization.

        In addition to the core interface, we introduce a high-level API inspired by the popular iminuit Python package, enabling seamless fitting of popular HEP models in a Julia environment. Furthermore, a module replicating the modelling functionality of ROOT RooFit has been integrated, making it easier to compose and handle complex models.

        Speaker: Pere Mato Vila (CERN)
      • 09:30
        Current Status of AwkwardArray.jl: Advancing Interoperability in High-Energy Physics Workflows 25m

        The integration of diverse programming languages is a key challenge in high-energy physics (HEP), where computational efficiency and flexible workflows are crucial. AwkwardArray.jl, a Julia-based adaptation of the widely used Python Awkward Array library, addresses the need for high-performance manipulation of complex hierarchical data structures. By leveraging Julia’s computational advantages, AwkwardArray.jl offers researchers an enhanced toolset for data analysis.

        This presentation provides a comprehensive status update on AwkwardArray.jl, including recent development milestones, interoperability advancements, and performance benchmarks. We highlight successful applications within HEP workflows, demonstrating the hybrid usage of Julia and Python in typical analysis workflows. Challenges faced during the integration process will be discussed, alongside future plans for expanding functionality and improving usability.

        Speaker: Ianna Osborne (Princeton University)
    • 10:00 10:10
      Group photo: Jadwin hall plaza 10m Jadwin hall plaza

      Jadwin hall plaza

      Princeton

    • 10:10 10:30
      Coffee Break 20m
    • 10:30 12:30
      Talks Jadwin A09

      Jadwin A09

      Princeton

      • 10:30
        Jet Reconstruction in Julia - What's New? 30m

        JetReconstruction.jl is a native Julia implementation of sequential reconstruction algorithms, similar to those found in Fastjet. Since its release in 2024, the package has had many new features added. We will show how jet substructure operations can now be performed, such as tagging with mass drop and soft drop, as well as filtering and trimming. Techniques such as the Lund Jet Plane, soft killer, constituent subtraction are now in development.

        Integration with other Julia packages has been improved (e.g., EDM4hep.jl), unlocking the possibility of full FCC analysis support in Julia.

        We also discuss some recent internal optimisations, related to SIMD, as well as making better use of other Julia packages.

        Finally, we describe our work to build the JetReconstruction package as a static library, using PackageCompiler and juliac, that would allow Julia code to be used from existing C++ frameworks, helping adoption in HEP.

        Speaker: Graeme A Stewart (CERN)
      • 11:00
        Porting the CMS pixel reconstruction to Julia: final results 30m

        The Patatrack pixel track reconstruction is a stand-alone project originally extracted from the CMS reconstruction software, and has long served as a testing ground for evaluating heterogeneous computing frameworks such as OpenMP, TBB, CUDA, HIP, SYCL, Kokkos, and Alpaka.

        To assess the Julia programming language within a realistic High Energy Physics software context, the full Patatrack pixel track reconstruction has now been successfully rewritten in Julia. As of this year, 100% of the serial C++ code has been ported, validated, and is now operational using both Ahead-of-Time (AOT) and Just-In-Time (JIT) compilation.

        The Julia implementation is also being integrated into the official Patatrack standalone application. Runtime and memory optimizations are ongoing and expected to be finalized shortly. In parallel, the Julia port of the GPU framework and its initial modules is underway in preparation for multi-threaded and heterogeneous computing evaluations.

        This contribution will provide an updated overview of the project, report on the completion of the serial port and automation infrastructure, discuss the optimization strategies adopted, and highlight the ongoing efforts toward GPU support using Julia.

        Speakers: Maya Ali (American University of Beirut (LB)), Mohamad Ayman Charaf (American University of Beirut (LB)), Mohamad Khaled Charaf (American University of Beirut (LB))
    • 12:30 13:30
      Lunch 1h
    • 13:30 15:00
      Talks: Tutorial Jadwin A09

      Jadwin A09

      Princeton

      • 13:30
        ML for HEP Analysis in Julia 1h 30m

        Part 1: Motivation and Basic analysis setup

        We introduce basic data operation and JuliaHEP analysis setup by going through the follow topics:
        - use Open Data
        - implement cut and count
        - simple visualization
        - write to Arrow or Parquet prepare for ML

        Part 2: Basic ML and intro to MLJ

        We demonstrate how to conduct the most common types of HEP analysis ML tasks in Julia, incdluing:
        - Using the simple target to train a two-class BDT as guide, introduce MLJ
        - Basic data cleaning (sampling, balancing?)
        - Show MLJ’s capability of prototyping different ML models in quick succession

        Part 3: AutoDiff, Lux, and more

        Finally, we touch on some advanced topic such as automatic differentiate that are useful for certain tasks or suitable for building custom models using Lux.jl (such as auto encoder)

        Speaker: Jerry 🦑 Ling (Harvard University (US))
    • 15:00 15:30
      Coffee Break 30m
    • 15:30 18:00
      Talks: Tutorial Jadwin A09

      Jadwin A09

      Princeton

      • 15:30
        Fitting functions to data in 10 Julia ways 1h

        There are two main kinds of “fitting” in HEP – fitting function to data, and template fitting for statistical analysis. The two are linked, but each has enough depth to warrant a dedicated tutorial.

        This tutorial connects familiar concept in HEP to best practices in Julia ecosystem. We go through the following topics:
        • Simple curve fitting by minimizing Chi2, we use this as an opportunity to show Optimization.jl, which allows switching and combine numerical backend easily, as well as Minuit2.jl, which HEP audience are familiar with.
        • Binned and Unbinned maximal likelihood fit of a well-defined PDF function
        • Binned maximal likelihood fit for “extended PDF” and “sums” of PDFs -
        we introduce the math and also uses AlgebraPDF.jl developed by LHCb Julia users.
        • Finally, we show some “future” tech such as SymbolicRegression.jl and evaluating Unbinned likelihood on GPUs to show users what is possible in the future for analysis.

      • 16:30
        Statistical inference with BAT and MeasureBase 1h

        A practical introduction into building forward models, how to perform Bayesian and maximum-likelihood inference on them using BAT, and how all of it relates to concepts of measure theory.

        Speaker: Oliver Schulz (Max Planck Society (DE))
    • 18:00 20:00
      Dinner on your own 2h
    • 08:00 08:30
      Breakfast 30m
    • 08:30 10:00
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 08:30
        Study on Quark Models for Mesons using Julia 30m

        We investigate the properties of mesons within quark models using Julia. Quark models describe the spectra and structures of mesons. These potentials have several terms. For example, the Cornell potential has three terms: a constant term, a linear term, and a Coulomb term. Furthermore, a hyperfine interaction term is added in our case: A. J. Arifi, L. Happ, S. Ohno, M. Oka, Phys. Rev. D 110, 014020 (2024). The Hamiltonian should be flexibly customized for exploring models. The Schrödinger equation is solved using variational methods implemented in the package TwoBody.jl. Since this package allows users to construct custom Hamiltonians, it is well-suited for potentials with several terms in the quark models. Software testing is performed using Antique.jl. We present the research and the development workflow using these two Julia packages.

        Speaker: Shuhei Ohno
      • 09:00
        JuliaQCD: Portable lattice QCD package in Julia language 30m

        JuliaQCD is a versatile tool for lattice Quantum Chromodynamics (QCD), a key framework in particle physics for studying the strong force that binds quarks and gluons. Designed for seamless scalability, it runs efficiently on CPU/GPU systems from laptops to supercomputers (e.g. Fugaku). By implementing standard algorithms like Hybrid Monte Carlo (HMC) with a focus on rapid and efficient research, JuliaQCD enables scientists to explore fundamental physics with unprecedented flexibility and speed.

        Speaker: Akio Tomiya (TWCU)
    • 10:00 10:30
      Coffee Break 30m
    • 10:30 12:30
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 10:30
        Efficient Matrix-Element Generation in Julia 30m

        In this talk, we introduce the capabilities of our novel matrix-element-generating Julia package, QEDFeynmanDiagrams.jl, which is part of the broader QuantumElectrodynamics.jl ecosystem. This package provides a simple, intuitive interface for defining arbitrary scattering processes, and, by leveraging ComputableDAGs.jl, it enables the generation of functions that compute matrix elements for given particle momenta on both, CPU and GPU. Our modern approach to Feynman diagram generation utilizes an efficient algorithm with improved scaling complexity, enabling the computation of multi-particle processes. Additionally, we demonstrate how QEDevents.jl integrates with the matrix element generator to facilitate sampling and event generation. We benchmark our results against existing generators like MadGraph to verify accuracy and performance. Lastly, we discuss how our algorithm can be generalized to handle arbitrary quantum field theories while maintaining similar scaling behavior, making it a versatile tool for a wide range of applications in high-energy physics.

        Speaker: Anton Reinhard (CASUS/HZDR)
      • 11:00
        Towards Performance-Portable Monte-Carlo Event Generation in Julia 30m

        The generation of scattering events is one of the most compute-intensive tasks in High-Energy Physics (HEP) experiment simulations. This challenge becomes even more significant for upcoming HEP colliders, as well as for computation-heavy applications in other domains (e.g., laser-plasma physics), where it increasingly limits the range of physics that can feasibly be included. Therefore, efficiently utilizing state-of-the-art hardware and modern software tools is crucial for the next generation of event-focused experiments. In this talk, we report on our recent progress in Monte-Carlo event generation in Julia, focusing mainly on its multi-threaded CPU and GPGPU capabilities to achieve maximum performance. In addition to the raw computing power offered by Julia for this demanding task, we also discuss our latest advancements in developing architecture-agnostic implementations of generators. These improvements enable the seamless execution of event generation across diverse computational platforms without sacrificing performance. The talk will highlight how these developments pave the way for scalable, efficient, and portable Monte-Carlo event generation solutions for simulations of future experiments.

        Speaker: Dr Uwe Hernandez Acosta (Helmholtz-Zentrum Dresden-Rossendorf)
      • 11:30
        Probing Spin Interference in Parton Showers: A Julia-Based Study of EEEC and Lund Declustering 30m

        Spin correlations in successive parton splittings are a crucial quantum effect in QCD, arising from interference between virtual gluon helicity states and manifesting as a cos(2φ) modulation in the azimuthal emission patterns in jet substructure. Accurate modeling of these correlations is required for achieving next-to-leading logarithmic (NLL) precision in parton shower algorithms. In response to recent theoretical advancements, this study investigated computational methods for measuring interference effects using Julia. Herwig-generated events were analyzed using two independent computational frameworks based on the three-point energy–energy correlator (EEEC) and Lund declustering observables to probe spin correlations in the collinear limit. Both approaches recovered the anticipated cos(2φ) modulation in agreement with theoretical predictions, validating the Herwig implementation of spin correlations and demonstrating Julia’s effectiveness for advanced high-energy physics computations. These findings establish benchmarks for NLL-accurate parton shower simulations and motivate future ATLAS experiments to probe the quantum mechanical effects imprinted on QCD jets directly.

        Speaker: Mr Matthew Gratrix
      • 12:00
        Bayesian and general statistics in Julia 30m

        Julia has a rich statistics ecosystem, but when it comes to the type of inference typical for high energy physics and related fields, some gaps still remain. Still, a lot of progress has been made - where are we, and where to we go next?

        In addition to the state of Bayesian statistics and general statistical tooling, the talk will also highlight the state of BAT.jl and connections to other packages.

        Speaker: Oliver Schulz (Max Planck Society (DE))
    • 12:30 13:30
      Lunch 1h
    • 13:30 15:00
      Talks
      • 13:30
        Julia Development and Workflow Tutorial 1h

        This tutorial session provides a comprehensive guide to developing and managing workflows in Julia, ideal for both newcomers and experienced developers. We begin with the basics, demonstrating how to use the Julia compiler directly on a file to go from zero to a working script. The session then explores packaging concepts, focusing on creating reproducible setups with both local and global environments. We cover various individual workflows, including REPL-based and notebook-based workflows using Jupyter and Pluto, with a special focus on the powerful Revise.jl package for dynamic code reloading. Moving to team-based workflows, we delve into best practices for collaboration using Git, and hosting platforms like GitHub.com, or GitLab-instances, with an emphasis on forks, pull requests, and version control. The session also briefly covers Continuous Integration and Continuous Deployment (CI/CD) with tools like GitHub Actions and GitLab CI, ensuring smooth collaboration and testing. Finally, we demonstrate how template generators simplify setup, making it easier to get started with Julia projects. By the end of the session, participants will have a solid understanding of efficient Julia development practices and the tools necessary for both individual and team-based workflows.

        Speaker: Dr Uwe Hernandez Acosta (Helmholtz-Zentrum Dresden-Rossendorf)
    • 15:00 15:30
      Coffee Break 30m
    • 15:30 18:00
      Talks Jadwin A10

      Jadwin A10

      Princeton

    • 18:30 21:00
      BBQ and Drinks - Palmer House 2h 30m
    • 08:00 08:30
      Breakfast 30m
    • 08:30 11:00
      Talks Jadwin A10

      Jadwin A10

      Princeton

      • 08:30
        Data analysis in high-energy physics with Julia 30m

        During the Winter Semester of 2024, our LHCb group in Ruhr-University Bochum developed and taught the Data Analysis course for students. The main objective of the course is the introduction to statistical modeling, likelihood studies, confidence interval construction, fitting techniques, and machine learning methods such as decision trees and boosting. The course materials are rearranged into a Julia package and available on GitHub. It provides structured tools for statistical analysis with Julia. We will present examples of utilizing the developed package for physics analyses in LHCb and reflect on Julia ecosystem readiness for adoption by HEP community and growing generation of particle physicists.

        Speaker: Ilya Segal (Ruhr-Universitaet Bochum (DE))
      • 09:00
        HEPVis: A Julia Package for Visualization and Comparative Analysis of High Energy Physics Data 15m

        HEPVis, a Julia package, provides easy-to-use functions for visualizing and comparing High Energy Physics (HEP) data. Designed to handle and manage plotting information for a large number of variables, it streamlines modifications through a user-friendly YAML file. It also includes functionality to compare datasets using various methods such as ratio, pull, and difference.

        Speaker: Shahzaib Abbas (University of Karachi)
      • 09:15
        Final Discussion 1h 30m
      • 10:45
        Closeout 15m
    • 11:00 12:00
      Lunch 1h