@@ -26,42 +26,22 @@ jet_reconstruct(particles; algorithm = JetAlgorithm.AntiKt, R = 1.0)
26
26
or with some of the optional arguments,
27
27
28
28
``` julia
29
- jet_reconstruct (particles; algorithm = JetAlgorithm. GenKt, R = 0.4 , p = 0.5 , recombine = + , strategy = RecoStrategy. Best)
29
+ jet_reconstruct (particles; algorithm = JetAlgorithm. GenKt, R = 0.4 ,
30
+ p = 0.5 , recombine = + , strategy = RecoStrategy. Best)
30
31
```
31
32
32
- Where ` particles ` is a collection of 4-vector objects to reconstruct and the
33
- algorithm is either given explicitly or implied by the power value. For the case
34
- of generalised `` k_T `` (for `` pp `` and `` e^+e^- `` ) both the algorithm
35
- (` JetAlgorithm.GenKt ` ) and ` p ` are needed. For the case of the Durham algorithm
36
- the ` R ` value is ignored.
33
+ Where ` particles ` is a collection of 4-vector objects (see [ Input Particle
34
+ Types] ( @ref ) ) to reconstruct and the algorithm is either given explicitly or
35
+ implied by the power value.
37
36
38
- The object returned is a [ ` ClusterSequence ` ] ( @ref ) , which internally tracks all
39
- merge steps.
40
-
41
- ### Input Particle Types
42
-
43
- For the ` particles ` input to the reconstruction any one dimensional
44
- ` AbstractArray{T, 1} ` can be used, where the type ` T ` has to implement methods
45
- to extract the 4-vector components, viz, the following are required:
46
-
47
- - ` JetReconstuction.px(particle::T) `
48
- - ` JetReconstuction.py(particle::T) `
49
- - ` JetReconstuction.pz(particle::T) `
50
- - ` JetReconstuction.energy(particle::T) `
51
-
52
- Currently built-in supported types are
53
- [ ` LorentzVectorHEP ` ] ( https://github.com/JuliaHEP/LorentzVectorHEP.jl ) , the
54
- ` PseudoJet ` and ` EEjet ` s from this package, and ` ReconstructedParticles ` from
55
- [ EDM4hep] ( https://github.com/peremato/EDM4hep.jl ) .
37
+ For the case of generalised `` k_T `` (for `` pp `` and `` e^+e^- `` ) both the
38
+ algorithm (` GenKt ` , ` EEKt ` ) and ` p ` are needed.
56
39
57
- If you require support for a different input collection type then ensure you
58
- define the ` px() ` , etc. methods * for your specific type* and * in the
59
- ` JetReconstruction ` package* . This use of what might be considered type piracy
60
- is blessed as long as you are en * end user* of the jet reconstruction package.
40
+ The ` R ` value determines the cone size; in the case of the Durham algorithm the
41
+ ` R ` value is ignored.
61
42
62
- If your type is used in several places or by different users, please consider
63
- writing a package extension that will support your type, following the model for
64
- EDM4hep in ` ext/EDM4hepJets.jl ` .
43
+ The object returned is a [ ` ClusterSequence ` ] ( @ref ) , which internally tracks all
44
+ merge steps and is used for [ Inclusive and Exclusive Selections] ( @ref ) .
65
45
66
46
### Algorithm Types
67
47
@@ -76,37 +56,26 @@ Each known algorithm is referenced using a `JetAlgorithm` scoped enum value.
76
56
| `` e^+e- `` `` k_\text{T} `` / Durham | ` JetAlgorithm.Durham ` | ` R ` value ignored and can be omitted |
77
57
| generalised `` e^+e- `` `` k_\text{T} `` | ` JetAlgorithm.EEKt ` | For `` e^+e^- `` , value of ` p ` must also be specified |
78
58
79
- ### `` pp `` Algorithms
59
+ #### `` pp `` Algorithms
80
60
81
61
For the three `` pp `` algorithms with fixed ` p ` values, the ` p ` value can be
82
62
given instead of the algorithm name. However, this should be considered
83
63
* deprecated* and will be removed in a future release.
84
64
85
- ## Strategy
86
-
87
- For the `` pp `` algorithms three strategies are available for the different
88
- algorithms, which can be specified by passing the named argument ` strategy=... ` .
89
-
90
- | Strategy Name | Notes | Interface |
91
- | ---| ---| ---|
92
- | ` RecoStrategy.Best ` | Dynamically switch strategy based on input particle density | ` jet_reconstruct ` |
93
- | ` RecoStrategy.N2Plain ` | Global matching of particles at each interation (works well for low $N$) | ` plain_jet_reconstruct ` |
94
- | ` RecoStrategy.N2Tiled ` | Use tiles of radius $R$ to limit search space (works well for higher $N$) | ` tiled_jet_reconstruct ` |
95
-
96
- Generally one can use the ` jet_reconstruct ` interface, shown above, as the
97
- * Best* strategy safely as the overhead is extremely low. That interface supports
98
- a ` strategy ` option to switch to a different option.
65
+ ### Strategy
99
66
100
- For `` e^+e^- `` algorithms particle densities are low, so the only implementation
101
- is of the same type as ` N2Plain ` .
67
+ Generally one does not need to manually specify a strategy, but [ Algorithm
68
+ Strategy ] ( @ref ) describes how to do this, if desired .
102
69
103
70
## Inclusive and Exclusive Selections
104
71
105
72
To obtain final jets both inclusive (`` p_T `` cut) and exclusive (`` n_{jets} `` or
106
73
`` d_{ij} `` cut) selections are supported:
107
74
108
- - [ inclusive_jets(clusterseq::ClusterSequence, ptmin = 0.0)] ( @ref )
109
- - [ exclusive_jets(clusterseq::ClusterSequence; dcut = nothing, njets = nothing)] ( @ref )
75
+ - [ ` inclusive_jets(clusterseq::ClusterSequence, ptmin = 0.0) ` ] ( @ref )
76
+ - [ ` exclusive_jets(clusterseq::ClusterSequence; dcut = nothing, njets = nothing) ` ] ( @ref )
77
+
78
+ (For ` exclusive_jets ` either ` dcut ` or ` njets ` is needed, but not both.)
110
79
111
80
### Sorting
112
81
@@ -119,29 +88,7 @@ sorted_jets = sort!(inclusive_jets(cs::ClusterSequence; ptmin=5.0),
119
88
by= JetReconstruction. energy, rev= true )
120
89
```
121
90
122
- ## Plotting and Animation
123
-
124
- ![ illustration] ( assets/jetvis.png )
125
-
126
- To visualise the clustered jets as a 3d bar plot (see illustration above) we now
127
- use ` Makie.jl ` . See the ` jetsplot ` function in ` ext/JetVisualisation.jl ` and its
128
- documentation for more. There are two worked examples in the ` examples `
129
- directory.
130
-
131
- The plotting code is a package extension and will load if the one of the ` Makie `
132
- modules is loaded in the environment.
133
-
134
- The [ ` animatereco ` ] ( @ref ) function will animate the reconstruction sequence, given a
135
- ` ClusterSequence ` object. See the function documentation for the many options
136
- that can be customised.
137
-
138
- ## Serialisation
139
-
140
- The package also provides methods such as ` loadjets ` , ` loadjets! ` , and
141
- ` savejets ` that one can use to save and load objects on/from disk easily in a
142
- very flexible format. See documentation for more.
143
-
144
- ## Reference
91
+ ## References
145
92
146
93
Although it has been developed further since the CHEP2023 conference, the CHEP
147
94
conference proceedings,
0 commit comments