Skip to content

Commit 7630556

Browse files
Flavour Tagging features (#3)
* Flavour Tagging features Flavour Tagging features. (src/, examples/flavour-tagging) * run Formatter * try to fix github action * Try to make a temp alias of EEJet as the released version of JetReconstruction still have EEjet * update some documentation * Fixups for initial version A few improvements to .gitignore Make dependency on JetReconstruction for v1.0 (currently in development) Change back to EEJet (no alias needed) Update calling signatures * Update README * Make the example work Changed EEJet type alias to EEJet from JetReconstruction Using Pkg in the example to compile 1.0.0-DEV version of JetReconstruction * Run JuliaFormatter * More optimizations and clean up unused helper docs. More sincos() and inline simd to optimize. --------- Co-authored-by: Graeme A Stewart <[email protected]>
1 parent 9d24ef4 commit 7630556

18 files changed

+5199
-22
lines changed

.github/workflows/CI.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,39 @@ on:
33
push:
44
branches:
55
- main
6-
tags: ['*']
6+
tags: '*'
77
pull_request:
8-
workflow_dispatch:
98
concurrency:
109
# Skip intermediate builds: always.
1110
# Cancel intermediate builds: only if it is a pull request build.
1211
group: ${{ github.workflow }}-${{ github.ref }}
1312
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
1413
jobs:
1514
test:
16-
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
17-
runs-on: ${{ matrix.os }}
18-
timeout-minutes: 60
19-
permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created
20-
actions: write
21-
contents: read
15+
name: Julia ${{ matrix.version }} - ${{ matrix.platform.os }} - ${{ matrix.platform.arch }} - ${{ github.event_name }}
16+
runs-on: ${{ matrix.platform.os }}
2217
strategy:
2318
fail-fast: false
2419
matrix:
20+
platform:
21+
- os: ubuntu-latest
22+
arch: x64
23+
- os: ubuntu-24.04-arm
24+
arch: aarch64
2525
version:
26-
- '1.11'
27-
- '1.6'
28-
- 'pre'
29-
os:
30-
- ubuntu-latest
31-
arch:
32-
- x64
26+
- 'lts'
27+
- '1'
3328
steps:
3429
- uses: actions/checkout@v5
3530
- uses: julia-actions/setup-julia@v2
3631
with:
3732
version: ${{ matrix.version }}
38-
arch: ${{ matrix.arch }}
33+
arch: ${{ matrix.platform.arch }}
3934
- uses: julia-actions/cache@v2
4035
- uses: julia-actions/julia-buildpkg@v1
4136
- uses: julia-actions/julia-runtest@v1
37+
- uses: julia-actions/julia-processcoverage@v1
38+
- uses: codecov/codecov-action@v5
39+
with:
40+
files: lcov.info
41+
token: ${{ secrets.codecov_token }}

.gitignore

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
/Manifest*.toml
1+
Manifest.toml
2+
*.DS_Store
3+
*.root
4+
examples/flavour-tagging/data/wc_pt_7classes_12_04_2023/fccee_fl.swp
5+
.vscode/
6+
7+
# Misc files
8+
.DS_Store
9+
/notebooks/*
10+
**/profile/*
11+
/statprof/*
12+
/debug/*

Project.toml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,26 @@
11
name = "JetTaggingFCC"
22
uuid = "12f500dc-52b1-4d85-9b70-29fa5347616c"
33
authors = ["Harry <[email protected]> and contributors"]
4-
version = "1.0.0-DEV"
4+
version = "0.1.0"
5+
6+
[deps]
7+
EDM4hep = "eb32b910-dde9-4347-8fce-cd6be3498f0c"
8+
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
9+
JetReconstruction = "44e8cb2c-dfab-4825-9c70-d4808a591196"
10+
LorentzVectorHEP = "f612022c-142a-473f-8cfd-a09cf3793c6c"
11+
ONNXRunTime = "e034b28e-924e-41b2-b98f-d2bbeb830c6a"
12+
PhysicalConstants = "5ad8b20f-a522-5ce9-bfc9-ddf1d5bda6ab"
13+
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
514

615
[compat]
7-
julia = "1.6.7"
16+
EDM4hep = "0.4.0"
17+
JSON = "0.21"
18+
JetReconstruction = "1.0"
19+
LorentzVectorHEP = "0.1.6"
20+
ONNXRunTime = "1.3.1"
21+
PhysicalConstants = "0.2.4"
22+
StructArrays = "0.6.18, 0.7"
23+
julia = "1.9"
824

925
[extras]
1026
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
# JetTaggingFCC
1+
# JetTaggingFCC.jl
22

33
[![Build Status](https://github.com/JuliaHEP/JetTaggingFCC.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/JuliaHEP/JetTaggingFCC.jl/actions/workflows/CI.yml?query=branch%3Amain)
4+
5+
Julia package for jet flavour tagging at Future Circular Collider (FCC)
6+
experiments using machine learning.
7+
8+
## Overview
9+
10+
JetTaggingFCC.jl provides tools for identifying the quark flavor content of jets
11+
in high-energy physics experiments. It uses ONNX neural network models to
12+
classify jets based on their constituent particles.
13+
14+
## Features
15+
16+
- Load and process EDM4hep event data to extract physics features from jet constituents
17+
- Run ONNX neural network inference for flavour classification
18+
19+
See the `examples/` directory for detailed usage examples.
20+
21+
**Important** This package need the pre-release version of `JetReconstruction`,
22+
so currently `Pkg.develop("JetReconstruction")` is required.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[deps]
2+
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"
3+
ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63"
4+
CodecZlib = "944b1d66-785c-5afd-91f1-9de20f533193"
5+
CodecZstd = "6b39b394-51ab-5f42-8807-6242bab2b4c2"
6+
EDM4hep = "eb32b910-dde9-4347-8fce-cd6be3498f0c"
7+
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
8+
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
9+
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
10+
JetReconstruction = "44e8cb2c-dfab-4825-9c70-d4808a591196"
11+
JetTaggingFCC = "12f500dc-52b1-4d85-9b70-29fa5347616c"
12+
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
13+
LorentzVectorHEP = "f612022c-142a-473f-8cfd-a09cf3793c6c"
14+
LorentzVectors = "3f54b04b-17fc-5cd4-9758-90c048d965e3"
15+
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
16+
ONNXRunTime = "e034b28e-924e-41b2-b98f-d2bbeb830c6a"
17+
PhysicalConstants = "5ad8b20f-a522-5ce9-bfc9-ddf1d5bda6ab"
18+
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
19+
20+
[sources]
21+
JetTaggingFCC = {path = "../.."}

examples/flavour-tagging/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Jet Reconstruction Flavour Tagging Module Examples
2+
3+
## `simple-flavour-tagging.jl`
4+
5+
```bash
6+
julia --project simple-flavour-tagging.jl
7+
```
8+
This script will perform a simple flavour tagging with one events only.
9+
It will use the `FlavourTagging` module to tag the jets in the event and print the results.
10+
11+
## `simple-flavour-tagging.ipynb`
12+
13+
The same as the above example, but using a Jupyter notebook.

0 commit comments

Comments
 (0)