From 173d89c35d6970689f78fa693d8922df3007c2e3 Mon Sep 17 00:00:00 2001 From: Graeme A Stewart Date: Mon, 3 Feb 2025 16:50:48 +0100 Subject: [PATCH 1/5] Julia HepMC3 project First draft --- _gsocprojects/2025/project_JuliaHEP.md | 10 ++++ _gsocproposals/2025/proposal_JuliaHepMC3.md | 64 +++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 _gsocprojects/2025/project_JuliaHEP.md create mode 100644 _gsocproposals/2025/proposal_JuliaHepMC3.md diff --git a/_gsocprojects/2025/project_JuliaHEP.md b/_gsocprojects/2025/project_JuliaHEP.md new file mode 100644 index 000000000..fe2a25d39 --- /dev/null +++ b/_gsocprojects/2025/project_JuliaHEP.md @@ -0,0 +1,10 @@ +--- +project: JuliaHEP +title: JuliaHEP +layout: default +logo: juliahep/juliaheplogo.png +description: | + 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. +--- + +{% include gsoc_project.ext %} diff --git a/_gsocproposals/2025/proposal_JuliaHepMC3.md b/_gsocproposals/2025/proposal_JuliaHepMC3.md new file mode 100644 index 000000000..f2b5726bb --- /dev/null +++ b/_gsocproposals/2025/proposal_JuliaHepMC3.md @@ -0,0 +1,64 @@ +--- +title: Julia Interfaces to HepMC3 +layout: gsoc_proposal +project: JuliaHEP +year: 2025 +organization: + - CERN +difficulty: medium +duration: 175 +mentor_avail: June-July- August +--- + +## Description + +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. + +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. + +## Task ideas + +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. + +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. + +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. + +## Expected results and milestones + +- Reading of HepMC3 event files + - Particularly the ASCII format will be targeted first +- Access to event data structures + - Access to particle properties + - Navigation of the event and the vertexes between parent and child particles + - Access to run information +- Update of HepMC3 data structures +- Creation of new HepMC3 events +- Re-serialisation of these events to file + - Initially ASCII +- Documentation and examples on how to use the Julia interfaces +- HepMC3.jl package registered in the Julia general registry +- Extension of serialisation to ROOT format (stretch goal) + +## Requirements + +- Programming experience in C++ +- Prior experience in Julia (very advantageous) +- A background understanding of high-energy physics (advantageous) + +## Evaluation Exercise + +TDB + +## Mentors + +- **[Graeme Stewart](mailto:graeme.andrew.stewart@cern.ch)** +- [Mateusz Fila](mailto:mateusz.jakub.fila@cern.ch) + +## Links + +- [Julia Programming Language](https://julialang.org/) +- [JuliaHEP HSF Group](https://hepsoftwarefoundation.org/workinggroups/juliahep.html) +- [HepMC3 Repository](https://gitlab.cern.ch/hepmc/HepMC3) +- [CxxWrap](https://github.com/JuliaInterop/CxxWrap.jl) +- [WrapIt!](https://github.com/grasph/wrapit) From f3d20d942fbe0df9244fa3286a7421eb9daf6c6c Mon Sep 17 00:00:00 2001 From: Graeme A Stewart Date: Fri, 7 Feb 2025 10:07:04 +0000 Subject: [PATCH 2/5] Spelling --- _gsocproposals/2025/proposal_JuliaHepMC3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_gsocproposals/2025/proposal_JuliaHepMC3.md b/_gsocproposals/2025/proposal_JuliaHepMC3.md index f2b5726bb..aea7ad07d 100644 --- a/_gsocproposals/2025/proposal_JuliaHepMC3.md +++ b/_gsocproposals/2025/proposal_JuliaHepMC3.md @@ -30,7 +30,7 @@ A key outcome would be a set of unit tests and examples, based on the HepMC3 one - Particularly the ASCII format will be targeted first - Access to event data structures - Access to particle properties - - Navigation of the event and the vertexes between parent and child particles + - Navigation of the event and the vertices between parent and child particles - Access to run information - Update of HepMC3 data structures - Creation of new HepMC3 events From 1c72e60948d6e50a467ea34fc97a15c0050296a2 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Fri, 7 Feb 2025 12:09:26 +0100 Subject: [PATCH 3/5] update mentor list --- gsoc/2025/mentors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gsoc/2025/mentors.md b/gsoc/2025/mentors.md index fd3830c79..28658594a 100644 --- a/gsoc/2025/mentors.md +++ b/gsoc/2025/mentors.md @@ -10,6 +10,7 @@ layout: plain * Andy Buckley [andy.buckley@gla.ac.uk](mailto:andy.buckley@gla.ac.uk) UofGlasgow * Vipul Cariappa [vipulcariappa@gmail.com](mailto:vipulcariappa@gmail.com) CompRes * Chris Gutschow [chris.g@cern.ch](mailto:chris.g@cern.ch) UCLondon +* Mateusz Fila [mateusz.jakub.fila@cern.ch](mailto:mateusz.jakub.fila@cern.ch) CERN * Aaron Jomy [aaron.jomy@cern.ch](mailto:aaron.jomy@cern.ch) CERN/CompRes * Stephan Lachnit [stephan.lachnit@desy.de](mailto:stephan.lachnit@desy.de) DESY * David Lange [david.lange@cern.ch](mailto:david.lange@cern.ch) CompRes @@ -18,6 +19,7 @@ layout: plain * Alexander Penev [alexander.p.penev@gmail.com](mailto:alexander.p.penev@gmail.com) CompRes/University of Plovdiv, BG * Mayank Sharma [mayank.sharma@cern.ch](mailto:mayank.sharma@cern.ch) UMich * Simon Spannagel [simon.spannagel@desy.de](mailto:simon.spannagel@desy.de) DESY +* Graeme Stewart [graeme.andrew.stewart@cern.ch](mailto:graeme.andrew.stewart@cern.ch) DESY * Martin Vasilev [mvassilev@uni-plovdiv.bg](mailto:mvassilev@uni-plovdiv.bg) University of Plovdiv, BG * Vassil Vassilev [vvasilev@cern.ch](mailto:vvasilev@cern.ch) CompRes * Valentin Volkl [valentin.volkl@cern.ch](mailto:valentin.volkl@cern.ch) CERN From a5b7d1277f7260f2d6209cdb2110fe9a49f2b95a Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Fri, 7 Feb 2025 12:11:13 +0100 Subject: [PATCH 4/5] fix copy-paste error --- gsoc/2025/mentors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gsoc/2025/mentors.md b/gsoc/2025/mentors.md index 28658594a..7ad105fe5 100644 --- a/gsoc/2025/mentors.md +++ b/gsoc/2025/mentors.md @@ -19,7 +19,7 @@ layout: plain * Alexander Penev [alexander.p.penev@gmail.com](mailto:alexander.p.penev@gmail.com) CompRes/University of Plovdiv, BG * Mayank Sharma [mayank.sharma@cern.ch](mailto:mayank.sharma@cern.ch) UMich * Simon Spannagel [simon.spannagel@desy.de](mailto:simon.spannagel@desy.de) DESY -* Graeme Stewart [graeme.andrew.stewart@cern.ch](mailto:graeme.andrew.stewart@cern.ch) DESY +* Graeme Stewart [graeme.andrew.stewart@cern.ch](mailto:graeme.andrew.stewart@cern.ch) CERN * Martin Vasilev [mvassilev@uni-plovdiv.bg](mailto:mvassilev@uni-plovdiv.bg) University of Plovdiv, BG * Vassil Vassilev [vvasilev@cern.ch](mailto:vvasilev@cern.ch) CompRes * Valentin Volkl [valentin.volkl@cern.ch](mailto:valentin.volkl@cern.ch) CERN From 19f6473c49a63f1e227609bd41215abc4a026cd5 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Fri, 7 Feb 2025 15:49:46 +0100 Subject: [PATCH 5/5] Update _gsocproposals/2025/proposal_JuliaHepMC3.md --- _gsocproposals/2025/proposal_JuliaHepMC3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_gsocproposals/2025/proposal_JuliaHepMC3.md b/_gsocproposals/2025/proposal_JuliaHepMC3.md index aea7ad07d..c0c29d8ec 100644 --- a/_gsocproposals/2025/proposal_JuliaHepMC3.md +++ b/_gsocproposals/2025/proposal_JuliaHepMC3.md @@ -48,7 +48,7 @@ A key outcome would be a set of unit tests and examples, based on the HepMC3 one ## Evaluation Exercise -TDB +TBD ## Mentors