Skip to content

JuliaHEP/HEPExampleProject.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

READ ME FIRST

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

Stable Build Status

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.

Key Features

  • 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.

Installation

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

Usage

Once installed, you can begin using HEPExampleProject.jl by importing the package:

using HEPExampleProject

Example

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)

event_plot

Contributing

We welcome contributions to improve this project! If you're interested in contributing, please:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. 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.

Acknowledgements

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.

License

HEPExampleProject.jl is licensed under the MIT License. See the LICENSE file for more details.

About

This is an example project for JuliaHEP 2024

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages