This project is presented as an example of how you'd develop a complete project in Julia. The rest of this README is written for an "imaginary user" of the complete project. If you are using this project, or its template, as an exercise in learning Julia, you should ignore this README, as you should work from the git repo you created.
HEPExampleProject.jl
is a demonstration package for showcasing how to develop software
in the context of high-energy physics (HEP) using the Julia programming language. This project
serves as a template for researchers, developers, and students interested in adopting Julia
for HEP-specific workflows.
- HEP-Focused Design: Structures common to high-energy physics are implemented with a focus on performance and flexibility.
- Modular Architecture: Designed to be easily extensible for new use cases and HEP-related calculations.
- Integration with JuliaHEP: Part of the JuliaHEP ecosystem, which aims to facilitate the use of Julia in high-energy physics research and analysis.
This package is not registered (and most probably will never be).
To install HEPExampleProject.jl
, use Julia's built-in package manager. In the Julia REPL, type:
julia> using Pkg
julia> Pkg.add("https://github.com/JuliaHEP/HEPExampleProject.jl")
Alternatively, you can enter the Pkg mode by pressing ]
in the REPL, then type:
pkg> add https://github.com/JuliaHEP/HEPExampleProject.jl
Once installed, you can begin using HEPExampleProject.jl
by importing the package:
using HEPExampleProject
The following example demonstrates a simple use of the package:
using HEPExampleProject
using Random
# define random number generator for reproducability
RNG = Xoshiro(137)
# Define some input parameters for the HEP process
incoming_electron_energy = 1000.0
# generate 1M events
event_list = generate_events_cpu(RNG,incoming_electron_energy,1_000_000)
If you separately install the package StatsPlots
(pkg> add StatsPlots
), you can plot
the generated events:
using StatsPlots
plot_muon_cos_theta(event_list)
We welcome contributions to improve this project! If you're interested in contributing, please:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a detailed description of your changes.
You can also open an issue if you encounter any problems or have feature suggestions.
This project is part of the JuliaHEP ecosystem, which is developed by a community of scientists and developers passionate about using Julia for high-energy physics. We are grateful to all contributors and users who support the growth of this project.
HEPExampleProject.jl
is licensed under the MIT License.
See the LICENSE file for more details.