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..c0c29d8ec --- /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 vertices 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 + +TBD + +## 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) diff --git a/gsoc/2025/mentors.md b/gsoc/2025/mentors.md index fd3830c79..7ad105fe5 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) 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