Skip to content

Commit c0330b0

Browse files
Julia HepMC3 project (#1662)
* Julia HepMC3 project First draft * Spelling * update mentor list * fix copy-paste error * Update _gsocproposals/2025/proposal_JuliaHepMC3.md --------- Co-authored-by: Valentin Volkl <[email protected]>
1 parent 4a44f11 commit c0330b0

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
project: JuliaHEP
3+
title: JuliaHEP
4+
layout: default
5+
logo: juliahep/juliaheplogo.png
6+
description: |
7+
The [JuliaHEP](https://hepsoftwarefoundation.org/activities/juliahep.html) working group brings together a community of developers and users of Julia in Particle Physics, with the aim of improving the sharing of knowledge and expertise, as well as unify effort in developing Julia packages useful for the community.
8+
---
9+
10+
{% include gsoc_project.ext %}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: Julia Interfaces to HepMC3
3+
layout: gsoc_proposal
4+
project: JuliaHEP
5+
year: 2025
6+
organization:
7+
- CERN
8+
difficulty: medium
9+
duration: 175
10+
mentor_avail: June-July- August
11+
---
12+
13+
## Description
14+
15+
In high-energy physics experiments at [CERN](https://home.cern/) it is necessary to simulate physics events in order to compare predicted observations with those that the LHC experiments actually observe. A key piece of the software chain used to do that is the [HepMC3](https://arxiv.org/abs/1912.08005) event record library, which encodes the output from physics event generators in a standard way, so that they can be used by downstream detector simulation and analysis codes.
16+
17+
There is now [increasing interest](https://doi.org/10.1007/s41781-023-00104-x) in using [Julia](https://julialang.org/) as a language for HEP software, as it combines the ease of programming in interactive languages, e.g., Python, with the speed of compiled language, such as C++. As part of building up the ecosystem of supporting packages for Julia in high-energy physics, developing interfaces to read, manipulated and write HepMC3 event records in Julia is the aim of this project.
18+
19+
## Task ideas
20+
21+
This project would develop a wrapper library for [HepMC3](https://gitlab.cern.ch/hepmc/HepMC3) allowing the HepMC3 data objects and methods, in C++, to be called from Julia.
22+
23+
It would utilise the general underlying wrapper interfaces in [CxxWrap](https://github.com/JuliaInterop/CxxWrap.jl) and the automated wrapper code generator [WrapIt!](https://github.com/grasph/wrapit) to allow for as easy and maintainable an interface as possible.
24+
25+
A key outcome would be a set of unit tests and examples, based on the HepMC3 ones, demonstrating how to use the library and proving that the code is correct.
26+
27+
## Expected results and milestones
28+
29+
- Reading of HepMC3 event files
30+
- Particularly the ASCII format will be targeted first
31+
- Access to event data structures
32+
- Access to particle properties
33+
- Navigation of the event and the vertices between parent and child particles
34+
- Access to run information
35+
- Update of HepMC3 data structures
36+
- Creation of new HepMC3 events
37+
- Re-serialisation of these events to file
38+
- Initially ASCII
39+
- Documentation and examples on how to use the Julia interfaces
40+
- HepMC3.jl package registered in the Julia general registry
41+
- Extension of serialisation to ROOT format (stretch goal)
42+
43+
## Requirements
44+
45+
- Programming experience in C++
46+
- Prior experience in Julia (very advantageous)
47+
- A background understanding of high-energy physics (advantageous)
48+
49+
## Evaluation Exercise
50+
51+
TBD
52+
53+
## Mentors
54+
55+
- **[Graeme Stewart](mailto:[email protected])**
56+
- [Mateusz Fila](mailto:[email protected])
57+
58+
## Links
59+
60+
- [Julia Programming Language](https://julialang.org/)
61+
- [JuliaHEP HSF Group](https://hepsoftwarefoundation.org/workinggroups/juliahep.html)
62+
- [HepMC3 Repository](https://gitlab.cern.ch/hepmc/HepMC3)
63+
- [CxxWrap](https://github.com/JuliaInterop/CxxWrap.jl)
64+
- [WrapIt!](https://github.com/grasph/wrapit)

gsoc/2025/mentors.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ layout: plain
1010
* Andy Buckley [[email protected]](mailto:[email protected]) UofGlasgow
1111
* Vipul Cariappa [[email protected]](mailto:[email protected]) CompRes
1212
* Chris Gutschow [[email protected]](mailto:[email protected]) UCLondon
13+
* Mateusz Fila [[email protected]](mailto:[email protected]) CERN
1314
* Aaron Jomy [[email protected]](mailto:[email protected]) CERN/CompRes
1415
* Stephan Lachnit [[email protected]](mailto:[email protected]) DESY
1516
* David Lange [[email protected]](mailto:[email protected]) CompRes
@@ -18,6 +19,7 @@ layout: plain
1819
* Alexander Penev [[email protected]](mailto:[email protected]) CompRes/University of Plovdiv, BG
1920
* Mayank Sharma [[email protected]](mailto:[email protected]) UMich
2021
* Simon Spannagel [[email protected]](mailto:[email protected]) DESY
22+
* Graeme Stewart [[email protected]](mailto:[email protected]) CERN
2123
* Martin Vasilev [[email protected]](mailto:[email protected]) University of Plovdiv, BG
2224
* Vassil Vassilev [[email protected]](mailto:[email protected]) CompRes
2325
* Valentin Volkl [[email protected]](mailto:[email protected]) CERN

0 commit comments

Comments
 (0)